fromortools.linear_solverimportpywraplpsolver=pywraplp.Solver.CreateSolver("GLOP")# LP. "CBC" for MIPx=solver.NumVar(0,solver.infinity(),"x")y=solver.NumVar(0,solver.infinity(),"y")solver.Add(x+2*y<=14);solver.Add(3*x-y>=0)solver.Maximize(3*x+4*y)solver.Solve()
Integer/Mixed-Integer LP
# PuLP with integer variablesx=LpVariable("x",lowBound=0,cat="Integer")y=LpVariable("y",lowBound=0,upBound=1,cat="Binary")# branch-and-bound: LP relaxation → branch on fractional vars
Transportation problem
# min sum c_ij x_ij s.t. sum_j x_ij = supply_i, sum_i x_ij = demand_jcosts=[[8,6,10],[9,12,13],[14,9,16]]supply=[20,30,25];demand=[10,35,30]# flatten to linprog
Sensitivity / dual
# scipy returns marginals via res.ineqlin.marginals (HiGHS)# Dual variable = shadow price of constraint