Put the start node on list OPEN (unexpanded nodes). Set cost of the start node to 0. IF start node is a goal node, show solution. while searching for a solution IF list OPEN is empty, no solution exists, quit. Remove node n from list OPEN that has the lowest cost and place it on list CLOSED (expanded nodes). IF node n is a goal node, show solution. Expand node n. Calculate the cost of each successor of n. Place all successors of node n at end of list OPEN. end while