SlideShare a Scribd company logo
1 of 98
Download to read offline
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
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
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
Probleme de căutare
15 puzzle Turnurile din Hanoi
Labirinturi 8 regineFlorin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
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
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
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
10
Rezolvarea
unei probleme
prin căutare
Stare
inițială
Stare
scop
Spațiul de căutare
(spațiul problemei)
Soluție
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
13
Existența soluției
12
14
11
15
10
13
9
5 6 7 8
4321
12
15
11
14
10
13
9
5 6 7 8
4321
?
1000 $
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
Căutarea în spațiul problemei
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
17
Căutarea în spațiul problemei
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
18
Căutarea în spațiul problemei
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
19
Căutarea în spațiul problemei
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
20
Căutarea în spațiul problemei
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
21
Căutarea în spațiul problemei
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
22
Reprezentarea
Care este spațiul problemei?
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
Abordarea 2
Costul unui pas: lungimea segmentului
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
26
Abordarea 2
Costul unui pas: lungimea segmentului
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Căutarea iterativă în adâncime
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
50
Căutarea iterativă în adâncime
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
51
Căutarea iterativă în adâncime
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
15-puzzle: b = 2,13
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
55
Cubul Rubik: b = 13,5
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
56
Șah: b = 35
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
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
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
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
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
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
64
Exemplu: căutarea greedy
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
65Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
Performanțele căutării greedy
 Nu este optimă
 Este incompletă
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
 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
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
71
Greedy și A*
 f(n) = g(n) + h(n)
 f(B) = 15 + 20 + 30 = 65
 f(C) = 15 +10 + 35 = 60
 Greedy alege nodul B
(h = 30)
 A* alege nodul C
(f = 60)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Algoritmul A*: pseudocod
72Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
73Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
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
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
 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
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
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
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
Efectul euristicilor monotone
82Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
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
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
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
Optimizări
 A* ierarhic cvasi-optim (engl. “Near-Optimal
Hierarchical Pathfinding”, HPA*)
88Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
90
Algoritmul IDA*: pseudocod
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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
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
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
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
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
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
IDS vs. A*
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
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

More Related Content

More from Florin Leon

Faza de testare (II)
Faza de testare (II)Faza de testare (II)
Faza de testare (II)Florin Leon
 
Aspecte conexe procesului de dezvoltare
Aspecte conexe procesului de dezvoltareAspecte conexe procesului de dezvoltare
Aspecte conexe procesului de dezvoltareFlorin Leon
 
Modele bazate pe energie
Modele bazate pe energieModele bazate pe energie
Modele bazate pe energieFlorin Leon
 
Regresia liniara, logistica, softmax
Regresia liniara, logistica, softmaxRegresia liniara, logistica, softmax
Regresia liniara, logistica, softmaxFlorin Leon
 
Clasificarea bazata pe ansambluri. Selectia trasaturilor
Clasificarea bazata pe ansambluri. Selectia trasaturilorClasificarea bazata pe ansambluri. Selectia trasaturilor
Clasificarea bazata pe ansambluri. Selectia trasaturilorFlorin Leon
 
Algoritmi de clasificare
Algoritmi de clasificareAlgoritmi de clasificare
Algoritmi de clasificareFlorin Leon
 
Teoria jocurilor (II)
Teoria jocurilor (II)Teoria jocurilor (II)
Teoria jocurilor (II)Florin Leon
 
Teoria jocurilor (I)
Teoria jocurilor (I)Teoria jocurilor (I)
Teoria jocurilor (I)Florin Leon
 
Arhitecturi de agenti (II)
Arhitecturi de agenti (II)Arhitecturi de agenti (II)
Arhitecturi de agenti (II)Florin Leon
 
Arhitecturi de agenti (I)
Arhitecturi de agenti (I)Arhitecturi de agenti (I)
Arhitecturi de agenti (I)Florin Leon
 
Introducere in domeniul agentilor
Introducere in domeniul agentilorIntroducere in domeniul agentilor
Introducere in domeniul agentilorFlorin Leon
 
Faza de testare (I)
Faza de testare (I)Faza de testare (I)
Faza de testare (I)Florin Leon
 
Faza de implementare
Faza de implementareFaza de implementare
Faza de implementareFlorin Leon
 
Sabloane de proiectare comportamentale (II)
Sabloane de proiectare comportamentale (II)Sabloane de proiectare comportamentale (II)
Sabloane de proiectare comportamentale (II)Florin Leon
 
