Nama dan NIM : Muhammad Syaifullah (230605110129) Dosen Pengampu : Prof. Dr. Suhartono, M.Kom Universitas : Universitas Islam Negeri Maulana Malik Ibrahim Malang Fakultas : Sains dan Teknologi Program Studi : Teknik Informatika — Numerical Optimization
Numerical Optimization adalah cabang ilmu komputasi yang berkaitan dengan metode-metode untuk menemukan nilai optimum dari suatu fungsi matematis. Tujuan utama dari Numerical Optimization adalah mencari nilai terbesar atau terkecil dari suatu fungsi tujuan dalam konteks batasan atau kendala tertentu. Masalah optimasi ini seringkali muncul dalam berbagai disiplin ilmu, termasuk ilmu ekonomi, ilmu komputer, teknik, dan ilmu data.
Proses Numerical Optimization melibatkan metode iteratif yang memproses solusi secara berulang dengan memperbarui nilai-nilai variabel secara sistematis. Beberapa metode umum melibatkan gradient-based methods, seperti metode gradien turun (Gradient Descent), yang menggunakan informasi tentang gradien atau turunan parsial dari fungsi tujuan untuk mencari arah di mana solusi dapat ditemukan. Metode lain melibatkan pendekatan stokastik, seperti algoritma genetika, yang mengadopsi konsep seleksi alam untuk mengeksplorasi ruang solusi secara paralel.Berikut adalah contoh penerapan Numerical Optimization dalam R untuk memvisualisasikan proses optimisasi fungsi f(x)=x²−4x+4 dengan menggunakan metode gradien turun:
# Install paket ggplot2 jika belum terinstal
# install.packages("ggplot2")
library(ggplot2)
# Fungsi Tujuan
f <- function(x) {
return(x^2 - 4*x + 4)
}
# Turunan Parsial
df_dx <- function(x) {
return(2*x - 4)
}
# Metode Gradien Turun (Gradient Descent)
gradient_descent <- function(x0, learning_rate, max_iter) {
x_values <- numeric(max_iter + 1)
x_values[1] <- x0
for (i in 1:max_iter) {
x_values[i + 1] <- x_values[i] - learning_rate * df_dx(x_values[i])
}
return(x_values)
}
# Plot Fungsi dan Proses Optimisasi dengan Metode Gradien Turun
plot_numerical_optimization <- function(x0, learning_rate, max_iter) {
x_values <- gradient_descent(x0, learning_rate, max_iter)
iter <- seq(0, max_iter)
df <- data.frame(iteration = iter, x_value = x_values, f_value = f(x_values))
ggplot(df, aes(x = iteration, y = f_value)) +
geom_line(color = "blue") +
geom_point(color = "red") +
geom_hline(yintercept = 0, linetype = "dashed", color = "green") +
labs(title = "Numerical Optimization with Gradient Descent",
x = "Iteration", y = "f(x)")
}
# Contoh Penggunaan
x0 <- 0
learning_rate <- 0.1
max_iter <- 20
plot_numerical_optimization(x0, learning_rate, max_iter)
Kode ini menghasilkan grafik yang menunjukkan proses Numerical
Optimization menggunakan metode Gradien Turun pada fungsi f(x)=x²−4x+4.
Anda dapat mengubah nilai awal, ukuran langkah, dan jumlah iterasi
sesuai kebutuhan.