Sunteți pe pagina 1din 58

3 REZOLVAREA

PROBLEMELOR PRIN C UTARE

- CUM I NDEPLINE TE SCOPUL UN AGENT

PRIN IDENTIFICAREA UNEI SECVEN E DE AC IUNI ATUNCI CND ACEST LUCRU NU SE POATE REALIZA PRINTR-O SINGUR AC IUNE

SIMONA NICOAR , UPG, PLOIE

TI

AGEN

I DE REZOLVARE A PROBLEMELOR

Un tip de agen i baza i pe scop care folosesc reprezent ri atomice. Dac mediul este observabil, discret, cunoscut i determinist atunci solu ia oric rei probleme este o secven fixat de ac iuni.

Formuleaz (scop i problem ) Caut Execut

AGEN

I DE REZOLVARE A PROBLEMELOR

function AGENT_REZ_PB (elem_percepute) secv n vid stare n Si scop n formuleaz _scop(stare) problem n formuleaz _problem (stare, scop) secv n caut _solu ie (problem ) dac secv = insucces atunci execut _ac iune (ac iune_nul ) altfel ct timp secv vid execut ac iune n prima(secv) execut _ac iune (ac iune) secv n rest (secv)

REZOLVAREA PROBLEMELOR

Ce nseamn rezolvarea unei probleme?


Algoritm de rezolvare a problemei Input: structura simbolic a problemei Strategie de control Output: solu ie Solu ie optim
4

PROBLEME BINE DEFINITE


ST RI; stare ini ial AC IUNI(s) REZULTAT(s, a) TEST_SCOP(s)

Si {a1,a2,,ak} s T/F
n

COST(s, a, s)

spa iul st rilor problemei graf o cale n spa iul st rilor costul unei c i

REZOLVAREA PROBLEMELOR

Probleme abstracte Clasificare probleme:


probleme tip jocuri y probleme ale lumii reale
y

EXEMPLE DE PROBLEME

Probleme tip jocuri


8-puzzle, 15-puzzle, 24-puzzle ... y Problema celor 8 regine y Problema aspiratorului y Criptoaritmetica
y

Problema misionarilor i canibalilor y Donald Knuth (1964)


y

EXEMPLE DE PROBLEME

Probleme ale lumii reale


Probleme de c utare a traseelor y Probleme de vizitare y Navigarea robo ilor y Secven ierea asambl rii
y

probleme complex computa ionale NP-complete: se poate verifica n timp polinomial dac o solu ie furnizeaz r spunsul da problemei de decizie asociate 8 NP-dificile

REZOLVAREA PROBLEMELOR

arbore de c utare spa iu de c utare


Strategia general de c utare s n Si repet a n select(AC IUNI(s)) s n REZULTAT(s,a) ct timp TEST_SCOP(s)=F

10

STRUCTURI DE DATE
PENTRU ARBORI DE CAUTARE
nod
y

nod stare

n parcurgerea spatiului de cautare un nod poate fi:


necunoscut y evaluat y expandat
y

FRONTIERA TERITORIU
11

STRATEGII DE CAUTARE
Cautare neinformata Cautare informata

Criterii de performan
1. 2. 3.

ale strategiilor:

Completitudine Optimalitate Complexitate timp i spa iu

costul total = costul asociat c ii solu ie + costul c ut rii


12

1. CAUTARE NEINFORMATA
cautare pe nivel, cautare de cost uniform, cautare n adncime (limitata), cautare n adncime cu nivel iterativ, cautare bidirectionala

13

1.1. CAUTAREA PE NIVEL (BREADTH FIRST SEARCH)


expandeaz nodurile pe nivele implementeaz FRONTIERA sub form de coad strategie sistematic g(nod) = adncime(nod)

14

STRATEGIA DE C UTARE PE NIVEL


(C
UTARE N SPA IUL ST RILOR)

1. nod un nod cu nod.stare Si, g(nod) 0 2. dac TEST_SCOP(nod.stare) = T atunci sol SOLU IE(nod) 3. FRONTIERA {nod} coad , TERITORIU 4. repet 4.1. dac FRONTIERA= atunci ntoarce INSUCCES /*nu exist solu ie*/ 4.2. nod POP(FRONTIERA) /*nodul de adncime minim */ 15 4.3. TERITORIU TERITORIU {nod.stare}

STRATEGIA DE C UTARE PE NIVEL


(C
UTARE N SPA IUL ST RILOR)