Sabloane de proiectare comportamentale (Ib)
Sabloane de proiectare comportamentale (Ib)Sabloane de proiectare comportamentale (Ib)
Sabloane de proiectare comportamentale (Ib)Florin Leon
 
Sabloane de proiectare structurale (II)
Sabloane de proiectare structurale (II)Sabloane de proiectare structurale (II)
Sabloane de proiectare structurale (II)Florin Leon
 
Sabloane de proiectare structurale (I)
Sabloane de proiectare structurale (I)Sabloane de proiectare structurale (I)
Sabloane de proiectare structurale (I)Florin Leon
 
Sabloane de proiectare creationale (II)
Sabloane de proiectare creationale (II)Sabloane de proiectare creationale (II)
Sabloane de proiectare creationale (II)Florin Leon
 
Sabloane de proiectare creationale (I)
Sabloane de proiectare creationale (I)Sabloane de proiectare creationale (I)
Sabloane de proiectare creationale (I)Florin Leon
 
Faza de proiectare
Faza de proiectareFaza de proiectare
Faza de proiectareFlorin Leon
 

More from Florin Leon (20)

Faza de testare (II)
Faza de testare (II)Faza de testare (II)
Faza de testare (II)
 
Aspecte conexe procesului de dezvoltare
Aspecte conexe procesului de dezvoltareAspecte conexe procesului de dezvoltare
Aspecte conexe procesului de dezvoltare
 
Modele bazate pe energie
Modele bazate pe energieModele bazate pe energie
Modele bazate pe energie
 
Regresia liniara, logistica, softmax
Regresia liniara, logistica, softmaxRegresia liniara, logistica, softmax
Regresia liniara, logistica, softmax
 
Clasificarea bazata pe ansambluri. Selectia trasaturilor
Clasificarea bazata pe ansambluri. Selectia trasaturilorClasificarea bazata pe ansambluri. Selectia trasaturilor
Clasificarea bazata pe ansambluri. Selectia trasaturilor
 
Algoritmi de clasificare
Algoritmi de clasificareAlgoritmi de clasificare
Algoritmi de clasificare
 
Teoria jocurilor (II)
Teoria jocurilor (II)Teoria jocurilor (II)
Teoria jocurilor (II)
 
Teoria jocurilor (I)
Teoria jocurilor (I)Teoria jocurilor (I)
Teoria jocurilor (I)
 
Arhitecturi de agenti (II)
Arhitecturi de agenti (II)Arhitecturi de agenti (II)
Arhitecturi de agenti (II)
 
Arhitecturi de agenti (I)
Arhitecturi de agenti (I)Arhitecturi de agenti (I)
Arhitecturi de agenti (I)
 
Introducere in domeniul agentilor
Introducere in domeniul agentilorIntroducere in domeniul agentilor
Introducere in domeniul agentilor
 
Faza de testare (I)
Faza de testare (I)Faza de testare (I)
Faza de testare (I)
 
Faza de implementare
Faza de implementareFaza de implementare
Faza de implementare
 
Sabloane de proiectare comportamentale (II)
Sabloane de proiectare comportamentale (II)Sabloane de proiectare comportamentale (II)
Sabloane de proiectare comportamentale (II)
 
Sabloane de proiectare comportamentale (Ib)
Sabloane de proiectare comportamentale (Ib)Sabloane de proiectare comportamentale (Ib)
Sabloane de proiectare comportamentale (Ib)
 
Sabloane de proiectare structurale (II)
Sabloane de proiectare structurale (II)Sabloane de proiectare structurale (II)
Sabloane de proiectare structurale (II)
 
Sabloane de proiectare structurale (I)
Sabloane de proiectare structurale (I)Sabloane de proiectare structurale (I)
Sabloane de proiectare structurale (I)
 
Sabloane de proiectare creationale (II)
Sabloane de proiectare creationale (II)Sabloane de proiectare creationale (II)
Sabloane de proiectare creationale (II)
 
Sabloane de proiectare creationale (I)
Sabloane de proiectare creationale (I)Sabloane de proiectare creationale (I)
Sabloane de proiectare creationale (I)
 
Faza de proiectare
Faza de proiectareFaza de proiectare
Faza de proiectare
 

Recently uploaded

Publicatii ale fostilor elevi si profesori ai Colegiului Național „Horea, Clo...
Publicatii ale fostilor elevi si profesori ai Colegiului Național „Horea, Clo...Publicatii ale fostilor elevi si profesori ai Colegiului Național „Horea, Clo...
Publicatii ale fostilor elevi si profesori ai Colegiului Național „Horea, Clo...Lucretia Birz
 
