1. Inteligență artificială
2. Metode de căutare
Florin Leon
Universitatea Tehnică „Gheorghe Asachi” din Iași
Facultatea de Automatică și Calculatoare
http://florinleon.byethost24.com/curs_ia.htm
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
2. 2
Metode de căutare
1. Rezolvarea problemelor prin căutare
2. Căutarea neinformată (oarbă)
3. Căutarea informată (euristică)
4. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
3. 3
Metode de căutare
1. Rezolvarea problemelor prin căutare
2. Căutarea neinformată (oarbă)
3. Căutarea informată (euristică)
4. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
4. 4
Probleme de căutare
15 puzzle Turnurile din Hanoi
Labirinturi 8 regineFlorin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
5. 5
Probleme de căutare reale
Planificare Găsirea rutelor
Programarea telescoapelor Navigarea roboților militariFlorin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
6. 6
Alte aplicații
Găsirea rutelor
Rezervarea biletelor pentru avioane, trenuri etc.
Rețele de calculatoare
Distribuția coletelor poștale
Asemănătoare problemei comis-voiajorului
Proiectarea instalațiilor, VLSI
Proiectarea cablurilor și țevilor într-o clădire, într-o mașină
Conectarea pinilor circuitelor electronice, cu scopul de a minimiza aria
și de a maximiza viteza prin minimizarea lungimii conexiunilor
Crearea medicamentelor
Găsirea substanțelor celor mai potrivite care permit substanței active să
se cupleze la zona dorită
Jocuri video
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
7. 7
Componentele unei probleme de
căutare
Starea inițială
Starea scop
O mulțime de operatori
Funcția de evaluare – pentru căutarea informată
Cât de departe este fiecare stare de starea scop
Conține cunoștințe despre fiecare problemă în parte
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
8. 8
Formalizarea unei probleme de
căutare
Q este o mulțime finită de stări
S Q este o mulțime nevidă de stări inițiale
G Q este o mulțime nevidă de stări scop
succs : Q (Q) reprezintă mulțimea de stări care pot fi
atinse din starea s într-un singur pas
Funcția primește o singură stare ca argument și returnează
o mulțime de stări ca rezultat
cost : Q2 ℝ+ reprezintă costul de a ajunge din starea s
în starea s’
Funcția primește două stări și returnează un număr pozitiv
cost(s, s’) este definită doar când s’ succs(s)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
9. 9
Definiții
Spațiu de căutare (spațiul problemei)
Mulțimea tuturor stărilor care pot fi atinse prin aplicarea
operatorilor disponibili
Soluție
Seria de operatori care transformă starea inițială într-o
stare scop
Metodă de rezolvare a unei probleme
O procedură pentru găsirea unei soluții
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
11. 11
Soluția
O soluție este o cale care leagă nodul inițial de
oricare din nodurile scop
I
G
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
12. 12
Soluția
O soluție este o cale care leagă nodul inițial de
oricare din nodurile scop
Costul căii este suma costurilor arcelor care formează
calea
O soluție optimă este soluția de cost minim
Unele probleme
nu au soluție!
I
G
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
14. 14
Dimensiunea
spațiului de căutare
8-puzzle 9! = 362.880 stări
15-puzzle 16! 2 · 1013 stări
24-puzzle 25! 1025 stări
Doar jumătate din aceste stări pot fi atinse
dintr-o stare dată
Într-o abordare simplă, acest lucru nu se
cunoaște dinainte
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
15. 15
Căutarea în spațiul problemei
Deseori construirea unei
reprezentări complete a
grafului de căutare
nu este fezabilă sau
este prea costisitoare
Algoritmul de rezolvare
trebuie să construiască
soluția prin explorarea
unei porțiuni restrânse
a grafului
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
16. 16
Căutarea în spațiul problemei
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
17. 17
Căutarea în spațiul problemei
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
18. 18
Căutarea în spațiul problemei
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
19. 19
Căutarea în spațiul problemei
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
20. 20
Căutarea în spațiul problemei
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
21. 21
Căutarea în spațiul problemei
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
23. 23
Costul unui pas orizontal / vertical = 1
Costul unui pas diagonal = 2
Abordarea 1
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
24. 24
Abordarea 1: soluția
Această cale este cea mai scurtă în spațiul discretizat,
dar nu și în spațiul inițial continuu
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
25. 25
Abordarea 2
Costul unui pas: lungimea segmentului
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
26. 26
Abordarea 2
Costul unui pas: lungimea segmentului
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
27. 27
Abordarea 2: soluția
Cea mai scurtă cale în acest spațiu este
cea mai scurtă și în spațiul inițial
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
28. 28
Misionarii și canibalii
3 misionari, 3 canibali, 1 barcă
Barca poate duce 2 persoane
Dacă sunt mai mulți canibali decât misionari, îi mănâncă
5 operatori: 1C, 1M, 2C, 2M, CM
Alternativă: persoanele individuale (27 de operatori)
Reprezentare: numărul de persoane pe primul mal și barca
Starea inițială: (3, 3, 1)
Starea scop: (0, 0, 0)
O reprezentare mai bună reduce spațiul de căutare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
29. 29
Presupuneri
Mediul este static
Mediul este discret (sau discretizabil)
Mediul este accesibil (observabil)
Mediul este determinist
Chiar dacă aceste presupuneri nu sunt satisfăcute,
căutarea rămâne o metodă importantă de rezolvare
a problemelor
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
30. 30
Stări și noduri
O stare este o configurație a problemei
Un nod este o structură de date în program
Un nod are:
Stare
Nod părinte
Operatorul care a fost aplicat pentru a-l genera
Adâncime
Cost (al căii parcurse din starea inițială)
Două noduri diferite pot conține aceeași stare!
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
31. 31
Metoda de căutare
Frontiera (engl. “fringe”) este mulțimea tuturor
nodurilor care nu au fost încă expandate
Frontiera este implementată ca o listă
Ordonarea nodurilor în frontieră definește
metoda de căutare, de exemplu tratarea listei
ca o coadă sau ca o stivă
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
32. 32
Măsuri de performanță
Completitudine
Un algoritm este complet dacă găsește o soluție atunci când
există una
Dar dacă nu există o soluție?
Optimalitate
Un algoritm este optim dacă returnează o soluție de cost
minim când problema are soluții
Complexitate
Măsoară timpul și volumul de memorie necesare algoritmului
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
33. 33
Metode de căutare
1. Rezolvarea problemelor prin căutare
2. Căutarea neinformată (oarbă)
3. Căutarea informată (euristică)
4. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
34. 34
Căutarea neinformată
Căutarea constă în explorarea alternativelor
Căutarea în lățime (engl. “breadth-first search”)
Căutarea bidirecțională
Căutarea în adâncime (engl. “depth-first search”)
Căutarea limitată în adâncime (engl. “depth-limited search”)
Căutarea iterativă în adâncime (engl. “iterative deepening
search”)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
35. 35
Căutarea în lățime
Nodurile noi sunt inserate la sfârșitul
frontierei (lista este o coadă)
Rezultat: 1, 2, 3, 4, 5, 6, 7
2 3
4 5
1
6 7
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
36. 36
Parametri importanți
Numărul maxim de succesori ai oricărei stări
Factorul de ramificare (engl. “branching factor”)
b al arborelui de căutare
Lungimea minimă (≠ cost) a căii între starea
inițială și o stare scop
Adâncimea (engl. “depth”) d a celui mai
superficial nod scop din arborele de căutare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
37. 37
Evaluarea performanțelor
Căutarea în lățime este:
Completă
Optimă dacă un pas are costul 1
Numărul de noduri generate (cazul cel mai defavorabil)
N = 1 + b + b2 + … + bd = O(bd)
Complexitatea de timp și de spațiu este O(bd)
Numărul de noduri generate (cazul cel mai favorabil)
N = 1 + b + b2 + … + bd–1 + 1 = O(bd–1)
Nu este o diferență foarte mare, performanțele sunt destul de
predictibile
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
38. 38
Notă
Căutarea în lățime poate rula la infinit dacă:
Problema nu are soluții și spațiul de căutare este
infinit
sau
Stările pot fi revizitate de mai multe ori
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
39. 39
Căutarea bidirecțională
Două frontiere
Complexitatea de timp și spațiu este O(bd/2) ≪ O(bd)
dacă ambii arbori au același factor de ramificare b
s
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
40. 40
Problema cănilor cu apă:
căutare înainte
Avem la dispoziție 2 căni de capacități diferite A și B
Scopul este ca în cana A să rămână o cantitate
specificată de apă prin aplicarea a 6 operații posibile:
umple cana A (↑A)
umple cana B (↑B)
toarnă apa din cana A în cana B (A→B)
toarnă apa din cana B în cana A (B→A)
varsă cana A (↓A)
varsă cana B (↓B)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
41. 41
Problema cănilor cu apă:
căutare înainte
În figură se prezintă
arborele rezultat prin
aplicarea celor 6 operații
unei probleme concrete:
cana A are capacitatea de
4l, cana B are capacitatea
de 3l iar în final în cana A
trebuie să se obțină un
rest de 2l
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
42. 42
Problema cănilor cu apă:
căutare înainte
Datorită complexității,
numai primul nivel a fost
completat, în rest
urmărindu-se drumul
către soluția optimă (calea
cea mai scurtă către scop)
Nu există o soluție optimă
unică, ea poate fi atinsă
pe două căi diferite
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
43. Problema cănilor cu apă:
căutare înapoi
Trebuie să facem unele precizări suplimentare pentru
a o rezolva prin căutare înapoi
Când problema este rezolvată prin căutare înainte, în
starea scop în cana B se poate găsi orice cantitate de
apă
Când problema este rezolvată prin căutare înapoi,
starea scop trebuie fixată complet (A și B, nu doar
A), pentru că de aici începe căutarea
43Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
44. 44
Problema cănilor cu apă:
căutare înapoi
Să presupunem că dorim restul
de 2l în cana A și 0l în cana B
Nu toate cele 6 operații se vor
putea aplica pentru orice nod
Vor exista constrângeri, de
exemplu, dacă la un anumit
moment în cana A sunt 0l, este
imposibilă aplicarea primei
operații (umple A)
Ar însemna ca după umplerea
cănii, în ea să nu existe apă,
ceea ce este absurd
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
45. 45
Căutarea în adâncime
Nodurile noi sunt inserate la sfârșitul
frontierei (lista este o stivă)
Rezultat: 1, 2, 4, 5, 3, 6, 7
2 3
4 5
1
6 7
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
46. 46
Evaluarea performanțelor
b: factorul de ramificare
d: adâncimea celui mai superficial nod scop
m: adâncimea arborelui de căutare
Căutarea în adâncime:
Nu este completă
Nu este optimă
Cazul cel mai favorabil
Complexitatea de timp și de spațiu este O(d) – extrem de rapid
Cazul mediu
Complexitatea de timp este similară cu a căutării în lățime: O(bd)
De obicei, DFS este mai rapid decât BFS
Cazul cel mai defavorabil
Complexitatea de timp este O(bm) – căutarea este lentă
Complexitatea de spațiu este O(b ∙ m) – excelentă
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
47. 47
Căutarea limitată în adâncime
Căutare în adâncime cu limitare la k niveluri
Sub această adâncime, nodurile nu mai sunt
expandate
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
48. 48
Căutarea iterativă în adâncime
Combină avantajele căutărilor în lățime și adâncime
Ideea de bază: pentru k = 0, 1, 2, …
Realizează o căutare limitată în adâncime pentru limita k:
generează nodurile cu adâncime k
Situații posibile:
Găsirea unei soluții
Eșec (nu există soluție)
Căutare incompletă (nu există soluție pe nivelurile
considerate)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
49. 49
Căutarea iterativă în adâncime
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
50. 50
Căutarea iterativă în adâncime
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
51. 51
Căutarea iterativă în adâncime
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
52. 52
Evaluarea performanțelor
Căutarea iterativă în adâncime este:
Completă
Optimă dacă un pas are costul 1
Cazul cel mai defavorabil
Complexitatea de timp:
(d + 1) ∙ 1 + d ∙ b + (d – 1) ∙ b2 + … + 1 ∙ bd = O(bd)
Comparabilă cu a căutării în lățime, puțin mai lentă din
cauza repetițiilor
Complexitatea de spațiu: O(b ∙ d)
Comparabilă cu a căutării în adâncime, foarte bună
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
53. 53
Compararea performanțelor
Trei probleme (în ordine crescătoare a complexității):
15-puzzle: b = 2,13
Cubul Rubik: b = 13,5
Șah: b = 35 (nu este o problemă de căutare de tipul celorlalte, e un joc, vezi cursul 3)
Timpul și spațiul de prelucrare
1 milion de noduri pe secundă
100 octeți pe nod
Tabelele următoare prezintă cazurile cele mai defavorabile
Pentru analiza cazurilor celor mai favorabile:
tw: cel mai defavorabil, tb: cel mai favorabil
Căutare în lățime (BFS), bidirecțională tw / tb = b
Căutare iterativă în adâncime (IDS) tw / tb = b/2
Căutare în adâncime (DFS) tw este exponențial, tb este liniar
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
54. 54
15-puzzle: b = 2,13
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
55. 55
Cubul Rubik: b = 13,5
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
56. 56
Șah: b = 35
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
57. 57
Evitarea repetării stărilor
Evitarea întoarcerii în starea din care tocmai s-a
plecat
Starea fiului este identică cu starea părintelui
Evitarea căilor cu bucle
Starea unui nod este identică cu starea unui nod de pe calea
din starea inițială
Evitarea stărilor generate anterior
Necesită memorarea tuturor stărilor generate: complexitate
de spațiu în cazul cel mai defavorabil O(bd)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
58. 58
Metode de căutare
1. Rezolvarea problemelor prin căutare
2. Căutarea neinformată (oarbă)
3. Căutarea informată (euristică)
4. Concluzii
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
59. 59
Căutarea informată (euristică)
Factorii de ramificare mari sunt o problemă
serioasă
Este necesară o modalitate de a reduce numărul
de noduri vizitate
Metodele de căutare euristică încearcă alegerea
„inteligentă” a nodurilor care trebuie expandate
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
60. 60
Euristică
εὑρίσκειν = a găsi, εὕρηκα/evrika = am găsit
O euristică este o metodă care furnizează rapid o
soluție, nu neapărat optimă
Este o metodă aproximativă, spre deosebire de un
algoritm exact optim
Deși nu garantează găsirea soluției optime, metodele
euristice găsesc de obicei o soluție acceptabilă și
deseori chiar soluția optimă
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
61. 61
Metode neinformate vs.
metode informate
Metodele neinformate (oarbe)
Nu exploatează semnificațiile stărilor pentru a ordona
nodurile din frontieră
Exploatează doar pozițiile nodurilor în arbore
Tratează toate problemele la fel
Metodele informate (euristice)
Ordonează nodurile frontierei în funcție de semnificațiile
stărilor
Cele mai „promițătoare” noduri sunt plasate la începutul
frontierei
Utilizează cunoștințe specifice fiecărei probleme
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
62. 62
Căutarea “best-first”
Evaluează cât de bun este un nod
Utilizează o funcție de evaluare f care atribuie fiecărui
nod n un număr real f(n) 0
f(n) este un cost estimat
Cu cât este mai mic f(n), cu atât este mai bun nodul n
Căutarea “best-first” sortează frontiera în ordine
crescătoare a lui f
Pentru f egale, se decide aleatoriu
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
63. Definirea lui f
63
Funcții utilizate în general
g(n) este costul căii de la nodul inițial la n
Este cunoscută
h(n) este estimarea costului căii de la n la nodul scop
Este o estimare euristică
Căutarea de cost uniform (neinformată)
f(n) = g(n)
Căutarea greedy
f(n) = h(n)
Căutarea A*
f(n) = g(n) + h(n)
Reunește ideile căutărilor de cost uniform și greedy
Problema principală: găsirea celei mai bune funcții h
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
66. 66
Căutarea greedy
Iași – Făgăraș: prin Piatra Neamț
Dacă se permite revizitarea stărilor, buclă infinită
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
67. 67
Performanțele căutării greedy
Nu este optimă
Este incompletă
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
68. 68
Calitatea căutării este dată de h
Când h = costul până la scop
Sunt expandate doar nodurile de pe calea corectă
Se găsește soluția optimă
Când h < costul până la scop
Sunt expandate noduri suplimentare
Se găsește soluția optimă
Când h > costul până la scop
Soluția optimă poate fi trecută cu vederea
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
69. 69
Fie h*(n) costul căii optime de la n la nodul scop
Funcția euristică h(n) este admisibilă dacă:
0 h(n) h*(n)
Dacă G este scopul, atunci h(G) = 0
O funcție euristică admisibilă este întotdeauna
optimistă (niciodată nu supraestimează)
Euristici admisibile
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
70. 70
Căutarea A*
Unul din cei mai populari algoritmi de IA
f(n) = g(n) + h(n), unde:
g(n) = costul celei mai bune căi găsite până la n
h(n) = o funcție euristică admisibilă
Presupunem că: p, c, : cost(p, c) > 0
Între două noduri diferite există întotdeauna un cost pozitiv
Căile infinite au cost infinit
Folosește două liste: OPEN și CLOSED
Mulțimea nodurilor din lista OPEN reprezintă frontiera,
iar cele din lista CLOSED nodurile vizitate
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
74. 74
Revizitarea stărilor
Euristica h este
admisibilă
Într-o situație reală, nodul cu
h = 1 ar putea fi lângă scop,
dar despărțit de acesta de
un obstacol
c = 1
100
2
1
2
h = 100
0
90
1
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
75. 75
Revizitarea stărilor
c = 1
100
2
1
2
h = 100
0
90
1
104
4+90
f = 1+100 2+1
?
Dacă eliminăm acest nod, algoritmul
expandează nodul scop vecin și
returnează o soluție sub-optimă
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
76. 76
1
100
2
1
2
100
0
90
1
104
4+90
1+100 2+1
2+90
102
Dacă nu eliminăm nodurile care revizitează
stările, căutarea se termină cu soluția optimă
Revizitarea stărilor
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
77. 77
1
100
2
1
2
100
0
90
1
Noduri introduse, noduri scoase
în/din coada de priorități
Cum funcționează A*
B(101), C(3)
C(3), B(101) – sortată după f
B(101), D(94)
D(94), B(101) – sortată după f
B(101), E(104)
E(104), D(92)
D(92), E(104) – sortată după f
E(104), E(102)
E(102), E(104) – sortată după f
Scop: E(102)
A
B C
D
E
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
78. 78
O euristică h este monotonă
(sau consistentă) dacă:
p și un fiu c al lui p:
h(p) cost(p,c) + h(c)
G un nod scop
h(G) = 0
O euristică monotonă este și
admisibilă
O euristică monotonă devine din ce în ce mai precisă
cu cât înaintează în adâncimea arborelui de căutare
Euristici monotone
(inegalitatea în triunghi)
p
c h(p)
h(c)
cost(p,c)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
79. 79
Euristici monotone
Dacă h este monotonă, oricând este deschis un
nod, algoritmul A* garantează că a găsit o cale
optimă către acesta
Nodurile închise nu mai sunt redeschise
În multe cazuri (dar nu întotdeauna), monotonia
euristicii accelerează găsirea soluției
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
80. Euristici monotone
h(p) cost(p,c) + h(c)
h(c) h(p) – cost(p,c)
g(c) = g(p) + cost(p,c)
f(c) = g(c) + h(c) g(p) + cost(p,c) + h(p) – cost(p,c)
⇒ f(c) f(p)
h < h* ⇒ pe măsură ce înaintăm spre scop, h se
apropie de costul real, deci este normal ca f să crească
80Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
81. Ecuația pathmax
Ecuația pathmax: la generarea unui nod fiu c al lui p
f(c) = max( f(p), g(c) + h(c) )
În exemplul anterior: nodul D
f(D) = max( f(B), g(D) + h(D) ) = max(101, 92) = 101
Ecuația pathmax face ca valorile lui f să fie monoton
nedescrescătoare pe căile traversate din arborele de căutare
Dacă există mai multe căi prin care se poate ajunge la scop,
valorile f pot rămâne nemonotone pentru căile netraversate încă
Ecuația pathmax nu transformă o funcție de cost f nemonotonă
într-una monotonă
81Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
83. 83
Caracteristici ale A*
A* este complet și optim
Dacă nodurile care revizitează stările nu sunt eliminate
A* este optim eficient (engl. “optimally efficient”)
Niciun alt algoritm de același tip nu garantează expandarea
unui număr mai mic de noduri
Este optim eficient doar dacă euristica este monotonă
Alți algoritmi pot fi mai rapizi chiar dacă expandează mai
multe noduri
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
84. 84
Complexitatea A*
Timp
Calitatea euristicii h scade timpul necesar
Cazul cel mai favorabil: h este perfectă, O(d)
Cazul cel mai defavorabil: h = 0, O(bd) ~ BFS
Spațiu
Toate nodurile sunt memorate
Cazul cel mai defavorabil: O(nS), unde nS este numărul de
stări
A* are în general probleme de spațiu înainte de a
avea probleme de timp
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
85. Cazul cel mai defavorabil
Exemplu de caz cel mai defavorabil pentru A* cu
euristici inconsistente: familia Martelli – G5
O(2n) expandări de noduri pentru găsirea soluției
85Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
86. Optimizări
Optimizarea listelor
Căutarea celui mai bun nod, de fiecare dată, este ineficientă
Lista deschisă trebuie să fie o listă sortată sau un arbore heap
Lista închisă poate fi un tabel hash
Optimizarea spațiului de căutare
Cel mai simplu caz: “parent pruning” – evitarea expandării ca
succesor a părintelui unui nod
86Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
87. 87
Optimizări
Aplicarea pe grid, de exemplu pentru jocuri, este costisitoare.
Există foarte multe stări dacă gridul este mare
Factor de ramificare mare: 4, 8 sau 6 pentru grid hexagonal
Multe căi au aceeași lungime. A* le poate explora pe toate.
Când valorile f sunt egale, se compară după valorile h
h poate fi mărită puțin, devenind neadmisibilă. Dacă funcția
rezultată h’ supraestimează rareori funcția h* cu o valoare mai
mare decât v, atunci algoritmul va găsi rareori o soluție al cărei
cost este mai mare cu v decât costul optim
Altă metodă pentru departajare: se preferă căile apropiate de
linia dreaptă între starea inițială și starea scop
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
88. Optimizări
A* ierarhic cvasi-optim (engl. “Near-Optimal
Hierarchical Pathfinding”, HPA*)
88Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
89. 89
IDA*
Căutarea iterativă în adâncime A*
(engl. “Iterative Deepening A*”)
Principiu similar cu acela al căutării iterative în
adâncime neinformate
În loc de niveluri în arbore, folosește contururi de
cost ale funcției f
În cadrul unui contur, face o căutare în adâncime
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
91. Ecuația pathmax bidirecțională
Actualizarea dinspre părinți spre fii
h(c) = max( h(c), h(p) – cost(p, c) )
Actualizarea dinspre fii spre părinți
h(p) = max( h(p), h(c) – cost(c, p) )
Regula poate elimina multe noduri care altfel ar fi generate și
chiar expandate (idee asemănătoare cu retezarea alfa-beta pentru jocuri, din cursul 3)
91Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
92. Exemplu
Să presupunem că pragul curent al IDA* este 2
Fără aplicarea regulii, atât părintele p și fiul c2 sunt expandați
f(p) = 0 + 2 = 2
f(c2) = 1 + 1 = 2
Cu ecuația pathmax bidirecțională:
f(c1) = 1 + 5 = 6, IDA* îl va ignora
Se va actualiza h(p) = 4 și deci f(p) = 0 + 4 = 4
IDA* va ignora nodul p și nu va mai genera nodul c2
92Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
93. 93
Crearea de euristici
O euristică admisibilă poate fi văzută drept
costul soluției optime a unei probleme relaxate
(prin eliminarea constrângerilor)
Pentru navigarea unui robot:
Distanța Manhattan corespunde eliminării obstacolelor
Distanța euclidiană corespunde eliminării obstacolelor
și a constrângerilor de mișcare pe grid
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
94. Euristici pentru 8-puzzle (I)
94
Numărul de căsuțe
diferite (fără a
include spațiul)
1 2 3
4 5 6
7 8
1 2 3
4 5 6
7 8
1 2 3
4 5 6
7 8
1 2 3
4 5 6
7 8
N N N
N N N
N D
Doar 8 este plasat diferit, deci funcția
euristică este evaluată la 1
Euristica ne spune că o soluție ar putea fi
găsită în (cel puțin) o mutare: h(scrt) = 1
Starea
scop
Starea
curentă
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
95. Euristici pentru 8-puzzle (II)
95
Distanța
Manhattan (fără
a include spațiul)
Doar căsuțele 3, 8 și 1 sunt plasate greșit, deci
funcția euristică întoarce 8
Euristica ne spune că o soluție ar putea fi
găsită în cel puțin 8 mutări: h(scrt) = 8
3 2 8
4 5 6
7 1
1 2 3
4 5 6
7 8
Starea
scop
Starea
curentă
3 3
8
8
1
1
2 spații
3 spații
3 spații
Total 8
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
96. 96
Modalități suplimentare de
alegere a funcției euristice
Abordarea maximă, cu m euristici diferite
h(n) = max( h1(n), …, hm(n) )
Abordarea statistică
De exemplu, dacă în 90% din cazuri când h(n) = 14,
h*(n) = 18, atunci când valoarea lui h(n) este 14,
returnăm 18
Complexitatea euristicii nu trebuie să afecteze
eficiența căutării
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
97. 97
IDS vs. A*
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
98. 98
Concluzii
Metodele de căutare sunt utile când:
Spațiul de căutare este mic și
Nu există alte tehnici disponibile sau
Dezvoltarea unei tehnici mai eficiente nu merită efortul
Spațiul de căutare este mare și
Nu există alte tehnici disponibile și
Există euristici „bune” pentru problema considerată
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm