1 of 51

Solving problems by searching

1

How an agent can find a sequence of actions that will eventually achieve its goal

2 of 51

Problem-solving agents

2

3 of 51

Example: Romania

3

  • On holiday in Romania; currently in Arad.
  • Flight leaves tomorrow from Bucharest
  • Formulate goal:
    • be in Bucharest
  • Formulate problem:
    • states: various cities
    • actions: drive between cities
  • Find solution:
    • sequence of cities, e.g., Arad, Sibiu, Fagaras, Bucharest

4 of 51

Example: Romania

4

5 of 51

Graphs

  • Notation
  • Common graph theory problems
  • Common algorithms
  • Questions?

6 of 51

Problem types

  • Deterministic, fully observable 🡪 single-state problem
    • Agent knows exactly which state it will be in; solution is a sequence
  • Non-observable 🡪 sensorless problem (conformant problem)
    • Agent may have no idea where it is; solution is a sequence
  • Nondeterministic and/or partially observable 🡪 contingency problem
    • percepts provide new information about current state
    • often interleave} search, execution
  • Unknown state space 🡪 exploration problem

7 of 51

Example: vacuum world

  • Single-state, start in #5. Solution?

8 of 51

Example: vacuum world

  • Single-state, start in #5. �Solution? [Right, Suck]

  • Sensorless, start in �{1,2,3,4,5,6,7,8} e.g., �Right goes to {2,4,6,8} �Solution?

9 of 51

Example: vacuum world

  • Sensorless, start in �{1,2,3,4,5,6,7,8} e.g., �Right goes to {2,4,6,8} �Solution?[Right,Suck,Left,Suck]

  • Contingency

    • Partially observable: location, dirt at current location.
    • Percept: [L, Clean], i.e., start in #5 or #7�Solution?

10 of 51

Example: vacuum world

  • Sensorless, start in �{1,2,3,4,5,6,7,8} e.g., �Right goes to {2,4,6,8} �Solution?[Right,Suck,Left,Suck]

  • Contingency
    • Nondeterministic: Suck may �dirty a clean carpet
    • Partially observable: location, dirt at current location.
    • Percept: [L, Clean], i.e., start in #5 or #7�Solution? [Right, if dirt then Suck]

11 of 51

Single-state problem formulation

A problem is defined by four items:

  1. initial state e.g., "at Arad"
  2. actions or successor function S(x) = set of action–state pairs
    • e.g., S(Arad) = {<Arad 🡪 Zerind, Zerind>, … }
  3. goal test, can be
    • explicit, e.g., x = "at Bucharest"
    • implicit, e.g., Checkmate(x)
  4. path cost (additive)
    • e.g., sum of distances, number of actions executed, etc.
    • c(x,a,y) is the step cost, assumed to be ≥ 0

  • A solution is a sequence of actions leading from the initial state to a goal state

12 of 51

Selecting a state space

  • Real world is absurdly complex

🡪 state space must be abstracted for problem solving

  • (Abstract) state = set of real states
  • (Abstract) action = complex combination of real actions
    • e.g., "Arad 🡪 Zerind" represents a complex set of possible routes, detours, rest stops, etc.
  • For guaranteed realizability, any real state "in Arad“ must get to some real state "in Zerind"
  • (Abstract) solution =
    • set of real paths that are solutions in the real world
  • Each abstract action should be "easier" than the original problem

13 of 51

Vacuum world state space graph

  • states?
  • actions?
  • goal test?
  • path cost?

14 of 51

Vacuum world state space graph

  • states? integer dirt and robot location
  • actions? Left, Right, Suck
  • goal test? no dirt at all locations
  • path cost? 1 per action

15 of 51

Example: The 8-puzzle

  • states?
  • actions?
  • goal test?
  • path cost?

Blind Search

15

16 of 51

Example: The 8-puzzle

  • states? locations of tiles
  • actions? move blank left, right, up, down
  • goal test? = goal state (given)
  • path cost? 1 per move�

[Note: optimal solution of n-Puzzle family is NP-hard]�

Blind Search

16

17 of 51

Implementation: states vs. nodes

  • A state is a (representation of) a physical configuration
  • A node is a data structure constituting part of a search tree includes state, parent node, action, path cost g(x), depth

  • The Expand function creates new nodes, filling in the various fields and using the SuccessorFn of the problem to create the corresponding states.�

Blind Search

17

18 of 51

Search strategies

  • A search strategy is defined by picking the order of node expansion
  • Strategies are evaluated along the following dimensions:
    • completeness: does it always find a solution if one exists?
    • time complexity: number of nodes generated
    • space complexity: maximum number of nodes in memory
    • optimality: does it always find a least-cost solution?�
  • Time and space complexity are measured in terms of
    • b: maximum branching factor of the search tree
    • d: depth of the least-cost solution
    • m: maximum depth of the state space (may be ∞)�

Blind Search

18

19 of 51

Uninformed search strategies

  • Uninformed search strategies use only the information available in the problem definition
  • Breadth-first search
  • Uniform-cost search
  • Depth-first search
  • Depth-limited search
  • Iterative deepening search

Blind Search

19

20 of 51

Breadth-first search

  • Expand shallowest unexpanded node�
  • Implementation:
    • fringe is a FIFO queue, i.e., new successors go at end�

Blind Search

20

21 of 51

Breadth-first search

  • Expand shallowest unexpanded node�
  • Implementation:
    • fringe is a FIFO queue, i.e., new successors go at end�

Blind Search

21

22 of 51