4.4. pentru toate aj {AC IUNI(nod.stare)} execut /*expandeaz nodul nod, adic genereaz succesorii sai directi */ 4.4.1. cj = SUCCESOR(nod) /*cj nod, cj.stare REZULTAT(nod.stare, aj)*/ 4.4.2. g(cj) g(nod)+1 4.4.3. dac cj.stare FRONTIERA TERITORIU atunci i. dac TEST_SCOP(cj.stare) = T atunci sol SOLU IE(cj), g(cj), ntoarce SUCCES ii. FRONTIERA INSERT(FRONTIERA, cj) 16 sfr it

STRATEGIA DE C UTARE PE NIVEL


Caracteristici:
y

C utarea pe nivel este complet (dac b finit); C utarea pe nivel este optimal (cnd costul este o func ie nedescresc toare n adncimea nodurilor i identic pentru toate ac iunile) - solu ia cale de lungime minim Complexitatea strategiei este exponen ial

O(bd)

17

1.2. CAUTAREA DE COST UNIFORM


expandeaz cu prioritate nodurile cele mai ieftine (de cost minim) cheapest first search Implementeaz FRONTIERA sub form de coad de priorit i ordonat dup g [+hash table] CCU g se te solu ia de cost minim (cea mai ieftin solu ie) dac : g(SUCCESOR(nod)) g(nod),  nod (costul unei c i nu scade de-a lungul acesteia )

18

19

STRATEGIA DE C UTARE DE COST UNIFORM


(C
UTARE N SPA IUL ST RILOR)

1. nod un nod cu nod.stare Si, g(nod) 0 2. dac TEST_SCOP(nod.stare) = T atunci sol SOLU IE(nod) 3. FRONTIERA {nod} coad de priorit i ordonat dup g, TERITORIU 4. repet 4.1. dac FRONTIERA= atunci ntoarce INSUCCES /*nu exist solu ie*/ 4.2. nod POP(FRONTIERA) /*nodul de cost minim*/ 4.3. dac TEST_SCOP(nod.stare) = T atunci sol 4.4. TERITORIU SOLU IE(nod), g(nod), ntoarce SUCCES TERITORIU {nod.stare}
20

STRATEGIA DE C UTARE DE COST UNIFORM


(C
UTARE N SPA IUL ST RILOR)

4.5. pentru toate aj {AC IUNI(nod.stare)} execut /*expandeaz nodul nod, adic genereaz succesorii sai directi */ 4.5.1. cj = SUCCESOR(nod) /*cj nod, cj.stare REZULTAT(nod.stare, aj)*/ 4.5.2. g(cj) g(nod)+ cost_cale(nod.stare, cj.stare) 4.5.3. dac cj.stare FRONTIERA TERITORIU atunci FRONTIERA INSERT(FRONTIERA, cj) altfel dac  cj FRONTIERA a.. {cj.stare = cj.stare i g(cj)> g(cj)} atunci n FRONTIERA nlocuie te cj cu cj sfr it
21

CAUTAREA DE COST UNIFORM


Diferen e fa Caracteristici:

de c utarea pe nivel

C utarea este complet (cnd costul fiec rui pas dep e te e>0 i nu sunt noduri cu nr infinit de succesori); y C utarea este optimal (n general); expandeaz nodurile n ordinea costurilor optimale. Se poate bloca ntr-o bucl infinit dac exist o cale cu o secven infinit de ac iuni de cost 0; y Complexitatea strategiei este exponen ial
y

O(b1+[C*/e]).

22

1.3. C UTAREA N ADNCIME


depth-first search - expandeaz cu prioritate nodurile cele mai adnci n FRONTIERA. Implementeaz FRONTIERA sub form de stiv . Are importan succesorilor? ordinea de determinare a

23

C UTAREA N ADNCIME

Caracteristici:
C utarea in adncime nu este complet n general; y C utarea nu este optimal ; y Complexitatea spa iu este polinomial O(bh); y Complexitatea timp este exponen ial O(bh).
y

Avantaje i dezavantaje Metoda Backtracking complexitate spa iu O(h) n ce contexte este recomandabil strategia?
24

C UTAREA N ADNCIME LIMITAT

Impune o limit a adncimii de c utare, H n ce contexte este recomandabil strategia?

25

STRATEGIA DE C UTARE
N ADNCIME LIMITAT
(C
UTARE N SPA IUL ST RILOR)

