|
Camargue
|
Augment-Branch-Cut solution. More...
Namespaces | |
| SB | |
| Constants related to branch selection. | |
Classes | |
| class | BaseBrancher |
| Abstract base class for implementing a branching node selection rule. More... | |
| struct | BranchNode |
| class | BranchTourFind |
| Compute branch tours for estimation and instatement, managing their edges. More... | |
| class | DFSbrancher |
| Depth-first search branching. More... | |
| class | Executor |
| class | InterBrancher |
| Interleaved best-estimate and best-first search branching. More... | |
| class | QprefBrancher |
| Class template for branching with priority queue via some preference rule. More... | |
| struct | ScoreTuple |
Typedefs | |
| using | TourBrancher = QprefBrancher< BranchNode::tour_worse > |
| Alias declaration for "best tour" branching. More... | |
| using | BoundBrancher = QprefBrancher< BranchNode::bound_worse > |
| Alias declaration for best-first search branching. More... | |
| using | BranchHistory = std::list< BranchNode > |
| using | EndsDir = std::pair< EndPts, BranchNode::Dir > |
| Alias declaration for EndPts and branching direction. | |
Functions | |
| BranchNode::Dir | dir_from_int (int entry) |
Turn a 0-1 value entry into a BranchNode::Dir. | |
| std::string | bnode_brief (const BranchNode &B) |
A concise "label" for the BranchNode B. | |
| std::ostream & | operator<< (std::ostream &os, const BranchNode::Dir &dir) |
| std::ostream & | operator<< (std::ostream &os, const BranchNode &B) |
| int | large_len (int ncount, const std::vector< Graph::Edge > &edges) |
Return a "large" edge length relative to the capacities in ecap. | |
| double | var_score (double mult, double v0, double v1) |
| Rank a branching variable in terms of its down and up estimates. More... | |
| std::vector< int > | length_weighted_cands (const std::vector< Graph::Edge > &edges, const std::vector< int > &indices, const std::vector< double > &x, const int num_return) |
| Get a list of candidate branch edges using fractional long edge branching. | |
| std::ostream & | operator<< (std::ostream &os, const ScoreTuple &T) |
| std::vector< ScoreTuple > | ranked_cands (const std::vector< int > &cand_inds, std::vector< LP::Estimate > &down_est, std::vector< LP::Estimate > &up_est, const std::vector< Graph::Edge > &edges, std::vector< LP::Basis > &contra_bases, double mult, double ub, int num_return) |
| Produce a list of fixed max size containing ranked scored branching edges. | |
| ostream & | operator<< (ostream &os, const BranchNode::Dir &dir) |
| ostream & | operator<< (ostream &os, const BranchNode &B) |
| int | large_len (int ncount, const vector< Graph::Edge > &edges) |
| The intended use is that the negative return value of this function should be assigned as the edge weight to fix edges in a branching tour. More... | |
| vector< int > | length_weighted_cands (const vector< Graph::Edge > &edges, const vector< int > &indices, const vector< double > &x, const int num_return) |
| ostream & | operator<< (ostream &os, const ScoreTuple &T) |
| vector< ScoreTuple > | ranked_cands (const vector< int > &cand_inds, vector< LP::Estimate > &down_est, vector< LP::Estimate > &up_est, const vector< Graph::Edge > &edges, vector< LP::Basis > &contra_bases, double mult, double ub, int num_return) |
Variables | |
| constexpr int | IntMax = std::numeric_limits<int>::max() |
| constexpr double | DoubleMax = std::numeric_limits<double>::max() |
| constexpr int | Int32Max = 2147483647 |
Augment-Branch-Cut solution.
| using CMR::ABC::BoundBrancher = typedef QprefBrancher<BranchNode::bound_worse> |
Alias declaration for best-first search branching.
| using CMR::ABC::TourBrancher = typedef QprefBrancher<BranchNode::tour_worse> |
Alias declaration for "best tour" branching.
| int CMR::ABC::large_len | ( | int | ncount, |
| const vector< Graph::Edge > & | edges | ||
| ) |
The intended use is that the negative return value of this function should be assigned as the edge weight to fix edges in a branching tour.
ncount nodes and edge weights ecap. | vector<int> CMR::ABC::length_weighted_cands | ( | const vector< Graph::Edge > & | edges, |
| const vector< int > & | indices, | ||
| const vector< double > & | x, | ||
| const int | num_return | ||
| ) |
| [in] | edges | the list of Edges in the core lp. |
| [in] | indices | the indices of fractional basic variables from edges |
| [in] | x | the lp solution |
| [in] | num_return | the maximum number of candidate indices returned. |
| vector<ScoreTuple> CMR::ABC::ranked_cands | ( | const vector< int > & | cand_inds, |
| vector< LP::Estimate > & | down_est, | ||
| vector< LP::Estimate > & | up_est, | ||
| const vector< Graph::Edge > & | edges, | ||
| vector< LP::Basis > & | contra_bases, | ||
| double | mult, | ||
| double | ub, | ||
| int | num_return | ||
| ) |
| [in] | cand_inds | the candidate indices to be ranked. |
| [in] | down_est | estimates for setting corresponding entry of cand_inds to zero. |
| [in] | up_est | like down_est but for setting to one. |
| [in] | mult | the multiplier used to generate the variable score. |
| [in] | ub | current upperbound for the problem. If a variable has down or up estimate bigger than this that is a hint the LP was infeasible or can be pruned by lower bound. |
| [in] | num_return | return at most this many ranked candidates. |
cand_inds.size() == down_est.size() == up_est.size() | double CMR::ABC::var_score | ( | double | mult, |
| double | v0, | ||
| double | v1 | ||
| ) |
Rank a branching variable in terms of its down and up estimates.
For some estimation metric, evaluate a priority score for branching on a given variable.
| [in] | v0 | the estimate obtained for fixing a variable to zero |
| [in] | v1 | the estimate obtained for fixing the same variable to one |
| [in] | mult | the weighting factor. |
is mult.
1.8.11