Reference API¶
Problem¶
-
class
Problem
¶
Models an LP problem
Main methods¶
-
Problem.
markHotStart
()¶
Makes an internal optimization snapshot of the problem (an internal warmstart object is built)
-
Problem.
unmarkHotStart
()¶
Deletes the internal snapshot of the problem (if existing)
-
Problem.
solve
(True/False)¶
- Solves the internal problem:
- If an internal snapshot exists, use it.
- If the problem has already been solved, use the internal ReSolve.
- If the argument is true, add a branch and bound call.
-
Problem.
status
¶
RO Attribute. string describing the solver status: “undefined”, “abandoned”, “optimal”, “infeasible” or “limitreached”. You can get more details using the properties:
- isAbandoned
- isProvenOptimal
- isProvenPrimalInfeasible
- isProvenDualInfeasible
- isPrimalObjectiveLimitReached
- isDualObjectiveLimitReached
- isIterationLimitReached
-
Problem.
writeLp
("filename")¶
Write the problem in a file (lp format). The argument is appended the extension ”.lp”
Objective¶
-
Problem.
obj
¶
Represents the objective of the problem.
-
Problem.obj.
value
¶
RO attribute (double). Objective value
-
Problem.obj.
maximize
¶
RW attribute (bool) min/max problem
-
Problem.obj.
name
¶
RW attribute (string) name
-
Problem.obj.
__len__
¶
RO attribute (int) number of columns
-
Problem.obj.
__iter__
()¶
Makes iterable
-
Problem.obj.
__getitem__
()¶
get the given coef with Problem.obj[i]
-
Problem.obj.
__setitem__
()¶
set the given coef with Problem.obj[i] = double
Rows¶
-
Problem.
rows
¶
Represents every rows
-
Problem.rows.
add
(vec([(1, 2.0), (3, 0.1), ...]))¶
adds the given row to the problem and returns a Row object
-
Problem.rows.
__len__
¶
the number of rows
-
Problem.rows.
__iter__
()¶
Makes iterable
-
Problem.rows.
__getitem__
()¶
allows to get the row of index with Problem.rows[i]
-
Problem.rows.
__delitem__
()¶
deletes the row of given index with del Problem.rows[i]
-
Problem.rows[i].index
RO Attribute (int) index in the problem
-
Problem.rows[i].name
RW Attribute (string) name of the row
-
Problem.rows[i].lowerbound
RW Attribute (double) lowerbound of the row
-
Problem.rows[i].upperbound
RW Attribute (double) upperbound of the row
-
Problem.rows[i].indices
RO Attribute (list of int) indices of the columns refered by the row
-
Problem.rows[i].values
RO Attribute (list of double) values of the coefficients for the columns refered by the row
-
Problem.rows[i].dual
RW Attribute (double) dual value of the row
-
Problem.rows[i].activity
RO Attribute (double) activity of the row
Columns¶
-
Problem.
cols
¶
Variables Represent all the columns of the problem
-
Problem.cols.
add
(vec([(1, 2.0), (3, 0.1), ...]))¶
adds the given column (returns a Col object)
-
Problem.cols.
__len__
¶
returns the number of columns
-
Problem.cols.
__getitem__
()¶
returns the column at the given index with Problem.cols[i]
-
Problem.cols.
__iter__
()¶
make iterable
-
Problem.cols.
__delitem__
()¶
deletes the column at given index with del Problem.cols[i]
-
Problem.cols[i].index
RO Attribute (int) index in problem
-
Problem.cols[i].name
RW Attribute (string) name
-
Problem.cols[i].lowerbound
RW Attribute (double) lowerbound
-
Problem.cols[i].upperbound
RW Attribute (double) upperbound
-
Problem.cols[i].indices
RO Attribute (list of int) indices of the row refered by the column
-
Problem.cols[i].values
RO Attribute (list of double) values of the coefficients for the rows refered by the column
-
Problem.cols[i].solution
RW Attribute (double) solution
-
Problem.cols[i].reducedcost
RO Attribute (double) reduced cost
-
Problem.cols[i].integer
RW Attribute (double) integer variable?
Problem Tuning¶
-
Problem.
maxNumIterations
¶
RW attribute (int) The maximum number of iterations (whatever that means for the given solver) the solver can execute before terminating (When solving/resolving)
-
Problem.
maxNumIterationsHotStart
¶
RW attribute (int) The maximum number of iterations (whatever that means for the given solver) the solver can execute when hot starting before terminating.
-
Problem.
dualObjectiveLimit
¶
RW attribute (double) Dual objective limit. This is to be used as a termination criteria in methods where the dual objective monotonically changes (e.g., dual simplex, the volume algorithm)
-
Problem.
primalObjectiveLimit
¶
RW attribute (double) Primal objective limit. This is to be used as a termination criteria in methods where the primal objective monotonically changes (e.g., primal simplex)
-
Problem.
dualTolerance
¶
RW attribute (double) The maximum amount the dual constraints can be violated and still be considered feasible.
-
Problem.
primalTolerance
¶
RW attribute (double) The maximum amount the primal constraints can be violated and still be considered feasible.
-
Problem.
objOffset
¶
RW attribute (double) The value of any constant term in the objective function.
-
Problem.
doPreSolveInInitial
¶
RW attribute (bool) Whether to do a presolve in initialSolve.
-
Problem.
doDualInInitial
¶
RW attribute (bool) Whether to use a dual algorithm in initialSolve. The reverse is to use a primal algorithm
-
Problem.
doPreSolveInReSolve
¶
RW attribute (bool) Whether to do a presolve in resolve
-
Problem.
doDualInResolve
¶
RW attribute (bool) Whether to use a dual algorithm in resolve. The reverse is to use a primal algorithm
-
Problem.
doScale
¶
RW attribute (bool) Whether to scale problem
-
Problem.
doCrash
¶
RW attribute (bool) Whether to create a non-slack basis (only in initialSolve)
-
Problem.
doInBranchAndCut
¶
RW attribute (bool) Whether we are in branch and cut - so can modify behavior
-
Problem.
iterationCount
¶
RO attribute (int) Get the number of iterations it took to solve the problem (whatever iteration means to the solver).
-
Problem.
integerTolerance
¶
RO attribute (double) Get the integer tolerance of the solver
-
Problem.
isAbandoned
¶
RO attribute (bool) Are there numerical difficulties?
-
Problem.
isProvenOptimal
¶
RO attribute (bool) Is optimality proven?
-
Problem.
isProvenPrimalInfeasible
¶
RO attribute (bool) Is primal infeasiblity proven?
-
Problem.
isProvenDualInfeasible
¶
RO attribute (bool) Is dual infeasiblity proven?
-
Problem.
isPrimalObjectiveLimitReached
¶
RO attribute (bool) Is the given primal objective limit reached?
-
Problem.
isDualObjectiveLimitReached
¶
RO attribute (bool) Is the given dual objective limit reached?
-
Problem.
isIterationLimitReached
¶
RO attribute (bool) Iteration limit reached?