function Rec_DF(MAKE_NODE(Si), H) returneaz solu ie / INSUCCES / NTRERUPERE function Rec_DF(nod, limita) dac TEST_SCOP(nod.stare) = T atunci sol SOLU IE(nod) altfel dac limita = 0 atunci returneaz NTRERUPERE altfel 1.1. apare_ntrerupere F 1.2. pentru toate aj {AC IUNI(nod.stare)} execut /*expandeaz nodul nod */
26 1.2.1. cj = SUCCESOR(nod) /*cj nod, cj.stare REZULTAT(nod.stare, aj)*/

STRATEGIA DE C UTARE
N ADNCIME LIMITAT
(C
UTARE N SPA IUL ST RILOR)

1.2.2. result Rec_DF(cj , limita-1) 1.2.3. dac result = NTRERUPERE atunci apare_ntrerupere T altfel dac result INSUCCES atunci returneaz SOLU IE(nod) 1.3. dac apare_ntrerupere atunci returneaz NTRERUPERE altfel returneaz INSUCCES sfr it
27

C UTAREA N ADNCIME LIMITAT


Caracteristici:
C utarea este complet numai dac H d; y C utarea nu este optimal ; y Complexitatea spa iu este polinomial O(bH); y Complexitatea timp este exponen ial O(bH).
y

28

COMPARA IE CN CCU - CA

Optimalitate Cerin ele de spa iu n cazul unui arbore de c utare infinit

29

1.3. C UTAREA N ADNCIME


CU NIVEL ITERATIV
Pentru limite ale adncimii succesive realizeaz c utarea n adncime. Combin c utarea pe nivel cu cea n adncime n scopul ob inerii avantajelor acestora.

pentru limita 0, g execut result Rec_DF(MAKE_NODE(Si), limita) dac result NTRERUPERE atunci returneaz result

30

C UTAREA N ADNCIME
CU NIVEL ITERATIV

Caracteristici: y C utarea este complet (dac b finit); y C utarea este optimal (cnd costul este o func ie nedescresc toare n adncimea nodurilor); y Complexitatea spa iu este polinomial O(bd); y Complexitatea timp este exponen ial O(bd). Este strategia neinformat preferat cnd spa iul de c utare este mare iar adncimea solu iei nu se cunoa te. Strategia poate combina c utarea pe nivel cu c utarea de cost uniform prin cre terea iterativ a costului c ii.

31

1.4. C UTAREA BIDIREC IONAL


declan eaz dou c ut ri simultane:


una nainte pornind de la starea ini ial , y cealalt napoi pornind de la starea scop
y

i opre te c utarea solu iei atunci cnd cele dou c ut ri se ntlnesc (cnd cele dou frontiere se intersecteaz ).
32

C UTAREA BIDIREC IONAL


y

Ce nseamn c utare napoi pornind de la scop ? Ce se ntmpl n cazul n care exist mai multe st ri scop? Procesul de testare a intersec iei a dou frontiere poate fi realizat n timp constant, independent de num rul de st ri. Dac una dintre c ut ri se face n adncime cu nivel iterativ, spa iul necesar de regul se reduce.
33

C UTAREA BIDIREC IONAL


Caracteristici: y C utarea este complet (dac b finit); y C utarea nu este optimal (chiar dac cele dou c ut ri se fac pe nivel); y Complexitatea timp i spa iu este O(bd/2) (dac ambele c ut ri se fac pe nivel).

Cnd este aplicabil strategia? Cnd se preteaz folosirea strategiei?


34

EVALUAREA COMPARATIV A STRATEGIILOR


DE C UTARE NEINFORMAT
(C
UTARE N ARBORI)

35

2. C UTARE INFORMAT (C UTARE EURISTIC )


Pentru a ajunge la starea scop mai repede dect permit strategiile de c utare discutate este necesar folosirea de cuno tin e suplimentare, specifice problemei de rezolvat, care va ghida procesul de c utare a solu iei. C utarea informat ncearc reducerea num rului de st ri inspectate din spa iul de c utare pe baza unor func ii numite euristici care estimeaz distan a/costul de la starea curent la starea scop. Ele se deduc din experien a acumulat n rezolvarea problemelor din 36 clasa respectiv .

C UTARE INFORMAT

