Linear Programming Menggunakan OR-Tools

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.

Sharing is caring:

Leave a Comment