|
| BM_lp () |
|
virtual | ~BM_lp () |
|
int & | numNlpFailed () |
|
virtual void | unpack_module_data (BCP_buffer &buf) |
| Unpack the initial information sent to the LP process by the Tree Manager. More...
|
|
virtual void | process_message (BCP_buffer &buf) |
| Process a message that has been sent by another process' user part to this process' user part. More...
|
|
virtual OsiSolverInterface * | initialize_solver_interface () |
| Create LP solver environment. More...
|
|
virtual void | load_problem (OsiSolverInterface &osi, BCP_problem_core *core, BCP_var_set &vars, BCP_cut_set &cuts) |
| Load the problem specified by core, vars, and cuts into the solver interface. More...
|
|
virtual void | modify_lp_parameters (OsiSolverInterface *lp, bool in_strong_branching) |
|
virtual BCP_solution * | test_feasibility (const BCP_lp_result &lp_result, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts) |
| Evaluate and return MIP feasibility of the current solution. More...
|
|
BCP_solution * | test_feasibility_BB (const BCP_lp_result &lp_result, const BCP_vec< BCP_var * > &vars) |
|
BCP_solution * | test_feasibility_hybrid (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) |
| Generate cuts within the LP process. More...
|
|
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) |
| Convert (and possibly lift) a set of cuts into corresponding rows for the current LP relaxation. More...
|
|
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) |
| Compute a true lower bound for the subproblem. More...
|
|
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) |
| Initializing a new search tree node. More...
|
|
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, bool force_branch=false) |
| Decide whether to branch or not and select a set of branching candidates if branching is decided upon. More...
|
|
BCP_branching_decision | bbBranch (OsiBranchingInformation &brInfo, BCP_vec< BCP_lp_branching_object * > &cands) |
|
BCP_branching_decision | hybridBranch () |
|
void | send_pseudo_cost_update (OsiBranchingInformation &branchInfo) |
| Methods invoked from bbBranch() More...
|
|
void | unpack_pseudo_costs (BCP_buffer &buf) |
|
int | sort_objects (OsiBranchingInformation &branchInfo, Bonmin::BonChooseVariable *choose, int &branchNum) |
|
void | clear_SB_results () |
|
void | collect_branch_data (OsiBranchingInformation &branchInfo, OsiSolverInterface *solver, const int branchNum, BM_BranchData *branchData) |
|
void | do_distributed_SB (OsiBranchingInformation &branchInfo, OsiSolverInterface *solver, const CoinWarmStart *cws, const int branchNum, const int *pids, const int pidNum) |
|
bool | isBranchFathomable (int status, double obj) |
|
int | process_SB_results (OsiBranchingInformation &branchInfo, OsiSolverInterface *solver, Bonmin::BonChooseVariable *choose, OsiBranchingObject *&branchObject) |
|
int | try_to_branch (OsiBranchingInformation &branchInfo, OsiSolverInterface *solver, Bonmin::BonChooseVariable *choose, OsiBranchingObject *&branchObject, bool allowVarFix) |
|
virtual void | set_user_data_for_children (BCP_presolved_lp_brobj *best, const int selected) |
| For each child create a user data object and put it into the appropriate entry in best->user_data() . More...
|
|
void | setOsiBabSolver (OsiBabSolver *ptr) |
|
OsiBabSolver * | getOsiBabSolver () |
|
void | print (const bool ifprint, const char *format,...) const |
| A method to print a message with the process id. More...
|
|
int | process_id () const |
| What is the process id of the current process. More...
|
|
int | parent () const |
| the process id of the parent More...
|
|
void | send_message (const int target, const BCP_buffer &buf, BCP_message_tag tag=BCP_Msg_User) |
| Send a message to a particular process. More...
|
|
void | receive_message (const int sender, BCP_buffer &buf, BCP_message_tag tag=BCP_Msg_User) |
| Wait for a message and receive it. More...
|
|
void | broadcast_message (const BCP_process_t proc_type, const BCP_buffer &buf) |
| Broadcast the message to all processes of the given type. More...
|
|
virtual void | initialize_int_and_sos_list (std::vector< OsiObject * > &intAndSosObjects) |
| Create the list of objects that can be used for branching (simple integer vars and SOS sets). More...
|
|
virtual void | modify_lp_parameters (OsiSolverInterface *lp, const int changeType, bool in_strong_branching) |
| Modify parameters of the LP solver before optimization. More...
|
|
virtual void | process_lp_result (const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, const double old_lower_bound, double &true_lower_bound, BCP_solution *&sol, BCP_vec< BCP_cut * > &new_cuts, BCP_vec< BCP_row * > &new_rows, BCP_vec< BCP_var * > &new_vars, BCP_vec< BCP_col * > &new_cols) |
| Process the result of an iteration. More...
|
|
virtual BCP_solution * | generate_heuristic_solution (const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts) |
| Try to generate a heuristic solution (or return one generated during cut/variable generation. More...
|
|
virtual void | restore_feasibility (const BCP_lp_result &lpres, const std::vector< double * > dual_rays, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, BCP_vec< BCP_var * > &vars_to_add, BCP_vec< BCP_col * > &cols_to_add) |
| Restoring feasibility. More...
|
|
virtual void | select_vars_to_delete (const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, const bool before_fathom, BCP_vec< int > &deletable) |
|
virtual void | select_cuts_to_delete (const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, const bool before_fathom, BCP_vec< int > &deletable) |
|
void | reduced_cost_fixing (const double *dj, const double *x, const double gap, BCP_vec< BCP_var * > &vars, int &newly_changed) |
| Reduced cost fixing. More...
|
|
virtual
BCP_branching_object_relation | compare_branching_candidates (BCP_presolved_lp_brobj *new_solved, BCP_presolved_lp_brobj *old_solved) |
| Decide which branching object is preferred for branching. More...
|
|
virtual void | set_actions_for_children (BCP_presolved_lp_brobj *best) |
| Decide what to do with the children of the selected branching object. More...
|
|
virtual void | set_user_data_for_children (BCP_presolved_lp_brobj *best) |
| Deprecated version of the previos method (it does not pass the index of the selected branching candidate). More...
|
|
void | setLpProblemPointer (BCP_lp_prob *ptr) |
| Set the pointer. More...
|
|
BCP_lp_prob * | getLpProblemPointer () |
| Get the pointer. More...
|
|
double | upper_bound () const |
| Return what is the best known upper bound (might be BCP_DBL_MAX) More...
|
|
bool | over_ub (double lb) const |
| Return true / false depending on whether the lb argument is over the current upper bound or not. More...
|
|
int | current_phase () const |
| Return the phase the algorithm is in. More...
|
|
int | current_level () const |
| Return the level of the search tree node being processed. More...
|
|
int | current_index () const |
| Return the internal index of the search tree node being processed. More...
|
|
int | current_iteration () const |
| Return the iteration count within the search tree node being processed. More...
|
|
double | start_time () const |
| Return when the LP process started. More...
|
|
BCP_user_data * | get_user_data () |
| Return a pointer to the BCP_user_data structure the user (may have) stored in this node. More...
|
|
char | get_param (const BCP_lp_par::chr_params key) const |
|
int | get_param (const BCP_lp_par::int_params key) const |
|
double | get_param (const BCP_lp_par::dbl_params key) const |
|
const BCP_string & | get_param (const BCP_lp_par::str_params key) const |
|
void | set_param (const BCP_lp_par::chr_params key, const bool val) |
|
void | set_param (const BCP_lp_par::chr_params key, const char val) |
|
void | set_param (const BCP_lp_par::int_params key, const int val) |
|
void | set_param (const BCP_lp_par::dbl_params key, const double val) |
|
void | set_param (const BCP_lp_par::str_params key, const char *val) |
|
void | send_feasible_solution (const BCP_solution *sol) |
|
| BCP_lp_user () |
| Being virtual, the destructor invokes the destructor for the real type of the object being deleted. More...
|
|
virtual | ~BCP_lp_user () |
| Being virtual, the destructor invokes the destructor for the real type of the object being deleted. More...
|
|
void | select_nonzeros (const double *first, const double *last, const double etol, BCP_vec< int > &nonzeros) const |
| Select all nonzero entries. More...
|
|
void | select_zeros (const double *first, const double *last, const double etol, BCP_vec< int > &zeros) const |
| Select all zero entries. More...
|
|
void | select_positives (const double *first, const double *last, const double etol, BCP_vec< int > &positives) const |
| Select all positive entries. More...
|
|
void | select_fractions (const double *first, const double *last, const double etol, BCP_vec< int > &fractions) const |
| Select all fractional entries. More...
|
|
BCP_solution_generic * | test_binary (const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const double etol) const |
| Test whether all variables are 0/1. More...
|
|
BCP_solution_generic * | test_integral (const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const double etol) const |
| Test whether all variables are integer. More...
|
|
BCP_solution_generic * | test_full (const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const double etol) const |
| Test whether the variables specified as integers are really integer. More...
|
|
virtual void | pack_feasible_solution (BCP_buffer &buf, const BCP_solution *sol) |
| Pack a MIP feasible solution into a buffer. More...
|
|
virtual void | pack_primal_solution (BCP_buffer &buf, const BCP_lp_result &lp_result, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts) |
| Pack the information necessary for cut generation into the buffer. More...
|
|
virtual void | pack_dual_solution (BCP_buffer &buf, const BCP_lp_result &lp_result, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts) |
| Pack the information necessary for variable generation into the buffer. More...
|
|
virtual void | display_lp_solution (const BCP_lp_result &lp_result, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, const bool final_lp_solution) |
| Display the result of most recent LP optimization. More...
|
|
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) |
| Convert a set of variables into corresponding columns for the current LP relaxation. More...
|
|
virtual void | generate_vars_in_lp (const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, const bool before_fathom, BCP_vec< BCP_var * > &new_vars, BCP_vec< BCP_col * > &new_cols) |
| Generate variables within the LP process. More...
|
|
virtual BCP_object_compare_result | compare_cuts (const BCP_cut *c0, const BCP_cut *c1) |
| Compare two generated cuts. More...
|
|
virtual BCP_object_compare_result | compare_vars (const BCP_var *v0, const BCP_var *v1) |
| Compare two generated variables. More...
|
|
virtual void | logical_fixing (const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const BCP_vec< BCP_cut * > &cuts, const BCP_vec< BCP_obj_status > &var_status, const BCP_vec< BCP_obj_status > &cut_status, const int var_bound_changes_since_logical_fixing, BCP_vec< int > &changed_pos, BCP_vec< double > &new_bd) |
| This method provides an opportunity for the user to tighten the bounds of variables. More...
|
|
virtual int | try_to_branch (OsiBranchingInformation &branchInfo, OsiSolverInterface *solver, OsiChooseVariable *choose, OsiBranchingObject *&branchObject, bool allowVarFix) |
| Select the "close-to-half" variables for strong branching. More...
|
|
void | branch_close_to_half (const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const int to_be_selected, const double etol, BCP_vec< BCP_lp_branching_object * > &candidates) |
| Select the "close-to-half" variables for strong branching. More...
|
|
void | branch_close_to_one (const BCP_lp_result &lpres, const BCP_vec< BCP_var * > &vars, const int to_be_selected, const double etol, BCP_vec< BCP_lp_branching_object * > &candidates) |
| Select the "close-to-one" variables for strong branching. More...
|
|
void | append_branching_vars (const double *x, const BCP_vec< BCP_var * > &vars, const BCP_vec< int > &select_pos, BCP_vec< BCP_lp_branching_object * > &candidates) |
| This helper method creates branching variable candidates and appends them to cans . More...
|
|
virtual void | purge_slack_pool (const BCP_vec< BCP_cut * > &slack_pool, BCP_vec< int > &to_be_purged) |
| Selectively purge the list of slack cuts. More...
|
|
virtual | ~BCP_user_class () |
|