idol
A C++ Framework for Optimization
|
Public Member Functions | |
Strategy (bool t_use_lifting, bool t_apply_to_tree_nodes, unsigned int t_max_pass_root_node, double t_max_cuts_factor) | |
Protected Member Functions | |
void | detect_knapsack_structure (const Ctr &t_ctr) |
void | add_knapsack_structure (const Row &t_row, CtrType t_type) |
bool | has_only_binary_variables (const Row &t_row) |
bool | has_only_single_signed_coefficients (const Row &t_row) |
void | separate_cut (const KnapsackStructure &t_knapsack_structure) |
std::tuple< SetOfItems, SetOfItems, SetOfItems > | fix_variables_equal_to_one_or_zero (const SetOfItems &t_set_of_items) |
void | set_current_values (const SetOfItems &t_set_of_items) |
int | sum_of_weights (const SetOfItems &t_set_of_items) |
std::pair< SetOfItems, SetOfItems > | compute_initial_cover (const SetOfItems &t_N_1, const SetOfItems &t_N_free, const SetOfItems &t_N_0, int t_capacity) |
std::pair< SetOfItems, SetOfItems > | solve_knapsack_approximately (const SetOfItems &t_set_of_items, int t_capacity) |
std::pair< SetOfItems, SetOfItems > | swap_items (const SetOfItems &t_a, const SetOfItems &t_b) |
std::pair< SetOfItems, SetOfItems > | compute_minimal_cover (const SetOfItems &t_initial_cover, int t_capacity) |
std::pair< SetOfItems, SetOfItems > | partition_minimal_cover (const SetOfItems &t_minimal_cover) |
std::pair< SetOfItems, SetOfItems > | partition_remaining_items (const SetOfItems &t_remaining_items) |
void | sort_by_non_decreasing_weights (const SetOfItems &t_set_of_items) |
void | sort_by_non_increasing_weights (const SetOfItems &t_set_of_items) |
int | sequential_up_and_down_lifting (const SetOfItems &t_C1, const SetOfItems &t_C2, const SetOfItems &t_F, const SetOfItems &t_R, int t_capacity) |
double | compute_cut_activity (const SetOfItems &t_set_of_items, int t_right_hand_side) |
TempCtr | create_cut (const SetOfItems &t_set_of_items, int t_right_hand_side) |
void | debug (const std::string &t_name, const SetOfItems &t_set_of_items, bool t_with_values=false, bool t_with_cut=false) |
void | initialize () override |
void | operator() (CallbackEvent t_event) override |
void | log_after_termination () override |
void | add_user_cut (const TempCtr &t_cut) |
void | add_lazy_cut (const TempCtr &t_cut) |
void | add_local_variable_branching (const Var &t_var, CtrType t_type, double t_rhs) |
const Node< NodeInfoT > & | node () const |
const Model & | relaxation () const |
const Model & | original_model () const |
void | submit_heuristic_solution (NodeInfoT *t_info) |
void | submit_bound (double t_bound) |
const SideEffectRegistry & | side_effect_registry () const |
const Timer & | time () const |
double | best_bound () const |
double | best_obj () const |
void | terminate () |
Definition at line 85 of file KnapsackCover.h.
idol::Cuts::KnapsackCover< NodeInfoT >::Strategy::Strategy | ( | bool | t_use_lifting, |
bool | t_apply_to_tree_nodes, | ||
unsigned int | t_max_pass_root_node, | ||
double | t_max_cuts_factor | ||
) |
Definition at line 179 of file KnapsackCover.h.
|
protected |
Definition at line 292 of file KnapsackCover.h.
|
protectedinherited |
Adds a lazy cut to the relaxation
t_cut | the cut to be added |
Definition at line 286 of file BranchAndBoundCallback.h.
|
protectedinherited |
Definition at line 220 of file BranchAndBoundCallback.h.
|
protectedinherited |
Adds a user cut to the relaxation
t_cut | the cut to be added |
Definition at line 292 of file BranchAndBoundCallback.h.
|
protectedinherited |
Definition at line 232 of file BranchAndBoundCallback.h.
|
protectedinherited |
Definition at line 226 of file BranchAndBoundCallback.h.
|
protected |
Definition at line 468 of file KnapsackCover.h.
|
protected |
Definition at line 753 of file KnapsackCover.h.
|
protected |
Definition at line 898 of file KnapsackCover.h.
|
protected |
Definition at line 450 of file KnapsackCover.h.
|
protected |
Definition at line 191 of file KnapsackCover.h.
|
protected |
Definition at line 264 of file KnapsackCover.h.
|
protected |
Definition at line 705 of file KnapsackCover.h.
|
protected |
Definition at line 312 of file KnapsackCover.h.
|
protected |
Definition at line 328 of file KnapsackCover.h.
|
overrideprotectedvirtual |
This method is called at the very beginning of the Branch-and-Bound algorithm
Reimplemented from idol::BranchAndBoundCallback< NodeInfoT >.
Definition at line 245 of file KnapsackCover.h.
|
overrideprotectedvirtual |
Reimplemented from idol::BranchAndBoundCallback< NodeInfoT >.
Definition at line 171 of file KnapsackCover.h.
|
protectedinherited |
Returns the node which is currently explored
Definition at line 280 of file BranchAndBoundCallback.h.
|
overrideprotectedvirtual |
This method is left for the user to write and consists in the main execution block of the callback.
t_event | The event triggering the callback |
Implements idol::BranchAndBoundCallback< NodeInfoT >.
Definition at line 351 of file KnapsackCover.h.
|
protectedinherited |
Returns the original model from which the branch-and-bound algorithm started (i.e., the original non-relaxed model)
Definition at line 268 of file BranchAndBoundCallback.h.
|
protected |
Definition at line 776 of file KnapsackCover.h.
|
protected |
Definition at line 803 of file KnapsackCover.h.
|
protectedinherited |
Returns the current node's model being solved
Definition at line 274 of file BranchAndBoundCallback.h.
|
protected |
Definition at line 381 of file KnapsackCover.h.
|
protected |
Definition at line 486 of file KnapsackCover.h.
|
protected |
Definition at line 689 of file KnapsackCover.h.
|
protectedinherited |
Returns the side effect registry
Definition at line 244 of file BranchAndBoundCallback.h.
|
protected |
Definition at line 830 of file KnapsackCover.h.
|
protected |
Definition at line 680 of file KnapsackCover.h.
|
protected |
Definition at line 671 of file KnapsackCover.h.
|
protectedinherited |
Submits a new proven bound.
The given bound is set as best bound if and only if it improves the current best bound.
t_bound | a proven bound |
Definition at line 256 of file BranchAndBoundCallback.h.
|
protectedinherited |
Submits a new solution to the branch-and-bound tree algorithm.
The solution is checked for validity according to the branch-and-bound tree branching rule and is set as incumbent if and only if it is valid and improves the current best objective.
t_info | a node information storing the solution |
Definition at line 262 of file BranchAndBoundCallback.h.
|
protected |
Definition at line 737 of file KnapsackCover.h.
|
protected |
Definition at line 877 of file KnapsackCover.h.
|
protectedinherited |
Definition at line 238 of file BranchAndBoundCallback.h.
|
protectedinherited |
Definition at line 250 of file BranchAndBoundCallback.h.