#include <OsiDylpSolverInterface.hpp>
Inheritance diagram for OsiDylpSolverInterface:
Public Member Functions | |
Constructors and Destructors | |
OsiDylpSolverInterface () | |
Default constructor. | |
OsiDylpSolverInterface (const OsiDylpSolverInterface &src) | |
Copy constructor. | |
OsiSolverInterface * | clone (bool copyData=true) const |
Clone the solver object. | |
OsiDylpSolverInterface & | operator= (const OsiDylpSolverInterface &rhs) |
Assignment. | |
~OsiDylpSolverInterface () | |
Destructor. | |
void | reset () |
Reset the solver object to the state produced by the default constructor. | |
Methods to load a problem | |
int | readMps (const char *filename, const char *extension="mps") |
Read a problem description in MPS format from a file. | |
int | readMps (const char *filename, const char *extension, int &numberSets, CoinSet **&sets) |
Read a problem description in MPS format from a file, including SOS information. | |
void | writeMps (const char *basename, const char *extension="mps", double objsense=0.0) const |
Write the problem into the specified file in MPS format. | |
void | loadProblem (const CoinPackedMatrix &matrix, const double *collb, const double *colub, const double *obj, const char *rowsen, const double *rowrhs, const double *rowrng) |
Load a problem description (OSI packed matrix, row sense, parameters unaffected). | |
void | loadProblem (const CoinPackedMatrix &matrix, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub) |
Load a problem description (OSI packed matrix, row bounds, parameters unaffected). | |
void | loadProblem (const int colcnt, const int rowcnt, const int *start, const int *index, const double *value, const double *collb, const double *colub, const double *obj, const char *sense, const double *rhsin, const double *range) |
Load a problem description (standard column-major packed matrix, row sense, parameters unaffected). | |
void | loadProblem (const int colcnt, const int rowcnt, const int *start, const int *index, const double *value, const double *collb, const double *colub, const double *obj, const double *row_lower, const double *row_upper) |
Load a problem description (standard column-major packed matrix, row bounds, parameters unaffected). | |
void | assignProblem (CoinPackedMatrix *&matrix, double *&collb, double *&colub, double *&obj, char *&rowsen, double *&rowrhs, double *&rowrng) |
Load a problem description (OSI packed matrix, row sense, parameters destroyed). | |
void | assignProblem (CoinPackedMatrix *&matrix, double *&collb, double *&colub, double *&obj, double *&rowlb, double *&rowub) |
Load a problem description (OSI packed matrix, row bounds, parameters destroyed). | |
Methods to obtain problem information | |
int | getNumCols () const |
Get the number of columns (variables). | |
int | getNumRows () const |
Get the number of rows (constraints). | |
int | getNumElements () const |
Get the number of non-zero coefficients. | |
const double * | getColLower () const |
Get the column (variable) lower bound vector. | |
const double * | getColUpper () const |
Get the column (variable) upper bound vector. | |
bool | isContinuous (int colIndex) const |
Return true if the variable is continuous. | |
bool | isBinary (int colIndex) const |
Return true if the variable is binary. | |
bool | isIntegerNonBinary (int colIndex) const |
Return true if the variable is general integer. | |
bool | isInteger (int colIndex) const |
Return true if the variable is integer (general or binary). | |
const char * | getRowSense () const |
Get the row sense (constraint type) vector. | |
const double * | getRightHandSide () const |
Get the row (constraint) right-hand-side vector. | |
const double * | getRowRange () const |
Get the row (constraint) range vector. | |
const double * | getRowLower () const |
Get the row (constraint) lower bound vector. | |
const double * | getRowUpper () const |
Get the row (constraint) upper bound vector. | |
const double * | getObjCoefficients () const |
Get the objective function coefficient vector. | |
double | getObjSense () const |
Get the objective function sense (min/max). | |
const CoinPackedMatrix * | getMatrixByRow () const |
Get a pointer to a row-major copy of the constraint matrix. | |
const CoinPackedMatrix * | getMatrixByCol () const |
Get a pointer to a column-major copy of the constraint matrix. | |
Methods to modify the problem | |
void | setContinuous (int index) |
Set a single variable to be continuous. | |
void | setContinuous (const int *indices, int len) |
Set a list of variables to be continuous. | |
void | setInteger (int index) |
Set a single variable to be integer. | |
void | setInteger (const int *indices, int len) |
Set a list of variables to be integer. | |
void | setColLower (int index, double value) |
Set the lower bound on a column (variable). | |
void | setColUpper (int index, double value) |
Set the upper bound on a column (variable). | |
void | setRowLower (int index, double value) |
Set the lower bound on a row (constraint). | |
void | setRowUpper (int index, double value) |
Set the upper bound on a row (constraint). | |
void | setRowType (int index, char rowsen, double rowrhs, double rowrng) |
Set the type of a row (constraint). | |
void | setObjCoeff (int index, double value) |
Set an objective function coefficient. | |
void | setObjSense (double sense) |
Set the sense (min/max) of the objective. | |
void | setColSolution (const double *colsol) |
Set the value of the primal variables in the problem solution. | |
void | setRowPrice (const double *) |
Set the value of the dual variables in the problem solution. | |
void | addCol (const CoinPackedVectorBase &vec, const double collb, const double colub, const double obj) |
Add a column (variable) to the problem. | |
void | deleteCols (const int num, const int *colIndices) |
Remove column(s) (variable(s)) from the problem. | |
void | addRow (const CoinPackedVectorBase &row, const double rowlb, const double rowub) |
Add a row (constraint) to the problem. | |
void | addRow (const CoinPackedVectorBase &row, const char rowsen, const double rowrhs, const double rowrng) |
Add a row (constraint) to the problem. | |
void | deleteRows (const int num, const int *rowIndices) |
Delete row(s) (constraint(s)) from the problem. | |
void | applyRowCut (const OsiRowCut &cut) |
Apply a row (constraint) cut (add one constraint). | |
void | applyColCut (const OsiColCut &cut) |
Apply a column (variable) cut (adjust one or more bounds). | |
virtual void | setColLower (int elementIndex, double elementValue)=0 |
Set a single column lower bound. | |
virtual void | setColLower (const double *array) |
Set the lower bounds for all columns array [getNumCols()] is an array of values for the objective. | |
virtual void | setColUpper (int elementIndex, double elementValue)=0 |
Set a single column upper bound. | |
virtual void | setColUpper (const double *array) |
Set the upper bounds for all columns array [getNumCols()] is an array of values for the objective. | |
virtual void | addCol (const CoinPackedVectorBase &vec, const double collb, const double colub, const double obj)=0 |
Add a column (primal variable) to the problem. | |
virtual void | addCol (int numberElements, const int *rows, const double *elements, const double collb, const double colub, const double obj) |
Add a column (primal variable) to the problem. | |
virtual void | addRow (const CoinPackedVectorBase &vec, const double rowlb, const double rowub)=0 |
Add a row (constraint) to the problem. | |
virtual void | addRow (const CoinPackedVectorBase &vec, const char rowsen, const double rowrhs, const double rowrng)=0 |
Set a single variable to be continuous. | |
virtual void | addRow (int numberElements, const int *columns, const double *element, const double rowlb, const double rowub) |
Add a row (constraint) to the problem. | |
Solve methods | |
void | initialSolve () |
Solve an lp from scratch. | |
CoinWarmStart * | getEmptyWarmStart () const |
Get an empty OsiDylpWarmStartBasis object. | |
CoinWarmStart * | getWarmStart () const |
Build a warm start object for the current lp solution. | |
bool | setWarmStart (const CoinWarmStart *warmStart) |
Apply a warm start object. | |
void | resolve () |
Call dylp to reoptimize (warm start). | |
void | markHotStart () |
Create a hot start snapshot. | |
void | solveFromHotStart () |
Call dylp to reoptimize (hot start). | |
void | unmarkHotStart () |
Delete the hot start snapshot. | |
Methods returning solver termination status | |
bool | isAbandoned () const |
True if dylp abandoned the problem. | |
bool | isProvenOptimal () const |
True if dylp reported an optimal solution. | |
bool | isProvenPrimalInfeasible () const |
True if dylp reported the problem to be primal infeasible. | |
bool | isProvenDualInfeasible () const |
True if dylp reported the problem to be dual infeasible (primal unbounded). | |
bool | isIterationLimitReached () const |
True if dylp reached the iteration limit. | |
int | getIterationCount () const |
Get the number of iterations for the last lp. | |
bool | isPrimalObjectiveLimitReached () const |
Is the primal objective limit reached? | |
bool | isDualObjectiveLimitReached () const |
Is the dual objective limit reached? | |
Methods to set/get solver parameters | |
double | getInfinity () const |
Get dylp's value for infinity. | |
bool | setIntParam (OsiIntParam key, int value) |
Set an OSI integer parameter. | |
bool | setDblParam (OsiDblParam key, double value) |
Set an OSI double parameter. | |
bool | setStrParam (OsiStrParam key, const std::string &value) |
Set an OSI string parameter. | |
bool | setHintParam (OsiHintParam key, bool sense=true, OsiHintStrength strength=OsiHintTry, void *info=0) |
Set an OSI hint. | |
bool | getIntParam (OsiIntParam key, int &value) const |
Get an OSI integer parameter. | |
bool | getDblParam (OsiDblParam key, double &value) const |
Get an OSI double parameter. | |
bool | getStrParam (OsiStrParam key, std::string &value) const |
Get an OSI string parameter. | |
bool | getHintParam (OsiHintParam key, bool &sense, OsiHintStrength &strength, void *&info) const |
Get an OSI hint. | |
void | newLanguage (CoinMessages::Language language) |
Change the language for OsiDylp messages. | |
void | setLanguage (CoinMessages::Language language) |
An alias for OsiDylpSolverInterface::newLanguage. | |
virtual bool | getHintParam (OsiHintParam key, bool &yesNo, OsiHintStrength &strength, void *&otherInformation) const |
Get dylp's value for infinity. | |
virtual bool | getHintParam (OsiHintParam key, bool &yesNo, OsiHintStrength &strength) const |
Get dylp's value for infinity. | |
virtual bool | getHintParam (OsiHintParam key, bool &yesNo) const |
Get dylp's value for infinity. | |
Methods to obtain solution information | |
const double * | getColSolution () const |
Return the vector of primal variables for the solution. | |
const double * | getRowPrice () const |
Return the vector of dual variables for the solution. | |
const double * | getReducedCost () const |
Return the vector of reduced costs for the solution. | |
const double * | getRowActivity () const |
Return the vector of row activity for the solution. | |
double | getObjValue () const |
Get the objective function value for the solution. | |
Debugging Methods | |
void | activateRowCutDebugger (const char *modelName) |
Activate the row cut debugger. | |
void | activateRowCutDebugger (const double *solution) |
Activate the row cut debugger. | |
Dylp-specific methods | |
void | dylp_controlfile (const char *name, const bool silent, const bool mustexist=true) |
Process an options (.spc) file. | |
void | dylp_logfile (const char *name, bool echo=false) |
Establish a log file. | |
void | dylp_outfile (const char *name) |
Establish an output (solution and/or statistics) file. | |
void | dylp_printsoln (bool wantSoln, bool wantStats) |
Print the solution and/or statistics to the output file. | |
void | setOsiDylpMessages (CoinMessages::Language local_language) |
Set the language for messages. | |
Unsupported functions | |
void | branchAndBound () |
Invoke the solver's built-in branch-and-bound algorithm. | |
std::vector< double * > | getDualRays (int) const |
Get as many dual rays as the solver can provide. | |
std::vector< double * > | getPrimalRays (int) const |
Get as many primal rays as the solver can provide. | |
Public Attributes | |
Dylp data structures | |
These structures contain dylp control options and tolerances. | |
lpopts_struct * | initialSolveOptions |
lpopts_struct * | resolveOptions |
lptols_struct * | tolerances |
Private Member Functions | |
Helper functions for presolve | |
Functions used to access the CoinPresolve capabilities. There are no public functions associated with presolve --- the only control is the OsiDoPresolveInInitial and OsiDoPresolveInResolve hints. The functions declared here do the work. See OsiDylpPresolve.cpp for additional explanation. | |
CoinPresolveMatrix * | initialisePresolve (bool keepIntegers) |
Create and load a presolve object. | |
void | doPresolve () |
Perform presolve transformations. | |
bool | evalPresolve () |
Decide whether presolve was effective enough to use. | |
void | saveOriginalSys () |
Save the original problem. | |
void | installPresolve () |
Load the presolved problem into the ODSI object. | |
CoinPostsolveMatrix * | initialisePostsolve (CoinPresolveMatrix *&preObj) |
Create and load a postsolve object. | |
void | doPostsolve () |
Apply the postsolve transforms from postActions_. | |
void | installPostsolve () |
Reload the original constraint system with the postsolved basis. | |
void | destruct_presolve () |
Delete presolve information. | |
Helper functions for problem construction | |
void | construct_lpprob () |
void | construct_options () |
void | construct_consys (int cols, int rows) |
void | dylp_ioinit () |
void | gen_rowparms (int rowcnt, double *rhs, double *rhslow, contyp_enum *ctyp, const double *rowlb, const double *rowub) |
void | gen_rowparms (int rowcnt, double *rhs, double *rhslow, contyp_enum *ctyp, const char *sense, const double *rhsin, const double *range) |
void | load_problem (const CoinMpsIO &mps) |
void | load_problem (const CoinPackedMatrix &matrix, const double *col_lower, const double *col_upper, const double *obj, const contyp_enum *ctyp, const double *rhs, const double *rhslow) |
void | load_problem (const int colcnt, const int rowcnt, const int *start, const int *lens, const int *index, const double *value, const double *col_lower, const double *col_upper, const double *obj, const contyp_enum *ctyp, const double *rhs, const double *rhslow) |
Helper functions for invoking dylp | |
lpret_enum | do_lp (ODSI_start_enum start) |
Common core method to invoke dylp. | |
Destructor helpers | |
void | destruct_col_cache (bool structure) |
void | destruct_row_cache (bool structure) |
void | destruct_cache (bool rowStructure, bool colStructure) |
void | destruct_problem (bool preserve_interface) |
void | detach_dylp () |
Helper functions for problem modification | |
void | add_col (const CoinPackedVectorBase &coin_coli, vartyp_enum vtypi, double vlbi, double vubi, double obji) |
void | add_row (const CoinPackedVectorBase &coin_rowi, char clazzi, contyp_enum ctypi, double rhsi, double rhslowi) |
void | calc_objval () |
contyp_enum | bound_to_type (double lower, double upper) |
void | gen_rowiparms (contyp_enum *ctypi, double *rhsi, double *rhslowi, char sensei, double rhsini, double rangei) |
void | gen_rowiparms (contyp_enum *ctypi, double *rhsi, double *rhslowi, double rowlbi, double rowubi) |
void | unimp_hint (bool dylpSense, bool hintSense, OsiHintStrength hintStrength, const char *msgString) |
void | pessimal_primal () |
Static Private Member Functions | |
Helper functions for problem modification | |
contyp_enum | sense_to_type (char type) |
char | type_to_sense (contyp_enum type) |
Copy helpers | |
Copy function templates for simple vectors and fixed-size objects, and specializations for various complex structures. | |
template<class T> | |
void | copy (const T *src, T *dst, int n) |
template<class T> | |
T * | copy (const T *src, int n) |
template<class T> | |
T * | copy (const T *src) |
basis_struct * | copy_basis (const basis_struct *src, int dstsze) |
void | copy_basis (const basis_struct *src, basis_struct *dst) |
lpprob_struct * | copy_lpprob (const lpprob_struct *src) |
Copy verification functions | |
Copy verification functions, to check that two structures are identical. | |
template<class T> | |
void | assert_same (const T &t1, const T &t2, bool exact) |
template<class T> | |
void | assert_same (const T *t1, const T *t2, int n, bool exact) |
void | assert_same (double d1, double d2, bool exact) |
void | assert_same (const basis_struct &b1, const basis_struct &b2, bool exact) |
void | assert_same (const consys_struct &c1, const consys_struct &c2, bool exact) |
void | assert_same (const conbnd_struct &c1, const conbnd_struct &c2, bool exact) |
void | assert_same (const lpprob_struct &l1, const lpprob_struct &l2, bool exact) |
void | assert_same (const OsiDylpSolverInterface &o1, const OsiDylpSolverInterface &o2, bool exact) |
Vector helper functions | |
template<class T> | |
T * | idx_vec (T *data) |
int | idx (int i) |
template<class T> | |
T * | inv_vec (T *data) |
int | inv (int i) |
pkvec_struct * | packed_vector (const CoinShallowPackedVector vector, int dimension) |
void | packed_vector (const CoinShallowPackedVector vector, int dimension, pkvec_struct *dst) |
File i/o helper routines | |
std::string | make_filename (const char *filename, const char *ext1, const char *ext2) |
Private Attributes | |
Dylp data structures | |
These fields hold pointers to the data structures which are used to pass an lp problem to dylp. | |
consys_struct * | consys |
lpprob_struct * | lpprob |
lpstats_struct * | statistics |
Solver instance control variables | |
These variables maintain state for individual ODSI instances. | |
ioid | local_outchn |
Output file for this ODSI instance. | |
ioid | local_logchn |
Log file for this ODSI instance. | |
bool | initial_gtxecho |
Controls output of log information to stdout during initialSolve(). | |
bool | resolve_gtxecho |
Controls output of log information to stdout during resolve() and solveFromHotStart(). | |
lpret_enum | lp_retval |
Result of last call to solver for this ODSI instance. | |
double | obj_sense |
Objective function sense for this ODSI instance. | |
double | odsiInfinity |
The value of infinity. | |
const std::string | solvername |
Solver name (dylp). | |
void * | info_ [OsiLastHintParam] |
Array for info blocks associated with hints. | |
bool | mps_debug |
Allow messages from CoinMpsIO package. | |
CoinWarmStart * | hotstart_fallback |
Warm start object used as a fallback for hot start. | |
CoinWarmStart * | activeBasis |
Current basis. | |
bool | activeIsModified |
Current basis is modified. | |
bool | solnIsFresh |
The most recent solution from dylp is valid. | |
int | addedColCnt |
Columns (variables) added during existence of this ODSI object. | |
int | addedRowCnt |
Rows (constraints) added during existence of this ODSI object. | |
Cached problem information | |
Problem information is cached for efficiency, to avoid repeated reconstruction of OSI structures from dylp structures. | |
double | _objval |
double * | _col_obj |
double * | _col_x |
double * | _col_cbar |
double * | _row_rhs |
double * | _row_lower |
double * | _row_upper |
char * | _row_sense |
double * | _row_range |
double * | _row_lhs |
double * | _row_price |
CoinPackedMatrix * | _matrix_by_col |
CoinPackedMatrix * | _matrix_by_row |
Data for presolve | |
Data related to the use of the CoinPresolve capabilities (which see for further information). | |
CoinPresolveMatrix * | preObj_ |
The presolve object. | |
const CoinPresolveAction * | postActions_ |
List of postsolve actions. | |
CoinPostsolveMatrix * | postObj_ |
The postsolve object. | |
int | passLimit_ |
Limit for iterations of the major presolve loop. | |
bool | keepIntegers_ |
true if presolve should consider integrality | |
consys_struct * | savedConsys_ |
Saved copy of original problem. | |
double * | saved_col_obj |
Saved pointers to cached structural vectors. | |
double * | saved_row_rhs |
The presolve object. | |
double * | saved_row_lower |
The presolve object. | |
double * | saved_row_upper |
The presolve object. | |
char * | saved_row_sense |
The presolve object. | |
double * | saved_row_range |
The presolve object. | |
CoinPackedMatrix * | saved_matrix_by_col |
The presolve object. | |
CoinPackedMatrix * | saved_matrix_by_row |
The presolve object. | |
Static Private Attributes | |
Dylp residual control variables | |
int | reference_count |
bool | basis_ready |
OsiDylpSolverInterface * | dylp_owner |
Friends | |
void | OsiDylpSolverInterfaceUnitTest (const std::string &mpsDir, const std::string &netLibDir) |
Related Functions | |
(Note that these are not member functions.) | |
void | OsiDylpSolverInterfaceUnitTest (const std::string &mpsDir) |
Unit test for OsiDylpSolverInterface. |
The class OsiDylpSolverInterface (ODSI) implements the public functions defined for a COIN OsiSolverInterface (OSI) object.
In addition to the principles outlined for the OsiSolverInterface class, ODSI maintains the following:
Construction of a Constraint System: A constraint system can be batch loaded from a file (MPS format) or from a data structure, or it can be built incrementally. When building a constraint system incrementally, keep in mind that you must create a row or column (addRow or addCol, respectively) before you can adjust other properties (row or column bounds, objective, variable values, etc.)
Existence of a Solution: For proper operation, OSI requires that a SI maintain a basic primal solution at all times after a problem has been loaded.
When a problem is loaded, ODSI generates a basic primal solution (primal variable values and a matching basis). The solution is not necessarily primal or dual feasible. In terms of the objective function, this solution is pessimistic, but not necessarily worst-case. ODSI does not generate matching values for the dual variables (row prices).
Any successful call to dylp (i.e., a call that results in an optimal, infeasible, or unbounded result) will replace the existing solution with the result of the call to dylp.
It is possible to specify initial values for the primal and dual variables using setColSolution() and setRowPrice(). To specify an initial basis, see the documentation for the CoinWarmStartBasis and OsiDylpWarmStartBasis classes. When these functions are used, it is the responsibility of the client to ensure validity and consistency.
Maintenance of an LP Basis Skirting the edges of the principle that changing the problem invalidates the solution, OsiDylp will maintain a valid basis across two common operations used in branch-and-cut: deletion of a loose constraint and deletion of a nonbasic variable. Arguably the set of allowable modifications could be increased.
Assignment Assignment (#operator=()) works pretty much as you'd expect, with one exception. Only one ODSI object can control the dylp solver at a time, so hot start information is not copied on assignment.
Detailed documentation is contained in OsiDylpSolverInterface.cpp, which is not normally scanned when generating COIN OSI layer documentation. Try `make doc' in the source directory of the OsiDylp distribution.
Definition at line 100 of file OsiDylpSolverInterface.hpp.
|
Default constructor.
|
|
Copy constructor.
|
|
Destructor.
|
|
Clone the solver object.
Implements OsiSolverInterface. |
|
Assignment.
|
|
Reset the solver object to the state produced by the default constructor.
Reimplemented from OsiSolverInterface. |
|
Read a problem description in MPS format from a file.
Reimplemented from OsiSolverInterface. |
|
Read a problem description in MPS format from a file, including SOS information.
Reimplemented from OsiSolverInterface. |
|
Write the problem into the specified file in MPS format.
Implements OsiSolverInterface. |
|
Load a problem description (OSI packed matrix, row sense, parameters unaffected).
Implements OsiSolverInterface. |
|
Load a problem description (OSI packed matrix, row bounds, parameters unaffected).
Implements OsiSolverInterface. |
|
Load a problem description (standard column-major packed matrix, row sense, parameters unaffected).
|
|
Load a problem description (standard column-major packed matrix, row bounds, parameters unaffected).
|
|
Load a problem description (OSI packed matrix, row sense, parameters destroyed).
Implements OsiSolverInterface. |
|
Load a problem description (OSI packed matrix, row bounds, parameters destroyed).
Implements OsiSolverInterface. |
|
Get the number of columns (variables).
Implements OsiSolverInterface. |
|
Get the number of rows (constraints).
Implements OsiSolverInterface. |
|
Get the number of non-zero coefficients.
Implements OsiSolverInterface. |
|
Get the column (variable) lower bound vector.
Implements OsiSolverInterface. |
|
Get the column (variable) upper bound vector.
Implements OsiSolverInterface. |
|
Return true if the variable is continuous.
Implements OsiSolverInterface. |
|
Return true if the variable is binary.
Reimplemented from OsiSolverInterface. |
|
Return true if the variable is general integer.
Reimplemented from OsiSolverInterface. |
|
Return true if the variable is integer (general or binary).
Reimplemented from OsiSolverInterface. |
|
Get the row sense (constraint type) vector.
Implements OsiSolverInterface. |
|
Get the row (constraint) right-hand-side vector.
Implements OsiSolverInterface. |
|
Get the row (constraint) range vector.
Implements OsiSolverInterface. |
|
Get the row (constraint) lower bound vector.
Implements OsiSolverInterface. |
|
Get the row (constraint) upper bound vector.
Implements OsiSolverInterface. |
|
Get the objective function coefficient vector.
Implements OsiSolverInterface. |
|
Get the objective function sense (min/max).
Implements OsiSolverInterface. |
|
Get a pointer to a row-major copy of the constraint matrix.
Implements OsiSolverInterface. |
|
Get a pointer to a column-major copy of the constraint matrix.
Implements OsiSolverInterface. |
|
Set a single variable to be continuous.
Implements OsiSolverInterface. |
|
Set a list of variables to be continuous.
Reimplemented from OsiSolverInterface. |
|
Set a single variable to be integer.
Implements OsiSolverInterface. |
|
Set a list of variables to be integer.
Reimplemented from OsiSolverInterface. |
|
Set the lower bound on a column (variable).
Implements OsiSolverInterface. |
|
Set the upper bound on a column (variable).
Implements OsiSolverInterface. |
|
Set the lower bound on a row (constraint).
Implements OsiSolverInterface. |
|
Set the upper bound on a row (constraint).
Implements OsiSolverInterface. |
|
Set the type of a row (constraint).
Implements OsiSolverInterface. |
|
Set an objective function coefficient.
Implements OsiSolverInterface. |
|
Set the sense (min/max) of the objective.
Implements OsiSolverInterface. |
|
Set the value of the primal variables in the problem solution.
Implements OsiSolverInterface. |
|
Set the value of the dual variables in the problem solution.
Implements OsiSolverInterface. |
|
Add a column (variable) to the problem.
Implements OsiSolverInterface. |
|
Remove column(s) (variable(s)) from the problem.
Implements OsiSolverInterface. |
|
Add a row (constraint) to the problem.
Implements OsiSolverInterface. |
|
Add a row (constraint) to the problem.
Implements OsiSolverInterface. |
|
Delete row(s) (constraint(s)) from the problem.
Implements OsiSolverInterface. |
|
Apply a row (constraint) cut (add one constraint).
Implements OsiSolverInterface. |
|
Apply a column (variable) cut (adjust one or more bounds).
Implements OsiSolverInterface. |
|
Solve an lp from scratch.
Implements OsiSolverInterface. |
|
Get an empty OsiDylpWarmStartBasis object.
Implements OsiSolverInterface. |
|
Build a warm start object for the current lp solution.
Implements OsiSolverInterface. |
|
Apply a warm start object.
Implements OsiSolverInterface. |
|
Call dylp to reoptimize (warm start).
Implements OsiSolverInterface. |
|
Create a hot start snapshot.
Reimplemented from OsiSolverInterface. |
|
Call dylp to reoptimize (hot start).
Reimplemented from OsiSolverInterface. |
|
Delete the hot start snapshot.
Reimplemented from OsiSolverInterface. |
|
True if dylp abandoned the problem.
Implements OsiSolverInterface. |
|
True if dylp reported an optimal solution.
Implements OsiSolverInterface. |
|
True if dylp reported the problem to be primal infeasible.
Implements OsiSolverInterface. |
|
True if dylp reported the problem to be dual infeasible (primal unbounded).
Implements OsiSolverInterface. |
|
True if dylp reached the iteration limit.
Implements OsiSolverInterface. |
|
Get the number of iterations for the last lp.
Implements OsiSolverInterface. |
|
Is the primal objective limit reached?
Implements OsiSolverInterface. |
|
Is the dual objective limit reached?
Implements OsiSolverInterface. |
|
Get dylp's value for infinity.
Implements OsiSolverInterface. |
|
Set an OSI integer parameter.
Reimplemented from OsiSolverInterface. |
|
Set an OSI double parameter.
Reimplemented from OsiSolverInterface. |
|
Set an OSI string parameter.
Reimplemented from OsiSolverInterface. |
|
Set an OSI hint.
Reimplemented from OsiSolverInterface. |
|
Get an OSI integer parameter.
Reimplemented from OsiSolverInterface. |
|
Get an OSI double parameter.
Reimplemented from OsiSolverInterface. |
|
Get an OSI string parameter.
Reimplemented from OsiSolverInterface. |
|
Get an OSI hint.
Reimplemented from OsiSolverInterface. |
|
Change the language for OsiDylp messages.
Reimplemented from OsiSolverInterface. Definition at line 507 of file OsiDylpSolverInterface.hpp. References setOsiDylpMessages(). |
|
An alias for OsiDylpSolverInterface::newLanguage.
Reimplemented from OsiSolverInterface. Definition at line 512 of file OsiDylpSolverInterface.hpp. References setOsiDylpMessages(). |
|
Return the vector of primal variables for the solution.
Implements OsiSolverInterface. |
|
Return the vector of dual variables for the solution.
Implements OsiSolverInterface. |
|
Return the vector of reduced costs for the solution.
Implements OsiSolverInterface. |
|
Return the vector of row activity for the solution.
Implements OsiSolverInterface. |
|
Get the objective function value for the solution.
Implements OsiSolverInterface. |
|
Activate the row cut debugger. Activate the debugger for a model known to the debugger. The debugger will consult an internal database for an optimal solution vector. Reimplemented from OsiSolverInterface. |
|
Activate the row cut debugger.
Activate the debugger for a model not included in the debugger's internal database. Reimplemented from OsiSolverInterface. |
|
Process an options (.spc) file.
|
|
Establish a log file.
|
|
Establish an output (solution and/or statistics) file.
|
|
Print the solution and/or statistics to the output file.
|
|
Set the language for messages.
Referenced by newLanguage(), and setLanguage(). |
|
Invoke the solver's built-in branch-and-bound algorithm.
Implements OsiSolverInterface. |
|
Get as many dual rays as the solver can provide.
Implements OsiSolverInterface. |
|
Get as many primal rays as the solver can provide.
Implements OsiSolverInterface. |
|
Create and load a presolve object.
|
|
Perform presolve transformations.
|
|
Decide whether presolve was effective enough to use.
|
|
Save the original problem.
|
|
Load the presolved problem into the ODSI object.
|
|
Create and load a postsolve object.
|
|
Apply the postsolve transforms from postActions_.
|
|
Reload the original constraint system with the postsolved basis.
|
|
Delete presolve information.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Common core method to invoke dylp.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Set a single column lower bound. Use -getInfinity() for -infinity. |
|
Set the lower bounds for all columns array [getNumCols()] is an array of values for the objective. This defaults to a series of set operations and is here for speed. |
|
Set a single column upper bound. Use getInfinity() for infinity. |
|
Set the upper bounds for all columns array [getNumCols()] is an array of values for the objective. This defaults to a series of set operations and is here for speed. |
|
Add a column (primal variable) to the problem.
|
|
Add a column (primal variable) to the problem.
|
|
Add a row (constraint) to the problem.
|
|
Set a single variable to be continuous.
|
|
Add a row (constraint) to the problem.
|
|
Get dylp's value for infinity.
Definition at line 292 of file OsiSolverInterface.hpp. |
|
Get dylp's value for infinity.
Definition at line 303 of file OsiSolverInterface.hpp. |
|
Get dylp's value for infinity.
Definition at line 312 of file OsiSolverInterface.hpp. |
|
|
|
Unit test for OsiDylpSolverInterface. Performs various tests to see if ODSI is functioning correctly. Not an exhaustive test, but it'll (usually) catch gross problems. |
|
Definition at line 630 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 630 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 631 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 649 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 650 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 651 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 658 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 659 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 660 of file OsiDylpSolverInterface.hpp. |
|
Output file for this ODSI instance. Holds the name of the file that will be used to write out the solution and statistics. Definition at line 677 of file OsiDylpSolverInterface.hpp. |
|
Log file for this ODSI instance. Holds the name of the file that will be used for dylp log information. Definition at line 684 of file OsiDylpSolverInterface.hpp. |
|
Controls output of log information to stdout during initialSolve().
Definition at line 690 of file OsiDylpSolverInterface.hpp. |
|
Controls output of log information to stdout during resolve() and solveFromHotStart().
Definition at line 696 of file OsiDylpSolverInterface.hpp. |
|
Result of last call to solver for this ODSI instance. The default value is lpINV (i.e., the code is not valid). A call to dylp will set lp_retval to the dylp return code. Errors in the interface's interaction with other dylp routines will set this value to the return code given by the routine, or lpFATAL if the routine does not return anything more specific. Definition at line 707 of file OsiDylpSolverInterface.hpp. |
|
Objective function sense for this ODSI instance. Coded 1.0 to minimize (default), -1.0 to maximize. Definition at line 714 of file OsiDylpSolverInterface.hpp. |
|
The value of infinity.
Definition at line 718 of file OsiDylpSolverInterface.hpp. |
|
Solver name (dylp).
Definition at line 722 of file OsiDylpSolverInterface.hpp. |
|
Array for info blocks associated with hints.
Definition at line 726 of file OsiDylpSolverInterface.hpp. |
|
Allow messages from CoinMpsIO package.
Definition at line 730 of file OsiDylpSolverInterface.hpp. |
|
Warm start object used as a fallback for hot start.
Definition at line 734 of file OsiDylpSolverInterface.hpp. |
|
Current basis. Set with each successful return from the solver (where successful means a result of optimal, infeasible, unbounded, or iterlim), or by an explicit call to setWarmStart() with a valid basis. Note that calling setWarmStart() with an empty basis or a null parameter is taken as a request to delete activeBasis. Definition at line 745 of file OsiDylpSolverInterface.hpp. |
|
Current basis is modified. True if activeBasis exists and has been modified since the last call to dylp. Definition at line 752 of file OsiDylpSolverInterface.hpp. |
|
The most recent solution from dylp is valid. True if the solution held in lpprob is valid. False if changes to the constraint system have rendered the solution invalid. Definition at line 759 of file OsiDylpSolverInterface.hpp. |
|
Columns (variables) added during existence of this ODSI object. This variable counts the number of columns added over the lifetime of this ODSI object. Used to generate unique column names, since ODSI does not provide a way for the client to supply a name. Unique names are necessary in order that writeMps can dump the system in mps format. Reset to 0 when the constraint system is reloaded. Definition at line 770 of file OsiDylpSolverInterface.hpp. |
|
Rows (constraints) added during existence of this ODSI object. This variable counts the number of rows added over the lifetime of this ODSI object. Used to generate unique rows names, since ODSI does not provide a way for the client to supply a name. Unique names are necessary in order that writeMps can dump the system in mps format. Reset to 0 when the constraint system is reloaded. Definition at line 781 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 794 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 795 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 796 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 797 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 799 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 800 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 801 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 802 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 803 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 804 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 805 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 807 of file OsiDylpSolverInterface.hpp. |
|
Definition at line 808 of file OsiDylpSolverInterface.hpp. |
|
The presolve object. In more detail, preObj_ is loaded with the original system. Presolve transformations are applied to convert it to a presolved system. Definition at line 824 of file OsiDylpSolverInterface.hpp. |
|
List of postsolve actions. The list of postsolve (reverse) transformations required to convert the presolved system back to the original system. Built as presolve transformations are applied. Definition at line 832 of file OsiDylpSolverInterface.hpp. |
|
The postsolve object. In more detail, postObj_ is loaded with the presolved system and its optimal basis. The postsolve transformations held by postActions_ are applied to convert back to the original system. For ODSI, our only interest is the basis. Definition at line 841 of file OsiDylpSolverInterface.hpp. |
|
Limit for iterations of the major presolve loop.
Definition at line 844 of file OsiDylpSolverInterface.hpp. |
|
true if presolve should consider integrality
Definition at line 847 of file OsiDylpSolverInterface.hpp. |
|
Saved copy of original problem.
Definition at line 850 of file OsiDylpSolverInterface.hpp. |
|
Saved pointers to cached structural vectors.
Definition at line 853 of file OsiDylpSolverInterface.hpp. |
|
The presolve object. In more detail, preObj_ is loaded with the original system. Presolve transformations are applied to convert it to a presolved system. Definition at line 854 of file OsiDylpSolverInterface.hpp. |
|
The presolve object. In more detail, preObj_ is loaded with the original system. Presolve transformations are applied to convert it to a presolved system. Definition at line 855 of file OsiDylpSolverInterface.hpp. |
|
The presolve object. In more detail, preObj_ is loaded with the original system. Presolve transformations are applied to convert it to a presolved system. Definition at line 856 of file OsiDylpSolverInterface.hpp. |
|
The presolve object. In more detail, preObj_ is loaded with the original system. Presolve transformations are applied to convert it to a presolved system. Definition at line 857 of file OsiDylpSolverInterface.hpp. |
|
The presolve object. In more detail, preObj_ is loaded with the original system. Presolve transformations are applied to convert it to a presolved system. Definition at line 858 of file OsiDylpSolverInterface.hpp. |
|
The presolve object. In more detail, preObj_ is loaded with the original system. Presolve transformations are applied to convert it to a presolved system. Definition at line 859 of file OsiDylpSolverInterface.hpp. |
|
The presolve object. In more detail, preObj_ is loaded with the original system. Presolve transformations are applied to convert it to a presolved system. Definition at line 860 of file OsiDylpSolverInterface.hpp. |