![Page 1: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/1.jpg)
Artificial IntelligenceArtificial Intelligence
University Politehnica of Bucharest
2007-2008
Adina Magda Florea
http://turing.cs.pub.ro/ai_07
![Page 2: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/2.jpg)
Lecture No. 2
Problem solving strategies Representing problem solution Basic search strategies Informed search strategies
![Page 3: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/3.jpg)
1. Representing problem solution
Symbolic structure Computational instruments Planning method / approach
![Page 4: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/4.jpg)
1.1. State space representation
state, state space, initial state, final state(s), operators
(Si, O, Sf) Problem solution
![Page 5: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/5.jpg)
2 3
1
7 6
8 4
5
S i
2 31
7 6
8 4
5
S f
(a) Stare initiala (b) Stare finala
SUS - Mutare patrat liber in susSTINGA - Mutare patrat liber la stingaJOS - Mutare patrat liber in josDREAPTA - Mutare patrat liber la dreapta
(c) Operatori
2 3
1
7 6
8 4
5
S i
2 3
1
7 6
8 4
5
2 3
1
7 6
8
4
5
2 3
1
7 6
8 4
5
STINGA JOS DREAPTA
(d) Tranzitii posibile din starea Si
S1 S2 S3
8-puzzle
![Page 6: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/6.jpg)
1.2 AND/OR graph representation
Problem decomposition into sub-problems (Pi, O, Pe) AND/OR graph Solved node Unsolvable node Problem solution
![Page 7: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/7.jpg)
Nod SAU
Noduri SI
Noduri SAU
AND/OR graph
OR
AND
![Page 8: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/8.jpg)
A B C A B C
(a) Stare initiala (b) Stare finala
n = 3A la C
n = 2 n = 2
n = 1
A la B
A la C
B la C
n = 1A la C
n = 1A la B
n = 1C la B
n = 1B la A
n = 1B la C
n = 1A la C
(c) Arborele SI/SAU de descompunere in subprobleme
O - operator de descompunere
Towers of Hanoi
![Page 9: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/9.jpg)
1.3 Equivalence of representations
(a) Spatiul starilor
S k
S j
Tranzitie din in S j S f
S , - stari intermediarej S k S - stare finala f
(b) Descompunerea problemei in subprobleme
Tranzitie din in S j S k Tranzitie din in S k S f
State spaceProblem decomposition
![Page 10: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/10.jpg)
2. Basic search strategies
Criteria Completeness Optimality Complexity Possibility to backtrack Informedness
Conventions: unknown node, evaluated node, expanded node, OPEN, CLOSED
![Page 11: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/11.jpg)
Grad deinformare
CostComputational
Cost total
Cost control(cost evaluare stari)Cost parcurgere
(cost aplicareoperatori)
Neinformat Informat
Computational costs of search
![Page 12: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/12.jpg)
2.1. Uninformed search in state space Algorithm BREADTH: Breadth first search in state space1. Init lists OPEN {Si}, CLOSED {}2. if OPEN = {}
then return FAIL3. Remove first node S from OPEN and insert it in CLOSED4. Expand node S
4.1. Generate all direct successors Sj of node S4.2. for each successor Sj of S do
4.2.1. Make link Sj S4.2.2. if Sj is final state
theni. Solution is (Sj, S, .., Si)ii. return SUCCESS
4.2.3. Insert Sj in OPEN, at the end5. repeat from 2end.
![Page 13: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/13.jpg)
Features of breadth first search Previous algorithm for tree space not graph For graphs - Insert step 3’
3’. if S OPEN CLOSED then repeat from 2
Depth first search in state space Depth of a node Ad(Si) = 0, where Si is the initial state, Ad(S) = Ad(Sp)+1, where Sp is the predecessor
node of S.
![Page 14: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/14.jpg)
Algorithm DEPTH(AdMax): Depth first search in state space1. Init lists OPEN {Si}, CLOSED {}2. if OPEN = {}
then return FAIL3. Remove first node S from OPEN and insert it into CLOSED3’. if Ad(S) = AdMax then repeat from 24. Expand node S
4.1. Generate all successors Sj of node S4.2. for each succesor Sj of S do
4.2.1. Set link Sj S4.2.2. if Sj is final state
theni. Solution is (Sj,.., Si)ii. return SUCCESS
4.2.3. Insert Sj in OPEN, at the beginning5. repeat from 2end.
![Page 15: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/15.jpg)
Features of depth first search
Iterative deepeningfor AdMax=1, Val do
DEPTH(AdMax)
Features of iterative deepening
Bidirectional search
Which strategy to choose ?
![Page 16: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/16.jpg)
2.2. Uninformed search in AND/OR graphs
Depth of a node Ad(Si) = 0, where , Si is the node of the
initial problem Ad(S) = Ad(Sp) + 1 if Sp is node OR
predecesor of node S, Ad(S) = Ad(Sp) if Sp is node AND
predecesor of node S.
![Page 17: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/17.jpg)
Algorithm BREADTH-ANDOR: Breadth first search in AND/OR trees
1. Init lists OPEN {Si}, CLOSED {}
2. Remove first node S from OPEN and insert it into CLOSED
3. Expand node S
3.1. Generate all direct successors Sj of node S
3.2. for each successor Sj of S do
3.2.1. Make link Sj S
3.2.2. if Sj is a set of at least 2 sub-problems
then /* is an AND node*/
i. Generate all successors sub-problems Skj of Sj
ii. Set link Skj Sj
iii. Insert nodes Skj in OPEN, at the end
3.2.3. else Insert Sj in OPEN, at the end
![Page 18: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/18.jpg)
4. if no successor of S was generated in previous step (3)then4.1. if S is terminal node labeled with a non-elementary problem
then4.1.1. Label S unsolvable4.1.2. Label with unsolvable all nodes predecessor of S which become
unsolvable because of S4.1.3. if node AND is unsolvable
then return FAIL /* no solution */4.1.4. Remove from OPEN all nodes which have unsolvable
predecessors4.2. else /* S is terminal node labeled with a non-solvable problem */
4.2.1. Label S solved4.2.2. Label with solved all nodes predecessor of S which become
unsolvable because of S4.2.3. if node AND is solved
theni. Build solution tree following the linksii. return SUCCESS /* Solution found */
4.2.4. Remove from OPEN all solved nodes and all nodes which have solved predecessors
5. repeat from 2end.
![Page 19: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/19.jpg)
2.3. Complexity of search strategies B – branching factor of the search space8-puzzleNumber of moves: 2 m for corners = 8 3 m for laterals = 12 4m for center 24 moves B = no. moves / no. pozitions of free square = 2.67Number of moves : 1 m for corners = 4 2 m for laterals = 8 3m for center 15 moves B = 1.67
![Page 20: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/20.jpg)
Complexity of search strategies
B - branching factor
Root – B nodes, B2 on level 2, etc. Number of states possible to be generated on a
search level d is Bd
T – total number of states generated during a search, d – depth of solution node
T = B + B2 + … + Bd = O(Bd)
![Page 21: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/21.jpg)
Number of generated nodes
Breadth first search
B + B2 + … + Bd + (Bd+1-B) = O(Bd+1)B – branching factor, d – depth of solution
Depth first searchB - branching factor, m – maximum depth
B*m+1 Iterative deepening search
d*B+(d-1)*B2+ … + (1)*Bd = O(Bd)
![Page 22: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/22.jpg)
Complexity of search strategiesCriterion Level Depth Limited
depthIterative deepening
Bidirectional
Time Bd Bm Bl Bd Bd/2
Space Bd B*m B*l Bd Bd/2
Optimality?
Yes No No Yes Yes
Completeness
Yes No Yes if ld Yes Yes
B – branching factor, d – solution depth,m – maximum depth of the tree, l –limit of search (AdMax)
![Page 23: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/23.jpg)
3. Informed search strategies
Use heuristic knowledge to incraese efficiency of search:
Select which node to expand nex during search
While expanding a node decide which successors to generate and which to ignore
Remove from the search space some nodes that have previously been generated – prune the search space
![Page 24: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/24.jpg)
3.1 Best-first search
Evaluate the information that can be obtained by expanding a node and ist importance in guiding the search
The quality of a node is estimated by the heuristic search function w(n) for node n
hill climbing strategy best-first strategy
![Page 25: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/25.jpg)
Algorithm BFS: Best-first in state space
1. Init lists OPEN {Si}, CLOSED {}
2. Compute w(Si) and associate this value to Si
3. if OPEN = {}
then return FAIL
4. Remove node S with minimum w(S) from OPEN and insert it in CLOSED
5. if S is final state
then
i. Solution is (S,.., Si)
ii. return SUCCESS
6. Expand node S
6.1. Generate all successors Sj of node S
6.2. for each succesor Sj of S do
6.2.1 Compute w(Sj) and associate it to Sj
6.2.2. Set link Sj S
![Page 26: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/26.jpg)
6.2.3. if Sj OPEN CLOSED
then insert Sj in OPEN with associated w(Sj) 6.2.5. else
i. Be S’j the copy of Sj from OPEN or CLOSED
ii. if w(Sj) < w(S’j) then
- Remove link S’j Sp, with Sp pred. of S’j
- Set link S’j S, and update cost of S’j to w(Sj)
- if S’j is in CLOSED
- then remove S’j from CLOSED and insert S’j in OPEN
iii. else ignore node Sj
7. repeat from 3
end.
![Page 27: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/27.jpg)
Cases
Best-first strategy is a generalization of uninformed search strategies- Breadth first search w(S) = Ad(S)- Depth first search w(S) = -Ad(S)
Uniform cost strategy
Minimize the search effort – heuristic searchw(S) = heuristic function
w(S ) = cost_ arc(S ,S )j k k 1k i
j 1
![Page 28: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/28.jpg)
3.2 Optimal solutions: A*Algorithm
w(S) becomes f(S) with 2 components: g(S), estimates the real cost g*(S) of the
search path from Si to S, h(S), estimates the real cost h*(S) of the
search path from S to Sf. f(S) = g(S) + h(S) f*(S) = g*(S) + h*(S)
![Page 29: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/29.jpg)
S i
S
S f
g(S)
h(S)
f(S)
Components of A*
![Page 30: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/30.jpg)
Computing f(S) Computation of g(S)
Computation of h(S) Must be admissible A heuristic function is called admissible if for any
state S, h(S) h*(S). This definition gives the admissibility condition
of function h and is used to define the property of admissibility of an algorithm A*.
g(S) = cost_ arc(S ,S )k k 1k i
n
![Page 31: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/31.jpg)
A* admissibility
Consider an algorithm A* which uses g and h compenents of f if
(1) h satisfies the admissibility condition (2) for any 2 states S, S', where c > 0 is a constant and
the cost is finite then A* algorithm is admissible, i.e., is
guaranteed to find the path of minimal cost to solution.
Completeness
cost_ arc(S,S') c
![Page 32: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/32.jpg)
Implementation of A*Modify the algorithm correspnding to the "best-first" strategy
in state space as such:…2. Compute w(Si)=g(Si) + h(Si) and associate this value to Si
3. if OPEN = {}then return FAIL - unmodified
4. Remove node S with w(S) minimum from OPEN and insert it into CLOSED - unmodified
…..6.2.5. else
i. Be S’j the copy of Sj from OPEN or CLOSED
ii. if g(Sj) < g(S’j) then …
![Page 33: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/33.jpg)
The heuristic of A*
Consider 2 algorithms A*, A1 and A2, with evaluation functions h1 and h2 admissibile, g1=g2
It is said that A2 is more informed than A1 if for any state S
with SSf
We say that h2 dominates h1 monotony
h (S) > h (S)2 1
f (S) g (S) h (S)1 1 1 f (S) g (S) h (S)2 2 2
h(S) h(S') + cost_ arc(S,S')
![Page 34: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/34.jpg)
How we compute f 8-puzzle
Traveling salesman
h2(S) = the cost of the minimum spanning tree of unvisited cities until S
h (S) = t (S)1 ii=1
8
h (S) = Distanta(t2 ii=1
8)
h (S) = cost_ arc(S ,S)1 i
![Page 35: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/35.jpg)
Missionaries and cannibals
ESTVEST
n
n
n
n
Em
Vm
Vc
Ec
(S
(S
(S
(Si
i i
i
)=3
)=3)=0
)=0
ESTVEST
n
n
n
n
Em
Vm
Vc
Ec
(S
(S
(S
(Sf
f f
f
)=0
)=0)=3
)=3
(b) Stare finala(a) Stare initiala
![Page 36: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/36.jpg)
Missionaries and cannibals
f (S) g(S) h (S)1 1
f (S) g(S) h (S)2 2
f (S) g(S) h (S)3 3
h (S) = n (S)1E
h (S) n (S) / 22E
0(S)n daca0
0(S)n si EST de malul pe este barca daca1(S)n
0(S)n si VEST de malul pe este barca daca1(S)n
(S)hE
EE
EE
3
![Page 37: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/37.jpg)
Relaxing the admissibility condition of A* An heuristic function h is called -admissible if
with > 0 An A* algorithm which uses an evaluation
function f with a component h -admissible will find a solution which has a cost greater than the cost of the optimal solution with at most .
such an algorithm - an -admissible algorithm and the solutions is called -optimal solution.
h(S) h (S)*
![Page 38: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/38.jpg)
Relaxing the admisibility condition of A*
8-puzzle
f (S) g(S) h (S)3 3 h (S) h (S) 3 T(S)3 2
T(S) = Scor[t (S)]ii 1
8
mozaicului centrul laaflat pentru t 1
centru de diferita tlui a pozitie oricepentru 0
finala stareadin corect succesorul
deurmat estenu S stareain tpatratul daca 2
=(S)]Scor[t
i
i
i
i
![Page 39: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/39.jpg)
Recursive Best First
Best first with linear space Recursive implementation Remembers the value f of the best alternate
path which starts from any precedent node of the current node
Finds the minimum cost solution if h is admissible but has a space complexity of O(B*d)
![Page 40: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/40.jpg)
S1
S3
S8S5
S2
S6 S7
S4
S9 S10 S11
447447 449
inf
393
646 415 526
413
526
417
553
415
S1
S3
S8S5
S2
S6 S7
S4
S12 S13
447447 449
inf
393
646 415 526
417
450591
417
![Page 41: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/41.jpg)
S1
S3
S8S5
S2
S6 S7
S4
S9 S10 S11
447447 449
inf
393
646 450 526
417
526 417 553
447
S14 S15
615418
S16
607
447
BestFR(S) Recursive Best First strategy/* returns the solution or FAIL */
BFR(Si, inf)
![Page 42: Artificial Intelligence University Politehnica of Bucharest 2007-2008 Adina Magda Florea](https://reader036.vdocument.in/reader036/viewer/2022081515/5697bfbb1a28abf838ca0fe1/html5/thumbnails/42.jpg)
Algorithm BFR(S, f_lim): Recursive Best First strategy
/* Returns a solution or FAIL and a new limit f_limit */
1. if S final state then return S, f_lim
2. Generate all successors Sj of S
3. if there are no successors
then return FAIL, inf
4. for each successor Sj do
f(Sj) max(g(Sj) + h(Sj), f(S))
5. Best Sjmin, node with minimal value f(Sj) among successors
6. if f(Best) > f_lim
then return FAIL, f(Best)
7. Alternat f(Sjmin2), the 2nd smallest value f(Sj)
8. Rez, f(Best) BFR(Best, min(f_lim, Alternat)
9. if Rez FAIL then return Rez, f(Best)
10. repeat from step 5
end.