Lecture 06 - Problem solving by Searching
Lecture 06 - Problem solving by Searching
ARTIFICIAL INTELLIGENCE
Mahesh Madhushan
B.Sc. in ICT (RUSL), B.Eng. (Hons) in Software Engineering (UK), M.Sc. in IT (UOP)
INTRODUCTION TO
ARTIFICIAL INTELLIGENCE
LGA
HNL
LAX
DFW
$500 MIA
SEARCH STRATEGIES
• UNINFORMED SEARCH (BLIND SEARCH STRATEGIES)
• UNINFORMED SEARCH STRATEGIES USE NO INFORMATION
ABOUT THE LIKELY “DIRECTION” OF THE GOAL NODE(S)
– BREADTH FIRST SEARCH
– DEPTH FIRST SEARCH
• INFORMED SEARCH (HEURISTIC SEARCH STRATEGIES)
•KNOW WHETHER ONE NON-GOAL STATE IS ―MORE
PROMISING‖ THAN ANOTHER
– A* SEARCH
UNINFORMED SEARCH STRATEGIES
• UNINFORMED: WHILE SEARCHING YOU HAVE NO CLUE WHETHER
ONE NON-GOAL STATE IS BETTER THAN ANY OTHER. YOUR
SEARCH IS BLIND. YOU DON’T KNOW IF YOUR CURRENT
EXPLORATION IS LIKELY TO BE FRUITFUL.
• VARIOUS BLIND STRATEGIES:
• BREADTH-FIRST SEARCH
• UNIFORM-COST SEARCH
• DEPTH-FIRST SEARCH 6
EXAMPLE FOR ILLUSTRATING UNINFORMED
SEARCH STRATEGIES
S
3 1 8
A B C
3 15
7 20 5
D E G
BREADTH-FIRST SEARCH
BREADTH-FIRST SEARCH
Strategy: expand a a G
shallowest node first b c
Implementation: Fringe e
d f
is a FIFO queue S h
p q r
d e p
Search
b c e h r q
Tiers
a a h r p q f
p q f q c G
q c G a
a
BREADTH-FIRST SEARCH
• BREADTH-FIRST SEARCH (BFS): FINDS A PATH BETWEEN TWO NODES BY
TAKING ONE STEP DOWN ALL PATHS AND THEN IMMEDIATELY
BACKTRACKING.
• OFTEN IMPLEMENTED BY MAINTAINING A QUEUE OF VERTICES TO VISIT.
• BFS ALWAYS RETURNS THE SHORTEST PATH (THE ONE WITH THE FEWEST
EDGES) BETWEEN THE START AND THE END VERTICES.
• TO B: {A, B} a b c
• TO C: {A, E, F, C}
• TO D: {A, D} d e f
• TO E: {A, E}
• TO F: {A, E, F} g h
• TO G: {A, D, G}
• TO H: {A, D, H}
BREADTH-FIRST SEARCH
• EXPAND SHALLOWEST UNEXPANDED NODE
• FRINGE: NODES WAITING IN A QUEUE TO BE EXPLORED, ALSO
CALLED OPEN
• IMPLEMENTATION:
• FRINGE IS A FIRST-IN-FIRST-OUT (FIFO) QUEUE, I.E., NEW SUCCESSORS GO AT END OF THE QUEUE.
Is A a goal state?
11
BREADTH-FIRST SEARCH
Expand:
fringe = [B,C]
Is B a goal state?
12
BREADTH-FIRST SEARCH
Is C a goal state?
13
BREADTH-FIRST SEARCH
Expand:
fringe=[D,E,F,G]
Is D a goal state?
14
Example
BFS
15
EXAMPLE: MAP NAVIGATION
A B C
S G
D E F
B D E
C E
A B C
S G
D E F
bm nodes
• NUMBER OF NODES IN ENTIRE TREE?
• 1 + B + B2 + …. BM = O(BM)
BREADTH-FIRST SEARCH (BFS) PROPERTIES
• WHAT NODES DOES BFS EXPAND?
• PROCESSES ALL NODES ABOVE SHALLOWEST SOLUTION 1 node
• LET DEPTH OF SHALLOWEST SOLUTION BE S b
… b nodes
• SEARCH TAKES TIME O(BS) s tiers
b2 nodes
• HOW MUCH SPACE DOES THE FRINGE TAKE?
• HAS ROUGHLY THE LAST TIER, SO O(BS) bs nodes
• IS IT COMPLETE?
• S MUST BE FINITE IF A SOLUTION EXISTS, SO YES! (IF NO bm nodes
SOLUTION, STILL NEED DEPTH != ∞)
• IS IT OPTIMAL?
• ONLY IF COSTS ARE ALL 1 (MORE ON COSTS LATER)
What is the Complexity of Breadth-First Search?
• Time Complexity
– assume (worst case) that there is 1 goal leaf at the
RHS d=0
– so BFS will expand all nodes
d=1
= 1 + b + b2+ ......... + bd
= O (bd) d=2
G
• Space Complexity
– how many nodes can be in the queue (worst-case)? d=0
– at depth d there are bd unexpanded nodes in the Q =
O (bd) d=1
d=2
Time and space of number of generated nodes is O
(b^(d+1)) G
20
• Properties of breadth-first search
Depth of Nodes
Solution Expanded Time Memory
Implementation: e
d f
Fringe is a LIFO stack S h
p q r
d e p
b c e h r q
a a h r p q f
p q f q c G
q c G a
a
DEPTH-FIRST SEARCH
• DEPTH-FIRST SEARCH (DFS): FINDS A PATH BETWEEN TWO VERTICES BY
EXPLORING EACH POSSIBLE PATH AS FAR AS POSSIBLE BEFORE
BACKTRACKING.
• OFTEN IMPLEMENTED RECURSIVELY.
• MANY GRAPH ALGORITHMS INVOLVE VISITING OR MARKING
VERTICES.
Is A a goal state?
27
DEPTH-FIRST SEARCH
• EXPAND DEEPEST UNEXPANDED NODE
• IMPLEMENTATION:
• FRINGE = LIFO QUEUE, I.E., PUT SUCCESSORS AT FRONT
queue=[B,C]
Is B a goal state?
28
DEPTH-FIRST SEARCH
• EXPAND DEEPEST UNEXPANDED NODE
• IMPLEMENTATION:
• FRINGE = LIFO QUEUE, I.E., PUT SUCCESSORS AT FRONT
queue=[D,E,C]
Is D = goal state?
29
DEPTH-FIRST SEARCH
• EXPAND DEEPEST UNEXPANDED NODE
• IMPLEMENTATION:
• FRINGE = LIFO QUEUE, I.E., PUT SUCCESSORS AT FRONT
queue=[H,I,E,C]
Is H = goal state?
30
DEPTH-FIRST SEARCH
• EXPAND DEEPEST UNEXPANDED NODE
• IMPLEMENTATION:
• FRINGE = LIFO QUEUE, I.E., PUT SUCCESSORS AT FRONT
queue=[I,E,C]
Is I = goal state?
31
DEPTH-FIRST SEARCH
• EXPAND DEEPEST UNEXPANDED NODE
• IMPLEMENTATION:
• FRINGE = LIFO QUEUE, I.E., PUT SUCCESSORS AT FRONT
queue=[E,C]
Is E = goal state?
32
DEPTH-FIRST SEARCH
33
DEPTH-FIRST SEARCH
• EXPAND DEEPEST UNEXPANDED NODE
• IMPLEMENTATION:
• FRINGE = LIFO QUEUE, I.E., PUT SUCCESSORS AT FRONT
queue=[K,C]
Is K = goal state?
34
DEPTH-FIRST SEARCH
• EXPAND DEEPEST UNEXPANDED NODE
• IMPLEMENTATION:
• FRINGE = LIFO QUEUE, I.E., PUT SUCCESSORS AT FRONT
queue=[C]
Is C = goal state?
35
DEPTH-FIRST SEARCH
Is F = goal state?
36
DEPTH-FIRST SEARCH
Is L = goal state?
37
DEPTH-FIRST SEARCH
• EXPAND DEEPEST UNEXPANDED NODE
• IMPLEMENTATION:
• FRINGE = LIFO QUEUE, I.E., PUT SUCCESSORS AT FRONT
queue=[M,G]
Is M = goal state?
38
Example DFS
39
40
SEARCH METHOD 2: DEPTH FIRST SEARCH (DFS)
S
A D
A B C
B D
S G
D E F
C E
• IS IT COMPLETE?
• M COULD BE INFINITE, SO ONLY IF WE PREVENT CYCLES bm nodes
(MORE LATER)
• IS IT OPTIMAL?
• NO, IT FINDS THE “LEFTMOST” SOLUTION, REGARDLESS OF
DEPTH OR COST
WHAT IS THE COMPLEXITY OF DEPTH-FIRST SEARCH?
• TIME COMPLEXITY d=0
• ASSUME (WORST CASE) THAT THERE IS 1
GOAL LEAF AT THE RHS d=1
• SO DFS WILL EXPAND ALL NODES d=2
(M IS CUTOFF) G
=1 + B + B2+ ......... + B^M
= O (B^M)
d=0
d=1
• SPACE COMPLEXITY
• HOW MANY NODES CAN BE IN THE d=2
QUEUE (WORST-CASE)?
d=3
• AT DEPTH L < D WE HAVE B-1 NODES
• AT DEPTH D WE HAVE B NODES d=4 44
45
QUIZ: DFS VS BFS
COMPARING DFS AND BFS
• IN GENERAL
• BFS IS BETTER IF GOAL IS NOT DEEP, IF INFINITE PATHS, IF MANY LOOPS, IF SMALL SEARCH SPACE
• DFS IS BETTER IF MANY GOALS, NOT MANY LOOPS,
• DFS IS MUCH BETTER IN TERMS OF MEMORY
47
DFS VS BFS
b c
e
d
f
START h
p r
q
COST-SENSITIVE SEARCH
a GOAL
2 2
b c
3
2
1 8
2 e
3 d
f
9 8 2
START h
1 4 2
p 4 r
15
q
S 0
d 3 e 9 p 1
b 4 c e 5 h 17 r 11 q 16
11
Cost a 6 a h 13 r 7 p q f
contours
p q f 8 q c G
q 11 c G 10 a
a
UNIFORM COST SEARCH
• EXPAND LOWEST-COST OPEN NODE (G(N))
• IN BFS G(N) = DEPTH(N)
53
Requirement
g(successor)(n)) g(n)
FIND MINIMUM COST PATH
6 1
3 A D F 1
2 4 8
S B E G
1 20
C
The graph above shows the step-costs for different paths going from the start (S) to
the goal (G). On the right you find the straight-line distances.
Use uniform cost search to find the optimal path to the goal.
54
UNIFORM COST SEARCH
• THE BAD:
• EXPLORES OPTIONS IN EVERY “DIRECTION”
• NO INFORMATION ABOUT GOAL LOCATION
Start Goal
58
QUESTIONS?
THANK YOU