Sei sulla pagina 1di 111

Inteligenta articiala

Lector Doctor Lucian Sasu


2010-2011
Universitatea Transilvania din Brasov
Facultatea de Matematica si Informatica
2
Cuprins
1 Denitii. Rezolvarea problemelor prin cautare 7
1.1 Denitii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1 Sisteme care actioneaz a precum oamenii . . . . . . . . . . . . . . . 7
1.1.2 Sisteme care g andesc ca oamenii . . . . . . . . . . . . . . . . . . . . 8
1.1.3 Sisteme care g andesc rational . . . . . . . . . . . . . . . . . . . . . 8
1.1.4 Sisteme care actioneaz a rational . . . . . . . . . . . . . . . . . . . . 9
1.2 Fundamentele inteligentei articiale . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Starea actual a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Rezolvarea de probleme de c atre agenti . . . . . . . . . . . . . . . . . . . . 10
1.5 Formularea unei probleme de c autare . . . . . . . . . . . . . . . . . . . . . 11
1.6 Exemple de probleme de c autare . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6.1 Probleme de juc arie . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6.2 Probleme din lumea real a . . . . . . . . . . . . . . . . . . . . . . 13
1.7 C autarea solutiei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.8 M asurarea performantelor algoritmilor de c autare . . . . . . . . . . . . . . 18
2 Strategii de cautare neinformata 19
2.1 C autarea mai nt ai n l atime . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 C autarea dup a costul uniform . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 C autarea mai nt ai n ad ancime . . . . . . . . . . . . . . . . . . . . . . . 22
2.4 C autarea cu ad ancime limitat a . . . . . . . . . . . . . . . . . . . . . . . . 25
2.5 C autarea mai nt ai n ad ancime cu ad ancire iterativ a . . . . . . . . . . . 25
2.6 C autare bidirectional a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.7 Problema st arilor duplicat . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 Cautare informata 31
3.1 Strategii de c autare informat a . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 C autarea euristic a lacom a . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3 Algoritmul A* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3
4 CUPRINS
3.4 Variatii ale lui A* . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.5 Functii euristice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.6 Algoritmi de c autare local a . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.6.1 C autarea prin metoda ascensiunii . . . . . . . . . . . . . . . . . . . 44
3.6.2 Recoacerea simulat a . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.6.3 Algoritmi genetici . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.6.4 C autare local a n spatii continue . . . . . . . . . . . . . . . . . . . . 52
4 Probleme de satisfacere a constrangerilor 55
4.1 Probleme de satisfacere a constr angerilor . . . . . . . . . . . . . . . . . . . 55
4.2 C autare backtracking pentru PSC . . . . . . . . . . . . . . . . . . . . . . . 58
4.2.1 Ordonarea valorilor si a variabilelor . . . . . . . . . . . . . . . . . . 59
4.2.2 Propagarea informatiilor prin constr angeri . . . . . . . . . . . . . . 60
4.3 C autare local a pentru PSC . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.4 Structura problemei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5 Agenti logici 69
5.1 Motivatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.2 Agenti bazati pe cunoastere . . . . . . . . . . . . . . . . . . . . . . . . . . 70
5.3 Jocul "lumea monstrului . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.4 Logica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
5.5 Logica propozitional a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.5.1 Sintaxa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.5.2 Semantica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.5.3 Exemplu: lumea monstrului n logica propozitional a . . . . . . . . . 75
5.5.4 Inferenta n logica propozitional a . . . . . . . . . . . . . . . . . . . 75
5.5.5 Echivalent a, validitate si satisabilitate . . . . . . . . . . . . . . . . 76
5.6 Tipare de rationament n logica propozitional a . . . . . . . . . . . . . . . . 77
5.6.1 Rezolutia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.7 Forma normal a conjunctiv a . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.8 Algoritmul de rezolutie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.9

Inl antuirea nainte si napoi . . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.10 Inferent a propozitional a efectiv a . . . . . . . . . . . . . . . . . . . . . . . . 84
5.10.1 Algoritm bazat pe backtracking . . . . . . . . . . . . . . . . . . . . 84
5.10.2 Algoritm bazat pe c autare local a . . . . . . . . . . . . . . . . . . . 89
6 Logica de ordinul ntai 91
6.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
CUPRINS 5
6.2 Sintaxa si semantica logicii de ordinul nt ai . . . . . . . . . . . . . . . . . . 92
6.2.1 Modele pentru logica de ordinul nt ai . . . . . . . . . . . . . . . . . 92
6.2.2 Simboluri si interpret ari . . . . . . . . . . . . . . . . . . . . . . . . 93
6.2.3 Termeni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.2.4 Propozitii atomice . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.2.5 Enunturi complexe . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.2.6 Cuanticatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3 Procesul de management al cunostintelor . . . . . . . . . . . . . . . . . . . 95
6.4 Inferenta propozitional a comparat a cu inferenta de ordinul nt ai . . . . . . 96
6.4.1 Reguli de inferent a pentru cuanticatori . . . . . . . . . . . . . . . 97
6.4.2 Reducerea la inferenta propozitional a . . . . . . . . . . . . . . . . . 97
7 Sisteme fuzzy 99
7.1 Prezentare general a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.2 Teoria multimilor fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
7.3 Operatii cu multimi fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
7.3.1 Egalitatea multimilor fuzzy . . . . . . . . . . . . . . . . . . . . . . 103
7.3.2 Incluziunea multimilor fuzzy . . . . . . . . . . . . . . . . . . . . . . 103
7.3.3 Complementara unei multimi fuzzy . . . . . . . . . . . . . . . . . . 103
7.3.4 Intersectia a dou a multimi fuzzy . . . . . . . . . . . . . . . . . . . . 104
7.3.5 Reuniunea a dou a multimi fuzzy . . . . . . . . . . . . . . . . . . . . 104
7.3.6 Operatori de compensare . . . . . . . . . . . . . . . . . . . . . . . . 105
7.4 Reguli fuzzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
7.5 M asuri ale gradului de nuantare . . . . . . . . . . . . . . . . . . . . . . . . 108
Bibliograe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6 CUPRINS
Capitolul 1
Denitii. Rezolvarea problemelor prin
cautare
1.1 Denitii
D am c ateva denitii care au fost formulate de-a lungul timpului n diverse lucr ari,
precum si comentarii asupra lor. Exist a patru tipuri de abord ari pentru sistemele cu
inteligent a articial a: sisteme care g andesc precum oamenii, sisteme care g andesc rational,
sisteme care actioneaz a precum oamenii, sisteme care actioneaz a rational. Remarc am c a
exist a o diferent a ntre a actiona ca un om si a actiona rational; desi inteligenta uman a
si rationalitatea nu sunt disjuncte, actiunile oamenilor nu sunt ntotdeauna nscrise n
totalitate n legile ratiunii.
1.1.1 Sisteme care actioneaza precum oamenii
Denitia 1 Arta crearii de masini care ndeplinesc functii ce necesita inteligenta atunci
c and sunt ndeplinite de catre oameni.
Denitia 2 Studiul asupra cum se poate ca un calculator sa faca lucruri la care, pentru
moment, oamenii sunt mai buni.
Testul Turing, propus de c atre Alan Turing n 1950 a fost conceput pentru a da o
denitie operational a a inteligentei. Testul care trebuie trecut de c atre un sistem inteligent
const an a pune un omn imposibilitate de a decide dac a interlocutorul (sistemul articial)
este om sau nu.
Deducem c a un asemenea sistem ar trebui s a posede urm atoarele abilit ati:
1. procesarea limbajului natural - pentru a putea comunica ntr-o limb a folosit a de
oameni
7
8 CAPITOLUL 1. DEFINI TII. REZOLVAREA PROBLEMELOR PRIN C

AUTARE
2. reprezentarea cunostintelor - pentru a stoca ceea ce se stie sau a a
3. rationamentul automat - pentru a putea deduce noi concluzii pe baza informatiilor
acumulate si pentru a r aspunde ntreb arilor
4. nvatarea automata - pentru a se adapta noilor conditii, pentru a detecta modele
sau sabloane (pattern-uri).
Testul de mai sus nu presupune un contact direct ntre om si sistemul articial. Dac a
acest lucru este dorit, atunci mai e nevoie de:
1. vedere articiala (engl: computer vision) - pentru perceperea vizual a a obiectelor
2. robotica - pentru a manipula obiecte
Cu toate c a testul Turing nu a fost nc a trecut, exist a interes destul de sc azut din
partea cercet atorilor n aceast a directie; exist a opinia c a e mai important a se studia
principiile care stau la baza inteligentei dec at s a se duplice un exemplar.
1.1.2 Sisteme care gandesc ca oamenii
Denitia 3 Efortul provocator de a face calculatoarele sa g andeasca [. . . ] masini cu
minte, n sens literal.
Denitia 4 [Automatizarea] activitatilor pe care le asociem cu g andirea umana, activitati
precum luarea deciziilor, rezolvarea problemelor, nvatarea[. . . ]
Pentru a putea spune c a un program g andeste precum un om, ar trebui s a stim cum
anume g andesc oamenii - problem a deloc simpl a. Sunt doua moduri: prin introspectie si
prin experimente psihologice.
1.1.3 Sisteme care gandesc rational
Denitia 5 Studiul facultatilor mentale pe baza utilizarii modelelor computationale.
Denitia 6 Studiul calculelor care fac posibile perceptia, rationamentul, actionarea.
Aceast a abordare se bazeaz a pe maturizarea domeniului numit logic a n secolul
al 19-lea introducerea de notatii si silogisme care permit redactarea unor enunturi si
relatii ntre diferite obiecte. Exist a ns a probleme la trecerea din teorie la practic a: de
exemplu, ce se ntampl a cu situatiile n care exist a incertitudine? apoi, exist a diferente
ntre a rezolva o problem a n principiu (teoretic) si a o rezolva n practic a - resursele
computationale necesare pot prohibitive chiar pentru probleme de dimensiuni modeste
- a se vedea de exemplu algoritmii si discutiile captolul 2.
1.2. FUNDAMENTELE INTELIGEN TEI ARTIFICIALE 9
1.1.4 Sisteme care actioneaza rational
Denitia 7 Inteligenta computationala este studiul design-ului agentilor inteligenti.
Denitia 8 IA [. . . ] se preocupa de comportamentul inteligent n artifacte.
Pe aceast a directie se introduce de obicei conceptul de agent - un sistem articial, care
spre deosebire de programele obisnuite actioneaz a autonom, percep mediul, persist a pe
o perioad a mai mare de timp, se adapteaz a la schimb ari si care urm aresc un scop. Un
agent rational este unul care actioneaz a pentru a obtine cel mai bun rezultat, sau, acolo
unde exist a incertitudinea, cel mai bun rezultat mediu.
Nu toate actiunile unui astfel de agent sunt neap arat rationale; exist a cazuri n care se
stie c a nu exist a nici o actiune rational a, dar totusi se decide a se actiona cumva. Astfel,
inferentele corecte sunt doar o parte a actiunii rationale.
1.2 Fundamentele inteligentei articiale
Prezent am succint o list a a disciplinelor care au contribuie la dezvoltarea IA:
1. Filozoe - intervine cu ntreb ari si discutii despre:
Pot regulile formale folosite pentru a extrage concluzii valide?
Cum se creeaz a activitatea mental a plec and de la creier?
De unde vine cunoasterea?
Cum duce cunoasterea la actiune?
2. Matematica - trateaz a problemele:
Care sunt regulile formale pentru a extrage concluzii valide?
Ce poate calculat?
Cum ration am plec and de la informatii nesigure?
3. Stiintele economice - preocupate de:
Cum ar trebui s a decidem astfel nc at s a maximiz am c astigul?
Cum ar trebui s a decidem atunci c and c astigul este pe termen lung?
4. Neurostiinta care ncearc a s a r aspund a la Cum proceseaz a creierul informatia?
5. Psihologia - cum g andesc si actioneaz a animalele?
6. Ingineria calculatoarelor - cum putem crea un calculator ecient?
7. Lingvistic a - cum este legat limbajul de g andire?
10 CAPITOLUL 1. DEFINI TII. REZOLVAREA PROBLEMELOR PRIN C

AUTARE
1.3 Starea actual a
Unde este de folos IA? O list a neexhaustiv a este dat a mai jos:
planicare autonom a - folosit a de exemplu n navetele lansate spre Marte
jocuri - supercalculatorul Deep Blue de la IBM a fost folosit pentru rularea unui
program specializat n jocul de sah, nving andu-l pe camionul mondial, Garry Kas-
parov
control autonom - folosit pentru a conduce o masin a de-a lungul SUA, realiz and o
conducere autonom a pentru 98% din perioada total a.
diagnostic - diagnostic medical bazat pe sisteme expert
robotic a - se folosesc roboti asistenti n microchirurgie, implant de proteze.
ntelegerea limbajului si rezolvarea problemelor - rezolvare de cuvinte ncrucisate.
1.4 Rezolvarea de probleme de c atre agenti
S a presupunem c a un agent inteligent are de rezolvat o problem a: cum anume se
poate ajunge din Arad n Bucuresti (gura 1.4 este o hart a simplicat a a Rom aniei),
folosind drept c ai de comunicatie soselele din Rom ania. Vom considera faptul c a se cunosc
distantele existente ntre c ateva perechi de orase (cele care sunt direct legate) si c a se pot
schita c ateva scenarii de drum pe baza c arora s a aleag a o solutie. Ca rezultat se va obtine
o secvent a de actiuni a c aror ndeplinire duce la rezolvarea problemei.
Pasii care trebuie urmati n rezolvarea unei probleme de c autare sunt:
1. formularea problemei - n sectiunea 1.5 se arat a modul n care poate exprimat a o
problem a de c autare;
2. c autarea solutiei - aici se folosesc algoritmi dec autare specici, av and ca rezultat
returnarea unei singure solutii ;
3. executarea - pe baza solutiei ce expliciteaz a actiunile ce trebuie executate n vederea
rezolv arii problemei se implementeaza faza de executie. Dup a ce se atinge scopul
problemei, se poate formula un nou scop.
1.5. FORMULAREA UNEI PROBLEME DE C

AUTARE 11
Figura 1.1: O hart a simplicat a a Rom aniei[1]
1.5 Formularea unei probleme de c autare
O problem a de c autare poate abstractizat a precum mai jos, prin intermediul a patru
atribute.
1. Starea initiala - starea din care se porneste c autarea; de exemplu, pentru problema
drumului de la Arad la Bucuresti starea initial a este In(Arad).
2. O descriere a actiunilor pe care le poate ndeplini agentul. Acestea se pot formaliza
sub forma de operatori sau a unei functii succesor ce se aplic a pe multimea st arilor
si produce ca rezultat o multime de perechi de forma (actiune, stare):
x functie succesor(x) = {(actiune
1
, stare
1
), . . . , (actiune
n
, stare
n
)}
unde actiune
i
este o actiune ce se poate aplica n starea x, iar stare
i
este starea n
care se ajunge din x aplic and actiune
i
.
Pentru problema exemplicat a putem avea de exemplu:
functie succesor(In(Arad)) = {(Go(Sibiu), In(Sibiu)),
(Go(Timisoara), In(Timisoara)),
(Go(Zerind), In(Zerind))}
Starea initial a si functia succesor determin a spatiul st arilor problemei - al acelor st ari
care sunt accesibile din starea initial a. O cale n spatiul st arilor este o secvent a de
st ari conectate printr-o secvent a de actiuni.
12 CAPITOLUL 1. DEFINI TII. REZOLVAREA PROBLEMELOR PRIN C

AUTARE
3. Testul de scop - determin a dac a o stare este stare scop, adic a o staren care problema
se consider a a rezolvat a. Vericarea atingerii scopului se poate face n dou a
moduri:
(a) prin compararea st arii curente cu multimea st arilor scop, enuntat a explicit; de
exemplu, pentru problema de mai sus multimea st arilor scop este In{Bucuresti}.
(b) prin vericarea unor propriet ati pe care trebuie s a le ndeplineasc a starea pen-
tru a considerat a stare scop; de exemplu, pentru jocul de sah stare scop este
aceea n care regele este atacat si nu se mai poate misca f ar a a atacat.
4. O functie de cost a caii care asigneaz a o valoare numeric a ec arei c ai. Functia
serveste ca m asur a a performantei succesiunii de actiuni (a solutiei); vom presupune
c a costul unei c ai este dat de suma costurilor actiunilor continute, iar costul unei
actiuni este o cantitate nenegativ a.
O solutie este o succesiune de actiuni care permite agentului rezolvarea problemei, iar
o solutie optim a este una n care costul solutiei este minim posibil.
1.6 Exemple de probleme de c autare
1.6.1 Probleme de jucarie
Sunt folosite n special pentru demonstrarea conceptelor, av and scop didactic.
1. Problema puzzle-ului: se d a o matrice de n linii si tot at atea coloane; n ecare
celul a se a a un singur num ar de la 1 la n
2
1, nu exist a dou a celule care s a contin a
acelasi num ar, iar una din celule este goal a. Pentru cazul n = 3 avem exemplicare
n gura 1.2(a). Se cere ca prin mut ari succesive pe orizontal a si pe vertical a ale
numerelor n locul spatiului gol s a se ajung a la o conguratie nal a, de exemplu n
care numerele sunt ordonate (citirea se face linie cu linie), iar spatiul este pe ultima
pozitie.
(a) Starea
initiala
(b) Starea
scop
Figura 1.2: Problema puzzle-ului pentru n = 3
1.6. EXEMPLE DE PROBLEME DE C

AUTARE 13
Starea initial a este dispunerea dat a; functia succesor genereaz a toate misc arile prin
care spatiul alb este mutat n cadrul matricei, pe vertical a sau orizontal a, cu cate
o sigur a pozitie; testul de scop este vericarea faptului c a o stare coincide cu cea
aleas a drept nal a; costul c aii este egal cu num arul de mut ari efectuate, deoarece se
poate considera c a ecare mutare are costul egal cu 1.
2. Problema reginelor pe tabla de sah: d andu-se o tabl a de sah de n linii si tot at atea
coloane, s a se determine o pozitionare a reginelor astfel nc at s a nu se atace reciproc.
Starea initial a este cean care tabla este goal a; functia succesor este adaug a o regin a
Tabela 1.1: Problema dispunerii reginelor pe o tabl a de 5x5

ntr-o celul a goal a (dar se pot g asi si alte formul ari mai inspirate); o stare scop este
aceea n care reginele nu se atac a reciproc.
1.6.2 Probleme din lumea reala
1. Problema determin arii rutei: acest tip de problem a aparentr-o varietate de aplicatii,
precum crearea unui itinerar bazat pe zboruri cu avionul, planicarea operatiilor mi-
litare, rutare n retele de calculatoare, etc. Complexitatea acestor probleme provine
din multitudinea de factori ce trebuie luati n considerare. De exemplu, pentru
problema g asirii unui itinerar pe cale aerian a, specicatiile ar putea :
ecare stare este reprezentat a de o locatie (un aeroport) si momentul curent;
starea initial a: locul si momentul plec arii;
functie succesor: dependent a de lista zborurilor care sunt programate dintr-o
anumit a locatie, la un moment ulterior;
testul scop: se poate ajunge la destinatie ntr-o perioad a de timp speci-
cat a/p an a la un moment maxim specicat?
costul c aii: depinde de costul biletelor ce trebuie achizitionate, timpul de
asteptare, durata total a a c al atoriei, calitatea locurilor, tipul serviciului, modul
de rezolvare a mbarc arii si tranzitului, tipul avionului, etc
14 CAPITOLUL 1. DEFINI TII. REZOLVAREA PROBLEMELOR PRIN C

AUTARE
Trebuie ns a considerate posibilit atile (si probabilit atile) de aparitie a unor eveni-
mente nedorite precum anularea/nt arzierea unor zboruri. Un bun planicator va
considera mai multe variante, va veni cu alternative si solutii de rezerv a, mpreun a
cu costurile suplimentare.
2. Problema comis-voiajorului - o persoan a trebuie s a fac a un tur al unei multimi de
orase, f ar a a trece de dou a ori prin acelasi loc, cu revenire n locatia initial a si cu un
cost al drumului minim (ciclu Hamiltonian de cost minim). Se cunoaste faptul c a
problema este NP-complet a, dar exist a foarte multe studii care ncearc a s a rezolve
problema c at mai ecient, eventual cu sacricarea optimalit atii solutiei.
3. Dispunerea circuitelor VLSI
1
, unde pe o pl acut a de dimensiuni foarte mici trebuie
dispuse componente, realizate conexiuni, astfel nc at s a nu existe cupl ari nedorite
ntre componente, s a se realizeze cu consum de material minim, s a e minimizate
lungimile circuitelor de transfer, etc. Problemele de c autare sunt extrem de complexe
datorit a interdependentelor sau restrictiilor.
4. Roboti software pentru c autarea pe Internet; pe l ang a faptul c a trebuie s a trateze
operarea ntr-o imens a baz a de date cu grad mic de structurare, trebuie s a rezolve
probleme care nu sunt simple nici pentru un om: r aspunsuri la ntreb ari, g asirea
preturilor cele mai convenabile, g asirea informatiilor nrudite cu ceva specicat, etc.
1.7 C autarea solutiei
Rezolvarea problemei este f acut a prin c autare n spatiul st arilor. Tehnicile de c autare
prezentate n acest capitol si n capitolul 2 folosesc un arbore de c autare care are drept
r ad acin a un nod corespunz and st arii initiale a problemei, iar nodurile sunt generate pe
baza actiunilor permise din starea curent a.
Vom considera ca exemplu problema g asirii drumului minim de la Arad la Bucuresti;
pentru moment, permitem existenta unor noduri diferite, dar care au st ari identice; o
discutie asupra acestui aspect este prezentat a n sectiunea 2.7.
Consider and c ate o stare la un moment dat, vom proceda astfel: test am s a vedem dac a
starea curent a este stare scop; dac a da, oprim c autarea, construim solutia si o raport am
2
.
Dac a r aspunsul este ns a negativ, atunci se va expanda starea curent a pe baza functiei
succesor, obtin and un nou set de st ari. Modul de alegere a nodului determin a strategia
de c autare.
1
VLSI: Very Large Scale Integration, crearea de circuite integrate prin combinarea de tranzistoare.
2
De remarcat ca nu ne propunem determinarea tuturor sau macar a mai multor solutii, ci doar a
primeia pe care algoritmul de cautare o descopera.
1.7. C

AUTAREA SOLU TIEI 15


Arborele de c autare este format din noduri; un nod const a din urm atoarele compo-
nente:
Stare: starea c aruia i corespunde nodul curent
Nod-Parinte: nodul din arborele de c autare care a generat nodul curent
Actiune: actiunea care a fost aplicat a nodului p arinte pentru a produce nodul
curent
Costul-caii: costul cumulat al actiunilor care duc de la nodul initial la nodul
curent;
Adancime: num arul de pasi de-a lungul c aii de la nodul initial
Nodul initial corespunde st arii initiale, p arintele si actiunea aferente acestui nod sunt
codicate convenabil (null, valoare neaplicabil a, etc). Componenta Costul-caii poate
n unele cazuri omis a, deoarece nu toate problemele cer determinarea unei solutii de cost
optim.
Un exemplu al arborelui de c autare generat pentru a c auta drumul de la Arad la
Bucuresti este dat n gura 1.4. Mai trebuie s a mention am c a nu trebuie f acut a confuzie
ntre noduri si st ari; n timp ce multimea st arilor poate nit a (de exemplu multimea
oraselor din Rom ania), num arul nodurilor poate innit, dac a se permite generarea de
cicluri de forma: Arad Sibiu Arad, Arad Sibiu Arad Sibiu Arad, etc.
Nodurile care au fost obtinute prin expandarea altora, dar nu au fost la r andul lor
expandate (altfel zis: noduri frunz a n arborele de c autare construit p an a la momentul
curent) sunt mentinute ntr-o colectie numit a colectieNoduri; natura acestei colectii si
politica de acces fac distinctia ntre o parte din algoritmii de c autare ce vor prezentati.
Forma general a a algoritmului de c autare este dat a n gura 1.3.
C ateva comentarii relativ la cod:
1. Functiile insereaza, insereaza-toate, scoate-primul determin a: inserare de
nod, inserare de colectie de noduri, extragerea primului element conform politicii de
acces specice tipului de date corespunz ator lui colectieNoduri;
2. Notatia X[Y] reprezint a valoarea atributului (propriet atii) X pentru entitatea Y
3. Parametrul problema reprezint a o codicare a problemei conform celor din sectiunea
1.5.
4. Functia Cautare-in-arbore poate returna si esuare, pentru cazul n care nu mai
exist a nici un nod care s a e expandat iar iteratiile anterioare nu au descoperit
16 CAPITOLUL 1. DEFINI TII. REZOLVAREA PROBLEMELOR PRIN C

AUTARE
Figura 1.3: Algoritmul general de c autare.
1.7. C

AUTAREA SOLU TIEI 17


(a) Nodul initial, corespunzator starii In(Arad)
(b) Dupa expandarea nodului initial
(c) Dupa expandarea nodului corespunzator starii In(Sibiu)
Figura 1.4: Cresterea arborelui de c autare pentru rezolvarea problemei g asirii rutei de
Arad la Bucuresti. Nodurile care au fost expandate sunt colorate gri; cele obtinute n
urma expand arii unui nod p arinte sunt cu linie continu a; cele care urmeaz a a obtinute
prin expandare, la pasii urm atori sunt cu marcate cu linie ntrerupt a. Nu se face evitarea
st arilor duplicat.
18 CAPITOLUL 1. DEFINI TII. REZOLVAREA PROBLEMELOR PRIN C