ziua pamantului ziua pamantului ziua pamantului
ziua pamantului ziua pamantului ziua pamantuluiziua pamantului ziua pamantului ziua pamantului
ziua pamantului ziua pamantului ziua pamantuluiAndr808555
 
Concurs de lectură: „Bătălia Cărților 16-18 ani” pptx
Concurs de lectură: „Bătălia Cărților 16-18 ani” pptxConcurs de lectură: „Bătălia Cărților 16-18 ani” pptx
Concurs de lectură: „Bătălia Cărților 16-18 ani” pptxBibliotecaMickiewicz
 
Strategii-pentru-educatia-remedială-ppt.pptx
Strategii-pentru-educatia-remedială-ppt.pptxStrategii-pentru-educatia-remedială-ppt.pptx
Strategii-pentru-educatia-remedială-ppt.pptxMoroianuCristina1
 
Sistemul excretor la om, biologie clasa 11
Sistemul excretor la om, biologie clasa 11Sistemul excretor la om, biologie clasa 11
Sistemul excretor la om, biologie clasa 11CMB
 
Catalogul firmei de exercițiu Ancolex 2024.pptx
Catalogul firmei de exercițiu Ancolex 2024.pptxCatalogul firmei de exercițiu Ancolex 2024.pptx
Catalogul firmei de exercițiu Ancolex 2024.pptxCori Rus
 
Igiena sistemului digestiv , biologi clasa 11-a
Igiena sistemului digestiv , biologi clasa 11-aIgiena sistemului digestiv , biologi clasa 11-a
Igiena sistemului digestiv , biologi clasa 11-aCMB
 

Recently uploaded (7)

Publicatii ale fostilor elevi si profesori ai Colegiului Național „Horea, Clo...
Publicatii ale fostilor elevi si profesori ai Colegiului Național „Horea, Clo...Publicatii ale fostilor elevi si profesori ai Colegiului Național „Horea, Clo...
Publicatii ale fostilor elevi si profesori ai Colegiului Național „Horea, Clo...
 
ziua pamantului ziua pamantului ziua pamantului
ziua pamantului ziua pamantului ziua pamantuluiziua pamantului ziua pamantului ziua pamantului
ziua pamantului ziua pamantului ziua pamantului
 
Concurs de lectură: „Bătălia Cărților 16-18 ani” pptx
Concurs de lectură: „Bătălia Cărților 16-18 ani” pptxConcurs de lectură: „Bătălia Cărților 16-18 ani” pptx
Concurs de lectură: „Bătălia Cărților 16-18 ani” pptx
 
Strategii-pentru-educatia-remedială-ppt.pptx
Strategii-pentru-educatia-remedială-ppt.pptxStrategii-pentru-educatia-remedială-ppt.pptx
Strategii-pentru-educatia-remedială-ppt.pptx
 
Sistemul excretor la om, biologie clasa 11
Sistemul excretor la om, biologie clasa 11Sistemul excretor la om, biologie clasa 11
Sistemul excretor la om, biologie clasa 11
 
Catalogul firmei de exercițiu Ancolex 2024.pptx
Catalogul firmei de exercițiu Ancolex 2024.pptxCatalogul firmei de exercițiu Ancolex 2024.pptx
Catalogul firmei de exercițiu Ancolex 2024.pptx
 
Igiena sistemului digestiv , biologi clasa 11-a
Igiena sistemului digestiv , biologi clasa 11-aIgiena sistemului digestiv , biologi clasa 11-a
Igiena sistemului digestiv , biologi clasa 11-a
 

Metode de cautare

  • 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
  • 10. 10 Rezolvarea unei probleme prin căutare Stare inițială Stare scop Spațiul de căutare (spațiul problemei) Soluție 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
  • 13. 13 Existența soluției 12 14 11 15 10 13 9 5 6 7 8 4321 12 15 11 14 10 13 9 5 6 7 8 4321 ? 1000 $ 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
  • 22. 22 Reprezentarea Care este 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
  • 64. 64 Exemplu: căutarea greedy Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 65. 65Florin 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
  • 71. 71 Greedy și A*  f(n) = g(n) + h(n)  f(B) = 15 + 20 + 30 = 65  f(C) = 15 +10 + 35 = 60  Greedy alege nodul B (h = 30)  A* alege nodul C (f = 60) Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 72. Algoritmul A*: pseudocod 72Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
  • 73. 73Florin 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
  • 82. Efectul euristicilor monotone 82Florin 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
  • 90. 90 Algoritmul IDA*: pseudocod 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