Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is best first search optimal and complete?

I have some doubts regarding best first search algorithm. The pseudocode that I have is the following: best first search pseudocode

First doubt: is it complete? I have read that it is not because it can enter in a dead end, but I don't know when can happen, because if the algorithm chooses a node that has not more neighbours it does not get stucked in it because this node is remove from the open list and in the next iteration the following node of the open list is treated and the search continues.

Second doubt: is it optimal? I thought that if it is visiting the nodes closer to the goal along the search process, then the solution would be the shortest, but it is not in that way and I do not know the reason for that and therefore, the reason that makes this algorithm not optimal.

The heuristic I was using is the straight line distance between two points.

Thanks for your help!!

like image 794
Ivan Sanchez Avatar asked Nov 15 '18 02:11

Ivan Sanchez


People also ask

Is best first search optimal?

The generic best-first search algorithm selects a node for expansion according to an evaluation function. Greedy best-first search expands nodes with minimal h(n). It is not optimal, but is often efficient. A* search expands nodes with minimal f(n)=g(n)+h(n).

Which search algorithm is complete and optimal?

Answer: BFS is complete and optimal, while DFS is not guaranteed to halt when there are loops.

Why greedy best first search is not complete?

In summary, greedy BFS is not complete, not optimal, has a time complexity of O(bm) and a space complexity which can be polynomial. A* is complete, optimal, and it has a time and space complexity of O(bm). So, in general, A* uses more memory than greedy BFS. A* becomes impractical when the search space is huge.

Is depth first search complete and optimal?

Completeness: DFS is complete if the search tree is finite, meaning for a given finite search tree, DFS will come up with a solution if it exists. Optimality: DFS is not optimal, meaning the number of steps in reaching the solution, or the cost spent in reaching it is high.


1 Answers

Of course, if heuristic function underestimates the costs, best first search is not optimal. In fact, even if your heuristic function is exactly right, best first search is never guaranteed to be optimal. Here is a counter example. Consider the following graph:

Example graph The green numbers are the actual costs and the red numbers are the exact heuristic function. Let's try to find a path from node S to node G. Best first search would give you S->A->G following the heuristic function. However, if you look at the graph closer, you would see that the path S->B->C->G has lower cost of 5 instead of 6. Thus, this is an example of best first search performing suboptimal under perfect heuristic function.

like image 75
Shuto Araki Avatar answered Sep 17 '22 05:09

Shuto Araki