PBeFS
Parallel Best-First Search
Loading...
Searching...
No Matches
BBSolution< Node, V > Struct Template Reference

the outcome of a B&B More...

#include <PBeFS/bnb/BranchAndBound.h>

Public Member Functions

bool feasible (void) const noexcept
 true if a feasible value is known

Public Attributes

BBStatus status = BBStatus::infeasible
 how the search ended
std::optional< Node > node
 the incumbent node
V value = BBValueTraits< V >::none()
 its value
V bound = BBValueTraits< V >::none()
 the bound
V gap = BBValueTraits< V >::infinity()
 the gap
BBStats stats
 the counters
std::vector< BBLeaf< Node, V > > frontier
 the leaves, if kept

Detailed Description

template<class Node, class V = double>
struct PBeFS_di_unipi_it::BBSolution< Node, V >

the outcome of a B&B

value is the incumbent value and bound a bound on the optimum, both in the sense of the problem, and the gap, value minus bound in absolute value, is valid whatever the status; value is none() of BBValueTraits if no feasible value is known, and node is the incumbent node, empty if no feasible node was found (even when an initial incumbent value was given).

With BBOptions::keep_frontier, frontier holds the leaves of the tree explored, in no particular order: the nodes pruned, feasible or infeasible, and those left open by a limit. Their subtrees cover the subtrees of the nodes the search started from, so that a search started from them [see BranchAndBoundSearch::solve()] explores the same region, e.g., after a change of the data that leaves the branching valid.

Member Function Documentation

◆ feasible()

template<class Node, class V = double>
bool feasible ( void ) const
inlinenodiscardnoexcept

true if a feasible value is known

Member Data Documentation

◆ bound

template<class Node, class V = double>
V bound = BBValueTraits< V >::none()

the bound

◆ frontier

template<class Node, class V = double>
std::vector< BBLeaf< Node , V > > frontier

the leaves, if kept

◆ gap

template<class Node, class V = double>
V gap = BBValueTraits< V >::infinity()

the gap

◆ node

template<class Node, class V = double>
std::optional< Node > node

the incumbent node

◆ stats

template<class Node, class V = double>
BBStats stats

the counters

◆ status

template<class Node, class V = double>
BBStatus status = BBStatus::infeasible

how the search ended

◆ value

template<class Node, class V = double>
V value = BBValueTraits< V >::none()

its value


The documentation for this struct was generated from the following file: