Solving Linear Programs¶
-
class
cdd.
LinProg
(mat)¶ A class for solving linear programs.
Bases:
NumberTypeable
Parameters: mat ( Matrix
) – The matrix to load the linear program from.
Methods and Attributes¶
-
LinProg.
solve
(solver=cdd.LPSolverType.DUAL_SIMPLEX)¶ Solve linear program.
Parameters: solver ( int
) – The method of solution (seeLPSolverType
).
-
LinProg.
obj_value
¶ The optimal value of the objective function.
-
LinProg.
solver
¶ The type of solver to use (see
LPSolverType
).
-
LinProg.
status
¶ The status of the linear program (see
LPStatusType
).
Example¶
>>> import cdd
>>> mat = cdd.Matrix([['4/3',-2,-1],['2/3',0,-1],[0,1,0],[0,0,1]], number_type='fraction')
>>> mat.obj_type = cdd.LPObjType.MAX
>>> mat.obj_func = (0,3,4)
>>> print(mat)
begin
4 3 rational
4/3 -2 -1
2/3 0 -1
0 1 0
0 0 1
end
maximize
0 3 4
>>> print(mat.obj_func)
(0, 3, 4)
>>> lp = cdd.LinProg(mat)
>>> lp.solve()
>>> lp.status == cdd.LPStatusType.OPTIMAL
True
>>> print(lp.obj_value)
11/3
>>> print(" ".join("{0}".format(val) for val in lp.primal_solution))
1/3 2/3
>>> print(" ".join("{0}".format(val) for val in lp.dual_solution))
3/2 5/2