|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Global incumbent manager for branch and bound. More...
#include <Branch_And_Bound.H>
Public Types | |
| using | Solution_Type = Solution |
| using | Objective_Type = typename Solution::Objective_Type |
| using | Objective_Policy = ObjectivePolicy |
| using | Compare_Type = PreferBetterObjective< Solution, ObjectivePolicy > |
Public Member Functions | |
| ObjectiveIncumbent ()=default | |
| ObjectiveIncumbent (ObjectivePolicy objective) | |
| bool | has_value () const noexcept |
| const Solution & | get () const |
| const Objective_Type & | best_value () const |
| const ObjectivePolicy & | objective () const noexcept |
| bool | consider (const Solution &solution) |
| bool | consider (Solution &&solution) |
| bool | can_improve (const Objective_Type &bound) const noexcept |
Private Attributes | |
| ObjectivePolicy | objective_ = {} |
| BestSolution< Solution, Compare_Type > | best_ |
Global incumbent manager for branch and bound.
Definition at line 145 of file Branch_And_Bound.H.
| using Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::Compare_Type = PreferBetterObjective<Solution, ObjectivePolicy> |
Definition at line 151 of file Branch_And_Bound.H.
| using Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::Objective_Policy = ObjectivePolicy |
Definition at line 150 of file Branch_And_Bound.H.
| using Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::Objective_Type = typename Solution::Objective_Type |
Definition at line 149 of file Branch_And_Bound.H.
| using Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::Solution_Type = Solution |
Definition at line 148 of file Branch_And_Bound.H.
|
default |
|
inlineexplicit |
Definition at line 155 of file Branch_And_Bound.H.
|
inline |
Definition at line 171 of file Branch_And_Bound.H.
References Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::get().
Referenced by Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::can_improve().
|
inlinenoexcept |
Definition at line 191 of file Branch_And_Bound.H.
References Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::best_value(), Aleph::divide_and_conquer_partition_dp(), Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::has_value(), and Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::objective_.
Referenced by Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::dfs(), Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::dfs_visited(), Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::process_best_first_candidate(), and Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::search_best_first().
|
inline |
Definition at line 181 of file Branch_And_Bound.H.
References Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::best_.
Referenced by Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::handle_complete_solution().
|
inline |
Definition at line 186 of file Branch_And_Bound.H.
References Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::best_.
|
inline |
Definition at line 166 of file Branch_And_Bound.H.
References Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::best_.
Referenced by Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::best_value().
|
inlinenoexcept |
Definition at line 161 of file Branch_And_Bound.H.
References Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::best_.
Referenced by Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::can_improve(), Aleph::BranchAndBoundResult< Solution, ObjectivePolicy >::found_solution(), and Aleph::Branch_And_Bound< Domain, ObjectivePolicy >::search_best_first().
|
inlinenoexcept |
Definition at line 176 of file Branch_And_Bound.H.
References Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::objective_.
|
private |
Definition at line 198 of file Branch_And_Bound.H.
Referenced by Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::consider(), Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::consider(), Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::get(), and Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::has_value().
|
private |
Definition at line 197 of file Branch_And_Bound.H.
Referenced by Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::can_improve(), and Aleph::ObjectiveIncumbent< Solution, ObjectivePolicy >::objective().