Greedy Best First Search是否使用队列或堆栈?

时间:2012-11-16 21:12:58

标签: java algorithm stack queue greedy

我只是想尝试实现最好的第一次搜索,我不确定该算法是否有任何LIFO或FIFO属性。如果是的话我应该使用哪一个?我需要使用它吗?

2 个答案:

答案 0 :(得分:5)

有关此伪代码,请参阅http://en.wikipedia.org/wiki/Best-first_search#Algorithm_.5B3.5D

OPEN = [initial state]
while OPEN is not empty or until a goal is found
do
 1. Remove the best node from OPEN, call it n.
 2. If n is the goal state, backtrace path to n (through recorded parents) and return path.
 3. Create n's successors.
 4. Evaluate each successor, add it to OPEN, and record its parent.
done

步骤1说“删除最佳节点” - 这意味着使用Priority Queue

答案 1 :(得分:-2)

它使用队列,所以你应该使用FIFO。