15 #ifndef BONMINSOLVER_H 16 #define BONMINSOLVER_H 49 #include "BonTMINLP.hpp" 50 #include "BonBonminSetup.hpp" 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,
140 Ipopt::Number* values);
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);
205 std::string bonminErrorMsg;
257 virtual
void buildSolverInstance() throw(ErrorClass);
263 virtual
void setSolverOptions() throw(ErrorClass);
270 void dataEchoCheck();
296 Bonmin::BonminSetup bonminSetup;
298 std::
string bonminErrorMsg;
Ipopt::SmartPtr< BonminProblem > tminlp
BonminProblem(OSInstance *osinstance_, OSOption *osoption_)
the BonminProblemclass constructor
used for throwing exceptions.
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.
virtual const BranchingInfo * branchingInfo() const
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...
Take an OSResult object and write a string that validates against OSrL.
virtual bool eval_f(Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number &obj_value)
Method to return the objective value.
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.
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 ~BonminProblem()
the BonminProblem class destructor
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)
virtual const SosInfo * sosConstraints() const
The in-memory representation of an OSiL instance.
Used to read an OSiL string.
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.
Used to read an OSoL string.
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...
This file defines the OSInstance class along with its supporting classes.
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.
This file defines the OSnLNode class along with its derived classes.
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.
void printSolutionAtEndOfAlgorithm()
The Default Solver Class.
Bonmin::TMINLP::SolverReturn status
virtual bool get_variables_linearity(Ipopt::Index n, Ipopt::TNLP::LinearityType *var_types)
Pass info about linear and nonlinear variables.
Bonmin::TMINLP::SolverReturn status
virtual bool get_variables_types(Ipopt::Index n, VariableType *var_types)
Pass the type of the variables (INTEGER, BINARY, CONTINUOUS) to the optimizer.
The BonminSolver class solves problems using Ipopt.
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.