Euristicile nu sunt ntotdeauna exacte; folosirea lor nu garanteaz g sirea solu iei (optime), ns au drept obiective:
s asigure determinarea unei solu ii, dac aceasta exist , y s asigure determinarea unei solu ii ct mai apropiate de optim, dac problema admite mai multe solu ii, y s asigure eliminarea c ilor imposibile de rezolvare a problemei ntr-un stadiu timpuriu al rezolv rii.
y
37

C UTARE INFORMAT

Calitatea unei euristici este direct propor ional cu calitatea solu iei identificate i invers propor ional cu resursele de calcul necesare identific rii acesteia.

38

STRATEGIA DE C UTARE BEST-FIRST


Este o strategie de c utare general n care un nod este selectat pentru expandare pe baza unei func ii de evaluare f. Alegerea formei func iei f determin de fapt strategia de c utare.
Cnd f este identic cu func ia cost g, strategia best-first se confund cu strategia de cost uniform. y Cnd f d adncimea nodului, strategia best-first se confund cu strategia de c utare pe nivel etc.
y
39

STRATEGIA DE C UTARE BEST-FIRST


Dac f con ine drept component o func ie euristic h de estimare a calit ii nodului, atunci strategia rezultat este una informat . Calitatea unui nod poate fi estimat prin evaluarea: y costului din starea curent n starea final , sau y dificult ii asociate rezolv rii subproblemei corespunz toare sau y calit ii solu iilor posibile care con in nodul sau y cantit ii de informa ie care se poate ob ine prin expandarea nodului i importan a sa n ghidarea c ut rii.

40

STRATEGIA DE C UTARE BEST-FIRST


De exemplu, h(nod) poate fi estimarea distan ei n linie dreapt de la ora ul corespunz tor nodului curent nod (ex. Sibiu) la ora ul stare final , Bucure ti. n cazul general, vom considera func ia h ca fiind o func ie ne-negativ , dependent de problem , cu urm toarea restric ie: dac nod este un nod scop, atunci h(nod)=0.
41

STRATEGIA DE C UTARE BEST-FIRST


Obs. Selec ia nodului cel mai promi tor se face dintre toate nodurile generate pn la momentul curent, indiferent de calea n arborele de c utare pe care acesta se afl . Este complet (dac elimin ntotdeauna c ile ciclice) Strategia hill-climbing (metoda gradientului)
42

2.1. STRATEGIA GREEDY BEST-FIRST


Expandeaz cu prioritate nodurile aflate cel mai aproape de scop conform unei estim ri anume (c utare direc ionat ): f=h
y

exemplu problema traseului

C utarea nu este complet (ex. Ia i-F g ra ). C utarea nu este optimal (sol. ASFB). Complexitatea timp i spa iu este O(bm), unde m este adncimea maxim a arborelui.

43

44

2.2. STRATEGIA A*

Greedy best-first + c utarea de cost uniform Expandeaz mai nti nodul pentru care costul estimat al celei mai ieftine solu ii care l con ine este minim: f=g+h (Strategia minimizeaz costul total al c ii.) f(nod) reprezinta o estimare a costului real: f*(nod) = g(nod) + h*(nod)

45

STRATEGIA A*
un nod cu nod.stare Si, nod.f f(nod) TEST_SCOP(nod.stare) = T atunci sol SOLU IE(nod) 3. FRONTIERA {nod} coad de priorit i ordonat dup f, TERITORIU 4. repet 4.1. dac FRONTIERA= atunci ntoarce INSUCCES /*nu exist solu ie*/ 4.2. nod POP(FRONTIERA) /*nodul pentru care nod.f este minim */ 4.3. dac TEST_SCOP(nod.stare) = T atunci sol SOLU IE(nod), f(nod), ntoarce SUCCES 4.4. TERITORIU TERITORIU {nod.stare} 4.5. pentru toate aj {AC IUNI(nod.stare)} execut /*expandeaz nodul nod */ 4.5.1. cj = SUCCESOR(nod) /*cj nod, cj.stare REZULTAT(nod.stare, aj)*/
46

1. nod 2. dac

STRATEGIA A*
4.5.2. f(cj) 4.5.3. cj.f 4.5.4. dac g(nod)+ cost_cale(nod.stare,cj.stare)+ + h(nod) f(cj) cj.stare FRONTIERA TERITORIU atunci FRONTIERA INSERT(FRONTIERA, cj)

