Lecture 8 Search Techniques
description
Transcript of Lecture 8 Search Techniques
![Page 1: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/1.jpg)
TCP1211-Logic Programming
Lecture 8Lecture 8Search Search
TechniquesTechniquesFaculty of Information Technology
Multimedia University
![Page 2: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/2.jpg)
TCP1211-Logic Programming
OutlineOutline State representation of real-world State representation of real-world
problems.problems. Solving a problem by traveling from the Solving a problem by traveling from the
initial state to the final state. initial state to the final state. Search strategies:Search strategies:
Depth First SearchDepth First Search Breadth First SearchBreadth First Search
![Page 3: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/3.jpg)
TCP1211-Logic Programming
What is the problem???What is the problem???Problem is a part of a world in a “bad state” (or unwanted state)
Solving a Problem is taking that glimpse of the world and “transit” it to a “better state” (or desirable state)
Solving a problem is:
• Represent (all possible) states of the world under study
• Find a procedure (a way) to change the states
![Page 4: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/4.jpg)
TCP1211-Logic Programming
Understanding the Understanding the problemproblem
In order to solve the problem, first we need to represent theProblem State representation.
A world under study (the problem) consists of some relevant entities
Each entity has attribute(s)
The values of the attributes of all entities denote the current state of the world under study.
![Page 5: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/5.jpg)
TCP1211-Logic Programming
State representation - State representation - ExampleExampleweatherThe world under study
humidity temperaturewind rain
entities
The state of the weather is the states of the following entities:
• Humidity (High/Medium/Low)• Temperature (High/Medium/Low)
• Wind (Strong/Medium/Mild)
• Rain (No/Drizzling/Heavy)
![Page 6: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/6.jpg)
TCP1211-Logic Programming
Example (cont…)Example (cont…)
For some people, a desirable weather is the sunny one.
Humidity = LowTemperature = MediumWind = MildRain = No
![Page 7: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/7.jpg)
TCP1211-Logic Programming
Another exampleAnother example
A farmer must ferry a wolf, a goat and a cabbage from the north bank of a river to the south bank, using a boat that is too small to take more than one of the three across at once. If he leaves the wolf and the goat together, the wolf will eat the goat, and if he leaves the goat with the cabbage, the goat will eat the cabbage. How can he get all three across the river safely
![Page 8: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/8.jpg)
TCP1211-Logic Programming
FNorth, WNorth, GNorth, CNorthF, W
FSouth, WSouth
GNorth, CNorth
F, G
FSouth, GSouth,
WNorth, CNorth
F
GSouth,
FNorth, WNorth, CNorth
F, C
FSouth, CSouth,
WNorth,GNorth
Ferry Goat Ferry Cabbage
F,W
FSouth, WSouth,GSouth,
CNorth...
...
Ferry Wolf
![Page 9: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/9.jpg)
TCP1211-Logic Programming
State Transition State Transition A state transition of the world under study is best depictedby a directed graph
Root (Initial State)TransitionChange of State
Node 2(state 2)
Node 3(state 3)
Node 1 (state 1)
Node 4 (state 4) ...
.
.
.
Final State (Desirable State)
Node X
![Page 10: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/10.jpg)
TCP1211-Logic Programming
Where is the solution?Where is the solution?Root (Initial State)
.
.
.
Final State (Desirable State)
Node X
Answer Pathfrom Initial Stateto Desirable State
.
.
.
Node Y
Just a Path
![Page 11: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/11.jpg)
TCP1211-Logic Programming
Search StrategiesSearch StrategiesTwo Basic Search Strategies:
• Depth-first search
• Breadth-first search
Depth-first search goes to the left as far as possible before branching to the next right branch
Breadth-first search visits all the nodes of one level before moving to the next level
![Page 12: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/12.jpg)
TCP1211-Logic Programming
Depth First SearchDepth First SearchI
A
D
B C
E G
K
M F
H
F
F
F
Level 0
Level 1
Level 2
Level 3
Level 4
Nodes Visited : I A D B E K M FAnswer Path : I B E K F
![Page 13: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/13.jpg)
TCP1211-Logic Programming
Characteristics of DFSCharacteristics of DFS
• simple to implement
• answer path might be longer than necessary
• may get stuck in an infinite branch while the answer is just in the next branch
![Page 14: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/14.jpg)
TCP1211-Logic Programming
Solving a problem Solving a problem means…means…
Given a system that represents a real world,the purpose of the search is to find a sequence of state transitions that brings the system from the initial state to the desired (final) state
Generally:
• The initial state is well known and UNIQUE
• The final (desired) state is unknown (but recognizable once it occurs)
• May have many final (desired) states
![Page 15: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/15.jpg)
TCP1211-Logic Programming
Finding Answer Path Finding Answer Path using DFSusing DFS
1. Start with a singleton initial path consisting of the initial state
2. Extend this path, step by step, until it reaches a state which can be recognized as a final state.
![Page 16: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/16.jpg)
TCP1211-Logic Programming
If path has reached Final-stateAnswer-Path = path and return this path
else if path can be extended to a New-state
save Current-statecontinue to extend the path from the New-state
else backtrack and try to extend the path from the Previous-state
in a different direction
Extend algorithmExtend a path to a New-stateFind the Next-state of the Previous-state in the path that is not already in the paththe state found is the New-State
![Page 17: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/17.jpg)
TCP1211-Logic Programming
I
A
D
B C
E G
K
M F
H
F
F
F
Path Effect
I Initial stateIA extend
If path has reached Final-stateAnswer-Path = path and return this path
else if path can be extended to a New-state
save Current-statecontinue to extend the path from the New-state
else backtrack and try to extend the path from the Previous-state
in a different direction
Find the Next-state of the Previous-state in the path that is not already in the paththe state found is the New-State
IAD extend
IAbacktrackIbacktrackIB extend
IBE extend
IBEK extend
IBEKM extend
IBEKbacktrackIBEKF extend
![Page 18: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/18.jpg)
TCP1211-Logic Programming
Requirements for DFSRequirements for DFS
To solve problems using the DFS strategy, we must first
• Define the initial state
• Define the final state (or how it is recognized)
• Define the next state (transitions)
![Page 19: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/19.jpg)
TCP1211-Logic Programming
depth_first_search(AnsPath) :- initial_state(Init), depth_first([Init],AnsPath).
depth_first([S|Path],[S]) :- final_state(S),!. depth_first([S|Path],[S|AnsPath]) :- extend([S|Path],S1), depth_first([S1,S|Path],AnsPath).
extend([S|Path],S1) :- next_state(S,S1), not(member_state(S1,[S|Path])).
member_state(X,[X|_]). member_state(X,[_|T]) :- member_state(X,T).
![Page 20: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/20.jpg)
TCP1211-Logic Programming
next_state(i,a).next_state(i,b).next_state(i,c).next_state(a,d).next_state(b,e).next_state(b,g).next_state(e,k).next_state(k,m).next_state(k,f)....
intial_state(i).final_state(f).
I
A
D
B C
E G
K
M F
H
F
F
F
![Page 21: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/21.jpg)
TCP1211-Logic Programming
[n,n,n,n]
[s,s,n,n]
fail
[s,n,s,n]
[n,n,s,n]
[s,s,s,n]
[n,s,n,n][n,s,s,n]
fail[s,s,n,s]
[n,s,n,s][s,s,s,s]
...
...fail
![Page 22: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/22.jpg)
TCP1211-Logic Programming
Initial StateFarmer: northWolf: northGoat: northCabbage: north
Final StateFarmer: southWolf: southGoat: southCabbage: south
(Transitions)next states
initial_state([n,n,n,n])final_state([s,s,s,s])
next_state(S, S1) :- move(S, S1), safe(S1).
safe([F,W,G,C]) :- F=G,!. %Farmer with Goat %OR
safe([F,W,G,C]) :- F=W, F=C. %Farmer with Wolf and with Cabbage
![Page 23: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/23.jpg)
TCP1211-Logic Programming
move([F,W,G,C],[F1,W,G,C]) :- cross(F, F1).
move([F,W,G,C],[F1,F1,G,C]) :- cross(F, F1).
move([F,W,G,C],[F1,W,F1,C]) :- cross(F, F1).
move([F,W,G,C],[F1,W,G,F1]) :- cross(F, F1)..
cross(n, s).cross(s,n).
![Page 24: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/24.jpg)
TCP1211-Logic Programming
Breadth First SearchBreadth First SearchI
A
D
B C
E G
K
M F
H
F
F
F
Level 0
Level 1
Level 2
Level 3
Level 4
Node Visited: I A B C D E G F
Answer Path: I C F
![Page 25: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/25.jpg)
TCP1211-Logic Programming
However…However…Breadth-first search strategy is:
• Complicated (difficult to implement)
• Always give the shortest path
![Page 26: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/26.jpg)
TCP1211-Logic Programming
SummarySummary You should know how to build the state You should know how to build the state
representation of a search problem. representation of a search problem. Two search strategies – DFS, BFS.Two search strategies – DFS, BFS. You should also know how to implement DFS You should also know how to implement DFS
in Prolog. in Prolog.
![Page 27: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/27.jpg)
TCP1211-Logic Programming
Prolog Programming – Tip No. Prolog Programming – Tip No. 22
Arguments of a clause are not fixed for Arguments of a clause are not fixed for input or input.input or input.
Example: The predicate Example: The predicate conc(L1,L2,L3)conc(L1,L2,L3)..
conc([],L2,L2).conc([],L2,L2).conc([X|L1Tail],L2,[X|L3Tail]):-conc([X|L1Tail],L2,[X|L3Tail]):-
conc(L1Tail,L2,L3Tail).conc(L1Tail,L2,L3Tail).
Input/output
![Page 28: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/28.jpg)
TCP1211-Logic Programming
Prolog Tip No. 2 (cont.)Prolog Tip No. 2 (cont.)
All of the following queries will work:All of the following queries will work:
?-conc([a,b],[c,d],L).?-conc([a,b],[c,d],L). ?-conc(L,[c,d],[a,b,c,d]).?-conc(L,[c,d],[a,b,c,d]). ?-conc(L1,L2,[a,b,c,d]).?-conc(L1,L2,[a,b,c,d]).
![Page 29: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/29.jpg)
TCP1211-Logic Programming
Prolog Tip No. 2 (cont)Prolog Tip No. 2 (cont)
Consider this familiar example:Consider this familiar example:
factorial(0,1).factorial(0,1).factorial(M,N):- M1 is M – 1,factorial(M,N):- M1 is M – 1, factorial(M1,N1),factorial(M1,N1), N is M * N1.N is M * N1. %clue%clue
Will the following query work? Will the following query work? ?-factorial(5,N).?-factorial(5,N).
![Page 30: Lecture 8 Search Techniques](https://reader036.fdocuments.us/reader036/viewer/2022062521/5681569f550346895dc4429b/html5/thumbnails/30.jpg)
TCP1211-Logic Programming
Prolog Tip No. 2 (cont)Prolog Tip No. 2 (cont)
Will the following query work? Will the following query work? ?-factorial(M,120).?-factorial(M,120).
The clue is The clue is N is M * N1.N is M * N1.