Linear Programming adalah model optimasi untuk menemukan solusi optimal. Ini adalah model paling sederhana dalam pengoptimalan. Model yang berguna dalam kehidupan nyata dan merupakan model yang efisien untuk menemukan solusi optimal.

Sekarang definisikan matriks B dan b2 di R:

A <- matrix(c(2, 2, 2, 4, -1, 3, -4, 3, 1, -1), nrow = 4,
ncol = 3, byrow = TRUE)
## Warning in matrix(c(2, 2, 2, 4, -1, 3, -4, 3, 1, -1), nrow = 4, ncol = 3, :
## data length [10] is not a sub-multiple or multiple of the number of rows [4]
b <- c(7, 40, 3, 0, 0)

Kemudian panggil fungsi plotPolytope() dari paket gMOIP di R:

obj <- c(2, 7)

Untuk masalah ini kami ingin meminimalkan fungsi biaya di atas politop didefinisikan oleh sistem persamaan linear dan pertidaksamaan. Di R, pertama kita mendefinisikan matriks dan 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))

Kemudian kita mendefinisikan vektor 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)

Sekarang kita mendefinisikan fungsi biaya 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("=", "=", "=", "=", "=", "=", "=", "=", "=", "=", "=",
">=", ">=", ">=", ">=", ">=", ">=", ">=", ">=", ">=", ">=",
">=", ">=", ">=", ">=", ">=", ">=", ">=", ">=")

Fungsi linprog() menggunakan metode titik interior untuk menemukan yang optimal nilai sebagai metode default. Ada banyak fungsi pengoptimalan yang berguna untuk menemukan nilai optimal untuk masalah pemrograman linier. Terutama Gurobi https://www.gurobi.com/ adalah pemecah yang efisien untuk masalah berskala besar.