Bonmin 1.8.9
|
Ampl MINLP Interface. More...
#include <BonAmplTMINLP.hpp>
Public Member Functions | |
Constructors/Destructors | |
AmplTMINLP (const Ipopt::SmartPtr< const Ipopt::Journalist > &jnlst, const Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions, const Ipopt::SmartPtr< Ipopt::OptionsList > options, char **&argv, Ipopt::AmplSuffixHandler *suffix_handler=NULL, const std::string &appName="bonmin", std::string *nl_file_content=NULL) | |
Constructor. | |
virtual void | Initialize (const Ipopt::SmartPtr< const Ipopt::Journalist > &jnlst, const Ipopt::SmartPtr< Bonmin::RegisteredOptions > roptions, const Ipopt::SmartPtr< Ipopt::OptionsList > options, char **&argv, Ipopt::AmplSuffixHandler *suffix_handler=NULL, const std::string &appName="bonmin", std::string *nl_file_content=NULL) |
void | read_priorities () |
read the branching priorities from ampl suffixes. | |
void | read_sos () |
read the sos constraints from ampl suffixes | |
void | read_convexities () |
Read suffixes which indicate which constraints are convex. | |
void | read_onoff () |
Read suffixes used to apply perspective in OA to some of the constraints. | |
void | read_obj_suffixes () |
Read suffixes on objective functions for upper bounding. | |
AmplTMINLP () | |
Default constructor. | |
virtual AmplTMINLP * | createEmpty () |
virtual | ~AmplTMINLP () |
destructor | |
const ASL_pfgh * | AmplSolverObject () const |
Return the ampl solver object (ASL*) | |
methods to gather information about the NLP. These | |
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) |
returns dimensions of the nlp. | |
virtual bool | get_variables_types (Ipopt::Index n, VariableType *var_types) |
returns the vector of variable types | |
virtual bool | get_variables_linearity (Ipopt::Index n, Ipopt::TNLP::LinearityType *var_types) |
return the variables linearity (linear or not) | |
virtual bool | get_constraints_linearity (Ipopt::Index m, Ipopt::TNLP::LinearityType *const_types) |
Returns the constraint linearity. | |
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) |
returns bounds of the nlp. | |
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) |
provides a starting point for the nlp variables. | |
virtual bool | eval_f (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number &obj_value) |
evaluates the objective value for the nlp. | |
virtual bool | eval_grad_f (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Number *grad_f) |
evaluates the gradient of the objective for the nlp. | |
virtual bool | eval_g (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index m, Ipopt::Number *g) |
evaluates the constraint residuals for the nlp. | |
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) |
specifies the jacobian structure (if values is NULL) and evaluates the jacobian values (if values is not NULL) for the nlp. | |
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) |
specifies the structure of the hessian of the lagrangian (if values is NULL) and evaluates the values (if values is not NULL). | |
virtual bool | eval_gi (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index i, Ipopt::Number &gi) |
compute the value of a single constraint | |
virtual bool | eval_grad_gi (Ipopt::Index n, const Ipopt::Number *x, bool new_x, Ipopt::Index i, Ipopt::Index &nele_grad_gi, Ipopt::Index *jCol, Ipopt::Number *values) |
compute the structure or values of the gradient for one constraint | |
Solution Methods | |
virtual void | finalize_solution (TMINLP::SolverReturn status, Ipopt::Index n, const Ipopt::Number *x, Ipopt::Number obj_value) |
Called after optimizing to return results to ampl. | |
void | write_solution (const std::string &message, const Ipopt::Number *x_sol) |
Write the solution using ampl's write_sol (called by finalize_solution). | |
virtual const BranchingInfo * | branchingInfo () const |
virtual const SosInfo * | sosConstraints () const |
virtual const PerturbInfo * | perturbInfo () const |
User callbacks | |
virtual void | fillApplicationOptions (Ipopt::AmplOptionsList *amplOptList) |
Additional application specific options. | |
virtual void | getLinearPartOfObjective (double *obj) |
This methods gives the linear part of the objective function. | |
virtual bool | hasUpperBoundingObjective () |
Do we have an alternate objective for upper bounding? | |
virtual bool | eval_upper_bound_f (Ipopt::Index n, const Ipopt::Number *x, Ipopt::Number &obj_value) |
This method to returns the value of an alternative objective function for upper bounding (if one has been declared by using the prefix UBObj). | |
virtual bool | get_constraint_convexities (int m, TMINLP::Convexity *constraints_convexities) const |
Get accest to constraint convexities. | |
virtual bool | get_number_nonconvex (int &number_non_conv, int &number_concave) const |
Get dimension information on nonconvex constraints. | |
virtual bool | get_constraint_convexities (int number_non_conv, MarkedNonConvex *non_convexes) const |
Get array describing the constraints marked nonconvex in the model. | |
virtual bool | get_simple_concave_constraints (int number_concave, SimpleConcaveConstraint *simple_concave) const |
Fill array containing indices of simple concave constraints. | |
virtual bool | hasLinearObjective () |
Say if problem has a linear objective (for OA) | |
virtual const int * | get_const_xtra_id () const |
Access array describing onoff constraint. | |
![]() | |
TMINLP () | |
virtual | ~TMINLP () |
Default 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) |
overload this method to return scaling parameters. | |
bool | hasGeneralInteger () |
Say if problem has general integer variables. | |
![]() | |
ReferencedObject () | |
virtual | ~ReferencedObject () |
Index | ReferenceCount () const |
void | AddRef (const Referencer *referencer) const |
void | ReleaseRef (const Referencer *referencer) const |
Additional Inherited Members | |
![]() | |
enum | SolverReturn { SUCCESS , INFEASIBLE , CONTINUOUS_UNBOUNDED , LIMIT_EXCEEDED , USER_INTERRUPT , MINLP_ERROR } |
Return statuses of algorithm. More... | |
enum | VariableType { CONTINUOUS , BINARY , INTEGER } |
Type of the variables. More... | |
enum | Convexity { Convex , NonConvex , SimpleConcave } |
Used to mark constraints of the problem. More... | |
![]() | |
TMINLP (const TMINLP &) | |
Copy constructor. | |
void | operator= (const TMINLP &) |
Overloaded Equals Operator. | |
Ampl MINLP Interface.
Ampl MINLP Interface, implemented as a TMINLP. This interface creates a AmplTNLP and also retrieves the information about the binary and integer variables
Definition at line 46 of file BonAmplTMINLP.hpp.
Bonmin::AmplTMINLP::AmplTMINLP | ( | const Ipopt::SmartPtr< const Ipopt::Journalist > & | jnlst, |
const Ipopt::SmartPtr< Bonmin::RegisteredOptions > | roptions, | ||
const Ipopt::SmartPtr< Ipopt::OptionsList > | options, | ||
char **& | argv, | ||
Ipopt::AmplSuffixHandler * | suffix_handler = NULL, | ||
const std::string & | appName = "bonmin", | ||
std::string * | nl_file_content = NULL ) |
Constructor.
Bonmin::AmplTMINLP::AmplTMINLP | ( | ) |
Default constructor.
|
virtual |
destructor
|
virtual |
void Bonmin::AmplTMINLP::read_priorities | ( | ) |
read the branching priorities from ampl suffixes.
void Bonmin::AmplTMINLP::read_sos | ( | ) |
read the sos constraints from ampl suffixes
void Bonmin::AmplTMINLP::read_convexities | ( | ) |
Read suffixes which indicate which constraints are convex.
void Bonmin::AmplTMINLP::read_onoff | ( | ) |
Read suffixes used to apply perspective in OA to some of the constraints.
void Bonmin::AmplTMINLP::read_obj_suffixes | ( | ) |
Read suffixes on objective functions for upper bounding.
|
inlinevirtual |
Definition at line 86 of file BonAmplTMINLP.hpp.
const ASL_pfgh * Bonmin::AmplTMINLP::AmplSolverObject | ( | ) | const |
Return the ampl solver object (ASL*)
|
virtual |
|
virtual |
returns the vector of variable types
Implements Bonmin::TMINLP.
|
virtual |
return the variables linearity (linear or not)
Implements Bonmin::TMINLP.
|
virtual |
Returns the constraint linearity.
array should be alocated with length at least n.
Implements Bonmin::TMINLP.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
evaluates the gradient of the objective for the nlp.
Overloaded from TMINLP
Implements Bonmin::TMINLP.
|
virtual |
|
virtual |
specifies the jacobian structure (if values is NULL) and evaluates the jacobian values (if values is not NULL) for the nlp.
Overloaded from TMINLP
Implements Bonmin::TMINLP.
|
virtual |
specifies the structure of the hessian of the lagrangian (if values is NULL) and evaluates the values (if values is not NULL).
Overloaded from TMINLP
Implements Bonmin::TMINLP.
|
virtual |
compute the value of a single constraint
Reimplemented from Bonmin::TMINLP.
|
virtual |
compute the structure or values of the gradient for one constraint
Reimplemented from Bonmin::TMINLP.
|
virtual |
Called after optimizing to return results to ampl.
Status code is put into solve_result_num according to the table below.
| |
3 | Integer optimal |
220 | problem is proven infeasible. |
421 | limit reached or user interrupt with integer feasible solution found. |
410 | limit reached or user interrupt without any integer feasible solution. |
500 | error. Status codes for optimization. |
Implements Bonmin::TMINLP.
void Bonmin::AmplTMINLP::write_solution | ( | const std::string & | message, |
const Ipopt::Number * | x_sol ) |
Write the solution using ampl's write_sol (called by finalize_solution).
|
inlinevirtual |
Implements Bonmin::TMINLP.
Definition at line 192 of file BonAmplTMINLP.hpp.
|
inlinevirtual |
Implements Bonmin::TMINLP.
Definition at line 197 of file BonAmplTMINLP.hpp.
|
inlinevirtual |
Reimplemented from Bonmin::TMINLP.
Definition at line 202 of file BonAmplTMINLP.hpp.
|
inlinevirtual |
Additional application specific options.
Definition at line 210 of file BonAmplTMINLP.hpp.
|
virtual |
This methods gives the linear part of the objective function.
|
inlinevirtual |
Do we have an alternate objective for upper bounding?
Reimplemented from Bonmin::TMINLP.
Definition at line 220 of file BonAmplTMINLP.hpp.
|
virtual |
This method to returns the value of an alternative objective function for upper bounding (if one has been declared by using the prefix UBObj).
Reimplemented from Bonmin::TMINLP.
|
inlinevirtual |
Get accest to constraint convexities.
Reimplemented from Bonmin::TMINLP.
Definition at line 231 of file BonAmplTMINLP.hpp.
|
inlinevirtual |
Get dimension information on nonconvex constraints.
Reimplemented from Bonmin::TMINLP.
Definition at line 242 of file BonAmplTMINLP.hpp.
|
inlinevirtual |
Get array describing the constraints marked nonconvex in the model.
Reimplemented from Bonmin::TMINLP.
Definition at line 249 of file BonAmplTMINLP.hpp.
|
inlinevirtual |
Fill array containing indices of simple concave constraints.
Reimplemented from Bonmin::TMINLP.
Definition at line 256 of file BonAmplTMINLP.hpp.
|
inlinevirtual |
Say if problem has a linear objective (for OA)
Reimplemented from Bonmin::TMINLP.
Definition at line 264 of file BonAmplTMINLP.hpp.
|
inlinevirtual |
Access array describing onoff constraint.
Reimplemented from Bonmin::TMINLP.
Definition at line 270 of file BonAmplTMINLP.hpp.