本文介绍 Python 语言调用 OR-Tools 求解器,求解线性规划模型和整数规划模型的代码示例。
线性规划模型 - Klee-Minty Cube
Klee-Minty Cube 问题:
代码示例:
from datetime import datetime
from ortools.linear_solver import pywraplp
n = 100
epsilon = 0.1
# instantiate a Glop solver
solver = pywraplp.Solver('klee_minty_cube', problem_type=pywraplp.Solver.GLOP_LINEAR_PROGRAMMING)
# variables
x = [solver.NumVar(0, solver.infinity(), 'x_{}'.format(i)) for i in range(n)]
# constraints
solver.Add(0 <= x[0])
solver.Add(x[0] <= 1)
for i in range(1, n):
solver.Add(epsilon * x[i - 1] <= x[i])
solver.Add(x[i] <= 1 - epsilon * x[i - 1])
# objective
solver.Maximize(x[n - 1])
# solve
dts = datetime.now()
status = so