Mixed Integer Linear Programming Menggunakan SCIP

Masih melanjutkan topik Mixed Integer, oada modul ini akan dibahas penggunaan SCIP untuk.

Model matematik yang digunakan masih sama dengan modul sebelumnya.

#objective function

  max x + y

#constraint

  -x + 2y <= 7
  2x + y <= 14
  2x - y <= 10
  0 <= x <= 10
  0 <= y <= 10

x integer
#import library yang diperlukan
from pyscipopt import Model

#definisikan nama model
model = Model('latihan')

#definsikan variable
x = model.addVar('x',lb=0,ub=10, vtype='INTEGER')
y = model.addVar('y',lb=0,ub=10)

#definsikan objective function
model.setObjective(x+y, sense='maximize')

#definsikan constraint
model.addCons(-x+2*y<=7)
model.addCons(2*x+y<=14)
model.addCons(2*x-y<=10)

model.optimize()

sol = model.getBestSol()

print('x=',sol[x])
print('y=',sol[y])
feasible solution found by trivial heuristic after 0.0 seconds, objective value 0.000000e+00
presolving:
...
... log truncate
...
presolved problem has 2 variables (0 bin, 1 int, 0 impl, 1 cont) and 3 constraints
      3 constraints of type <varbound>
Presolving Time: 0.00

...
... log truncate
...

SCIP Status        : problem is solved [optimal solution found]
Solving Time (sec) : 0.00
Solving Nodes      : 1
Primal Bound       : +9.50000000000000e+00 (6 solutions)
Dual Bound         : +9.50000000000000e+00
Gap                : 0.00 %
x= 4.0

Pembahasan Code

Silakan lihat komentar pada code diatas untuk melihat penjelasan program. Dapat Anda perhatikan, proses dan logika coding tidak ada yang berubah dengan linear programming sebelumnya.

Perbadaanya saat mendefinisikan variable x.

#mendefinisikan variable x sebagai integer.
x = model.addVar('x',lb=0,ub=10, vtype='INTEGER')
Sharing is caring:

Leave a Comment