GENERAL CONSIDERATIONS
9.7.3 General Considerations
When doing branch and bound, efficiency
considerations usually demand that a
priority queue be used to hold the nodes
that have been generated but not yet
processed.
The heap is often an ideal structure for
implementing a large priority queue.
Branch and bound algorithms may be less
than straightforward to program. Also, it
may not be tractable to calculate precise
estimates of the big-Θ or big-O of a
branch and bound algorithm.
Nevertheless, branch and bound techniques
are well worth considering and using in
many applications, because they have the
potential to greatly reduce the amount of
work involved in computing.
A good bounding function is one that can be
calculated quickly and which has a high
probability of diverting the search toward
the better solutions.
It is something of an "art" to design a
good bounding function. Sometimes it
requires consderable expertise. Consider
the problem of evaluating the worth of a
board position in the game of chess, or of
evaluating the standing of a nation in the
world's economy!