start from the initial state while there are states to explore: estimate how promising each state is choose the state with the best score if it is the goal: return the solution expand the next states return failure