Breadth-first search

  • Expand shallowest unexpanded node�
  • Implementation:
    • fringe is a FIFO queue, i.e., new successors go at end�

Blind Search

22

23 of 51

Breadth-first search

  • Expand shallowest unexpanded node�
  • Implementation:
    • fringe is a FIFO queue, i.e., new successors go at end�

Blind Search

23

24 of 51

Properties of breadth-first search

  • Complete? Yes (if b is finite)
  • Time? 1+b+b2+b3+… +bd = O(bd+1)
  • Space? O(bd+1) (keeps every node in memory)
  • Optimal? Yes (if cost = 1 per step)

  • Space is the bigger problem (more than time)�

Blind Search

24

25 of 51

Properties of breadth-first search

Blind Search

25

26 of 51

Uniform-cost search

  • Expand least-cost unexpanded node
  • Implementation:
    • fringe = queue ordered by path cost

Blind Search

26

27 of 51

Uniform-cost search

  • Equivalent to breadth-first if step costs all equal
  • Complete? Yes, if step cost ≥ ε
  • Time? # of nodes with g ≤ cost of optimal solution, O(bceiling(C*/ ε)) where C* is the cost of the optimal solution
  • Space? # of nodes with g ≤ cost of optimal solution, O(bceiling(C*/ ε))
  • Optimal? Yes – nodes expanded in increasing order of g(n)

Blind Search

27

28 of 51

Depth-first search

  • Expand deepest unexpanded node
  • Implementation:
    • fringe = LIFO queue, i.e., put successors at front

Blind Search

28

29 of 51

Depth-first search

  • Expand deepest unexpanded node
  • Implementation:
    • fringe = LIFO queue, i.e., put successors at front

Blind Search

29

30 of 51

Depth-first search

  • Expand deepest unexpanded node
  • Implementation:
    • fringe = LIFO queue, i.e., put successors at front�

Blind Search

30

31 of 51

Depth-first search

  • Expand deepest unexpanded node
  • Implementation:
    • fringe = LIFO queue, i.e., put successors at front�

Blind Search

31

32 of 51

Depth-first search

  • Expand deepest unexpanded node
  • Implementation:
    • fringe = LIFO queue, i.e., put successors at front�

Blind Search

32

33 of 51

Depth-first search

  • Expand deepest unexpanded node
  • Implementation:
    • fringe = LIFO queue, i.e., put successors at front�

Blind Search

33

34 of 51

Depth-first search

  • Expand deepest unexpanded node
  • Implementation:
    • fringe = LIFO queue, i.e., put successors at front�

Blind Search

34

35 of 51

Depth-first search

  • Expand deepest unexpanded node
  • Implementation:
    • fringe = LIFO queue, i.e., put successors at front�

Blind Search

35

36 of 51

Depth-first search

  • Expand deepest unexpanded node
  • Implementation:
    • fringe = LIFO queue, i.e., put successors at front�

Blind Search

36

37 of 51

Depth-first search

  • Expand deepest unexpanded node
  • Implementation:
    • fringe = LIFO queue, i.e., put successors at front�

Blind Search

37

38 of 51

Depth-first search

  • Expand deepest unexpanded node
  • Implementation:
    • fringe = LIFO queue, i.e., put successors at front�

Blind Search

38

39 of 51

Depth-first search

  • Expand deepest unexpanded node
  • Implementation:
    • fringe = LIFO queue, i.e., put successors at front�

Blind Search

39

40 of 51

Properties of depth-first search

  • Complete? No: infinite-depth, loops
    • Modify to avoid repeated states along path

🡪 complete in finite spaces

  • Time? O(bm): terrible if m is much larger than d
    • if solutions are dense, may be faster than BFS
  • Space? O(bm), i.e., linear space!
  • Optimal? No�

Blind Search

40

41 of 51

Depth-limited search

= depth-first search with depth limit l,

i.e., nodes at depth l have no successors�

Blind Search

41

42 of 51

Iterative deepening search

Blind Search

42

43 of 51

Iterative deepening search l =0

Blind Search

43

44 of 51

Iterative deepening search l =1

Blind Search

44

45 of 51

Iterative deepening search l =2

Blind Search

45

46 of 51

Iterative deepening search l =3

Blind Search

46

47 of 51

Iterative deepening search

  • Nodes generated in a DLS to d with branching factor b:

NDLS = b0 + b1 + b2 + … + bd-2 + bd-1 + bd

  • Nodes generated in an IDS to d with branching factor b:

NIDS = (d+1)b0 + d b1 + (d-1)b2 + … + 3bd-2 +2bd-1 + 1bd

  • For b = 10, d = 5,
    • NDLS = 1 + 10 + 100 + 1,000 + 10,000 + 100,000 = 111,111�
    • NIDS = 6 + 50 + 400 + 3,000 + 20,000 + 100,000 = 123,456

  • Overhead = (123,456 - 111,111)/111,111 = 11%

Blind Search

47

48 of 51

Properties of iterative deepening search

  • Complete? Yes
  • Time? O(bd)
  • Space? O(bd)
  • Optimal? Yes, if step cost = 1

Blind Search

48

49 of 51

Summary of algorithms

+1 wrong -> 1+

Blind Search

49

50 of 51

Repeated states

  • Failure to detect repeated states can turn a linear problem into an exponential one!�

Blind Search

50

51 of 51

Summary

  • Problem formulation usually requires abstracting away real-world details to define a state space that can feasibly be explored

  • Variety of uninformed search strategies

  • Iterative deepening search uses only linear space and not much more time than other uninformed algorithms�

Blind Search

51