My Project
BonminProblem Class Reference

#include <OSBonminSolver.h>

Inheritance diagram for BonminProblem:

Public Member Functions

 BonminProblem (OSInstance *osinstance_, OSOption *osoption_)
 the BonminProblemclass constructor
 
virtual ~BonminProblem ()
 the BonminProblem class destructor
 
Overloaded functions specific to a TMINLP.

now for some pure Bonmin methods

virtual bool get_variables_types (Ipopt::Index n, VariableType *var_types)
 Pass the type of the variables (INTEGER, BINARY, CONTINUOUS) to the optimizer.
 
virtual bool get_variables_linearity (Ipopt::Index n, Ipopt::TNLP::LinearityType *var_types)
 Pass info about linear and nonlinear variables.
 
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.
 
Overloaded functions defining a TNLP.

This group of function implement the various elements needed to define and solve a TNLP.

They are the same as those in a standard Ipopt NLP problem

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 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 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_f (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number &obj_value)
 Method to return the objective value.
 
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 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 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 jacobian (if "values" is not NULL)
 
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 values of the hessian of the lagrangian (if "values" is not NULL)
 
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)
 Method to pass the main dimensions of the problem to Ipopt.
 

Public Attributes

OSInstanceosinstance
 
OSOptionosoption
 
Bonmin::TMINLP::SolverReturn status
 

Private Attributes

Methods to block default compiler methods.

The compiler automatically generates the following three methods.

Since the default compiler implementation is generally not what you want (for all but the most simple classes), we usually put the declarations of these methods in the private section and never implement them. This prevents the compiler from implementing an incorrect "default" behavior without us knowing. (See Scott Meyers book, "Effective C++")

std::string bonminErrorMsg
 

Solution Methods

bool printSol_
 Method called by Ipopt at the end of optimization.
 
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 const SosInfo * sosConstraints () const
 Method called by Ipopt at the end of optimization.
 
virtual const BranchingInfo * branchingInfo () const
 Method called by Ipopt at the end of optimization.
 
void printSolutionAtEndOfAlgorithm ()
 Method called by Ipopt at the end of optimization.
 

Detailed Description

Definition at line 53 of file OSBonminSolver.h.

Constructor & Destructor Documentation

◆ BonminProblem()

BonminProblem::BonminProblem ( OSInstance * osinstance_,
OSOption * osoption_ )

the BonminProblemclass constructor

Definition at line 1151 of file OSBonminSolver.cpp.

◆ ~BonminProblem()

BonminProblem::~BonminProblem ( )
virtual

the BonminProblem class destructor

Definition at line 1158 of file OSBonminSolver.cpp.

Member Function Documentation

◆ get_variables_types()

bool BonminProblem::get_variables_types ( Ipopt::Index n,
VariableType * var_types )
virtual

Pass the type of the variables (INTEGER, BINARY, CONTINUOUS) to the optimizer.

Parameters
nsize of var_types (has to be equal to the number of variables in the problem)
var_typestypes of the variables (has to be filled by function).

Definition at line 68 of file OSBonminSolver.cpp.

◆ get_variables_linearity()

bool BonminProblem::get_variables_linearity ( Ipopt::Index n,
Ipopt::TNLP::LinearityType * var_types )
virtual

Pass info about linear and nonlinear variables.

get an index map of the nonlinear variables and see which variable are in <nonlinearExpressions> element

iterate through and get an index of all variables that are in <nonlinearExpressions> element

Definition at line 103 of file OSBonminSolver.cpp.

◆ get_constraints_linearity()

bool BonminProblem::get_constraints_linearity ( Ipopt::Index m,
Ipopt::TNLP::LinearityType * const_types )
virtual

Pass the type of the constraints (LINEAR, NON_LINEAR) to the optimizer.

Parameters
msize of const_types (has to be equal to the number of constraints in the problem)
const_typestypes of the constraints (has to be filled by function).

Definition at line 149 of file OSBonminSolver.cpp.

◆ get_nlp_info()

bool BonminProblem::get_nlp_info ( Ipopt::Index & n,
Ipopt::Index & m,
Ipopt::Index & nnz_jac_g,
Ipopt::Index & nnz_h_lag,
Ipopt::TNLP::IndexStyleEnum & index_style )
virtual

Method to pass the main dimensions of the problem to Ipopt.

