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!