Pada artikel kali ini kita akan membahas apa itu optimasi. Optimasi adalah proses mencari nilai minimum atau maksimum suatu fungsi. Nilai minimum atau maksimum ini disebut nilai optimal. Optimasi sering digunakan dalam berbagai bidang seperti ekonomi, teknik, ilmu pengetahuan alam dan bidang lainnya untuk memecahkan masalah yang berkaitan dengan biaya, keuntungan, efisiensi, trade-off, dll.
Salah satu fungsi yang bisa kita gunakan untuk mengoptimalkan adalah optimize(). Fungsi ini memungkinkan kita menemukan nilai minimum atau maksimum suatu fungsi dalam suatu rentang. Kita perlu meneruskan tiga argumen ke fungsi optimize(): fungsi yang ingin kita optimalkan, interval pencarian, dan apakah kita ingin mencari nilai minimum atau maksimum.
Pertama, kita mendefinisikan fungsi matematika dalam bahasa R. Fungsi ini adalah fungsi polinomial dengan bentuk x^3 - 6x^2 + 9x - 4. Kita ingin mencari nilai minimum dan maksimum dari fungsi ini dalam rentang tertentu.
# Langkah 1: Menentukan fungsi yang ingin dioptimalkan
f <- function(x) { x^3 - 6*x^2 + 9*x - 4 }
Kedua, kita fokus mencari nilai minimum dan maksimum
dari fungsi tersebut. Caranya; pertama kita buat rangkaian nilai
x pada range [-1, 4] dengan jarak 1000 poin.
Kemudian kita menghitung nilai y (nilai fungsi) berdasarkan
fungsi f(x) di setiap titik x. Kami mencari
nilai terkecil dengan which.min(y) dan nilai maksimum
dengan which.max(y) untuk menemukan posisi x
yang sesuai.
# Langkah 2: Mencari nilai minimum dan maksimum fungsi f di interval [-1, 4]
x <- seq(-1, 4, length.out = 1000)
y <- f(x)
min_f_x <- x[which.min(y)]
min_f_y <- min(y)
max_f_x <- x[which.max(y)]
max_f_y <- max(y)
Setelah menemukan nilai minimum dan maksimum, Pada langkah
ketiga kita menggunakan cat untuk mencetak
hasilnya. Hasil ini mencakup nilai x (posisi)
dan f(x) (nilai fungsi) untuk nilai minimum dan
maksimum.
# Langkah 3: Menampilkan hasil Optimization
cat("Minimum:", min_f_x, "f(min) =", min_f_y, "\n")
## Minimum: -1 f(min) = -20
cat("Maksimum:", max_f_x, "f(max) =", max_f_y, "\n")
## Maksimum: 4 f(max) = 0
Langkah terakhir, kita membuat plot dari
fungsi f(x) menggunakan plot. Kemudian, kita
tandai titik minimum dengan lingkaran merah dan titik maksimum dengan
lingkaran biru. Fungsi text digunakan untuk menambahkan
label Min dan Max di sekitar titik min dan
max.
# Langkah 4: Membuat plot fungsi f
plot(x, y, type = "l", xlim = c(min_f_x - 1, 4), ylim = c(min_f_y - 2, max_f_y + 2))
points(min_f_x, min_f_y, col = "black", pch = 19)
points(max_f_x, max_f_y, col = "deeppink", pch = 19)
text(min_f_x, min_f_y - 1, "Min", col = "black")
text(max_f_x, max_f_y + 1, "Max", col = "deeppink")