Pada linear programming, persamaan yang digunakan adalah linear dengan continuous variable. Sederhananya, ciri persamaan linear adalah
- Tidak menggunakan perkalian antara dua variable
- Tidak menggunakan fungsi non linear seperti sin(x), cos(x) dan lainnya.
Seperti yang sudah dibahas sebelumnya, tutorial ini tidak akan membahas proses merumuskan problem ke model matematika.
Jadi untuk sederhananya, model matematika yang harus diselesaikan dengan linear programming sudah kita sediakan.
#objective function
max x + y
#constraint
-x + 2y <= 8
2x + y <= 14
2x - y <= 10
0 <= x <= 10
0 <= y <= 10

Untuk menyelesaikan problem optimization diatas banyak framework yang bisa digunakan. Kita akan bahas beberapa framework.
Or-Tools
Or-Tools adalah framework linear programming yang di develop oleh Google. Or-Tools sangat mudah digunakan dan support beberapa solver seperti, Gurobi, CPLEX dan GLOP.
Or-Tools dapat menyelesaikan Linear dan Integer Linear Problem.
Untuk menggunakan Or-Tools, ketikan perintah berikut pada command prompt.
python -m pip install --upgrade --user ortools
Setelah instalasi selesai, gunakan text editor untuk membuat program untuk menyelesaikan linear problem diatas.
#import library yang digunakan from ortools.linear_solver import pywraplp #tentukan solver, dalam hal ini di gunakan GLOP solver = pywraplp.Solver.CreateSolver('GLOP') #mendefinisikan variable, lihat persamaan diatas untuk melihat batas atas dan bawah. #dari variable x dan y. x = solver.NumVar(0,10,'x') y = solver.NumVar(0,10,'y') #constraint (lihat persamaan constraint diatas). solver.Add(-x+2*y<=8) solver.Add(2*x+y<=14) solver.Add(2*x-y<=10) #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: 6.0
Pembahasan Code
Silakan lihat komentar pada code diatas untuk melihat penjelasan program.
Jika Anda ingin menggunakan solver lain, Anda cukup mengganti bagian perintah CreateSolver, isi parameter dengan solver yang akan digunakan. Contoh:
solver = pywraplp.Solver.CreateSolver('Gurabi')
Perhatian, code diatas akan berjalan bila Anda sudah menginstall Gurabi solver.