AUTARE
starea scop printre st arile explorate. Trebuie ns a spus c a exist a situatii si strategii
de algoritmi de c autare care pot rula teoretic la innit, sau din punct de vedere
practic duc la epuizarea memoriei disponibile.
1.8 M asurarea performantelor algoritmilor de c autare
Pentru algoritmii de c autare care urmeaz a a discutati evaluarea se va face prin
prisma urm atoarelor patru atribute:
Completitudinea un algoritm de c autare este complet dac a se garanteaz a c a g aseste
solutia problemei, n cazul n care aceasta exist a;
Optimalitatea un algoritm este optim dac a solutia g asit a este cu cost al c aii optim;
Complexitatea n timp
Complexitatea de memorie
Complexitatean timp este m asurat a relativ la num arul de noduri generate n decursul
explor arii, iar complexitatea de memorie este num arul maxim de noduri ce trebuie s a e
memorat p an a la rezolvare.
Cele dou a complexit ati se cuantic a prin intermediul notatiei O. Prezent am notatia
pentru cazul functiilor reale cu un singur argument. Fie o functie g : N R
+
; not am cu
O(g) multimea:
O(g) = {f : N R
+
|n
0
N, c > 0 : n n
0
, f(n) c g(n)}
Pentru algoritmii de c autare ce urmeaz a a prezentati complexitatea este dat a n termeni
de:
b, factor de ramicare reprezent and num arul maxim de succesori ai oric arui nod
d, ad ancimea celui mai putin ad anc nod solutie (a c arui stare este stare scop)
m, lungimea maxim a a oric arei c ai n arborele de c autare.
Capitolul 2
Strategii de cautare neinformata
2.1 C autarea mai nt ai n l atime
C autarea mai nt ai n l atime
1
are ca particularitate folosirea structurii de date de tip
coad a (colectie n care politica de acces este FIFO - First In, First Out - primul intrat,
primul iesit) n cadrul functiei Cautare-in-arbore din sectiunea 1.7. Nodul de start
este expandat, apoi copiii acestui nod sunt expandati, apoi copiii copiilor, etc. Functia
Cautare-in-arbore va apelat a cu parametrul colectieNoduri initializat cu o coad a
goal a. Expandarea oric arui nod duce la crearea altor noduri care sunt puse la sf arsitul
cozii.

In acest fel nodurile de la o ad ancime mai mic an arborele de c autare sunt expandate
naintea celor cu ad ancime mai mare. Putem vedea aceast a explorare ca o expandare
radial a n jurul nodului de plecare. Un exemplu de functionare a acestei strategii este
ar atat n gura 2.1, pentru cazul n care arborele de c autare este de tip binar.
Se poate vedea faptul c a dac a plec and de la nodul initial se ajunge la nodul nal prin
urm arirea actiunilor date de functia succesor, atunci functia va duce mai devreme sau
mai t arziu la descoperirea lui; mai mult, drumul de la nodul initial la nodul scop este cu
num ar minim de arce; altfel spus, algoritmul descoper a un nod scop care are ad ancimea
minim a si atunci opreste c autarea.
Algoritmul este optimal doar dac a functia de cost a c aii este nedescresc atoare
2
fat a de
num arul de arce (ad ancimea nodului). Acest lucru se nt ampl a, de exemplu, dac a costul
ec arei actiuni egal cu aceeasi cantitate constant a. Un exemplu de functie de cost a c aii
care nu este nedescresc ator fat a de num arul de arce este dat n gura 2.1, unde costul c aii
din nodul A n nodul C via B (deci cu dou a arce) este 20, pe c and costul drumului direct
AC (un singur arc) este 30.
P an a acum comportamentul acestui algoritm este ncurajator. Pentru a vedea de ce
1
Engl: breadth-rst search
2
O functie f : R R este nedescrescatoare daca x, y R, x < y avem ca f(x) f(y).
19
20 CAPITOLUL 2. STRATEGII DE C

AUTARE NEINFORMAT

A
A
B C
D E F G
(a) Expandarea nodului radacina.
A
B C
D E F G
(b) Dupa expandarea nodului
radacina; acesta dispare din coada
colectieNoduri, n schimb sunt
adaugate nodurile B si C.
A
B C
D E F G
(c) Dupa expandarea nodului B; acesta
dispare din coada, dar se adauga la
sfarsitul lui colectieNoduri nodurile
D si E.
A
B C
D E F G
(d) Dupa expandarea nodului C; acesta
dispare din coada, dar se adauga la
sfarsitul lui colectieNoduri nodurile F si
G.
Figura 2.1: Modul de alegere a nodurilor ce se expandeaz a conform strategiei de c autare
mai nt ai n l atime. Nodurile marcate cu gri sunt eliminate din coada colectieNoduri,
cele marcate prin linie discontinu a vor obtinute prin expandare la pasii urm atori, no-
durile n dreptul c arora este desenat a o s ageat a urmeaz a a expandate, iar celelate sunt
noduri aate n coada colectieNoduri.
Figura 2.2: Exemplu de functie de cost care nu este nedescresc atoare fat a de num arul de
arce. Pe ecare arc este scris costul s au.
2.2. C

AUTAREA DUP

A COSTUL UNIFORM 21
nu este o alegere bun a n toate cazurile facem analiza complexit atilor. Consider am un caz
n care ecare stare are exact b succesori. Nodul r ad acin a genereaz a b noduri copil, ecare
dintre acestia are la r andul lui b copii (deci la ad ancimea 2 avem b
2
noduri), prin inductie
se poate ar ata ca la ad ancimea h avem b
h
noduri. S a presupunem c a solutia se a a la
ad ancimea d. Cazul cel mai defavorabil este acela n care acest nod corespunz and solutiei
este chiar ultimul care se expandeaz a de pe nivelul lui, deci avem: cele b
d
noduri de pe
nivelul d, ecare din cele b 1 noduri de pe nivelul nodului solutie (noduri expandate
naintea nodului solutie) produce copii care se pun n colectieNoduri, deci nc a (b
d
1) b
noduri de pe nivelul d + 1.

In total num arul de noduri generate este:
1 +b +b
2
+ . . . + b
d
+ (b
d+1
b) = O(b
d+1
).
Fiecare nod generat trebuie de asemenea s a e p astrat n memorie, pentru a putea
folosit la reconstituirea drumului - nu avem de unde s a stim care din acestia sunt efectiv
folositi n refacerea drumului, deci nu ne permitem s a stergem din memorie p an a c and se
reface drumul de la starea initial a la cea nal a; alfel zis, complexitatea n spatiu este tot
O(b
d+1
).
Complexit atile nu sunt ncurajatoare, deoarece pentru un factor de ramicare b = 10
si ad ancime a nodului solutie d = 8 este nevoie de 31 de ore de rulare si 1 teraoctet de
memorie RAM (la o rat a de producere a nodurilor de 10000 noduri/secund a si 1000 octeti
pentru ecare nod). Ca atare, acest tip de explorare nu se foloseste n practic a dec at
pentru probleme de dimensiuni mici.
2.2 C autarea dup a costul uniform
C autarea mai nt ai n l atime alege spre expandare cel mai putin ad anc nod care nu
este expandat. Pentru cazul n care costul c aii nu este nedescresc ator fat a de ad ancimea
nodului, strategia de alegere poate sa rateze g asirea c aii optime. Se poate ns a corecta
acest aspect dac a la ecare pas se alege nu cel mai putin adanc nod neexpandat, ci nodul
neexpandat cu costul c aii cel mai mic. Acest lucru se poate face dac a colectia de noduri
este mentinut a ca o coad a de priorit ati (colectie sortat a dup a costul c aii ec arui nod; orice
ad augare de nod se face nu neap arat la sf arsit ca pentru o coad a clasic a ci astfel nc at
s a se p astreze proprietatea de ordonare a colectiei; extragerea produce nodul cu costul
c aii cel mai mic).
Astfel, c autarea dup a costul uniform nu favorizeaz a c aile cu num ar minim de arce, ci
pe cel cu cost minim. Dac a costul ec arui pas (actiune) este cel putin egal cu o constant a
> 0, atunci c autarea este at at complet a c at si optim a.
Complexitatean timp si spatiu de memorie nu mai poate caracterizat a de ad ancimea
22 CAPITOLUL 2. STRATEGII DE C

AUTARE NEINFORMAT

A
nodului; n schimb este implicat costul solutiei optime, C

. Complexitatea de timp si
spatiu este O

