Optimasi adalah proses mencari solusi optimal (minimum atau maksimum) dengan memperhatikan batasan yang ada. optimasi memaksimalkan atau meminimalkan beberapa fungsi relative terhadap beberapa set, sering mewakili berbagai pilihan yang tersedia dalam situasi tertentu. Fungsinya memungkinkan perbandingan pilihan yang berbeda untuk menentukan mana yang bias dijadikan pilihan yang terbaik.
Optimasi juga ada 2 yaitu optimasi terbatas, dan optimasi tanpa kendala
Contoh :
seorang produsen sendal membuat 2 model sendal menggunakan 2 bahan yang berbeda. komposisi model pertama terdiri dari 200 gr bahan pertama dan 150gr bahan kedua. sedangkan komposisi model kedua terdiri dari 180 gr bahan pertama dan 170gr bahan kedua. persediaan di gudang bahan oertama 72kg dan bahan kedua 64kg. harga model pertama adalah Rp 500.000,00 dan model kedua Rp 400.000,00. berapa banyak sendal model pertama dan kedua harus diproduksi agar bisa mencapai keuntungan maksimal?
Contoh :
Tentukan ekstrim mutlak dari fungsi f(x)=x2−4x+5 pada selang [1,4]
Jadi di dalam optimasi ini metode algoritma yang sering digunakan ada 6 yaitu :
f <- function(x) {sin(x) + sin(2 * x) + cos(3 * x)}
optimize(f, interval = c(0, 2 * pi))
## $minimum
## [1] 3.033129
##
## $objective
## [1] -1.054505
f <- function(x) 2*(x[1]-1)^2+5*(x[2]-3)^2+10
optim(c(1,1),f)
## $par
## [1] 1.000168 3.000232
##
## $value
## [1] 10
##
## $counts
## function gradient
## 75 NA
##
## $convergence
## [1] 0
##
## $message
## NULL
Model Optimasi Sederhana Model optimasi sederahana menggunakan metode addVariable
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)
# Optimal values of x1 and x2
optimum$solution
## [1] 45 75
#objective at minimum
optimum$objval
## [1] 2625
library(quadprog)
Dmat <- matrix(c(356.25808, 12.31581, 261.88302, 12.31581, 27.24840, 18.50515, 261.88302, 18.50515,535.45960), nrow=3, ncol=3)
dvec <- matrix(c(9.33, 3.33, 9.07), nrow=3, ncol=1)
A.Equality <- matrix(c(1,1,1), ncol=1)
Amat <- cbind(A.Equality, dvec, diag(3), -diag(3))
bvec <- c(1, 5.2, rep(0, 3), rep(-0.5, 3))
qp <- solve.QP(Dmat, dvec, Amat, bvec, meq=1)
qp$solution
## [1] 0.3808733 0.5000000 0.1191267
6.Pemrograman Nonlinier