1 / 41

Artificial Intelligence

Artificial Intelligence. University Politehnica of Bucharest 2005-2006 Adina Magda Florea http://turing.cs.pub.ro/ai_06. Curs nr. 2. Strategii de rezolvare a problemelor Reprezentarea solutiei problemei Strategii de cautare de baza Strategii de cautare informate.

Télécharger la présentation

Artificial Intelligence

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Artificial Intelligence University Politehnica of Bucharest 2005-2006 Adina Magda Florea http://turing.cs.pub.ro/ai_06

  2. Curs nr. 2 Strategii de rezolvare a problemelor • Reprezentarea solutiei problemei • Strategii de cautare de baza • Strategii de cautare informate

  3. 1. Reprezentarea solutiei problemei • O structura simbolica care sa poata reprezenta descrierea initiala a problemei si fiecare obiect candidat la solutie. • O multime de instrumente computationale capabile sa transforme descrierea unui obiect (structura simbolica) intr-o noua descriere in scopul de a investiga sistematic toti candidatii la solutie. • O metoda de planificare efectiva care sa indice ordinea de aplicare a transformarilor astfel incat solutia problemei sa fie gasita cat mai repede.

  4. 1.1. Rezolvarea problemei reprezentataprin spatiul starilor • stare, spatiu de stari, stare initiala, stare finala • (Si, O, Sf) • Solutia problemei

  5. 8-puzzle

  6. 1.2 Rezolvarea problemei reprezentata prin grafuri SI/SAU • (Pi, O, Pe) • Semnificatie graf SI/SAU • Nod rezolvat • Nod nerezolvabil • Solutia problemei

  7. Graf SI/SAU

  8. Turnurile din Hanoi

  9. 1.3 Echivalenta reprezentarilor

  10. 2. Strategii de cautare de baza Criterii de caracterizare • Completitudine • Optimalitate • Complexitate • Capacitatea de revenire • Informare • Conventii: nod necunoscut, evaluat, expandat, FRONTIERA, TERITORIU

  11. Costuri ale cautarii

  12. 2.1. Cautari neinformate in spatiul starilor Algoritm NIV: Strategia cautarii pe nivel in spatiul starilor 1. Initializeaza listele FRONTIERA  {Si}, TERITORIU  {} 2. dacaFRONTIERA = {} atunci intoarce INSUCCES 3. Elimina primul nod S din FRONTIERA si insereaza-l in TERITORIU 4. Expandeaza nodul S 4.1. Genereaza toti succesorii directi Sj ai nodului S 4.2. pentru fiecare succesor Sj al lui S executa 4.2.1. Stabileste legatura Sj S 4.2.2. daca Sj este stare finala atunci i. Solutia este (Sj, S, .., Si) ii. intoarce SUCCES 4.2.3. Insereaza Sj in FRONTIERA, la sfarsit 5. repeta de la 2 sfarsit.

  13. Caracteristici cautare pe nivel • Algoritmul presupune spatiul de cautare arbore si nu graf • Pentru un spatiu de cautare graf se insereaza pasul 3’ 3’. daca S FRONTIERA  TERITORIU atuncirepeta de la 2 Strategia cautarii in adancime in spatiul starilor • Intr-o reprezentare a solutiei problemei prin spatiul starilor adancimea unui nod se defineste astfel: • Ad(Si) = 0, unde Si este nodul stare initiala, • Ad(S) = Ad(Sp)+1, unde Sp este nodul predecesor nodului S.

  14. Algoritm ADANC(AdMax): Strategia cautarii in adancime in spatiul starilor 1. Initializeaza listele FRONTIERA  {Si}, TERITORIU  {} 2. dacaFRONTIERA = {} atunci intoarce INSUCCES 3. Elimina primul nod S din FRONTIERA si insereaza-l in TERITORIU 3’. daca Ad(S) = AdMax atunci repeta de al 2 4. Expandeaza nodul S 4.1. Genereaza toti succesorii directi Sj ai nodului S 4.2. pentru fiecare succesor Sj al lui S executa 4.2.1. Stabileste legatura Sj S 4.2.2. daca Sj este stare finala atunci i. Solutia este (Sj,.., Si) ii. intoarce SUCCES 4.2.3. Insereaza Sj in FRONTIERA, la inceput 5. repeta de la 2 sfarsit.

  15. Caracteristici cautare in adancime • Cautare in adincime cu nivel iterativ (ID) pentru AdMax=1, Val executa ADANC(AdMax) Caracteristici cautare in adancime cu nivel iterativ Cautare bidirectionala • Care strategie este mai buna ?

  16. 2.2. Cautari neinformate in grafuri SI/SAU Adancimea unui nod • Ad(Si) = 0, unde Si este nodul problema initiala, • Ad(S) = Ad(Sp) + 1 daca Sp este nod SAU predecesor al nodului S, • Ad(S) = Ad(Sp) daca Sp este nod SI predecesor al nodului S.

  17. Algoritm NIV-SI-SAU: Strategia cautarii pe nivel in arbori SI/SAU. 1. Initializeaza listele FRONTIERA  {Si}, TERITORIU  {} 2. Elimina primul nod S din FRONTIERA si insereaza-l in TERITORIU 3. Expandeaza nodul S 3.1. Genereaza toti succesorii directi Sj ai nodului S 3.2. pentru fiecare succesor Sj al lui S executa 3.2.1. Stabileste legatura Sj S 3.2.2. daca Sj reprezinta o multime de cel putin 2 subprobleme atunci /* este nod SI */ i. Genereaza toti succesorii subprobleme Skj ai lui Sj ii. Stabileste legaturile intre nodurile Skj Sj iii. Insereaza nodurile Skj in FRONTIERA, la sfirsit 3.2.3. altfel insereaza Sj in FRONTIERA, la sfirsit

  18. 4. daca nu s-a generat nici un succesor al lui S in pasul precedent (3) atunci 4.1.daca S este nod terminal etichetat cu o problema neelementara atunci 4.1.1. Eticheteaza S nerezolvabil 4.1.2. Eticheteaza cu nerezolvabil toate nodurile predecesoare lui S care devinnerezolvabile datorita lui S 4.1.3. daca nodul Si este nerezolvabil atunci intoarce INSUCCES /* problema nu are solutie */ 4.1.4. Elimina din FRONTIERA toate nodurile care au predecesori nerezolvabili 4.2.altfel /* S este nod terminal etichetat cu o problema elementara */ 4.2.1. Eticheteaza S rezolvat 4.2.2. Eticheteaza cu rezolvat toate nodurile predecesoare lui S care devinrezolvate datorita lui S 4.2.3. daca nodul Si este rezolvat atunci i. Construieste arborele solutie urmarind legaturile ii. intoarce SUCCES /* s-a gasit solutia */ 4.2.4. Elimina din FRONTIERA toate nodurile rezolvate si toate nodurilecare au predecesori rezolvati 5. repeta de la 2 sfarsit.

  19. 2.3. Complexitatea strategiilor de cautare • B - factorul de ramificare al unui spatiu de cautare 8-puzzle • Numar de miscari: • 2 m pt colt = 8 • 3 m centru lat = 12 • 4m centru  24 miscari • B = nr. misc. / nr. poz. p. liber = 2.67 • Numar de miscari: • 1 m pt colt = 4 • 2 m centru lat = 8 • 3m centru  15 miscari  B = 1.67

  20. Complexitatea strategiilor de cautare • B - factorul de ramificare Rad – B noduri, B2 pe niv 2, etc. • Numarul de stari posibil de generat pe un nivel de cautare d este Bd • T - numarul total de stari generate intr-un proces de cautare, d – adancime nod solutie T = B + B2 + … + Bd = O(Bd)

  21. Numar de noduri generate • Cautare pe nivel B + B2 + … + Bd + (Bd+1-B) = O(Bd+1) B - factor de ramificare, d - adancime solutie • Cautare in adancime B - factor de ramificare, m - adancimea maxima B*m+1 • Cautare cu nivel iterativ d*B+(d-1)*B2+ … + (1)*Bd = O(Bd)

  22. Numar de noduri generate B=10, d=5 • Cautare pe nivel 10+100+1000+10000+100000+999990 = 1 111 100 • Cautare cu nivel iterativ 50+400+3000+20000+100000=123 450

  23. Complexitatea strategiilor de cautare B – factor de ramificare, d – adancimea solutiei, m – adancimea maxima a arborelui, l –limita de cautare (AdMax)

  24. 3. Strategii de cautare informate Cunostintele euristice pot fi folosite pentru a creste eficienta cautarii in trei moduri: • Selectarea nodului urmator de expandat in cursul cautarii. • In cursul expandarii unui nod al spatiului de cautare se poate decide pe baza informatiilor euristice care dintre succesorii lui vor fi generati si care nu • Eliminarea din spatiul de cautare a anumitor noduri generate

  25. 3.1 Cautare informata de tip "best-first" • Evaluarea cantitatii de informatie care poate fi obtinuta prin expandarea unui nod si importanta acestei informatii in ghidarea procesului de cautare • Calitatea unui nod este estimata de functia de evaluare euristica, notata w(n) pentru nodul n • strategia de cautare a alpinistului • strategia de cautare “best-first”

  26. Algoritm BFS: Strategia de cautare "best-first" in spatiul starilor 1. Initializeaza listele FRONTIERA  {Si}, TERITORIU  {} 2. Calculeaza w(Si) si asociaza aceasta valoare nodului Si 3. dacaFRONTIERA = {} atunci intoarce INSUCCES 4. Elimina nodul S cu w(S) minim din FRONTIERA si insereaza-l in TERITORIU 5. daca S este stare finala atunci i. Solutia este (S,.., Si) ii. intoarce SUCCES 6. Expandeaza nodul S 6.1. Genereaza toti succesorii directi Sj ai nodului S 6.2. pentru fiecare succesor Sj al lui S executa 6.2.1 Calculeaza w(Sj) si asociaza-l lui Sj 6.2.2. Stabileste legatura Sj S

  27. 6.2.3. dacaSj FRONTIERA  TERITORIU atunci introduce Sj in FRONTIERA cu w(Sj) asociat 6.2.5. altfel i. Fie S’j copia lui Sj din FRONTIERA sau TERITORIU ii. daca w(Sj) < w(S’j) atunci - Distruge legatura S’j Sp, cu Sp pred. lui S’j - Stabileste legatura S’j S, si actualizeaza costul lui S’j la w(Sj) -dacaS’jeste in TERITORIU - atunci elimina S’j din TERITORIU si insereaza S’jin FRONTIERA iii. altfel ignora nodul Sj 7. repeta de la 3 sfarsit.

  28. Varianta alternativa pentru pasii 5.2.5 si 6 6.2.5. altfel i. Fie S’j copia lui Sj din FRONTIERA sau TERITORIU ii. daca w(Sj) < w(S’j) atunci - Elimina S’j din FRONTIERA sau TERITORIU (de unde apare copia) - Insereaza Sj cu w(Sj) asociat in FRONTIERA iii. altfel ignora nodul Sj 7. repeta de la 3 sfarsit.

  29. Cazuri particulare • Strategia de cautare "best-first" este o generalizare a strategiilor de cautare neinformate - strategia de cautare pe nivel w(S) = Ad(S) - strategia de cautare in adincime w(S) = -Ad(S) • Strategia de cautare de cost uniform • Minimizarea efortului de cautare – cautare euristica w(S) = functie euristica

  30. 3.2 Cautarea solutiei optime in spatiul starilor. Algoritmul A* w(S) devine f(S) cu 2 comp: • g(S), o functie care estimeaza costul real g*(S) al caii de cautare intre starea initiala Si si starea S, • h(S), o functie care estimeaza costul real h*(S) al caii de cautare intre starea curenta S si starea finala Sf. • f(S) = g(S) + h(S) • f*(S) = g*(S) + h*(S)

  31. Componentele functiei euristice din algoritmul A*

  32. Calculul lui f(S) • Calculul lui g(S) • Calculul lui h(S) • Trebuie sa fie admisibila • O functie euristica h se numeste admisibila daca pentru orice stare S, h(S)  h*(S). • Definitia stabileste conditia de admisibilitate a functiei h si este folosita pentru a definiproprietatea de admisibilitatea unui algoritm A*.

  33. A* admisibil Fie un algoritm A* care utilizeaza cele doua componente g si h ale functiei de evaluare f. Daca • (1) functia h satisface conditia de admisibilitate • (2) pentru orice doua stari S, S', unde c > 0 este o constanta si costul c este finit • atunci algoritmul A* este admisibil, adica este garantat sa gaseasca calea de cost minim spre solutie. • Completitudine

  34. Implementare A* Se modifica algoritmul Strategia de cautare "best-first" in spatiul starilor astfel: … 2. Calculeaza w(Si)=g(Si) + h(Si)si asociaza aceasta valoare nodului Si 3. dacaFRONTIERA = {} atunci intoarce INSUCCES - nemodificat 4. Elimina nodul S cu w(S) minim din FRONTIERA si insereaza-l in TERITORIU - nemodificat ….. 6.2.5. altfel i. Fie S’j copia lui Sj din FRONTIERA sau TERITORIU ii. dacag(Sj) < g(S’j) atunci …

  35. Caracteristicile euristicii algoritmului A* • Fie doi algoritmi A*, A1 si A2, cu functiile de evaluare h1 si h2 admisibile, g1=g2 • Se spune ca algoritmul A2 este mai informat decit algoritmulA1 daca pentru orice stare S cu SSf Se spune ca h2 domina h1 • monotonie

  36. Determinarea functiei de evaluare f • 8-puzzle • Problema comis-voiajorului h2(S) = costul arborelui de acoperire de cost minim al oraselor neparcurse pana in starea S

  37. Problema misionarilor si canibalilor

  38. Problema misionarilor si canibalilor

  39. Relaxarea conditiei de optimalitate a algoritmului A* • O functie euristica h se numeste -admisibila daca cu  > 0 • Algoritmul A* care utilizeaza o functie de evaluare f cu o componenta h  -admisibila gaseste intotdeauna o solutie al carei cost depaseste costul solutiei optime cu cel mult. • Un astfel de algoritm se numeste algoritm A*  -admisibil iar solutia gasita se numeste solutie  -optimala.

  40. Relaxarea conditiei de optimalitate a algoritmului A* • 8-puzzle

  41. IDA* • Fiecare iteratie este o cautare in adancime • Cautarea in adancime este modificata a.i. sa utilizeze o limita de cost (CostMax) in loc de o limita a adancimii (AdMax) • Fiecare iteratie expandeaza nodurile din interiorul unui contur de cost CostMax pentru a vedea care sunt nodurile de pe urmatorul contur • La fiecare iteratie, CostMax este min(f(Sj)), cu Sj nodurile din iteratia anterioara

More Related