b
1+
[
C

care este deseori mai mare dec at O

b
d+1

.
2.3 C autarea mai nt ai n ad ancime
C autarea mai nt ai n ad ancime
3
va alege pentru expandare cel mai ad anc nod
din arbore care nu a fost expandat. Colectia de noduri neexpandate din algoritmul
Cautare-in-arbore se poate implementa ca o stiv a (structur a de date cu politic a de
acces LIFO - Last In, First Out sau ultimul intrat, primul iesit). Pentru cazul unui
arbore binar ordinea de parcurgere este exemplicat a n gura 2.3.
Necesarul de memorie pentru acest algoritm este deosebit de modest: dac a factorul de
ramicare este b si ad ancimea maxim a e m atunci num arul de noduri ce trebuie retinute
n colectieNoduri este 1 + b m, deci complexitatea este O(b m).
Exist a o variant a si mai redus a ca necesar de memorie bazat pe acest tip de c autare;
algoritmul este cunoscut sub numele de backtracking si are particularitatea c a nu face
expandarea tuturor nodurilor copil pentru nodul extras din stiv a, ci doar a unui copil;
dac a explorarea pe acest copil este nefructuas a, atunci se ncearc a al doilea copil, etc.
Avantajul vine din faptul ca stiva nu se ncarc a dec at cu nodurile care chiar fac parte din
calea de c autare curent a. Complexitatea n spatiu este O(m). Mai mult, se poate doar
mentine nodul curent (dac a pasul napoi, de la copil spre p arinte este usor de ref acut)
si atunci complexitatea n spatiu este O(1) memorie constant a ocupat a, indiferent de
ad ancimea curent a a nodului.
Problema cu acest tip de c autare este c a poate s a parcurga un num ar mare de arce
p an a la g asirea nodului solutie, dac a ordinea de alegere a nodurilor este neinspirat a;
de exemplu, strategia de c autare poate s a duc a la descoperirea unui nod scop de cost
suboptimal, dar dac a nscrierea n stiv a a nodurilor copil obtinute la expandare sar face
dup a alt a ordine, atunci s-ar putea ca primul nod solutie descoperit s a e de cost mai
bun sau chiar optim. Mai mult chiar, poate s a caute la nesf arsit n arbore, dac a nu
se face evitarea st arilor duplicat. Pentru problema oraselor, este posibil a urm atoarea
parcurgere: Arad, apoi Sibiu, apoi Arad, iar Sibiu, etc. Putem deci spune c a algoritmul
nu este complet, nici optimal, iar dac a se termin a atunci n cel mai defavorabil caz are
complexitatea n timp O(b
m
), unde m este lungimea maxim a a unei c ai n arborele de
c autare. Mai trebuie zis c a m poate s a e mult mai mare dec at d, ad ancimea celui mai
putin ad anc nod scop, deci complexitatea de timp poate s a e mai mare dec at cea pentru
c autarea mai nt ai n l atime sau chiar si cea a costului uniform. R am anens a de remarcat
compexitatea de memorie cerut a: liniar a sau chiar constant a.
3

In limba engleza, n original: depth rst search.


2.3. C

AUTAREA MAI

INT

AI

IN AD

ANCIME 23
A
B C
D E F G
H I J K L M N O
(a) Expandarea nodului radacina.
A
B C
D E F G
H I J K L M N O
(b) Dupa expandarea nodului
radacina; acesta dispare din stiva
colectieNoduri, n schimb sunt
adaugate nodurile C si apoi B (ordinea
aceasta poate sa difere si atunci
desenele ce urmeaza difera).
A
B C
D E F G
H I J K L M N O
(c) Dupa expandarea nodului B, pre-
luat din varful stivei; acesta dispare din
stiva, dar se adauga la varful ei nodu-
rile E si apoi D (a se vedea remarca des-
pre alta ordine de adaugare la stiva din
subgura anterioara).
A
B C
D E F G
H I J K L M N O
(d) Dupa expandarea nodului D; acesta
dispare din stiva, dar se adauga la varful
ei nodurile I si apoi H. Urmatoarea
operatie este expandarea (si deci elimi-
nare din stiva) a nodului H, ceea ce
nu duce la adaugarea de alte noduri n
colectieNoduri.
A
B C
D E F G
H I J K L M N O
(e) Se extrage varful stivei, adica no-
dul H si se ncearca expandarea lui;
deoarece el nu are descendenti, stiva
colectieNoduri ramane nemodicata
A
B C
D E F G
H I J K L M N O
(f) Dupa expandarea nodului I; acesta
dispare din stiva si nu se adauga nici
un alt nod la stiva.
Figura 2.3: Modul de alegere a nodurilor ce se expandeaz a conform strategiei de
c autare mai nt ai n ad ancime. Nodurile colorate cu negru/gri sunt eliminate din stiva
colectieNoduri, cele marcate prin linie discontinu a vor obtinute prin expandare la
pasii urm atori, nodurile n dreptul c arora este desenat a o s ageat a urmeaz a a expandate,
iar celelalte sunt noduri aate n stiva colectieNoduri.
24 CAPITOLUL 2. STRATEGII DE C

AUTARE NEINFORMAT

A
A
B C
D E F G
H I J K L M N O
(a) Dupa expandarea nodului E; acesta
dispare din stiva colectieNoduri, n
schimb sunt adaugate nodurile K si apoi
J.
A
B C
D E F G
H I J K L M N O
(b) Dupa expandarea nodului J; acesta
dispare din stiva colectieNoduri si
deoarece nu are descendenti nu produce
noi elemente n stiva.
A
B C
D E F G
H I J K L M N O
(c) Dupa expandarea nodului K; acesta
dispare din stiva colectieNoduri si
deoarece nu are descendenti nu pro-
duce noi elemente n stiva.
A
B C
D E F G
H I J K L M N O
(d) Dupa expandarea nodului C; acesta
dispare din stiva, dar se adauga la
varful ei nodurile G si apoi F.
A
B C
D E F G
H I J K L M N O
(e) Se extrage varful stivei, adica no-
dul F si se expandeaza, adaugand-se la
stiva nodurile M si apoi L.
A
B C
D E F G
H I J K L M N O
(f) Expandarile frunzelor M si L re-
duc numarul de elemente din stiva
cu cate o unitate, urmeaza expanda-
rea nodului G (deci scoaterea lui din
stiva colectieNoduri) si introduce-
rea frunzelor O si N. Dupa expandarea
acestor frunze (deci eliminarea lor din
stiva) colectieNoduri devine vida si
cautarea se opreste.
Figura 2.4: Parcurgerea mai nt ai n ad ancime - continuare.
2.4. C

AUTAREA CU AD

ANCIME LIMITAT

A 25
2.4 C autarea cu ad ancime limitat a
C autarea mai nt ai n ad ancime din sectiunea 2.3 are un mare atu: foloseste extrem
de putin a memorie. Dar are si un dezavantaj major, posibilitatea de a c auta la innit
n arbore, datorit a st arilor duplicat. Acest dezavantaj este eliminat simplu: vom limita
ad ancimea maxim a la care poate s a coboare explorarea n arbore. Vom folosi deci un
parametrul l (num ar ntreg) reprezent and ad ancimea maxim a de explorare. Nodurile de la
ad ancimea l sunt tratate ca si cum nu ar avea succesori.

Ins a acest algoritm mai introduce
un tip de rezultat: t aiere
4
, pentru cazul n care avem d > l iar c autarea epuizeaz a toate
nodurile din subarborele de ad ancime l; n acest caz nu se poate spune c a se esueaz a,
pentru c a o ad ancime de c autare mai mare ar permis g asirea nodului scop (si deci
problema sar putut rezolva).
Algoritmul c aut arii cu ad ancime limitat a
5
este dat n gura 2.4. Functiile solutie,
expandeaza sunt aceleasi ca la algoritmul de cautare n arbore (sectiunea 1.3, pagina 16).
Algoritmul nu este complet dac a l < d; pentru l d el este complet, dar nu neaparat
optim. Complexitatean timp este O(b
l
), iar cean spatiu O(bl) (mostenite am andou a de
la parcurgerea mai nt ai n ad ancime). Ceea ce este ns a de remarcat e c a nu mai avem
risc de c autare innit a datorat a ciclurilor (vizit arii repetate a acelorasi st ari).

Impreun a
cu consumul de memorie redus ne fac s a sper am c a problema de c autare devine rezolvabil a
cu cerinte de memorie rezonabile.
Se pune ntrebarea: de unde stim care este ad ancimea maxim a la care vom permite
c autarea? Pentru destul de multe probleme, din ns asi enuntul lor se poate deduce care
este o valoare rezonabil a pentru limita maxim a. De exemplu, pentru problema Arad
Bucuresti putem observa c a num arul de orase de pe hart a este 20, deci l = 19 este o
alegere bun a. Chiar mai mult, se poate observa c a pentru orice pereche de orase se poate
s a se ajung a dintr-unul n cel alalt prin maxim 9 pasi, deci ad ancimea poate si mai mult
redus a.
2.5 C autarea mai nt ai n ad ancime cu ad ancire ite-
rativ a
Problema necunoasterii apriorice a ad ancimii la care s a se fac a c autarea este tratabil a
prin urm atoarea strategie: se dau valori succesive lui l ncep and cu 0, din ce n ce mai mari
p an a ce rezultatul este de tip esuare sau solutie. G asirea solutiei nseamn a determinarea
nodului solutie cel mai putin ad anc. Varianta de algoritm combin a p artile bune ale
4

In limba engleza, n original: cuto


5

In limba engleza, n original: depthlimited search


26 CAPITOLUL 2. STRATEGII DE C

AUTARE NEINFORMAT

A
Figura 2.5: Algoritmul c aut arii cu ad ancime limitat a.
c aut arii n ad ancime si n l atime: memorie necesar a mic a si respectiv, completitudine
si optimalitate pentru cazul n care functia de cost a c aii este nedescresc atoare fat a de
num arul de arce pentru cale.
2
.
5
.
C

A
U
T
A
R
E
A

M
A
I
I
N
T

A
I
I
N
A
D

A
N
C
I
M
E

C
U
A
D

A
N
C
I
R
E
I
T
E
R
A
T
I
V

A
2
7
(a) Evolutia arborelui de cautare pentru l = 0
(b) Evolutia arborelui de cautare pentru l = 1; se reconstruieste radacina si apoi se
obtin cele doua noduri copil B si C.
(c) Evolutia arborelui de cautare pentru l = 2; se reconstruiesc radacina, cei doi copii
ai ei B si C si apoi se obtin cele patru noduri nepot D, E, F si G.
Figura 2.6: Evolutia arborelui de c autare n cazul algoritmului de c autare mai nt ai n ad ancime cu ad ancire iterativ a, pentru diferite
valori ale lui l.
28 CAPITOLUL 2. STRATEGII DE C

AUTARE NEINFORMAT

A
Strategia algoritmului c autarea mai nt ai n ad ancime cu ad ancire iterativ a
6
ar putea
p area neecient a, deoarece se creeaz a toate nodurile de la ad ancimea i 1 atunci c and se
caut a la ad ancimea i. Putem observa ns a c a cu c at un nivel de noduri se recreeaz a mai
des, cu at at este de fapt ad ancimea lui mai mic a (deci numarul de noduri corespunz ator
este mai redus). Putem calcula num arul de noduri care sunt expandate astfel: nodurile
de la ad ancimea d sunt generate o singur a dat a (de fapt, la ultima iteratie s-ar putea s a
nu e chiar toate generate), cele de la nivelul d 1 sunt generate de dou a ori etc, cele de
la nivelul 0 (adic a r ad acina) de d ori; num arul de noduri este dat ca:
N(CAR) = b
d
1 +b
d1
2 + . . . +b d + 1 (d + 1) = O(b
d
)
pe c and la c autarea mai nt ai n l atime num arul de noduri generate este O(b
d+1
).
Am obtinut deci un algoritm de c autare care este complet, este optim dac a functia de
cost este nedescresc atoare fat a de num arul de arce ale drumului, are cerinte de memorie
modeste si complexitate n timp mai mic a dec at cea a algoritmilor anterior prezentati.

In
practica se considera ca algoritmul de cautare mai nt ai n ad ancime cu ad ancire iterativa
este algoritmul preferat de cautare atunci c and spatiul de cautare este mare iar ad ancimea
nodului solutie este necunoscuta.
2.6 C autare bidirectional a
C autarea bidirectional a se bazeaz a pe strategia: se ncep simultan dou a c autari, at at
dinspre nodul de start spre scop c at si invers. Dac a se produce nt alnirea celor dou a
c autari (si n acest caz punctul comun celor dou a parcurgeri este la distanta d/2 dintre
cele dou a noduri de pornire), atunci complexitatea n timp este O(b
d/2
+b
d/2
) = O(b
d/2
),
care este mult mai mic dec at O(b
d
). Procedeul este ilustrat n gura 2.7.
Figura 2.7: C autare bidirectional a. Aria nsumat a a celor dou a cercuri este mai mic a
dec at aria unui cerc mare care pleac a din nodul de start si ajunge n nodul de scop.
Goal
Start
La ecare expandare de nod se veric a dac a acesta nu a fost cumva atins de c autarea
din sens contrar. Dac a da, atunci solutia (secventa de actiuni care duce dinspre nodul
6

In limba engleza, n original: iterative deepening depth-rst search.


2.7. PROBLEMA ST

ARILOR DUPLICAT 29
de start spre cel de scop) se reface pe baza drumurilor construite spre nodul comun.
Determinarea faptului c a un nod se g aseste ntr-o lista de noduri se face n timp mediu
constant
7
, dac a se foloseste o tabel a de dispersie. Dar tocmai faptul c a necesarul de
memorie este O(b
d/2
) face acest algoritm s a nu poat a aplicat n practic a.

In rest ns a,
algoritmul este complet si optimal dac a ecare din cele dou a c aut ari este efectuat a prin
parcurgere mai nt ai n l atime (si desigur, cu ipoteza suplimentar a cerut a de algoritmul
mentionat). Alte variante de combinare pot face algoritmul neoptim sau incomplet.
Mai trebuie zis aici c a algoritmul poate folosit doar n cazul n care se poate calcula
usor functia de predecesor, opusul functiei succesor care face parte din denitia problemei
- lucru care nu se nt ampl a la toate problemele.

Inc a un aspect merit a mentionat - dac a
exist a mai multe noduri scop care pot enumerate (nu doar teoretic, ci si practic) atunci
se poate crea o stare scop nou a, unic a, al c arui pas de predecesor s a duc a n st arile scop
originale. Dac a multimea st arilor scop este foarte larg a sau validarea nodurilor scop se
face fat a de un predicat, atunci c autarea bidirectional a este greu sau imposibil de aplicat,
n lipsa unei descrieri compacte a propriet atii de a stare scop.
2.7 Problema st arilor duplicat
Algoritmul general de c autare nu evit a explorarea n mod repetat a acelorasi st ari
(deci obtinerea de noduri diferite, dar pentru care st arile corepsunz atoare au mai fost
vizitate anterior). Acest lucru face ca, de exemplu, explorarea n ad ancime s a poat a s a
nu determine solutie, cu toate c a una exist a. Pentru ceilalti algoritmi vizitarea repetat a
a unor st ari se traduce prin inecient a.
Un exemplu de explozie a num arului de noduri datorate st arilor duplicat este dat
n gura 2.8. Din ecare punct avem 4 variante de continuare; dac a nu facem evitarea
st arilor duplicat, atunci la o parcurgere de ad ancime d obtinem 4
d
noduri; dac a se face
evitarea st arilor duplicat, atunci obtinem 4 d
2
noduri. Pentru d = 20, diferenta este
urias a: 1.099.511.627.776 fat a de 1600 de noduri!
Figura 2.8: Retea pentru care neevitarea st arilor duplicat duce la o explozie exponential a
a num arului de noduri cu st ari repetate.
Detectarea se face prin c autarea st arii nodului ce urmeaz a a expandat n lista st arilor
7
Daca functia de dispersie este bine aleasa.
30 CAPITOLUL 2. STRATEGII DE C

AUTARE NEINFORMAT

A
care au fost deja expandate. Dac a un algoritm evit a st arile duplicat, atunci poate v azut
ca o c autare n graf. Algoritmul este dat n gura 2.9 si foloseste o multime a st arilor deja
expandate numit a stariVechi. Algoritmul nou obtinut se numeste Cautare-in-graf.
Figura 2.9: Algoritmul de c autare in graf.
Algoritmul Cautare-in-graf nu pune probleme n privinta completitudinii; comple-
xitatea n timp si spatiu sunt proportionale cu num arul st arilor distincte, iar asta poate s a
e mult mai mic dec at O(b
d
). Remarc amns a c a pentru c autarea mai nt ai n ad ancime
sau cei derivati din aceast a strategie, datorit a mentinerii acestei liste de noduri vechi,
necesarul de memorie nu mai este liniar; se evit a n schimb ciclarea.

In ceea ce priveste optimalitatea, lucrurile stau astfel: algoritmul va elimina noua cale
descoperit a c atre o stare care a mai fost nt alnit a nainte. Deoarece prima cale descope-
rit a s-ar putea s a e suboptimal a, rezult a c a nu se poate garanta optimalitatea solutiei
determinate. Acest lucru nu se nt ampl a atunci c and avem c autarea costului uniform sau
c and se foloseste c autarea mai nt ai n l atime pentru cost constant al actiunilor. Pentru
celelate metode ar trebui ca ajungerea la o stare care a mai fost parcurs a s a declanseze o
vericare asupra faptului c a noua cale produce un rezultat mai bun; dac a este adev arat,
atunci trebuie ca toate nodurile care au ca ascendent (direct sau prin tranzitivitate) nodul
curent s a si reactualizeze costurile.
Capitolul 3
Cautare informata
3.1 Strategii de c autare informat a
Strategiile euristice prezentate n acest capitol pornesc de la o idee simpl a: ce s-ar
nt ampla dac a s-ar explora ntr-o directie care pare mai promit atoare pentru rezolvarea
problemei? am putea astfel s a evit am explorarea unor noduri care au o sans a mic a de
ajungere n nodul scop, cu efect benec asupra complexit atii n timp si spatiu. Este o
strategie des folosit a de expertii umani, care pe baza experientei si intuitiei evit a explo-
rarea tuturor posibilit atilor si decid o c autare n anumite directii, cele estimate a mai
promit atoare.

In cazul problemelor de c autare formalizaten capitolul 1, vom considera pentru ecare


nod n capacitatea estimata a lui de a duce spre un nod scop. Concret, se folosesste o
functie de evaluare f() si pentru ecare nod n se calculeaz a f(n). Nodul cu cea mai mic a
valoare a acestei functii este ales pentru expandare. Ca atare, algoritmul de c autare pe
arbore poate folosit cu particularizarea: lista de noduri colectieNoduri este o coad a
de priorit ati.
Exist a o clas a ntreag a de algoritmi bazati pe aceasta idee. O component a comun a a
acestora este o functie euristica notat a traditional cu h(). h(n) reprezint a costul estimat
al celei mai ieftine c ai care duce de la nodul curent la un nod scop
1
.

In mod resc, vom impune ca h(n) = 0 dac a n este nod scop.


De exemplu, pentru problema drumului din Aradn Bucuresti putem s a vedem aceast a
functie ca ind distanta pe drum drept de la oricare oras c atre Bucuresti. Figura 3.1
contine at at harta schematizat a a Rom aniei, c at si un tabel cu distantele pe drum drept
dintre orase si Bucuresti.
1
Daca problema este de minimizare, atunci h(n) este costul estimat al celei mai scurte cai; daca este
problema de maxim, atunci este costul estimat al celei mai scumpe cai.

In cele ce urmeaza vom lucra
cu probleme de cost minim.
31
32 CAPITOLUL 3. C

AUTARE INFORMAT

A
3.2 C autarea euristic a lacom a
C autarea euristic a lacom a
2
alege pentru expandare nodul care are valoarea calculat a
pentru functia h cea mai mic a. Altfel spus, alegem ca f(n) = h(n), pentru orice nod n.
Pentru problema drumului minim de la Arad la Bucuresti pasii sunt dati n gura
3.2. Distantele folosite drept euristic a sunt scrise n gura 3.1. Primul nod care se
expandeaz a este Sibiu, deoarece are distanta pe drum drept de la el la Bucuresti minim a,
253 km. Urm atorul nod expandat este F ag aras, deoarece din multimea nodurilor aate
n colectieNoduri el este cel mai apropiat de Bucuresti. Expandarea lui F agaras duce
la obtinerea nodului Bucuresti, care la iteratia urm atoare este cel ales pentru expandare
(av and costul 0) si care termin a iteratia din algoritmul Cautare-in-arbore (sectiunea
1.7). Dar drumul optim este urm atorul: Arad Sibiu R amnicu V alcea Pitesti
Bucuresti, cu 32 de kilometri mai mic dec at cel descoperit anterior.
Putem observa c a minimizarea lui h poate duce la c autare cu num ar innit de pasi:
de exemplu, dac a se doreste a se ajunge din Iasi la F ag aras, prima destinatie este Neamt;
dar de aici nu mai exist a nici un alt drum, dec at napoi napoi n Iasi, ceea ce duce la
un ciclu innit dac a nu se evit a st arile repetate; dac a se evit a, atunci se descoper a calea
optim a: Iasi, Vaslui, Urziceni, Bucuresti, F ag aras.
Caracteristicile acestui algoritm sunt: incomplet deoarece poate intra ntrun ciclu
innit, neoptim a se vedea exemplul dat mai sus, complexitate de timp si memorie O(b
m
),
unde m este ad ancimea maxim a a unui drum n arborele de c autare.

In practic a ns a, o
euristic a bine aleas a poate s a duc a la vitez a crescuta si memorie necesar a rezonabil a, iar
costul solutiei determinate, chiar dac a nu e optim, este deseori foarte apropiat de el.
2

In limba engleza, n original: greedy best-rst search.


3
.
2
.
C

A
U
T
A
R
E
A
E
U
R
I
S
T
I
C

A
L
A
C
O
M

A
3
3
Bucharest
Giurgiu
Urziceni
Hirsova
Eforie
Neamt
Oradea
Zerind
Arad
Timisoara
Lugoj
Mehadia
Dobreta
Craiova
Sibiu
Fagaras
Pitesti
Rimnicu Vilcea
Vaslui
Iasi
Straightline distance
to Bucharest
0
160
242
161
77
151
241
366
193
178
253
329
80
199
244
380
226
234
374
98
Giurgiu
Urziceni
Hirsova
Eforie
Neamt
Oradea
Zerind
Arad
Timisoara
Lugoj
Mehadia
Dobreta
Craiova
Sibiu
Fagaras
Pitesti
Vaslui
Iasi
Rimnicu Vilcea
Bucharest
71
75
118
111
70
75
120
151
140
99
80
97
101
211
138
146
85
90
98
142
92
87
86
Figura 3.1: Harta Rom aniei si distantele pe drum drept dintre orase si Bucuresti.
3
4
C
A
P
I
T
O
L
U
L
3
.
C

A
U
T
A
R
E
I
N
F
O
R
M
A
T

A
(a) Nodul eles pentru expandare este unic,
radacina
(b) Dupa expandarea nodului radacina; nodul ce urmeaza a
expandat este Sibiu, avand costul f (= h) cel mai mic.
(c) Dupa expandarea nodului Sibiu; nodul ce urmeaza a u expandat este
Fagaras, avand costul f cel mai mic.
(d) Dupa expandarea nodului Fagaras; se ajunge n orasul Bucuresti, care
va ales la urmatoarea iteratie din algoritmul Cautare-in-arbore.
Figura 3.2: Pasi n executarea algoritmului de c autare euristic a lacom a. Valorile scrise sub noduri provin din gura 3.1
3.3. ALGORITMUL A* 35
3.3 Algoritmul A*
Cea mai cunoscut a form a a acestor algoritmi de c autare informat a este algoritmul A*,
pentru care functia f(n) este dat a ca:
f(n) = g(n) + h(n)
unde g(n) este costul real al drumului de la nodul de start la nodul n un nod din
arborele de c autare contine deja aceast a valoare iar h(n) este, precum anterior, costul
estimat al celei mai bune c ai de la nodul n la un nod scop. Avem deci c a f(n) este costul
estimat al celui mai bun drum de la nodul de start la un nod scop, drum ce trece prin n.
Pentru c ateva conditii impuse lui h se obtine c a algoritmul A* este optim si complet; n
practic a, rezultatele obtinute sunt foarte bune, prin comparatie cu strategiile de c autare
oarb a studiate n cursul 2.
Vom considera functii h care sunt euristici admisibile, adic a h(n) niciodat a nu supra-
estimeaz a (dep aseste) costul unei solutii de la nodul n la nod scop
3
. Prin natura lor, acest
tip de functii sunt optimiste ele permanent subestimeaz a costul real al drumului. Deoa-
rece functia g cuantic a efortul exact de a ajunge din nodul initial n nod scop, deducem
c a valoarea f(n) nu supraestimeaz a efortul de a ajunge din nodul initial n nod scop via
nodul intermediar n.
Un exemplu de functie euristic a admisibil a este cea care estimeaz a efortul de ajungere
din nodul nn Bucuresti ca ind distanta pe drum drept de la n la Bucuresti. Este evident
c a orice rut a s-ar alege, ea nu poate avea cost mai mic dec at costul drumului drept.
Evolutia algoritmului A* pentru problema ajungerii de la Arad la Bucuresti este re-
prezentat a n gurile 3.3 si 3.4.
3
Aceasta este denitia pentru problema n care se cere minimizarea caii; pentru probleme de maximi-
zare, o euristica admisibila nu subestimeaza efortul real de ajungere la nod scop.
3
6
C
A
P
I
T
O
L
U
L
3
.
C

A
U
T
A
R
E
I
N
F
O
R
M
A
T

A
(a) Nodul eles pentru expandare este unic,
radacina
(b) Dupa expandarea nodului radacina; nodul ce urmeaza a expan-
dat este Sibiu, avand costul f cel mai mic.
(c) Dupa expandarea nodului Sibiu; nodul ce urmeaza a u expandat este
Ramnicu Valcea, avand costul f cel mai mic.
(d) Dupa expandarea nodului Ramnicu Valcea; nodul ce urmeaza a expandat este
Fagaras.
Figura 3.3: Pasi n executarea algoritmului A*. Valorile scrise sub noduri reprezint a valorile functiei f = g + h.
3
.
3
.
A
L
G
O
R
I
T
M
U
L
A
*
3
7
(a) Dupa expandarea nodului Fagaras.
(b) Dupa expandarea nodului Pitesti. Bucuresti este urmatorul nod expandat, dar si nod scop,
deci cautarea se opreste
Figura 3.4: Pasi n executarea algoritmului A* (continuare).
38 CAPITOLUL 3. C

AUTARE INFORMAT

A
Vom demonstra urm atoarea propozitie:
Teorema 1 Daca algoritmul A* se termina, atunci nodul scop la care s-a ajuns, folosind
algoritmul Cautare-in-Arbore are cost optim.
Demonstratie Fie G si G
2
noduri scop aate n colectieNoduri, G
2
suboptimal (adica
cu valoarea drumului p ana la el mai mare dec at este necesar) si G optimal. Avem
urmatoarele:
f(G
2
) = g(G
2
) + h(G
2
) = g(G
2
)
deoarece am impus nca de la nceput ca h(nodScop) = 0. Din acelasi motiv:
f(G) = g(G)
Apoi:
g(G
2
) > g(G)
deoarece G
2
este suboptimal. Din cele de mai sus avem ca:
f(G
2
) > f(G)
deci G va expandat naintea lui G
2
de catre algoritmul A*.
Conditia din teorema anterioar a este satisf acut a daca num arul de noduri n pentru
care f(n) f(G) este nit.
Dac a se foloseste algoritmul Cautare-in-Grafn locul algoritmului Cautare-in-Arbore,
optimalitatea nu mai este neap arat valabil a. Reamintim ca algoritmul parcurgerii pe graf
evit a st arile repetate astfel: un nod din colectia de noduri se expanda doar dac a starea s a
nu se reg aseasc a ntr-o list a de st ari deja parcurse. Problema cu aceast a abordare este c a
se poate astfel c a prima ajungere ntr-o anumit a stare sa se fac a cu un cost suboptimal,
iar urm atoarele drumuri care conduc la aceeasi stare sunt neglijate, chiar dac a ar duce la
mbun at atirea costului pentru acea stare.
Exist a dou a solutii care se pot aplica. Prima const a n mentinerea c aii care are costul
cel mai bun. Se poate scrie asemenea algoritm, chiar dac a este mai complex (presupune
de exemplu ca s a se modice si costurile nodurilor care sunt descendenti ai nodurilor cu
cost mbun at atit). A doua solutie cere s a ne asigur am c a prima cale ce duce la o anumit a
stare este ntotdeauna cu cost optim, ca atare putem neglija drumurile ulterioare care
redescoper a starea. Vom detalia n cele ce urmeaz a care sunt conditiile care trebuie s a e
ndeplinite de c atre functia h pentru a aplica aceast a variant a.
Denitia 9 O functie h se numeste consistent a daca pentru orice nod n si orice succesor
n

generat de o actiune a avem ca:


h(n) c(n, a, n

) + h(n

) (3.1)
3.3. ALGORITMUL A* 39
unde c(n, a, n

) este costul actiunii a care permite mutarea din starea n n starea n

a
se vedea gura 3.5.
n
c(n,a,n)
h(n)
h(n)
G
n
Figura 3.5: Inegalitatea triunghiului pentru o functie consistent a
Ar at am c a dac a h este consistent a, atunci valorile lui f de-a lungul unui drum sunt
nedescresc atoare. Fie n

un succesor al lui n; atunci:


g(n

) = g(n) + c(n, a, n

)
(conform denitiei lui g, unde a este actiunea care permite schimbarea st arii curente din
n n n

) si
f(n

) = g(n

) + h(n

) = g(n) + c(n, a, n

) + h(n

) g(n) + h(n) = f(n)


O functie consistent a se mai numeste deci si monotona.
Ecuatia 3.1 este o form a a inegalit atii triunghiului, triunghi format de v arfurile n, n

si nodul scop cel mai apropiat de n. Se poate ar ata c a orice functie consistent a este si
admisibil a. Reciproca nu este adev arat a, dar trebuie destul de mult a ingeniozitate pentru
a crea o functie care este admisibil a si nu este si monoton a.
Pentru problema drumului AradBucuresti, functia euristic a dat a de distanta pe drum
drept de la orasul curent la Bucuresti este de asemenea si consistent a, deoarece satisface
inegalitatea triunghiului din geometria plan a.
Enunt am f ar a demonstratie teorema:
Teorema 2 Daca h este consistenta, atunci A* folosind functia Cautare-pe-Graf este
optimal.
Fie C

costul solutiei optime. Se mai poate ar ata c a:


A* expandeaz a toate nodurile cu f(n) < C

;
se poate ca A* s a expandeze c ateva noduri care au f(n) = C

nainte ca s a expandeze
nod scop (si deci s a se termine algoritmul);
40 CAPITOLUL 3. C

AUTARE INFORMAT

A
A* nu expandeaz a noduri n cu f(n) > C

.
Ultima observatie este deosebit de important a, deoarece arat a c a se evit a expandarea
unui nod care are costul mai mare dec at costul optim, chiar daca acest cost optim nu este
cunoscut dec at la terminarea algoritmului! De exemplu, nodul aferent orasului Timisoara
nu este niciodat a expandat, av and cost prea mare. Datorit a monotoniei functiei f avem c a
nici orasele care descind direct din Timisoara nu vor expandate, de fapt nici un nod de
pe vreo rut a care include Timisoara ca nod intermediar nu va expandat; se face astfel o
retezare a arborelui de c autare, prin eliminarea unor variante care nu ar dus oricum la
un rezultat optim. Geograc, realiz am c a toat a partea Banatului este exclus a din arborele
de c autare, deoarece costurile nodurilor din aceast a regiune sunt oricum prea mari fat a
de costul optim (momentan necunoscut, determinat doar la sf arsitul algoritmului) C

.
Algoritmul este complet, dac a nu cumva sunt innit de multe noduri n care au f(n)
C

. Este si optimal; mai mult dec at at at, este optimal ecient pentru orice functie
euristic a dat a adic a nici un alt algoritm optimal nu garanteaz a expandarea unui num ar
mai mic de noduri dec at A*, abstractie f ac and de num arul de noduri n pentru care
f(n) = C

. Dac a am avea un algoritm care nu expandeaz a toate nodurile n cu f(n) < C

,
atunci ar exista riscul ca s a se rateze o cale optim a.
Exist a totusi o problem a: num arul de noduri care au f() < C

creste exponential cu
num arul de pasi. Un caz n care nu se nt ampl a asa ceva este c and:
|h(n) h

(n)| O(log (h

(n)))
unde h

(n) este costul real al ajungerii de la nodul n la scop. Din p acate, cele mai multe
euristici folosite n practic a sunt m acar proportionale cu costul c aii, ca atare obtinem
num ar de noduri exponential si toate trebuie tinute n memorie, pentru a putea reface
solutia. De multe ori algoritmul epuizeaz a toat a memoria pus a la dispozitie.
3.4 Variatii ale lui A*
Exist a c ateva variatii ale algoritmului A*, recent obtinute, care determin a solutia
optim a cu un necesar de memorie neprohibitiv. Primul dintre ele este Recursive best
rst search (RBFS) care are complexitate de memorie liniar a, dar sufer a de regenerarea
excesiv a a nodurilor. Practic, acest algoritm sufer a din cauz a c a foloseste prea putin a
memorie.
Algoritmii MA* (Memorybounded A*) si SMA* (Simplied memorybounded A*)
vin s a corecteze problema, ei folosind toat a memoria care li se pune la dispozitie. Algo-
ritmul este complet dac a solutia poate atins a cu memoria dat a; este optimal n aceeasi
conditie, iar dac a memoria pus a la dispozitie este prea putin a, atunci va returna cea mai
3.5. FUNC TII EURISTICE 41
bun a solutie (suboptimal a) pe care a putut-o descoperi. Pe de alt a parte, ns a, o problem a
poate deveni intratabil a datorit a complexit atii de timp crescute.
3.5 Functii euristice
Vom studia functii euristice pentru problema puzzle-ului (a se vedea denitia problemei
de la pagina 12). Pentru un puzzle de 3x3, factorul mediu de ramicare este 3 (4 noduri
descendente dac a spatiul este la mijloc, 2 noduri descendente dac a spatiul este ntr-un
colt, 3 noduri altfel). Num arul mediu de mut ari pentru rezolvare este de 22; o c autare
exhaustiv a ar cere vizitarea a 3
22
adic a aproximativ 3.1 10
10
noduri. Prin eliminarea
st arilor duplicat problema s-ar reduce la 9!/2=181.440 noduri. Num arul este acceptabil,
dar pentru un puzzle de 4x4, un calcul asem an ator duce la aproximativ 10
13
st ari distincte.
Ca atare, ne ntreb am ce functie euristic a am putea folosi si c at de bun a este ea.
Cele mai populare euristici sunt:
h
1
num arul de piese pozitionate gresit. h
1
este o euristic a admisibil a, deoarece
este clar c a orice c asut a cu pozitionare gresit a trebuie s a suporte cel putin o mutare.
h
2
suma distantelor dintre pozitiile actuale si cele din starea nal a a pieselor.
Deoarece piesele se pot misca doar pe orizontal a si vertical a, nu vom folosi distanta
euclidian a precumn problema drumului de la Arad la Sibiu ci distanta L
1
(sau
distanta Manhattan):
L
1
((x
1
, y
1
), (x
2
, y
2
)) = |x
1
x
2
| +|y
1
y
2
|
Din nou se observ a c a este o euristic a admisibil a, deoarece pentru mutarea unei
piese la pozitia corect a se fac cel putin mut arile pe orizontal a si pe vertical a.
O modalitate de a caracteriza calitatea unei euristici este factorul efectiv de ramicare,
b

. Dac a num arul de noduri create de algoritmul dec autare pentru o instant a particular a
a unei probleme este N, atunci b

se deneste ca factorul de ramicare (nu neap arat


num ar ntreg) pentru care un arbore uniform de ad ancime d contine cele N noduri; pe
scurt, b

este solutia ecuatiei:


N = 1 + b

+ (b

)
2
+ . . . + (b

)
d
De exemplu, dac a A* descoper a solutia la ad ancime 5 gener and 52 de noduri, atunci
b

1.92. Num arul b

se obtine de fapt ca o medie peste diferite instante, dar este o


valoare relativ constant a. Scopul este de a obtine un factor de ramicare c at mai apropiat
de 1.
42 CAPITOLUL 3. C

AUTARE INFORMAT

A
De exemplu, pentru instante n care num arul de pasi este 12, num arul de noduri ge-
nerat pentru c autarea mai nt ai n ad ancime cu ad ancire iterativ a genereaz a 3.644.035
noduri, algoritmul A*(h
1
) genereaz a 227 noduri, iar A*(h
2
) genereaz a 73 noduri. Pen-
tru ad ancime 24, algoritmul de c autare oarb a clacheaz a din lips a de memorie, A*(h
1
)
genereaz a 39135 noduri, iar A*(h
2
) genereaz a 1641 noduri.
Dac a exist a mai multe euristici ne putem pune problema dac a e vreuna mai bun a
dec at celelalte. Pentru h
1
si h
2
, de pild a, avem c a h
2
(n) h
1
(n), n. Din cauz a c a A*
expandeaz a ecare nod care are f(n) < C

(echivalent: h(n) < C

g(n)), rezult a c a
orice nod expandat pentru functia h
2
este sigur expandat si pentru functia h
1
. Asta ne
ndeamn a a c auta functii euristice care s a aibe valori c at mai mari, dar s a r am an a nc a
admisibile (sub valoarea real a). Problema cu o asemenea abordare este c a functia, desi
devine mai bun a, poate cere de asemenea resurse computationale prea mari. Pentru
cazul n care ntre dou a euristici exist a relatia h
2
h
1
spunem c a h
2
domin a pe h
1
4
.
Se pune ntrebarea: cum se pot inventa functii euristice? Este posibil a se inventa
asemenea functii n mod automat? Modul n care sau descoperit este simplu: sau
relaxat restrictiile problemei. Dac a problema se enunt a sub forma unor conditii, precum:
o pies a se mut a din locatia A n B dac a A este vecin orizontal sau vertical al lui B si
B este spatiu liber atunci putem realiza trei variante relaxate prin eliminarea la o parte
din conditii:
1. o pies a se poate muta de la pozitia A la B dac a A este vecin cu B
2. o pies a se poate muta de la pozitia A la B dac a B este spatiu
3. o pies a se poate muta de la pozitia A la B
Prima variant a corespunde euristicii h
2
, iar cea de-a treia este pentru euristica h
1
.
Folosind aceast a tehnic a de relaxare a conditiilor (si alte strategii), sa obtinut un program
capabil de a g asi variante relaxate de probleme, unele conduc and la euristici superioare
celor cunoscute.
Ce sent ampl a c and avem mai multe euristici, dar niciuna nu domin a pe toate celelelate
(adic a: avem h
1
, h
2
, . . . , h
m
si pentru orice i, j, 1 i, j m, i = j exist a x, y astfel nc at
h
i
(x) h
j
(x) dar h
i
(y) > h
j
(y))? Putem considera functia h denit a punctual ca:
h(n) = max{h
1
(n), . . . h
m
(n)}
care domin a pe toate celelalte; mai mult dec at at at, se poate ar ata c a aceast a functie este
si consistent a!
4
Reamintim ca ne-am xat pe probleme n care dorim sa obtinem solutie de cost minim. Pentru
probleme de maxim dominarea nseamna schimbarea sensului inecuatiei.
3.6. ALGORITMI DE C

AUTARE LOCAL

A 43
O alt a metod a de obtinere a euristicilor este de a pleca de la subprobleme ale problemei
initiale. De exemplu, putem s a ne concentr am atentia doar asupra unora din piesele de pe
puzzle, pe care ncerc am s a le aducem la pozitia corecta, n timp ce celelate pot ajunge n
orice pozitie. Pentru multe pozitii de start, rezultatul este mai bun dec at dac a se foloseste
distanta Manhattan.
Se poate merge mai departe pe ideea acestor subprobleme: avand n vedere c a au
considerabil mai putine st ari dec at problema originala, se poate s a memor am ntr-o baz a
de date aceste st ari, mpreun a cu costul de ajungere de la ele la starea nal a. Construirea
acestei baze
5
poate laborioas a, dar efortul se amortizeaz a rapid daca trebuie rezolvate
mai multe probleme.
3.6 Algoritmi de c autare local a
Algoritmii precedenti fac o c autare mai mult sau mai putin sistematic a pentru a des-
coperi dac a un nod scop poate ajuns plec and de la nodul initial. C and acest lucru se
nt ampl a, se reconstituie calea dintre nodul de start si nodul scop.
De multe ori, ns a, secventa de pasi care duce din starea initial a n starea nal a este
irelevant a. De exemplu, pentru problema reginelor pe tabla de sah (sectiunea 1.6.1, pa-
gina 12) nu ne intereseaz a cum sa ajuns la plasarea acestor regine, ci doar dispunerea lor
efectiv a pe tabla de sah.

In aceeasi categorie intr a si designul circuitelor integrate, pro-
gramarea itinerarului optim prin magazine, stabilirea rutelor pentru vehicule, optimizarea
retelelor de telecomunicatii etc.
Pentru asemenea cazuri vom considera o clas a diferit a de algoritmi. C autarea local a
foloseste doar o singur a stare, cea curent a ceea ce din start nseamn a c a memoria
consumat a este redus a; mut arile se fac doar n stare vecin a cu cea curent a, iar c aile
urmate nu se memoreaz a. Pe l ang a cantitatea mic a de memorie cerut a (de obicei o
cantitate constant a), se pot aborda si probleme unde c autarea sistematic a sau euristic a
nu sunt fezabile (de exemplu probleme pe spatii continue).
De asemenea, se pot folosi algoritmii prezentati n aceast a sectiune si pentru cazul
problemelor de optimizare, unde se d a o functie obiectiv. Desi nu totdeauna solutiile
obtinute sunt optime, rezultatele practice sunt satisf ac atoare.
Optimul poate s a e minim sau maxim; avem n vedere c a:
min(f) = max(f)
si deci exemplic arile se vor face cu optimiz ari convenabil alese, dat a ind trecerea de la
un tip de optim la altul. Vom considera prolul functiei obiectiv (gura 3.6); dorim ca
5
Numita baza de tipare, original: pattern database
44 CAPITOLUL 3. C

AUTARE INFORMAT

A
pentru functia reprezentat a s a determin am care este maximul.
Precum la metodele de c autare prezentate anterior, n acest context un algoritm de
c autare este:
complet, dac a ntotdeauna g aseste un scop, dac a acesta acesta exist a;
optimal, dac a g aseste un minim/maxim global
Figura 3.6: Prolul unei functii obiectiv; se doreste obtinerea unsi st ari n care valoarea
functiei obiectiv este maxim a. Punctul marcat pe grac reprezint a valoarea aferent a st arii
curente, pentru care o modicare poate s a duc a la cresterea sau sc aderea valorii functiei
obiectiv.
3.6.1 Cautarea prin metoda ascensiunii
Metoda ascensiunii
6
se bazeaz a pe o idee simpl a: ncearc a s a modici pozitia curent a
printr-o deplasare mic a, astfel nc at s a se produc a ombun at atire a valorii functiei obiectiv.
Pentru prolul reprezentat n gura 3.6, unde se doreste maximizarea valorii functiei,
dorim ca starea urm atoare s a corespund a unei misc ari spre st anga pe gracul functiei
obiectiv.
Algoritmul este dat n gura 3.7. Algoritmul nu memoreaz a st arile prin care trece, iar
c autarea actiunii urm atoare nu se face mai departe de vecinul imediat. Este ndrept atit a
deci asem anarea acestui algoritm cu urcarea pe Everest ntr-o ceat a subtire, suferind de
amnezie. Metoda se mai numeste si c autare local a lacom a. Algoritmul se termin a atunci
c and se ajunge ntr-un optim, care poate local. C autarea vecinului se face n imediata
vecin atate, salturi prea mari ar putea duce la ratarea unor conguratii cu valoarea bun a.
6

In engleza, n original: hill climbing.


3.6. ALGORITMI DE C

AUTARE LOCAL

A 45
Figura 3.7: Algoritmul de c autare prin ascensiune (urcarea pe panta cea mai abrupt a).
Dac a pentru nodul curent exist a un vecin de valoarea mai bun a, atunci el este nlocuit cu
vecinul.
Strategia se poate folosi pentru problema celor 8 dame pe o tabl a de sah (a se vedea
sectiunea 1.6.1, pagina 12). Pentru ecare p atrat se calculeaz a care ar num arul total de
atacuri de pe tabla de sah care are rezulta dup a plasarea reginei de pe coloana respectiv a
n acel p atrat. Evident, dorim s a determin am conguratia n care num arul de atacuri este
minim, ideal 0. Dac a pentru o stare (dispunere a reginelor) oarecare exist a mai multe
cele mai bune mut ari se poate alege aleator oricare dintre ele.
Problemele pe care le are algoritmul bazat pe ascensiune sunt:
1. maximele locale: un maxim local este un v arf care este mai nalt dec at punctele
situate ntr-o vecin atate a lui, dar este mai mic dec at maximul global. Algoritmul
se termin a atunci c and nodul curent nu poate mbun at atit printr-o mutare n
apropiere.
2. zon a plat a: o zon a plat a este o regiune din spatiul st arilor n care functia de evaluare
este constant a. Poate un platou de unde nu exist a posibilitate de urcare, sau o
coam a de unde se poate obtine un progres. Asa cum este dat algoritmul din gura
3.7, se produce valoarea constant a din platou.
3. creste
7
; rezult a n secvent a de maxime locale pentru care directia corect a este dicil
de ales (gura 3.9).
7

In limba engleza n original: ridges.


46 CAPITOLUL 3. C

AUTARE INFORMAT

A
(a) O asezare a opt regine pe tabla de
sah, cu costul euristic estimat 17. Pen-
tru ecare patrat se arata valorea acestei
functii daca sar face mutarea reginei de
pe coloana corespunzatoare n ea. Cele
mai bune mutari din aceasta pozitie duc
la valoarea 12.
(b) Un minim local pentru problema ce-
lor opt regine. Starea prezentata are va-
loarea 1. Orice mutare din aceasta stare
nu micsoreaza valoarea functiei.
h = 5 h = 2 h = 0
(c) Rezolvarea problemei celor 4 regine. Solutia obtinuta este de cost 0, deci dispunerea este corecta.
Figura 3.8: Rezolvarea problemei reginelor pe tabla de sah prin c autare prin ascensiune.
Se caut a un minim al functiei care contorizeaz a num arul de atacuri reciproce pe tabl a.
3.6. ALGORITMI DE C

AUTARE LOCAL

A 47
Figura 3.9: Creste, una din conguratiile problematice pentru un algoritm de ascensiune.
Pentru problema celor opt regine, c autarea prin ascensiune duce la un optim local n
86% din cazuri; rezolvare cu functia de cost nul a se atinge doar n 14% din cazuri. Trebuie
s a mention am totodat a c a num arul mediu de mut ari n care se ajunge la un minim local
este 3 iar din 4 mut ari (tot num ar mediu) se ajunge la o rezolvarea a problemei.
Algoritmul, asa cum a fost enuntat, se opreste atunci c and ajunge n zon a de platou
sau de coam a. Pentru coam a, ns a, dac a s-ar permite c autarea pe zona plat a, s-ar putea
ajunge din nou la o situatie de urcus. O variant a a algoritmului din gura 3.7 este cea
n care se permit pasi laterali pe zona plata. Pentru a preveni plimbarea la innit pe un
platou, se poate impune o limit a a num arului de pasi succesivi care p astreaz a valoarea
functiei obiectiv. De exemplu, dac a se stabileste aceast a limit a la 100, pentru problema
damelor se g aseste rezolvare corect a n 94% din cazuri. Num arul mediu de pasi creste,
ns a: 21 de pasi pentru o rezolvare si 64 pentru esuare n minim local.
De asemenea mai exist a varianta ascensiunii stochastice: dintr-un punct se alege pro-
babilist panta pe care se face urcarea; cu c at panta este mai abrupt a, cu at at este mai
mare sansa de alegere a ei ca directie urm atoare (dar nu e imposibil s a se aleag a pante
de nclinatie mai mic a, adic a s a se ajung a n st ari n care valoarea nu este cea mai mare
dintre toti vecinii).
Algoritmii descrisi p an a acum sunt incompleti ei nu gasesc solutia optim a mereu,
deoarece se blocheaz a n optime locale. Ascensiunea cu repornire aleatoare stabileste
puncte de plecare aleator n spatiul st arilor. Abordarea duce la un algoritm care este
48 CAPITOLUL 3. C

AUTARE INFORMAT

A
complet cu o probabilitate ce tinde c atre 1, din motivul c a repornirile aleatoare pot duce
la alegerea unui nod de start corespunz ator unui nod scop. Dac a procentul de succes
pentru o problem a este p, atunci este nevoie de 1/p reporniri. Pentru problema celor
opt regine, unde p = 0.14, avem nevoie n medie de 7 iteratii pentru a g asi o stare scop
(de cost 0), adic a 6 porniri care duc la minim local si 1 care duce la rezolvare (numerele
date trebuie ntelese ca valori medii). Num arul mediu de pasi este 6 3 + 4 = 22. Dac a
se foloseste algoritmul ce permite pasi laterali, un calcul asem an ator duce la 25 de pasi
necesari (n medie) pentru rezolvarea problemei. Pentru o problem a de 3 milioane de
regine, aceast a abordare (repornire aleatoare cu c autare cu pasi laterali) poate descoperi
o solutie n mai putin de un minut!
Problemele din lumea real a deseori au un prol al functiei obiectiv cu maxime si
minime multiple, ndesate pe domeniul de denitie; algorimul c aut arii prin ascensiune
duce, de regul a, ntr-un maxim local sucient de bun pentru tipul de calcul consumat.
3.6.2 Recoacerea simulata
Un algoritm de c autare prin ascensiune este incomplet, deoarece se poate cantona
ntr-un minim local. Ar de dorit s a permitem algoritmului s a efectueze misc ari si
ntr-o directie nefavorabil a, n speranta c a va permite iesirea dintr-un minim local. Ca
suport intuitiv, s a ne imagin am o un relief bidimensional n care dorim s a descoperim
minimul local. L as am o bil a s a plece dintr-un punct oarecare, dar vom face si scuturarea
suprafetei atunci c and se ajunge ntr-un minim, cu intentia de a scoate bila din minim.
Aceste scutur ari sunt sucient de viguroase pentru a scoate bila din minimul local, dar
totusi nu foarte tari pentru a scoate bila din minim global. O reprezentare este dat a n
gura 3.10.
Figura 3.10: Algoritmul coacerii simulate. Perturb arile vor permite scoaterea bilei din
minimele locale.
3.6. ALGORITMI DE C

AUTARE LOCAL

A 49
Algoritmul este inspirat din metalurgie, n care se nc alzeste un metal p an a la o tem-
peratur a nalt a; pentru a durica metalul se las a apoi s a se r aceasc a lent, permit and
structurii cristaline s a ajung a ntr-o stare stabil a. Este important ritmul n care scade
temperatura.
Algoritmul pentru minimizarea unei functii este formalizat n gura 3.11. Dac a muta-
rea curent a duce ntr-o situatie cu valoarea mai mic a, atunci se accept a; dac a noua situatie
este defavorabil a, atunci se accept a o mutare cu o anumita probabilitate. Probabilitatea
scade exponential cu lipsa de calitate a noii conguratii si cu temperatura curent a (va-
riabil a). Se poate ar ata c a dac a temperatura scade sucient de lent, atunci algoritmul
va g asi un optim local cu probabilitatea 1 [3]. Planicarea care apare ca parametu al
algoritmului este o functie descresc atoare fat a de timpul t.
Figura 3.11: Algoritmul de recoacere simulat a. Pasii defavorabili sunt permisi, dar proba-
bilitatea acestora este controlat a. Parametrul planiare determin a valoarea temperaturii
T pentru timpul t.
3.6.3 Algoritmi genetici
Sunt inspirati din principiile evolutionismului darwinian, care ncearc a s a explice
evolutia vietuitoarelor pe P am ant. Rolul mediului este preluat de c atre functia scop.
Vom detalia algoritmul pentru maximizarea unei functii f : [a, b] R

+
. Indivizii care
alc atuiesc populatia se numesc cromozomi si sunt alc atuiti din gene.
50 CAPITOLUL 3. C

AUTARE INFORMAT

A
Se porneste cu o populatie initial a, care este supus a apoi unui sir de procese de tipul:
1. selectie: indivizii care sunt cei mai adecvati (fat a de valoarea functiei ce se vrea
optimizat a) sunt favorizati s a apar a de mai multe ori ntr-o populatie nou a fat a de
indivizii mai putin performanti;
2. ncrucisare: are loc un schimb de gene ntre perechi de p arinti, form andu-se copii;
acestia se presupune c a mostenesc si combin a performantele p arintilor.
3. mutatie: se efectueaz a niste modic ari minore asupra materialului genetic existent.
Pas 1. Crearea unei populatii initiale de cromozomi. Se consider a mai multe va-
lori pentru variabila x [a, b]. Num arul acestor valori (numit dimensiunea populatiei)
este dat ca parametrul al algoritmului, NR (ex. NR = 100). Toate valorile sunt
cuanticate prin cromozomi care sunt siruri de k biti (un bit se mai numeste si
gen a), k ind alt parametru de intrare.
Generarea celor NR cromozomi se face aleator, prin setarea ec arei gene la valoarea
0 sau 1, la nt amplare. Se obtine astfel o populatie initial a format a din cromozomii
c
1
, . . . , c
NR
.
Fiecare cromozom c (adica sir de k biti) va produce un numar x(c) din intervalul
[a, b], astfel: daca valoarea n baza 10 a cromozomului este v(c), 0 v(c) 2
k
1,
atunci valoarea asociat a din intervalul [a, b] este:
x(c) = a + v(c)
b a
2
k
1
[a, b].
Pas 2. Evolutia populatiei.

In acest pas se obtin generatii succesive plec and de la
populatia initial a; populatia de la generatia g + 1 se obtine pe baza populatiei de
la generatia g. Operatorii sunt selectia, mperecherea (crosssover, ncrucisarea) si
mutatia.
Pas 2.1. Selectia. Pentru ecare cromozom din populatie se calculeaz a functia
obiectiv v
i
= f(x(c
i
)), 1 i NR. Apoi se nsumeaz a valorile functiilor
obiectiv obtinute pentru ecare cromozom n parte:
S =
NR

i=1
v
i
Pentru ecare din cei NR cromozomi se calculeaz a probabilitatea de selectie:
p
i
=
v
i
S
, 1 i NR
3.6. ALGORITMI DE C

AUTARE LOCAL

A 51
Pentru ecare cromozom se calculeaz a probabilitatea cumulativ a de selectie:
q
j
=
j

i=1
p
i
, 1 j NR
Remarcam c a q
NR
= 1 iar sirul q
j
deneste un sir cresc ator. Cu c at cromozomul
c
i
determin a o valoare mai mare pentru functia f (adic a valoarea f(v(c
i
)) este
mai mare), cu at at diferenta dintre q
i
si q
i1
este mai mare.
Se selecteaz a NR numere aleatoare uniform distribuite n (0, 1]. Pentru ecare
num ar, dac a el se g aseste n intervalul (0, q
1
] atunci cromozomul c
1
este ales
si depus ntr-o populatie nou a; dac a acest num ar se a a n intervalul (q
i
, q
i+1
]
atunci se alege cromozomul c
i+1
. Remarc am c a num arul de cromozomi prezenti
n noua populatie este tot NR, iar cu c at valoarea asociat a unui cromozom este
mai mare, cu at at cresc sansele lui de a selectat si depus n noua populatie.
Este foarte probabil ca un astfel de cromozom valoros (valoarea unui cromozom
este cu at at mai mare cu c at valoarea functiei f calculat a pentru cromozomul
respectiv este mai mare) s a apar a de mai multe ori in populatia nou a; de
asemenea, este foarte probabil ca un cromozom cu o valoare mic a pentru functia
f s a nu apar a deloc.
Pas 2.2.

Incrucisarea. Pentru ecare cromozom care a rezultat la pasul ante-
rior se alege o valoare aleatoare, uniform distribuit a n intervalul (0, 1]. Dac a
aceast a valoare este mai mic a dec at un parametru p
c
(parametru al aplicatiei,
e.g. 0.1), atunci cromozomul este ales pentru incrucisare. Se procedeaz a ast-
fel nc at s a se obtin a un num ar par de cromozomi (de exemplu se renunt a la
ultimul dac a num arul lor este impar).
Cromozomii alesi se ncruciseaz a astfel: primul selectat cu al doilea selectat, al
3-lea cu al 4-lea, etc.

Incrucisarea decurge astfel:
se alege un num ar aleator t intre 0 si num arul de gene (toti cromozomii au
acelasi num ar de gene k)
se obtin 2 cromozomi copii astfel: primul va contine primele t gene ale
primului p arinte si ultimele k t gene ale celui deal doilea p arinte; al
doilea copil contine primele t gene ale celui deal doilea p arinte si ultimele
k t gene ale primului p arinte
cei doi cromozomi copii vor nlocui n populatie pe p arinti
Pas 2.3. Mutatia. Populatiei obtinute i se aplic a operator de mutatie, astfel: pen-
tru ecare gen a a ec arui cromozom se alege o valoare aleatoare, uniform distri-
buit a n (0, 1]; dac a acest num ar este mai mic dec at o probabilitate de mutatie
52 CAPITOLUL 3. C

AUTARE INFORMAT

A
p
m
(parametru al aplicatiei), atunci se modic a valoarea curent a a genei cu
complementul s au fat a de 1.
Populatia obtinut a n pasul 2 reia ciclul de evolutie. Dup a ce se execut a c ateva astfel
de evolutii (sau num ar de generatii, parametru al programului), se raporteaz a valoarea
celui mai bun cromozom din ultima generatie
8
.
Se observ a c a se combin a c autarea local a cu explorarea aleatoare si schimbul de
informatie ntre indivizi. Avantajul primar al algoritmilor genetici const a n acest schimb
de informatie, adic a schimbarea de blocuri de date care au evoluat astfel nc at s a se
mbun at ateasc a valoarea produs a. O utilizare ecient a a algoritmilor genetici prespune
crearea unor structuri de date pentru gene si a unor operatori adecvati problemei ce
trebuie rezolvate
9
.
3.6.4 Cautare locala n spatii continue
Algoritmii de c autare prezentati p an a acum functioneaz a ntr-un univers discret si n
care functia succesor returneaz a un set nit de pasi care pot efectuati dintr-o stare
oarecare. Cele mai multe probleme, ns a, sunt de tip continuu si deci posibilit atile de
alegere a urm atorilor pasi sunt innite.
Pentru o functie real a de mai multe variable f(x
1
, . . . , x
n
), maximul se reg aseste printre
punctele x = (x
1
, . . . , x
n
) pentru care f(x) = 0, unde:
f(x) =

f
x
1
, . . . ,
f
x
n

De cele mai multe ori acest gradient se poate calcula doar local, nu si global, deci abor-
darea aceasta direct a nu este ntotdeauna posibil a. Chiar si asa, se poate aplica metoda
ascensiunii, lu and ca stare urm atoare:
x x + f(x)
unde este o constant a mic a, a c arei valoare poate stabilit a printr-o multitudine de
metode (volumul de studiu dedicat este impresionant).
Pentru multe probleme, cel mai bun algoritm este bazat pe metoda NewtonRaphson,
folosit a pentru determinarea r ad acinilor ecuatiilor de forma g(x) = 0 (g ind functie de o
singur a variabil a). Se calculeaz a o nou a estimare a lui x prin:
x x
g(x)
g

(x)
8
Sau se foloseste strategia elitista: se returneaza cel mai bun individ al tuturor generatiilor.
9
S-a stabilit ecuatia Algoritmi genetici + structuri de date = programare evolutionista, [4].
3.6. ALGORITMI DE C

AUTARE LOCAL

A 53
Pentru a g asi un maxim al lui f (functie de mai multe variabile) urm atoarea valoarea a
lui x se determin a astfel:
x x H
1
f
(x)f(x)
unde H
f
(x) este matricea hessian a, cu H
ij
=
2
f/x
i
x
j
. Totusi, inversarea matricilor
este computational intensiv a pentru un num ar mare de variabile.
54 CAPITOLUL 3. C

AUTARE INFORMAT

A
Capitolul 4
Probleme de satisfacere a
constrangerilor
Prezentul capitol trateaz a probleme n care st arile se supun unor restrictii (con-
str angeri) impuse. Spre deosebire de reprezent arile date la metodele de c autare din capi-
tolele anterioare (reprezent ari care tin cont de particularit atile problemei pentru care se
face c autarea solutiei), problemele de satisfacere a constr angerilor au o form a mult mai
general a, iar euristicile sunt larg aplicabile.
4.1 Probleme de satisfacere a constr angerilor
O problem a de satisfacere a constr angerilor (PSC) este denit a ca un set de variabile
X
1
, . . . , X
n
si un set de constr angeri C
1
, . . . , C
m
. Fiecare variabil a are un domeniu nevid
de valori D
i
. O constr angere se refer a la un subset de variabile si exprim a conditii asupra
combinatiilor de valori pentru variabilele n discutie. O stare a problemei este o asignare
de forma {X
i
= v
i
, X
j
= v
j
, . . .}. O stare n care valorile respect a orice constr angere
C
k
, 1 k m se numeste consistent a sau legal a. O solutie a problemei este o asignare
consistent a si care d a valori pentru ecare variabil a. Uneori este implicat a si o functie
obiectiv care trebuie optimizat a.
Tratarea unei probleme ca o PSC poate benec a: n primul r and, se poate formaliza
foarte usor metoda general a de rezolvare, iar aplicarea ei pe o problem a concret anseamn a
scrierea adecvat a a functiilor de succesor si a testului de scop (a se vedea algoritmul
general); n al doilea r and, se dau niste euristici generice care nu sunt dependente de
domeniul problemei (sectiunea 4.2.1 si urm atoarele).
Exemplu: dorim s a color am harta regiunilor Australiei (gura 4.1) cu 3 culori, astfel
nc at s a nu existe dou a regiuni vecine care au aceasi culoare. Variabilele pot considerate
aprevierile pentru regiuni, respectiv: WA, NT, Q, NSW, V , SA, T, domeniul ec arei
55
56 CAPITOLUL 4. PROBLEME DE SATISFACERE A CONSTR

ANGERILOR
variabile este {rosu, verde, albastru}, iar constr angerile se pot exprima sub forma unor
perechi de forma X = Y unde X, Y {WA, NT, Q, NSW, V, SA, T} si X, Y vecine pe
hart a.
Western
Australia
Northern
Territory
South
Australia
Queensland
New South Wales
Victoria
Tasmania
Figura 4.1: Regiuni din Australia.
Deseori se recurge la reprezentarea acestor constr angeri sub forma de graf n care dou a
variabile sunt legate printr-o muchie dac a se supun unei constr angeri. De exemplu, pentru
problema color arii regiunilor se leag a prin muchii noduri reprezent and regiuni vecine (si
care trebuie colorate diferit) - g 4.2.
Victoria
WA
NT
SA
Q
NSW
V
T
Figura 4.2: Graf de constr angeri pentru problema color arii h artii Australiei.
O PSC se poate formula astfel:
stare initiala: multimea vid a, corespunz atoare lipsei de asign ari de valori oric arei
variabile;
functie succesor: se asigneaz a unei variabile ce nu are valoare dat a (numit a variabil a
liber a) o valoare din domeniul asociat, cu conditia ca asignarea nou obtinut a s a e
consistent a (s a nu ncalce constr angerile impuse);
4.1. PROBLEME DE SATISFACERE A CONSTR

ANGERILOR 57
test scop: asignarea curent a este complet a, i.e. nu mai exist a variabile libere
costul caii : o constant a pentru ecare asignare de variabil a
Deoarece ecare solutie are toate cele n variabile cu valori asignate rezult a c a ad ancimea
solutiei este n. Algoritmii folositi pentru rezolvarea acestui tip de probleme sunt cei de
c autare n ad ancime (ad ancimea se cunoaste, iar cicluri nu putem avea, deoarece la ecare
pas consider am o alt a variabil a liber a). De asemenea, algoritmii pentru c autare local a dau
rezultate bune.
Domeniile de valori pot discrete si nite (precum mai sus) sau nu, si n acest al
doilea caz constr angerile se dau folosind un limbaj care permite descrierea relatiilor (de
exemplu x +y < z si x y = 4). Problemele cu domenii de tip continuu sunt studiate de
c atre cercet arile operationale.
O constr angere poate unar a dac a se refer a la o singura variabil a si atunci este
simplu de tratat, pentru c a se modic a corespunz ator domeniul de valori asociat prin
excluderea valorilor care nu satisfac constr angerea. Deseori se dau constr angeri binare,
care implic a exact dou a variabile. De exemplu, pentru graful din gura 4.2 orice muchie
reprezint a o constr angere binar a.
Exist a, desigur, si constr angeri de ordin mai mare, implic and cel putin trei variabile.
Avem asemenea situatie n problema urm atoare
1
: s a se substituie ecare liter a printr-o
cifr a diferit a, astfel nc at ecuatia s a e adev arat a
unu+
patru =
-----
cinci
Constr angerea ca valorile caracterelor diferite s a e diferite poate redus a la c ateva de
tip binar - u = i, u = n etc; apoi, pentru ecare din cele cinci coloane avem c ate o
constr angere:

u +u = i + 10x
1
n + r + x
1
= c + 10x
2
u +t + x
2
= n + 10x
3
a + x
3
= i + 10x
4
p + x
4
= c
(4.1)
unde x
i
reprezint a (eventualul) transport de la suma de cifre. Constr angerile pot re-
prezentate sub forma de hipergraf, precum in gura 4.3. Se poate ar ata c a problemele
cu domenii nite pot reduse la probleme cu constr angeri binare prin introducerea unor
1
Problema de criptaritmetica.
58 CAPITOLUL 4. PROBLEME DE SATISFACERE A CONSTR

ANGERILOR
variabile auxiliare. Din acest motiv ne vom concentra asupra problemelor cu constr angeri
binare.
Figura 4.3: Hipergraf de constr angeri atasat problemei de criptaritmetic a. P atratele
denesc constr angeri la care particip a variabilele - p atratul de pe primul r and este repre-
zentare a conditiei ca valorile caracterelor diferite s a e diferite, iar cele de pe penultimul
r and reprezint a constr angerile din sistemul 4.1.
4.2 C autare backtracking pentru PSC
Formularea dat a pentru PSC (n special prezenta unei functii succesor) ne permite
s a sper am c a putem trata problemele de acest tip prin orice algoritm de c autare de care
dispunem. Totusi, acest tip de probleme trebuie abordat cu o anumit a schem a de c autare.
S a plec am de la o PSC n care avem n variabile care pot lua valori dintr-o multime
nit a cu d elemente. Dac a vrem s a folosim c autarea n l atime, atunci:
la nodul r ad acin a (cel care nu are nici o variabil a nu are valoare xat a) avem n d
posibilit ati de a continua, deoarece avemn variabile si pentru ecare poate stabilit a
o valoare din cele d;
la nivelul urm ator avem (n 1)d alegeri, pentru c a au r amas mai putine variabile
n total obtinem n! d
n
frunze
Num arul de frunze este mult mai mare dec at d
n
care s-ar obtine prin enumerarea tuturor
posibilit atilor de asignare de valori pentru cele n variabile. Ca atare, aplicarea unei metode
de c autare oarecare poate s a nu e o idee bun a.
Num arul supraestimat de frunze a ap arut din cauz a c a la ecare pas permitem luarea
n considerare a tuturor variabilelolor posibile, pe c and solutia unei PSC nu este senzitiv a
la ordine. Este admisibil ca la ecare pas s a se ia n considerare doar o variabil a. Asa
num arul de frunze devine d
n
.
4.2. C

AUTARE BACKTRACKING PENTRU PSC 59


C autarea de tip backtracking este de fapt o c autare de tip mai nt ai n ad ancime care
genereaz a un singur nod descendent. Deoarece reprezentarea PSC este standardizat a, ea
se poate aplica independent de specicul domeniului. Algoritmul este dat n gura 4.4.
Figura 4.4: Algoritmul backtracking pentru probleme de satisfacere a constr angerilor.
Fiind un algoritm de c autare neinformat a, n practic a el nu se comport a bine pentru
probleme de dimensiune mare. Exist a ns a niste metode generale care m aresc ecienta
lor. Metodele reprezint a r aspunsuri la urm atoarele ntreb ari:
1. Care variabil a ar trebui luat a n considerare la pasul curent si n ce ordine ar trebui
ncercate valorile?
2. Care sunt implicatiile asign arii curente de valoare pentru o variabil a pentru alte
variabile ce nc a nu au valori asociate?
4.2.1 Ordonarea valorilor si a variabilelor
Algoritmul backtracking contine linia:
var <- selecteaza-variabila-neasignata(variabile[psc], asignare, psc)
dar nu se spune cum anume se face selectarea de variabil a. Se poate, desigur, opta,
pentru o ordine x a a variabilelor. Dar putem observa c a dac a asign am WA = rosu si
NT = verde, pentru SA r am ane o singur a valoare care poate asignat a, deci are sens
s a consider am la pasul urm ator variabila SA, mai degrab a dec at Q, NSW sau V . Dup a
acest pas, Q, NSW si V au domeniu de alegere al valorilor restr ans la c ate o variabil a.
60 CAPITOLUL 4. PROBLEME DE SATISFACERE A CONSTR

ANGERILOR
Intuitiv, ar trebui s a consider am la ecare pas variabila care are cele mai putine valori
candidat.
Strategia numit a minim de valori r amase (MVR) decide alegerea variabilei care are
cele mai putine variante, astfel se ncearc a producerea unei esu ari c at mai devreme posibil
n calea de c autare curent a, astfel ca s a se reteze c aile care nu duc la solutii. De exemplu,
dac a avem o variabil a care are 0 valori r amase, atunci strategia MVR o va alege pe aceasta
si se va detecta esuare. Acest lucru este corect, deoarece oricum mai devreme sau mai
t arziu se ajunge la imposibilitatea de a da valoare pentru variabila n cauz a, deci se evit a
niste c aut ari care nu ar putea produce solutie.

In practic a, strategia MVR duce la mbun at atiri ale vitezei de 3 p an a la 3000 de ori.
Se discut a n sectiunea 4.2.2 modul n care contorizarea num arului de valori disponibile
r amase se poate face ecient.
Euristica nu este util a la alegerea primei variabile, deoarece ecare regiune poate avea
trei culori.

Intr-un asemenea moment se foloseste euristica gradului care indic a alegerea
acelei variabile care are cele mai multe contr angeri cu alte variabile f ar a valori asignate.
Notiunea de grad face aici referire la valori denite n teoria grafurilor. De exemplu,
pentru harta din gura 4.1 avem c a SA are gradul 5, alte variabile au valori 2, 3, 0. Ca
atare, se va alege ca prim a variabil a SA (si pasii urm atori, cu aceeasi euristic a duc la
rezolvarea problemei f ar a a nevoie s a se revin a). Strategia MVR este mult mai efectiv a
dec at aceasta, dar euristica gradului este util a la deciderea urm atorului pas ntr-o situatie
de egalitate.
Odat a ce sa ales variabila pentru care se va d a valoare trebuie determinat care este
ordinea de considerare a valorilor. Pentru asta se aplic a strategia celei mai putin con-
str ang atoare valori. Concret, se prefer a valorile care produc cele mai putine elimin ari
de valori pentru alte variabile neasignate. Ideea este de a se l asa maximum de exibi-
litate (posibilit ati) pentru alegerile urm atoare. De exemplu, dac a lu am WA = verde si
NT = verde, iar pentru Q set am culoarea albastr a, atunci SA r am ane f ar a posibilitate
de a i se atribui valoare. Evident, dac a se cere generarea tuturor solutiilor pentru PSC
sau dac a problema nu are nicio solutie, strategia este inutil a.
4.2.2 Propagarea informatiilor prin constrangeri
P an a acum algoritmul a considerat constr angerile pentru o variabil a doar c and ea era
aleas a de c atre selecteaza-variabila-neasignata. Dac a se iau n considerare aceste
constr angeri mai repede de acest moment, atunci se poate reduce foarte mult spatiul de
c autare.
4.2. C

AUTARE BACKTRACKING PENTRU PSC 61


Vericare nainte
Ori de c ate ori unei variabile X i se asigneaz a o valoare, pentru ecare variabil a Y care
este conectat a cu X printro constr angere se sterge din domeniul lui Y valorile care sunt
inconsistente cu proasp ata valoare a lui X. Tabelul 4.1 arat a evolutia c aut arii cu vericare
nainte. Se poate observa c a dup a ce se asigneaz a WA = rosu si Q = verde, domeniile
pentru NT si SA contin doar un singur element; am redus deci factorul de ramicare
pentru aceste dou a variabile. Este clar c a aceast a vericare nainte face pereche bun a cu
strategia MVR, pentru care urm atoarele variabile luate n considerare sunt SA si NT.
Vericarea nainte este un mod ecient de calculare a informatiei de care MVR are nevoie.
Mai observ am c a dup a ce set am V = albastru domeniul lui SA este gol. Deci veri-
carea nainte a determinat c a asignarea partial a {WA = rosu, Q = verde, V = albastru}
este inconsistent a cu cerintele problemei, necesit and un pas napoi.
WA NT Q NSW V SA T
Domeniile initiale RVA RVA RVA RVA RVA RVA RVA
Dup a WA = rosu R VA RVA RVA RVA VA RVA
Dup a Q = verde R A V RA RVA A RVA
Dup a V = albastru R A V R A RVA
Tabela 4.1: Evolutia in problema color arii h artilor folosind vericarea nainte. R este
rosu, V este verde, A este albastru.
Propagarea constrangerilor
Cu toate c a vericarea nainte depisteaz a inconsistente, ea nu le depisteaz a pe toate.
De exemplu, s a consider am a treia linie a tabelului 4.1: c and WA = rosu si Q = verde,
at at NT c at si SA sunt limitate la culoarea albastr a; dar ntruc at ele sunt si regiuni vecine,
trebuie s a e de culori diferite. Deci vericarea nainte nu este sucient de p atrunz atoare
n a detecta incompatibilit ati. Propagarea constr angerilor este un termen general, de-
semn and propagarea constr angerilor pentru o variabil a conform constr angerilor pentru
alte variabile. Mai clar, propag am de la WA si Q la NT si SA (precum la vericarea
nainte), dar lu am n considerare si constr angerea dintre NT si SA pentru a detecta
inconsistenta. Evident, dorim s a facem o asemenea propagare de constr angeri cu efort
computational c at mai mic.
Consistenta arcului este o metod a rapid a de propagare a constr angerilor care este mult
mai puternic a dec at vericarea nainte. Un arc se refera la o leg atur a directionat a de la
o variabil a la alta. Date ind dou a variabile X si Y cu domeniile de valori aferente, un
arc de la X la Y este consistent dac a pentru orice valoare din domeniul lui X avem c a
62 CAPITOLUL 4. PROBLEME DE SATISFACERE A CONSTR

ANGERILOR
exist a m acar o valoarea compatibil a (consistent a) n domeniul lui Y . De exemplu, pentru
a treia linie din tabelul 4.1 se observ a c a domeniul pentru SA este {albastru}, iar pentru
NSW este {rosu, albastru}. Pentru SA = albastru avem o asignarea consistent a a lui
NSW si anume NSW = rosu. Invers, ns a, nu este adev arat: pentru NSW = albastru
nu avem nici o valoare potrivit a ce poate asignat a lui SA. Arcul (NSW, SA) poate
f acut consistent prin eliminarea lui albastru din domeniul de valori al lui NSW.
Acelasi proces se poate aplica si perechii de variabile SA si NT (ele ind legate printr-
o constr angere): tot din linia 3 a tabelului 4.1 se observ a c a am andou a variabilele au
domeniul {albastru} si deci actionarea pentru a mentine consistenta oric arui arc (de la
SA la NT sau invers) duce la domeniu de valori vid pentru una din variabile. Se va
produce deci un pas napoi, datorit a detect arii devreme a imposibilit atii de continuare.
Consistenta arcului vede mai departe dec at propagarea nainte.
Procesul de vericare a consistentei arcelor trebuie aplicat n mod repetat p an a c and
nu mai exist a inconsistente. Acest proces se poate face nainte de nceperea c aut arii
sau dup a ecare asignare de valoare. Ori de c ate ori se face stergerea unei valori din
domeniul unei variabile X, trebuie vericate toate arcele de la variabile Y la X. Algoritmul
consistentei arcelor AC-3 este dat n gura 4.5 si foloseste o coad a care mentine arcele
ce trebuie s a e vericate din punct de vedere al consistentei. Fiecare arc (X
i
, X
j
) este
cercetat pe r and pentru consistent a. Dac a se sterge vreo valoare din domeniul lui X
i
,
atunci toate arcele de forma (X
k
, X
i
) ce indic a spre variabila X
i
sunt ad augate la coad a.
Complexitatea este O(n
2
d
3
) [1]; beneciile obtinute prin folosirea acestei strategii acoper a
efortul computational. Tot n [1] se explic a de ce consistenta arcelor nu determin a toate
inconsistentele.
Se pot efectua veric ari de k-consistente, n care pentru orice set de k 1 variabile
care au o asignare consistent a, o oricare a k-a variabil a poate s a primeasc a o valoare
consistent a (pentru k = 2 avem obtinem chiar consistenta arcelor). Totusi, cu c at k este
mai mare cu at at veric arile sunt mai complexe.
4.3 C autare local a pentru PSC
Algoritmii de c autare local a se dovedesc a foarte ecienti n rezolvarea multor PSC.
Ei pornesc de la o asignare aleatoare de valori pentru toate variabilele iar functia succesor
modic a valoarea unei variabile la ecare pas.
Cea mai evident a euristic a pentru selectarea valorii unei variabile este alegerea de
valoare care produce num arul minim de conicte cu alte variabile euristica conicte-
minime. Algoritmul este dat n gura 4.6.
Euristica este extrem de productiv a pentru problema celor n regine; dac a se face
4.3. C

AUTARE LOCAL

A PENTRU PSC 63
Figura 4.5: Algoritmul AC-3 pentru consistenta arcelor. Dup a aplicarea lui ecare arc
este consistent sau exist a variabile al c aror domeniu este gol (si n acest ultim caz PSC
nu poate rezolvat a).
Figura 4.6: Algoritmul corespunz ator euristicii conicte-minime. Functia conicte conto-
rizeaz a num arul de constr angeri nc alcate de o valoare particular a.
64 CAPITOLUL 4. PROBLEME DE SATISFACERE A CONSTR

ANGERILOR
Problem a Backtracking BT+MVR Vericare nainte VI+MVR Conicte-minime
SUA (> 1000K) (> 1000K) 2K 60 64
n-regine (> 40000K) 13500K (> 40000K) 817K 4K
Zebra 3859K 1K 35K 0.5K 2K
Random 1 415K 3K 26K 2K
Random 2 942K 27K 77K 15K
Tabela 4.2: Comparatie pentru diferitele variante de backtracking pentru probleme de
satisfacere a constr angerilor. K este abreviere pentru kilo; Backtracking se refer a la ba-
cktracking clasic, BT+MVR este folosirea euristicii minim de valori r amase; VI+MVR
se refer a la vericare nainte + strategia valorilor minime r amase; Conicte-minime este
algoritmul din sectiunea 4.3. Numerele din parantez a arat a c a nu s-a putut determina o
solutie n timpul alocat pentru rulare.
abstractie de timpul cerut pentru pozitionarea initial a a reginelor, atunci timpul de rulare
este relativ independent de dimensiunea problemei. De exemplu, poate rezolva problema
pentru 1 milion de regine in 50 de pasi. Trebuie spus ns a c a aceast a problem a are
multimea solutiilor dens a n multimea st arilor, deci o solutie este usor de g asit. Strategia
functioneaz a bine si pentru probleme grele: de exemplu, planicarea operatiilor din
decursul unei s apt am ani pentru telescopul Hubble a fost redus a la 10 minute, de la 3
s apt am ani.
Un alt avantaj al c aut arii locale este c a permite c atarea unei solutii atunci c and o
parte din constr angeri se schimb a pe loc. De exemplu, pentru o problem a de planicare
a zborurilor, dac a un aeroport devine indisponibil (accidente, conditii meteo) atunci con-
str angerea corespunz atoare poate usor introdus a si plec and de la o planicare precedent a
se poate obtine una adecvat a pentru situatia actual a n timp foarte scurt.
Tabelul 4.2 contine o comparatie a performantelor diferitelor variante de backtrac-
king pentru un set de probleme. Compararea se face pe baza num arului de veric ari de
consistent a. Prima problem a este g asirea unei color ari adecvate a h artii SUA pentru 50 de
state si 4 culori. A doua problem a se refer a la rezolvarea problemei celor n regine, pentru
n [2, 50]. A treia problem a este jocul Puzzle Zebra [1]. Ultimele dou a sunt probleme
articiale alese aleator. Rezultatele sugereaz a c a strategiile euristice expuse mbun at atesc
mult timpii de rulare.
4.4 Structura problemei
Vom examina modul n care structura problemei poate de ajutor pentru g asirea
rapid a a unei solutii. Un caz simplu este acela n care problema este compus a din mai
4.4. STRUCTURA PROBLEMEI 65
multe subprobleme care se pot rezolva independent; de exemplu, pentru problema color arii
h artii Australiei, Tasmania este o subproblem a care poate rezolvat a separat: Tasmania
nu e vecin a cu nicio alt a regiune. Reducerile de complexitate pot mari, iar timpii de
rulare obtinuti sunt acceptabili. Singura problem a este c a o asemenea situatie este rar
nt alnit a.
Un alt caz simplu de rezolvat este acela n care graful constr angerilor formeaz a un
arbore. Se poate ar ata c a:
Teorema 3 Daca graful de constr angeri nu are cicluri, atunci PSC poate rezolvata cu
complexitatea O(n d
2
).
Sporul de performant a este evident prin comparatie cu performanta general a a algorit-
mului backtracking, O(d
n
).

In acest punct ne putem pune problema cum anume reducem o problem a la una care
are graful structurat ca un arbore. Exist a dou a metode: una se bazeaz a pe eliminarea
unor variabile, cealalt a pe crearea de grup ari de noduri.
Prima variant a functioneaz a astfel: se determin a un set de noduri prin a c arui eliminare
se ajunge la un graf de tip arbore; de exemplu, pentru graful din gura 4.2 dac a se
elimin a nodul corespunz ator variabilei SA, atunci graful obtinut este cel din gura 4.7,
pentru care teorema de mai sus ne asigur a de existenta unui comportament foarte bun.
Eliminarea nodului se face prin asignarea unei valori din domeniul asociat si stergerea
valorilor incompatibile din domeniile variabilelor care sunt unite prin constr angeri cu
nodul eliminat. Desigur, valoarea aleas a pentru SA poate s a duc a la imposibilitatea de
rezolva problema, dar aceste valori pot ncercate pe r and (conform principiului general
al metodei backtracking).
Schitat, algoritmul arat a astfel:
1. alege un subset S din V ariabile[PSC] astfel nc at graful s a devin a un arbore dup a
eliminarea nodurilor din S si a arcelor corespunz atoare. S se va numi set de eliminare
a ciclurilor.
2. Pentru ecare asignare posibil a pentru variabilele din S care satisfac constr angerile
PSC:
(a) elimin a din domeniul variabilelor r amase valorile care sunt inconsistente cu
asign arile pentru S
(b) dac a PSC r amas a are o solutie, returneazo mpreun a cu asign arile pentru S
G asirea celui mai mic set de eliminare a ciclurilor este o problem a NP-grea, dar exist a
algoritmi ecienti pentru obtinerea unor aproxim ari. Dac a acest set are dimensiunea c,
atunci complexitatea variantei de mai sus este O(d
c
(n c)d
2
).
66 CAPITOLUL 4. PROBLEME DE SATISFACERE A CONSTR

ANGERILOR
Victoria
WA
NT
Q
NSW
V
T
Figura 4.7: Prin eliminarea variabilei SA, graful de constr angeri din gura 4.2 devine un
arbore, pentru care rezolvarea se face n timp liniar.
A doua variant a porneste de la construirea unei descompuneri a grafului de con-
str angeri ntrun arbore format dintr-un set de probleme interconectate. Fiecare sub-
problem a se rezolv a independent, apoi solutiile rezultate sunt combinate. Figura 4.8
arat a descompunerea problemei de colorare a h artii Australiei. Descompunerea trebuie
s a ndeplineasc a urm atoarele trei conditii:
1. ecare variabil a din problema original a trebuie s a apar a n cel putin una din sub-
probleme;
2. dac a dou a variabile sunt conectate printr-o constr angere n problema original a,
atunci ele trebuie s a apar a mpreun a n cel putin una dintre subprobleme;
3. dac a o variabil a apare n dou a subprobleme din arbore, atunci ele trebuie s a apar a
n ecare subproblem a de-a lungul unei c ai care conecteaz a aceste subprobleme.
Fiecare din subprobleme se rezolv a independent; dac a una dintre ele nu are solutie,
atunci ntreaga problem a nu are solutie. Constr angerile care trebuie respectate se rezolv a
prin interpretarea ec arei subprobleme ca o variabil a mai mare si aplicarea algoritmului
ecient de rezolvare pentru arbore. Constr angerile pentru acest graf arbore reprezint a
conditia ca subprobleme cu variabile comune s a aibe aceeasi valoare pentru variabilele
partajate.
4.4. STRUCTURA PROBLEMEI 67
Figura 4.8: O descompunere sub form a de arbore de subprobleme a grafului de con-
str angeri din gura 4.2
68 CAPITOLUL 4. PROBLEME DE SATISFACERE A CONSTR

ANGERILOR
Capitolul 5
Agenti logici
5.1 Motivatie
Capitolul introduce agentii bazati pe cunoastere. Conceptele care se discut a sunt
reprezentarea cunoasterii si procesele de rationare preocup ari centrale ale inteligentei
articiale.
Spre deosebire de agentii care aplic a metodele de c autare prezentate n capitolele
anterioare, agentii logici beneciaz a de cunoastere exprimat a n forme variate, combin and
si recombin and informatia pentru a r aspunde unor scopuri diverse.

In plus, cunoasterea si
rationarea de asemenea joac a un rol crucial n lucrul cu medii partial observabile. Un agent
bazat pe cunoastere poate s a produc a noi cunostinte pe baza cunostintelor generale si a
perceptiilor; de exemplu, un medic poate s a pun a un diagnostic unui pacient, plec and de
la simptomele acestuia si cunostintele pe care i le-a asigurat formarea medical a. Dar, desi
simptomele sunt cunoscute, un medic nu cunoaste absolut tot despre pacientul tratat si
de aici rezult a o alt a caracteristic a a agentilor logici: necesitatea de a lucra cu observatii
partiale.
Un alt motiv pentru care se studiaz a agentii bazati pe cunoastere este exibilitatea
produselor rezultate. Astfel de agenti sunt n stare s a accepte noi sarcini si s a c astige
rapid noi competente prin nv atare sau prin descoperire de noi informatii.
Principalul modn care se abordeaz a agentii logici este bazat pe logic a (propozitional a,
apoi de ordinul nt ai). Spectrul abord arilor curente este ns a mult mai bogat, deoarece n
lumea real a apar probleme legate de incertitudine, aici intervenind teoria probabilit atilor
si sistemele fuzzy, iar partea de nv atare se abordeaza de regul a prin nv atare automat a -
retele neuronale, arbori de decizie (vezi [5], [6]).
69
70 CAPITOLUL 5. AGEN TI LOGICI
5.2 Agenti bazati pe cunoastere
Componenta central a a unui agent este baza de cunostinte (BC), adic a un set de
enunturi care fac parte din domeniul de lucru al agentului. Fiecare enunt este exprimat
ntrun limbaj de reprezentare a cunostintelor si reprezint a niste asertiuni despre lume.
Mai este nevoie de un mecanism care s a adauge noi propozitii la BC si unul care s a
determine ce se cunoaste i.e. ce anume trebuie s a se fac a la pasul curent. Numele lor este
Spune si Intreaba. Al doilea mecanism presupune inferente metode prin care pornind
de la cunostinte se deduc altele.
Figura 5.1 contine o schit a a unui program bazat pe cunoastere. El preia o perceptie
ca intrare si returneaz a o actiune. Agentul mentine o BC care initial este format a din
cunostintele de baz a si care se mbog ateste pe m asur a ce i se comunic a perceptii sau
propozitii. Primul pas este de a comunica bazei de cunostinte ceea ce s-a perceput; la
pasul al doilea se ntreab a ce ar trebui f acut. La pasul al treilea i se comunic a BC c a s-a
efectuat actiunea indicat a la pasul anterior; aceast a a doua comunicare este util a pentru
a tine BC ancorat a n contextul curent.
Figura 5.1: Un agent generic ce actioneaz a plec and de la o baz a de cunostinte.
Creeaza-enunt-perceptie translateaz an limbajul formal specic bazei de cunostinte
perceptia curent a; demn de remarcat este c a timpul apare si el ca o dimensiune a perceptiei.
Creeaza-interogare-actiune construieste o propozitie care interogheaz a BC ce actiune
ar trebuie s a se execute la momentul curent.

In sf arsit, Creeaza-enunt-actiune con-
struieste un enunt care codic a faptul c a actiunea indicat a a fost ndeplinit a.
Initial, baza de cunostinte este construit a printr-o succesiune de apeluri ale lui Spune,
prin care se comunic a cunostinte generale si principii. Este un mod declarativ de denire a
unui domeniu, care m areste mult aria de aplicabilitate a acestor agenti. O alt a modalitate
de mbog atire a BC este prin nv atare automat a pe baza perceptiilor.
5.3. JOCUL "LUMEA MONSTRULUI 71
5.3 Jocul "lumea monstrului
Sectiunea contine o descriere a unui joc, folosit ca suport de exemplicare n restul
capitolului. Se dau mai multe camere dispuse ntr-o matrice; camerele comunic a ntre
ele; ntro camer a se g aseste un monstru care m an anca pe oricine intr a acolo (si jocul se
termin a).

In alte camere se a a gropi; dac a se intr a ntro asemenea groap a, atunci jocul
se termin a.

Intr-o camer a se a a aur; luarea lui determin a sf arsitul jocului. Un personaj
narmat cu o s ageat a are posibilitatea de a se muta dintr-o camer a n alta n c autarea
aurului.
Detaliile sunt:
m asura de performant a este dat a de suma valorilor atasate ec arui eveniment: 1000
pentru preluarea aurului, -1000 pentru c aderea ntro groap a sau omor area de c atre
monstru, -10 pentru aruncarea s agetii si -1 pentru orice alt a actiune;
mediul: o matrice de camere de 4 pe 4. Agentul (personajul) ncepe n camera din
st anga jos, de coordonate [1, 1], cu fata spre dreapta. Locatia camerelor cu aurul,
g aurile si monstrul sunt alese aleator, dar se garanteaza c a nu sunt n locatia de
pornire.
actiuni: agentul poate s a se deplaseze n directia n care se a a cu fata, poate s a se
ntoarc a la st anga sau la dreapta cu 90

. Personajul moare dac a intr a n camera cu


monstrul viu. Dac a exact n fata lui este un zid, atunci r am ane pe loc. Actiunea
apuc a este folosit a pentru preluarea aurului, dac a se a a n aceeasi camer a cu el.
Actiunea trage se foloseste pentru a lansa s ageata n directia n care personajul e
orientat; s ageat a zboar a p an a se izbeste e de zid, e de monstru.
senzori: agentul are cinci senzori:
n p atratul care contine monstrul si n camerele vecine (dar nu pe diagonal a)
se percepe miros;
n camerele vecine (dar nu pe diagonal a) cu o camer a care contine o groap a se
simte briz a de aer;
n camera care contine aurul se percepe str alucire
c and agentul se izbeste de un zid, se aude bufnitur a
c and monstrul este omor at, se aude tip at
Cele cinci perceptii determin a un vector cu cinci elemente care se raporteaz a ori de
c ate ori agentul intr a ntro camer a.
72 CAPITOLUL 5. AGEN TI LOGICI
Cunostintele date mai sus se introduc ntro BC. De ecare dat a c and agentul viziteaz a o
camer a se primeste vectorul de perceptii si pe baza acestora si a BC se pot face deductii
de tipul: e posibil ca n camera [2, 1] s a e o groap a, sau sigur n camera [3, 3] nu se
a a monstru, deductii care se adaug a la BC, pentru a evita redescoperirea unor elemente
aate de dinainte.
5.4 Logica
Sectiunea prezent a contine generalit ati despre reprezent ari logice si rationament. De-
taliile sunt specice logicilor concrete ce se studiaz a (logica propozitiilor, logica predica-
telor, logica temporal a, logica fuzzy).
Orice logic a trebuie s a clarice dou a aspecte: sintaxa si semantica. Sintaxa reprezint a
o specicare a ceea ce este corect exprimat n logica respectiv a si se poate reprezenta sub
form a de diagrame sau propozitii folosind simboluri.
Semantica deneste n general semnicatia unui enunt.

In cadrul logicii semantica
permite stabilirea unei valori de adev ar pentru un enunt care este corect formulat din
punct de vedere sintactic. Mai mult, semantica trebuie s a specice valoarea de adev ar
pentru orice enunt fat a de ecare lume posibil a; de exemplu, a > b este adev arat a pentru
a = 3 si b = 2, dar fals a pentru a = b = 4.
O lume posibil a sau set de valori atasat variabilelor se va numi de acumnainte model
si vom spune c a m este un model al enuntului a dac a a este adev arat pentru lumea m.
Rationamentul logic (sau deductia, adic a partea de interes major ntr-o logic a) repre-
zint a modul n care se poate deduce un enunt dintr-un altul. Denitia formal a a deductiei
este:
Denitia 10 Spunem ca din se deduce si notam |= daca n orice model al
enuntului avem ca si este adevarat.
De exemplu, din propozitia a > b se poate deduce si b a, deoarece pentru orice
combinatie de numere a si b care fac prima propozitie adev arat a si al doilea enunt este
adev arat. Pentru jocul cu lumea monstrului, s a presupunem c a agentul nu detecteaz a
curent de aer n pozitia [1, 1] si detecteaz a curent de aer n [2, 1]. Acestea mpreun a cu
regulile jocului
1
formeaz a baza de cunostinte. Agentul este interesat dac a n [1, 2], [2, 2],
[3, 1] se a a g auri. Fiecare din camere poate s a contin a sau nu gaur a, deci n total avem
8 modele posibile. Vom considera acele modele pentru care baza de cunostinte nu este
contrazis a; exist a trei asemenea cazuri din cele 8 posibile si n toate propozitia nu exist a
1
Pentru moment nu ne intereseaza cum anume se exprima formalizat aceste reguli, vom presupune ca
ele sunt reprezentate convenabil.
5.5. LOGICA PROPOZI TIONAL

A 73
groap a n [1, 2] este adev arat a, pe c and nu exist a groap a n [2, 2] si nu exist a groap a
n [3, 1] nu sunt adev arate pentru toate cele trei cazuri.
Aceast a metod a de vericare a posibilit atii de deducere se numeste algoritmul veri-
carii modelelor. Vom dezvolta mai multi algoritmi de deductie; dac a avem un astfel de
algoritm i, atunci vom scrie |=
i
si vom citi este dedus (sau derivat) din prin i
sau i l deriveaz a pe din .
Un algoritm inferential se numeste temeinic
2
dac a obtine numai enunturi care sunt
derivabile din baza de cunostinte. Este evident c a algoritmul de vericare a modelelor
este temeinic.
O alt a proprietate pentru un algoritm inferential este cea de completitudine dac a
poate s a deduc a toate enunturile care sunt derivabile din baza de cunostinte. O examinare
sistematic a n cazul unei probleme n care multimea de concluzii posibile este nit a duce,
evident, la un algoritm complet; proprietatea este ns a esential a pentru problemele n care
multimea concluziilor posibile este innit a.
5.5 Logica propozitional a
5.5.1 Sintaxa
Enunturile atomice din logica propozitional a
3
sunt elemente sintactice indivizibile.
Fiecare simbol corespunde unei propozitii care poate s a e adev arat a sau fals a. Exist a
dou a simboluri propozitionale cu semnicatii xate: Adevarat este propozitia tot timpul
adev arat a si Fals este propozitia tot timpul fals a.
Enunturile complexe sunt compuse din propozitii simple folosind conectorii logici. Cei
cinci conectori sunt:
1. (non) o propozitie precum A este negarea lui A. Un literal este e un enunt
atomic (literal pozitiv), e negarea a unuia (literal negativ).
2. (si) o propozitie format a din dou a propozitii legate prin precum A B se
numeste conjunctie; A B se citeste A si B
3. (sau) o propozitie ce foloseste , precum A B, se numeste disjunctie; A B
se citeste A sau B
4. (implic a) o propozitie precum A B se numeste implicatie. Premisa sau
antecedentul implicatiei este A, iar concluzia sau consecventul este B. A B se
citeste A implic a B sau dac a A atunci B.
2

In limba engleza, n original: sound.


3
Numita si logica booleana.
74 CAPITOLUL 5. AGEN TI LOGICI
5. (echivalent, dac a si numai dac a) propozitia A B se mai numeste biconditional a
si se citeste A dac a si numai dac a B sau A este echivalent cu B.
Tabelul 5.1 d a sintaxa folosit a n logica propozitional a n forma BNF (Backus-Naur
Form).
Enunt Enunt atomic | Enunt complex
Enunt atomic Adevarat | Fals | simbol
Simbol P | Q | R | . . .
Enunt complex (Enunt)
| (Enunt Enunt)
| (Enunt Enunt)
| (Enunt Enunt)
| (Enunt Enunt)
Tabela 5.1: Gramatica BNF pentru enunturile din logica propozitional a.
Parantezele sunt importante: ecare propozitie care este construit a cu conector binar
este ncadrat a ntre paranteze. Uneori acestea se pot omite, dar numai dac a nu duc
la ambiguit ati. Suplimentar, se deneste si prioritatea operatorilor; acestia, n ordinea
precedentei sunt: , , , , . Astfel, A B C este totuna cu (A (B C)).
Suplimentar, semantica ne poate permitem s a scriem ABC deoarece ((AB)C)
are ntotdeauna aceeasi valoare de adev ar ca si (A(B C)), dar tot semantica arat a c a
este ambigu a expresia A B C.
5.5.2 Semantica
Semantica deneste reguli pentru determinarea valorii de adev ar a propozitiilor relativ
la un model concret.

In logica propozitional a un model reprezint a valorile de adev ar ale
simbolurilor propozitionale. De exemplu, dac a avem propozitiile P
1,2
, P
2,2
, P
3,1
, atunci
un model posibil este m = {P
1,2
= fals, P
2,2
= adevarat, P
3,1
= adevarat}.
Calculul valorii de adev ar se face recursiv, deoarece orice propozitie este alc atuit a din
propozitii atomice si conectori. Pentrunceput, trebuie s a se determine valoarea de adev ar
a unei propozitii atomice:
Adevarat are valoarea de adev ar adev arat pentru orice model; Fals are valoarea
de adev ar fals pentru orice model;
valoarea de adev ar a unei unui simbol propozitional trebuie s a rezulte din modelul
curent.
5.5. LOGICA PROPOZI TIONAL

A 75
Pentru propozitiile compuse se foloseste tabela de adevar (dat a n tabelul 5.2) care
arat a cum se calculeaz a valoarea propozitiei plec and de la elementele care o formeaz a.
Pe baza celor de mai sus se poate scrie o functie (Este-Adevarat) care stabileste dac a
valoarea de adev ar a unei expresii s, plec and de la un model dat m este adev arat.
p q p p q p q p q p q
adev arat adev arat fals adev arat adev arat adev arat adev arat
adev arat fals fals fals adev arat fals fals
fals adev arat adev arat fals adev arat adev arat fals
fals fals adev arat fals fals adev arat adev arat
Tabela 5.2: Tabela de adev ar pentru logica propozitional a.
S-a spus anterior c a o baz a de cunostinte este o multime de enunturi. Dat ind modul
de calcul al valorii de adev ar pentru o conjunctie, se poate spune c a o BC de forma
1
,
. . . ,
n
se poate scrie ca:
1
. . .
n
.
5.5.3 Exemplu: lumea monstrului n logica propozitionala
Pentru ecare pereche de indici (i, j) corespunz and unei camere, vom seta P
i,j
=adev arat
dac a si numai dac a n camera de coordonate (i, j) este o groap a si B
i,j
va adev arat a
dac a si numai dac a se simte curent de aer n aceeasi camer a. Conform regulilor jocului
din sectiunea 5.3, avem c a:
nu exist a nici o groap a in camera din care ncepe jocul, deci avem regula R
1
: P
1,1
ntro camer a se simte curent de aer numai dac a n vecinatatea ei se a a o groap a;
deci avem:
R
2
: B
1,1
(P
1,2
P
2,1
)
si
R
3
: B
2,1
(P
1,1
P
2,2
P
3,1
)
introducem perceptiile: nu se simte curent de aer n prima camer a (deci R
4
: B
1,1
)
si se simte curent n camera (2, 1) (deci R
5
: B
2,1
).
Baza de cunostinte este R
1
R
2
R
3
R
4
R
5
.
5.5.4 Inferenta n logica propozitionala
Scopul unei inferente este de a detemina dac a BC |= , pentru un dat. Primul
algoritm pe care l d am se bazeaz a pe implementarea direct a a denitiei 10: se enumer a
76 CAPITOLUL 5. AGEN TI LOGICI
Figura 5.2: Algoritm de deductie bazat pe construirea tabelei de adev ar.
toate modelele si se veric a dac a este adev arat a n toate modelele n care BC este
adev arat a. Pentru logica propozitional a, multimea tuturor modelelor se obtine d and toate
combinatiile de valori de adev ar pentru simbolurile propozitionale.

In cazul nostru avem
simbolurile B
1,1
, B
2,1
, P
1,1
, P
1,2
, P
2,1
, P
2,2
si P
3,1
. Sunt deci 2
7
= 128 de modele; se poate
verica faptul c a pentru trei dintre ele BC este adev arat a; n aceste trei modele P
1,2
este adev arat a, deci nu este groap a n camera de coordonate (1, 2). P
2,2
este adev arat a
doar n dou a din cele trei modele, deci nu putem deduce nici P
2,2
nici P
2,2
.
Figura 5.2 contine un algoritm general pentru a determina dac a se poate deduce din
BC. Este o c autare de tip backtracking; algoritmul este temeinic, deoarece implementeaz a
direct denitia; este de asemenea si complet deoarece se termin a pentru orice baz a de
cunostinte si , num arul de modele ind nit.
Complexitatea algoritmului este dictat a de n, num arul de simboluri. Complexitatea
n timp este O(2
n
) iar cea n spatiu este O(n), deoarece avem o c autare de tipul mai
nt ai n ad ancime. Vom prezenta algoritmi care n practic a sunt mult mai ecienti, dar
pentru toti algoritmii inferentiali cunoscuti exist a un cel mai defavorabil caz care duce la
complexitate de timp exponential a.
5.5.5 Echivalenta, validitate si satisabilitate
Conceptele urm atoare sunt folosite n alti algoritmi care urmeaz a a prezentati.
Primul concept este legat de echivalenta logica, notat a cu simbolul . Dou a propozitii
si sunt echivalente dac a si numai dac a sunt adev arate n aceleasi modele. Se poate
vedea de exemplu ca P Q este echivalent a cu QP, prin vericare pe tabela de adev ar.
O denitie alternativ a a echivalentei este: dac a si numai dac a |= si |= .
5.6. TIPARE DE RA TIONAMENT

IN LOGICA PROPOZI TIONAL

A 77
Tabelul 5.3 contine echivalentele logice standard.
( ) ( ) comutativitatea lui
( ) ( ) comutativitatea lui
(( ) ) ( ( )) asociativitatea lui
(( ) ) ( ( )) asociativitatea lui
() eliminarea dublei negatii
( ) ( ) contrapozitie
( ) ( ) eliminarea implicatiei
( ) (( ) ( )) eliminarea biconditional a
( ) ( ) de Morgan
( ) ( ) de Morgan
( ( )) (( ) ( )) distributivitatea lui fat a de
( ( )) (( ) ( )) distributivitatea lui fat a de
Tabela 5.3: Echivalente logice standard.
Al doilea concept este validitatea. O propozitie este valid a dac a este adev arat a n orice
model
4
. Conceptul este util pentru urm atoare teorem a de deductie:
Teorema 4

In logica propozitionala, pentru orice propozitii si , avem ca |= daca
si numai daca propozitia este valida.
Ultimul concept este satisabilitatea. O propozitie este satisabil a dac a si numai dac a
este adev arat a n cel putin un model. Dac a este adev arat a ntrun model m, atunci
spunem c a m satisface , sau c a m este un model al lui .
A verica dac a se poate deduce din (adic a dac a este adev arat a) este echi-
valent cu a vedea dac a este nesatisabil a - de fapt reg asim procedeul demonstratiei
prin reducere la absurd.
5.6 Tipare de rationament n logica propozitional a
Prezent am tiparele standard care pot aplicate pentru a deriva noi propozitii; aceste
tipare se mai numesc si reguli de inferenta.
Cea mai cunoscut a regul a se numeste Modus Ponens si are forma:
,

adic a: dac a din se poate deduce si stim c a este adev arat a, atunci si este adev arat a.
4
O astfel de propozitie se mai numeste si tautologie.
78 CAPITOLUL 5. AGEN TI LOGICI
Alt a regul a este eliminarea lui si care spune c a dintro conjunctie oricare din termeni
poate s a e dedus:

De asemenea, oricare din echivalentele din tabelul 5.3 pot folosite ca reguli de
inferent a; de exemplu echivalenta pentru eliminarea biconditional a duce la dou a reguli
de inferent a:

( ) ( )
si
( ) ( )

Exemplic am utilizarea regulilor de inferent a si a echivalentelor n lumea monstrului.
Continu am lista prezentat a n sectiunea 5.5.3. Aplic and eliminarea biconditional a pentru
R
2
obtinem:
R
6
: (B
1,1
(P
1,2
P
2,1
)) ((P
1,2
P
2,1
) B
1,1
)
Se aplic a eliminarea lui si pentru R
6
si se ajunge la:
R
7
: ((P
1,2
P
2,1
) B
1,1
)
Echivalenta logic a pentru contrapozitie d a:
R
8
: (B
1,1
(P
1,2
P
2,1
))
Se aplic a regula Modus Ponens pentru R
8
si faptul dat n R
4
, obtin anduse:
R
9
(P
1,2
P
2,1
)
Din regula lui de Morgan se obtine:
R
10
: P
1,2
P
2,1
sau altfel zis, nici camera [1, 2] si nici [2, 1] nu contin groap a.
Derivarea precedent a se numeste demonstratie si se bazeaz a pe aplicarea unor reguli
de inferent a. Oricare din algoritmii de c autare din capitolele 2 si 3 poate folosit pentru
g asirea unei demonstratii, folosind ca stare initial a baza de cunostinte iar pas urm ator
oricare din regulile de inferent a.
Deoarece inferenta n logica propozitional a este NP-complet a, s-ar putea spune c a o
c autare de demonstratie nu poate s a e mai ecient a decat enumerarea modelelor.

In prac-
tic a ns a, g asirea unei demonstratii este mult mai ecient a, deoarece se evit a propozitiile
irelevante, indiferent de c ate sunt. De exemplu, n demonstratia anterioar a nu sa f acut
referire la propozitiile care contin simbolurile B
2,1
sau P
3,1
.
5.6. TIPARE DE RA TIONAMENT

IN LOGICA PROPOZI TIONAL

A 79
5.6.1 Rezolutia

In mod evident, regulile de inferent a expuse anterior sunt temeinice; nu este ns a evi-
dent dac a sunt si complete, adic a dac a ele permit deducerea a orice poate demonstrat
pornind de la o baz a de cunostinte. Aplicarea unui algoritm de c autare care este complet
av and drept pasi urm atori regulile de inferent a nu garanteaz a obtinerea unui mecanism
inferential complet. De exemplu, dac a regula elimin arii biconditionale nu ar fost pre-
zent a, atunci concluzia din demonstratia anterioar a nu sar putut dovedi.
Introducem o singur a regul a de inferent a, numit a rezolutie care produce un algoritm
de inferent a complet, dac a este folosit n conjunctie cu un algoritm de c autare complet.
Pentru lumea monstrului ad aug am urm atoarele fapte la baza de cunostinte:
R
11
: B
1,2
si
R
12
: B
1,2
(P
1,2
P
2,2
P
1,3
)
Printr-o demonstratie asem an atoare cu cea de mai sus, avem c a:
R
13
: P
2,2
R
14
: P
1,3
Se aplic a eliminarea biconditional a la R
3
, apoi Modus Ponens cu R
5
si se obtine:
R
15
: P
1,1
P
2,2
P
3,1
Se observ a c a literalul P
2,2
din R
13
se reduce cu literalul P
2,2
din R
15
si obtinem:
R
16
: P
1,1
P
3,1
Putem, de asemenea, s a reducem P
1,1
din R
1
cu P
1,1
din R
15
si obtinem:
R
17
: P
3,1
Aceste reduceri exprim a regula rezolutiei unitate, care se scrie formalizat astfel:
l
1
l
k
, m
l
1
l
i1
l
i+1
l
k
unde ecare l este un literal iar l
i
si m sunt literali complementari (unul este negarea
celuilalt). Deci regula rezolutiei unitate preia o clauza (o disjunctie de literali) si un
literal si produce o nou a clauz a.
Regula de mai sus admite o generalizare imediat a:
l
1
l
k
, m
1
m
n
l
1
l
i1
l
i+1
l
k
m
1
m
j1
m
j+1
m
n
80 CAPITOLUL 5. AGEN TI LOGICI
adic a se pleac a de la dou a clauze si se ajunge la una nou a n care avem toti literalii
clauzelor initiale, mai putin doi termeni care sunt complementari. Desigur, se presupune
c a se aplic a si reducerea literalilor duplicati, adica o expresie de forma A A este
redus a la A .
Este usor de v azut c a regula de rezolutie este temeinica: dac a l
i
este adev arat a, atunci
m
j
este fals a si deci m
1
m
j1
m
j+1
m
n
trebuie s a e adev arat a; analog,
dac a l
i
este fals a, atunci l
1
l
i1
l
i+1
l
k
este adev arat a. Deoarece l
i
este ori
adev arat a, ori fals a, obtinem c a una din cele dou a concluzii are loc, deci si disjunctia lor
este adev arat a; aceast a din urm a disjunctie este exact concluzia regulii.
Se poate ar ata, de asemenea, c a orice algoritm complet de c autare care aplic a doar
regula de rezolutie poate s a demonstreze orice concluzie care se poate demonstra plec and
de la o baz a de cunostinte n logica propozitional a.
Exist a totusi un aspect practic care trebuie mentionat: dac a se d a de exemplu propozitia
A adev arat a, metoda rezolutiei nu poate s a deduc a automat c a si A B este adev arat a.
Mai general, rezolutia poate folosit a pentru a conrma sau inrma orice propozitie, dar
nu poate s a genereze singur a toate propozitiile care pot deduse pornind de la baza de
cunostinte.
5.7 Forma normal a conjunctiv a
Regula de rezolutie se aplic a numai disjunctiilor de literali, deci s-ar p area c a se aplic a
doar bazelor de cunostinte si interog arilor care constau din asemenea forme. Se poate ar ata
c a orice expresie din logica propozitional a poate rescris a sub forma unei conjunctii de
disjuntii, asa numita forma normala conjunctiva (FNC).
De exemplu, pentru propozitia: B
1,1
(P
1,2
P
2,1
) se obtine FNC echivalent a prin
pasii:
1. Se aplic a eliminarea biconditional a:
(B
1,1
(P
1,2
P
2,1
)) ((P
1,2
P
2,1
) B
1,1
)
2. Se elimin a , prin
(B
1,1
P
1,2
P
2,1
) ((P
1,2
P
2,1
) B
1,1
)
3. Aplic and legea lui de Morgan pentru ( ) ( ) obtinem:
(B
1,1
P
1,2
P
2,1
) ((P
1,2
P
2,1
) B
1,1
)
4. Aplic am distributivitatea lui asupra lui si obtinem FNC:
(B
1,1
P
1,2
P
2,1
) (P
1,2
B
1,1
) (P
2,1
B
1,1
)
5.8. ALGORITMUL DE REZOLU TIE 81
Figura 5.3: Algoritm de rezolutie pentru logica propozitional a. Functia LP-Rezolva
returneaz a setul de clauze care se obtine prin combinarea celor dou a intr ari.
5.8 Algoritmul de rezolutie
Procedurile de inferent a bazate pe rezolutie lucreaz a pe principiul reducerii la absurd,
adic a pentru a ar ata c a BC |= , ar at am c a (BC ) este nesatisabil a.
Algoritmul este ar atat n gura 5.3. Primul pas este de a converti BC n FNC.
Apoi, pentru ecare pereche care contine literali complementari se produce o nou a clauz a,
care este ad augat a la setul de clauze, dac a nu este deja prezent a. Procesul se repet a p an a
c and se nt ampl a una din:
1. dou a clauze produc clauza vid a, caz n care din BC se poate deduce .
2. nu se ajunge la clauza vid a si nu exist a noi clauze care s a e ad augate la setul de
clauze; n acest caz din BC nu se poate deduce ;
Clauza vid a este echivalent a cu Fals, deoarece o clauz a este adev arat a dac a si numai
dac a cel putin un termen al ei este adev arat; neind cazul, nseamn a ca FNC dat a de
BC evolueaz a la un enunt care contine conjunctie cu Fals, deci valoarea de adev ar
este fals. Din principiul reducerii la absurd avem c a BC |= .
O aplicare partial a a algoritmului de rezolutie pentru BC = R
2
R
4
si = P
1,2
este
dat a n gura 5.4. Tot din gur a observ am c a obtinem, de exemplu, B
1,1
P
1,2
B
1,1
care se reduce la Adevarat P
1,2
care se evalueaz a la Adevarat. Nu este util a o asemenea
clauz a, deoarece este cuprins a ntro conjunctie, iar conform tabelei de adev ar 5.2 avem
c a Adevarat X este echivalent cu X, pentru orice expresie X.
82 CAPITOLUL 5. AGEN TI LOGICI
Figura 5.4: Aplicare partial a a algoritmului pentru BC = R
2
R
4
si = P
1,2
. Se arat a
evolutia p an a n momentul obtinerii clauzei vide.
Se deneste nchiderea rezolutiv a a unei propozitii aate n FNC ca ind setul tuturor
clauzelor care se obtin din aplicarea repetat a a regulii de rezolutie peste propozitie sau
clauze derivate din ea. Acest a multime este nit a, deoarece num arul de combinatii n
disjunctii al unui set nit de simboluri este nit (se aplic a si factorizarea).
Completitudinea este dat a de teorema:
Teorema 5 (Teorema de rezolutie, [1]) Daca un set de clauze este nesatisabil, atunci
nchiderea rezolutiva a acestor clauze contine clauza vida.
5.9

Inl antuirea nainte si napoi
De multe ori, bazele de cunostinte din lumea real a contin clauze ntro form a parti-
cular a numit a clauza Horn. O clauz a Horn este o disjunctie de literali n care cel mult un
literal are form a pozitiv a. De exemplu, A B C.
Restrictia poate p area cam dur a, dar:
1. Fiecare clauz a Horn poate scris a ca o implicatie a c arei premis a este o conjunctie cu
literali pozitivi si drept concluzie un singur literal pozitiv. De exemplu, ABC
este echivalent a cu A B C am aplicat eliminarea implicatiei si regula lui de
Morgan. Aceast a din urm a form a este natural a, motiv pentru care clauzele Horn
se reg asesc at at de usor n bazele de cunostinte. Ele sunt element fundamental al
domeniului numit Programare logic a.
Dac a o clauz a Horn nu contine nici un literal pozitiv (de exemplu: AB), atunci
se poate scrie echivalent A B Fals si apoi ca A B Fals.
2. Inferentele cu clauze Horn pot f acute cu doi algoritmi de de inferent a care apar
ca naturali, nl antuirea nainte si nl antuirea napoi.
3. Algoritmii de deductie care folosesc clauze Horn sunt liniari n dimensiunea BC.
Algoritmul de nl antuire nainte LP-InlantuireInainte(BC, q) determin a dac a un
simbol propozitional q poate dedus din baza de cunostinte aate n form a Horn. Dac a
5.9.

INL

AN TUIREA

INAINTE SI

INAPOI 83
premisele unei implicatii sunt cunoscute ca adev arate, atunci concluzia implicatiei este
adev arat a si este ad augat a la baza de cunostinte. Procedeul se repet a p an a c and e se
deduce q, e nu se mai poate ad aunga niciun simbol propozitional nou la BC. Algoritmul
este dat n gura 5.5.
Figura 5.5: Algoritmul de nl antuire nainte.
Cel mai bun mod de ntelegere a algoritmului de nl antuire nainte este pe baza unui
exemplu. S a presupunem c a avem baza de cunostinte exprimat a sub form a de enunturi
reductibile la clauze Horn:
P Q
L M P
B L M
A P L
A B L
A
B
84 CAPITOLUL 5. AGEN TI LOGICI
Acestei baze de cunostinte i se poate asocia un graf de tipul sisau, construit astfel:
nodurile lui sunt simbolurile propozitionale, arcele de graf unite reprezint a operatorul
, n timp ce arcele neunite corespund disjunctiei. Figura 5.6 reprezint a graful sisau
asociat bazei de cunostinte date, mpreun a cu evolutia cunostintelor.

In dreptul ec arui
arc de jonctiune de arce se a a num arul de premise care mai trebuie mai demonstrate
pentru a se putea deduce concluzia aat a la cap atul arcului.
Se poate vedea c a nl antuirea nainte este temeinic a, deoarece reprezint a aplicarea
repetat a a regulii Modus Ponens. Este de asemenea si un algoritm complet (a se vedea
[1]).

Inl antuirea nainte este un exemplu de rationament condus de date, adic a al unui
rationament n care demonstrarea unei concluzii se face pornind dinspre ipoteze. Spre
deosebire de regula rezolutiei, poate folosit a pentru a genera o list a de concluzii care
pot deduse plec and de la o baz a de cunostinte.

Inl antuirea napoi porneste dinspre interogare spre baza de cunostinte. Dac a se cere
a se demonstra c a Q este adev arat a, se veric a prima dat a dac a se stie deja valoarea de
adev ar a lui Q; dac a nu se cunoaste, atunci se g asesc toate implicatiile care l produc pe
Q. Dac a se poate demonstra c a premisele unei astfel de implicatii sunt toate adev arate,
atunci si Q este adev arat a. Procesul de rationament este unul directionat de scop. O
ilustrare a procesului este dat a n gura 5.8.
De multe ori, costul unei nl antuiri napoi este mult mai mic dec at dimensiunea bazei
de cunostinte (desi o implementare ecient a are costul liniar, n cel mai defavorabil caz).
5.10 Inferent a propozitional a efectiv a
Descriem aici dou a variante de algoritmi ecienti pentru inferent a propozitional a ba-
zate pe vericarea de modele: unul este bazat pe c autare backtracking, altul pleac a de la
c autare prin metoda ascensiunii.
Ambele metode veric a satisabilitatea, adic a determinarea unui model (valori pentru
variabile) astfel nc at s a se verice o anumit a valoare de adev ar. At at backtracking c at si
c autarea local a rezolv a aceste probleme, dar primul este un algoritm determinist, exact,
pe c and al doilea poate s a duc a la rezultate incorecte.
5.10.1 Algoritm bazat pe backtracking
Algoritmul, datorat lui Davis si Putnam pleac a de la o propozitie n form a normal a
conjunctiv a. Precum c autarea backtracking (sectiunea 4.2) si metoda TA-deductie (gura
5.2), este o enumerare a modelelor, dar cu urm atoarele mbunat atiri:
5.10. INFEREN T

A PROPOZI TIONAL

A EFECTIV

A 85
Q
P
M
L
B A
2 2
2
2
1
(a) Aplicarea premisei A.
Q
P
M
L
B
2
1
A
1 1
2
(b) Numarul de premise care
mai trebuie demonstrate pen-
tru dovedirea lui L devine 1. Se
aplica premisa B.
Q
P
M
2
1
A
1
B
0
1
L
(c) Numarul de premise care
mai trebuie demonstrate pen-
tru dovedirea lui L devine 0, iar
pentru M scade la 1. Se aplica
premisa L.
Q
P
M
1
A
1
B
0
L
0
1
(d) Numarul de premise care
mai trebuie demonstrate pen-
tru dovedirea lui M devine 0.
Se aplica premisa M.
Figura 5.6: Exemplicarea algoritmului de nl antuire nainte.
86 CAPITOLUL 5. AGEN TI LOGICI
Q
1
A
1
B
0
L
0
M
0
P
(a) Numarul de premise care
mai trebuie demonstrate pen-
tru dovedirea lui P devine 0. Se
aplica premisa P.
Q
A B
0
L
0
M
0
P
0
0
(b) Numarul de premise care
mai trebuie demonstrate pen-
tru dovedirea lui Q devine 0, la
fel ca si pentru dovedirea lui L
folosind conjunctia (dar despre
L se stie deja ca poate de-
monstrat). Astfel, sa demon-
strat concluzia Q.
Figura 5.7: Exemplicarea algoritmului de nl antuire nainte (continuare).
terminare rapid a: algoritmul detecteaz a dac a o propozitie este adev arat a sau fals a,
chiar dac a modelul este partial completat. O clauz a este adev arat a dac a un literal
este adev arat, chiar dac a ceilalti literali nu au valoare de adev ar xat a. Similar, o
conjunctie de clauze este fals a dac a o clauz a este falsa, indiferent de valorile celorlalte
clauze.
Euristica simbolurilor pure: un simbol este pur dac a apare cu acelasi semnn ecare
clauz a. Este usor de v azut c a dac a o propozitie are un model, atunci acesta are
proprietatea c a simbolul pur are valoarea adev arat.
Strategia clauzei unitate: o clauz a unitate este o clauz a cu un singur literal.

In
contextul algoritmului, nseamn a si o clauz a unde toti literalii, mai putin unul, au
valoare fals. Strategia clauzei unitate asigneaz a valori unor asemenea simboluri
nainte de a se apuca de altele. O astfel de setare de variabil a poate de asemenea s a
duc a la alte clauze unitate.
5.10. INFEREN T

A PROPOZI TIONAL

A EFECTIV

A 87
Q
P
M
L
A B
(a) Se cere demonstrarea lui Q.
Simbolurile A si B sunt cu-
noscute ca avand valoarea de
adevar adevarat.
P
M
L
A
Q
B
(b) Demonstrarea ca Q =
adevarat cere demonstrarea ca
P = adevarat.
M
L
A
Q
P
B
(c) Demonstrarea ca P =
adevarat cere demonstrarea ca
L are valoarea adevarat si ca
M are valoarea adevarat.
M
A
Q
P
L
B
(d) Demonstrarea ca L este
adevarat cere ca sa se demon-
streze ca Asi P sunt adevarate,
sau ca A si B sunt adevarate.
Figura 5.8: Exemplicarea algoritmului de nl antuire napoi.
88 CAPITOLUL 5. AGEN TI LOGICI
M
A
Q
P
L
B
(a) Se ajunge la cererea de
a demonstra ca A si B sunt
adevarate.
M
A
Q
P
L
B
(b) Deoarece A si B sunt
adevarate, rezulta ca L este
adevarata.
A
Q
P
L
B
M
(c) Deoarece L si B sunt
adevarate, rezulta ca M este
adevarata.
A
Q
P
L
B
M
(d) Deoarece L si M sunt
adevarate, rezulta ca P este
adevarata. La pasul urmator
se deduce ca si Q are valoarea
adevarat.
Figura 5.9: Exemplicarea algoritmului de nl antuire napoi (continuare).
5.10. INFEREN T

A PROPOZI TIONAL

A EFECTIV

A 89
Figura 5.10: Algoritmul Walksat pentru vericarea satisabilit atii unui set de clauze.
5.10.2 Algoritm bazat pe cautare locala
Algoritmii de c autare local a pot aplicati direct problemelor de satisabilitate, dac a
se d a o functie de evaluare adecvat a. Se alege de regul a num arul de clauze nesatisf acute.
Algoritmii de acest tip schimb a la ecare pas valoarea unei variabile; pentru a iesi din
minimele locale se folosesc diferite variante de aleatoritivitate.
Unul din cei mai simpli si mai ecienti algoritmi rezultati se numeste WalkSat (gura
5.10). La ecare iteratie algoritmul alege o clauz a nesatisfacut a si alege aleator care dintre
variabile s a si schimbe valoarea. Alegerea variabilei se face aleator, e:
se alege variabila care minimizeaz a num arul de clauze nesatisf acute, sau
se alege simbolul aleator
Dac a algoritmul returneaz a un model, atunci acest model satisface clauzele. Dac a ns a
se returneaz a esuare, atunci nu se poate sti sigur dac a expresia este nesatisabil a sau dac a
ar trebui ca algoritmul s a e l asat s a ruleze mai mult (dar nu se stie c at de mult).
90 CAPITOLUL 5. AGEN TI LOGICI
Capitolul 6
Logica de ordinul ntai
6.1 Introducere
Logica propozitional a se dovedeste a un limbaj neadecvat pentru reprezentarea
cunostintelor dintr-un mediu complex, ntrun mod concis. De exemplu, pentru a spune
c a ntr-o camer a vecin a (pe vertical a sau orizontal a) cu cea de coordonate [1, 1] n care
se simte briz a de aer exist a o groap a, scriem astfel:
B
1,1
P
1,2
P
2,1
si ceva asem an ator pentru ecare camer a din joc. Limbajul natural este mult mai concis
(comparati camerele vecine cu o camer a n care se simte curent de aer contin o groap a
cu cele n
2
propozitii care trebuie scrise n logica propozitional a pentru a exprima acelasi
lucru). Pe de alt a parte, limbajul natural poate si imprecis. Ne dorim deci o variant a
de limbaj care s a e concis, exact n exprimare si s a permit a deductii.
Alte aspecte pe care le dorim de la un limbaj de reprezentare a cunostintelor sunt:
natur a declarativ a cunostintele dintrun domeniu vrem s a e reprezentate separat
de mecanismul inferential; acesta din urm a trebuie s a e c at mai general aplicabil.
Este o abordare diferit a de cea a limbajelor procedurale (Java, C#, C++) unde
structurile de date obtinute dup a modelarea problemei sunt puternic cuplate cu
operatorii de prelucrare;
semantic a compozitional a semantica unui enunt exprimat ntrun asemenea lim-
baj trebuie s a e dictat a de semantica p artilor care l compun;
independenta de context ceea ce ar impune obtinerea acelorasi concluzii, dac a se
reaplic a mecanismul inferential pornind de la o aceeasi baz a de cunostinte;
Mai mult, prin compararea cu ceea ce ne pune la dispozitie limbajul natural, ne d am
seama c a dorim s a putem lucra cu:
91
92 CAPITOLUL 6. LOGICA DE ORDINUL

INT

AI
obiecte: oameni, culori, numere etc;
relatii ntre obiecte: relatii unare (nalt, rosu, prim) sau n-are: mai mare dec at,
frate cu, compus din;
functii: aplicate pe unul sau mai multe obiecte duc la obtinerea altor obiecte: tat al
lui, succesorul lui etc.
Limbajul logicii de ordinul nt ai trateaz a satisf ac ator toate aceste aspecte.
Cea mai mare diferent a ntre logica propozitional a si logica predicatelor este c a n
prima se exprim a fapte care au sau nu loc. Fiecare fapt are una din dou a valori: adev arat
sau fals. Logica predicatelor ns a se refer a la o multime de obiecte ntre care exist a sau
nu relatii.
6.2 Sintaxa si semantica logicii de ordinul nt ai
6.2.1 Modele pentru logica de ordinul ntai
Modelele pentru logica propozitional a constau n perechi de valori de forma simbol =
valoare, unde valoarea poate adev arat sau fals. Pentru logica de ordinul nt ai lucrurile
sunt substantial diferite: se lucreaz a cu obiecte, care pot lua orice valoare dintr-o multime
specicat a, posibil innit a. Domeniul unui model este setul de obiecte pe care le contine.
S a presupunem c a pornim de la urm atoarea stare: exist a dou a persoane, John si
Richard, care sunt frati si regi (la momente diferite de timp); exist a o coroan a care se
a a pe capul unuia dintre ei; se face referire la piciorul st ang al oric aruia din cei doi via
o functie, PiciorulStang.
O relatie (cum ar frate(John, Richard), frate(Richard, John) si peCap(coroana,
John)) este o multime de tupluri de obiecte care sunt legate prin acea relatie. Mode-
lul poate de asemenea s a contin a relatii unare numite si propriet ati: rege(John), per-
soana(John), persoana(Richard).
Unele relatii sunt mai natural d ev azut ca functii; dac a pentru un obiect oarecare
(notat o
1
), relatia asigur a o leg atur a cu un unic obiect, atunci ea poate v azut a ca o
functie de forma relatie(o
1
)=o
2
. De exemplu, avem leg aturile:
Richard piciorul st ang al lui Richard
John piciorul st ang al lui John
Functiile trebuie s a e totale, adic a pentru orice argument s a asocieze un rezultat. Astfel,
piciorul st ang al lui John trebuie s a aibe si el un picior st ang; o asemenea problem a se
rezolv a introduc and un obiect ctiv care s a e atasat obiectelor pentru care nu exist a,
sub o interpretare rezonabil a, ceva corespunz ator.
6.2. SINTAXA SI SEMANTICA LOGICII DE ORDINUL

INT

AI 93
6.2.2 Simboluri si interpretari
Elementele din sintaxa logicii propozitionale sunt:
constante: John, Richard etc
predicate: Frate, > etc
functii: PiciorulStang, radical etc
variabile: x, y etc
conective: , , , ,
egalitatea: =
cuanticatori: ,
Gramatica n forma BNF este dat a n tabelul 6.1.
Enunt Enunt Atomic
| (Enunt Conectiv a Enunt)
| Cuanticator Variabil a . . . Enunt
| Enunt
Enunt Atomic Predicat(Termen, . . . ) | Termen = Termen
Termen Functie(Termen, . . . )
| Constant a
| Variabil a
Conectiv a | | |
Cuanticator |
Constant a A | X
1
| John | . . .
Variabil a a | x | . . .
Predicat Frate | . . .
Functie TatalLui | PiciorulStang | . . .
Tabela 6.1: Forma BNF pentru sintaxa din logica predicatelor.
Semantica trebuie s a lege enunturile de modele pentru a se putea determina valoarea
de adev ar. Avem deci nevoie de o interpretare care s a specice exact care obiecte, relatii
si functii sunt legate simboluri de constante, predicate si functii. Una din interpret arile
posibile, care este adecvat a exemplului nostru este:
constanta Richard se refer a la persoana Richard; analog constanta John;
94 CAPITOLUL 6. LOGICA DE ORDINUL

INT

AI
predicatul Frate se refer a la relatia dintre dou a persoane
functia PiciorulStang se refer a la PiciorulStang pomenit la pagina 92.
Exist a si alte interpret ari care se pot face, de exemplu se poate lega constanta Richard
de persoana John sau de coroan a; sau se poate ca diferite nume s a se refere la acelasi
obiect.
Valoarea de adev ar a ec arui enunt se deneste n raport cu un model si o interpre-
tare pentru simbolurile din enunt. Ca atare, deducerea, validitatea, satisabilitatea sunt
denite relativ la toate modelele si toate interpret arile posibile. Subliniem c a modelele
pot innite, de exemplu dac a se refer a la multimea numerelor naturale.
6.2.3 Termeni
Un termen este o expresie logic a ce se refer a la un obiect constante, functii, relatii.
Un simbol pentru functii este util pentru a pune n leg atur a obiecte (de exemplu constanta
John cu constanta piciorul st ang al lui John), cu efect benec asupra reducerii num arului
de simboluri folosit pentru constante. Este un alt mod de a denumi obiecte, plec and de
la altele.
6.2.4 Propozitii atomice
Sunt folosite pentru a enunta fapte. O propozitie atomica este de regul a format a
dintr-un simbol predicativ urmat de o list a de termeni: Frate(John, Richard). Argumen-
tele pot si termeni complesi obtinuti prin aplicare de functii: Casatorit(Tata(John),
Mama(Richard)).
Un enunt atomic este adev arat ntrun model dat si sub o anumit a interpretare dac a
are loc relatia referit a de simbolul asociat predicatului ntre obiectele referite de argu-
mente.
6.2.5 Enunturi complexe
Prin utilizarea conectivelor logice se pot construi enunturi complexe, precumn calculul
propozitional. Semantica enunturilor complexe formate cu conective logice este identic a
cu cea din logica propozitiilor.
6.2.6 Cuanticatori
Cuanticatorii permit exprimarea de propriet ati pentru colectii de obiecte, n loc de a
le enumera pe toate (de aici si dorita concizie a limbajului). Cuanticatorii sunt nsotiti
6.3. PROCESUL DE MANAGEMENT AL CUNO STIN TELOR 95
de o variabil a care poate servi ca argument pentru functii si relatii. Un termen care nu
are variabile se numeste termen legat. Enuntul x P(x) arat a c a pentru orice obiect x, P
este adev arat a.
S a consider a de exemplu propozitia x Rege(x) Persoana(x). Pentru a putea
spune c a este adev arat a, toate cele cinci propozitii de mai jos ar trebui s a e adev arate:
Richard este rege Richard este persoan a
John este rege John este persoan a
Piciorul st ang al lui Richard este rege Piciorul st ang al lui Richard este persoan a
Piciorul st ang al lui John este rege Piciorul st ang al lui John este persoan a
Coroana este rege Coroana este persoan a
Dac a pentru primele dou a cazuri nu avem nici o problem a din punct de vedere al raport arii
la realitate, ultimele trei propozitii sunt un pic ciudate. Dar s a ne amintim c a n logica
propozitional a falsul implic a orice, asa c a nu se poate spune nimic despre valoarea de
adev ar a a concluziilor (Coroana este persoan a s.a.). Oricum, pornind de la o premis a
fals a, ntreaga implicatie este adev arat a.
Cele cinci propozitii de mai sus care au rezultat din transcrierean limbaj propozitional,
conform actiunii lui formeaz a interpretarea extinsa.
Calicatorul existential are urm atoarea semantic a: x P(x) este adev arat a ntr
un model si sub o intepretare dat a dac a este adev arat a pentru cel putin o interpretare
extins a.
Cuanticatorii pot imbricati, iar ordinea de precizare a lor este important a. De
exemplu, enuntul x y MaiMare(y, x) care e adev arat pentru multimea numerelor na-
turale. Dac a invers am ordinea cuanticatorilor, atunci sar obtine y xMaiMare(y, x)
care nu este adev arat a pentru x si y numere naturale.
Exist a o str ans a leg atur a ntre cei doi cuanticatori. Mai exact, se poate renunta la
oricare dintre ei, deoarece:
x P(x) (x P(x))
x P(x) (x P(x))
dar i mentinem pe am andoi, pentru a obtine exprim ari mai naturale.
6.3 Procesul de management al cunostintelor
Proiectele de management al cunostintelor variaz a mult, dar toate includ pasii:
1. Identicarea temei de lucru. Inginerul de cunostinte trebuie s a schiteze domeniul
de ntreb ari pentru care baza de cunostinte asigur a suport si tipul de fapte care
vor disponibile pentru ecare instant a de problem a. De exemplu, pentru lumea
96 CAPITOLUL 6. LOGICA DE ORDINUL

INT

AI
monstrului, ce anume se doreste: interogarea despre st arile diferitelor camere, sau
s a se stie care este actiunea urm atoare?
2. Asamblarea cunostintelor relevante. Inginerul de cunostinte trebuie s a e expert
n domeniul abordat, sau s a poat a s a colaboreze cu experti umani pentru a putea
extrage ceea ce se cunoaste n domeniu. La acest pas de achizitie a cunostintelor
nu trebuie s a se formalizeze cunostintele, ci doar s a se nteleag a care este domeniul
problemei si cum se lucreaz a n el.
3. Deciderea asupra unui vocabular de predicate, functii si constante. Se translateaz a
conceptele importante ale domeniului pentru care se aplic a procesul n nume con-
venabil alese. Rezultatul este un vocabular care formeaz a ontologia
1
domeniului.
4. Codicarea cunostintelor generale despre domeniu. Inginerul de cunostinte scrie
axiomele pentru toti termenii de vocabular. Este bine s a se fac a aici si specicarea
semnicatiilor termenilor.
5. Codicarea unei descrieri pentru o problema concreta. Const an scrierea enunturilor
atomice despre instante ale conceptelor care sunt deja parte a ontologiei. Este
echivalentul furniz arii datelor pentru programele din limbajele procedurale.
6. Punerea de ntrebari si obtinerea de raspunsuri. Procedura inferential a opereaz a
asupra axiomelor si faptelor specice problemei pentru a obtine noi fapte de care
suntem interesati.
7. Depanarea bazei de cunostinte. Dac a de exemplu lipseste o axiom a, unele interog ari
nu vor primi r aspuns. Se poate cere unui astfel de sistem s a expliciteze pasii pe care
i parcurge, pentru a vedea unde se blocheaz a.
6.4 Inferenta propozitional a comparat a cu inferenta de
ordinul nt ai
Introducem o tehnic a care permite realizarea de inferente care pot aplicate unor
enunturi cu cuanticatori obtin anduse enunturi f ar a cuanticatori. Se poate intui astfel
c a inferenta de ordinul nt ai are o variant a: trecerea la enunturi din logica propozitional a
si folosirea unui mecanism inferential din logica propozitiilor.
1
Ontologia studiaza existenta ca atare, trasaturile si principiile comune oricarei existente.
6.4. INFEREN TA PROPOZI TIONAL

A COMPARAT

A CU INFEREN TA DE ORDINUL

INT

AI97
6.4.1 Reguli de inferenta pentru cuanticatori
S a presupunem c a avem enuntul:
x Rege(x) Lacom(x) Rau(x)
Dat a ind semantica lui se pot infera oricare din propozitiile:
Rege(John) Lacom(John) Rau(John)
Rege(Richard) Lacom(Richard) Rau(Richard)
Rege(TatalLui(John)) Lacom(TatalLui(John)) Rau(TatalLui(John))
Regula instantierii universale spune c a putem deduce orice propozitie obtinut a prin
substituirea unei variabile cu un termen legat (care nu are nicio variabil a). S a not am cu
Subst(, ) rezultatul aplic arii substituirii n . Atunci:
v
Subst({v/g}, )
Cele trei enunturi propozitionale date anterior sunt obtinute prin substitutiile: {x/John},
{x/Richard}, {x/TatalLui(John)}.
Regula instantierii existentiale este: pentru orice enunt , pentru orice variabil a v si
un simbol constant k care nu apare n baza de cunostinte avem c a:
v
Subst({v/k}, )
De exemplu, din enuntul x Coroana(x)PeCap(x, John) putem deduce: Coroana(C
1
)
PeCap(C
1
, John) unde C
1
nu mai apare undeva n baza de cunostinte. Practic, ceea ce
face instantierea existential a este s a dea un nume pentru obiectul care satisface conditia.
Noul nume se mai cheam a si constanta Skolem. Instantierea existential a poate folosit a
o singur a dat a si propozitia care are acest cuanticator poate eliminat a.
6.4.2 Reducerea la inferenta propozitionala
Pe baza mecanismului de mai sus: reducerea unor enunturi cu cuanticatori la unele
f ar a se poate reduce inferenta de ordinul nt ai la inferent a propozitional a. De fapt, ceea
ce trebuie s a facem este s a nlocuim un enunt cu care are cuanticator universal cu toate
enunturile n care variabila este nlocuit a cu toate valorile posibile. De exemplu, baza de
cunostinte din logica predicatelor:
x Rege(x) Lacom(x) Rau(x)
Rege(John)
Lacom(John)
Frate(Richard, John)
98 CAPITOLUL 6. LOGICA DE ORDINUL

INT

AI
Se aplic a instantierea universal a primului enunt folosind toate substituirile de variabile
cu termeni legati din vocabularul BC, deci {x/John} si {x/Richard} si obtinem:
Rege(John) Lacom(John) Rau(John)
Rege(Richard) Lacom(Richard) Rau(Richard)
Baza de cunostinte rezultat a (se adaug a, evident, si ultimele 3 propozitii din BC initial a)
este n form a propozitional a, dac a substituim enunturile cu valori legate Rege(John),
Lacom(John) etc cu simboluri propozitionale , etc. Se poate aplica oricare din
algoritmii din capitolul precedent si se obtin concluzii Rau(John).
Exist a ns a o problem a: daca BC include un simbol atasat unei functii (de exemplu
TatalLui ), atunci prin propozitionalizare se ajunge la o BC innita, deoarece putem sub-
stitui pe x cu John, TatalLui(John), TatalLui(TatalLui(John)), si tot asa la innit.
Exist a ns a un r aspuns, datorat lui Herbrand care spune c a dac a un enunt este implicat
de c atre baza de cunostinte original a, exprimat a sub form a de predicate, atunci exist a
o demonstratie care pleac a de la un set nit de enunturi n form a propozitional a, prin
care se poate deduce enuntul respectiv. Se poate genera o astfel de demonstratie plec and
de la nlocuirea lui x cu John si Richard (deci ad ancime 0), apoi cu TatalLui(John) si
TatalLui(Richard) (ad ancime 1) si cu termeni de ad ancime din ce n ce mai mare.
Ce se nt ampl a dac a enuntul dat ca posibil a concluzie nu este deductibil din baza
de cunostinte? Teorema lui Herbrand (sau alte rezultate) nu spun nimic n acest sens.
Procedura descris a mai sus va genera termeni cu ad ancime din ce n ce mai mare, dar
neind o limitare dat a, procedeul se va repeta la nesf arsit. Altfel zis, problema implicatiei
n logica de ordinul nt ai este semidecidabila adica exista algoritmi care raspund pozitiv
pentru un enunt care este deductibil din BC, dar nu exista algoritm care de asemenea sa
raspunda negativ la ecare enunt nedeductibil.
Capitolul 7
Sisteme fuzzy
7.1 Prezentare general a
Capitolul contine o introducere a logicii fuzzy si multimilor fuzzy
1
. Domeniile sunt
legate de modelarea incertitudinii din lumea real a, de rationamentul aproximativ, de
imprecizia n exprimare. Majoritatea conceptelor folosite n lumea real a sunt neclare,
vagi, ambigue, dar cu toate aceste oamenii opereaz a cu ele foarte bine.
Termenul de fuzzy a fost introdus de c atre Lot A. Zadeh, profesor la University
of California at Berkley, n lucrarea sa Fuzzy Sets [7]. Multimile fuzzy sau multimile
nuantate se bazeaz a pe conceptul de grad de apartenenta a unui element la un set;
acest grad este un num ar din intervalul [0, 1], spre deosebire de multimile clasice care sunt
v azute ca asign and grade de apartenent a e 1, e 0
2
.

Intro multime fuzzy, gradul de
apartenent a se exprim a printr-o functie cu valori n intervalul [0, 1].
Al aturi de teoria probabilit atilor, sistemele fuzzy sunt folosite pentru modelarea in-
certitudinii. Incertitudinea existent a n ceea ce priveste rezultatul arunc arii unui zar este
modelat a prin variabile aleatoare - iar aici este vorba de determinarea probabilit atilor
asociate diferitelor valori de iesire, sau comportamentul obtinut prin repetarea experi-
mentelor etc. Tipul de incertitudine pe care l abordeaz a sistemele fuzzy este ns a diferit.
De exemplu, propozitia Maria este destul de nalt a nu are o incertitudine de tip statistic
n ea: nu este vorba de evenimente aleatoare repetate sau condition ari probabiliste. Ca-
racterul vag al unui sistem este o caracteristic a intrinsec a a sa; ea nu este dat a n vreun
fel de observatii repetate sau ncrederea n leg atura dintre st ari.
1
Fuzzy: vag, neclar; n acest context este tradus n limba romana si ca nuantat.
2
Se poate face o paralela cu functia caracteristica denita pentru o submultime A a lui X:
f
A
(x) =

1 daca x A
0 daca x X \ A
99
100 CAPITOLUL 7. SISTEME FUZZY
Insist and pe directia aceasta, putem arma c a modul n care se enunt a regulile de
productie bazate pe logica traditional a:
Daca A atunci B
este aplicabil doar pentru cazul n care caracterul vag lipseste cu des av arsire, de exemplu
n matematic a. Totusi, consider and regula: Dac a e nnorat, atunci va ploua realiz am
c a este vag

, cel putin din cauza urm atoare: notiunea de nnorat este vag a rareori cerul
este n totalitate acoperit de nori; vorbim de partial nnorat sau un pic nnorat sau
foarte nnorat si niciunul din acesti termeni nu are o caracterizare clar a; dac a nu lu am
n considerare aceste nuante, atunci regula anterioar a ar utilizabil a doar pentru cazul n
care cerul e complet acoperit de nori. Chiar si ploaia poate nuantat a picur a, plou a
torential etc.
Logica fuzzy este asociat a deci cu incertitudinea nestatistic a. Tr as atura esential a a
multimilor si logicii fuzzy este manipularea riguroas a a incertitudinii. Se pun la dispozitie
modalit ati de denire, descriere si analiz a a caracteristicilor vagi.
7.2 Teoria multimilor fuzzy

In teoria clasic a a multimilor, un element e face parte dintr-o multime, e nu.



In
multimile fuzzy ns a, apartenenta la o multime se exprim a printrun grad de apartenent a,
pentru care valoarea este un num ar cuprins ntre 0 si 1. Putem vedea aceasta ca o
generalizare a multimilor clasice: dac a un element apartine unei multimi clasice, atunci
valoarea functiei de apartenent a este 1, altfel 0 - de fapt, functia caracteristic a a unei
multimi.
S a consider am de exemplu multimea oamenilor nalti. Evident, o persoan a care are
n altimea de 2.10 metri face parte din aceast a multime. La fel se poate spune si despre
un om cu n altimea de 2 m sau de 1.90 m; putem nuanta aici faptele, spun and c a ultimele
dou a persoane apartin ntr-o m asur a mai mic a acestei multimi, dar nc a fac parte din
ea. O persoan a de 1.80 m sau mai putin nu mai poate considerat a ca f ac and parte din
multimea oamenilor nalti. Solutia schitat a aici este asignarea unor grade de apartenent a
la o multime pentru elementele n discutie. S a consider am tabelul 7.1 n care pentru
diferite exemple de n altimi vom specica gradul de apartenent a la multimea considerat a.
Multimea oamenilor nalti este considerat a din acest moment o multime fuzzy (nuantat a).
Observ am c a o multime fuzzy se poate specica prin perechi de elemente de grad de
apartenent a - element. O notatie mai compact a pentru tabelul 7.1 este:

Inalt = {1.0/2.10, 0.8/2, 0.4/1.90, 0/1.80, 0/1.70}


7.2. TEORIA MUL TIMILOR FUZZY 101
Persoan a

In altime Grad de apartenent a
A 2.10 m 1
B 2 m 0.8
C 1.90 m 0.4
D 1.80 m 0
E 1.70 m 0
Tabela 7.1:

In altimi si gradul de apartenent a la multimea fuzzy a oamenilor nalti.
Valorile extreme 0 si 1 se pot interpreta astfel: dac a
A
(x) = 1 atunci spunem c a x cu
certitudine apartine lui A, dac a
A
(x) = 0 atunci x cu certitudine nu apartine lui A.
O alt a variant a este specicarea unei functii de apartenent a
A
(x), unde
A
este o
functie valori n intervalul [0, 1], A este o multime fuzzy, x este un element din univer-
sul discursului pentru care se stabileste gradul de apartenent a la multimea A. Astfel,

Inalt
(2.10m) = 1,

Inalt
(1.90m) = 0.4 etc.
Functiile de apartenent a se pot reprezenta grac, pe axa orizontal a ind valori al
elementelor, iar pe vertical a valoarea functiei de apartenent a, precum n gurile 7.1 sau
7.2.
Figura 7.1: Reprezentarea grac a a functiei de apartenent a pentru multimea nalt
Figura 7.2: Reprezentarea grac a a functiei de apartenent a pentru multimea cald
Formele poligonale date n gracele din gura 7.1 si 7.2 nu sunt singurele care se pot
folosi. Se poate de exemplu utiliza o functie de tip Gaussian pentru modelarea gradului
de apartenent a:

Cald
(T) = e

(T25

)
2
50
102 CAPITOLUL 7. SISTEME FUZZY
unde T este temperatura exprimat a n grade Celsius. Totusi, functiile formate cu portiuni
liniare sunt mai usor de calculat si n practic a au un comportament bun; eventuala lor
nederivabilitate nu este o problem a. Din ratiuni evidente, spunem c a functia din gura
7.2 este triunghiular a.

In sistemele fuzzy un element poate s a apartin a la dou a multimi fuzzy, simultan. De


exemplu, o persoan a cu n altimea de 1.83 metri face parte din multimea oamenilor nalti
n m asura 0.1
3
si totodat a apartine multimii oamenilor de n altime medie n m asura 0.8
- a se vedea gracele din gura 7.3. Cele dou a notiuni nu se exclud reciproc.
Figura 7.3: Valorile fuzzy mediu si nalt reprezentate simultan
7.3 Operatii cu multimi fuzzy
Rationamentul presupune operatii logice; o mare parte din notiunile si operatiile din
algebra boolean a au fost preluate si adaptate la logica fuzzy.

Inainte de a deni aceste operatii, este cazul s a enumer am dou a paradoxuri din logica
binar a:
1. (Paradoxul mincinosului) O persoan a din Creta spune: eu mint (cu sensul: ceea ce
spun acum e fals). Dac a presupunem c a aceast a propozitie este adev arat a, atunci
nseamn a c a spusele cretanului sunt false, deci de fapt el nu minte, ceea ce e o
contradictie cu presupunerea initial a. Dac a presupunem c a armatia lui este fals a,
atunci nseamn a c a dimpotriv a, el nu minte, deci iar asi contradictie cu presupunerea
noastr a. Oricare din cele dou a valori de adev ar am vrea sa asociem armatiei eu
mint, ajungem la o contradictie. Ori, cum doar valorile Adev arat si Fals pot
asociate unei propozitii
4
, avem un paradox.
2. (Paradoxul b arbierului)

Intrun sat exist a un b arbier care barbiereste pe toti b arbatii


care nu se b arbieresc singuri. Care este valoarea de adev ar a propozitiei B arbierul
3
Valoarea exacta se aa intersectand o dreapta verticala care trece prin valoarea 1.83 de pe abcisa cu
gracul functiei de apartenenta.
4
Conform principiului tertului exclus, a treia varianta nu este posibila.
7.3. OPERA TII CU MUL TIMI FUZZY 103
se b arbiereste singur? Printr-un procedeu asem an ator cu cel anterior, se ajunge la
concluzia c a niciuna din cele dou a valori de adev ar nu pot asociate propozitiei,
pentru c a sar ajunge la contradictie.
Aceste probleme sunt rezolvate de c atre logica fuzzy, putanduse da valori de adev ar
pentru propozitiile discutate. Intuitiv, pentru ambele armatii am putea spune c a ele
sunt tot at at de adev arate pe c at sunt de false.
Vom trece acum la denirea operatiilor pentru multimi fuzzy. Denitiile i apartin lui
Zadeh.
7.3.1 Egalitatea multimilor fuzzy

In teoria clasic a a multimilor, dou a multimi sunt egale dac a au exact aceleasi elemente.
Pentru c a o multime fuzzy nseamn a elemente cu grad de apartenent a la ea, spunem c a
dou a multimi fuzzy sunt egale dac a pentru domenii de valori identice au exact aceleasi
valori ale functiilor de apartenent a.
7.3.2 Incluziunea multimilor fuzzy

In teoria clasic a a multimilor, o multime A este o submultime a multimii B dac a


orice element din A se g aseste si n B. Pentru cazul multimilor fuzzy, folosim urm atorul
exemplu ca suport intuitiv pentru denirea incluziunii: multimea oamenilor foarte nalti
este inclus a n multimea oamenilor nalti. Evident, pentru un element x pentru care

foarte nalt
(x) = m, valoarea asociat a lui fat a de de multimea oamenilor nalti este chiar
mai mare:
nalt
(x) = m + , > 0. Ca atare, spunem c a multimea fuzzy A este inclus a
n multimea fuzzy B dac a cele dou a multimi contin aceleasi elemente si
A
(x)
B
(x),
x. Desigur, si alte denitii sunt posibile.
7.3.3 Complementara unei multimi fuzzy

In teoria clasic a a multimilor, complementul unei multimi A este multimea format a


din toate elementele care nu apartin lui A.
Pentru denitia relativ la multimi fuzzy, pornim de la un exemplu: consider am multimea
oamenilor de n altime medie, pentru care functia de apartenent a este dat a n gura 7.3.
Se pune problema: c and spunem c a o persoan a nu este de naltime medie? Dac a persoana
are n altimea 1.80 m, evident c a face parte din multime; dac a are 1.90 m sau 1.70 m,
atunci iar asi e evident c a nu face parte din ea. Pentru o persoan a pentru care gradul de
apartenent a la multimea oamenilor de n altime medie este, s a spunem, 0.7, pare rezonabil
s a spunem c a ea nu apartine la aceast a multime cu m asura 1 0.7 = 0.3. Putem deci
104 CAPITOLUL 7. SISTEME FUZZY
deni valoarea de apartenent a a complementului multimii ca ind unu minus valoarea de
apartenent a la multime. Desigur, si alte denitii sunt posibile.
Denitia dat a contrazice principiul tertului exclus: in logica clasic a se spune c a ceva
e este A, e este non-A. Gradul de adev ar pentru armatiile discutate n cele dou a
paradoxuri poate luat 0.5, deci ecare propozitie are aceeasi valoare de adev ar ca si
contrara ei.
7.3.4 Intersectia a doua multimi fuzzy

In varianta clasic a, intersectia a dou a multimi este o multime format a din elementele
comune celor care se intersecteaz a.
Denirea pentru multimi fuzzy nu este unic a; oricare ar varianta folosit a, trebuie s a
se respecte urm atoarele:
1. operatia s a e comutativ a:
AB
(x) =
BA
(x)
2. de asemenea, s a avem asociativitate:
(AB)C
(x) =
A(BC)
(x)
3. monotonie: dac a valoarea functiei de apartenent a a unui element la o multime scade,
atunci valoarea functiei de apartenent a pentru multimea respectiv a intersectat a cu
o alta nu trebuie s a creasc a.

In practic a, cel mai mic grad de apartenent a relativ la cele dou a multimi determin a
gradul de apartenent a la intersectie. Varianta de operator de intersectie dat a de c atre
Zadeh este:

AB
(x) = min {
A
(x),
B
(x)}
Se observ a c a dac a A B, atunci A B = A, n sens fuzzy, ceea ce este n concordant a
cu ceea ce avem si n teoria clasic a a multimilor. Desigur, si alte denitii sunt posibile
pentru acest operator.
7.3.5 Reuniunea a doua multimi fuzzy

In teoria clasic a a multimilor, reuniunea a dou a multimi este o multime format a din
toate elementele care se reg asesc n ele. Pentru denirea relativ la multimi fuzzy, se
iau n considerare propriet ati similare cu cele de la intersectie (doar la monotonie apare
diferenta), iar varianta dat a de c atre Zadeh este:

AB
(x) = max {
A
(x),
B
(x)}
Se pot da si alte denitii pentru acest operator.
7.4. REGULI FUZZY 105
7.3.6 Operatori de compensare

In timp ce operatiile din cadrul teoriei clasice a multimilor sunt unic denite, pentru
multimile fuzzy exist a si alte posibilit ati de denire a lor dec at cele date mai sus. Opera-
torii de compensare trateaz a n special cazul reuniunii si al intersetiei de multimi fuzzy.
Intersectia este des nt alnit a n cadrul regulilor fuzzy.
Folosind denitia intersectiei dat a de Zadeh, valoare functiei de apartenent a pentru
intersectia a 2 multimi fuzzy este controlat a de cea mai mic a din valorile existente. De
exemplu, pentru regula dac a A si B si C atunci D, dac a valorile de apartenent a ale lui
A, B si C sunt respectiv 0.2. 0.8, 0.9, efectul pe care l are A asupra rezultatului nal
este prea pronuntat.

In practic a, denitia intersectiei dat a de Zadeh nu e ntotdeauna
adecvat a.
Sau denit mai multi operatori de compensare. Ei formuleaz a r aspunsuri lantrebarea:
c at de mult poate s a compenseze cresterea unor variabile valorile mici ale altora? Vom
prezenta dou a variante ale acestor operatori: operatorul de medie si operatorul gamma.
Prin operatorul de medie se stabileste c a valoarea functiei de apartenent a este media
valorilor individuale:

X
1
X
2
...X
n
(x) =
n

i=1

X
i
(x)
n
Operatorul gamma este mai complex si pare s a reprezinte mai bine procesul de decizie
uman a dec at denitiile lui Zadeh. El este denit ca:

gamma
=

i=1

1
n

i=1
(1
i
)

unde 0 1, iar n este num arul de valori fuzzy implicate n intersectie.



In practic a,
cel mai frecvent valorile lui sunt ntre 0.2 si 0.4.
7.4 Reguli fuzzy
Regulile clasice au forma urm atoare:
Dac a A
1
si A
2
si si A
n
atunci C
unde A
1
si A
2
si si A
n
se numeste antecedent sau premis a iar C este consecvent sau
consecint a sau concluzie. De exemplu:
Daca naltimea barbatului este mai mare de 1.80 m, atunci masa lui este mai mare de 50
kg.
Regulile fuzzy p astreaz a aceast a form a general a, dar pot s a apar a diferente pe partea
de consecvent. Cele dou a variante des folosite sunt datorate lui Mamdani:
106 CAPITOLUL 7. SISTEME FUZZY
Daca X
1
este A
1
si . . . si X
n
este A
n
atunci Y este B
si respectiv lui Takagi, Sugeno si Kang:
Daca X
1
este A
1
si . . . si X
n
este A
n
atunci Y = p
0
+ p
1
X
1
+ +p
n
X
n
unde X
i
sunt variabile fuzzy de intrare, A
i
sunt multimi fuzzy peste variabilele X
i
(1
i n), Y este o variabil a fuzzy de iesire, B este o multime fuzzy denit a peste valorile
lui Y iar p
j
sunt coecienti reali (0 j n).
Pentru probleme de clasicare exist a urm atoarea form a de regul a:
Daca X
1
este A
1
si . . . si X
n
este A
n
atunci Y face parte din clasa i cu gradul de condenta
GC
i
.
Nuantarea
5
este pasul prin care se combin a valorile din antecedentul unei reguli, fo-
losind operatiile cu multimi fuzzy; pasul se aplic a pentru ecare regul a n parte. Prin
combinarea regulilor date la pas de denuantare se obtine o iesire care poate folosit a ca
rezultat inferential sau ca indicatie de control al unui sistem.
Exemplicarea acestor reguli se face pentru cazul unei centrale de nc alzire, pentru
care sunt date niste reguli privind reglarea debitului de gaz astfel nc at s a se obtin a o
temperatur a potrivit a. Se pleac a de la reguli n care se folosesc notiuni vagi (temperatur a
potrivit a, variatie mare, m areste debitul etc) si se obtine o indicatie pentru regulatorul
de gaz.
Vom considera c a avem valori de intrare precum temperatura interioar a (notat a TempIn),
cea exterioar a (TempExt), modicarea de temperatur a interiorar a n ultimele 5 minute
(DeltaTempIn); ca valoare de iesire avem ModificareDebit. Fiecare valoare de intrare
concret a va avea un grad de apartenent a fuzzy la diferite multimi (de exemplu, pentru
TempIn avem apartenent a la multimi precum foarte cald, foarte frig etc.
Pentru valoarea TempIn avem trei multimi fuzzy: rece, confortabil, prea cald. Pentru
TempExt avem multimile fuzzy foarte rece, rece, cald, foarte cald si erbinte. Pentru
DeltaTempIn denim multimile fuzzy: larg negativ, mic negativ, aproximativ zero, pozitiv
mic, pozitiv mare, iar pentru ModificareDebit avem seturile fuzzy scade mult, scade putin,
nu schimba, creste putin, creste mult.
Vom considera doar c ateva reguli, suciente pentru exemplicarea nuant arii si denuant arii:
Regula 1: Dac a TempIn este confortabila si DeltaTempIn este aproximativ zero, atunci
ModificareDebit este nu schimba;
Regula 2: Dac a TempExt este rece si DeltaTempIn este mic negativ, atunci ModificareDebit
este creste putin;
Regula 3: Dac a TempIn este prea cald si DeltaTempIn este larg pozitiva, atunci ModificareDebit
este scade mult;
5

In original: fuzzycation.
7.4. REGULI FUZZY 107
Regula 4: Dac a TempIn este rece si DeltaTempIn este aproximativ zero, atunci ModificareDebit
este creste putin.
Pentru TempIn, multimea confortabil se deneste ca {0/15

, 1/21

, 0/27

}, interpre-
tat a ca o functie de apartenent a de tip triunghiular. De exemplu, pentru 18

si 24

gradul
de apartenent a este 0.5. Pentru rece avem multimea fuzzy {1/10

, 1/16

, 0/21

}, iar prea
cald este multimea {0/21

, 1/27

, 0/33

}.
Pentru DeltaTempIn:
negativ mic = {0/ 4

, 1/ 2

, 0/0

}
aproape zero = {0/ 2

, 1/0

, 0/ + 2

}
larg pozitiv = {0/2

, 1/4

, 1/6

}
Pentru TempExt, rece={0/ 1

, 1/10

, 0/21

}.
S a presupunem c a temperatura interioar a este de 20

, diferenta de temperatur a din


ultimele 5 minute este 1.5

iar temperatura exterioar a este de 11

.
Conform multimilor fuzzy date anterior, avem:
pentru TempIn,
rece
(20

) = 0.25,
confortabil
(20

) = 0.75,
prea cald
(20

) = 0;
pentru DeltaTempIn,
mic negativ
(1.5

) = 0.80,
aproximativ zero
(1.5

) = 0.20,

larg pozitiv
(1.5

) = 0
pentru TempExt,
rece
(11

) = 0.90
Aplic am aceste valori celor 4 reguli fuzzy de mai sus. Tinem cont de faptul c a ante-
cedentele din reguli sunt exprimate cu conjunctie, corespunz atoare intersetiei de multimi,
ceea ce n logica fuzzy se implementeaz a prin functia min. Obtinem:
Regula 1: 0.75 0.20 = 0.20 =
nu schimba
(ModificareDebit)
Regula 2: 0.90 0.80 = 0.80 =
creste putin
(ModificareDebit)
Regula 3: 0 0 = 0 =
scade mult
(ModificareDebit)
Regula 4: 0.25 0.20 = 0.20 =
creste putin
(ModificareDebit)
Activarea acestor reguli se face n paralel; observ am c a pentru regula a treia iesirea
este zero, deci ea nu se va aplica. Din regulile 2 si 4 avem dou a valori pentru apartenenta

creste putin
(ModificareDebit); se va lua maximul celor dou a valori, deci
creste putin
(ModificareDebit) =
0.8.
Variatia de debit este modelat a la r andul ei fuzzy, asa cum se arat a n gura 7.4.
108 CAPITOLUL 7. SISTEME FUZZY
1
3 2 1 0 2
Scade putin
Scade mult
1
Nu schimba Creste putin Creste mult
debit

(m cubi/sec)
Figura 7.4: Multimi fuzzy pentru debitul de gaz
Denuantarea este operatia prin care se obtine un r aspuns concret la problem a, adic a se
furnizeaz a o valoare exprimat a n metri cubi pe secunda pentru debitul de gaz. Plec and
de la gracul anterior, se traseaz a conturul m arginit de orizontalele y = 0.2 - pentru
nu schimba - si y = 0.8 - pentru creste putin. Se obtine gura geometric a desenat a cu
linie continu a n gura 7.5, pentru care se determin a centrul de greutate; verticala dus a
prin acest centru de greutate interesecteaz a axa debitului la valoarea +0.76, aceasta ind
indicatia dat a regulatorului de gaz: creste cu 0.76m
3
/s debitul de gaz.
Exist a mai multe metode care se pot folosi pentru denuantare; a se vedea [?] pentru
detalii.
7.5 M asuri ale gradului de nuantare

In cazul unei multimi fuzzy se poate punentrebarea: c at este ea de nuantat a? Pentru o


multime fuzzy discret a, se pot introduce c ateva m asuri care cuantic a gradul de nuantare.
Acestea au ca scop m asurarea gradului de incertitudine, care apare, de exemplu, n cazul
exprim arii vagi.

In continuare, prezentarea merge pe exemplele din [?].
Dac a consider am multimea pestilor, atunci pentru diferite elemente de mai jos avem
gradele exprimate:
pesti
(biban) = 1.0,
pesti
(pestisor auriu) = 1.0,
pesti
(calut de mare) =
0.8,
pesti
(balena) = 0.0. Pentru multimea fuzzy ori, gradul de apartenent a ar putea
:
flori
(trandar) = 1.0,
flori
(p aine) = 0.0,
flori
(lemn c ainesc) = 0.5. Intuitiv, putem
spune c a multimea de ori exemplicat a este mai vag a dec at multimea pestilor: n ultimul
caz, valorile de apartenent a sunt mai apropiate de cele ale unei functii de apartenent a din
7.5. M

ASURI ALE GRADULUI DE NUAN TARE 109


1
3 2 1 0 2
Scade putin
Scade mult
1
Nu schimba Creste putin Creste mult
debit

(m cubi/sec) 0.76
Figura 7.5: Procesul de denuantare.
cazul unei multimi clasice, 0 si 1.
Se preia din zic a si din teoria informatiei notiunea de entropie, care m asoar a gradul de
dezorganizare a unui sistem. Spre deosebire de teoria informatiei unde m asura entropiei
este unic determinat a
6
, n teoria multimilor fuzzy sunt mai multe variante acceptate.
Se pleac a de la o sum a de propriet ati pe care ar trebui s a le respecte o astfel de m asur a
entropic a si se introduc mai multe functii care respect a o parte sau toate aceste propriet ati.
De exemplu, pentru o multime clasic a, din care un element e face parte, e nu, m asura
gradului de nuantare ar trebui s a dea rezulatul 0 - i.e. o multime clasic a nu este vag a. De
asemenea, cu c at sunt mai multe valori pentru care valoarea functiei de apartenent a este
0.5 sau apropiat a de aceasta, cu at at multimea este mai vag a: un element care apartine cu
m asura 0.5 la o multime fuzzy face si nu face parte din multimea dat a n aceeasi m asur a.

Inainte de a da diferite variante de m asurare a gradului de nuantare, se introduce


notiunea de multime mai ascutit a, ce exprim a relatia ntre dou a multimi fuzzy: spunem
c a o multime S

este mai ascutita dec at o alt a multime fuzzy S ambele denite peste
acelasi univers al discursului dac a
S
(x)
S
(x) pentru cazul n care
S
(x) < 0.5 si

S
(x)
S
(x) dac a
S
(x) > 0.5; pentru
S
(x) = 0.5 valoarea
S
(x) poate oric at.
Propriet atile de mai jos sunt punct de plecare pentru determinarea diferitelor functii
de m asurare a gradului de nuantare.
caracterul exact: H(A) = 0 dac a si numai dac a A este o multime clasic a;
maximalitatea: H(A) este maxim a dac a
A
(x) = 0.5, x din universul discursului;
6
Abstractie facand de o constanta multiplicativa
110 CAPITOLUL 7. SISTEME FUZZY
ascutirea: H(A) H(A

) dac a A

este mai ascutit a dec at A;


simetria: H(A) = H(A);
principiul includerii si excluderii: H(A B) = H(A) + H(B) H(A B)
O variant a de functie de m asurare a gradului de nuantare, introdus a de DeLuca si
Termini si care respect a toate cele 5 propriet ati de mai sus este:
H
DT
(A) = K
n

i=1
(
i
log
i
+ (1
i
) log(1
i
)) (7.1)
unde K este un num ar pozitiv oarecare. Varianta introdus a de Pal si Pal este:
H
PP
(A) = K
n

i=1

i
e
1
i
+ (1
i
)e

(7.2)
Desigur, utilizatorul poate s a deneasc a alte variante de m asurare a gradului de nuantare
a unei multimi vagi.
Bibliograe
[1] Articial Intelligence. A Modern Approach, Prentice Hall, Stuart Russel, Peter Norvig,
3rd edition, 2009
[2] Principiile inteligentei articiale, Editura Albastra, D. Dumitrescu, 2004
[3] Pattern Classication, editia a doua, Ed. Wiley-Interscience, Richard O. Duda, Peter
E. Hart, David G. Stork, 2000
[4] Genetic Algorithms + Data Structures = Evolution Programs, Ed. Springer-Verlag,
Zbigniew Michalewicz, 1998
[5] Machine Learning, Ed. McGrawHill, Tom Mitchell, 1997
[6] Neural Networks. A comprehensive foundation, Ed. Prentice Hall, Simon Haykin, 1999
[7] Fuzzy Sets, Lot Zadeh, Information and Control, Vol. 8, 1965
111

Potrebbero piacerti anche