Pada modul ini kita akan membahas penggunaan Google OR-Tools untuk menyelesaiakan Mixed integer problem.
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 ortools.linear_solver import pywraplp #definisikan solver, kita gunakan SCIP solver = pywraplp.Solver.CreateSolver('SCIP') #definisikan variable, perhatikan karena x integer, digunakan solver.IntVar x = solver.IntVar(0,10,'x') y = solver.NumVar(0,10,'y') #definisikan constraint solver.Add(-x+2*y<=7) solver.Add(2*x+y<=14) solver.Add(2*x-y<=10) #definisikan objective function solver.Maximize(x+y) results = solver.Solve() if results==pywraplp.Solver.OPTIMAL: print('Optimal Found') print('x:', x.solution_value()) print('y:', y.solution_value())
Optimal Found
x: 4.0
y: 5.5
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 solver dan variable x.
#digunakan solver scip untuk solve mixed integer.
solver = pywraplp.Solver.CreateSolver('SCIP')
#mendefinisikan variable x sebagai integer.
x = solver.IntVar(0,10,'x')