library(ggplot2)
library(mosaicCalc)
## Loading required package: mosaic
## Registered S3 method overwritten by 'mosaic':
##   method                           from   
##   fortify.SpatialPolygonsDataFrame ggplot2
## 
## The 'mosaic' package masks several functions from core packages in order to add 
## additional features.  The original behavior of these functions should not be affected by this.
## 
## Attaching package: 'mosaic'
## The following objects are masked from 'package:dplyr':
## 
##     count, do, tally
## The following object is masked from 'package:Matrix':
## 
##     mean
## The following object is masked from 'package:ggplot2':
## 
##     stat
## The following objects are masked from 'package:stats':
## 
##     binom.test, cor, cor.test, cov, fivenum, IQR, median, prop.test,
##     quantile, sd, t.test, var
## The following objects are masked from 'package:base':
## 
##     max, mean, min, prod, range, sample, sum
## Loading required package: mosaicCore
## 
## Attaching package: 'mosaicCore'
## The following objects are masked from 'package:dplyr':
## 
##     count, tally
## The legacy packages maptools, rgdal, and rgeos, underpinning the sp package,
## which was just loaded, will retire in October 2023.
## Please refer to R-spatial evolution reports for details, especially
## https://r-spatial.org/r/2023/05/15/evolution4.html.
## It may be desirable to make the sf package available;
## package maintainers should consider adding sf to Suggests:.
## The sp package is now running under evolution status 2
##      (status 2 uses the sf package in place of rgdal)
## 
## Attaching package: 'mosaicCalc'
## The following object is masked from 'package:stats':
## 
##     D

Graphical optimization merupakan pendekatan untuk memecahkan masalah optimasi dengan memanfaatkan visualisasi grafis dari fungsi-fungsi yang terlibat serta batasan-batasan yang diberlakukan. Pendekatan ini memungkinkan pemahaman yang lebih baik terhadap hubungan antara fungsi objektif yang ingin dioptimalkan, batasan-batasan yang ada, dan solusi optimal yang mungkin.

Dalam konteks optimasi, metode ini memanfaatkan representasi grafis dari fungsi objektif dan batasan-batasan yang relevan. Fungsi objektif sering kali direpresentasikan sebagai kurva atau permukaan dalam ruang dua atau tiga dimensi, tergantung pada jumlah variabel yang terlibat dalam masalah optimasi. Sementara itu, batasan-batasan ditampilkan sebagai garis, permukaan, atau wilayah yang membatasi ruang solusi yang memenuhi syarat.

Dengan menggunakan pendekatan ini, pemahaman mengenai perilaku fungsi objektif dan bagaimana batasan memengaruhi ruang solusi dapat diperoleh secara visual. Melalui visualisasi ini, pemahaman intuitif tentang masalah optimasi dapat dikembangkan sebelum melakukan komputasi atau algoritma optimasi yang sesungguhnya.

Mari kita bayangkan kita ingin melakukan optimasi fungsi sederhana dengan batasan tertentu, seperti mencari nilai minimum atau maksimum dari fungsi kuadratik dengan batasan linear.

# Fungsi yang akan dioptimalkan
f <- function(x) x^3 - 3*x + 2

# Membuat dataset dengan berbagai nilai x
x_values <- seq(-10, 10, by = 0.5)
y_values <- f(x_values)
df <- data.frame(x = x_values, y = y_values)

# Membuat grafik
ggplot(df, aes(x, y)) +
  geom_line() +
  geom_point() +
  labs(title = "Numerical Optimization using Gradient Descent", x = "x", y = "f(x)")

Penting untuk diingat bahwa Optimasi Grafis adalah alat yang ampuh dalam memahami masalah optimasi. Namun, untuk masalah yang lebih kompleks, solusi yang diperoleh dari visualisasi mungkin memerlukan bantuan perangkat lunak tingkat lanjut dan perhitungan matematis.