Generally, in search we want to find the move that results in the lowest cost (or highest,depending). Branch and bound techniques rely on the idea that we can partition our choices into sets using some domain knowledge, and ignore a set when we can determinethat the optimal element cannot be in it. In this way we can avoid examining mostelements of most sets. This can be done if we know that a higher bound on set X is lower than a lower bound on set Y (in which case Y can be pruned).
Example: Travelling Salesman Problem.
We decompose our set of choices into a set of sets, in each one of which we've taken a different route out of the current city. Wecontinue to decompose until we have complete paths in the graph. If while we'redecomposing the sets, we find two paths that lead to the same node, we can eliminate themore expensive one.Best-first B&B is a variant in which we can give a lower bound on a set of possiblesolutions. In every cycle, we branch on the class with the least lower bound. When asingleton is selected we can stop.Depth-first B&B selects the most recently generated set; it produces DFS behavior butsaves memory.Some types of branch-and-bound algorithms: A
, alpha-beta, SSS
Expand the node that has the best evaluation according to the heuristic function. AnOPEN list contains states that haven't been visited; a CLOSED list contains those thathave, to prevent loops. This approach doesn't necessarily find the shortest path.(When theheuristicis just the cost function
, this is blind search. When it's just
, theestimated cost to the goal, this is steepest ascent (I think -- POD). When it's
g + h'
, this isA
Local search= use single current state and move to neighboring states.Advantages:
– Use very little memory – Find often reasonable solutions in large or infinite state spaces.
Are also useful for pure optimization problems.
– Find best state according to some
. – e.g. survival of the fittest as a metaphor for optimization.