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 tie
d 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 tie
d because we prefer greater values of depth but lesser values of tour and estimate.