Email             :
RPubs            : https://rpubs.com/kefasronaldo/
Jurusan          : Statistika
Address         : ARA Center, Matana University Tower
                         Jl. CBD Barat Kav, RT.1, Curug Sangereng, Kelapa Dua, Tangerang, Banten 15810.


1 Definisi Optimasi, Optimisasi, dan Optimalisasi, Mana yang Benar?

Untuk mengetahui definisi dari optimasi, optimisasi, dan optimalisasi, penulis melihat berdasarkan Kamus Besar Bahasa Indonesia (KBBI). Yang dimaksud dengan Optimasi adalah upaya atau cara untuk memperoleh hasil yang terbaik. Sedangkan Optimisasi merupakan proses, cara, tindakan untuk membuat suatu sistem atau rancangan seefektif atau sefungsional mungkin. Lalu, yang dimaksud dengan Optimalisasi yaitu pengoptimalan suatu upaya atau hal yang dikerjakan.

Berdasarkan definisi yang dituangkan dalam KBBI di atas, menurut penulis tidak ada yang salah dari ketiga kata tersebut, tergantung kita menggunakannya pada suatu kalimat di kondisi tertentu.

2 Apa yang dimaksud dengan optimasi terbatas dan optimasi tanpa kendala?

2.1 Optimasi Terbatas

Optimasi terbatas atau optimasi terkendala adalah suatu proses untuk mencapai keoptimalan dengan memaksilkan dan meminimalkan fungi tujuan. Akan tetapi, dengan adanya berbagai kendala dapat mengurangi kebebasan tindakan penyelesaian dan pencapaian optimasi.

Contoh

Memaksimalkan utilitas subyek \(u=f(x,y)=xy\) pada kendala \(g(x,y)=x+4y=240\). Harga per unit \(x\) adalah 1, harga \(y\) adalah 4, dan anggaran yang tersedia untuk membeli \(x\) dan \(y\) adalah 240. Pecahkan masalah dengan menggunakan pendekatan geometris!

Jawab

Berikut masalah optimasi Objective function: Memaksimalkan \(u=f(x,y)=xy\) Subject to the constraint: \(g(x,y)=x+4y=240\)

  • Step 1 : \(-{f_x \over f_y}=-{y \over x}\) (kemiringan kurva indifference)
  • Step 2 : \(-{g_x \over g_y}=-{1\over4}\) (kemiringan garis anggaran)
  • Step 3 : \(-{f_x \over f_y}=-{g_x \over g_y}\) (maksimalisasi utilitas membutuhkan kemiringan kurva ketidakpedulian agar sama dengan kemiringan garis anggaran)

\[ \begin{align} -{y \over x}=-{1\over4} \\ x=4y \end{align} \] * Step 4 : Dari langkah 3, gunakan hubungan antara x dan y dalam fungsi kendala untuk mendapatkan nilai kritis.

\[ \begin{align} x+4y=240 \\ 4y+4y=240 \\ 8y=240 \\ y=30 \end{align} \]

Dengan menggunakan \(y=30\) pada \(x=4y\), kita mendapatkan \(x=4 \times 30= 120\) Sehingga utilitas maksimalnya pada \((120,30)\)

2.2 Optimasi Tanpa Kendala

Optimasi tanpa kendala adalah suatu proses memaksimalkan dan meminimalkan fungsi tujuan yang bergantung pada variabel bilangan riil tanpa batasan pada nilainya.

Contoh Carilah titik ekstrem dari \(y=f(x)=x^3-12x^2+36x+18\)!

3 Metode atau algoritma yang sering digunakan pada Optimasi, berdasarkan:

3.1 Optimasi Satu Dimensi

f <- function (x, a) (x - a)^2
xmin <- optimize(f, c(0, 1), tol = 0.0001, a = 1/3)
xmin
## $minimum
## [1] 0.3333333
## 
## $objective
## [1] 0
f  <- function(x) ifelse(x > -1, ifelse(x < 4, exp(-1/abs(x - 1)), 10), 10)
fp <- function(x) { print(x); f(x) }

plot(f, -2,5, ylim = 0:1, col = 2)

optimize(fp, c(-4, 20))   # doesn't see the minimum
## [1] 5.167184
## [1] 10.83282
## [1] 14.33437
## [1] 16.49845
## [1] 17.83592
## [1] 18.66253
## [1] 19.1734
## [1] 19.48913
## [1] 19.68427
## [1] 19.80487
## [1] 19.8794
## [1] 19.92547
## [1] 19.95393
## [1] 19.97153
## [1] 19.9824
## [1] 19.98913
## [1] 19.99328
## [1] 19.99585
## [1] 19.99743
## [1] 19.99841
## [1] 19.99902
## [1] 19.99939
## [1] 19.99963
## [1] 19.99977
## [1] 19.99986
## [1] 19.99991
## [1] 19.99995
## [1] 19.99995
## $minimum
## [1] 19.99995
## 
## $objective
## [1] 10
optimize(fp, c(-7, 20))   # ok
## [1] 3.313082
## [1] 9.686918
## [1] -0.6261646
## [1] 1.244956
## [1] 1.250965
## [1] 0.771827
## [1] 0.2378417
## [1] 1.000451
## [1] 0.9906964
## [1] 0.9955736
## [1] 0.9980122
## [1] 0.9992315
## [1] 0.9998411
## [1] 0.9996083
## [1] 0.9994644
## [1] 0.9993754
## [1] 0.9993204
## [1] 0.9992797
## [1] 0.9992797
## $minimum
## [1] 0.9992797
## 
## $objective
## [1] 0

