26 #ifndef CASADI_BONMIN_INTERFACE_HPP
27 #define CASADI_BONMIN_INTERFACE_HPP
29 #include <IpIpoptApplication.hpp>
30 #include "BonOsiTMINLPInterface.hpp"
31 #include "BonIpoptSolver.hpp"
33 #include "BonBonminSetup.hpp"
34 #include "BonOACutGenerator2.hpp"
35 #include "BonEcpCuts.hpp"
36 #include "BonOaNlpOptim.hpp"
38 #include <casadi/interfaces/bonmin/casadi_nlpsol_bonmin_export.h>
39 #include "casadi/core/nlpsol_impl.hpp"
40 #include "casadi/core/timing.hpp"
76 double *
gk, *grad_fk, *jac_gk, *hess_lk, *grad_lk;
79 std::vector<double> inf_pr, inf_du, mu,
d_norm, regularization_size,
112 std::string
class_name()
const override {
return "BonminInterface";}
126 void init(
const Dict& opts)
override;
132 int init_mem(
void* mem)
const override;
138 Dict get_stats(
void* mem)
const override;
141 void set_work(
void* mem,
const double**& arg,
double**& res,
142 casadi_int*& iw,
double*& w)
const override;
145 int solve(
void* mem)
const override;
154 void finalize_solution(
BonminMemory* m, Bonmin::TMINLP::SolverReturn status,
155 const double* x,
double obj_value)
const;
156 bool get_bounds_info(
BonminMemory* m,
double* x_l,
double* x_u,
157 double* g_l,
double* g_u)
const;
158 bool get_starting_point(
BonminMemory* m,
bool init_x,
double* x,
159 bool init_z,
double* z_L,
double* z_U,
160 bool init_lambda,
double* lambda)
const;
162 int& nnz_jac_g,
int& nnz_h_lag)
const;
163 int get_number_of_nonlinear_variables()
const;
164 bool get_list_of_nonlinear_variables(
int num_nonlin_vars,
int* pos_nonlin_vars)
const;
165 bool intermediate_callback(
BonminMemory* m,
const double* x,
const double* z_L,
166 const double* z_U,
const double* g,
167 const double* lambda,
double obj_value,
int iter,
168 double inf_pr,
double inf_du,
double mu,
double d_norm,
169 double regularization_size,
double alpha_du,
double alpha_pr,
170 int ls_trials,
bool full_callback)
const;
171 const Bonmin::TMINLP::SosInfo& sosConstraints(
BonminMemory* m)
const;
'bonmin' plugin for Nlpsol
std::vector< int > sos1_starts_
bool integer_support() const override
Can discrete variables be treated.
std::vector< char > sos1_types_
std::string class_name() const override
Get type name.
const char * plugin_name() const override
std::vector< double > sos1_weights_
Sos constraints information.
bool exact_hessian_
Exact Hessian?
Dict opts_
All BONMIN options.
std::vector< bool > nl_g_
bool pass_nonlinear_variables_
static Nlpsol * creator(const std::string &name, const Function &nlp)
Create a new NLP Solver.
void * alloc_mem() const override
Create memory block.
static const Options options_
Options.
const Options & get_options() const override
Options.
std::vector< int > sos1_indices_
std::vector< bool > nl_ex_
std::vector< int > sos1_priorities_
bool pass_nonlinear_constraints_
static ProtoFunction * deserialize(DeserializingStream &s)
Deserialize into MX.
void free_mem(void *mem) const override
Free memory block.
static const std::string meta_doc
A documentation string.
Helper class for Serialization.
NLP solver storage class.
Base class for FunctionInternal and LinsolInternal.
Helper class for Serialization.
GenericType::Dict Dict
C++ equivalent of Python's dict or MATLAB's struct.
std::vector< double > alpha_du
const char * return_status
std::vector< double > d_norm
Bonmin::TMINLP::SosInfo sos_info
std::vector< casadi_int > ls_trials
Options metadata for a class.