Searches
headers of the layer bnb
Header file for the best-first search with an incumbent, i.e., for Branch-and-Bound (B&B): the concept BranchAndBound of a problem, its options and its Solution, the queue of the open nodes, and the sequential search BranchAndBoundSearch.
Class |
Description |
|---|---|
The outcome of the evaluation of a node, with values of type V |
|
A leaf of the tree explored, or a node to start a search from |
|
What the B&B needs to know of the type V of its values |
|
The options of a B&B with values of type V |
|
The counters of a B&B |
|
The outcome of a B&B |
|
The open nodes of a B&B, ordered by a key |
|
The sequential best-first search with an incumbent |
Header file for the parallel best-first searches with an incumbent, i.e., the parallel Branch-and-Bound (B&B) on an executor of ADS (the pool of C++ threads, OpenMP or FastFlow): SharedBranchAndBound, whose workers extract the nodes from one queue as the workers of SPA* do, and DistributedBranchAndBound, whose workers have a queue each and send the children to their owners as the workers of HDA* do.
Class |
Description |
|---|---|
The options of the parallel B&B with values of type V |
|
The incumbent shared by the workers of a parallel B&B |
|
The parallel B&B with one queue shared by the workers |
|
The parallel B&B with a queue per worker and the children sent to their owners |
bnb/DeterministicBranchAndBound.h
Header file for DeterministicBranchAndBound, the parallel Branch-and-Bound (B&B) by synchronous rounds, whose outcome does not depend on the timing of the workers.
Class |
Description |
|---|---|
The parallel B&B by synchronous rounds |
Header file for StealingBranchAndBound, the parallel Branch-and-Bound (B&B) whose workers keep the children they generate in a queue of their own and take about half of the queue of another worker only when theirs is empty, i.e., by work stealing.
Class |
Description |
|---|---|
The parallel B&B by work stealing |
bnb/MultiQueueBranchAndBound.h
Header file for MultiQueueBranchAndBound, the parallel Branch-and-Bound (B&B) whose workers share the open nodes in the MultiQueue of ADS, a relaxed priority queue of $ 2 p $ sequential queues each under its own lock, as the workers of MQAStar do.
Class |
Description |
|---|---|
The parallel B&B on the MultiQueue of ADS |
Header file for SelfSplitBranchAndBound, the parallel Branch-and-Bound (B&B) whose workers share nothing but the nodes of a first sampling of the tree, as in the SelfSplit of Fischetti, Monaci and Salvagnin (2014).
Class |
Description |
|---|---|
The parallel B&B by a split of the tree after a sampling |
Header file for FarmBranchAndBound, the master-worker Branch-and-Bound (B&B) on a farm with feedback on an executor of ADS: the master holds the queue of the open nodes, and the workers evaluate and branch the nodes it sends.
Class |
Description |
|---|---|
The master-worker B&B on a farm with feedback |
Header file for MPIBranchAndBound, the distributed Branch-and-Bound (B&B) with one MPI process per worker: each process has a queue of open nodes and sends the children to their owners, as DistributedBranchAndBound does with threads [see ParallelBranchAndBound.h] and HDAStarMPI with the states of A* [see HDAStarMPI.h].
Class |
Description |
|---|---|
The distributed B&B with one MPI process per worker |