3.2 Optimasi Multidimensi

b<-4.7e-09
a<-(-2e-05)
M<-100
beta<-0.5
min<-function(x)
{
    x1=x[1]
    x2=x[2]
    x3=x[3]
    E=a*x1+b*x1^2+a*x2+b*x2^2+a*x3+b*x3^2
    V=(M-x1)+(M-x1-x2)+(M-x1-x2-x3)
    return (E+beta*V)
}

3.3 Model Optimasi Sederhana

# Import lpSolve package
library(lpSolve)

# Set coefficients of the objective function
f.obj <- c(5, 7)
 
# Set matrix corresponding to coefficients of constraints by rows
# Do not consider the non-negative constraint; it is automatically assumed
f.con <- matrix(c(1, 0,
                  2, 3,
                  1, 1), nrow = 3, byrow = TRUE)

# Set unequality signs
f.dir <- c("<=",
           "<=",
           "<=")

# Set right hand side coefficients
f.rhs <- c(16,
           19,
           8)

# Final value (z)
lp("max", f.obj, f.con, f.dir, f.rhs)
## Success: the objective function is 46
# Variables final values
lp("max", f.obj, f.con, f.dir, f.rhs)$solution
## [1] 5 3
# Sensitivities
lp("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$sens.coef.from
## [1] 4.666667 5.000000
lp("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$sens.coef.to
## [1] 7.0 7.5
# Dual Values (first dual of the constraints and then dual of the variables)
# Duals of the constraints and variables are mixed
lp("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$duals
## [1] 0 2 1 0 0
# Duals lower and upper limits
lp("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$duals.from
## [1] -1.000000e+30  1.600000e+01  6.333333e+00 -1.000000e+30 -1.000000e+30
lp("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$duals.to
## [1] 1.0e+30 2.4e+01 9.5e+00 1.0e+30 1.0e+30

3.4 Pemrograman Linier

library(lpSolve)
objective.in  <- c(25, 20)
const.mat     <- matrix(c(20, 12, 1/15, 1/15), nrow=2, byrow=TRUE)
const.rhs     <- c(1800, 8)
const.dir     <- c("<=", "<=")
optimum       <- lp(direction="max", objective.in, const.mat, const.dir, const.rhs)

3.5 Pemrograman Kuadrat

library(quadprog)
## Assume we want to minimize: -(0 5 0) %*% b + 1/2 b^T b
## under the constraints: A^T b >= b0
## with b0 = (-8,2,0)^T
## and (-4 2 0)
## A = (-3 1 -2)
## ( 0 0 1)
## we can use solve.QP.compact as follows:
##
Dmat <- matrix(0,3,3)
diag(Dmat) <- 1
dvec <- c(0,5,0)
Aind <- rbind(c(2,2,2),c(1,1,2),c(2,2,3))
Amat <- rbind(c(-4,2,-2),c(-3,1,1))
bvec <- c(-8,2,0)
solve.QP.compact(Dmat,dvec,Amat,Aind,bvec=bvec)
## $solution
## [1] 0.4761905 1.0476190 2.0952381
## 
## $value
## [1] -2.380952
## 
## $unconstrained.solution
## [1] 0 5 0
## 
## $iterations
## [1] 3 0
## 
## $Lagrangian
## [1] 0.0000000 0.2380952 2.0952381
## 
## $iact
## [1] 3 2

3.6 Pemrograman Nonlinier

library(nloptr)
## Warning: package 'nloptr' was built under R version 4.0.5
#
# f(x) = x1*x4*(x1 + x2 + x3) + x3
#
eval_f <- function( x ) {
return( list( "objective" = x[1]*x[4]*(x[1] + x[2] + x[3]) + x[3],
"gradient" = c( x[1] * x[4] + x[4] * (x[1] + x[2] + x[3]),
x[1] * x[4],
x[1] * x[4] + 1.0,
x[1] * (x[1] + x[2] + x[3]) ) ) )
}

4 Contoh sederhana mengenai penerapan Optimasi Sains Data dalam kehidupan sehari-hari!

Penerapan optimasi sains data sangat bermanfaat dan berguna dalam kehidupan sehari-hari. Hal itu dapat ditemukan ketika ingin meminimalkan pengeluaran dan ingin memaksimalkan keuntungan.

Sebagai contoh, ketika suatu perusahaan ingin menaikkan keuntungannya pada tahun ini dan tahun-tahun berikutnya, dengan mempertimbangkan setiap data pengeluaran yang ada pada perusahaan tersebut, akan tetapi juga ingin memiliki pengeluaran yang minim. Hal itu dapat dihitung dan dipertimbangkan dengan optimasi.

Dalam menuliskan laporan, tentu anda diharapakan untuk mampu membuat format tulisan paling standar sebagai berikut: