Sunteți pe pagina 1din 65

Inteligenta Articiala

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

Algoritmi de cautare Cautarea neinformata


Breadth-rst Depth-rst Iterative deepening Cautarea bidirectionala

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

Ce este Inteligenta Articiala?

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

Ce este Inteligenta Articiala?


Scopul Inteligent nt , ei Computat , ionale - , elegerea principiilor ce stau la baza posibilelor comportamente inteligente n sistemele naturale sau articiale. Scopul Ingineresc - specicarea metodelor pentru designul artefactelor utile, inteligente. Articial Intelligence - numele stabilit pentru domeniul Inteligent , ei Computat , ionale. Scopul Inteligent nt , ei Articiale - , elegerea sistemelor inteligente reale (naturale sau sintetice) prin sintetizarea lor. Metodologia - designul, construct , ia s , i experimentul cu sistemele computat a taskuri v azute drept inteligente. , ionale ce realizeaz Inteligent a computat ional a apart ine s tiint a , , , , , elor cognitive pentru c confer a instrumente pentru construct a , ia inteligent , ei mai degrab dec at studiul comportamentului agent ilor inteligent i. , ,
Inteligenta Articiala 6/58

Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare

Agentii si mediul inconjurator

Agentul cuprinde percept , ia, rat , ionamentul s , i act , iunea.




Z ^

Inteligenta Articiala

7/58

Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare

Agentii si mediul inconjurator


Pentru ecare agent se specic a: forma intr arilor act , iunile Lumea - agentul n mediul nconjur ator (ce poate include s , i alt ,i agent i). , Starea intern a - codic a convingeri despre mediu s , i sine. Agentul poate avea: scopuri de atins modalit at n mediul nconjur ator pentru atingerea , i de act , iune scopurilor modalit at , i de modicare a convingerilor prin:
rat , ionament percept , ie nv at , are
Inteligenta Articiala 8/58

Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare

Agentii si mediul inconjurator

Leg atura dintre agent s , i mediu:

&

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

Sarcinile interact a ntre ele s , ioneaz , i nu pot studiate separat.


Inteligenta Articiala 14/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

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

Probleme si solutii bine denite


1. Probleme cu o singur a stare Elementele de baz a ale denirii unei probleme sunt st arile s ,i act , iunile. Din punct de vedere formal, pentru a le deni e nevoie de: starea init a n care agentul s a se a a , ial , tie c mult , imea act , iunilor posibile, disponibile agentului O problem a se denes , te prin: starea init a , ial mult , imea operatorilor testul scop funct , ia de cost a unui drum
Inteligenta Articiala 20/58

Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare

Probleme si solutii bine denite


2. Probleme cu st ari multiple cont , in: o mult ari init , ime de st , iale o mult and n cazul ec arei act , ime de operatori specic , iuni mult imea de st a ri n care se ajunge plec a nd din orice stare dat a , un test scop funct , ia de cost a unui drum Un operator se aplic a unei mult ari prin reunirea , imi de st rezultatelor aplic arii operatorului ec arei st ari din mult , ime. Un drum leag a mult ari, iar o solut , imi de st , ie este un drum care conduce la o mult ari tip scop. , ime de st Spat ari, aici, este nlocuit de spat ari. , iul de st , iul mult , imii de st
Inteligenta Articiala 21/58

Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare

Masurarea performantei in rezolvarea problemelor

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

Masurarea performantei in rezolvarea problemelor


Costul total al c aut arii este format din nsumarea costului drumului s aut arii. , i cel al c Aplicarea unui operator asupra unei st ari curente, gener and o mult ari se numes arii. , ime de st , te extinderea st Strategia de c autare determin a alegerea referitoare la starea la care trebuie extins a prima. O stare reprezint a o congurat nconjur atoare. , ie a lumii Un nod este o structur a de date. Se numes a colect a s a e extinse. , te frontier , ia de noduri care as , teapt
Inteligenta Articiala 23/58

Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare

Masurarea performantei in rezolvarea problemelor

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

Masurarea performantei in rezolvarea problemelor

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

Obiecte si termeni in Prolog


Exist a trei tipuri de clauze: faptele regulile ntreb arile Obiectele sunt: simple
constante
numere atomi

variabile

structuri

Inteligenta Articiala

28/58

Outline Inteligenta Computationala si Cunoasterea Rezolvarea de probleme Obiecte si termeni in Prolog Algoritmi de cautare

Obiecte si termeni in Prolog


O structur a este o colect ntr-un , ie de date sau obiecte, grupate singur obiect s , i se denes , te cu ajutorul unui functor ( Numefunctor (Argument1 , Argument2 ...Argumentn ) ). Se numes , te functor principal ntregul functor. Exemplu: data(22,martie,2012)

Figura : Arborele asociat structurii data

Inteligenta Articiala

O structur a e bine denit a de functorul principal s , i aritate (num arul de argumente).

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

complexitate exponentiala a timpului complexitate exponentiala a spatiului

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 )

Pentru mbun at at , irea programului trebuie inserat un mecanism de detectare a ciclurilor.

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

Iterative deepening: Implementare in Prolog

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

C autarea euristic a de baz a este de tip best-rst Idei de baz a:


se presupune existent , a unei funct , ii euristice de evaluare (f ). se extinde nodul care are cea mai mic a valoare a lui f (n), unde n reprezint a nodul. 3 procesul se ncheie atunci c and urm atorul nod ce trebuie extins este un nod scop
1 2

Putem indus n eroare de o euristic a extrem de ,i optimist a?

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

Algoritmul A*: Admisibilitate

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

Algoritmul A*: Optimalitate

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

Algoritmul A*: Completitudine

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

Algoritmul A*: Complexitate

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

S-ar putea să vă placă și