|
Camargue
|

Public Types | |
| enum | Dir : int { Down = 0, Up = 1 } |
| enum | Status { NeedsCut, NeedsBranch, NeedsPrice, NeedsRecover, Pruned, Done } |
| using | Split = std::array< BranchNode, 2 > |
| Alias declaration for returning two split child problems. | |
Public Member Functions | |
| BranchNode () | |
| Construct a root node. | |
| BranchNode (EndPts ends_, Dir direction_, const BranchNode &parent_, double tourlen_, double estimate_) | |
| Construct a child node. | |
| BranchNode (BranchNode &&B) noexcept | |
| BranchNode & | operator= (BranchNode &&B) noexcept |
| bool | is_root () const |
| Is this the root problem. | |
| bool | visited () const |
| Has the problem been processed. | |
Public Attributes | |
| EndPts | ends |
| The endpoints of the branch edge. | |
| Dir | direction |
| Down branch or up branch. | |
| Status | stat |
| The type of processing required by the node. | |
| const BranchNode * | parent |
| int | depth |
| Search tree depth of this node. | |
| double | tourlen |
| Estimated best tour length for this node. | |
| LP::Basis::Ptr | price_basis |
| A starting basis for if Status is NeedsPrice or NeedsRecover. | |
| double | estimate |
| The objective value estimate from edge selection. | |
Node selection comparators. | |
These functions can be used to rank BranchNode objects so as to implement a node selection rule.
| |
| using | Pref = decltype(&tour_worse) |
| static bool | tour_worse (const std::list< BranchNode >::iterator &A, const std::list< BranchNode >::iterator &B) |
Returns true if A has a worse tour than B. More... | |
| static bool | bound_worse (const std::list< BranchNode >::iterator &A, const std::list< BranchNode >::iterator &B) |
Returns true if A has a worse (higher) SB estimate than B. More... | |
|
static |
Returns true if A has a worse (higher) SB estimate than B.
Comparator where A is worse than B if A is estimated to have a higher objective value lower bound.
Ties are broken by depth and estimated tour length, in that order.
A and B are reversed tied because we prefer greater values of depth but lesser values of tour and estimate.
|
static |
Returns true if A has a worse tour than B.
Comparator where A is worse than B if A is estimated to have a longer best tour.
Ties are broken by depth and then strong branch estimate, in that order.
A and B are reversed tied because we prefer greater values of depth but lesser values of tour and estimate.
1.8.11