#include <BonOsiTMINLPInterface.hpp>
Inheritance diagram for Bonmin::OsiTMINLPInterface:
Public Types | |
SOLUTION_FOUND | |
found a feasible solution | |
INFEASIBLE_SOLUTION_FOUND | |
found an infeasible problem | |
UNSOLVED_PROBLEM_FOUND | |
found an unsolved problem | |
WARNING_RESOLVING | |
Warn that a problem is resolved. | |
WARN_SUCCESS_WS | |
Problem not solved with warm start but solved without. | |
WARN_SUCCESS_RANDOM | |
Subproblem not solve with warm start but solved with random point. | |
WARN_CONTINUING_ON_FAILURE | |
a failure occured but is continuing | |
SUSPECT_PROBLEM | |
Output the number of the problem. | |
SUSPECT_PROBLEM2 | |
Output the number of the problem. | |
IPOPT_SUMMARY | |
Output summary statistics on Ipopt solution. | |
BETTER_SOL | |
Found a better solution with random values. | |
LOG_HEAD | |
Head of "civilized" log. | |
LOG_FIRST_LINE | |
First line (first solve) of log. | |
LOG_LINE | |
standard line (retry solving) of log. | |
ALTERNATE_OBJECTIVE | |
Recomputed integer feasible with alternate objective function. | |
WARN_RESOLVE_BEFORE_INITIAL_SOLVE | |
resolve() has been called but there was no previous call to initialSolve(). | |
ERROR_NO_TNLPSOLVER | |
Trying to access non-existent TNLPSolver. | |
WARNING_NON_CONVEX_OA | |
Warn that there are equality or ranged constraints and OA may works bad. | |
SOLVER_DISAGREE_STATUS | |
Different solver gives different status for problem. | |
SOLVER_DISAGREE_VALUE | |
Different solver gives different optimal value for problem. | |
OSITMINLPINTERFACE_DUMMY_END | |
enum | MessagesTypes { SOLUTION_FOUND, INFEASIBLE_SOLUTION_FOUND, UNSOLVED_PROBLEM_FOUND, WARNING_RESOLVING, WARN_SUCCESS_WS, WARN_SUCCESS_RANDOM, WARN_CONTINUING_ON_FAILURE, SUSPECT_PROBLEM, SUSPECT_PROBLEM2, IPOPT_SUMMARY, BETTER_SOL, LOG_HEAD, LOG_FIRST_LINE, LOG_LINE, ALTERNATE_OBJECTIVE, WARN_RESOLVE_BEFORE_INITIAL_SOLVE, ERROR_NO_TNLPSOLVER, WARNING_NON_CONVEX_OA, SOLVER_DISAGREE_STATUS, SOLVER_DISAGREE_VALUE, OSITMINLPINTERFACE_DUMMY_END } |
Type of the messages specifically outputed by OsiTMINLPInterface. More... | |
Public Member Functions | |
TNLPSolver::UnsolvedError * | newUnsolvedError (int num, Ipopt::SmartPtr< TMINLP2TNLP > problem, std::string name) |
void | setNumIterationSuspect (int value) |
const TMINLP2TNLP * | problem () const |
get pointer to the TMINLP2TNLP adapter | |
TMINLP2TNLP * | problem () |
const TMINLP * | model () const |
Bonmin::TMINLP * | model () |
const Bonmin::TNLPSolver * | solver () const |
TNLPSolver * | solver () |
Constructors and destructors | |
OsiTMINLPInterface () | |
Default Constructor. | |
void | initialize (Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions, Ipopt::SmartPtr< Ipopt::OptionsList > options, Ipopt::SmartPtr< Ipopt::Journalist > journalist_, Ipopt::SmartPtr< TMINLP > tminlp) |
Facilitator to initialize interface. | |
void | setModel (Ipopt::SmartPtr< TMINLP > tminlp) |
Set the model to be solved by interface. | |
void | setSolver (Ipopt::SmartPtr< TNLPSolver > app) |
Set the solver to be used by interface. | |
void | use (Ipopt::SmartPtr< TMINLP2TNLP > tminlp2tnlp) |
Sets the TMINLP2TNLP to be used by the interface. | |
OsiTMINLPInterface (const OsiTMINLPInterface &) | |
Copy constructor. | |
OsiSolverInterface * | clone (bool copyData=true) const |
Virtual copy constructor. | |
OsiTMINLPInterface & | operator= (const OsiTMINLPInterface &rhs) |
Assignment operator. | |
virtual | ~OsiTMINLPInterface () |
Destructor. | |
void | readOptionFile (const std::string &fileName) |
Read parameter file. | |
const Ipopt::SmartPtr< Ipopt::OptionsList > | options () const |
Retrieve OsiTMINLPApplication option list. | |
Ipopt::SmartPtr< Ipopt::OptionsList > | options () |
Retrieve OsiTMINLPApplication option list. | |
Solve methods | |
virtual void | initialSolve () |
Solve initial continuous relaxation. | |
virtual void | resolve () |
Resolve the continuous relaxation after problem modification. | |
virtual void | resolveForCost (int numretry, bool keepWs) |
Resolve the problem with different random starting points to try to find a better solution (only makes sense for a non-convex problem. | |
virtual void | resolveForRobustness (int numretry) |
Method to be called when a problem has failed to be solved. | |
virtual void | branchAndBound () |
Nescessary for compatibility with OsiSolverInterface but does nothing. | |
Methods returning info on how the solution process terminated | |
virtual bool | isAbandoned () const |
Are there a numerical difficulties? | |
virtual bool | isProvenOptimal () const |
Is optimality proven? | |
virtual bool | isProvenPrimalInfeasible () const |
Is primal infeasiblity proven? | |
virtual bool | isProvenDualInfeasible () const |
Is dual infeasiblity proven? | |
virtual bool | isPrimalObjectiveLimitReached () const |
Is the given primal objective limit reached? | |
virtual bool | isDualObjectiveLimitReached () const |
Is the given dual objective limit reached? | |
virtual bool | isIterationLimitReached () const |
Iteration limit reached? | |
void | continuingOnAFailure () |
Warn solver that branch-and-bound is continuing after a failure. | |
bool | hasContinuedOnAFailure () |
Did we continue on a failure. | |
void | ignoreFailures () |
tell to ignore the failures (don't throw, don't fathom, don't report) | |
void | forceInfeasible () |
Force current solution to be infeasible. | |
void | forceBranchable () |
Force current solution to be branched on (make it fractionnal with small objective). | |
Parameter set/get methods | |
The set methods return true if the parameter was set to the given value, false otherwise. There can be various reasons for failure: the given parameter is not applicable for the solver (e.g., refactorization frequency for the clp algorithm), the parameter is not yet implemented for the solver or simply the value of the parameter is out of the range the solver accepts. If a parameter setting call returns false check the details of your solver.
The get methods return true if the given parameter is applicable for the solver and is implemented. In this case the value of the parameter is returned in the second argument. Otherwise they return false. | |
bool | setIntParam (OsiIntParam key, int value) |
bool | setDblParam (OsiDblParam key, double value) |
bool | setStrParam (OsiStrParam key, const std::string &value) |
bool | getIntParam (OsiIntParam key, int &value) const |
bool | getDblParam (OsiDblParam key, double &value) const |
bool | getStrParam (OsiStrParam key, std::string &value) const |
double | getPushFact () const |
Methods related to querying the input data | |
virtual int | getNumCols () const |
Get number of columns. | |
virtual int | getNumRows () const |
Get number of rows. | |
const OsiSolverInterface::OsiNameVec & | getVarNames () |
get name of variables | |
virtual const double * | getColLower () const |
Get pointer to array[getNumCols()] of column lower bounds. | |
virtual const double * | getColUpper () const |
Get pointer to array[getNumCols()] of column upper bounds. | |
virtual const char * | getRowSense () const |
Get pointer to array[getNumRows()] of row constraint senses. | |
virtual const double * | getRightHandSide () const |
Get pointer to array[getNumRows()] of rows right-hand sides. | |
virtual const double * | getRowRange () const |
Get pointer to array[getNumRows()] of row ranges. | |
virtual const double * | getRowLower () const |
Get pointer to array[getNumRows()] of row lower bounds. | |
virtual const double * | getRowUpper () const |
Get pointer to array[getNumRows()] of row upper bounds. | |
virtual double | getObjSense () const |
Get objective function sense (1 for min (default), -1 for max) Always minimizes. | |
virtual bool | isContinuous (int colNumber) const |
Return true if column is continuous. | |
virtual bool | isBinary (int columnNumber) const |
Return true if column is binary. | |
virtual bool | isInteger (int columnNumber) const |
Return true if column is integer. | |
virtual bool | isIntegerNonBinary (int columnNumber) const |
Return true if column is general integer. | |
virtual bool | isFreeBinary (int columnNumber) const |
Return true if column is binary and not fixed at either bound. | |
virtual double | getInfinity () const |
Get solver's value for infinity. | |
const int * | getPriorities () const |
Get priorities on integer variables. | |
const int * | getBranchingDirections () const |
get prefered branching directions | |
const double * | getUpPsCosts () const |
Get number of columns. | |
const double * | getDownPsCosts () const |
Get number of columns. | |
Methods related to querying the solution | |
virtual const double * | getColSolution () const |
Get pointer to array[getNumCols()] of primal solution vector. | |
virtual const double * | getRowPrice () const |
Get pointer to array[getNumRows()] of dual prices. | |
virtual const double * | getReducedCost () const |
Get a pointer to array[getNumCols()] of reduced costs. | |
virtual const double * | getRowActivity () const |
Get pointer to array[getNumRows()] of row activity levels (constraint matrix times the solution vector. | |
virtual int | getIterationCount () const |
Get how many iterations it took to solve the problem (whatever "iteration" mean to the solver. | |
int | nCallOptimizeTNLP () |
get total number of calls to solve. | |
double | totalNlpSolveTime () |
get total time taken to solve NLP's. | |
int | totalIterations () |
get total number of iterations | |
Methods to modify the objective, bounds, and solution | |
virtual void | setColLower (int elementIndex, double elementValue) |
Set a single column lower bound. | |
virtual void | setColUpper (int elementIndex, double elementValue) |
Set a single column upper bound. | |
virtual void | setColLower (const double *array) |
Set the lower bounds for all columns Use -getInfinity() for -infinity. | |
virtual void | setColUpper (const double *array) |
Set Set the upper bounds for all columns Use getInfinity() for infinity. | |
virtual void | setRowLower (int elementIndex, double elementValue) |
Set a single row lower bound. | |
virtual void | setRowUpper (int elementIndex, double elementValue) |
Set a single row upper bound. | |
virtual void | setRowType (int index, char sense, double rightHandSide, double range) |
Set the type of a single row. | |
virtual void | setObjSense (double s) |
Set the objective function sense. | |
virtual void | setColSolution (const double *colsol) |
Set the primal solution variable values. | |
virtual void | setRowPrice (const double *rowprice) |
Set dual solution variable values. | |
WarmStart related methods (those should really do nothing for the moment) | |
virtual CoinWarmStart * | getEmptyWarmStart () const |
Get an empty warm start object. | |
virtual CoinWarmStart * | getWarmStart () const |
Get warmstarting information. | |
virtual bool | setWarmStart (const CoinWarmStart *warmstart) |
Set warmstarting information. | |
void | setExposeWarmStart (bool value) |
Get an empty warm start object. | |
bool | getExposeWarmStart () |
Get an empty warm start object. | |
void | randomStartingPoint () |
Get an empty warm start object. | |
virtual bool | basisIsAvailable () const |
Get an empty warm start object. | |
Methods to set variable type | |
virtual void | setContinuous (int index) |
Set the index-th variable to be a continuous variable. | |
virtual void | setInteger (int index) |
Set the index-th variable to be an integer variable. | |
Dummy functions | |
Functions which have to be implemented in an OsiSolverInterface, but which do not do anything (but throwing exceptions) here in the case of a minlp solved using an nlp solver for continuous relaxations | |
virtual int | getNumElements () const |
Cbc will understand that no matrix exsits if return -1. | |
virtual const double * | getObjCoefficients () const |
This returns the objective function gradient at the current point. | |
virtual const CoinPackedMatrix * | getMatrixByRow () const |
We have to keep this but it will return NULL. | |
virtual const CoinPackedMatrix * | getMatrixByCol () const |
We have to keep this but it will return NULL. | |
virtual void | setObjCoeff (int elementIndex, double elementValue) |
We have to keep this but it will throw an error. | |
virtual void | addCol (const CoinPackedVectorBase &vec, const double collb, const double colub, const double obj) |
We have to keep this but it will throw an error. | |
virtual void | deleteCols (const int num, const int *colIndices) |
We have to keep this but it will throw an error. | |
virtual void | addRow (const CoinPackedVectorBase &vec, const double rowlb, const double rowub) |
We have to keep this but it will throw an error. | |
virtual void | addRow (const CoinPackedVectorBase &vec, const char rowsen, const double rowrhs, const double rowrng) |
We have to keep this but it will throw an error. | |
virtual void | deleteRows (const int num, const int *rowIndices) |
We have to keep this but it will throw an error. | |
virtual void | loadProblem (const CoinPackedMatrix &matrix, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub) |
We have to keep this but it will throw an error. | |
virtual void | assignProblem (CoinPackedMatrix *&matrix, double *&collb, double *&colub, double *&obj, double *&rowlb, double *&rowub) |
We have to keep this but it will throw an error. | |
virtual void | loadProblem (const CoinPackedMatrix &matrix, const double *collb, const double *colub, const double *obj, const char *rowsen, const double *rowrhs, const double *rowrng) |
We have to keep this but it will throw an error. | |
virtual void | assignProblem (CoinPackedMatrix *&matrix, double *&collb, double *&colub, double *&obj, char *&rowsen, double *&rowrhs, double *&rowrng) |
We have to keep this but it will throw an error. | |
virtual void | loadProblem (const int numcols, const int numrows, const int *start, const int *index, const double *value, const double *collb, const double *colub, const double *obj, const double *rowlb, const double *rowub) |
We have to keep this but it will throw an error. | |
virtual void | loadProblem (const int numcols, const int numrows, const int *start, const int *index, const double *value, const double *collb, const double *colub, const double *obj, const char *rowsen, const double *rowrhs, const double *rowrng) |
We have to keep this but it will throw an error. | |
virtual int | readMps (const char *filename, const char *extension="mps") |
We have to keep this but it will throw an error. | |
virtual void | writeMps (const char *filename, const char *extension="mps", double objSense=0.0) const |
We have to keep this but it will throw an error. | |
virtual std::vector< double * > | getDualRays (int maxNumRays) const |
Throws an error. | |
virtual std::vector< double * > | getPrimalRays (int maxNumRays) const |
Throws an error. | |
Control of Ipopt output | |
void | turnOffSolverOutput () |
void | turnOnSolverOutput () |
Sets and Getss | |
virtual double | getObjValue () const |
Get objective function value (can't use default). | |
Methods to build outer approximations | |
virtual void | extractLinearRelaxation (OsiSolverInterface &si, const double *x, bool getObj=1) |
Extract a linear relaxation of the MINLP. | |
virtual void | extractLinearRelaxation (OsiSolverInterface &si, bool getObj=1, bool solveNlp=1) |
Extract a linear relaxation of the MINLP. | |
void | getOuterApproximation (OsiCuts &cs, bool getObj, const double *x2, bool global) |
Get the outer approximation constraints at the current optimal point. | |
void | getOuterApproximation (OsiCuts &cs, const double *x, bool getObj, const double *x2, bool global) |
Get the outer approximation constraints at provided point. | |
virtual void | getOuterApproximation (OsiCuts &cs, const double *x, bool getObj, const double *x2, double theta, bool global) |
Get the outer approximation constraints at the point x. | |
virtual void | getConstraintOuterApproximation (OsiCuts &cs, int constraintNumber, const double *x, const double *x2, bool global) |
Get the outer approximation of a single constraint at the point x. | |
void | getConstraintOuterApproximation (OsiCuts &cs, int constraintNumber, const double *x2, bool global) |
Get the outer approximation at current optimal point for given constraint. | |
void | getBendersCut (OsiCuts &cs, const double *x, const double *lambda, bool getObj=1) |
Get the Benders cut at provided point with provided multipliers. | |
double | getFeasibilityOuterApproximation (int n, const double *x_bar, const int *ind, OsiCuts &cs, bool addOnlyViolated, bool global) |
solve the problem of finding the closest point to x_bar in the subspace of coordinates given by ind (i.e., ![]() | |
double | solveFeasibilityProblem (int n, const double *x_bar, const int *ind, double a, double s, int L) |
Given a point x_bar this solves the problem of finding the point which minimize a convex combination between the distance to x_bar and the original objective function f(x): ![]() | |
Friends | |
class | BonminParam |
Classes | |
class | Messages |
Messages outputed by an OsiTMINLPInterface. More... | |
class | SimpleError |
Error class to throw exceptions from OsiTMINLPInterface. More... |
Definition at line 47 of file BonOsiTMINLPInterface.hpp.
Type of the messages specifically outputed by OsiTMINLPInterface.
SOLUTION_FOUND | found a feasible solution |
INFEASIBLE_SOLUTION_FOUND | found an infeasible problem |
UNSOLVED_PROBLEM_FOUND | found an unsolved problem |
WARNING_RESOLVING | Warn that a problem is resolved. |
WARN_SUCCESS_WS | Problem not solved with warm start but solved without. |
WARN_SUCCESS_RANDOM | Subproblem not solve with warm start but solved with random point. |
WARN_CONTINUING_ON_FAILURE | a failure occured but is continuing |
SUSPECT_PROBLEM | Output the number of the problem. |
SUSPECT_PROBLEM2 | Output the number of the problem. |
IPOPT_SUMMARY | Output summary statistics on Ipopt solution. |
BETTER_SOL | Found a better solution with random values. |
LOG_HEAD | Head of "civilized" log. |
LOG_FIRST_LINE | First line (first solve) of log. |
LOG_LINE | standard line (retry solving) of log. |
ALTERNATE_OBJECTIVE | Recomputed integer feasible with alternate objective function. |
WARN_RESOLVE_BEFORE_INITIAL_SOLVE | resolve() has been called but there was no previous call to initialSolve(). |
ERROR_NO_TNLPSOLVER | Trying to access non-existent TNLPSolver. |
WARNING_NON_CONVEX_OA | Warn that there are equality or ranged constraints and OA may works bad. |
SOLVER_DISAGREE_STATUS | Different solver gives different status for problem. |
SOLVER_DISAGREE_VALUE | Different solver gives different optimal value for problem. |
OSITMINLPINTERFACE_DUMMY_END |
Definition at line 88 of file BonOsiTMINLPInterface.hpp.
Bonmin::OsiTMINLPInterface::OsiTMINLPInterface | ( | ) |
Default Constructor.
Definition at line 314 of file BonOsiTMINLPInterface.cpp.
Referenced by clone().
Bonmin::OsiTMINLPInterface::OsiTMINLPInterface | ( | const OsiTMINLPInterface & | ) |
Copy constructor.
Definition at line 471 of file BonOsiTMINLPInterface.cpp.
References clone(), and getNumCols().
Bonmin::OsiTMINLPInterface::~OsiTMINLPInterface | ( | ) | [virtual] |
TNLPSolver::UnsolvedError* Bonmin::OsiTMINLPInterface::newUnsolvedError | ( | int | num, | |
Ipopt::SmartPtr< TMINLP2TNLP > | problem, | |||
std::string | name | |||
) | [inline] |
Definition at line 81 of file BonOsiTMINLPInterface.hpp.
Referenced by resolveForRobustness(), and Bonmin::CbcNlpStrategy::status().
void Bonmin::OsiTMINLPInterface::initialize | ( | Ipopt::SmartPtr< Bonmin::RegisteredOptions > | roptions, | |
Ipopt::SmartPtr< Ipopt::OptionsList > | options, | |||
Ipopt::SmartPtr< Ipopt::Journalist > | journalist_, | |||
Ipopt::SmartPtr< TMINLP > | tminlp | |||
) |
Facilitator to initialize interface.
Definition at line 368 of file BonOsiTMINLPInterface.cpp.
References setModel().
Referenced by Bonmin::BonminAmplSetup::fillOsiInterface(), Bonmin::BonminAmplSetup::initialize(), CouenneSolver::solve(), and Bonmin::BabSetupBase::use().
void Bonmin::OsiTMINLPInterface::setModel | ( | Ipopt::SmartPtr< TMINLP > | tminlp | ) |
void Bonmin::OsiTMINLPInterface::setSolver | ( | Ipopt::SmartPtr< TNLPSolver > | app | ) |
Set the solver to be used by interface.
Definition at line 377 of file BonOsiTMINLPInterface.cpp.
Referenced by interfaceTest(), and CouenneSolver::solve().
void Bonmin::OsiTMINLPInterface::use | ( | Ipopt::SmartPtr< TMINLP2TNLP > | tminlp2tnlp | ) | [inline] |
Sets the TMINLP2TNLP to be used by the interface.
Definition at line 145 of file BonOsiTMINLPInterface.hpp.
OsiSolverInterface * Bonmin::OsiTMINLPInterface::clone | ( | bool | copyData = true |
) | const |
Virtual copy constructor.
Definition at line 562 of file BonOsiTMINLPInterface.cpp.
References OsiTMINLPInterface().
Referenced by Bonmin::BabSetupBase::BabSetupBase(), Bonmin::BonminSetup::BonminSetup(), Bonmin::BonminSetup::initializeBHyb(), OsiTMINLPInterface(), and Bonmin::BabSetupBase::use().
OsiTMINLPInterface & Bonmin::OsiTMINLPInterface::operator= | ( | const OsiTMINLPInterface & | rhs | ) |
Assignment operator.
Definition at line 570 of file BonOsiTMINLPInterface.cpp.
References getNumRows().
void Bonmin::OsiTMINLPInterface::readOptionFile | ( | const std::string & | fileName | ) |
Read parameter file.
Definition at line 453 of file BonOsiTMINLPInterface.cpp.
References options().
const SmartPtr< OptionsList > Bonmin::OsiTMINLPInterface::options | ( | ) | const |
Retrieve OsiTMINLPApplication option list.
Definition at line 678 of file BonOsiTMINLPInterface.cpp.
References ERROR_NO_TNLPSOLVER.
Referenced by getDblParam(), main(), and readOptionFile().
SmartPtr< OptionsList > Bonmin::OsiTMINLPInterface::options | ( | ) |
Retrieve OsiTMINLPApplication option list.
Definition at line 688 of file BonOsiTMINLPInterface.cpp.
References ERROR_NO_TNLPSOLVER.
void Bonmin::OsiTMINLPInterface::initialSolve | ( | ) | [virtual] |
Solve initial continuous relaxation.
Only do it once at the root.
Definition at line 2542 of file BonOsiTMINLPInterface.cpp.
References getObjValue(), isAbandoned(), LOG_FIRST_LINE, resolveForCost(), and resolveForRobustness().
Referenced by enhancedOA(), extractLinearRelaxation(), FP(), FPGeneralIntegers(), iteratedFP(), main(), resolve(), testOptimAndSolutionQuery(), and testSetMethods().
void Bonmin::OsiTMINLPInterface::resolve | ( | ) | [virtual] |
Resolve the continuous relaxation after problem modification.
initialSolve may or may not have been called before this is called. In any case, this must solve the problem, and speed the process up if it can reuse any remnants of data that might exist from a previous solve.
Definition at line 2599 of file BonOsiTMINLPInterface.cpp.
References getObjValue(), initialSolve(), INT_BIAS, isAbandoned(), isProvenPrimalInfeasible(), LOG_FIRST_LINE, resolveForCost(), and resolveForRobustness().
Referenced by Bonmin::OaNlpOptim::generateCuts(), Bonmin::OaDecompositionBase::solveNlp(), and testSetMethods().
void Bonmin::OsiTMINLPInterface::resolveForCost | ( | int | numretry, | |
bool | keepWs | |||
) | [virtual] |
Resolve the problem with different random starting points to try to find a better solution (only makes sense for a non-convex problem.
Save current optimum.
Definition at line 759 of file BonOsiTMINLPInterface.cpp.
References BETTER_SOL, c, f, getColSolution(), getNumCols(), getNumRows(), getObjValue(), getRowPrice(), INFEASIBLE_SOLUTION_FOUND, isAbandoned(), isProvenOptimal(), LOG_LINE, Bonmin::make_referenced(), randomStartingPoint(), setColSolution(), setRowPrice(), SOLUTION_FOUND, UNSOLVED_PROBLEM_FOUND, and WARNING_RESOLVING.
Referenced by initialSolve(), and resolve().
void Bonmin::OsiTMINLPInterface::resolveForRobustness | ( | int | numretry | ) | [virtual] |
Method to be called when a problem has failed to be solved.
Will try to resolve it with different settings.
Definition at line 847 of file BonOsiTMINLPInterface.cpp.
References c, f, getObjValue(), getStrParam(), IPOPT_SUMMARY, isAbandoned(), LOG_LINE, newUnsolvedError(), problem(), randomStartingPoint(), Bonmin::TMINLP2TNLP::resetStartingPoint(), WARN_CONTINUING_ON_FAILURE, WARN_SUCCESS_RANDOM, WARN_SUCCESS_WS, and WARNING_RESOLVING.
Referenced by initialSolve(), and resolve().
virtual void Bonmin::OsiTMINLPInterface::branchAndBound | ( | ) | [inline, virtual] |
Nescessary for compatibility with OsiSolverInterface but does nothing.
Definition at line 192 of file BonOsiTMINLPInterface.hpp.
bool Bonmin::OsiTMINLPInterface::isAbandoned | ( | ) | const [virtual] |
Are there a numerical difficulties?
Definition at line 2656 of file BonOsiTMINLPInterface.cpp.
References Bonmin::TNLPSolver::computationError, Bonmin::TNLPSolver::exception, Bonmin::TNLPSolver::externalException, Bonmin::TNLPSolver::illDefinedProblem, Bonmin::TNLPSolver::illegalOption, and Bonmin::TNLPSolver::iterationLimit.
Referenced by Bonmin::OaNlpOptim::generateCuts(), initialSolve(), resolve(), resolveForCost(), resolveForRobustness(), and Bonmin::OaDecompositionBase::solveNlp().
bool Bonmin::OsiTMINLPInterface::isProvenOptimal | ( | ) | const [virtual] |
Is optimality proven?
Definition at line 2669 of file BonOsiTMINLPInterface.cpp.
References Bonmin::TNLPSolver::solvedOptimal, and Bonmin::TNLPSolver::solvedOptimalTol.
Referenced by CouenneProblem::aggressiveBT(), enhancedOA(), FP(), FPGeneralIntegers(), Bonmin::OaNlpOptim::generateCuts(), iteratedFP(), resolveForCost(), Bonmin::OaDecompositionBase::solveNlp(), testOptimAndSolutionQuery(), and testSetMethods().
bool Bonmin::OsiTMINLPInterface::isProvenPrimalInfeasible | ( | ) | const [virtual] |
Is primal infeasiblity proven?
Definition at line 2675 of file BonOsiTMINLPInterface.cpp.
References Bonmin::TNLPSolver::provenInfeasible.
Referenced by resolve(), and CouenneSolver::solve().
bool Bonmin::OsiTMINLPInterface::isProvenDualInfeasible | ( | ) | const [virtual] |
Is dual infeasiblity proven?
Definition at line 2680 of file BonOsiTMINLPInterface.cpp.
References Bonmin::TNLPSolver::unbounded.
bool Bonmin::OsiTMINLPInterface::isPrimalObjectiveLimitReached | ( | ) | const [virtual] |
Is the given primal objective limit reached?
Definition at line 2685 of file BonOsiTMINLPInterface.cpp.
bool Bonmin::OsiTMINLPInterface::isDualObjectiveLimitReached | ( | ) | const [virtual] |
Is the given dual objective limit reached?
Definition at line 2691 of file BonOsiTMINLPInterface.cpp.
References Bonmin::TNLPSolver::unbounded.
bool Bonmin::OsiTMINLPInterface::isIterationLimitReached | ( | ) | const [virtual] |
Iteration limit reached?
Definition at line 2698 of file BonOsiTMINLPInterface.cpp.
References Bonmin::TNLPSolver::iterationLimit.
Referenced by Bonmin::OaNlpOptim::generateCuts(), BM_lp::select_branching_candidates(), and Bonmin::OaDecompositionBase::solveNlp().
void Bonmin::OsiTMINLPInterface::continuingOnAFailure | ( | ) | [inline] |
Warn solver that branch-and-bound is continuing after a failure.
Definition at line 219 of file BonOsiTMINLPInterface.hpp.
bool Bonmin::OsiTMINLPInterface::hasContinuedOnAFailure | ( | ) | [inline] |
void Bonmin::OsiTMINLPInterface::ignoreFailures | ( | ) | [inline] |
tell to ignore the failures (don't throw, don't fathom, don't report)
Definition at line 229 of file BonOsiTMINLPInterface.hpp.
Referenced by Bonmin::BonminSetup::initializeBBB().
void Bonmin::OsiTMINLPInterface::forceInfeasible | ( | ) | [inline] |
Force current solution to be infeasible.
Definition at line 234 of file BonOsiTMINLPInterface.hpp.
Referenced by Bonmin::CbcNlpStrategy::status().
void Bonmin::OsiTMINLPInterface::forceBranchable | ( | ) | [inline] |
Force current solution to be branched on (make it fractionnal with small objective).
Definition at line 239 of file BonOsiTMINLPInterface.hpp.
Referenced by BM_lp::select_branching_candidates(), and Bonmin::CbcNlpStrategy::status().
bool Bonmin::OsiTMINLPInterface::setIntParam | ( | OsiIntParam | key, | |
int | value | |||
) |
Definition at line 1387 of file BonOsiTMINLPInterface.cpp.
bool Bonmin::OsiTMINLPInterface::setDblParam | ( | OsiDblParam | key, | |
double | value | |||
) |
Definition at line 1417 of file BonOsiTMINLPInterface.cpp.
bool Bonmin::OsiTMINLPInterface::setStrParam | ( | OsiStrParam | key, | |
const std::string & | value | |||
) |
Definition at line 1456 of file BonOsiTMINLPInterface.cpp.
Referenced by Bonmin::AmplInterface::readAmplNlFile(), and FPInterface::readAmplNlFile2().
bool Bonmin::OsiTMINLPInterface::getIntParam | ( | OsiIntParam | key, | |
int & | value | |||
) | const |
Definition at line 1476 of file BonOsiTMINLPInterface.cpp.
bool Bonmin::OsiTMINLPInterface::getDblParam | ( | OsiDblParam | key, | |
double & | value | |||
) | const |
Definition at line 1502 of file BonOsiTMINLPInterface.cpp.
References getInfinity(), and options().
Referenced by BM_lp::bbBranch(), and Bonmin::LpBranchingSolver::markHotStart().
bool Bonmin::OsiTMINLPInterface::getStrParam | ( | OsiStrParam | key, | |
std::string & | value | |||
) | const |
Definition at line 1538 of file BonOsiTMINLPInterface.cpp.
Referenced by enhancedOA(), iteratedFP(), main(), Bonmin::AmplInterface::readNames(), resolveForRobustness(), and Bonmin::CbcNlpStrategy::status().
double Bonmin::OsiTMINLPInterface::getPushFact | ( | ) | const [inline] |
Definition at line 277 of file BonOsiTMINLPInterface.hpp.
int Bonmin::OsiTMINLPInterface::getNumCols | ( | ) | const [virtual] |
Get number of columns.
Definition at line 956 of file BonOsiTMINLPInterface.cpp.
Referenced by BM_lp::bbBranch(), enhancedOA(), extractLinearRelaxation(), FP(), FPGeneralIntegers(), Bonmin::OaNlpOptim::generateCuts(), getConstraintOuterApproximation(), getObjCoefficients(), getReducedCost(), iteratedFP(), main(), Bonmin::CurvBranchingSolver::markHotStart(), OsiTMINLPInterface(), BM_lp::process_message(), randomStartingPoint(), Bonmin::AmplInterface::readAmplNlFile(), FPInterface::readAmplNlFile2(), resolveForCost(), setColSolution(), setRowPrice(), Bonmin::LpBranchingSolver::solveFromHotStart(), Bonmin::OaDecompositionBase::solveNlp(), testGetMethods(), testOa(), BM_lp::unpack_module_data(), and BM_tm::write_AMPL_solution().
int Bonmin::OsiTMINLPInterface::getNumRows | ( | ) | const [virtual] |
Get number of rows.
Definition at line 965 of file BonOsiTMINLPInterface.cpp.
Referenced by extractLinearRelaxation(), Bonmin::OaNlpOptim::generateCuts(), Bonmin::CurvBranchingSolver::markHotStart(), operator=(), resolveForCost(), setRowPrice(), and testGetMethods().
const OsiSolverInterface::OsiNameVec & Bonmin::OsiTMINLPInterface::getVarNames | ( | ) |
const double * Bonmin::OsiTMINLPInterface::getColLower | ( | ) | const [virtual] |
Get pointer to array[getNumCols()] of column lower bounds.
Definition at line 971 of file BonOsiTMINLPInterface.cpp.
Referenced by BM_lp::bbBranch(), enhancedOA(), extractLinearRelaxation(), FPGeneralIntegers(), Bonmin::OaNlpOptim::generateCuts(), getConstraintOuterApproximation(), getOuterApproximation(), isFreeBinary(), iteratedFP(), randomStartingPoint(), Bonmin::LpBranchingSolver::solveFromHotStart(), Bonmin::CurvBranchingSolver::solveFromHotStart(), testGetMethods(), testSetMethods(), and BM_lp::unpack_module_data().
const double * Bonmin::OsiTMINLPInterface::getColUpper | ( | ) | const [virtual] |
Get pointer to array[getNumCols()] of column upper bounds.
Definition at line 977 of file BonOsiTMINLPInterface.cpp.
Referenced by BM_lp::bbBranch(), enhancedOA(), extractLinearRelaxation(), FPGeneralIntegers(), Bonmin::OaNlpOptim::generateCuts(), getConstraintOuterApproximation(), getOuterApproximation(), isFreeBinary(), iteratedFP(), randomStartingPoint(), Bonmin::LpBranchingSolver::solveFromHotStart(), Bonmin::CurvBranchingSolver::solveFromHotStart(), testGetMethods(), testSetMethods(), and BM_lp::unpack_module_data().
const char * Bonmin::OsiTMINLPInterface::getRowSense | ( | ) | const [virtual] |
Get pointer to array[getNumRows()] of row constraint senses.
Definition at line 1019 of file BonOsiTMINLPInterface.cpp.
const double * Bonmin::OsiTMINLPInterface::getRightHandSide | ( | ) | const [virtual] |
Get pointer to array[getNumRows()] of rows right-hand sides.
Definition at line 1036 of file BonOsiTMINLPInterface.cpp.
const double * Bonmin::OsiTMINLPInterface::getRowRange | ( | ) | const [virtual] |
Get pointer to array[getNumRows()] of row ranges.
Definition at line 1053 of file BonOsiTMINLPInterface.cpp.
const double * Bonmin::OsiTMINLPInterface::getRowLower | ( | ) | const [virtual] |
Get pointer to array[getNumRows()] of row lower bounds.
Definition at line 1062 of file BonOsiTMINLPInterface.cpp.
Referenced by extractLinearRelaxation(), getConstraintOuterApproximation(), getOuterApproximation(), and testGetMethods().
const double * Bonmin::OsiTMINLPInterface::getRowUpper | ( | ) | const [virtual] |
Get pointer to array[getNumRows()] of row upper bounds.
Definition at line 1068 of file BonOsiTMINLPInterface.cpp.
Referenced by extractLinearRelaxation(), getConstraintOuterApproximation(), getOuterApproximation(), and testGetMethods().
virtual double Bonmin::OsiTMINLPInterface::getObjSense | ( | ) | const [inline, virtual] |
Get objective function sense (1 for min (default), -1 for max) Always minimizes.
Definition at line 353 of file BonOsiTMINLPInterface.hpp.
Referenced by testGetMethods(), and testOa().
bool Bonmin::OsiTMINLPInterface::isContinuous | ( | int | colNumber | ) | const [virtual] |
Return true if column is continuous.
Definition at line 1075 of file BonOsiTMINLPInterface.cpp.
References Bonmin::TMINLP::CONTINUOUS.
Referenced by testGetMethods().
bool Bonmin::OsiTMINLPInterface::isBinary | ( | int | columnNumber | ) | const [virtual] |
Return true if column is binary.
Definition at line 1082 of file BonOsiTMINLPInterface.cpp.
References Bonmin::TMINLP::BINARY.
Referenced by testGetMethods().
bool Bonmin::OsiTMINLPInterface::isInteger | ( | int | columnNumber | ) | const [virtual] |
Return true if column is integer.
Note: This function returns true if the the column is binary or a general integer.
Definition at line 1092 of file BonOsiTMINLPInterface.cpp.
References Bonmin::TMINLP::BINARY, and Bonmin::TMINLP::INTEGER.
Referenced by enhancedOA(), extractLinearRelaxation(), FP(), FPGeneralIntegers(), Bonmin::OaNlpOptim::generateCuts(), BM_tm::initialize_core(), iteratedFP(), main(), testGetMethods(), testOa(), and BM_lp::unpack_module_data().
bool Bonmin::OsiTMINLPInterface::isIntegerNonBinary | ( | int | columnNumber | ) | const [virtual] |
Return true if column is general integer.
Definition at line 1100 of file BonOsiTMINLPInterface.cpp.
References Bonmin::TMINLP::INTEGER.
Referenced by testGetMethods().
bool Bonmin::OsiTMINLPInterface::isFreeBinary | ( | int | columnNumber | ) | const [virtual] |
Return true if column is binary and not fixed at either bound.
Definition at line 1106 of file BonOsiTMINLPInterface.cpp.
References Bonmin::TMINLP::BINARY, e, getColLower(), and getColUpper().
Referenced by testGetMethods().
double Bonmin::OsiTMINLPInterface::getInfinity | ( | ) | const [virtual] |
Get solver's value for infinity.
Definition at line 1114 of file BonOsiTMINLPInterface.cpp.
Referenced by extractLinearRelaxation(), getConstraintOuterApproximation(), getDblParam(), getOuterApproximation(), and testGetMethods().
const int* Bonmin::OsiTMINLPInterface::getPriorities | ( | ) | const [inline] |
Get priorities on integer variables.
Definition at line 380 of file BonOsiTMINLPInterface.hpp.
References Bonmin::TMINLP::BranchingInfo::priorities.
Referenced by Bonmin::BabSetupBase::addSos(), Bonmin::BabSetupBase::setPriorities(), and BM_lp::unpack_module_data().
const int* Bonmin::OsiTMINLPInterface::getBranchingDirections | ( | ) | const [inline] |
get prefered branching directions
Definition at line 388 of file BonOsiTMINLPInterface.hpp.
References Bonmin::TMINLP::BranchingInfo::branchingDirections.
Referenced by Bonmin::BabSetupBase::setPriorities().
const double* Bonmin::OsiTMINLPInterface::getUpPsCosts | ( | ) | const [inline] |
Get number of columns.
Definition at line 395 of file BonOsiTMINLPInterface.hpp.
References Bonmin::TMINLP::BranchingInfo::upPsCosts.
Referenced by Bonmin::BabSetupBase::setPriorities().
const double* Bonmin::OsiTMINLPInterface::getDownPsCosts | ( | ) | const [inline] |
Get number of columns.
Definition at line 402 of file BonOsiTMINLPInterface.hpp.
References Bonmin::TMINLP::BranchingInfo::downPsCosts.
const double * Bonmin::OsiTMINLPInterface::getColSolution | ( | ) | const [virtual] |
Get pointer to array[getNumCols()] of primal solution vector.
Definition at line 1121 of file BonOsiTMINLPInterface.cpp.
Referenced by CouenneProblem::aggressiveBT(), enhancedOA(), extractLinearRelaxation(), FP(), FPGeneralIntegers(), Bonmin::OaNlpOptim::generateCuts(), getConstraintOuterApproximation(), getFeasibilityOuterApproximation(), getOuterApproximation(), iteratedFP(), main(), Bonmin::OaFeasibilityChecker::performOa(), Bonmin::OACutGenerator2::performOa(), resolveForCost(), Bonmin::OaDecompositionBase::solveNlp(), testFp(), testOptimAndSolutionQuery(), and testSetMethods().
const double * Bonmin::OsiTMINLPInterface::getRowPrice | ( | ) | const [virtual] |
Get pointer to array[getNumRows()] of dual prices.
Definition at line 1131 of file BonOsiTMINLPInterface.cpp.
Referenced by extractLinearRelaxation(), FP(), FPGeneralIntegers(), getConstraintOuterApproximation(), getOuterApproximation(), resolveForCost(), and testOptimAndSolutionQuery().
const double * Bonmin::OsiTMINLPInterface::getReducedCost | ( | ) | const [virtual] |
Get a pointer to array[getNumCols()] of reduced costs.
Definition at line 1141 of file BonOsiTMINLPInterface.cpp.
References getNumCols().
const double * Bonmin::OsiTMINLPInterface::getRowActivity | ( | ) | const [virtual] |
Get pointer to array[getNumRows()] of row activity levels (constraint matrix times the solution vector.
Definition at line 1154 of file BonOsiTMINLPInterface.cpp.
Referenced by testOptimAndSolutionQuery().
int Bonmin::OsiTMINLPInterface::getIterationCount | ( | ) | const [virtual] |
Get how many iterations it took to solve the problem (whatever "iteration" mean to the solver.
Definition at line 1163 of file BonOsiTMINLPInterface.cpp.
Referenced by FP(), FPGeneralIntegers(), Bonmin::OaDecompositionBase::solveNlp(), and testOptimAndSolutionQuery().
int Bonmin::OsiTMINLPInterface::nCallOptimizeTNLP | ( | ) | [inline] |
double Bonmin::OsiTMINLPInterface::totalNlpSolveTime | ( | ) | [inline] |
int Bonmin::OsiTMINLPInterface::totalIterations | ( | ) | [inline] |
void Bonmin::OsiTMINLPInterface::setColLower | ( | int | elementIndex, | |
double | elementValue | |||
) | [virtual] |
Set a single column lower bound.
Use -getInfinity() for -infinity.
Definition at line 1172 of file BonOsiTMINLPInterface.cpp.
Referenced by enhancedOA(), FP(), FPGeneralIntegers(), BM_lp::initialize_new_search_tree_node(), iteratedFP(), BM_lp::process_message(), Bonmin::BoundsReader::readAndApply(), testGetMethods(), and testSetMethods().
void Bonmin::OsiTMINLPInterface::setColUpper | ( | int | elementIndex, | |
double | elementValue | |||
) | [virtual] |
Set a single column upper bound.
Use getInfinity() for infinity.
Definition at line 1182 of file BonOsiTMINLPInterface.cpp.
Referenced by enhancedOA(), FP(), FPGeneralIntegers(), BM_lp::initialize_new_search_tree_node(), iteratedFP(), BM_lp::process_message(), Bonmin::BoundsReader::readAndApply(), and testSetMethods().
void Bonmin::OsiTMINLPInterface::setColLower | ( | const double * | array | ) | [virtual] |
Set the lower bounds for all columns Use -getInfinity() for -infinity.
Definition at line 1192 of file BonOsiTMINLPInterface.cpp.
void Bonmin::OsiTMINLPInterface::setColUpper | ( | const double * | array | ) | [virtual] |
Set Set the upper bounds for all columns Use getInfinity() for infinity.
Definition at line 1202 of file BonOsiTMINLPInterface.cpp.
void Bonmin::OsiTMINLPInterface::setRowLower | ( | int | elementIndex, | |
double | elementValue | |||
) | [virtual] |
Set a single row lower bound.
Use -getInfinity() for -infinity.
Definition at line 1212 of file BonOsiTMINLPInterface.cpp.
void Bonmin::OsiTMINLPInterface::setRowUpper | ( | int | elementIndex, | |
double | elementValue | |||
) | [virtual] |
Set a single row upper bound.
Use getInfinity() for infinity.
Definition at line 1222 of file BonOsiTMINLPInterface.cpp.
void Bonmin::OsiTMINLPInterface::setRowType | ( | int | index, | |
char | sense, | |||
double | rightHandSide, | |||
double | range | |||
) | [virtual] |
void Bonmin::OsiTMINLPInterface::setObjSense | ( | double | s | ) | [virtual] |
Set the objective function sense.
(1 for min (default), -1 for max)
Definition at line 1243 of file BonOsiTMINLPInterface.cpp.
void Bonmin::OsiTMINLPInterface::setColSolution | ( | const double * | colsol | ) | [virtual] |
Set the primal solution variable values.
Definition at line 1260 of file BonOsiTMINLPInterface.cpp.
References getNumCols().
Referenced by extractLinearRelaxation(), FP(), FPGeneralIntegers(), randomStartingPoint(), Bonmin::StartPointReader::readAndApply(), and resolveForCost().
void Bonmin::OsiTMINLPInterface::setRowPrice | ( | const double * | rowprice | ) | [virtual] |
Set dual solution variable values.
set the values for the starting point.
Definition at line 1277 of file BonOsiTMINLPInterface.cpp.
References getNumCols(), and getNumRows().
Referenced by extractLinearRelaxation(), FP(), FPGeneralIntegers(), Bonmin::StartPointReader::readAndApply(), and resolveForCost().
CoinWarmStart * Bonmin::OsiTMINLPInterface::getEmptyWarmStart | ( | ) | const [virtual] |
Get an empty warm start object.
This routine returns an empty CoinWarmStartBasis object. Its purpose is to provide a way to give a client a warm start basis object of the appropriate type, which can resized and modified as desired.
Definition at line 1290 of file BonOsiTMINLPInterface.cpp.
Referenced by getWarmStart().
CoinWarmStart * Bonmin::OsiTMINLPInterface::getWarmStart | ( | ) | const [virtual] |
Get warmstarting information.
Definition at line 1295 of file BonOsiTMINLPInterface.cpp.
References getEmptyWarmStart().
Referenced by testSetMethods().
bool Bonmin::OsiTMINLPInterface::setWarmStart | ( | const CoinWarmStart * | warmstart | ) | [virtual] |
Set warmstarting information.
Return true/false depending on whether the warmstart information was accepted or not.
Definition at line 1307 of file BonOsiTMINLPInterface.cpp.
Referenced by testSetMethods().
void Bonmin::OsiTMINLPInterface::setExposeWarmStart | ( | bool | value | ) | [inline] |
Get an empty warm start object.
This routine returns an empty CoinWarmStartBasis object. Its purpose is to provide a way to give a client a warm start basis object of the appropriate type, which can resized and modified as desired.
Definition at line 530 of file BonOsiTMINLPInterface.hpp.
Referenced by interfaceTest().
bool Bonmin::OsiTMINLPInterface::getExposeWarmStart | ( | ) | [inline] |
Get an empty warm start object.
This routine returns an empty CoinWarmStartBasis object. Its purpose is to provide a way to give a client a warm start basis object of the appropriate type, which can resized and modified as desired.
Definition at line 534 of file BonOsiTMINLPInterface.hpp.
void Bonmin::OsiTMINLPInterface::randomStartingPoint | ( | ) |
Get an empty warm start object.
This routine returns an empty CoinWarmStartBasis object. Its purpose is to provide a way to give a client a warm start basis object of the appropriate type, which can resized and modified as desired.
Definition at line 1557 of file BonOsiTMINLPInterface.cpp.
References getColLower(), getColUpper(), getNumCols(), Bonmin::TMINLP::PerturbInfo::GetPerturbationArray(), and setColSolution().
Referenced by resolveForCost(), and resolveForRobustness().
virtual bool Bonmin::OsiTMINLPInterface::basisIsAvailable | ( | ) | const [inline, virtual] |
Get an empty warm start object.
This routine returns an empty CoinWarmStartBasis object. Its purpose is to provide a way to give a client a warm start basis object of the appropriate type, which can resized and modified as desired.
Definition at line 541 of file BonOsiTMINLPInterface.hpp.
void Bonmin::OsiTMINLPInterface::setContinuous | ( | int | index | ) | [virtual] |
Set the index-th variable to be a continuous variable.
Definition at line 1362 of file BonOsiTMINLPInterface.cpp.
References Bonmin::TMINLP::CONTINUOUS.
void Bonmin::OsiTMINLPInterface::setInteger | ( | int | index | ) | [virtual] |
Set the index-th variable to be an integer variable.
Definition at line 1369 of file BonOsiTMINLPInterface.cpp.
References Bonmin::TMINLP::INTEGER.
void Bonmin::OsiTMINLPInterface::setNumIterationSuspect | ( | int | value | ) | [inline] |
Definition at line 560 of file BonOsiTMINLPInterface.hpp.
virtual int Bonmin::OsiTMINLPInterface::getNumElements | ( | ) | const [inline, virtual] |
Cbc will understand that no matrix exsits if return -1.
Definition at line 573 of file BonOsiTMINLPInterface.hpp.
const double * Bonmin::OsiTMINLPInterface::getObjCoefficients | ( | ) | const [virtual] |
This returns the objective function gradient at the current point.
It seems to be required for Cbc's pseudo cost initialization
Definition at line 2824 of file BonOsiTMINLPInterface.cpp.
References getNumCols().
virtual const CoinPackedMatrix* Bonmin::OsiTMINLPInterface::getMatrixByRow | ( | ) | const [inline, virtual] |
We have to keep this but it will return NULL.
Definition at line 587 of file BonOsiTMINLPInterface.hpp.
virtual const CoinPackedMatrix* Bonmin::OsiTMINLPInterface::getMatrixByCol | ( | ) | const [inline, virtual] |
We have to keep this but it will return NULL.
Definition at line 595 of file BonOsiTMINLPInterface.hpp.
virtual void Bonmin::OsiTMINLPInterface::setObjCoeff | ( | int | elementIndex, | |
double | elementValue | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 602 of file BonOsiTMINLPInterface.hpp.
virtual void Bonmin::OsiTMINLPInterface::addCol | ( | const CoinPackedVectorBase & | vec, | |
const double | collb, | |||
const double | colub, | |||
const double | obj | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 610 of file BonOsiTMINLPInterface.hpp.
virtual void Bonmin::OsiTMINLPInterface::deleteCols | ( | const int | num, | |
const int * | colIndices | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 619 of file BonOsiTMINLPInterface.hpp.
virtual void Bonmin::OsiTMINLPInterface::addRow | ( | const CoinPackedVectorBase & | vec, | |
const double | rowlb, | |||
const double | rowub | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 627 of file BonOsiTMINLPInterface.hpp.
virtual void Bonmin::OsiTMINLPInterface::addRow | ( | const CoinPackedVectorBase & | vec, | |
const char | rowsen, | |||
const double | rowrhs, | |||
const double | rowrng | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 635 of file BonOsiTMINLPInterface.hpp.
virtual void Bonmin::OsiTMINLPInterface::deleteRows | ( | const int | num, | |
const int * | rowIndices | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 644 of file BonOsiTMINLPInterface.hpp.
virtual void Bonmin::OsiTMINLPInterface::loadProblem | ( | const CoinPackedMatrix & | matrix, | |
const double * | collb, | |||
const double * | colub, | |||
const double * | obj, | |||
const double * | rowlb, | |||
const double * | rowub | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 654 of file BonOsiTMINLPInterface.hpp.
virtual void Bonmin::OsiTMINLPInterface::assignProblem | ( | CoinPackedMatrix *& | matrix, | |
double *& | collb, | |||
double *& | colub, | |||
double *& | obj, | |||
double *& | rowlb, | |||
double *& | rowub | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 666 of file BonOsiTMINLPInterface.hpp.
virtual void Bonmin::OsiTMINLPInterface::loadProblem | ( | const CoinPackedMatrix & | matrix, | |
const double * | collb, | |||
const double * | colub, | |||
const double * | obj, | |||
const char * | rowsen, | |||
const double * | rowrhs, | |||
const double * | rowrng | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 676 of file BonOsiTMINLPInterface.hpp.
virtual void Bonmin::OsiTMINLPInterface::assignProblem | ( | CoinPackedMatrix *& | matrix, | |
double *& | collb, | |||
double *& | colub, | |||
double *& | obj, | |||
char *& | rowsen, | |||
double *& | rowrhs, | |||
double *& | rowrng | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 688 of file BonOsiTMINLPInterface.hpp.
virtual void Bonmin::OsiTMINLPInterface::loadProblem | ( | const int | numcols, | |
const int | numrows, | |||
const int * | start, | |||
const int * | index, | |||
const double * | value, | |||
const double * | collb, | |||
const double * | colub, | |||
const double * | obj, | |||
const double * | rowlb, | |||
const double * | rowub | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 700 of file BonOsiTMINLPInterface.hpp.
virtual void Bonmin::OsiTMINLPInterface::loadProblem | ( | const int | numcols, | |
const int | numrows, | |||
const int * | start, | |||
const int * | index, | |||
const double * | value, | |||
const double * | collb, | |||
const double * | colub, | |||
const double * | obj, | |||
const char * | rowsen, | |||
const double * | rowrhs, | |||
const double * | rowrng | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 713 of file BonOsiTMINLPInterface.hpp.
virtual int Bonmin::OsiTMINLPInterface::readMps | ( | const char * | filename, | |
const char * | extension = "mps" | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 727 of file BonOsiTMINLPInterface.hpp.
virtual void Bonmin::OsiTMINLPInterface::writeMps | ( | const char * | filename, | |
const char * | extension = "mps" , |
|||
double | objSense = 0.0 | |||
) | const [inline, virtual] |
We have to keep this but it will throw an error.
Definition at line 737 of file BonOsiTMINLPInterface.hpp.
virtual std::vector<double*> Bonmin::OsiTMINLPInterface::getDualRays | ( | int | maxNumRays | ) | const [inline, virtual] |
virtual std::vector<double*> Bonmin::OsiTMINLPInterface::getPrimalRays | ( | int | maxNumRays | ) | const [inline, virtual] |
void Bonmin::OsiTMINLPInterface::turnOffSolverOutput | ( | ) | [inline] |
Definition at line 770 of file BonOsiTMINLPInterface.hpp.
void Bonmin::OsiTMINLPInterface::turnOnSolverOutput | ( | ) | [inline] |
Definition at line 772 of file BonOsiTMINLPInterface.hpp.
Referenced by enhancedOA(), and iteratedFP().
double Bonmin::OsiTMINLPInterface::getObjValue | ( | ) | const [virtual] |
Get objective function value (can't use default).
Definition at line 1377 of file BonOsiTMINLPInterface.cpp.
Referenced by CouenneProblem::aggressiveBT(), enhancedOA(), FP(), FPGeneralIntegers(), Bonmin::OaNlpOptim::generateCuts(), Bonmin::EcpCuts::generateCuts(), initialSolve(), iteratedFP(), Bonmin::OaFeasibilityChecker::performOa(), Bonmin::OACutGenerator2::performOa(), resolve(), resolveForCost(), resolveForRobustness(), solveFeasibilityProblem(), Bonmin::OaDecompositionBase::solveNlp(), and testOptimAndSolutionQuery().
const TMINLP2TNLP* Bonmin::OsiTMINLPInterface::problem | ( | ) | const [inline] |
get pointer to the TMINLP2TNLP adapter
Definition at line 784 of file BonOsiTMINLPInterface.hpp.
Referenced by Bonmin::Bab::branchAndBound(), extractLinearRelaxation(), Bonmin::QpBranchingSolver::markHotStart(), Bonmin::CurvBranchingSolver::markHotStart(), resolveForRobustness(), Bonmin::LpBranchingSolver::solveFromHotStart(), Bonmin::CurvBranchingSolver::solveFromHotStart(), and Bonmin::CbcNlpStrategy::status().
TMINLP2TNLP* Bonmin::OsiTMINLPInterface::problem | ( | ) | [inline] |
Definition at line 789 of file BonOsiTMINLPInterface.hpp.
const TMINLP* Bonmin::OsiTMINLPInterface::model | ( | ) | const [inline] |
Definition at line 794 of file BonOsiTMINLPInterface.hpp.
Referenced by Bonmin::BabSetupBase::addSos(), BM_tm::initialize_core(), BM_lp::unpack_module_data(), and BM_tm::write_AMPL_solution().
Bonmin::TMINLP* Bonmin::OsiTMINLPInterface::model | ( | ) | [inline] |
Definition at line 799 of file BonOsiTMINLPInterface.hpp.
const Bonmin::TNLPSolver* Bonmin::OsiTMINLPInterface::solver | ( | ) | const [inline] |
Definition at line 804 of file BonOsiTMINLPInterface.hpp.
Referenced by Bonmin::Bab::branchAndBound(), FP(), FPGeneralIntegers(), Bonmin::BonminAmplSetup::initialize(), Bonmin::LpBranchingSolver::LpBranchingSolver(), main(), Bonmin::QpBranchingSolver::markHotStart(), Bonmin::StartPointReader::readAndApply(), Bonmin::StrongBranchingSolver::StrongBranchingSolver(), and Bonmin::BabSetupBase::use().
TNLPSolver* Bonmin::OsiTMINLPInterface::solver | ( | ) | [inline] |
Definition at line 809 of file BonOsiTMINLPInterface.hpp.
void Bonmin::OsiTMINLPInterface::extractLinearRelaxation | ( | OsiSolverInterface & | si, | |
const double * | x, | |||
bool | getObj = 1 | |||
) | [virtual] |
Extract a linear relaxation of the MINLP.
Use user-provided point to build first-order outer-approximation constraints at the optimum. And put it in an OsiSolverInterface.
Definition at line 2121 of file BonOsiTMINLPInterface.cpp.
References Bonmin::cleanNnz(), e, getColLower(), getColSolution(), getColUpper(), getInfinity(), getNumCols(), getNumRows(), getRowLower(), getRowPrice(), getRowUpper(), infty, isInteger(), LINEAR, Bonmin::WarnedForNonConvexOa, and WARNING_NON_CONVEX_OA.
Referenced by Bonmin::BonminSetup::BonminSetup(), enhancedOA(), extractLinearRelaxation(), Bonmin::BonminSetup::initializeBHyb(), iteratedFP(), Bonmin::LpBranchingSolver::markHotStart(), Bonmin::OACutGenerator2::OACutGenerator2(), and testOa().
virtual void Bonmin::OsiTMINLPInterface::extractLinearRelaxation | ( | OsiSolverInterface & | si, | |
bool | getObj = 1 , |
|||
bool | solveNlp = 1 | |||
) | [inline, virtual] |
Extract a linear relaxation of the MINLP.
Solve the continuous relaxation and takes first-order outer-approximation constraints at the optimum. The put everything in an OsiSolverInterface.
Definition at line 828 of file BonOsiTMINLPInterface.hpp.
References extractLinearRelaxation(), getColSolution(), initialSolve(), problem(), setColSolution(), and setRowPrice().
void Bonmin::OsiTMINLPInterface::getOuterApproximation | ( | OsiCuts & | cs, | |
bool | getObj, | |||
const double * | x2, | |||
bool | global | |||
) | [inline] |
Get the outer approximation constraints at the current optimal point.
If x2 is different from NULL only add cuts violated by x2. (Only get outer-approximations of nonlinear constraints of the problem.)
Definition at line 843 of file BonOsiTMINLPInterface.hpp.
References getColSolution().
Referenced by enhancedOA(), FP(), FPGeneralIntegers(), Bonmin::OaNlpOptim::generateCuts(), Bonmin::EcpCuts::generateCuts(), getFeasibilityOuterApproximation(), getOuterApproximation(), Bonmin::BonminSetup::initializeBHyb(), iteratedFP(), Bonmin::OaFeasibilityChecker::performOa(), and Bonmin::OACutGenerator2::performOa().
void Bonmin::OsiTMINLPInterface::getOuterApproximation | ( | OsiCuts & | cs, | |
const double * | x, | |||
bool | getObj, | |||
const double * | x2, | |||
bool | global | |||
) | [inline] |
Get the outer approximation constraints at provided point.
If x2 is different from NULL only add cuts violated by x2. (Only get outer-approximations of nonlinear constraints of the problem.)
Definition at line 851 of file BonOsiTMINLPInterface.hpp.
References getOuterApproximation().
void Bonmin::OsiTMINLPInterface::getOuterApproximation | ( | OsiCuts & | cs, | |
const double * | x, | |||
bool | getObj, | |||
const double * | x2, | |||
double | theta, | |||
bool | global | |||
) | [virtual] |
Get the outer approximation constraints at the point x.
If x2 is different from NULL only add cuts violated by x2 by more than delta. (Only get outer-approximations of nonlinear constraints of the problem.)
Definition at line 1737 of file BonOsiTMINLPInterface.cpp.
References Bonmin::cleanNnz(), e, getColLower(), getColUpper(), getInfinity(), getRowLower(), getRowPrice(), getRowUpper(), and infty.
void Bonmin::OsiTMINLPInterface::getConstraintOuterApproximation | ( | OsiCuts & | cs, | |
int | constraintNumber, | |||
const double * | x, | |||
const double * | x2, | |||
bool | global | |||
) | [virtual] |
Get the outer approximation of a single constraint at the point x.
Definition at line 1950 of file BonOsiTMINLPInterface.cpp.
References Bonmin::cleanNnz(), getColLower(), getColUpper(), getInfinity(), getNumCols(), getRowLower(), getRowPrice(), getRowUpper(), and infty.
Referenced by getConstraintOuterApproximation().
void Bonmin::OsiTMINLPInterface::getConstraintOuterApproximation | ( | OsiCuts & | cs, | |
int | constraintNumber, | |||
const double * | x2, | |||
bool | global | |||
) | [inline] |
Get the outer approximation at current optimal point for given constraint.
Definition at line 866 of file BonOsiTMINLPInterface.hpp.
References getColSolution(), and getConstraintOuterApproximation().
void Bonmin::OsiTMINLPInterface::getBendersCut | ( | OsiCuts & | cs, | |
const double * | x, | |||
const double * | lambda, | |||
bool | getObj = 1 | |||
) |
Get the Benders cut at provided point with provided multipliers.
double Bonmin::OsiTMINLPInterface::getFeasibilityOuterApproximation | ( | int | n, | |
const double * | x_bar, | |||
const int * | ind, | |||
OsiCuts & | cs, | |||
bool | addOnlyViolated, | |||
bool | global | |||
) |
solve the problem of finding the closest point to x_bar in the subspace of coordinates given by ind (i.e., , and get the corresponding outer-approximation constraints.
(Only get outer-approximations of nonlinear constraints of the problem.)
n | number of element in arrays x and ind | |
ind | indices of the coordinate |
Definition at line 2109 of file BonOsiTMINLPInterface.cpp.
References getColSolution(), getOuterApproximation(), and solveFeasibilityProblem().
Referenced by enhancedOA(), FP(), FPGeneralIntegers(), iteratedFP(), and testFp().
double Bonmin::OsiTMINLPInterface::solveFeasibilityProblem | ( | int | n, | |
const double * | x_bar, | |||
const int * | ind, | |||
double | a, | |||
double | s, | |||
int | L | |||
) |
Given a point x_bar this solves the problem of finding the point which minimize a convex combination between the distance to x_bar and the original objective function f(x): .
n | number of elements in array x_bar and ind | |
s | scaling of the original objective. | |
a | Combination to take between feasibility and original objective (must be between 0 and 1). | |
L | L-norm to use (can be either 1 or 2). |
Definition at line 2060 of file BonOsiTMINLPInterface.cpp.
References getObjValue().
Referenced by getFeasibilityOuterApproximation().
friend class BonminParam [friend] |
Definition at line 49 of file BonOsiTMINLPInterface.hpp.