15 #ifndef BONMINSOLVER_H
16 #define BONMINSOLVER_H
21 #include "OSInstance.h"
22 #include "OSParameters.h"
27 #include "OSInstance.h"
35 #include "OSInstance.h"
106 virtual bool get_nlp_info(Ipopt::Index&
n, Ipopt::Index&
m, Ipopt::Index& nnz_jac_g,
107 Ipopt::Index& nnz_h_lag, Ipopt::TNLP::IndexStyleEnum& index_style);
116 virtual bool get_bounds_info(Ipopt::Index
n, Ipopt::Number* x_l, Ipopt::Number* x_u,
117 Ipopt::Index
m, Ipopt::Number* g_l, Ipopt::Number* g_u);
121 bool init_z, Ipopt::Number* z_L, Ipopt::Number* z_U,
122 Ipopt::Index
m,
bool init_lambda,
123 Ipopt::Number* lambda);
126 virtual bool eval_f(Ipopt::Index
n,
const Ipopt::Number*
x,
bool new_x, Ipopt::Number& obj_value);
129 virtual bool eval_grad_f(Ipopt::Index
n,
const Ipopt::Number*
x,
bool new_x, Ipopt::Number* grad_f);
132 virtual bool eval_g(Ipopt::Index
n,
const Ipopt::Number*
x,
bool new_x, Ipopt::Index
m, Ipopt::Number*
g);
138 virtual bool eval_jac_g(Ipopt::Index
n,
const Ipopt::Number*
x,
bool new_x,
139 Ipopt::Index
m, Ipopt::Index nele_jac, Ipopt::Index* iRow, Ipopt::Index *jCol,
146 virtual bool eval_h(Ipopt::Index
n,
const Ipopt::Number*
x,
bool new_x,
147 Ipopt::Number obj_factor, Ipopt::Index
m,
const Ipopt::Number* lambda,
148 bool new_lambda, Ipopt::Index nele_hess, Ipopt::Index* iRow,
149 Ipopt::Index* jCol, Ipopt::Number*
values);
155 bool& use_x_scaling, Ipopt::Index
n,
156 Ipopt::Number* x_scaling,
157 bool& use_g_scaling, Ipopt::Index
m,
158 Ipopt::Number* g_scaling);
163 Ipopt::Index
n,
const Ipopt::Number*
x, Ipopt::Number obj_value);
OSoLReader * m_osolreader
m_osolreader is an OSoLReader object used to create an osoption from an osol string if needed ...
Base class for all MINLPs that use a standard triplet matrix form and dense vectors.
This file defines the OSnLNode class along with its derived classes.
Bonmin::TMINLP::SolverReturn status
virtual void setSolverOptions()
The implementation of the virtual functions.
BonminSolver()
the BonminSolver class constructor
void dataEchoCheck()
use this for debugging, print out the instance that the solver thinks it has and compare this with th...
virtual bool eval_grad_f(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number *grad_f)
Method to return the gradient of the objective.
virtual void buildSolverInstance()
buildSolverInstance is a virtual function – the actual solvers will implement their own buildSolverIn...
void printSolutionAtEndOfAlgorithm()
virtual bool eval_f(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number &obj_value)
Method to return the objective value.
void writeResult()
use this to write the solution information to an OSResult object
Take an OSResult object and write a string that validates against OSrL.
virtual const SosInfo * sosConstraints() const
Class to store sos constraints for model.
virtual bool get_variables_types(Ipopt::Index n, VariableType *var_types)
Pass the type of the variables (INTEGER, BINARY, CONTINUOUS) to the optimizer.
virtual const BranchingInfo * branchingInfo() const
virtual bool get_constraints_linearity(Ipopt::Index m, Ipopt::TNLP::LinearityType *const_types)
Pass the type of the constraints (LINEAR, NON_LINEAR) to the optimizer.
virtual bool get_bounds_info(Ipopt::Index n, Ipopt::Number *x_l, Ipopt::Number *x_u, Ipopt::Index m, Ipopt::Number *g_l, Ipopt::Number *g_u)
Bonmin specific methods for defining the nlp problem.
virtual void solve()
solve results in an instance being read into the Bonmin data structrues and optimized ...
virtual void finalize_solution(Bonmin::TMINLP::SolverReturn status_, Ipopt::Index n, const Ipopt::Number *x, Ipopt::Number obj_value)
Method called by Ipopt at the end of optimization.
Used to read an OSiL string.
SolverReturn
Return statuses of algorithm.
std::string bonminErrorMsg
virtual bool get_nlp_info(Ipopt::Index &n, Ipopt::Index &m, Ipopt::Index &nnz_jac_g, Ipopt::Index &nnz_h_lag, Ipopt::TNLP::IndexStyleEnum &index_style)
Method to pass the main dimensions of the problem to Ipopt.
The Default Solver Class.
BonminProblem(OSInstance *osinstance_, OSOption *osoption_)
the BonminProblemclass constructor
virtual bool get_starting_point(Ipopt::Index n, bool init_x, Ipopt::Number *x, bool init_z, Ipopt::Number *z_L, Ipopt::Number *z_U, Ipopt::Index m, bool init_lambda, Ipopt::Number *lambda)
Method to return the starting point for the algorithm.
virtual bool eval_h(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number obj_factor, Ipopt::Index m, const Ipopt::Number *lambda, bool new_lambda, Ipopt::Index nele_hess, Ipopt::Index *iRow, Ipopt::Index *jCol, Ipopt::Number *values)
Method to return: 1) The structure of the hessian of the lagrangian (if "values" is NULL) 2) The valu...
virtual bool get_variables_linearity(Ipopt::Index n, Ipopt::TNLP::LinearityType *var_types)
Pass info about linear and nonlinear variables.
OSiLReader * m_osilreader
m_osilreader is an OSiLReader object used to create an osinstance from an osil string if needed ...
virtual bool eval_jac_g(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Index nele_jac, Ipopt::Index *iRow, Ipopt::Index *jCol, Ipopt::Number *values)
Method to return: 1) The structure of the jacobian (if "values" is NULL) 2) The values of the jacobia...
Bonmin::TMINLP::SolverReturn status
Used to read an OSoL string.
Bonmin::BonminSetup bonminSetup
virtual bool eval_g(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Number *g)
Method to return the constraint residuals.
virtual bool get_scaling_parameters(Ipopt::Number &obj_scaling, bool &use_x_scaling, Ipopt::Index n, Ipopt::Number *x_scaling, bool &use_g_scaling, Ipopt::Index m, Ipopt::Number *g_scaling)
overload this method to return scaling parameters.
virtual ~BonminProblem()
the BonminProblem class destructor
Stores branching priorities information.
void fint fint fint real fint real real real real real real * g
The BonminSolver class solves problems using Ipopt.
~BonminSolver()
the IpoptSolver class destructor
Ipopt::SmartPtr< BonminProblem > tminlp
The in-memory representation of an OSiL instance..
used for throwing exceptions.
VariableType
Type of the variables.
void fint fint fint real fint real * x
std::string bonminErrorMsg