Optimasi grafis adalah salah satu teknik sederhana untuk mencari puncak lokal pada fungsi univariat (fungsi satu variabel). Dalam optimasi grafis, Anda menggambar grafik fungsi tujuan dan mencari titik-titik ekstrim (puncak atau lembah) di grafik tersebut. Berikut adalah langkah-langkah umum untuk melakukan optimasi grafis:
Gambarkan Grafik Fungsi Tujuan:
Pertama, Anda perlu memiliki persamaan matematis dari fungsi tujuan. Gambarkan grafik fungsi ini pada bidang kartesian dengan sumbu x yang mewakili variabel yang Anda optimalkan dan sumbu y yang mewakili nilai dari fungsi tujuan. Identifikasi Puncak Lokal:
Telusuri grafik untuk mencari titik-titik ekstrim, seperti puncak lokal (maksimum lokal) atau lembah lokal (minimum lokal). Ini adalah titik-titik di mana gradien (turunan) dari fungsi tujuan adalah nol. Baca Nilai pada Puncak:
Setelah Anda mengidentifikasi puncak lokal, baca nilai dari fungsi tujuan pada puncak-puncak tersebut. Nilai-nilai ini akan memberikan informasi tentang nilai optimal dari fungsi tujuan dalam konteks puncak lokal yang ditemukan. Perlu dicatat bahwa teknik optimasi grafis cocok untuk masalah yang sederhana dengan fungsi tujuan univariat dan batasan yang mudah digambarkan dalam grafik. Namun, untuk masalah yang lebih kompleks dengan banyak variabel atau batasan yang rumit, teknik optimasi grafis mungkin tidak efektif, dan Anda mungkin perlu menggunakan teknik optimasi matematis yang lebih canggih atau perangkat lunak komputer.
Selain itu, penting untuk diingat bahwa optimasi grafis hanya cocok untuk mencari puncak lokal. Jika Anda ingin mencari puncak global (solusi terbaik di seluruh ruang pencarian), teknik optimasi lain seperti algoritma pencarian global mungkin lebih cocok.
fungsi_tujuan <- function(x) {
return(x^2)
}
x <- seq(-5, 5, length.out = 100)
y <- fungsi_tujuan(x)
puncak_lokal_x <- x[which.min(y)]
puncak_lokal_y <- min(y)
plot(x, y, type = "l", xlab = "Nilai x", ylab = "Nilai f(x)", main = "Grafik Fungsi Tujuan")
points(puncak_lokal_x, puncak_lokal_y, col = "red")
legend("topright", legend = paste("Puncak lokal: (", round(puncak_lokal_x, 2), ", ", round(puncak_lokal_y, 2), ")", sep = ""), col = "red")