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')