altfel 4.5.4.1. fie cj din FRONTIERA a.. cj.stare = cj.stare 4.5.4.2. dac f(cj)> f(cj)} atunci cj TERITORIU atunci TERITORIU - {cj.stare} INSERT(FRONTIERA,cj) 47 i. n FRONTIERA nlocuie te cj cu cj ii. dac TERITORIU FRONTIERA 4.5.4.3. ignor sfr it

nodul cj

STRATEGIA A*

Condi ii pentru optimalitatea strategiei (calea de cost minim) h s fie o euristic admisibil * (s identifice calea de cost minim) y h s fie o euristic monoton (consistent ) **
y

(*) pentru c utarea n arbori (**) pentru c utarea n grafuri


48

STRATEGIA A*

Defini ie. O func ie euristic h este admisibil dac 0 <= h(nod) <= h*(nod),  nod. O astfel de euristic nu supra-estimeaz niciodat costul real al celei mai bune solu ii care con ine nodul nod. Euristicile admisibile sunt prin defini ie optimiste deoarece consider costul rezolv rii problemei mai redus dect este acesta n realitate. Defini ie. O func ie euristic h este monoton dac  nod, nod = SUCCESOR(nod) h(nod) < cost_cale(nod.stare, nod.stare) + h(nod ). -- inegalitatea triunghiului -Obs. O euristic monoton este admisibil .

49

STRATEGIA A*

Strategia A* este complet dac : y b finit y cost_cale(nod.stare, nod.stare) > ct.,  nod, nod = SUCCESOR(nod)

50

STRATEGIA A*

Dac C* este costul (real) al c ii solu iei optime, atunci


A* expandeaz toate nodurile cu f(nod) < C* y A* poate expanda apoi noduri pentru care f(nod) = C*
y

A* nu expandeaz nici un nod cu f(nod) > C* (ex. subarborele cu r d cina Timi oara poate fi ignorat i totu i garanteaz optimalitatea solu iei). Nici un alt algoritm optimal care extinde c ile de c utare pornind de la r d cin nu expandeaz mai pu ine noduri dect A*.

51

STRATEGIA A*

Complexitatea timp asociat strategiei este exponen ial n eroarea maxim absolut a euristicii. Complexitatea spa iu dep e te complexitatea timp.

52

STRATEGIA A*

Gradul de informare al unui algoritm A* Definitie: Fie doi algoritmi A*, A1 i A2, cu func iile de evaluare y f1(nod) = g1(nod) + h1(nod) y f2(nod) = g2(nod) + h2(nod)

Algoritmul A2 este mai informat dect algoritmul A1 dac h2(nod) > h1(nod),  nod a.. nod.stare Sf (A2 expandeaz mai pu ine noduri dect A1) Un algoritm A* este cu att mai informat cu ct h(nod) este mai 53 apropiat de h*(nod).

STRATEGIA A*

Exemplu de determinare a func iei de evaluare euristic f pentru 8-puzzle


O c utare exhaustiv presupune inspectarea a 320 = 3.5 * 109 st ri. y Exemple euristici
y

54

STRATEGIA A*

Calitatea unei euristici este data de factorul de ramificare real b*: N = 1+ b*+(b*)2+... +(b*)d

De exemplu, daca A* gaseste o solutie la adncimea 5 utiliznd 52 de noduri, atunci factorul real de ramificare este 1.91.
55

STRATEGIA A*

Construirea unor euristici bune (inteligen a):


prin relaxarea defini iei problemei (ex. 8-puzzle: h1, h2, max(h1,h2)) y prin stocarea costurilor precalculate ale solu iilor subproblemelor y prin nv area din experien y prin utilizarea informa iilor statistice despre problem
y

56

STRATEGIA A*
Relaxarea defini iei problemei

O func ie euristic h se nume te -admisibil dac h(nod) <= h*(nod) + , >0 Algoritmul A* care utilizeaz o func ie de evaluare f cu o component h -admisibil g se te ntotdeauna o solu ie al c rei cost dep e te costul solu iei optime cu cel mult .
57

METODOLOGIA REZOLV RII PROBLEMELOR PRIN C UTARE FUNC IONEAZ I GARANTEAZ G SIREA REZULTATULUI, CARE ESTE O SECVEN DE AC IUNI, NUMAI ATUNCI CND MEDIUL ESTE:

total observabil cunoscut (se cunoa te setul de ac iuni posibile) discret (nr. de ac iuni este finit) determinist (se cunoa te rezultatul aplic rii unei ac iuni) static (nu exist nimic n sistem care ar putea modifica sistemul, n afara ac iunilor)

58