Nama : Fairuz Ardhan Haunan

NIM : 220605110038

Kelas : Linear Algebra A

Dosen Pengampu : Prof. Dr. Suhartono, M.Kom.

Jurusan : Teknik Informatika

Universitas : UIN Maulana Malik Ibrahim Malang

Kita akan mengaplikasikan package lpSolve pada R untuk mencari nilai optimal pada permasalahan pemograman linear dengan data set Guinness.

Kita akan menetapkan permasalahan ini sebagai sistem persamaan linear dan pertidaksamaan linear. untuk situs produksi, jadikan 1 = Achimota dan 2 = Kaasi. Untuk pendistribusi, jadikan 1 = FTA, 2 = RICKY, 3 = OBIBAJK, 4 = KADOM, 5 = NAATO, 6 = LESK, 7 = DCEE, 8 = JOEMAN, dan 9 = KBOA. Kemudian kita tetapkan variable-variable tersebut menjadi tabel dibawah ini.

Pada pemograman R, langkah pertama kita definisikan matrix dan vektor-vektor untuk mendefinisikan polytope menggunakan fungsi diag() dan fungsi rbind().

A <- matrix(c(1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 1), nrow = 11, ncol = 18, byrow = TRUE)
f.con <- rbind(A, diag(18))

Lalu kita definisikan vector untuk sisi kanan

f.rhs <- c(1298, 1948,465 ,605 ,451 ,338 ,260 ,183 ,282 ,127 ,535,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

Lalu kita definisikan fungsi cost dan persamaan atau pertidaksamaan :

f.obj <- c(39.99, 126.27, 102.70, 81.68, 38.81, 71.99,
31.21, 22.28, 321.04, 145.36, 33.82, 154.05, 64.19,
87.90, 107.98, 65.45, 39.08, 167.38)
f.dir <- c("=", "=", "=", "=", "=", "=", "=", "=", "=", "=", "=",
">=", ">=", ">=", ">=", ">=", ">=", ">=", ">=", ">=", ">=",
">=", ">=", ">=", ">=", ">=", ">=", ">=", ">=")

Lalu kita gunakan fungsi lp() dari package lpSolve untuk mencari solusi optimal dan juga nilai optimalnya.

library(lpSolve)
Sol <- lp ("min", f.obj, f.con, f.dir, f.rhs)

Argumen pertama dari fungsi lp() seharusnya menjadi “min” untuk permasalahan kita sejak kita meminimalisasikan fungsi cost dari polytope.

Untuk melihat nilai optimal kita gunakan “Sol$objval”.

Sol$objval
## [1] 245498.9

Sol$solution digunakan untuk mencari nilai optimal tersebut.

Sol$solution
##  [1] 465   0 451   0 260 122   0   0   0   0 605   0 338   0  61 282 127 535