Optimasi

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")