Nama/Nim : Axel Dzakhwan AL
Yushen/230605110124
Dosen Pengampu :
Prof. Dr. Suhartono, M.Kom
Universitas :
Universitas Islam Negeri Maulana Malik Ibrahim Malang
Fakultas : Sains dan Teknologi
Program
Studi : Teknik Informatika
Graphical optimization
adalah suatu pendekatan dalam pemecahan masalah optimasi yang
menggunakan visualisasi grafis untuk menemukan solusi optimal. Metode
ini sangat berguna untuk memahami dan memecahkan masalah optimasi dengan
cara yang intuitif, terutama ketika jumlah variabel dan kendala relatif
sedikit. Berikut adalah contoh kode R untuk melakukan graphical
optimization menggunakan paket ggplot2 di RStudio. Dalam contoh ini,
kita akan mempertimbangkan fungsi objektif sederhana dan dua variabel
keputusan. Grafik akan menunjukkan wilayah feasible (berbatasan dengan
kendala) dan garis kontur fungsi objektif.
# Install dan load paket ggplot2
if (!require(ggplot2)) {
install.packages("ggplot2")
}
## Loading required package: ggplot2
library(ggplot2)
# Fungsi objektif dan kendala
objektif <- function(x, y) {
return(2 * x + 3 * y) # Misalnya, fungsi objektif 2x + 3y
}
kendala1 <- function(x) {
return(2 * x - 4) # Misalnya, kendala 1: 2x <= 4
}
kendala2 <- function(y) {
return(y - 1) # Misalnya, kendala 2: y >= 1
}
# Membuat grid titik-titik untuk visualisasi
x_values <- seq(0, 5, length.out = 100)
y_values <- seq(0, 5, length.out = 100)
grid <- expand.grid(x = x_values, y = y_values)
# Menambahkan kolom untuk nilai fungsi objektif dan kendala
grid$z <- objektif(grid$x, grid$y)
grid$k1 <- kendala1(grid$x)
grid$k2 <- kendala2(grid$y)
# Membuat plot
plot <- ggplot(grid, aes(x = x, y = y)) +
geom_contour(aes(z = z), color = "blue") +
geom_hline(yintercept = 1, linetype = "dashed", color = "red") +
geom_ribbon(aes(ymin = 0, ymax = Inf), fill = "gray", alpha = 0.3, data = subset(grid, k1 >= 0)) +
geom_ribbon(aes(ymax = 5, ymin = Inf), fill = "gray", alpha = 0.3, data = subset(grid, k2 <= 0)) +
theme_minimal() +
labs(title = "Graphical Optimization", x = "X-axis", y = "Y-axis") +
theme(legend.position = "none")
# Menampilkan plot
print(plot)
Fungsi objektif (objektif) dan kendala (kendala1 dan kendala2) didefinisikan.
Grid titik-titik dihasilkan untuk nilai x dan y.
Nilai fungsi objektif dan kendala dihitung untuk setiap titik grid.
Plot dibuat dengan menggunakan ggplot2 dengan kontur fungsi objektif, garis kendala, dan wilayah feasible yang diwarnai.
Grafik ini membantu melihat bagaimana fungsi objektif
berperilaku di dalam wilayah feasible dan di mana solusi optimal mungkin
berada. Anda dapat mengganti fungsi objektif dan kendala sesuai dengan
kebutuhan spesifik masalah optimasi yang sedang Anda hadapi.