Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between "hill climbing" and "branch-and-bound" search algorithms?

Hill-climbing search and branch-and-bound are two heuristic search algorithms used in artificial intelligence. What is the difference between these two approaches?

like image 242
user1599964 Avatar asked Jan 30 '13 17:01

user1599964


1 Answers

Hill-climbing searches work by starting off with an initial guess of a solution, then iteratively making local changes to it until either the solution is found or the heuristic gets stuck in a local maximum. There are many ways to try to avoid getting stuck in local maxima, such as running many searches in parallel, or probabilistically choosing the successor state, etc. In many cases, hill-climbing algorithms will rapidly converge on the correct answer. However, none of these approaches are guaranteed to find the optimal solution.

Branch-and-bound solutions work by cutting the search space into pieces, exploring one piece, and then attempting to rule out other parts of the search space based on the information gained during each search. They are guaranteed to find the optimal answer eventually, though doing so might take a long time. For many problems, branch-and-bound based algorithms work quite well, since a small amount of information can rapidly shrink the search space.

In short, hill-climbing isn't guaranteed to find the right answer, but often runs very quickly and gives good approximations. Branch-and-bound always finds the right answer, but might take a while to do so.

Hope this helps!

like image 163
templatetypedef Avatar answered Sep 29 '22 07:09

templatetypedef