Uninformed Search

Reading

Terminology



Examples of Problem Formulation

Problem-formulation is the most important step in creating a successful search application. How to choose an appropriate level of abstraction for states and operators?

Route planning

Eight-puzzle

Map coloring

Cryptarithmetic

Missionaries and cannibals

Water jug puzzle



Uninformed Search Strategies

No information about how far we are from a goal state.

Different strategies answer the following questions in different ways:

General search algorithm:

SEARCH(problem, strategy) { 

   create a search tree with the initial state at the root 

   repeat { 

      if there are no candidates for expansion 
         return failure 

      choose a leaf node for expansion according to strategy 

      if the node represents a goal state 
         return solution 
      else 
         generate successors and add them to the candidate list 
   } 
}

Keep in mind:

Breadth-first search

Uniform-cost search

Nondeterministic search

Depth-first search

Depth-limited search

Iterative-deepening search

Bidirectional search

Summary of time and space complexities of search strategies is given on page 81 of SR #2



Avoiding Repeated States

SEARCH(problem, strategy) { 

   create a search tree with the initial state at the root
   create an empty closed list

   repeat {

     if there are no candidates for expansion 
        return failure 

     choose a leaf node for expansion according to strategy 

     if this node's state is already in closed list
        discard node and continue
     else if the node represents a goal state 
        return solution 
     else
        add node's state to closed list
        generate successors and add them to the candidate list 

   } 
}