bnb
The tree searches of branch-and-bound, sequential and parallel, and their choice by scheme.
Header |
Description |
|---|---|
Tree searches of PBeFS, i.e., the best-first searches with an incumbent (Branch-and-Bound) of a problem satisfying the concept BranchAndBound, save the one that needs MPI, MPIBranchAndBound.h. |
Header |
Description |
|---|---|
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. |
|
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. |
|
The parallel B&B by synchronous rounds |
|
The parallel B&B by work stealing |
|
The parallel B&B on the MultiQueue of ADS |
|
The parallel B&B by a split of the tree after a sampling |
|
The master-worker B&B on a farm with feedback |
|
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]. |
Header |
Description |
|---|---|
Choice of the Branch-and-Bound (B&B) by its scheme: BBScheme names the searches of the core of PBeFS, bb_scheme() reads it from its name (e.g., from a file of parameters), and parallel_branch_and_bound() runs the search of the scheme of the options on a runtime, so that a caller chooses the search by a value rather than by a type. |
Header |
Description |
|---|---|
Struct template BasicKnapsack, a 0-1 knapsack problem that implements the BranchAndBound concept [see BranchAndBound.h] with values of a given type, and Knapsack, the one with values of type double, with the random instances of the classes of Pisinger and the dynamic program that gives their optimal value; the tests and the benchmark of the Branch-and-Bound share it. |
Documentation
Page |
Description |
|---|---|
The incumbent, the bounds, the pruning and the selection rules, and A* as a special case. |
|
The shared, distributed, master-worker, deterministic, SelfSplit, stealing and MultiQueue schemes: correctness, termination and determinism. |
|
The extension of the searches to branch-and-bound: the concept, the sequential and the parallel searches, the reoptimization. |