#include <memory>
#include <algorithm>
#include <numeric>
#include <cmath>
#include "CoinHelperFunctions.hpp"
#include "CoinWarmStartBasis.hpp"
#include "BCP_problem_core.hpp"
#include "BCP_lp_node.hpp"
#include "BCP_lp_result.hpp"
#include "BCP_lp_pool.hpp"
#include "BCP_lp.hpp"
#include "BCP_lp_branch.hpp"
#include "BCP_lp_user.hpp"
#include "BCP_lp_functions.hpp"
Include dependency graph for BCP_lp_colrow.cpp:
Go to the source code of this file.
Functions | |
static int | BCP_compare_waiting_row_ptr (const BCP_lp_waiting_row *wrow0, const BCP_lp_waiting_row *wrow1) |
static int | BCP_compare_waiting_col_ptr (const BCP_lp_waiting_col *wcol0, const BCP_lp_waiting_col *wcol1) |
bool | BCP_lp_fix_vars (BCP_lp_prob &p) |
static void | BCP_lp_reset_positions (const BCP_vec< int > &deletable, BCP_vec< int > &pos, const bool error_if_deletable) |
void | BCP_delete_unwanted_candidates (const int num, const int added_num, const BCP_vec< int > *pos, BCP_vec< int > &deletable) |
void | BCP_lp_delete_cols_and_rows (BCP_lp_prob &p, BCP_lp_branching_object *can, const int added_colnum, const int added_rownum, const bool from_fathom, const bool force_delete) |
void | BCP_lp_adjust_row_effectiveness (BCP_lp_prob &p) |
int | BCP_lp_add_from_local_cut_pool (BCP_lp_prob &p) |
int | BCP_lp_add_from_local_var_pool (BCP_lp_prob &p) |
static int BCP_compare_waiting_row_ptr | ( | const BCP_lp_waiting_row * | wrow0, | |
const BCP_lp_waiting_row * | wrow1 | |||
) | [inline, static] |
Definition at line 25 of file BCP_lp_colrow.cpp.
References BCP_lp_waiting_row::violation().
Referenced by BCP_lp_add_from_local_cut_pool().
static int BCP_compare_waiting_col_ptr | ( | const BCP_lp_waiting_col * | wcol0, | |
const BCP_lp_waiting_col * | wcol1 | |||
) | [inline, static] |
Definition at line 35 of file BCP_lp_colrow.cpp.
References BCP_lp_waiting_col::red_cost().
Referenced by BCP_lp_add_from_local_var_pool().
bool BCP_lp_fix_vars | ( | BCP_lp_prob & | p | ) |
Definition at line 42 of file BCP_lp_colrow.cpp.
References BCP_lp_check_ub(), BCP_vec< T >::begin(), BCP_lp_node::cuts, BCP_lp_result::dj(), BCP_vec< T >::end(), BCP_vec< T >::entry(), BCP_vec< T >::erase(), BCP_lp_prob::granularity(), BCP_lp_user::logical_fixing(), BCP_lp_prob::lp_result, BCP_lp_prob::lp_solver, BCP_lp_par::LpVerb_VarTightening, BCP_lp_prob::node, BCP_lp_result::objval(), BCP_lp_prob::param(), BCP_lp_result::primalTolerance(), BCP_lp_user::reduced_cost_fixing(), BCP_vec< T >::reserve(), BCP_var_set::set_lb_ub(), BCP_vec< T >::size(), BCP_lp_prob::ub(), BCP_vec< T >::unchecked_push_back(), BCP_lp_prob::user, BCP_lp_prob::var_bound_changes_since_logical_fixing, BCP_lp_node::vars, x, and BCP_lp_result::x().
Referenced by BCP_lp_main_loop().
static void BCP_lp_reset_positions | ( | const BCP_vec< int > & | deletable, | |
BCP_vec< int > & | pos, | |||
const bool | error_if_deletable | |||
) | [static] |
Definition at line 144 of file BCP_lp_colrow.cpp.
References BCP_vec< T >::size().
Referenced by BCP_lp_delete_cols_and_rows().
void BCP_delete_unwanted_candidates | ( | const int | num, | |
const int | added_num, | |||
const BCP_vec< int > * | pos, | |||
BCP_vec< int > & | deletable | |||
) |
Definition at line 170 of file BCP_lp_colrow.cpp.
References BCP_vec< T >::begin(), BCP_vec< T >::end(), BCP_vec< T >::erase(), and BCP_vec< T >::push_back().
Referenced by BCP_lp_delete_cols_and_rows().
void BCP_lp_delete_cols_and_rows | ( | BCP_lp_prob & | p, | |
BCP_lp_branching_object * | can, | |||
const int | added_colnum, | |||
const int | added_rownum, | |||
const bool | from_fathom, | |||
const bool | force_delete | |||
) |
Definition at line 201 of file BCP_lp_colrow.cpp.
References BCP_delete_unwanted_candidates(), BCP_lp_reset_positions(), BCP_lp_par::BranchOnCuts, BCP_lp_var_pool::cols_are_valid(), BCP_lp_node::cuts, BCP_lp_par::DeletedColToCompress_Frac, BCP_lp_par::DeletedColToCompress_Min, BCP_lp_par::DeletedRowToCompress_Frac, BCP_lp_par::DeletedRowToCompress_Min, BCP_vec< T >::empty(), BCP_vec< T >::erase_by_index(), BCP_lp_branching_object::forced_cut_pos, BCP_lp_branching_object::forced_var_pos, BCP_lp_branching_object::implied_cut_pos, BCP_lp_branching_object::implied_var_pos, BCP_lp_node::lb_at_cutgen, BCP_lp_prob::local_cut_pool, BCP_lp_prob::local_var_pool, lp, BCP_lp_prob::lp_result, BCP_lp_prob::lp_solver, BCP_lp_par::LpVerb_MatrixCompression, BCP_cut_set::move_deletable_to_pool(), BCP_lp_prob::node, BCP_lp_prob::param(), purge_ptr_vector_by_index(), BCP_vec< T >::push_back(), BCP_lp_cut_pool::rows_are_valid(), BCP_lp_user::select_cuts_to_delete(), BCP_lp_user::select_vars_to_delete(), BCP_vec< T >::size(), BCP_lp_prob::slack_pool, BCP_lp_prob::user, BCP_lp_node::vars, and ws.
Referenced by BCP_lp_fathom(), BCP_lp_main_loop(), BCP_lp_perform_fathom(), and BCP_lp_perform_strong_branching().
void BCP_lp_adjust_row_effectiveness | ( | BCP_lp_prob & | p | ) |
Definition at line 366 of file BCP_lp_colrow.cpp.
References BCP_IneffConstr_None, BCP_IneffConstr_NonzeroSlack, BCP_IneffConstr_ZeroDualValue, BCP_lp_prob::core, BCP_problem_core::cutnum(), BCP_lp_node::cuts, BCP_lp_par::IneffectiveConstraints, BCP_lp_result::lhs(), BCP_lp_prob::lp_result, BCP_lp_prob::lp_solver, BCP_lp_par::LpVerb_RowEffectivenessCount, BCP_lp_prob::node, BCP_lp_prob::param(), BCP_lp_result::pi(), pi, and BCP_vec< T >::size().
Referenced by BCP_lp_main_loop().
int BCP_lp_add_from_local_cut_pool | ( | BCP_lp_prob & | p | ) |
Definition at line 421 of file BCP_lp_colrow.cpp.
References BCP_compare_waiting_row_ptr(), BCP_CutViolationNorm_Directional, BCP_CutViolationNorm_Distance, BCP_CutViolationNorm_Plain, BCP_vec< T >::begin(), c, BCP_lp_node::cuts, BCP_lp_par::CutViolationNorm, BCP_vec< T >::end(), BCP_vec< T >::entry(), BCP_vec< T >::insert(), BCP_lp_node::lb_at_cutgen, BCP_lp_prob::local_cut_pool, BCP_row::LowerBound(), BCP_lp_prob::lp_result, BCP_lp_prob::lp_solver, BCP_lp_par::MaxCutsAddedPerIteration, BCP_lp_par::MaxLeftoverCutFrac, BCP_lp_par::MaxLeftoverCutNum, n, BCP_lp_prob::node, BCP_lp_result::objval(), BCP_lp_prob::param(), purge_ptr_vector(), BCP_vec< T >::reserve(), BCP_lp_cut_pool::rows_are_valid(), BCP_cut::set_effective_count(), BCP_vec< T >::size(), BCP_vec< T >::unchecked_push_back(), and BCP_row::UpperBound().
Referenced by BCP_lp_main_loop().
int BCP_lp_add_from_local_var_pool | ( | BCP_lp_prob & | p | ) |
Definition at line 530 of file BCP_lp_colrow.cpp.
References BCP_compare_waiting_col_ptr(), BCP_ContinuousVar, BCP_vec< T >::begin(), BCP_lp_var_pool::cols_are_valid(), e, BCP_vec< T >::end(), BCP_vec< T >::entry(), BCP_var::lb(), BCP_lp_prob::local_var_pool, BCP_col::LowerBound(), BCP_lp_prob::lp_solver, BCP_lp_par::MaxVarsAddedPerIteration, BCP_lp_prob::node, BCP_col::Objective(), BCP_lp_prob::param(), purge_ptr_vector(), BCP_vec< T >::reserve(), BCP_var::set_lb(), BCP_var::set_ub(), BCP_vec< T >::size(), BCP_var::ub(), BCP_vec< T >::unchecked_push_back(), BCP_col::UpperBound(), BCP_var::var_type(), and BCP_lp_node::vars.
Referenced by BCP_lp_main_loop().