Documente Academic
Documente Profesional
Documente Cultură
Morogan Luciana
Academia Tehnica Militara
2 august 2012
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Cuprins I
1
Inteligenta Computationala si Cunoasterea Ce este Inteligenta Articiala? Agentii si mediul inconjurator Reprezentare si rationament Aplicatii Rezolvarea de probleme Tehnici fuzzy Rezolvarea problemei Formularea problemei Probleme si solutii bine denite Masurarea performantei in rezolvarea problemelor Algoritmi de cautare Obiecte si termeni in Prolog Unicarea(Matching) Liste
2/58
Inteligenta Articiala
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Cuprins II
4
Cautarea informata
Best-rst Algoritmul A* Algoritmul IDA* Concluzii nale
Inteligenta Articiala
3/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Cuprins
Inteligenta Computationala si Cunoasterea Ce este Inteligenta Articiala? Agentii si mediul inconjurator Reprezentare si rationament Aplicatii 2 Rezolvarea de probleme Tehnici fuzzy Rezolvarea problemei Formularea problemei Probleme si solutii bine denite Masurarea performantei in rezolvarea problemelor Algoritmi de cautare 3 Obiecte si termeni in Prolog Unicarea(Matching) Liste 4 Algoritmi de cautare Inteligenta Articiala Cautarea neinformata
1
4/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Studiul designului agent , ilor inteligent , i (progamelor). Agent - ceva ce act a n interiorul unui mediu (viermi, c aini, , ioneaz avioane, oameni, organizat ii, societatea). , Agent Inteligent - sistem ce act a inteligent: , ioneaz ceea ce face este corespunz ator propriilor scopuri e exibil la modic arile mediului nconjur ator s , i al scopurilor nvat a din experient a , , face alegerile potrivite t and cont de limit arile perceptuale s , in ,i computat , iile nite
Inteligenta Articiala
5/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Z ^
Inteligenta Articiala
7/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
&
Inteligenta Articiala
9/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Reprezentare si rationament
Presupusele probleme r am an: achizit , ionarea s , i reprezentarea cunos , tint , elor modalit at aspunde la , i de utilizare a cunos , tint , elor pentru a r ntreb ari s i a rezolva probleme , Concluzie - vom folosi sisteme de reprezentare s , i rat , ionament (RRS: representation and reasoning systems): limbaj de comunicare cu calculatorul modalitatea de a da un nt , eles (sens) limbajului proceduri de a calcula r aspunsuri pentru inputuri date asociate limbajului Limbajul poate : low-level: Fortron, C++ sau Lisp limbaje naturale: Engleza
Inteligenta Articiala 10/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Reprezentare si rationament
Reprezent ari: lumea poate descris a n termeni de indivizi s , i relat , ia dintre aces tia (ca n logic a sau n limbajul natural). Aces tia pot , , concret , i sau abstract , i. pentru ecare sarcin a sau domeniu se identic a indivizi specici s i relat iile ce pot folosite pentru a exprima ce este , , adev arat n leg atur a cu lumea considerat a C ateva atribute asupra mediului nconjur ator pot : n totalitate part , ial observabil Deci starea mediului nconjur ator poate : total observabil a part a , ial observabil
Inteligenta Articiala 11/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Reprezentare si rationament
Agentul Inteligent poate : deterministic - act a unic ies , iunile agentului determin , irea stocastic - ies arat acelas , irea (rezultatul) nu este neap ,i discret - spat , iul act , iunilor este nit continuu - spat , iul act , iunilor este innit benign adversarial - mediul nconjur ator reprezent and adversarul
Inteligenta Articiala
12/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Aplicatii
Domenii: robotic a jocuri nant ,e medicin a (diagnosticare) nt , elegerea s , i interpretarea webului (Microsoft, Google)
Inteligenta Articiala
13/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Aplicatii
La nivelul abstract, exist a 4 sarcini:
1
modelarea mediului - robotul trebuie s a poat a modela mediul si propriile capacit at ,i rat a , ionament evident/percept , ie - robotul trebuie s determine ce altceva se mai g as es te n mediul nconjur ator , , baz andu-se pe informat , iile de simt , act , i scopul, sarcina este , iunea - ind dat un model al lumii s de a determina ce trebuie f acut. nv at a anterioar a - nv at , area: , are din experient ,
a. despre cum este un anumit mediu nconjur ator b. informat a de fapt senzorii , iilor generale (cum funct , ioneaz robotului) c. de a rezolva problemele mai ecient
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Cuprins
Inteligenta Computationala si Cunoasterea Ce este Inteligenta Articiala? Agentii si mediul inconjurator Reprezentare si rationament Aplicatii 2 Rezolvarea de probleme Tehnici fuzzy Rezolvarea problemei Formularea problemei Probleme si solutii bine denite Masurarea performantei in rezolvarea problemelor Algoritmi de cautare 3 Obiecte si termeni in Prolog Unicarea(Matching) Liste 4 Algoritmi de cautare Inteligenta Articiala Cautarea neinformata
1
15/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Tehnici fuzzy
Programele se numesc agent a , i program (funct , ii ce implementeaz un agent). Inteligent a proiecteaz a programe agent a , a Articial , i ce realizeaz transformarea de la percept nconjur ator prin senzori la , ia mediului act , iune prin efectori (actuatori). Agentul act a prin stabilirea unor t , ioneaz , eluri/scopuri s , i ia decizii care s a duc a la ndeplinirea acestora. Scopul s at , i mult , imea tuturor modalit , ilor de atingere a scopului, altc atuiesc problema. Procesul de explorare a ceea ce pot face aceste modalit at , i se numes autare. , te c
Inteligenta Articiala
16/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Rezolvarea problemei
Pas I Procesul de rezolvare a problemei const a n formularea scopului bazat pe situat ia curent a . , Scopul = {st a ri ale universului | acele st a ri n care scopul este satisf a cut } = {s1 , s2 ...sn } Act and tranzit ntre st ari ale , iunile pot privite ca gener , ii universului. Agentul va trebui s a ae ce act l conduc la o stare , iuni n care scopul este satisf acut. Procesul deciziei asupra act arilor care trebuie luate n , iunilor s , i st considerare reprezint a formulare problemei.
Inteligenta Articiala
17/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Rezolvarea problemei
Pas II Un agent care are la dispozit , ie mai multe opt , iuni imediate, trebuie s a decid a ce s a fac a examin and diferinte secvent , e de act , iuni posibile, urm and s a o aleag a pe cea mai bun a. Procesul de examinare a unei asemenea succesiuni de act , iuni se numes , te c autare. Un algoritm de c autare primes a , te ca intrare o problem ntoarce o solut , ie sub forma unor succesiuni de act , iuni Pas III - faza de execut , ie Agentul pe care l program am realizeaz a 3 act , iuni: formuleaz a caut a execut a
Inteligenta Articiala 18/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Formularea problemei
Depinde de tipul de problem a care exist a: Problem a cu o stare unic a Problem a cu st ari multiple Problem a de contingent a , Problem a de explorare
Inteligenta Articiala
19/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Ecacitatea unei c aut ari poate m asurat a: dac a se g ases , te o solut , ie dac a s-a g asit o solut a (cu un cost sc azut al drumului) , ie bun prin pret aut arii asociat timpului calculator s , ul c , i al memoriei necesare pentru g asirea de solut ii ,
Inteligenta Articiala
22/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Urm atorul nod din frontier a care trebuie extins este selectat de c atre strategia de c autare, care se evalueaz a dup a urm atoarele patru criterii: completitudine complexitatea timpului complexitatea spat , iului optimalitate
Inteligenta Articiala
24/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Tehnicile pentru rezolvarea de probleme funct a c and , ioneaz urm atoarele condit arate: , ii sunt adev domeniul este n totalitate observabil domeniul este n totalitate cunoscut domeniul este n totalitate discret domeniul este n totalitate determinist domeniul este n totalitate static
Inteligenta Articiala
25/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Algoritmi de cautare
I. C autarea neinformat a (c autarea oarb a - blind search) Breadth-rst (c autarea n l at , ime) Depth-rst (c autarea n ad ancime) Iterative deepening (c autarea iterativ a) C autarea bidirect a , ional II. C autarea informat a (euristic a - descoperiri de fapte noi pe care le valoric am din mers) Best-rst Algoritmul A Algoritmul IDA (iterative deepening A ) III. Jocurile ca problem a de c autare - de 2 persoane Algoritmul Minmax Algoritmul Alpha-Beta
Inteligenta Articiala 26/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Cuprins
Inteligenta Computationala si Cunoasterea Ce este Inteligenta Articiala? Agentii si mediul inconjurator Reprezentare si rationament Aplicatii 2 Rezolvarea de probleme Tehnici fuzzy Rezolvarea problemei Formularea problemei Probleme si solutii bine denite Masurarea performantei in rezolvarea problemelor Algoritmi de cautare 3 Obiecte si termeni in Prolog Unicarea(Matching) Liste 4 Algoritmi de cautare Inteligenta Articiala Cautarea neinformata
1
27/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
variabile
structuri
Inteligenta Articiala
28/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Inteligenta Articiala
29/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Unicarea(Matching)
O mult atoarea form a: , ime care are urm = {(Xi , Ti )i =1,n | Xi variabil , Ti termen, i = j , Xi = Xj } se numes , te substitut , ie. Dac a T este termen Prolog s , i o substitut , ie, atunci vom nota cu T nlocuirea simultan a a tuturor variabilelor Xi cu Ti . De exemplu: T = f (X , g (a, Y ), h(X , Y , Z )) = {(X , g (Z , c ), (Y , P (x )), (Z , c )} T = f (g (Z , c ), g (a, P (x )), h(g (Z , c )), P (x ), c )
Inteligenta Articiala
30/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Unicarea(Matching)
Denitii: un termen T se numes a nu cont , te complet instant , iat dac , ine variabile. T1 reprezint a instant a o substitut , ierea lui T2 dac , ie astfel nc at T1 = T2 un termen T1 unic a cu un T2 dac a o substitut , ie astfel nc at T1 = T2 se numes , te unicator Reguli de unicare: doi atomi unic a dac a sunt identici o variabil a unic a cu orice dou a structuri unic a dac a au acelas , i functor principal s ,i aceeas a nu au , i aritate (f (1, 2, x ) = f (1, 2, 3, 4) pentru c aceeas i aritate) ,
Inteligenta Articiala 31/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Unicarea(Matching)
Exemple: T1 = f (X , a) s a astfel nc at , i T2 = f (b , Y ), dac T1 = T2 , atunci = {(X , b ), (Y , a)} s ,i T1 = f (b , a) = T2 T1 = X T2 = g (f (Y , Z ), a) = {X , g (f (Y , Z ), a)} = {(Y , b ), (Z , c ), (X , g (f (Y , Z ), a))} In Prolog predicatul = ne spune dac a cei doi termeni unic a, atunci programul ntoarce substitut a. , ia general ? x = f (x ) T1 = x , T2 = f (x ) = {(x , f (x ))} T1 = f (x ) T2 = f (f (x ))
Inteligenta Articiala 32/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Liste
O list a este o secvent a de oric ate obiecte ([Ion, Ana, Maria, Elena]). , Exist a dou a tipuri de liste: lista vid a ([]) lista nevid a ([H |T ] - unde H - head s , i T - tail)
Inteligenta Articiala
33/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Liste
[1, 2, 3] = [1|[2, 3]] = [1, 2|[3]] = [1, 2, 3|[]] [H |T ] (H , T ) [1, 2, 3] = (1, (2, (3, []))) baiat (adrian, 20) baiat (gabi , 25) baiat (dragos , 30) baiat (adrian, 15) membru (X , L) - true dac a X L; false dac aX /L
Inteligenta Articiala
34/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Liste
In lucrul cu listele trei predicate: bagof (X , P , L) Comanda ? bagof (X , baiat (X , 20), L). va as , a: L = [adrian]. Comanda ? bagof (X , baiat (X , Y ), L). va as , a: Y = 20, L = [adrian]; Y = 25, L = [gabi ]; Comanda ? bagof (X , Y baiat (X , Y ), L). va as , a: L = [adrian, gabi , dragos , adrian]; setof (X , P , L) Comanda ? setof (X , Y baiat (X , Y ), L) va as , a: L = [adrian, dragos , gabi ] ndall (X , P , L). Comanda ndall (X , baiat (X , 35), L) va as , a: L = []
Inteligenta Articiala 35/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Cuprins
Inteligenta Computationala si Cunoasterea Ce este Inteligenta Articiala? Agentii si mediul inconjurator Reprezentare si rationament Aplicatii 2 Rezolvarea de probleme Tehnici fuzzy Rezolvarea problemei Formularea problemei Probleme si solutii bine denite Masurarea performantei in rezolvarea problemelor Algoritmi de cautare 3 Obiecte si termeni in Prolog Unicarea(Matching) Liste 4 Algoritmi de cautare Inteligenta Articiala Cautarea neinformata
1
36/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Cautarea neinformata
(c autarea oarb a - blind search) Strategiile nu det arul de pas , in nicio informat , ie despre num ,i sau despre costul drumului de la starea curent a la starea scop. Tot ceea ce agentul poate face este s a disting a o stare scop de o stare care nu este scop.
Inteligenta Articiala
37/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Breadth-rst: Metodologie
se extinde nt ai nodul r ad acin a, apoi toate nodurile generate de acesta, apoi succesorii lor, etc. vom folosi o structur a de date de tip coad a care plaseaz a st arile nou generate la sf ars a st arile generate , itul cozii, dup anterior dac a exist a o solut a strategie o va g asi , ie, aceast dac a exist a mai multe solut asi mai nt ai nodul scop , ii, se va g cel mai put anc , in ad c autarea este complet as a cu condit , i optim , ia ca costul drumurilor s a e funct ie descresc a toare de ad ancimea nodului. ,
Inteligenta Articiala
38/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Breadth-rst: Algoritm
Pas 1: creaz a o variabil a numit a ListaNoduri s a la , i se seteaz starea init ial a , Pas 2: p an a la g asirea unei solut an a c and , ii (stare scop) sau p ListaNoduri devine vid a, execut a:
Pas 2.1: nl atur a primul element din ListaNoduri ; l numim E . Dac a ListaNoduri e vid a, atunci STOP Pas 2.2: pentru ecare nod n care ecare regul a se potrives , te cu starea descris a n E , execut a:
Pas 2.2.1: aplic a regula pentru a genera o nou a stare Pas 2.2.2: dac a noua stare e o stare scop, atunci ntoarce aceeas , i stare s , i STOP Pas 2.2.3: altfel, adaug a noua stare la sf ars , itul lui ListaNoduri
Inteligenta Articiala
39/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Breadth-rst: Exemplu
Example Consider am f s , i j nodurile scop. Ordinea parcurgerii: a, b , c , d , e , f Pas 1: [[a]] - plec am de la r ad acin a Pas 2: se genereaz a extensii ale lui a: [[b , a], [c , a]] Pas 3: se nl atur a [b , a ] s a extensiile sale: , i se genereaz [[c , a], [d , b , a], [e , b , a]] Pas 4: [[d , b , a], [e , b , a], [f , c , a], [g , c , a]] La pas atori mult , ii urm , imea de candidat , i devine: [[f , c , a], [g , c , a], [h, c , b , a], [i , e , b , a], [j , e , b , a]]. Algoritmul scoate ca solut , ie drumul [f , c , a] ce cont , ine nodul scop f.
Inteligenta Articiala
40/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Breadth-rst: Complexitate
Inteligenta Articiala
41/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Depth-rst: Metodologie
ntotdeauna se extinde unul din nodurile aate la nivelul cel mai ad anc n arbore. implementarea se face cu o structur a de date de tip coad a ce plaseaz a st arile nou generate n fat a cozii , necesit at , ile de memorie sunt foarte mici strategia nu este nici complet a, nici optimal as a , i trebuie evitat n cazul arborilor de c autare de ad ancimi foarte mari
Inteligenta Articiala
42/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Depth-rst: Algoritm
declar am fapte de tipul scop (j ) = true . Apel am rezolva(N , [N ]) : scop (N ). rezolva(N , [N |Sol1 ]) : s (N , N1 ), rezolva(N1 , Sol1 ), unde s reprezint a predicatul ce denes , te succesorii apeleaz a ? rezolva(a, Sol )
Inteligenta Articiala
43/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Iterative deepening
strategia evit a problema stabilirii unei ad ancimi optime la care trebuie c autat a solut ia prin testarea tuturor limitelor de , ad ancime posibile combin a beneciile de la Breadth-First s , i Depth-First:
din BF este optim as a , i complet din DF consum a doar o cantitate mic a de memorie, cerint , a de memorie ind liniar a
ordinea extinderii st arilor e similar a cu cea de la BF, doar c a anumite st ari sunt extinse de mai multe ori, num arul nd echivalent cu cel din BF garanteaz a g asirea nodului scop de la ad ancimea minim a, dac a scopul poate g asit
Inteligenta Articiala
44/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Procedura: path(Nod1 , Nod2 , Drum), unde variabila Drum semnic a un drum aciclic ntre Nod1 s n spat ari. , i Nod2 , iul de st Denirea procedurii path: path(Nod , Nod , [Nod ]). path(PrimNod , UltimNod , [UltimNod |Drum]) : path(PrimNod , PenultimNod , Drum), succesor (PenultimNod , UltimNod ), notmembru (UltimNod , Drum). Observat , ia de succesor (X , Y ) va reprezenta un spat , iu al , ie: Relat st arilor. Dac a exist as arilor, atunci predicatul , i costuri asociate mis , c devine: succesor (X , Y , Cost ), unde Cost este costul unei deplas ari.
Inteligenta Articiala
45/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Iterative deepening
Avantajul metodei: put a memorie. La orice moment al , in execut at , iei necesit , ile de spat , iu se reduc la un singur drum ntre nodul de nceput al c aut arii s , i nodul curent. Dezavantajul metodei: la ecare iterat , ie, drumurile calculate anterior sunt recalculate, ind extinse p an a la o nou a limit a de ad ancime.
Inteligenta Articiala
46/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Cautarea bidirectionala
Ideea algoritmului este c autarea simultan a at at nainte, c at s ,i napoi, cu oprire acolo unde cele dou a c aut ari se nt alnesc
c autarea napoi plec and de la scop presupune generarea succesiv a a predecesorilor 2 trebuie aleas a o metod a ecient a de a testa ecare nod nou pentru a vedea dac a acesta apare n arborele de c autare al celeilalte jum at at n care se caut a ,i 3 trebuie decis tipul de c autare ce se efectueaz a n ecare jum atate 4 pentru ca cele dou a c aut ari s a se nt alneasc a, nodurile corespunz atoare a cel put at at , in una dintre jum , i, trebuie memorate n ntregime, la fel ca la BF.
1
Inteligenta Articiala
47/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Cautarea informata
Se utilizeaz a informat ari. , ia despre spat , iul de st Se folosesc cunos , tint , e specice problemei s , i se rezolv problemele de optimizare.
Inteligenta Articiala
48/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Best-rst
Inteligenta Articiala
49/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Best-rst: Algoritm I
Algoritmul general de c autare bazat pe grafuri: GRAPHSEARCH permite o c autarea neinformat a sau euristic a
Pas 1: creeaz a arborele de c autare Tr ce const a numai din nodul de start n0 . Plaseaz a deci pe n0 ntr-o list a ordonat a numit a OPEN Pas 2: creeaz a o list a CLOSED init a , ial vid Pas 3: dac a OPEN = ([ ]) atunci exit cu es , ec Pas 4: dac a OPEN = [ ] atunci selecteaz a primul nod din lista OPEN , l elimin am din ea s l includem n CLOSED . Numim acest ,i nod n Pas 5: dac a n este un nod scop, atunci algoritmul se ncheie cu succes. Solut ia este obt inut a prin urmarea n sens invers a unui drum , , de-a lungul arcelor (create la Pasul 6) din arborele Tr de la n la n0
Inteligenta Articiala 50/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Best-rst: Algoritm II
Pas 6: extinde nodul n, gener and o mult , ime M de succesori. M se include n Tr ca succesori ai lui n prin creearea de arce de la n la ecare membru al lui M Pas 7: reordoneaz a OPEN e n concordant a cu un plan arbitrar, e , n mod euristic Pas 8: mergi la Pas 3
Obervat , ie: Pentru c autarea de tip best-rst, OPEN se reordoneaz a n funct ie de meritele euristice ale nodurilor. ,
Inteligenta Articiala
51/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Algoritmul A*
Cel mai cunoscut algoritm euristic (best-rst) n care reordonarea de la Pasul 7 se face n funct ie de valori , cresc atoare pentru f . A foloses , te euristica f = h + g
Inteligenta Articiala
52/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
A garanteaz a g asirea unui drum optim (de cost minim) la un scop (c and acesta exist a), dac a sunt ndeplinite urm atoarele condit , ii:
1
orice nod al grafului care admite succesori trebuie s a aib a un num ar nit de succesori toate arcele din graf au costuri mai mari dec at o cantitate >0 pentru toate nodurile din arborele de c autare trebuie ndeplinit a condit , ia: h (n ) h (n ). O astfel de funct , ie h se numes , te estimator optimist
Inteligenta Articiala
53/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Fie
G1 o stare scop optimal a cu un cost al drumului f G2 o stare scop suboptimal a (dar tot scop) g (G2 ) > f . Dac a presupunem c a A selecteaz a G2 pentru extindere (G2 stare scop), c autarea se poate ncheia cu solut ia suboptimal a ? ,
Inteligenta Articiala
54/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Din faptul c a A extinde noduri n ordinea cresc atoare a valorilor lui f , putem deduce c a, n nal, va exista o extindere care conduce la o stare scop, mai put and num arul de noduri este foarte mare , in c (tinde c atre inf). C and exist a un num ar innit de noduri?
Inteligenta Articiala
55/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Cres a: |h(n) h (n)| O(log h (n)), unde , tere subexponent , ial primul termen reprezint a adev aratul cost pentru a ajunge de la n la scop.
Inteligenta Articiala
56/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Algoritmul IDA*
Este o extensie logic a a algoritmului iterative deepening search, care foloses n plus, informat a. , te, , ia euristic Fiecare iterat , ie extinde toate nodurile din interiorul conturului determinat de costul f curent, dup a care se trece la conturul urm ator. Cum se termin a c autarea n interiorul unui contur, se declans a o nou a iterat , eaz , ie, folosind un cost nou f .
Este complet s , i optim cu aceleas , i amendamente ca s ,i A .
Inteligenta Articiala
57/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Concluzii nale
C and nodurile sunt ordonate, c and nodul cel mai bine evaluat este primul extins, strategia se numes autare de tip , te c Best-rst. O c autare tip best-rst ce foloses , te pe h pentru selectarea urm atorului nod ce va extins se numes autare de tip , te c Greedy. C autarea de tip best-rst care foloses , te o funct , ie f de evaluare s a se numes autare de tip A , care e , i o funct , ie h admisibil , te c optim as a. , i complet Pentru a folosi algoritmul A n rezolvarea unei probleme concrete, trebuie denite:
un spat arilor , iu al st un predicat scop o funct a adecvat a ecarei probleme , ie euristic
Algoritmul de tip IDA nl atur a neajunsurile legate de problema spat ar a a sacrica , iului mare de memorie folosit f Inteligenta Articiala optimalitatea sau completitudinea.
58/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Concluzii nale
C and nodurile sunt ordonate, c and nodul cel mai bine evaluat este primul extins, strategia se numes autare de tip , te c Best-rst. O c autare tip best-rst ce foloses , te pe h pentru selectarea urm atorului nod ce va extins se numes autare de tip , te c Greedy. C autarea de tip best-rst care foloses , te o funct , ie f de evaluare s a se numes autare de tip A , care e , i o funct , ie h admisibil , te c optim as a. , i complet Pentru a folosi algoritmul A n rezolvarea unei probleme concrete, trebuie denite:
un spat arilor , iu al st un predicat scop o funct a adecvat a ecarei probleme , ie euristic
Algoritmul de tip IDA nl atur a neajunsurile legate de problema spat ar a a sacrica , iului mare de memorie folosit f Inteligenta Articiala optimalitatea sau completitudinea.
58/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Concluzii nale
C and nodurile sunt ordonate, c and nodul cel mai bine evaluat este primul extins, strategia se numes autare de tip , te c Best-rst. O c autare tip best-rst ce foloses , te pe h pentru selectarea urm atorului nod ce va extins se numes autare de tip , te c Greedy. C autarea de tip best-rst care foloses , te o funct , ie f de evaluare s a se numes autare de tip A , care e , i o funct , ie h admisibil , te c optim as a. , i complet Pentru a folosi algoritmul A n rezolvarea unei probleme concrete, trebuie denite:
un spat arilor , iu al st un predicat scop o funct a adecvat a ecarei probleme , ie euristic
Algoritmul de tip IDA nl atur a neajunsurile legate de problema spat ar a a sacrica , iului mare de memorie folosit f Inteligenta Articiala optimalitatea sau completitudinea.
58/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Concluzii nale
C and nodurile sunt ordonate, c and nodul cel mai bine evaluat este primul extins, strategia se numes autare de tip , te c Best-rst. O c autare tip best-rst ce foloses , te pe h pentru selectarea urm atorului nod ce va extins se numes autare de tip , te c Greedy. C autarea de tip best-rst care foloses , te o funct , ie f de evaluare s a se numes autare de tip A , care e , i o funct , ie h admisibil , te c optim as a. , i complet Pentru a folosi algoritmul A n rezolvarea unei probleme concrete, trebuie denite:
un spat arilor , iu al st un predicat scop o funct a adecvat a ecarei probleme , ie euristic
Algoritmul de tip IDA nl atur a neajunsurile legate de problema spat ar a a sacrica , iului mare de memorie folosit f Inteligenta Articiala optimalitatea sau completitudinea.
58/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Concluzii nale
C and nodurile sunt ordonate, c and nodul cel mai bine evaluat este primul extins, strategia se numes autare de tip , te c Best-rst. O c autare tip best-rst ce foloses , te pe h pentru selectarea urm atorului nod ce va extins se numes autare de tip , te c Greedy. C autarea de tip best-rst care foloses , te o funct , ie f de evaluare s a se numes autare de tip A , care e , i o funct , ie h admisibil , te c optim as a. , i complet Pentru a folosi algoritmul A n rezolvarea unei probleme concrete, trebuie denite:
un spat arilor , iu al st un predicat scop o funct a adecvat a ecarei probleme , ie euristic
Algoritmul de tip IDA nl atur a neajunsurile legate de problema spat ar a a sacrica , iului mare de memorie folosit f Inteligenta Articiala optimalitatea sau completitudinea.
58/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Concluzii nale
C and nodurile sunt ordonate, c and nodul cel mai bine evaluat este primul extins, strategia se numes autare de tip , te c Best-rst. O c autare tip best-rst ce foloses , te pe h pentru selectarea urm atorului nod ce va extins se numes autare de tip , te c Greedy. C autarea de tip best-rst care foloses , te o funct , ie f de evaluare s a se numes autare de tip A , care e , i o funct , ie h admisibil , te c optim as a. , i complet Pentru a folosi algoritmul A n rezolvarea unei probleme concrete, trebuie denite:
un spat arilor , iu al st un predicat scop o funct a adecvat a ecarei probleme , ie euristic
Algoritmul de tip IDA nl atur a neajunsurile legate de problema spat ar a a sacrica , iului mare de memorie folosit f Inteligenta Articiala optimalitatea sau completitudinea.
58/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Concluzii nale
C and nodurile sunt ordonate, c and nodul cel mai bine evaluat este primul extins, strategia se numes autare de tip , te c Best-rst. O c autare tip best-rst ce foloses , te pe h pentru selectarea urm atorului nod ce va extins se numes autare de tip , te c Greedy. C autarea de tip best-rst care foloses , te o funct , ie f de evaluare s a se numes autare de tip A , care e , i o funct , ie h admisibil , te c optim as a. , i complet Pentru a folosi algoritmul A n rezolvarea unei probleme concrete, trebuie denite:
un spat arilor , iu al st un predicat scop o funct a adecvat a ecarei probleme , ie euristic
Algoritmul de tip IDA nl atur a neajunsurile legate de problema spat ar a a sacrica , iului mare de memorie folosit f Inteligenta Articiala optimalitatea sau completitudinea.
58/58
Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare
Concluzii nale
C and nodurile sunt ordonate, c and nodul cel mai bine evaluat este primul extins, strategia se numes autare de tip , te c Best-rst. O c autare tip best-rst ce foloses , te pe h pentru selectarea urm atorului nod ce va extins se numes autare de tip , te c Greedy. C autarea de tip best-rst care foloses , te o funct , ie f de evaluare s a se numes autare de tip A , care e , i o funct , ie h admisibil , te c optim as a. , i complet Pentru a folosi algoritmul A n rezolvarea unei probleme concrete, trebuie denite:
un spat arilor , iu al st un predicat scop o funct a adecvat a ecarei probleme , ie euristic
Algoritmul de tip IDA nl atur a neajunsurile legate de problema spat ar a a sacrica , iului mare de memorie folosit f Inteligenta Articiala optimalitatea sau completitudinea.
58/58