Mixed-integer Optimization¶
Modeling a MIP¶
Mathematical Expressions¶
Can manipulate mathematical expressions |
75% |
Can add mathematical expressions together via overloaded operator+ |
97% |
Can subtract mathematical expressions from each other via overloaded operator- |
97% |
||
Can multiply mathematical expressions with each other via overloaded operator* |
94% |
||
Can divide mathematical expressions by each other via overloaded operator/ |
86% |
||
Can iterate over terms in mathematical expressions |
0% |
Variables¶
Can add variables to a model |
100% |
Can add a new variable with bounds and type |
100% |
Can add a new variable with bounds, type and column |
100% |
||
Can add an existing variable |
100% |
||
Can add an existing variable with new bounds and type |
100% |
||
Can add an existing variable with new bounds, type and column |
100% |
||
Can add multiple new variables with bounds and type |
100% |
||
Can add multiple existing variables |
100% |
||
Throws an exception if a variable is added twice |
100% |
||
Can update variables in a model |
100% |
Can update a variable’s bound |
100% |
Can update a variable’s type |
100% |
||
Can update a variable’s column |
100% |
||
Can update a variable’s objective coefficient |
100% |
||
Throws an exception if trying to update a variable that is not in the model |
100% |
||
Can remove a variable from a model |
100% |
Can remove a variable |
100% |
Throws an exception if trying to remove a variable that is not in the model |
100% |
||
Can access a variable in a model |
100% |
Can retrieve a variable’s bound |
100% |
Can retrieve a variable’s type |
100% |
||
Can retrieve a variable’s column |
100% |
||
Can retrieve a variable’s objective coefficient |
100% |
||
Throws an exception if trying to retrieve info of a variable which is not in the model |
100% |
||
Can iterate over variables in a model |
100% |
||
Can retrieve a variable’s index |
100% |
||
Can retrieve a variable by index |
100% |
Linear Constraints¶
Can add a linear constraint to a model |
100% |
Can add a new linear constraint with type and expression |
100% |
Can add an existing linear constraint |
100% |
||
Can add an existing linear constraint with new type and expression |
100% |
||
Can add multiple new linear constraints with type and right-hand side |
100% |
||
Can add multiple existing linear constraints with type and right-hand side |
100% |
||
Can update a linear constraint in a model |
100% |
Can update a coefficient in the linear constraints matrix |
100% |
Can update the left-hand side of a linear constraint |
100% |
||
Can update the right-hand side of a linear constraint |
100% |
||
Can update the type of a linear constraint |
100% |
||
Can remove a linear constraint from a model |
100% |
Can remove a linear constraint |
100% |
Throws an exception if trying to remove a linear constraint which is not in the model |
100% |
||
Can access a linear constraint in a model |
100% |
Can retrieve a linear constraint’s type |
100% |
Can retrieve a linear constraint’s right-hand side |
100% |
||
Can retrieve a linear constraint’s left-hand side |
100% |
||
Can retrieve a linear constraint’s index |
100% |
||
Can retrieve a linear constraint by index |
100% |
||
Can iterate over linear constraints in a model |
100% |
Quadratic Constraints¶
Can add a quadratic constraint to a model |
0% |
Can add a new quadratic constraint with type and expression |
0% |
Can add an existing quadratic constraint |
0% |
||
Can add an existing quadratic constraint with new type and expression |
0% |
||
Can add multiple new quadratic constraints with type and right-hand side |
0% |
||
Can add multiple existing quadratic constraints with type and right-hand side |
0% |
||
Can remove a quadratic constraint from a model |
50% |
Can remove a quadratic constraint |
0% |
Throws an exception if trying to remove a quadratic constraint which is not in the model |
100% |
||
Can access a quadratic constraint in a model |
0% |
Can retrieve a quadratic constraint’s type |
0% |
Can retrieve a quadratic constraint’s expression |
0% |
||
Can retrieve a quadratic constraint’s index |
0% |
||
Can retrieve a quadratic constraint by index |
0% |
||
Can iterate over quadratic constraints in a model |
0% |
Objective¶
Can set the objective function of a model |
0% |
Can set a linear objective function |
0% |
Can set an affine objective function |
0% |
||
Can set a quadratic objective function |
0% |
||
Can set the objective sense |
0% |
||
Can update the objective function of a model |
0% |
Can update the objective coefficient of a variable |
0% |
Can update the objective constant |
0% |
||
Can update the objective sense |
0% |
||
Can access the objective function of a model |
0% |
Can retrieve the objective function |
0% |
Can retrieve the objective coefficient of a variable |
0% |
||
Can retrieve the objective sense |
0% |
Interfacing with GLPK¶
Solving LPs¶
Can solve a feasible LP |
26% |
Can retrieve primal solution |
100% |
Can retrieve dual solution |
56% |
||
Can retrieve reduced costs |
0% |
||
Can retrieve basis |
0% |
||
Throws an exception if primal ray is asked |
0% |
||
Throws an exception if farkas certificate is asked |
0% |
||
Can update and re-optimize a feasible LP |
0% |
Can add cut and re-optimize |
0% |
Can add column and re-optimize |
0% |
||
Can change bounds and re-optimize |
0% |
||
Can add cut and column and re-optimize |
0% |
||
Can change objective function and re-optimize |
0% |
||
Can change right-hand side and re-optimize |
0% |
||
Can change left-hand side and re-optimize |
0% |
||
Can remove a constraint and re-optimize |
0% |
||
Can remove a variable and re-optimize |
0% |
||
Can add and remove the same variable and re-optimize |
0% |
||
Can add and remove a different variable and re-optimize |
0% |
||
Can add and remove the same constraint |
0% |
||
Can add and remove a different constraint |
0% |
||
Can add a constraint which depends on a variable that is then removed |
0% |
||
Can add a variable which depends on a constraint that is then removed |
0% |
||
Can update a variable’s bound then remove it |
0% |
||
Can write a model to a file and read it back |
0% |
||
Can change the objective function then remove a variable which appears in the objective function |
0% |
||
Can update the objective function constant |
0% |
||
Can solve an infeasible LP |
50% |
Throws an exception if primal values are asked |
0% |
Can retrieve a Farkas certificate |
100% |
||
Can solve an unbounded LP |
50% |
Throws an exception if primal values are asked |
0% |
Can retrieve a dual ray |
100% |
Solving MILPs¶
Can solve a feasible MIP which is integer at the root node |
33% |
Can retrieve primal solution |
100% |
Can retrieve the number of solutions |
0% |
||
Can iterate over solutions |
0% |
||
Can solve a feasible MIP which is not integer at the root node |
33% |
Can retrieve the primal solution |
100% |
Can retrieve the number of solutions |
0% |
||
Can iterate over solutions |
0% |
||
Can solve an infeasible MIP which is infeasible at root node |
50% |
Can retrieve the solution status |
100% |
Can compute an irreducible infeasible sub-system |
0% |
||
Can solve an infeasible MIP which is feasible at the root node |
50% |
Can retrieve the solution status |
100% |
Can compute an irreducible infeasible sub-system |
0% |
||
Can solve an unbounded MIP |
100% |
Can retrieve the solution status |
100% |
Can set parameters of the underlying solver |
0% |
Can set a time limit |
0% |
Can turn off presolve |
0% |
||
Can activate infeasible or unbounded info |
0% |
||
Can set an external parameter |
0% |
||
Can set a thread limit |
0% |
||
Can set a relative MIP gap |
0% |
||
Can set an absolute MIP gap |
0% |
||
Can set a best bound stop |
0% |
||
Can set a best obj stop |
0% |
||
Can set an iteration limit |
0% |
||
Can turn on logs |
0% |
||
Can set the maximum number of solutions in the pool |
0% |
Callbacks¶
Can add universal callbacks to monitor the execution of the algorithm |
0% |
Can retrieve root node gap |
0% |
Can retrieve root node solution |
0% |
||
Can access nodes’ solutions |
0% |
||
Can access integer solutions |
0% |
||
Can add universal callbacks to influence the execution of the algorithm |
0% |
Can add user cut |
0% |
Can add lazy constraint |
0% |
||
Can terminate the algorithm |
0% |
Interfacing with HiGHS¶
Solving LPs¶
Can solve a feasible LP |
26% |
Can retrieve primal solution |
100% |
Can retrieve dual solution |
56% |
||
Can retrieve reduced costs |
0% |
||
Can retrieve basis |
0% |
||
Throws an exception if primal ray is asked |
0% |
||
Throws an exception if farkas certificate is asked |
0% |
||
Can update and re-optimize a feasible LP |
0% |
Can add cut and re-optimize |
0% |
Can add column and re-optimize |
0% |
||
Can change bounds and re-optimize |
0% |
||
Can add cut and column and re-optimize |
0% |
||
Can change objective function and re-optimize |
0% |
||
Can change right-hand side and re-optimize |
0% |
||
Can change left-hand side and re-optimize |
0% |
||
Can remove a constraint and re-optimize |
0% |
||
Can remove a variable and re-optimize |
0% |
||
Can add and remove the same variable and re-optimize |
0% |
||
Can add and remove a different variable and re-optimize |
0% |
||
Can add and remove the same constraint |
0% |
||
Can add and remove a different constraint |
0% |
||
Can add a constraint which depends on a variable that is then removed |
0% |
||
Can add a variable which depends on a constraint that is then removed |
0% |
||
Can update a variable’s bound then remove it |
0% |
||
Can write a model to a file and read it back |
0% |
||
Can change the objective function then remove a variable which appears in the objective function |
0% |
||
Can update the objective function constant |
0% |
||
Can solve an infeasible LP |
50% |
Throws an exception if primal values are asked |
0% |
Can retrieve a Farkas certificate |
100% |
||
Can solve an unbounded LP |
50% |
Throws an exception if primal values are asked |
0% |
Can retrieve a dual ray |
100% |
Solving MILPs¶
Can solve a feasible MIP which is integer at the root node |
33% |
Can retrieve primal solution |
100% |
Can retrieve the number of solutions |
0% |
||
Can iterate over solutions |
0% |
||
Can solve a feasible MIP which is not integer at the root node |
33% |
Can retrieve the primal solution |
100% |
Can retrieve the number of solutions |
0% |
||
Can iterate over solutions |
0% |
||
Can solve an infeasible MIP which is infeasible at root node |
50% |
Can retrieve the solution status |
100% |
Can compute an irreducible infeasible sub-system |
0% |
||
Can solve an infeasible MIP which is feasible at the root node |
50% |
Can retrieve the solution status |
100% |
Can compute an irreducible infeasible sub-system |
0% |
||
Can solve an unbounded MIP |
0% |
Can retrieve the solution status |
0% |
Can set parameters of the underlying solver |
0% |
Can set a time limit |
0% |
Can turn off presolve |
0% |
||
Can activate infeasible or unbounded info |
0% |
||
Can set an external parameter |
0% |
||
Can set a thread limit |
0% |
||
Can set a relative MIP gap |
0% |
||
Can set an absolute MIP gap |
0% |
||
Can set a best bound stop |
0% |
||
Can set a best obj stop |
0% |
||
Can set an iteration limit |
0% |
||
Can turn on logs |
0% |
||
Can set the maximum number of solutions in the pool |
0% |
Callbacks¶
Can add universal callbacks to monitor the execution of the algorithm |
0% |
Can retrieve root node gap |
0% |
Can retrieve root node solution |
0% |
||
Can access nodes’ solutions |
0% |
||
Can access integer solutions |
0% |
||
Can add universal callbacks to influence the execution of the algorithm |
0% |
Can add user cut |
0% |
Can add lazy constraint |
0% |
||
Can terminate the algorithm |
0% |
Interfacing with Mosek¶
Solving LPs¶
Can update and re-optimize a feasible LP |
0% |
Can add cut and re-optimize |
0% |
Can add column and re-optimize |
0% |
||
Can change bounds and re-optimize |
0% |
||
Can add cut and column and re-optimize |
0% |
||
Can change objective function and re-optimize |
0% |
||
Can change right-hand side and re-optimize |
0% |
||
Can change left-hand side and re-optimize |
0% |
||
Can remove a constraint and re-optimize |
0% |
||
Can remove a variable and re-optimize |
0% |
||
Can add and remove the same variable and re-optimize |
0% |
||
Can add and remove a different variable and re-optimize |
0% |
||
Can add and remove the same constraint |
0% |
||
Can add and remove a different constraint |
0% |
||
Can add a constraint which depends on a variable that is then removed |
0% |
||
Can add a variable which depends on a constraint that is then removed |
0% |
||
Can update a variable’s bound then remove it |
0% |
||
Can write a model to a file and read it back |
0% |
||
Can change the objective function then remove a variable which appears in the objective function |
0% |
||
Can update the objective function constant |
0% |
Solving MILPs¶
Can set parameters of the underlying solver |
0% |
Can set a time limit |
0% |
Can turn off presolve |
0% |
||
Can activate infeasible or unbounded info |
0% |
||
Can set an external parameter |
0% |
||
Can set a thread limit |
0% |
||
Can set a relative MIP gap |
0% |
||
Can set an absolute MIP gap |
0% |
||
Can set a best bound stop |
0% |
||
Can set a best obj stop |
0% |
||
Can set an iteration limit |
0% |
||
Can turn on logs |
0% |
||
Can set the maximum number of solutions in the pool |
0% |
Callbacks¶
Can add universal callbacks to monitor the execution of the algorithm |
0% |
Can retrieve root node gap |
0% |
Can retrieve root node solution |
0% |
||
Can access nodes’ solutions |
0% |
||
Can access integer solutions |
0% |
||
Can add universal callbacks to influence the execution of the algorithm |
0% |
Can add user cut |
0% |
Can add lazy constraint |
0% |
||
Can terminate the algorithm |
0% |
Warning
There was an error while parsing the test report _static/reports/test_wrapper_Gurobi.xml.
[Errno 2] No such file or directory: ‘_static/reports/test_wrapper_Gurobi.xml’
Interfacing with Clp through coin-or/Osi¶
Solving LPs¶
Can solve a feasible LP |
26% |
Can retrieve primal solution |
100% |
Can retrieve dual solution |
56% |
||
Can retrieve reduced costs |
0% |
||
Can retrieve basis |
0% |
||
Throws an exception if primal ray is asked |
0% |
||
Throws an exception if farkas certificate is asked |
0% |
||
Can update and re-optimize a feasible LP |
0% |
Can add cut and re-optimize |
0% |
Can add column and re-optimize |
0% |
||
Can change bounds and re-optimize |
0% |
||
Can add cut and column and re-optimize |
0% |
||
Can change objective function and re-optimize |
0% |
||
Can change right-hand side and re-optimize |
0% |
||
Can change left-hand side and re-optimize |
0% |
||
Can remove a constraint and re-optimize |
0% |
||
Can remove a variable and re-optimize |
0% |
||
Can add and remove the same variable and re-optimize |
0% |
||
Can add and remove a different variable and re-optimize |
0% |
||
Can add and remove the same constraint |
0% |
||
Can add and remove a different constraint |
0% |
||
Can add a constraint which depends on a variable that is then removed |
0% |
||
Can add a variable which depends on a constraint that is then removed |
0% |
||
Can update a variable’s bound then remove it |
0% |
||
Can write a model to a file and read it back |
0% |
||
Can change the objective function then remove a variable which appears in the objective function |
0% |
||
Can update the objective function constant |
0% |
||
Can solve an infeasible LP |
50% |
Throws an exception if primal values are asked |
0% |
Can retrieve a Farkas certificate |
100% |
||
Can solve an unbounded LP |
50% |
Throws an exception if primal values are asked |
0% |
Can retrieve a dual ray |
100% |
Solving MILPs¶
Can solve a feasible MIP which is integer at the root node |
33% |
Can retrieve primal solution |
100% |
Can retrieve the number of solutions |
0% |
||
Can iterate over solutions |
0% |
||
Can solve a feasible MIP which is not integer at the root node |
33% |
Can retrieve the primal solution |
100% |
Can retrieve the number of solutions |
0% |
||
Can iterate over solutions |
0% |
||
Can solve an infeasible MIP which is infeasible at root node |
50% |
Can retrieve the solution status |
100% |
Can compute an irreducible infeasible sub-system |
0% |
||
Can solve an infeasible MIP which is feasible at the root node |
50% |
Can retrieve the solution status |
100% |
Can compute an irreducible infeasible sub-system |
0% |
||
Can solve an unbounded MIP |
0% |
Can retrieve the solution status |
0% |
Can set parameters of the underlying solver |
0% |
Can set a time limit |
0% |
Can turn off presolve |
0% |
||
Can activate infeasible or unbounded info |
0% |
||
Can set an external parameter |
0% |
||
Can set a thread limit |
0% |
||
Can set a relative MIP gap |
0% |
||
Can set an absolute MIP gap |
0% |
||
Can set a best bound stop |
0% |
||
Can set a best obj stop |
0% |
||
Can set an iteration limit |
0% |
||
Can turn on logs |
0% |
||
Can set the maximum number of solutions in the pool |
0% |
Callbacks¶
Can add universal callbacks to monitor the execution of the algorithm |
0% |
Can retrieve root node gap |
0% |
Can retrieve root node solution |
0% |
||
Can access nodes’ solutions |
0% |
||
Can access integer solutions |
0% |
||
Can add universal callbacks to influence the execution of the algorithm |
0% |
Can add user cut |
0% |
Can add lazy constraint |
0% |
||
Can terminate the algorithm |
0% |
Warning
There was an error while parsing the test report _static/reports/test_wrapper_OsiCplex.xml.
[Errno 2] No such file or directory: ‘_static/reports/test_wrapper_OsiCplex.xml’
Warning
There was an error while parsing the test report _static/reports/test_wrapper_OsiSymphony.xml.
[Errno 2] No such file or directory: ‘_static/reports/test_wrapper_OsiSymphony.xml’