title: Is the greedy best-first search algorithm different from the best-first search algorithm?
body: <p>Is the <em>greedy</em> best-first search algorithm different from the best-first search algorithm?</p>
  
  <p>The <a href="http://en.wikipedia.org/wiki/Best-first_search" rel="noreferrer">wiki page</a> has a separate paragraph about Greedy BFS but it's a little unclear.</p>
  
  <p>My understanding is that Greedy BFS is just BFS where the "best node from OPEN" in wikipedia's algorithm is a heuristic function one calculates for a node. So implementing this:</p>
  
  <pre><code>OPEN = [initial state]
  CLOSED = []
  while OPEN is not empty
  do
   1. Remove the best node from OPEN, call it n, add it to CLOSED.
   2. If n is the goal state, backtrace path to n (through recorded parents) and return path.
   3. Create n's successors.
   4. For each successor do:
     a. If it is not in CLOSED: evaluate it, add it to OPEN, and record its parent.
     b. Otherwise: change recorded parent if this new path is better than previous one.
  done
  </code></pre>
  
  <p>with "best node from OPEN" being a heuristic function estimating how close the node is to the goal, is actually Greedy BFS. Am I right?</p>
  
  <p><em>EDIT:</em> Comment on Anonymouse's answer:</p>
  
  <p>So essentially a greedy BFS doesn't need an "OPEN list" and should base its decisions only on the current node? Is this algorithm GBFS:</p>
  
  <pre><code>1. Set START as CURRENT node
  2. Add CURRENT to Path [and optinally, to CLOSED?]
  3. If CURRENT is GOAL, exit
  4. Evaluate CURRENT's successors
  5. Set BEST successor as CURRENT and go to 2.
  </code></pre>