Solving Problems by Searching

26
1 Solving Problems by Searching

description

Solving Problems by Searching. Terminology. State State Space Goal Action Cost State Change Function Problem-Solving Agent State-Space Search. Formal State-Space Model. Problem = (S, s, A, f, g, c). S = state space s = initial state A = actions - PowerPoint PPT Presentation

Transcript of Solving Problems by Searching

Page 1: Solving Problems by Searching

1

Solving Problems by Searching

Page 2: Solving Problems by Searching

2

Terminology

• State• State Space• Goal• Action• Cost• State Change Function• Problem-Solving Agent• State-Space Search

Page 3: Solving Problems by Searching

3

Formal State-Space ModelProblem = (S, s, A, f, g, c)

S = state spaces = initial stateA = actionsf = state change function f: S x A -> Sg = goal test function g: S -> {true,false}c = cost function c: S x A x S -> R

x ya • How do we define a solution?

• How about an optimal solution?

Page 4: Solving Problems by Searching

4

3 Coins ProblemA Very Small State Space Problem

• There are 3 (distinct) coins: coin1, coin2, coin3.

• The initial state is H H T

• The legal operations are to turn over exactly one coin.– 1 (flip coin1), 2 (flip coin2), 3 (flip coin3)

• There are two goal states: H H H T T T

What are S, s, A, f, g, c ?

Page 5: Solving Problems by Searching

5

State-Space Graph

HTT

TTT

THH

HHH

HHT THT

TTH HTH

1

2

1

3

1

2

1

3

3

3

2

2

• What are some solutions?• What if the problem is changed to allow only 3 actions?

Page 6: Solving Problems by Searching

6

Modified State-Space Problem

• How would you define a state for the new problem?

• How do you define the operations (1, 2, 3) with this new state definition?

• What do the paths to the goal states look like now?

Page 7: Solving Problems by Searching

7

How do we build a search tree for the modified 3 coins problem?

initialstate

1 2 3

Page 8: Solving Problems by Searching

8

The 8-Puzzle Problem

7 2 45 B 68 3 1

B 1 23 4 56 7 8

oneinitialstate

goalstate

B=blank

1. Formalize a state as a data structure2. Show how start and goal states are represented.3. How many possible states are there?4. How would you specify the state-change function?5. What is the goal test?6. What is the path cost function?7. What is the complexity of the search?

Page 9: Solving Problems by Searching

9

Search Tree Example: Fragment of 8-Puzzle Problem Space

Page 10: Solving Problems by Searching

10

Another Example: N Queens• Input:

– Set of states

– Operators [and costs]

– Start state

– Goal state (test)

• Output

Q

Q

Q

Q

Page 11: Solving Problems by Searching

11

Example: Route Planning

• Input:– Set of states

– Operators [and costs]

– Start state

– Goal state (test)

• Output:

Page 12: Solving Problems by Searching

12

Search Strategies

• Blind Search (Ch 3)

• Informed Search (Ch 4)

• Constraint Satisfaction (Ch 5)

– Depth first search– Breadth first search– Depth limited search– Iterative deepening search

Page 13: Solving Problems by Searching

13

Depth First Search

a

b

c d

e

f g h

• Maintain stack of nodes to visit

• Evaluation– Complete?

– Time Complexity?

– Space ?Not for infinite spaces

O(b^d)

O(d)

Page 14: Solving Problems by Searching

14

Breadth First Search

a

b c

d e f g h

• Maintain queue of nodes to visit

• Evaluation– Complete?

– Time Complexity?

– Space?

Yes

O(b^d)

O(b^d)

Page 15: Solving Problems by Searching

15

The Missionaries and Cannibals Problem(from text problem 3.9)

• Three missionaries and three cannibals are on one side of a river, along with a boat that can hold one or two people.

• If there are ever more cannibals than missionaries on one side of the river, the cannibals will eat the missionaries. (We call this a “dead” state.)

• Find a way to get everyone to the other side, without anyone getting eaten.

Page 16: Solving Problems by Searching

16

Missionaries and Cannibals Problem

Page 17: Solving Problems by Searching

17

Missionaries and Cannibals Problem

Left Bank Right Bank

River

Page 18: Solving Problems by Searching

18

Missionary and Cannibals Notes

• Define your state as (M,C,S)– M: number of missionaries on left bank– C: number of cannibals on left bank– S: side of the river that the boat is on

• When the boat is moving, we are in between states. When it arrives, everyone gets out.

Page 19: Solving Problems by Searching

19

When is a state considered “DEAD”?

1. There are more cannibals than missionaries on the left bank. (Bunga-Bunga)

2. There are more cannibals than missionaries on the right bank. (Bunga-Bunga)

3. There is an ancestor state of this state that is exactly the same as this state. (Why?)

Page 20: Solving Problems by Searching

20

Assignment (problem 3.9b, which is part of the first homework set)

• Implement and solve the problem– First with a blind depth-first search using a stack

and/or recursion.– Second with a blind breadth-first search.– Definitely avoid repeated states.– Keep track of how many states are searched in each.

• Use the computer language of your choice for this assignment.– Java– C++– Lisp or Lisp variant

Page 21: Solving Problems by Searching

21

Is memory a limitation in search?

• Suppose:• 2 GHz CPU• 1 GB main memory• 100 instructions / expansion• 5 bytes / node

• 200,000 expansions / sec• Memory filled in 100 sec … < 2 minutes

Page 22: Solving Problems by Searching

22

Iterative Deepening Search

a b

c d

e

f

g h

• DFS with limit; incrementally grow limit• Evaluation

– Complete?

– Time Complexity?

– Space Complexity?

Yes

O(b^d)

O(d)

j

i

k L

Page 23: Solving Problems by Searching

23

Cost of Iterative Deepeningb ratio ID to DFS

2 3

3 2

5 1.5

10 1.2

25 1.08

100 1.02

Page 24: Solving Problems by Searching

24

Forwards vs. Backwardsst

art

end

Page 25: Solving Problems by Searching

25

vs. Bidirectional

Page 26: Solving Problems by Searching

26

Problem

• All these methods are too slow for real applications (blind)

• Solution add guidance

• “informed search”