Parameters
nnumber of variables in problem.
mnumber of constraints.
nnz_jac_gnumber of nonzeroes in Jacobian of constraints system.
nnz_h_lagnumber of nonzeroes in Hessian of the Lagrangean.
index_styleindicate wether arrays are numbered from 0 (C-style) or from 1 (Fortran).
Returns
true in case of success.

Definition at line 177 of file OSBonminSolver.cpp.

◆ get_bounds_info()

bool BonminProblem::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 )
virtual

Bonmin specific methods for defining the nlp problem.

Method to return the bounds for my problem

Definition at line 246 of file OSBonminSolver.cpp.

◆ get_starting_point()

bool BonminProblem::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 )
virtual

Method to return the starting point for the algorithm.

Definition at line 295 of file OSBonminSolver.cpp.

◆ eval_f()

bool BonminProblem::eval_f ( Ipopt::Index n,
const Ipopt::Number * x,
bool new_x,
Ipopt::Number & obj_value )
virtual

Method to return the objective value.

Definition at line 439 of file OSBonminSolver.cpp.

◆ eval_grad_f()

bool BonminProblem::eval_grad_f ( Ipopt::Index n,
const Ipopt::Number * x,
bool new_x,
Ipopt::Number * grad_f )
virtual

Method to return the gradient of the objective.

Definition at line 465 of file OSBonminSolver.cpp.

◆ eval_g()

bool BonminProblem::eval_g ( Ipopt::Index n,
const Ipopt::Number * x,
bool new_x,
Ipopt::Index m,
Ipopt::Number * g )
virtual

Method to return the constraint residuals.

Definition at line 498 of file OSBonminSolver.cpp.

◆ eval_jac_g()

bool BonminProblem::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 )
virtual

Method to return: 1) The structure of the jacobian (if "values" is NULL) 2) The values of the jacobian (if "values" is not NULL)

Definition at line 520 of file OSBonminSolver.cpp.

◆ eval_h()

bool BonminProblem::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 )
virtual

Method to return: 1) The structure of the hessian of the lagrangian (if "values" is NULL) 2) The values of the hessian of the lagrangian (if "values" is not NULL)

Definition at line 571 of file OSBonminSolver.cpp.

◆ get_scaling_parameters()

bool BonminProblem::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

Method to pass the main dimensions of the problem to Ipopt.

Parameters
nnumber of variables in problem.
mnumber of constraints.
nnz_jac_gnumber of nonzeroes in Jacobian of constraints system.
nnz_h_lagnumber of nonzeroes in Hessian of the Lagrangean.
index_styleindicate wether arrays are numbered from 0 (C-style) or from 1 (Fortran).
Returns
true in case of success.

Definition at line 623 of file OSBonminSolver.cpp.

◆ finalize_solution()

void BonminProblem::finalize_solution ( Bonmin::TMINLP::SolverReturn status_,
Ipopt::Index n,
const Ipopt::Number * x,
Ipopt::Number obj_value )
virtual

Method called by Ipopt at the end of optimization.

Definition at line 644 of file OSBonminSolver.cpp.

◆ sosConstraints()

virtual const SosInfo * BonminProblem::sosConstraints ( ) const
inlinevirtual

Method called by Ipopt at the end of optimization.

Definition at line 166 of file OSBonminSolver.h.

◆ branchingInfo()

virtual const BranchingInfo * BonminProblem::branchingInfo ( ) const
inlinevirtual

Method called by Ipopt at the end of optimization.

Definition at line 170 of file OSBonminSolver.h.

◆ printSolutionAtEndOfAlgorithm()

void BonminProblem::printSolutionAtEndOfAlgorithm ( )
inline

Method called by Ipopt at the end of optimization.

Definition at line 175 of file OSBonminSolver.h.

Member Data Documentation

◆ osinstance

OSInstance* BonminProblem::osinstance

Definition at line 66 of file OSBonminSolver.h.

◆ osoption

OSOption* BonminProblem::osoption

Definition at line 68 of file OSBonminSolver.h.

◆ status

Bonmin::TMINLP::SolverReturn BonminProblem::status

Definition at line 70 of file OSBonminSolver.h.

◆ printSol_

bool BonminProblem::printSol_
private

Method called by Ipopt at the end of optimization.

Definition at line 185 of file OSBonminSolver.h.

◆ bonminErrorMsg

std::string BonminProblem::bonminErrorMsg
private

Definition at line 205 of file OSBonminSolver.h.


The documentation for this class was generated from the following files: