#include <IpoptInterface.hpp>
Inheritance diagram for IpoptInterface:
Cached information on the problem | |
void | freeCachedColRim () |
Free cached data relative to variables. | |
void | freeCachedRowRim () |
Free cached data relative to constraints. | |
void | freeCachedData () |
Free all cached data. | |
void | extractSenseRhsAndRange () const |
Extract rowsense_ vector rhs_ vector and rowrange_ vector from the lower and upper bounds on the constraints. | |
char * | rowsense_ |
Pointer to dense vector of row sense indicators. | |
double * | rhs_ |
Pointer to dense vector of row right-hand side values. | |
double * | rowrange_ |
Pointer to dense vector of slack upper bounds for range constraints (undefined for non-range rows). | |
double * | reducedCosts_ |
Pointer to dense vector of reduced costs. | |
double | OsiDualObjectiveLimit_ |
DualObjectiveLimit is used to store the cutoff in Cbc. | |
Ipopt::ApplicationReturnStatus | optimization_status_ |
Return status of the Ipopt optimization. | |
std::string * | varNames_ |
Variable names. | |
bool | hasVarNamesFile_ |
does the file variable names exists (will check automatically). | |
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. | |
WARN_RESOLVE_BEFORE_INITIAL_SOLVE | |
resolve() has been called but there was no previous call to initialSolve(). | |
WARN_NONCONVEX_OA | |
An OA is taken for an equality constraint warm that it is dangerous. | |
WARN_FREEDOM | |
Too many equalities and not enough variables in the problems. | |
IPOTPINTERFACE_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, WARN_RESOLVE_BEFORE_INITIAL_SOLVE, WARN_NONCONVEX_OA, WARN_FREEDOM, IPOTPINTERFACE_DUMMY_END } |
Type of the messages specifically outputed by IpoptInterface. More... | |
Public Member Functions | |
void | extractInterfaceParams () |
void | setNumIterationSuspect (int value) |
const Ipopt::TMINLP2TNLP * | problem () const |
get pointer to the TMINLP2TNLP adapter | |
const Ipopt::TMINLP * | model () const |
double | getConstraintViolation () |
get NLP constraint violation of current point | |
Constructors and destructors | |
IpoptInterface () | |
Default Constructor. | |
IpoptInterface (Ipopt::SmartPtr< Ipopt::TMINLP > tminlp) | |
Constructor with given (user) TMINLP. | |
virtual OsiSolverInterface * | clone (bool CopyData=true) const |
Clone. | |
IpoptInterface (const IpoptInterface &) | |
Copy constructor. | |
IpoptInterface & | operator= (const IpoptInterface &rhs) |
Assignment operator. | |
virtual | ~IpoptInterface () |
Destructor. | |
Ipopt::SmartPtr< Ipopt::OptionsList > | retrieve_options () |
Retrieve IpoptApplication option list. | |
void | register_ALL_options (Ipopt::SmartPtr< Ipopt::RegisteredOptions > roptions) |
Register all possible options to Ipopt. | |
void | set_ipopt_minlp_default (SmartPtr< OptionsList > Options) |
Set specific Ipopt default for MINLP's. | |
void | readOptionFile (const char *fileName) |
Read parameter file. | |
Solve methods | |
virtual void | initialSolve () |
Solve initial continuous relaxation. | |
virtual void | resolve () |
Resolve the continuous relaxation after problem modification. | |
void | resolveForCost (int numretry) |
Resolve the problem with different random starting points to try to find a better solution (only makes sense for a non-convex problem. | |
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? | |
Ipopt::ApplicationReturnStatus | getOptStatus () const |
Return status of last optimization. | |
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 std::string * | getVarNames () const |
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) Ipopt 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() + 2* getNumCols()] of dual prices. | |
virtual const double * | getReducedCost () const |
Reduced costs are not available in Ipopt, returns NULL. | |
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. | |
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 | 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 (disabled). | |
virtual void | setColSolution (const double *colsol) |
Set the primal solution variable values Set the values for the starting point. | |
virtual void | setRowPrice (const double *rowprice) |
Pass an array[getNumRows() + 2* getNumCols()] of dual prices for starting point. | |
WarmStart related methods (those should really do nothing for the moment) | |
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 | setWarmStartOptions () |
Get an empty warm start object. | |
void | unsetWarmStartOptions () |
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 Ipopt for continuous relaxations | |
virtual int | getNumElements () const |
Cbc will understand that no matrix exsits if return -1. | |
virtual const double * | getObjCoefficients () const |
We have to keep this but it will throw an error. | |
virtual const CoinPackedMatrix * | getMatrixByRow () const |
We have to keep this but it will throw an error. | |
virtual const CoinPackedMatrix * | getMatrixByCol () const |
We have to keep this but it will throw an error. | |
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 | turnOffIpoptOutput () |
void | turnOnIpoptOutput () |
Sets and Getss | |
virtual double | getObjValue () const |
Get objective function value (can't use default). | |
void | extractLinearRelaxation (OsiSolverInterface &si, bool getObj=1) |
Extract a linear relaxation of the MINLP. | |
void | getOuterApproximation (OsiCuts &cs, bool getObj=1) |
Get the outer approximation constraints at the currently stored optimal point. | |
double | getFeasibilityOuterApproximation (int n, const double *x_bar, const int *ind, OsiCuts &cs) |
solve the problem of finding the closest point to x_bar in the subspace of coordinates given by ind (i.e., ![]() | |
bool | cleanNnz (double &value, double colLower, double colUpper, double rowLower, double rowUpper, double colsol, double &lb, double &ub, double tiny, double veryTiny) |
A procedure to try to remove small coefficients in OA cuts (or make it non small. | |
Protected Member Functions | |
int | initializeJacobianArrays () |
Initialize data structures for storing the jacobian. | |
Virtual callbacks for application specific stuff | |
virtual std::string | appName () |
Protected methods | |
void | solveAndCheckErrors (bool doResolve, bool throwOnFailure, const char *whereFrom) |
Call Ipopt to solve or resolve the problem and check for errors. | |
virtual void | applyRowCut (const OsiRowCut &rc) |
We have to keep this but it will throw an error. | |
virtual void | applyColCut (const OsiColCut &cc) |
We have to keep this but it will throw an error. | |
void | readVarNames () const |
Read the name of the variables in an ampl .col file. | |
Protected Attributes | |
int | nCallOptimizeTNLP_ |
number of time NLP has been solved | |
double | totalNlpSolveTime_ |
Total solution time of NLP. | |
int | totalIterations_ |
toatal number of iterations | |
double | maxRandomRadius_ |
max radius for random point | |
double | pushValue_ |
Ipopt value for pushing initial point inside the bounds. | |
int | numRetryInitial_ |
Number of times problem will be resolved in initialSolve (root node). | |
int | numRetryResolve_ |
Number of times problem will be resolved in resolve. | |
int | numRetryUnsolved_ |
Number of times problem will be resolved in case of a failure. | |
Messages | ipoptIMessages_ |
Messages specific to an IpoptInterface. | |
int | pretendFailIsInfeasible_ |
If not 0 when a problem is not solved (failed to be solved) will pretend that it is infeasible. | |
bool | hasContinuedAfterNlpFailure_ |
did we ever continue optimization ignoring a failure. | |
int | numIterationSuspect_ |
number iterations above which a problem is considered suspect (-1 is considered ![]() | |
bool | hasBeenOptimized_ |
Has problem been optimized since last change (include setColSolution). | |
int | warmStartStrategy_ |
Warm start strategy :. | |
double * | obj_ |
A fake objective function (all variables to 1) to please Cbc pseudo costs initialization. | |
Ipopt::SmartPtr< Ipopt::TNLP2FPNLP > | feasibilityProblem_ |
Adapter for TNLP to a feasibility problem. | |
Ipopt::TMINLP::ConstraintType * | constTypes_ |
Store the types of the constraints (linear and nonlinear). | |
int * | constTypesNum_ |
Numerotation of linear/nonlinear constraints Perform independent numerotation of linear (resp. | |
int | nLinear_ |
Number of linear constraints. | |
int | nNonLinear_ |
Number of nonlinear constraint. | |
double | tiny_ |
Value for small non-zero element which we will try to remove cleanly in OA cuts. | |
double | veryTiny_ |
Value for small non-zero element which we will take the risk to ignore in OA cuts. | |
bool | firstSolve_ |
Is it the first solve (for random starting point at root options). | |
Ipopt structures | |
Ipopt::SmartPtr< Ipopt::TMINLP > | tminlp_ |
TMINLP model. | |
Ipopt::SmartPtr< Ipopt::TMINLP2TNLP > | problem_ |
Adapter for a MINLP to a NLP. | |
Ipopt::SmartPtr< Ipopt::IpoptApplication > | app_ |
IpoptApplication. | |
Arrays to store Jacobian matrix | |
int * | jRow_ |
Row indices. | |
int * | jCol_ |
Column indices. | |
double * | jValues_ |
Values. | |
int | nnz_jac |
Number of elements. | |
Static Protected Attributes | |
static bool | hasPrintedOptions |
flag to say wether options have been printed or not. | |
Friends | |
class | BonminParam |
Classes | |
class | Messages |
Messages outputed by an IpoptInterface. More... | |
class | SimpleError |
Error class to throw exceptions from IpoptInterface. More... | |
class | UnsolvedError |
We will throw this error when a problem is not solved. More... |
Definition at line 38 of file IpoptInterface.hpp.
Type of the messages specifically outputed by IpoptInterface.
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. |
WARN_RESOLVE_BEFORE_INITIAL_SOLVE | resolve() has been called but there was no previous call to initialSolve(). |
WARN_NONCONVEX_OA | An OA is taken for an equality constraint warm that it is dangerous. |
WARN_FREEDOM | Too many equalities and not enough variables in the problems. |
IPOTPINTERFACE_DUMMY_END |
Definition at line 95 of file IpoptInterface.hpp.
IpoptInterface::IpoptInterface | ( | ) |
Default Constructor.
IpoptInterface::IpoptInterface | ( | Ipopt::SmartPtr< Ipopt::TMINLP > | tminlp | ) |
Constructor with given (user) TMINLP.
IpoptInterface::IpoptInterface | ( | const IpoptInterface & | ) |
Copy constructor.
virtual IpoptInterface::~IpoptInterface | ( | ) | [virtual] |
Destructor.
virtual OsiSolverInterface* IpoptInterface::clone | ( | bool | CopyData = true |
) | const [virtual] |
IpoptInterface& IpoptInterface::operator= | ( | const IpoptInterface & | rhs | ) |
Assignment operator.
Ipopt::SmartPtr<Ipopt::OptionsList> IpoptInterface::retrieve_options | ( | ) |
void IpoptInterface::register_ALL_options | ( | Ipopt::SmartPtr< Ipopt::RegisteredOptions > | roptions | ) |
Register all possible options to Ipopt.
void IpoptInterface::set_ipopt_minlp_default | ( | SmartPtr< OptionsList > | Options | ) |
Set specific Ipopt default for MINLP's.
void IpoptInterface::readOptionFile | ( | const char * | fileName | ) |
void IpoptInterface::extractInterfaceParams | ( | ) |
virtual void IpoptInterface::initialSolve | ( | ) | [virtual] |
virtual void IpoptInterface::resolve | ( | ) | [virtual] |
Resolve the continuous relaxation after problem modification.
Have to call initialSolve before calling this
Implements OsiSolverInterface.
void IpoptInterface::resolveForCost | ( | int | numretry | ) |
Resolve the problem with different random starting points to try to find a better solution (only makes sense for a non-convex problem.
void IpoptInterface::resolveForRobustness | ( | int | numretry | ) |
Method to be called when a problem has failed to be solved.
Will try to resolve it with different settings.
virtual void IpoptInterface::branchAndBound | ( | ) | [inline, virtual] |
Nescessary for compatibility with OsiSolverInterface but does nothing.
Implements OsiSolverInterface.
Definition at line 195 of file IpoptInterface.hpp.
virtual bool IpoptInterface::isAbandoned | ( | ) | const [virtual] |
virtual bool IpoptInterface::isProvenOptimal | ( | ) | const [virtual] |
virtual bool IpoptInterface::isProvenPrimalInfeasible | ( | ) | const [virtual] |
virtual bool IpoptInterface::isProvenDualInfeasible | ( | ) | const [virtual] |
virtual bool IpoptInterface::isPrimalObjectiveLimitReached | ( | ) | const [virtual] |
virtual bool IpoptInterface::isDualObjectiveLimitReached | ( | ) | const [virtual] |
virtual bool IpoptInterface::isIterationLimitReached | ( | ) | const [virtual] |
Ipopt::ApplicationReturnStatus IpoptInterface::getOptStatus | ( | ) | const [inline] |
Return status of last optimization.
Definition at line 221 of file IpoptInterface.hpp.
References optimization_status_.
void IpoptInterface::continuingOnAFailure | ( | ) | [inline] |
Warn solver that branch-and-bound is continuing after a failure.
Definition at line 227 of file IpoptInterface.hpp.
References hasContinuedAfterNlpFailure_.
bool IpoptInterface::hasContinuedOnAFailure | ( | ) | [inline] |
Did we continue on a failure.
Definition at line 232 of file IpoptInterface.hpp.
References hasContinuedAfterNlpFailure_.
void IpoptInterface::ignoreFailures | ( | ) | [inline] |
tell to ignore the failures (don't throw, don't fathom, don't report)
Definition at line 237 of file IpoptInterface.hpp.
References pretendFailIsInfeasible_.
void IpoptInterface::forceInfeasible | ( | ) | [inline] |
Force current solution to be infeasible.
Definition at line 242 of file IpoptInterface.hpp.
References problem_.
void IpoptInterface::forceBranchable | ( | ) | [inline] |
Force current solution to be branched on (make it fractionnal with small objective).
Definition at line 247 of file IpoptInterface.hpp.
References problem_.
bool IpoptInterface::setIntParam | ( | OsiIntParam | key, | |
int | value | |||
) | [virtual] |
Reimplemented from OsiSolverInterface.
bool IpoptInterface::setDblParam | ( | OsiDblParam | key, | |
double | value | |||
) | [virtual] |
Reimplemented from OsiSolverInterface.
bool IpoptInterface::setStrParam | ( | OsiStrParam | key, | |
const std::string & | value | |||
) | [virtual] |
Reimplemented from OsiSolverInterface.
bool IpoptInterface::getIntParam | ( | OsiIntParam | key, | |
int & | value | |||
) | const [virtual] |
Reimplemented from OsiSolverInterface.
bool IpoptInterface::getDblParam | ( | OsiDblParam | key, | |
double & | value | |||
) | const [virtual] |
Reimplemented from OsiSolverInterface.
bool IpoptInterface::getStrParam | ( | OsiStrParam | key, | |
std::string & | value | |||
) | const [virtual] |
Reimplemented from OsiSolverInterface.
double IpoptInterface::getPushFact | ( | ) | const [inline] |
virtual int IpoptInterface::getNumCols | ( | ) | const [virtual] |
virtual int IpoptInterface::getNumRows | ( | ) | const [virtual] |
const std::string* IpoptInterface::getVarNames | ( | ) | const |
get name of variables
virtual const double* IpoptInterface::getColLower | ( | ) | const [virtual] |
virtual const double* IpoptInterface::getColUpper | ( | ) | const [virtual] |
virtual const char* IpoptInterface::getRowSense | ( | ) | const [virtual] |
Get pointer to array[getNumRows()] of row constraint senses.
Implements OsiSolverInterface.
virtual const double* IpoptInterface::getRightHandSide | ( | ) | const [virtual] |
Get pointer to array[getNumRows()] of rows right-hand sides.
Implements OsiSolverInterface.
virtual const double* IpoptInterface::getRowRange | ( | ) | const [virtual] |
Get pointer to array[getNumRows()] of row ranges.
Implements OsiSolverInterface.
virtual const double* IpoptInterface::getRowLower | ( | ) | const [virtual] |
virtual const double* IpoptInterface::getRowUpper | ( | ) | const [virtual] |
virtual double IpoptInterface::getObjSense | ( | ) | const [inline, virtual] |
Get objective function sense (1 for min (default), -1 for max) Ipopt always minimizes.
Implements OsiSolverInterface.
Definition at line 360 of file IpoptInterface.hpp.
virtual bool IpoptInterface::isContinuous | ( | int | colNumber | ) | const [virtual] |
virtual bool IpoptInterface::isBinary | ( | int | columnNumber | ) | const [virtual] |
virtual bool IpoptInterface::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.
Reimplemented from OsiSolverInterface.
virtual bool IpoptInterface::isIntegerNonBinary | ( | int | columnNumber | ) | const [virtual] |
virtual bool IpoptInterface::isFreeBinary | ( | int | columnNumber | ) | const [virtual] |
Return true if column is binary and not fixed at either bound.
Reimplemented from OsiSolverInterface.
virtual double IpoptInterface::getInfinity | ( | ) | const [virtual] |
const int* IpoptInterface::getPriorities | ( | ) | const [inline] |
Get priorities on integer variables.
Definition at line 387 of file IpoptInterface.hpp.
References Ipopt::TMINLP::BranchingInfo::priorities, and tminlp_.
const int* IpoptInterface::getBranchingDirections | ( | ) | const [inline] |
get prefered branching directions
Definition at line 395 of file IpoptInterface.hpp.
References Ipopt::TMINLP::BranchingInfo::branchingDirections, and tminlp_.
const double* IpoptInterface::getUpPsCosts | ( | ) | const [inline] |
Get number of columns.
Definition at line 402 of file IpoptInterface.hpp.
References tminlp_, and Ipopt::TMINLP::BranchingInfo::upPsCosts.
const double* IpoptInterface::getDownPsCosts | ( | ) | const [inline] |
Get number of columns.
Definition at line 409 of file IpoptInterface.hpp.
References Ipopt::TMINLP::BranchingInfo::downPsCosts, and tminlp_.
virtual const double* IpoptInterface::getColSolution | ( | ) | const [virtual] |
virtual const double* IpoptInterface::getRowPrice | ( | ) | const [virtual] |
Get pointer to array[getNumRows() + 2* getNumCols()] of dual prices.
Array is ordererd as follow
Implements OsiSolverInterface.
virtual const double* IpoptInterface::getReducedCost | ( | ) | const [virtual] |
virtual const double* IpoptInterface::getRowActivity | ( | ) | const [virtual] |
Get pointer to array[getNumRows()] of row activity levels (constraint matrix times the solution vector.
Implements OsiSolverInterface.
virtual int IpoptInterface::getIterationCount | ( | ) | const [virtual] |
int IpoptInterface::nCallOptimizeTNLP | ( | ) | [inline] |
get total number of calls to solve.
Definition at line 446 of file IpoptInterface.hpp.
References nCallOptimizeTNLP_.
double IpoptInterface::totalNlpSolveTime | ( | ) | [inline] |
get total time taken to solve NLP's.
Definition at line 451 of file IpoptInterface.hpp.
References totalNlpSolveTime_.
int IpoptInterface::totalIterations | ( | ) | [inline] |
get total number of iterations
Definition at line 456 of file IpoptInterface.hpp.
References totalIterations_.
virtual void IpoptInterface::setColLower | ( | int | elementIndex, | |
double | elementValue | |||
) | [virtual] |
virtual void IpoptInterface::setColUpper | ( | int | elementIndex, | |
double | elementValue | |||
) | [virtual] |
virtual void IpoptInterface::setRowLower | ( | int | elementIndex, | |
double | elementValue | |||
) | [virtual] |
virtual void IpoptInterface::setRowUpper | ( | int | elementIndex, | |
double | elementValue | |||
) | [virtual] |
virtual void IpoptInterface::setRowType | ( | int | index, | |
char | sense, | |||
double | rightHandSide, | |||
double | range | |||
) | [virtual] |
virtual void IpoptInterface::setObjSense | ( | double | s | ) | [virtual] |
Set the objective function sense (disabled).
(1 for min (default), -1 for max)
Implements OsiSolverInterface.
virtual void IpoptInterface::setColSolution | ( | const double * | colsol | ) | [virtual] |
Set the primal solution variable values Set the values for the starting point.
Implements OsiSolverInterface.
virtual void IpoptInterface::setRowPrice | ( | const double * | rowprice | ) | [virtual] |
Pass an array[getNumRows() + 2* getNumCols()] of dual prices for starting point.
Array is ordererd as follow
Implements OsiSolverInterface.
CoinWarmStart* IpoptInterface::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.
Implements OsiSolverInterface.
virtual CoinWarmStart* IpoptInterface::getWarmStart | ( | ) | const [virtual] |
virtual bool IpoptInterface::setWarmStart | ( | const CoinWarmStart * | warmstart | ) | [virtual] |
Set warmstarting information.
Return true/false depending on whether the warmstart information was accepted or not.
Implements OsiSolverInterface.
void IpoptInterface::setWarmStartOptions | ( | ) | [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 535 of file IpoptInterface.hpp.
References app_.
void IpoptInterface::unsetWarmStartOptions | ( | ) | [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 540 of file IpoptInterface.hpp.
void IpoptInterface::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.
virtual bool IpoptInterface::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.
Reimplemented from OsiSolverInterface.
Definition at line 550 of file IpoptInterface.hpp.
virtual void IpoptInterface::setContinuous | ( | int | index | ) | [virtual] |
virtual void IpoptInterface::setInteger | ( | int | index | ) | [virtual] |
void IpoptInterface::setNumIterationSuspect | ( | int | value | ) | [inline] |
virtual int IpoptInterface::getNumElements | ( | ) | const [inline, virtual] |
Cbc will understand that no matrix exsits if return -1.
Implements OsiSolverInterface.
Definition at line 582 of file IpoptInterface.hpp.
virtual const double* IpoptInterface::getObjCoefficients | ( | ) | const [inline, virtual] |
We have to keep this but it will throw an error.
Implements OsiSolverInterface.
Definition at line 590 of file IpoptInterface.hpp.
References obj_.
virtual const CoinPackedMatrix* IpoptInterface::getMatrixByRow | ( | ) | const [inline, virtual] |
We have to keep this but it will throw an error.
Implements OsiSolverInterface.
Definition at line 600 of file IpoptInterface.hpp.
virtual const CoinPackedMatrix* IpoptInterface::getMatrixByCol | ( | ) | const [inline, virtual] |
We have to keep this but it will throw an error.
Implements OsiSolverInterface.
Definition at line 609 of file IpoptInterface.hpp.
virtual void IpoptInterface::setObjCoeff | ( | int | elementIndex, | |
double | elementValue | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Implements OsiSolverInterface.
Definition at line 617 of file IpoptInterface.hpp.
virtual void IpoptInterface::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.
Implements OsiSolverInterface.
Definition at line 625 of file IpoptInterface.hpp.
virtual void IpoptInterface::deleteCols | ( | const int | num, | |
const int * | colIndices | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Implements OsiSolverInterface.
Definition at line 634 of file IpoptInterface.hpp.
virtual void IpoptInterface::addRow | ( | const CoinPackedVectorBase & | vec, | |
const double | rowlb, | |||
const double | rowub | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Implements OsiSolverInterface.
Definition at line 642 of file IpoptInterface.hpp.
virtual void IpoptInterface::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.
Implements OsiSolverInterface.
Definition at line 650 of file IpoptInterface.hpp.
virtual void IpoptInterface::deleteRows | ( | const int | num, | |
const int * | rowIndices | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Implements OsiSolverInterface.
Definition at line 659 of file IpoptInterface.hpp.
virtual void IpoptInterface::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.
Implements OsiSolverInterface.
Definition at line 668 of file IpoptInterface.hpp.
virtual void IpoptInterface::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.
Implements OsiSolverInterface.
Definition at line 680 of file IpoptInterface.hpp.
virtual void IpoptInterface::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.
Implements OsiSolverInterface.
Definition at line 690 of file IpoptInterface.hpp.
virtual void IpoptInterface::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.
Implements OsiSolverInterface.
Definition at line 702 of file IpoptInterface.hpp.
virtual void IpoptInterface::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.
Implements OsiSolverInterface.
Definition at line 714 of file IpoptInterface.hpp.
virtual void IpoptInterface::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.
Implements OsiSolverInterface.
Definition at line 727 of file IpoptInterface.hpp.
virtual int IpoptInterface::readMps | ( | const char * | filename, | |
const char * | extension = "mps" | |||
) | [inline, virtual] |
We have to keep this but it will throw an error.
Reimplemented from OsiSolverInterface.
Definition at line 741 of file IpoptInterface.hpp.
virtual void IpoptInterface::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.
Implements OsiSolverInterface.
Definition at line 751 of file IpoptInterface.hpp.
virtual std::vector<double*> IpoptInterface::getDualRays | ( | int | maxNumRays | ) | const [inline, virtual] |
virtual std::vector<double*> IpoptInterface::getPrimalRays | ( | int | maxNumRays | ) | const [inline, virtual] |
void IpoptInterface::turnOffIpoptOutput | ( | ) |
void IpoptInterface::turnOnIpoptOutput | ( | ) |
virtual double IpoptInterface::getObjValue | ( | ) | const [virtual] |
const Ipopt::TMINLP2TNLP* IpoptInterface::problem | ( | ) | const [inline] |
get pointer to the TMINLP2TNLP adapter
Definition at line 797 of file IpoptInterface.hpp.
References Ipopt::GetRawPtr(), and problem_.
const Ipopt::TMINLP* IpoptInterface::model | ( | ) | const [inline] |
void IpoptInterface::extractLinearRelaxation | ( | OsiSolverInterface & | si, | |
bool | getObj = 1 | |||
) |
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.
void IpoptInterface::getOuterApproximation | ( | OsiCuts & | cs, | |
bool | getObj = 1 | |||
) |
Get the outer approximation constraints at the currently stored optimal point.
(Only get outer-approximations of nonlinear constraints of the problem.)
double IpoptInterface::getFeasibilityOuterApproximation | ( | int | n, | |
const double * | x_bar, | |||
const int * | ind, | |||
OsiCuts & | cs | |||
) |
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 |
bool IpoptInterface::cleanNnz | ( | double & | value, | |
double | colLower, | |||
double | colUpper, | |||
double | rowLower, | |||
double | rowUpper, | |||
double | colsol, | |||
double & | lb, | |||
double & | ub, | |||
double | tiny, | |||
double | veryTiny | |||
) | [inline] |
A procedure to try to remove small coefficients in OA cuts (or make it non small.
Definition at line 1003 of file IpoptInterface.hpp.
References CoinMessageEol, ipoptIMessages_, CoinMessageHandler::message(), OsiSolverInterface::messageHandler(), and WARN_NONCONVEX_OA.
double IpoptInterface::getConstraintViolation | ( | ) |
get NLP constraint violation of current point
int IpoptInterface::initializeJacobianArrays | ( | ) | [protected] |
Initialize data structures for storing the jacobian.
virtual std::string IpoptInterface::appName | ( | ) | [inline, protected, virtual] |
Definition at line 843 of file IpoptInterface.hpp.
void IpoptInterface::solveAndCheckErrors | ( | bool | doResolve, | |
bool | throwOnFailure, | |||
const char * | whereFrom | |||
) | [protected] |
Call Ipopt to solve or resolve the problem and check for errors.
virtual void IpoptInterface::applyRowCut | ( | const OsiRowCut & | rc | ) | [inline, protected, virtual] |
We have to keep this but it will throw an error.
Implements OsiSolverInterface.
Definition at line 858 of file IpoptInterface.hpp.
virtual void IpoptInterface::applyColCut | ( | const OsiColCut & | cc | ) | [inline, protected, virtual] |
We have to keep this but it will throw an error.
Implements OsiSolverInterface.
Definition at line 865 of file IpoptInterface.hpp.
void IpoptInterface::readVarNames | ( | ) | const [protected] |
Read the name of the variables in an ampl .col file.
void IpoptInterface::freeCachedColRim | ( | ) | [protected] |
Free cached data relative to variables.
void IpoptInterface::freeCachedRowRim | ( | ) | [protected] |
Free cached data relative to constraints.
void IpoptInterface::freeCachedData | ( | ) | [protected] |
Free all cached data.
void IpoptInterface::extractSenseRhsAndRange | ( | ) | const [protected] |
Extract rowsense_ vector rhs_ vector and rowrange_ vector from the lower and upper bounds on the constraints.
friend class BonminParam [friend] |
Definition at line 40 of file IpoptInterface.hpp.
Ipopt::SmartPtr<Ipopt::TMINLP> IpoptInterface::tminlp_ [protected] |
TMINLP model.
Definition at line 879 of file IpoptInterface.hpp.
Referenced by getBranchingDirections(), getDownPsCosts(), getPriorities(), getUpPsCosts(), and model().
Ipopt::SmartPtr<Ipopt::TMINLP2TNLP> IpoptInterface::problem_ [protected] |
Adapter for a MINLP to a NLP.
Definition at line 881 of file IpoptInterface.hpp.
Referenced by forceBranchable(), forceInfeasible(), problem(), and unsetWarmStartOptions().
Ipopt::SmartPtr<Ipopt::IpoptApplication> IpoptInterface::app_ [protected] |
IpoptApplication.
Definition at line 883 of file IpoptInterface.hpp.
Referenced by setWarmStartOptions(), and unsetWarmStartOptions().
char* IpoptInterface::rowsense_ [mutable, protected] |
double* IpoptInterface::rhs_ [mutable, protected] |
Pointer to dense vector of row right-hand side values.
Definition at line 901 of file IpoptInterface.hpp.
double* IpoptInterface::rowrange_ [mutable, protected] |
Pointer to dense vector of slack upper bounds for range constraints (undefined for non-range rows).
Definition at line 904 of file IpoptInterface.hpp.
double* IpoptInterface::reducedCosts_ [mutable, protected] |
Pointer to dense vector of reduced costs.
Definition at line 907 of file IpoptInterface.hpp.
double IpoptInterface::OsiDualObjectiveLimit_ [protected] |
DualObjectiveLimit is used to store the cutoff in Cbc.
Definition at line 909 of file IpoptInterface.hpp.
Return status of the Ipopt optimization.
Definition at line 911 of file IpoptInterface.hpp.
Referenced by getOptStatus().
std::string* IpoptInterface::varNames_ [mutable, protected] |
bool IpoptInterface::hasVarNamesFile_ [mutable, protected] |
does the file variable names exists (will check automatically).
Definition at line 915 of file IpoptInterface.hpp.
int IpoptInterface::nCallOptimizeTNLP_ [protected] |
number of time NLP has been solved
Definition at line 918 of file IpoptInterface.hpp.
Referenced by nCallOptimizeTNLP().
double IpoptInterface::totalNlpSolveTime_ [protected] |
Total solution time of NLP.
Definition at line 920 of file IpoptInterface.hpp.
Referenced by totalNlpSolveTime().
int IpoptInterface::totalIterations_ [protected] |
toatal number of iterations
Definition at line 922 of file IpoptInterface.hpp.
Referenced by totalIterations().
double IpoptInterface::maxRandomRadius_ [protected] |
double IpoptInterface::pushValue_ [protected] |
Ipopt value for pushing initial point inside the bounds.
Definition at line 926 of file IpoptInterface.hpp.
Referenced by getPushFact().
int IpoptInterface::numRetryInitial_ [protected] |
Number of times problem will be resolved in initialSolve (root node).
Definition at line 928 of file IpoptInterface.hpp.
int IpoptInterface::numRetryResolve_ [protected] |
Number of times problem will be resolved in resolve.
Definition at line 930 of file IpoptInterface.hpp.
int IpoptInterface::numRetryUnsolved_ [protected] |
Number of times problem will be resolved in case of a failure.
Definition at line 932 of file IpoptInterface.hpp.
Messages IpoptInterface::ipoptIMessages_ [protected] |
Messages specific to an IpoptInterface.
Definition at line 934 of file IpoptInterface.hpp.
Referenced by cleanNnz().
int IpoptInterface::pretendFailIsInfeasible_ [protected] |
If not 0 when a problem is not solved (failed to be solved) will pretend that it is infeasible.
If == 1 will care (i.e. record the fact issue messages to user), if ==2 don't care (somebody else will)
Definition at line 938 of file IpoptInterface.hpp.
Referenced by ignoreFailures().
bool IpoptInterface::hasContinuedAfterNlpFailure_ [protected] |
did we ever continue optimization ignoring a failure.
Definition at line 940 of file IpoptInterface.hpp.
Referenced by continuingOnAFailure(), and hasContinuedOnAFailure().
int IpoptInterface::numIterationSuspect_ [protected] |
number iterations above which a problem is considered suspect (-1 is considered ).
If in a call to solve a problem takes more than that number of iterations it will be outputed to files.
Definition at line 943 of file IpoptInterface.hpp.
Referenced by setNumIterationSuspect().
bool IpoptInterface::hasBeenOptimized_ [protected] |
Has problem been optimized since last change (include setColSolution).
If yes getColSolution will return Ipopt point, otherwise will return initial point.
Definition at line 947 of file IpoptInterface.hpp.
int IpoptInterface::warmStartStrategy_ [protected] |
Warm start strategy :.
Definition at line 955 of file IpoptInterface.hpp.
double* IpoptInterface::obj_ [protected] |
A fake objective function (all variables to 1) to please Cbc pseudo costs initialization.
Definition at line 957 of file IpoptInterface.hpp.
Referenced by getObjCoefficients().
bool IpoptInterface::hasPrintedOptions [static, protected] |
flag to say wether options have been printed or not.
Definition at line 959 of file IpoptInterface.hpp.
int* IpoptInterface::jRow_ [protected] |
int* IpoptInterface::jCol_ [protected] |
double* IpoptInterface::jValues_ [protected] |
int IpoptInterface::nnz_jac [protected] |
Ipopt::TMINLP::ConstraintType* IpoptInterface::constTypes_ [protected] |
Store the types of the constraints (linear and nonlinear).
Definition at line 978 of file IpoptInterface.hpp.
int* IpoptInterface::constTypesNum_ [protected] |
Numerotation of linear/nonlinear constraints Perform independent numerotation of linear (resp.
nonlinear constraints) so that constraints of each type are numeroted consecutively
Definition at line 982 of file IpoptInterface.hpp.
int IpoptInterface::nLinear_ [protected] |
int IpoptInterface::nNonLinear_ [protected] |
double IpoptInterface::tiny_ [protected] |
Value for small non-zero element which we will try to remove cleanly in OA cuts.
Definition at line 989 of file IpoptInterface.hpp.
double IpoptInterface::veryTiny_ [protected] |
Value for small non-zero element which we will take the risk to ignore in OA cuts.
Definition at line 991 of file IpoptInterface.hpp.
bool IpoptInterface::firstSolve_ [protected] |
Is it the first solve (for random starting point at root options).
Definition at line 993 of file IpoptInterface.hpp.