#include <BM.hpp>
Collaboration diagram for BM_lp:
Public Member Functions | |
BM_lp () | |
virtual | ~BM_lp () |
int & | numNlpFailed () |
virtual void | unpack_module_data (BCP_buffer &buf) |
virtual void | pack_var_algo (const BCP_var_algo *var, BCP_buffer &buf) |
virtual BCP_var_algo * | unpack_var_algo (BCP_buffer &buf) |
virtual void | pack_cut_algo (const BCP_cut_algo *cut, BCP_buffer &buf) |
virtual BCP_cut_algo * | unpack_cut_algo (BCP_buffer &buf) |
virtual void | pack_feasible_solution (BCP_buffer &buf, const BCP_solution *sol) |
virtual void | pack_user_data (const BCP_user_data *ud, BCP_buffer &buf) |
virtual BCP_user_data * | unpack_user_data (BCP_buffer &buf) |
virtual void | process_message (BCP_buffer &buf) |
virtual OsiSolverInterface * | initialize_solver_interface () |
virtual BCP_solution * | test_feasibility (const BCP_lp_result &lp_result, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts) |
virtual void | generate_cuts_in_lp (const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, BCP_vec< BCP_cut * > &new_cuts, BCP_vec< BCP_row * > &new_rows) |
virtual void | cuts_to_rows (const BCP_vec< BCP_var * > &vars, BCP_vec< BCP_cut * > &cuts, BCP_vec< BCP_row * > &rows, const BCP_lp_result &lpres, BCP_object_origin origin, bool allow_multiple) |
virtual void | vars_to_cols (const BCP_vec< BCP_cut * > &cuts, BCP_vec< BCP_var * > &vars, BCP_vec< BCP_col * > &cols, const BCP_lp_result &lpres, BCP_object_origin origin, bool allow_multiple) |
virtual double | compute_lower_bound (const double old_lower_bound, const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts) |
virtual void | initialize_new_search_tree_node (const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, const BCP_vec< BCP_obj_status > &vs, const BCP_vec< BCP_obj_status > &cs, BCP_vec< int > &var_changed_pos, BCP_vec< double > &var_new_bd, BCP_vec< int > &cut_changed_pos, BCP_vec< double > &cut_new_bd) |
virtual BCP_branching_decision | select_branching_candidates (const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, const BCP_lp_var_pool &local_var_pool, const BCP_lp_cut_pool &local_cut_pool, BCP_vec< BCP_lp_branching_object * > &cans) |
virtual void | set_user_data_for_children (BCP_presolved_lp_brobj *best, const int selected) |
virtual void | modify_lp_parameters (OsiSolverInterface *lp, bool in_strong_branching) |
Private Member Functions | |
void | setSosFrom (const TMINLP::SosInfo *sosinfo) |
Private Attributes | |
std::vector< BmSosInfo * > | sos |
BCP_string | ipopt_file_content |
BCP_string | nl_file_content |
BCP_parameter_set< BM_par > | par |
OsiBabSolver | babSolver_ |
BonminAmplInterface | nlp |
CoinWarmStart * | ws |
double | lower_bound_ |
double * | primal_solution_ |
int | numNlpFailed_ |
A counter for how many times in a row did the NLP code fail. | |
double * | branching_priority_ |
If pure branch and bound is done then for each fractional variable that ought to be integer we multiply it's distance from integrality with it's priority and choose the var with the highest value. | |
IpCbcOACutGenerator2 * | feasChecker_ |
OsiCuts | cuts_ |
int | in_strong |
Classes | |
struct | BmSosInfo |
Definition at line 163 of file BM.hpp.
BM_lp::BM_lp | ( | ) |
virtual BM_lp::~BM_lp | ( | ) | [virtual] |
void BM_lp::setSosFrom | ( | const TMINLP::SosInfo * | sosinfo | ) | [private] |
virtual void BM_lp::unpack_module_data | ( | BCP_buffer & | buf | ) | [virtual] |
virtual void BM_lp::pack_var_algo | ( | const BCP_var_algo * | var, | |
BCP_buffer & | buf | |||
) | [inline, virtual] |
virtual BCP_var_algo* BM_lp::unpack_var_algo | ( | BCP_buffer & | buf | ) | [inline, virtual] |
virtual void BM_lp::pack_cut_algo | ( | const BCP_cut_algo * | cut, | |
BCP_buffer & | buf | |||
) | [inline, virtual] |
virtual BCP_cut_algo* BM_lp::unpack_cut_algo | ( | BCP_buffer & | buf | ) | [inline, virtual] |
virtual void BM_lp::pack_feasible_solution | ( | BCP_buffer & | buf, | |
const BCP_solution * | sol | |||
) | [virtual] |
virtual void BM_lp::pack_user_data | ( | const BCP_user_data * | ud, | |
BCP_buffer & | buf | |||
) | [virtual] |
virtual BCP_user_data* BM_lp::unpack_user_data | ( | BCP_buffer & | buf | ) | [virtual] |
virtual void BM_lp::process_message | ( | BCP_buffer & | buf | ) | [virtual] |
virtual OsiSolverInterface* BM_lp::initialize_solver_interface | ( | ) | [virtual] |
virtual BCP_solution* BM_lp::test_feasibility | ( | const BCP_lp_result & | lp_result, | |
const BCP_vec< BCP_var * > & | vars, | |||
const BCP_vec< BCP_cut * > & | cuts | |||
) | [virtual] |
virtual void BM_lp::generate_cuts_in_lp | ( | const BCP_lp_result & | lpres, | |
const BCP_vec< BCP_var * > & | vars, | |||
const BCP_vec< BCP_cut * > & | cuts, | |||
BCP_vec< BCP_cut * > & | new_cuts, | |||
BCP_vec< BCP_row * > & | new_rows | |||
) | [virtual] |
virtual void BM_lp::cuts_to_rows | ( | const BCP_vec< BCP_var * > & | vars, | |
BCP_vec< BCP_cut * > & | cuts, | |||
BCP_vec< BCP_row * > & | rows, | |||
const BCP_lp_result & | lpres, | |||
BCP_object_origin | origin, | |||
bool | allow_multiple | |||
) | [virtual] |
virtual void BM_lp::vars_to_cols | ( | const BCP_vec< BCP_cut * > & | cuts, | |
BCP_vec< BCP_var * > & | vars, | |||
BCP_vec< BCP_col * > & | cols, | |||
const BCP_lp_result & | lpres, | |||
BCP_object_origin | origin, | |||
bool | allow_multiple | |||
) | [virtual] |
virtual double BM_lp::compute_lower_bound | ( | const double | old_lower_bound, | |
const BCP_lp_result & | lpres, | |||
const BCP_vec< BCP_var * > & | vars, | |||
const BCP_vec< BCP_cut * > & | cuts | |||
) | [virtual] |
virtual void BM_lp::initialize_new_search_tree_node | ( | const BCP_vec< BCP_var * > & | vars, | |
const BCP_vec< BCP_cut * > & | cuts, | |||
const BCP_vec< BCP_obj_status > & | vs, | |||
const BCP_vec< BCP_obj_status > & | cs, | |||
BCP_vec< int > & | var_changed_pos, | |||
BCP_vec< double > & | var_new_bd, | |||
BCP_vec< int > & | cut_changed_pos, | |||
BCP_vec< double > & | cut_new_bd | |||
) | [virtual] |
virtual BCP_branching_decision BM_lp::select_branching_candidates | ( | const BCP_lp_result & | lpres, | |
const BCP_vec< BCP_var * > & | vars, | |||
const BCP_vec< BCP_cut * > & | cuts, | |||
const BCP_lp_var_pool & | local_var_pool, | |||
const BCP_lp_cut_pool & | local_cut_pool, | |||
BCP_vec< BCP_lp_branching_object * > & | cans | |||
) | [virtual] |
virtual void BM_lp::set_user_data_for_children | ( | BCP_presolved_lp_brobj * | best, | |
const int | selected | |||
) | [virtual] |
virtual void BM_lp::modify_lp_parameters | ( | OsiSolverInterface * | lp, | |
bool | in_strong_branching | |||
) | [virtual] |
std::vector<BmSosInfo*> BM_lp::sos [private] |
BCP_string BM_lp::ipopt_file_content [private] |
BCP_string BM_lp::nl_file_content [private] |
BCP_parameter_set<BM_par> BM_lp::par [private] |
OsiBabSolver BM_lp::babSolver_ [private] |
BonminAmplInterface BM_lp::nlp [private] |
CoinWarmStart* BM_lp::ws [private] |
double BM_lp::lower_bound_ [private] |
double* BM_lp::primal_solution_ [private] |
int BM_lp::numNlpFailed_ [private] |
double* BM_lp::branching_priority_ [private] |
IpCbcOACutGenerator2* BM_lp::feasChecker_ [private] |
OsiCuts BM_lp::cuts_ [private] |
int BM_lp::in_strong [private] |