Sunteți pe pagina 1din 90

Mircea NEAGOE

INTELIGEN ARTIFICIAL
I SISTEME EXPERT

2008

Inteligena Artificial

Cuprins

CUPRINS
1. Inteligena artificial ................................ ................................ ................................ ................. 1
1.1 Introducere ................................ ................................ ................................ .................... 1
1.2 Definiii ale inteligenei artificiale (IA) ................................ ................................ ......... 3
1.3 Scurt istoric al IA ................................ ................................ ................................ ........... 3
Rezumat ................................ ................................ ................................ ............................... 4
2. Limbajul LPAProlog ................................ ................................ ................................ ............... 5
2.1. Alfabetul i elemente de sintaxa limbajului Prolog ................................ ...................... 5
2.2. Vocabularul i termenii limbajului Prolog ................................ ................................ ...6
2.3. Structura unui program PROLOG ................................ ................................ .............. 10
2.4. Aspectul declarativ i procedural al programelor Prolog ................................ ........... 11
2.5. Liste. Prelucrarea listelor ................................ ................................ ............................ 14
2.6. Operatori ................................ ................................ ................................ ..................... 15
2.7. Controlul backtraking-ului n limbajul Prolog ................................ ........................... 16
Rezumat ................................ ................................ ................................ ............................. 18
Probleme propuse ................................ ................................ ................................ ............. 18
Test de autoevaluare ................................ ................................ ................................ .......... 21
3. Limbaje de ordinul I................................ ................................ ................................ ................ 23
3.1. Limbajul de calcul propoziional ................................ ................................ ................ 23
3.1. Sintaxa i semantica calculului propoziional................................ ................. 23
3.1.2. Principiul deduciei ................................ ................................ ...................... 25
3.1.3. Echivalen logic ................................ ................................ ........................ 25
3.2. Metode de demonstrare a teoremelor n limbajul de calcul
propoziional ................................ ................................ ................................ .......... 26
3.2.1. Metode semantice ................................ ................................ ........................ 26
3.2.2. Metode sintactice ................................ ................................ ......................... 27
3.2.3. Demonstrarea teoremelor utiliznd metoda deduciei
formale ................................ ................................ ................................ .......28
3.2.4. Principiul rezoluiei ................................ ................................ ..................... 29
Rezumat ................................ ................................ ................................ ............................. 32
Exerciii i probleme propuse ................................ ................................ ........................... 32
Test de autoevaluare ................................ ................................ ................................ .......... 34
4. Structuri i strategii de cutare n spaiul de stri ................................ ............................... 35
4.1. Inteligena artificial ca reprezentare i cutare ................................ ......................... 35
4.1.1. Reprezentarea cunotinelor................................ ................................ ......... 35
4.1.2 Cutarea ................................ ................................ ................................ ........ 35
4.2. Strategii de cutare ................................ ................................ ................................ .....38
4.2.1. Algoritmi de cutare exhaustiv ................................ ................................ ..38
4.2.2. Algoritmi de cutare euristic ................................ ................................ ......41
Rezumat ................................ ................................ ................................ ............................. 45
Probleme propuse ................................ ................................ ................................ ............. 45
Test de autoevaluare ................................ ................................ ................................ .......... 46
i

5. Sisteme de Producie................................ ................................ ................................ ................ 47


5.1. Definiia sistemelor de producii ................................ ................................ ................ 47
5.2. Controlul cutrii n sistemele de producie ................................ ............................... 51
5.2.1. Selecia modului de cutare: data-driven sau goal-driven ........................... 51
5.2.2.Controlul cutrii prin intermediul strategiei de rezolvare a
conflictului ................................ ................................ ................................ .53
Rezumat ................................ ................................ ................................ ............................. 54
Probleme propuse ................................ ................................ ................................ .............. 54
Test de autoevaluare ................................ ................................ ................................ .......... 55
6. Planning ................................ ................................ ................................ ................................ ....57
6.1. Prima metod de planning (John McCarthy)................................ .............................. 58
6.2. Metoda STRIPS (STanford Research Institute Planning System) ............................... 61
Rezumat ................................ ................................ ................................ ............................. 64
Probleme propuse ................................ ................................ ................................ .............. 64
Test de autoevaluare ................................ ................................ ................................ ..........65
7. Sisteme Expert ................................ ................................ ................................ ......................... 67
7.1. Inteligena artificial i sistemele expert ................................ ................................ ....67
7.1.1. Sisteme Expert. Definiii ................................ ................................ ............. 67
7.1.2. Originea Sistemelor Expert. Experimentri i realizri ............................... 69
7.2. Structura general a unui sistem expert ................................ ................................ ......72
7.2.1 Componentele sistemelor expert................................ ................................ ...72
7.2.2. Categorii de aplicaii ................................ ................................ .................... 76
7.2.3. Alternative n construcia unui sistem expert ................................ .............. 78
7.2.4. Etape ale realizrii unui sistem expert ................................ ......................... 79
7.3. De la sistemele de producii la sistemele expert. Un mic exemplu ............................ 81
Rezumat ................................ ................................ ................................ ............................. 84
Test de autoevaluare ................................ ................................ ................................ .......... 85

ii

Inteligen Artificial

Cap.1. Introducere

Cap.1
Inteligena artificial
Obiectivele disciplinei
nsuirea noiunilor de baz i crearea abilitilor practice necesare n rezolvarea
problemelor complexe din inginerie i economie prin metode specifice Inteligenei Artificiale:
calcul propoziional, algoritmi de cutare, sisteme de producii, planning, sisteme expert, logic
fuzzy, reele neuronale.

1.1. Introducere
Termenul de inteligen artificial a fost folosit pentru prima dat n 1956 de omul de
tiin american John McCarthy. Pn atunci, inteligena artificial i fcuse simit prezena n
unele domenii de investigaie, cum ar fi:
1.
Raionamentul automat: poate un calculator demonstra o teorem dintr-un anumit
domeniu, cum ar fi Geometria?
2.
Procesarea limbajelor naturale: poate un calculator s comunice cu utilizatorul
ntr-un limbaj de toate zilele, de exemplu, limba Englez?
3.
Sistemele expert: poate un calculator s ntreprind o expertiz ntr-un anumit
domeniu, s zicem, medicina? Dac calculatorului i se dau simptomele pacientului,
poate acesta s stabileasc diagnosticul i s prescrie tratamentul medicamentos
adecvat?
4.
Jocuri: un calculator poate juca competitiv un joc, cum ar fi ah-ul?
5.
Vederea artificial: poate un calculator "privind" imaginea unei scene, de exemplu,
o buctrie cu un robinet deschis, s interpreteze scena respectiv? Dac da, un
robot dirijat de un astfel de controller este capabil s localizeze robinetul i s
nchid apa?
6.
nvare: Poate un calculator, care opereaz ntr-un domeniu de tipul celor de mai
sus, s-i mbunteasc performanele n timp? nvnd din experien, poate
deveni, de exemplu, un mai bun juctor de ah?
Se tie c un calculator face numai ceea ce un program i spune s fac. Deci, studiul
inteligenei artificiale presupune studierea unor tehnici specifice de programare a calculatoarelor,
astfel nct acestea s devin capabile s ndeplineasc, ntr-un anumit domeniu, sarcini considerate
ca innd de domeniul inteligenei.
Nu exist o definiie riguroas a inteligenei artificiale. Definiiile existente n diverse
lucrri poart amprenta domeniului particular n care aceasta este aplicat. O ncercare de definiie
ar putea fi urmtoarea:
Inteligena artificial (IA) poate fi definit ca acea ramur a "computer science" care se
ocup cu automatizarea comportamentului inteligent.
Obiectivul major al IA este de a construi maini inteligente (n IA termenii de main i
1

Inteligen Artificial
Cap.1. Introducere
calculator sunt sinonimi). Inteligena artificial trebuie privit ca o completare sau prelungire a
inteligenei umane i nu ca o nlocuire a acesteia, aa cum invenia automobilului nu a desfiinat
mersul pe jos. Automobilul a fost conceput n ideea de a sluji omul. La fel i IA.
Deoarece obiectivul inteligenei artificiale este de a construi maini care afieaz inteligen,
ne punem ntrebarea dac putem defini precis aceast inteligen. Inteligena are multe aspecte:
abilitatea de a raiona, de a nva din experien, de a se adapta la situaii noi etc. ncercarea de a
da o definiie riguroas inteligenei ne-ar introduce ntr-un domeniu de speculaii psihologice i
filozofice.
Unul dintre scopurile fundamentale ale cercetrilor n domeniul IA este reproducerea, de
ctre calculator, a raionamentelor umane.
Pentru a stabili dac o main dat este inteligent, matematicianul britanic Alan Turing
(1912-1954) a propus un test, cunoscut azi sub numele de testul Turing. n esen testul Turing
poate fi descris astfel:
O persoan, denumit interogator, converseaz prin intermediul unui terminal cu doi
interlocutori, invizibili din punctul lui de vedere. Unul dintre acetia este o main, iar
cellalt este un interlocutor uman. Maina ncearc s rspund la ntrebrile
interogatorului ca i cum ar fi un interlocutor uman.Persoana, desigur, rspunde normal ca
un interlocutor uman. Dac, dup conversaia pentru o perioad de timp cu cei doi
interlocutori, interogatorul nu este capabil s-i disting pe cei doi interlocutori, atunci se
poate spune c maina este inteligent.
Testul Turing a fost deseori criticat n literatur, reprondu-i-se c decizia depinde de
modul n mare msur de interogatorul respectiv. Acest repro poate fi contracarat prin desfurarea
testului cu mai muli interogatori, fiecare dintre ei lucrnd independent de ceilali. Rezultatul
testului va fi n acest caz decizia celor mai muli dintre interogatori.
Inteligena Artificial este o ramur a tiinei promovat recent n universiti i laboratoare
de cercetare. Astfel de tehnici au nceput s fie promovate cu succes i n industrie. Se apreciaz ca
n viitor tratarea problemelor inginereti cu metode specifice inteligenei artificiale va crete
considerabil. n plus, tehnicile dezvoltate pe baza programrii clasice dau rezultate corespunztoare
cnd se utilizeaz n descrierea elementelor finite, la simularea circuitelor, prelucrarea problemelor
algoritmice, nefiind adecvate la o serie de probleme inginereti. Metodele inginereti pot fi
caracterizate prin utilizarea algoritmilor euristici n scopul determinrii celei mai bune soluii ntr-o
situaie concret dat.
Inteligena artificial (IA) este arta de a programa calculatoarele, pentru a le determina s
realizeze "lucruri" care sunt considerate inteligente, atunci cnd sunt fcute de oameni. IA implic,
deci, capacitatea de abstracie i de raiune, iar auxiliarul su indispensabil este memoria.
Inteligena artificial urmrete simularea pe calculator a mecanismelor intelectului uman.
n sens larg, IA include anumite aspecte de senzaie i percepie artificial (vederea artificial,
nelegerea limbajului vorbit etc.) i presupune capaciti de nvare i adaptare. n sens restrns,
IA nseamn arta de a crea medii artificiale care s simuleze procesele cognitive, adic
conceptualizarea i raionarea asupra conceptelor.
Antecedentele IA trebuiesc cutate la vechii greci (Gorder 1986), dar ideea formrii unei
discipline de cercetare a inteligenei umane i a raionrii formale a condus diverse grupuri din
S.U.A. i Europa dup cel de-al doilea rzboi mondial.
2

Inteligen Artificial
Cap.1. Introducere
Evoluia tiinei calculatoarelor i comportarea uman au stimulat interesele raionrii pe
main.. Aceasta a determinat o nou disciplin, cea a inteligenei artificiale.
Prin cercetarea nceput n 1956 i cu evenimentul consolidrii prin Summer Research
Project realizat la Darthmounth College, John McCarty a stabilit termenul de IA. Primele succese
sunt datorate programelor capabile s demonstreze teoreme ale logicii matematice (1963) ce au
determinat noua deschidere ctre programe ce folosesc tehnici de IA i o revigorare a domeniului
IA, devenind astfel o disciplin, mai mult dect o cutare matematic pentru mainile inteligente. n
timp, a aprut ideea benefic a nglobrii filozofilor, lingvitilor i neurologilor n aceste domenii.
Se dau mai jos cteva exemple de zone tiinifice asupra crora se extinde IA:
vederea artificial ce presupune recunoaterea formelor, identic cu vederea uman;
robotica focalizeaz producerea dispozitivelor mecanice capabile s reproduc micarea;
prelucrarea vocii ce privete constituirea i sinteza vocii umane;
prelucrarea n limbaj natural nelegerea i vorbirea n limbaj natural;
demonstrarea (producerea) teoremelor n matematic i logic;
"General Problem Solving" rezolvarea unei clase generale de probleme exprimate n
limbaje formale;
recunoaterea formelor recunoaterea i clasificarea diferitelor forme;
teoria jocurilor;
nvarea automat maini ce acumuleaz cunotine prin observarea exemplelor.
Analiznd literatura de specialitate, se pot distinge dou direcii fundamentale n care se
desfoar cercetrile n acest domeniu:
1. Reele neuronale - maina este modelat ca reea neuronal, imitnd modelul anatomic al
creierului uman;
2. Calculul simbolic - Newell i Simon a demonstrat c activitatea inteligent se desfoar
prin operaii logico-matematice asupra unor simboluri (model fiziologic al creierului
uman).

1.2. Definiii ale inteligenei artificiale (IA)

IA este tiina care permite realizarea de maini care au competena de a fi inteligente (M. Minsky,
1975);
IA este disciplina care are ca obiect nelegerea naturii i construirea de programe pe calculator
imitnd inteligena uman (A. Bonnet, 1984);
IA este studiul facultilor mentale n vederea utilizrii lor ca modele pentru calculator, ca
depozite de inteligen pentru mainile construite de om.
IA este ncercarea de conversie a datelor analogice furnizate de simurile umane n date logice
utile mainilor construite de om.

1.3. Scurt istoric al IA


Preocuprile privind inteligena artificial i au nceputul n anii 50, odat cu apariia unui
articol al lui Turin care afirma c mainile pot deveni inteligente (Les machines savent-elles
penser?). Turin demonstreaz c un automat poate face ceea ce face omul, cu condiia de a avea un
program adecvat de comand.
O alt serie de cercettori i puneau aceeai ntrebare: se pot concepe programe de calculator
inteligente?
3

Inteligen Artificial
Cap.1. Introducere
n 1956, disciplina numit Tratarea informaiei complexe sau Programare euristic devine
Inteligen artificial. n conferina de la Darmouth College, un grup de cercettori de renume
(John Mc Carthy, Marvin Minsky, Herbert Simon, Allan Newell, Claude Shennon) au adoptat
termenul de IA. Anii care au urmat lui 1956 au fcut s apar primele programe de demonstrare a
teoremelor bazate pe logica propoziiilor (General Problem Solver, autori Newell, Shaw i Simon).
n istoria IA au existat dou categorii de maini: mainile de calcul i automatele.
Maini de calcul
De la abac la calculator, s-au parcurs mai multe etape:
Pascal 1641 (la 18 ani) inventeaz o main pentru calcule aritmetice;
Babbage 1832 prezint maina diferenial, numit de curioi maina de gndit;
n 1842 apare maina analitic;
Hollerich 1890 construiete o main clasificatoare;
Burroughs 1892 construiete o main cu adiie;
Turing 1936 construiete o main universal;
Von Neumann 1945 construiete o main de calcul cu o structur apropiat de cea a
calculatoarelor actuale.
Automate i roboi
Automatele sunt maini care imit micarea, funciile sau aciunile efectuate de un corp n
micare;
Pe baza conceptelor dezvoltate de neurologul Gray Walter, n 1950 se construiete o
broasc mecanic, capabil s se cupleze la priz atunci cnd bateriile de alimentare se
descrcau sub o anumit limit;
n anul 1953, inginerul francez Dicqricq a construit o serie de animale cibernetice,
capabile s nvee;
n 1967, o echip de la Stanford Research Institute au construit o serie de automate
cibernetice, crora le-au dat numele de roboi. Noiunea de robot fusese introdus n 1920
de Karel Capek;
Roboii din a treia generaie, considerai inteligeni, incorporeaz tehnicile IA.

REZUMAT
1. Inteligena Artificial urmrete crearea instrumentelor logice capabile s genereze
artificial procese specifice inteligenei naturale. Cu alte cuvinte, scopul este de a realiza o
imagine, evident prin aproximare, a inteligenei umane (a proceselor specifice).
2. n prezent, inteligena artificial este n simbioz deplin cu informatica. De aceea,
specialitii n domeniu reconsider denumirea de inteligen artificial n raport cu o
nou denumire, cea de inteligen computaional.
3. Diferena major dintre un program de inteligen artificial i unul clasic const n
concepia rezolvrii problemei: clasic, rezolvarea este implementat n program explicit,
printr-o structur algoritmic; n inteligen artificial, rezolvarea se reduce la cutarea
soluiei n spaiul de stri asociat problemei, accentul fiind pus pe descrierea problemei i
mai puin pe rezolvarea ei.

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

Cap.2
Limbajul LPAProlog
Obiective
1. nsuirea principiilor de baz privind structura, sintaxa i mecanismele de inferen specifice
unui limbaj de Inteligen Artificial, n general, i limbajului LPA Prolog, n special.
2. nsuirea corect a utilizrii predicatelor (predefinite i utilizator) n rezolvarea problemelor
de IA.
3. Dezvoltarea abilitilor practice de programare a problemelor de IA n limbajul Prolog.

Durata: 3 ore
Istoria programrii logice cuprinde cteva etape reprezentative:
1970 Robert Kowalsky, Edinburgh University i Alain Colmerauer, Universit dAix
Marseille au pus bazele unei colaborri cu un obiectiv comun: utilizarea formalismului logicii
matematice la definirea unui limbaj de programare. Cercetrile lui R. Kowalsky au constituit
cadrul teoretic necesar, iar A. Colmerauer i P. Roussel au scris primul interpretor i au definit
limbajul Prolog (PROgrammation LOGique). Primul compilator Prolog (Kowalsky) a fost
realizat la Warren Edinburgh University, Department of AI.
1980 Borland a elaborat versiunea Turbo Prolog, implementabil pe IBM PC, ceea ce a dus la
rspndirea i cunoaterea limbajului.
William Clocksin i Christopher Mellish public n 1981 cartea Programming in Prolog,
care definete standardul Edinburgh al limbajului Prolog. Standardul Borland este mai restrictiv
referitor la posibilitile de calcul simbolic.
LPA (London Prolog Associates) elaboreaz LPA Prolog, care are la baz standardul
Edinburgh, dar aduce i o serie de dezvo ltri proprii (metapredicate).
Cele prezentate n cele ce urmeaz se refer la versiunea LPA Prolog, ce constituie totodat
i suportul aplicaiilor prezentate. Implementarea LPA deriv din mai bine cunoscuta versiune
Edinburgh Prolog, creia firma londonez productoare (London Prolog Associates) i-a adus
mbuntiri i dezvoltri suplimentare (metapredicate, faciliti grafice etc.). Versiunea de referin
Edinburgh Prolog a fost definit de W.F.Clocksin i C.S.Mellish n cartea Programming in
Prolog, lucrare considerat la ora actual un standard neoficial al limbajului Prolog.
Prolog este un limbaj declarativ, spre deosebire de alte limbaje (C, Pascal, Basic etc.) care
sunt procedurale (descriu modul de rezolvare a problemelor).

2.1. Alfabetul i elemente de sintaxa limbajului Prolog


Alfabetul limbajului. La scrierea programelor Prolog se poate utiliza ntreaga tabel de
caractere ASCII, att caracterele uzuale cuprinse n prima jumtate a tabelei (avnd codurile ASCII
cuprinse ntre 0 i 127, fapt pentru care sunt denumite impropriu caractere pe 7 bii), precum i
caracterele din cea de a doua jumtate a tabelei ASCII (avnd codurile ntre 128 i 256). Setul de
caractere din partea superioar a tabelei ASCII depinde de pagina de cod sau fontul cu care se
lucreaz. Acesta include de obicei literele greceti, precum i diverse caractere semigrafice.
Separatori i terminatori. Principalul separator al termenilor limbajului este virgula (,).
Virgula poate s apar de asemenea ca separator ntre elementele unei liste (de fapt o list este un
5

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

caz particular de termen compus). Spaiul este utilizat ca separator ntre termeni i operatori, de
fiecare dat cnd natura acestora impune introducerea unui spaiu pentru delimitare (spaiul nu este
necesar atunci cnd termenii i operatorii sunt de natur diferit, adic unul este alfanumeric, iar
cellalt simbolic). De exemplu, dac plus este un operator binar, iar ++ i ** sunt doi termeni,
sintaxa termenului compus: ++plus** este corect. Terminarea unui enun Prolog se realizeaz prin
caracterul punct (.) urmat n mod obligatoriu de spaiu sau terminatorul de sfrit de linie
(caracterele CR ,LF). Punctul poate s apar ns i n componena unui termen simbolic cum ar fi
**.**, context n care acesta nu are rol de terminator.
Comentariile. Pentru documentare, ntr-un program Prolog se pot introduce oricnd
comentarii. n funcie de ntinderea (amploarea) acestora, exist dou modaliti de introducere a
comentariilor. Caracterul % definete drept comentariu coninutul liniei, ncepnd cu caracterul
nsui i pn la sfritul acesteia. Inserarea unui comentariu pe mai multe rnduri se face ncadrnd
textul respectiv ntre delimitatorii /* i */.

2.2. Vocabularul i termenii limbajului Prolog


Termenii limbajului. n Prolog, termenii constituie tipurile fundamentale de date ale
limbajului i pot fi utilizai att pentru reprezentarea unor date elementare (scalare), ct i pentru
reprezentarea unor structuri foarte complexe (de exemplu o baz de date relaional). Termenii sunt
de fapt crmizile din care se compun clauzele limbajului (clauza este cel mai mic element sintactic
avnd semnificaie de sine stttoare n Prolog sau, mai exact, este cel mai mic enun compilabil).
Termenii pot fi simpli sau compui.
Termenii simpli constituie practic vocabularul limbajului de programare, acetia fiind cele
mai mici uniti lexicale avnd o anumit semnificaie n cadrul limbajului. Termenii simpli sau
atomici ai limbajului Prolog sunt numerele ntregi sau reale, variabilele, atomii i irurile de
caractere. Un termen compus se formeaz prin combinarea unor termeni simpli i/sau compui. Din
categoria termenilor compui fac parte listele i listele de octei, termeni cu o aplicabilitate aparte n
cadrul limbajului. n tabelul 1 este prezentat o clasificare a termenilor limbajului Prolog i sunt
descrise predicatele predefinite prin care programatorul poate testa dac un termen aparine unuia
din tipurile specificate mai sus. Totodat, predicatul type/2 permite determinarea tipului unui
anumit termen dat.
Termeni simpli
Variabilele. O variabil este denumit n Prolog printr-un identificator care trebuie s
nceap n mod obligatoriu cu o majuscul (o liter de la A la Z) sau cu caracterul _
(underscore). Secvena de caractere din denumirea variabilei poate s includ, de asemenea,
caracterul _, acesta fiind de fapt considerat liter. De exemplu, urmtorii identificatori sunt
denumiri corecte de variabile:
Anonim
_variabila
X
Y
Cristy
Numere ntregi. Ca n oricare limbaj de programare, un numr ntreg se reprezint printr-o
succesiune de cifre, eventual precedat de semnul plus sau minus. Convenia de reprezentare este
algebric pe 4 octei, domeniul numerelor ntregi reprezentabile fiind cuprins ntre -2147483648 i
2147483647.
Numerele reale. Un numr real poate fi precedat de semn i este format dintr-o secven de
una sau mai multe cifre, punctul zecimal i o secven de una sau mai multe zecimale. Opional
numrul poate fi urmat (fr a se lsa spaiu) de litera e (sau E) i o secven de cifre eventual
precedat de semn (n format exponenial). Dup cum se poate constat, numerele reale au sintaxa
similar cu cea din Pascal (punctul zecimal trebuie cadrat n mod obligatoriu de cifre). Fiecare din
termenii de mai jos sunt coreci i reprezint numere reale:
1.0
258.0752
-12.59432
2.0E7
+1.85e10 ,
6

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

n timp ce nici una din urmtoarele succesiuni de caractere


1.
12E3
12.3 E4
nu sunt corecte sintactic.
Numere ntregi ntr-o baz oarecare. Un numr ntreg ntr-o baz oarecare b se poate
reprezenta n Prolog scriind baza b urmat de un apostrof i cifrele numrului n baza respectiv. De
exemplu, succesiunea de caractere
21100100
este corect i reprezint reprezentarea n baza 2 a numrului 100. Acelai numr se poate
reprezenta n format hexazecimal (n baza 16) scriind 1664. Pentru o mai bun edificare, la
prompterul ?- al fereastra de dialog se pot introduce pe rnd comenzile:
X is 1664. <Enter> respectiv X is 201100100. <Enter>
i n ambele situaii interpretorul Prolog va rspunde prin X=100.
Trebuie evideniat aici un caz similar i anume atunci cnd n faa apostrofului apare cifra 0
(care evident nu poate fi baza unui sistem de numeraie), iar n locul cifrelor un caracter. n aceast
situaie secven 0<caracter> desemneaz codul ASCII al caracterului citat dup apostrof. De
exemplu termenul 0d desemneaz numrul ntreg 100, care este codul ASCII al caracterului d.
Atomii. Atomii sunt denumiri alfanumerice sau simbolice prin care programatorul poate
desemna obiecte, proprieti ale acestora, precum i diverse relaii stabilite ntre acestea. Lungimea
maxim a unui atom este de 255 de caractere. Exist patru tipuri de atomi: alfanumerici, simbolici,
de tip ir de caractere i atomi rezervai.
Atomi alfanumerici. Un atom alfanumeric este format dintr-o liter mic (a-z) urmat de o
secven format din zero sau mai multe litere (a-z, A-Z) sau cifre (0-9). Caracterele din jumtatea
superioar a tabelei ASCII sunt considerate litere mici. Utilizarea acestor caractere nu este ns
recomand din motivele deja menionate la descrierea alfabetului. Urmtorii termeni sunt coreci i
reprezint atomi alfanumerici:
mar
cristy
michael
bmw
a123
Atomi simbolici. Un atom simbolic este format dintr-o secven format din unul sau mai
multe din caracterele speciale enumerate mai jos:
#
$
&
=
^
~
\
@

;
/
+
*
?
<
>
sau din caractere din partea superioar a tabelei ASCII. Urmtorii termeni
&
&& +
++
<<
>>
->
<*/*
<$>
constituie exemple corecte de atomi simbolici.
Atomi de tip ir. Un atom de tip ir sau quoted atom este o succesiune de caractere
cuprins ntre apostrofuri. Dac se dorete inserarea unui apostrof n cadrul irului de caractere,
atunci apostroful se dubleaz.
Caracterul ~ (tilda) poate fi utilizat pentru definirea unor caractere speciale sau de control.
De exemplu termenul
~<Liter>
semnific caracterul <Ctrl> <Liter>, n timp ce termenul
~<Numr>
reprezint caracterul al crui cod ASCII este <Numr>, Numr {0,1,,255}.
Atomi rezervai. Atomii simbolici enumerai mai jos
!
;
[]
{}
=
:au o semnificaie prestabilit n cadrul limbajului i nu pot fi utilizai pentru denumirea unor entiti
utilizator.
irurile de caractere. Un ir de caractere este o succesiune de caractere cuprins ntre
apostrofuri invers nclinate (caracterul `). Dei irurile de caractere sunt considerate termeni simpli,
deci de tip atomic (vezi tabelul 1), acestea nu sunt considerate atomi i nu trebuie confundate cu
7

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

atomii quoted. Pentru a nu crea confuzii de acest tip, n cele ce urmeaz, pentru a desemna
termenii de acest tip se va utiliza termenul strig. Deosebirea dintre un termen de tip string i un
quoted atom const n primul rnd n modul intern de reprezentare al acestora. n plus, termenii de
tip string pot fi supui unor operaii proprii irurilor de caractere. Exist totui posibilitatea
(predicatul atom_string/2) de a se realiza conversia de la atom la tipul string i reciproc.
Termenii compui.
Un termen compus are urmtoarea sintax:
functor(t1,t2,, tn) ,
unde functor este un atom (de oricare din cele trei tipuri descrise mai sus), iar argumentele
t1,t2,,,tn sunt termeni, care pot fi simpli sau structurai la rndul lor. Functorul definete practic
modul de structurare al termenului respectiv. Avnd n vedere faptul c numrul de argumente al
functorului este variabil, iar gradul de imbricare este teoretic nelimitat, un termen compus poate
reprezenta practic orice structur relaional de date, indiferent de gradul de complexitate al
acesteia. n sintaxa imbricat a unui termen compus, functorul cel mai exterior este denumit functor
principal.
Un termen compus are urmtoarea sintax:
termen compus

functor

termen

,
Urmtoarele construcii sintactice reprezint exemple corecte de termeni compui:
a(b,c(d,e(f,g))) alfa(X,Y)
color(blue,yellow)
+++(<<,>>,ok).
Functorul cel mai exterior se numete functor principal.
Fiecrui termen i este asociat o aritate (numrul de argumente). Termenii simpli au
aritatea = 0, iar cei compui au aritatea 1.
Este a+b un termen Prolog? Da, +(a,b) este un termen Prolog de tip infix i aritate 2.
Structura descris de un termen compus poate fi ilustrat grafic prin reprezentarea acesteia
sub forma unui arbore. Astfel, functorul principal va reprezenta i eticheta rdcina arborelui, care
va avea un numr de descendeni egal cu aritatea (numrul de argumente) functorului respectiv,
fiecare dintre acetia corespunznd unuia din argumentele sale. Dac argumentul este un termen
simplu, nodul corespunztor va constitui o frunz a arborelui, iar n caz contrar functorul respectiv
va eticheta rdcina unui subarbore construit n maniera recursiv astfel definit. De exemplu,
primul dintre termenii citai mai sus se poate reprezenta printr-un arbore a crui mulime de noduri
este {a,b,c,d,e,f,g} i a crui mulime de muchii este {[a,b],[a,c],[c,d],[c,e],[e,f],[e,g]}, nodul a fiind
rdcina, iar b,d,f i g nodurile terminale sau frunzele arborelui respectiv.
Observaie. Un arbore este de fapt un graf neorientat, deci oricare dintre noduri poate fi considerat
rdcina arborelui. Totui, avnd n vedere situaia de fa nodul corespunztor functorului principal
va fi considerat rdcina arborelui.
Liste. O list este o secven format dintr-un numr oarecare de elemente. O list se poate
reprezenta n Prolog enumernd, ntre paranteze ptrate, elementele sale componente separate prin
virgul. De exemplu, urmtorii termeni sunt coreci i reprezint liste:
[a,b,c,d] [jerry] [1,2,3,4,5] [a,2,[1,2,3],a(b,c),d] []
Ultima dintre acestea constituie un caz particular i reprezint lista vid (lista fr nici un element).
Orice list este compus din cap i coad. Capul este primul element al listei, iar coada este lista
format din restul elementelor. De exemplu, prima din listele citate mai sus are capul a i coada
8

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

[b,c,d], iar cea de a doua are capul jerry i coada []. Lista vid nu se poate descompune n cap i
coad.
Listele sunt de fapt cazuri particulare de termeni compui i au o aplicabilitate deosebit n
limbajele de programare orientate spre calculul simbolic. Functorul care desemneaz o structur de
tip list este punctul, iar aritatea acestuia este 2. Primul argument este capul, iar cel de al doilea este
coada listei. De exemplu, lista [a,b,c,d] se poate reprezenta, n sintaxa standard Edinburgh Prolog,
prin termenul compus .(a,.(b,.(c,.(d,[])))). Atenie, nu se va lsa spaiu ntre punct i paranteza
deschis. De fapt acest mod de scriere corespunde modului intern de reprezentare al listei, aceasta
fiind de fapt un arbore binar. Dat fiind ns lizibilitatea destul de redus a acestei construcii
sintactice, limbajul Prolog accept reprezentarea sub form de enumerare a listelor, dar aceasta
reprezint doar un mod de reprezentare extern a acestora. Tot pentru a veni n ajutorul
programatorului o list se poate exprima i sub forma:
[cap | coad]
deci desprind printr-o bar vertical capul listei de coada acesteia. Totodat o list se poate descrie
i sub forma:
[element1,element2,elementn | coad],
dar avnd grij c dup simbolul | trebuie scris o list i nu un element. De exemplu, fiecare din
termeni de mai jos este corect i reprezint aceeai list [a,b,c,d]:
[a|[a,b,c,d]] [a,b|[c,d]]
[a,b,c|[d]] [a,b,c,d|[]]
[a|[b|[c|[d]]]] [a,b|[c|[d]]] [a,b,c|[d|[]]]
Observaie. Modalitile diverse de reprezentare a listelor permit, graie mecanismului de unificare,
extragerea i/sau identificarea elementelor componente ale unei liste.
Liste de octei. O list de octei este o succesiune de caractere de orice tip cuprins ntre
ghilimele. Structura de date astfel definit const n lista codurilor ASCII ale caracterelor care
compun irul. Pentru a insera caracterul n cadrul unei liste acesta se dubleaz. De exemplu
termenul:
Aceasta este o lista
este corect i reprezint lista
[65,99,101,97,115,116,97,32,101,115,116,101,32,111,32,108,105,115,116,97].
Ca i n cazul atomilor de tip quoted, caracterul ~(tilda) poate fi utilizat pentru definirea unor
caractere speciale, de exemplu termenul ~G reprezint lista [7].
Observaie. Listele de octei nu trebuie confundate cu irurile de caractere sau cu atomii de tip
quote, dat fiind faptul c acestea difer sintactic doar prin tipul de apostrofuri utilizate ( `
respectiv ) pentru ncadrarea succesiunii de caractere care le compun. Dei modul de reprezentare,
structurile de date aferente i modul de operare cu aceste structuri sunt diferite, limbajul LPA Prolog
dispune ns de predicate specifice care permit conversia ntre oricare din cele trei tipuri (quoted
atomi, iruri de caractere, liste de octei).
Tipul termenului
variabil
atomi alfanumerici
atomi simbolici
quoted atomi
numere
ntregi
number/1
reale
iruri de caractere

termeni
simpli
simple/1

atomic
atomic/1

termeni
compui

termen compus functor(t1,t2,, tn)


(n particular liste, liste de octei)

Tabelul 1. Termenii limbajului Prolog


predicat /aritate
var /1, nonvar /1
atom /1
atom /1
atom /1
integer /1
float /1
string /1
compound /1

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

2.3. Structura unui program PROLOG


Enunurile care intr n componena unui program LPA Prolog pot fi de unul din urmtoarele
tipuri:
clauze;
reguli de rescriere;
comenzi;
dintre care numai primele sunt obligatorii, ultimele dou tipuri de enunuri fiind opionale.
Regulile de rescriere permit programatorului definirea unui limbaj propriu prin definirea
regulilor de rescriere prin care pot fi generate frazele limbajului respectiv. Cu alte cuvinte, aceste
reguli nu sunt altceva dect produciile unei gramatici independente de context (concept definit de
N. Chomsky), utilizat pentru generarea limbajului ce se dorete a fi definit. Odat ce un astfel de
limbaj (gramatic) a fost definit (definit), programatorul poate testa dac un anumit enun aparine
sau nu limbajului respectiv. Aceste aspecte vor fi reluate i dezvoltate ntr-unul din capitolele
urmtoare.
O comand este aproape identic cu o formul de interogare, singura deosebire constnd n
faptul c aceasta are ca prefix simbolul :- (dou puncte liniu). Prin urmare, formatul unei comenzi
este:
:- predicat1, predicat2, ,predicatn .
(k1)
Denumirea de comand provine de la faptul c termenii executabili din componena acesteia sunt
executai n mod automat la fiecare (re)ncrcare a programului surs care incorporeaz respectiva
comand De exemplu, dac ntr-un program se insereaz comanda:
:- write(Hello !), nl.
acesta ne va adresa un salut la fiecare ncrcare a sa.

Clauzele limbajului.
Clauzele sunt enunurile sau crmizile din care se compun programele Prolog. Altfel
spus, clauza este cel mai mic enun compilabil. Clauzele sunt de dou tipuri: fapte i reguli.
Un fapt este de forma:
antet.
unde, din punct de vedere sintactic, antet este un atom sau un termen compus, al crui functor
trebuie s fie diferit simbolul :- sau =. Sintactic, un fapt se termin prin punct, ce trebuie urmat
obligatoriu de spaiu sau de terminatorul de sfrit de linie.
Un fapt are sintaxa unui termen i reprezint un predicat, care poate fi de aritate 0 sau orice aritate
fapt

predicat/0

predicat/1

, termen

,
1.
ntr-un limbaj Prolog, orice functor principal reprezint un predicat. Argumentele oricrui
predicat, dac exist, sunt termeni i nu pot fi alte predicate; de aceea, limbajul se numete de
ordinul I.
O regul este de forma:
10

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

antet :- t1, t2,,tk.


(1)
unde antet constituie capul sau concluzia regulii i apare n partea stng a simbolului :-, iar t1,
t2,,tk, k1 constituie premisele regulii. Fiecare tk este un predicat sau un termen executabil
denumit n limba englez call term sau goal. Regula este terminat printr-un punct urmat de
spaiu sau terminatorul de sfrit de linie. Intuitiv, un termen este denumit executabil dac
regul

:-

predicat

antet

predicat
,

Conjuncie

Disjuncie

corpul regulii
consistena sau valoarea de adevr a acestuia poate fi dedus din contextul clauzelor programului
Prolog. Din punct de vedere al logicii matematice, regula (1) este echivalent cu implicaia (virgula
are semnificaia de conjuncie logic, iar simbolul :- de implicaie invers):
antet t1 t2 tk ,

(2)

deci inferarea concluziei antet se poate face dac, pentru un anumit mod de instaniere a
variabilelor din componena acestora, premisele t1, t2,,tk. pot
simultan satisfcute.
Pentru a nelege noiunea de termen executabil sau goal trebuie plecat de la premisa c ntrun program Prolog orice functor principal este un simbol predicativ (predicat) i are n consecin o
valoare de adevr.
Dac n logica matematic scriem abc, adic ab, scriem ac, n Prolog se obine: a :- b; c.
Mulimea acestor clauze poart denumirea de Program.
Definirea unui fapt de forma:
fapt(a1,,ak).
presupune specificarea (asertarea) faptului c predicatul fapt(a1,,ak) este adevrat. Astfel faptele
permit declararea unor piese de cunoatere presupuse adevrate (date, ipoteze), iar regulile
specificarea unor reguli de inferen (axiome, teoreme) prin care pot fi deduse noi fapte sau piese de
cunoatere.

2.4. Aspectul declarativ i procedural al programelor Prolog


Caracteristica principal a limbajului Prolog const n faptul c este un limbaj declarativ,
spre deosebire de cele procedurale (limbaje specializate n descrierea procedural a rezolvrii unei
probleme).
2.4.1. Aspectul declarativ
Operaia principal care se poate executa asupra termenilor limbajului Prolog este
UNIFICAREA. Doi termeni S i T ai limbajului sunt unifiabili dac:
cei doi termeni sunt identici, ST;
substituia astfel nct ST.
Exemplu: T = data(ziua, aprilie, A); S = data(Z, Luna, 2001);
= {ziua = 1, Z=1, Luna=aprilie, A=2001}.
ST = data(1, aprilie, 2001).
cmgu({S, T}) = {ziua=Z, Luna=aprilie, A=2001}.
11

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

Regulile conform crora doi termeni doi termeni sunt unifiabili


1) dac S i T reprezint dou constante, atunci acestea sunt unifiabile numai dac sunt
identice;
2) dac unul din termeni este o variabil liber, atunci aceasta poate fi unificat cu orice
termen (simplu sau compus);
3) dac ambii termeni sunt variabile libere, unificarea se realizeaz prin legarea celor dou
variabile. Dei cele dou variabile nu sunt instaniate (iniializate), ele se comport ca i
cum ar reprezenta o variabil unic; ca urmare, orice instaniere a uneia dintre variabile
atrage dup sine i instanierea celeilalte cu aceeai valoare.
4) doi termeni compui sunt unifiabili dac sunt ndeplinite urmtoarele condiii:
au acelai functor i aceeai aritate;
argumentele de pe poziiile corespunztoare sunt unifiabile ntre ele.
Un program Prolog este o secven de clauze:
P :- Q, R.
P consecina logic a lui Q i R;
Pentru a demonstra P se demonstreaz mai nti Q, iar apoi se demonstreaz R. Programul
Prolog poate fi interogat prin precizarea unei clauze obiectiv (goal):
(G): G1, G2 ... Gn pentru ce valori ale variabilelor, predicatele G1, G2 ... Gn sunt adevrate
(simultan)? Sau, n ce condiii G este o consecin logic a formulelor din program? Pentru ce
valori ale variabilelor G este adevrat (satisfiabil)?
Definiia 1. Fie P = {C1, C2, , Cn} un program Prolog i Q o form predicativ. Q este o
consecin logic a lui P sau Q este adevrat dac sunt ndeplinite urmtoarele condiii:
1) o instan I a unei clauze din P al crei antet este unifiabil cu Q: CP i substituia
astfel nct Q = antet(C);
2) Toate predicatele din corpul regulii C (dac exist) sunt adevrate (satisfiabile).
OBS. Un fapt poate fi privit ca o regul avnt drept antet predicatul respectiv i al crei corp
este clauza vid.
Dac formula Q conine variabile Q=Q(x1, x2, ..., xn), valorile variabilelor pentru care
formula Q este adevrat sunt (x1), (x2), ...,(xn).
2.4.2. Aspectul procedural
Fie P = {C1, C2, , Cn} un program Prolog i Q o form predicativ. Q este o consecin
logic a lui P sau este satisfiabil din P dac:
astfel nct P Q.
Formula Q se numete obiectiv (goal).
Interpretorul limbajului Prolog are urmtorul mod de lucru:
Program
PROLOG P

Goal

Interpretor
PROLOG
Inference engine

Indicator = yes + substituia Q


astfel nct P Q (dac Q
conine variabile)
Indicator = no (Q nu este o consecin
logic sau nu este deductibil din P)
P Q .

Indicatorul yes nseamn c exist o substituie astfel nct din P este deductibil Q (P
Q), adic o instan a lui Q este deductibil din P, deci Q este o consecin logic a mulimii P.
12

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

Indicatorul no nseamn c din P nu este deductibil Q (P

Q), adic Q nu este o

consecin logic a mulimii P.


n cazul rspunsului yes mecanismul inferenial returneaz substituia .
Variabilele instaniate (iniializate) pot fi privite ca parametrii de intrare ai procedurii libere,
iar variabilele libere ca parametri de ieire ai procedurii, parametri ce vor fi instaniai cu valorile
corespunztoare de interpretorul Prolog .
Mulimea clauzelor unui program care corespund unui aceluiai predicat poart numele de
procedur. Aceste proceduri sunt mult mai flexibile dect cele din limbajele de programare. O
procedur Prolog poate fi aplicat n mai multe moduri (flow pattern), programatorul putnd inversa
parametrii de intrare cu cei de ieire.
Exemplu: Predicatul p/2 {(i,i), (i,o), (o,i), (o,o)} i input; o output.
prieten(marius, ion).
:? prieten(Cine, Cui). % (o,o)
:? prieten (Cine, ion). % (o,i) Cine=maria
:? prieten (maria, Cui). % (i,o) Cui=ion
:? prieten (maria, ion). % (i,i) yes
Fiecare predicat executabil poate fi considerat ca o procedur, n sensul cunoscut din
programarea clasic. O procedur mai returneaz i acel indicator de rspuns ( yes sau no).
Dup ce un program Prolog a fost editat i compilat, utilizatorul poate introduce n fereastra
de dialog diverse formule de interogare a sistemului. O formul de interogare, denumit goal n
terminologia englez, este de forma:
p1,p2, , p n.
(n1)
unde p1,p2,,pn sunt termeni executabili, iar virgula are semnificaia de conjuncie logic. O
formul de interogare poate fi de dou feluri:
determinit: nu conine variabile libere, rspunsul sistemului la o astfel de formul fiind yes sau
no, dup cum formula respectiv este sau nu o consecin logic a clauzelor din
program;
nedeterminist: conine una sau mai multe variabile libere, sistemul determinnd prin backtracking
toate instanierile posibile ale variabilelor pentru care respectiva formul este o
consecin logic a clauzelor din program.
Exemplu: place (ion, X) :- are_zestre(X), frumoas (X).
are_zestre(X) :- bogat(Y), fata (X, Y).
:? place (ion, Fata). %(i, o)
Remarca 1: De fiecare dat cnd are de satisfcut un goal introdus n fereastra de interogare
sau din corpul unei reguli, interpretorul Prolog ncepe scanarea tuturor clauzelor din program
ncepnd cu prima dintre acestea, n vederea gsirii unei clauze al crei antet este unifiabil cu goalul curent.
{place(ion, X), place(ion, Fata)} cmgu {Fata=X}.
Remarca 2: Dac un goal a fost unificat cu antetul unei reguli, se trece la demonstrarea
predicatelor (subgoal-urilor) din corpul regulii respective. ncercarea de a satisface aceste fapte se
face n ordinea n care acestea apar n corpul regulii. Astfel, se trece la a demonstra bogata (Y)
devine goal curent.
Remarca 3: Dac un predicat din corpul unei reguli a fost demonstrat, se trece la
demonstrarea predicatului urmtor; n caz contrar, se revine la ultimul punct de breakpoint aflat n
program. Goal-ul curent devine fata(X, veta).
Cnd mai multe clauze din program sunt unifiabile cu goal-ul curent, interpretorul plaseaz
un punct de breakpoint pe urmtoarea clauz unifiabil din program.
13

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

fata(X, veta)
fata(geta, veta), C = {X=geta}
= C = {Fata=X=geta, Y=veta}
frumoasa(geta).
Remarca 4: Cnd un goal este dovedit inconsistent, se revine prin backtracking la ultimul
punct de breakpoint plasat n program. O dat cu revenirea la ultimul punct de breakpoint, se
elibereaz toate variabilele instaniate dup plasarea n program a respectivului punct de
breakpoint. Variabila X este eliberat (dezlegat de valoarea geta).
Revenindu-se la punctul de breakpoint, variabila X este instaniat din nou cu valoarea
maria. n acest caz, goal-ul frumoasa (maria) poate fi demonstrat i Prolog, innd cont de
substituia curent, rspunde Fata=maria.
Urmtoarele 2 caracteristici exprim o particularitate relevat a limbajului P rolog:
Singura modalitate de instaniere a unei variabile este procedura de unificare
(programatorul nu poate atribui o valoare unei anumite variabile).
Variabilele pot fi eliberate numai prin mecanismul de backtracking al interpretorului
Prolog.
n Prolog, simbolul = este un operator infix care face apel la procedura de unificare; n
urma unificrii variabilelor din cei doi termeni, instanierea se realizeaz dac X este liber.
X=1+2 are drept efect instanierea lui X cu expresia 1+2 dac X este liber: ={X=1+2}.
X=1 are ca efect instanierea variabilei X = 1, dac X este liber. ={X=1}.
X=1, X=X+1: ={X=1} 1=1+1 inconsistent => fail, (1+1).
Exemple BAF i CAF:
prezent(alina). prezent(georgiana). prezent(elena). prezent(mircea). pr ezent(dan).
lista:prezent(X), write(X), nl, fail.
lista. % BAF(Backtracking After Fail)
lista:prezent(X), write(X), nl, X=dan, !. % CAF(Backtracking After Fail)
Precizare: O formul de interogare Q trebuie privit ca un apel la mecanismul inferenial al
interpretorului (demonstratorul) Prolog, care genereaz soluiile luiQ.

2.5. Liste. Prelucrarea listelor


2.5.1. Listele Prolog
O list este o colecie de zero sau mai multe obiecte. Lista fr nici un obiect se numete
vid i se reprezint prin []. Celelalte liste sunt formate din:
cap, primul element;
coada, lista celorlalte elemente, n particular lista vid.
OBS: Lista vid [] nu se poate descompune n cap i coad.
n Prolog o list se reprezint printr-un termen compus. Orice termen poate fi reprezentat printr-un
arbore. Fie termenul compus:
functor(termen 1, termen 2, ..., termen n).
rdcina arborelui este etichetat cu functorul principal al termenului ( functor).
fiecrui nod etichetat cu un termen compus (rdcin) i corespunde un numr de
descendeni egal cu aritatea termenului respectiv. Aceti descendeni vor fi etichetai cu
argumentele termenului respectiv.
nodurile care corespund unor termeni simpli (atomici) sunt noduri finale.
Listele fac excepie de la aceast regul, fiind reprezentate prin functorul . de aritate 2 (cap i
coad).
Exemplu: [1, 2, a, b, evrika, 29]
14

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

. (1, . (2, . (a, . (b, . (evrika, . (29))))))


S se descrie arborele asociat listei de mai sus!
Exemplu de list: [1, 2, a, b | [evrika | [29]]]. Termenul amplasat dup simbolul | trebuie s
fie o list.

2.6. Operatori
Dat fiind faptul c limbajul Prolog este orientat mai degrab n vederea efecturii calculelor
simbolice dect numerice, operatorii trebuie privii ca un mod aparte de reprezentare a termenilor
compui de aritate unu sau doi. Deci un operator nu semnific de regul efectuarea unei operaii, ci
indic mai degrab modul de agregare a operanzilor n cadrul structurii desemnat de acel operator.
Exist totui i o serie de operatori prin care programatorul poate fora la nevoie evaluarea unei
expresii. Spre deosebire de sintaxa standard a unui termen compus, situaie n care functorul precede
paranteza ce conine lista argumentelor sale, operatorii permit scrierea termenilor de aritate 1 sau 2
ntr-o nou sintax, care ntr-un anumit context poate fi mult mai agreabil.
Operaii cu termeni. Orice operator care constituie functorul principal al unui termen
compus are o semnificaie predicativ i are n consecin o valoare de adevr. n funcie de rolul i
semnificaia acestora, operatorii utilizabili la formarea expresiilor Prolog se pot mpri n
urmtoarele patru categorii precizate mai jos.
Operatorul de unificare. Cea mai important operaie pe mulimea termenilor este
unificarea (de fapt aceasta este operaia de baz a limbajului Prolog). Se tie c doi termeni t1 i t2 se
numesc unifiabili dac exist o substituie astfel nct termenii (t1) i (t2)s devin identici.
Operaia de unificare este desemnat prin operatorul infix =. Termenul executabil t1=t2 este de fapt
un apel la rutina de unificare a interpretorului Prolog. Dac cei doi termeni sunt unifiabili, atunci
predicatul t1=t2 este satisfcut i variabilele libere din cei doi termeni sunt substituite prin valorile
lor corespunztoare din cmgu(t1,t2). n caz contrar, termenul t1=t2 este inconsistent, iar variabilele
din componena acestora rmn nemodificate.
Se poate testa dac doi termeni t1=t2 sunt unifiabili i fr a produce instanieri ale
variabilelor prin apelarea predicatului predefinit unifiable(t1,t2).
Operatorul \= este complementul operatorului =. Astfel t1\=t2 este adevrat dac t1 i t2 sunt
neunifiabili i este fals cnd t1 i t2 sunt unifiabili.
Operatori de comparaie lexicografic. Operatorul == (dou semne de egalitate) permite
compararea lexicografic a doi termeni. Termenul (predicatul) t1==t2 este valid dac cei doi
termeni t1 i t2 sunt lexicografic identici. De exemplu, termenul a+b==b+a este inconsistent,
deoarece termenii a+b i b+a nu sunt identici, n schimb predicatul a+b==a+b este valid.
Operatorul \== (back slash i dou semne de egalitate) este negaia operatorului precedent. Astfel,
predicatul a+b\==b+a este adevrat, n timp ce predicatul a+b\==a+b este fals. Operatorii din
aceast categorie nu produc instanieri ale variabilelor.
Operatorul de evaluare. Dup cum s-a precizat mai sus, limbajul Prolog este orientat pentru
efectuarea calculului simbolic, operatorii fiind utilizai mai degrab pentru reprezentarea unor
structuri. Evident, sfera de utilizare a limbajului ar fi puternic diminuat, dac acesta nu ar permitea
efectuarea unor calcule matematice. Dar, aceste calcule se fac numai la cererea expres a
programatorului. De exemplu, dac X este o variabil liber, termenul executabil X = 1+2 are ca
efect instanierea variabilei X cu valoarea (termenul) 1+2 (ceea ce era de ateptat ntruct 1+2 este
substituia de unificare a celor doi termeni ai operatorului =). Operatorul prin care programatorul
poate cere n mod expres evaluarea unei expresii este desemnat prin atomul rezervat is. n partea
stng a operatorului is trebuie s apar n mod obligatoriu o variabil (liber sau nu), iar n partea
dreapta o expresie algebric, ale crei variabile (dac exist) s fie iniializate cu valori numerice.
Astfel, dac X este o variabil liber, apelul termenului X=1+2 va avea ca efect instanierea
variabilei X cu valoarea 3. Trebuie menionat faptul c un termen executabil de forma:
X is <Expresie> ,
nu trebuie confundat cu o instruciune de atribuire. De fapt, dei pare oarecum ocant, limbajul
15

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

Prolog nu are instruciune de atribuire !. Mai mult, un predicat de forma:


X is X+1 ,
este inconsistent, deoarece variabila X din membrul drept trebuie s fie instaniat i, indiferent de
valoarea acesteia, aceasta nu poate fi nici cum egal cu X+1.
Dup cum s-a menionat anterior, n Prolog unificarea este singurul mod de instaniere a
unei variabile, dup cum mecanismul de backtracking este singurul mod posibil de eliberare al
acesteia.
Operatori relaionali. Limbajul Prolog conine urmtorii operatorii relaionali, ce pot fi
utilizai pentru comparaia numeric a dou expresii. Toate variabilele cuprinse n cele dou
expresii trebuie s fie instaniate n momentul apelului termenului respectiv.
E1=:=E2
egalitate
E1=\=E2
neegalitate
E1<E2
mai mic
E1=<E2
mai mic sau egal
E1>E2
mai mare
E1>=E2
mai mare sau egal
Fiecare din termenii de mai sus produce evaluarea numeric a expresiilor algebrice E1 i E2,
valoarea de adevr a termenilor de mai sus fiind calculat ca n orice alt limbaj de programare.
Operatorii relaionali nu produc instanieri ale variabilelor din cele dou expresii.
Observaie. Operatorii mai mic sau egal i mai mare sau egal trebuie scrii n maniera ilustrat mai
sus, scrierile <= respectiv => nefiind acceptate de compilatorul Prolog.

2.7. Controlul backtraking-ului n limbajul Prolog


Exist dou procedee prin care programatorul poate interveni n funcionarea procedurii de
backtraking:
apel predicat nedeterminist
p(X)

p(a1)

p(a2)

p(an)

corpul ciclului
q1(X), q2(X), , q n(X)

apel predicat
C(X)

Da

fail

C(X)

Mai breakpoints
sau variante
nencercate ale lui
p(X)

Nu

16

fail

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

predicatul fail (predicat inconsistent), are drept efect forarea mecanismului de breaktraking
pentru revenirea n ultimul breakpoint plasat n program;
predicatul cut (predicatul !) este consistent (valid) i are drept efect suprimarea punctelor de
breakpoint plasate de predicatele precedente acestuia din corpul regulii n care acesta se
gsete sau a breakpoints corespunztoare unor clauze ale predicatului ce constituie antetul
regulii.

Exemple:
1) % max/3
a) max(A,B,A):- A>=B.
max(A,B,B):- B>A.
b) max(A,B,A):- A>=B, !.
max(A,B,B):- B>A.
c) max(A,B,A):- A>=B, !.
max(A,B,B).

2)

a:-b,c,!,d,e.
a:-f,g.
h:-k,l,a,m.

Prelucrarea listelor
3) Membru al unei liste
member(X,L), X element, L list.
{(i,i), (o,i)}: determinist (i,i) sau nedeterminist (o,i).
Implementarea se face innd cont c un element aparine unei liste dac:
o este un element al capului listei;
o face parte din coada listei respective.
member(X, [X|_]).
member(X, [_|T]):- member(X, T).
:? member(b, [a, b,c]). %(i, i) yes
:? member(X, [a, b,c]). %(o, i) X=a; X=b
; X=c.
4) Adugarea unui element la list dat
L

E
add(E, L, [E|L])

5) Concatenarea a dou liste


L1

L2
concat(L1, L2, L)

L1

L2

concat([], L, L).
concat([H|T], L2, [H|T 2]):- concat(T, L2, T 2).
6) tergerea uni element al unei liste
del(X, L, L 1).
Prin tergerea unui element X din lista L se obine lista L 1.
del(X, [X|T], T).
del(X, [H|T], [H|T1]):- del(X, T, T 1).
:? del(b, [a,b,c,b,d],L).
L=[a,c,b,d]
L=[a,b,c,d]
7) Inserarea unui element ntr-o list
17

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

insert(X, L, L 1):- del(X, L1, L).


8) Permutarea elementelor unei liste perm (L, L 1)
perm([], []).
perm([H|T], L):- perm(T, T 1), insert(H, T1, L).
9) Numrarea elementelor unei liste count(L, N)
count([], 0).
count([H|T], N):- count(T,M), N is M+1.
sau
count([], N, N).
count([_|T], Numar, N):NouNumar is Numar+1, count(T,NouNUmar, N).
Numar se va initializa cu zero.
:? count([1,2,3,4,5], 0, Cate).
Cate=5
count(L, N):-count(L,0,N).
:? count([1,2,3,4,5], Cate). Cate=5.

REZUMAT
Limbajul LPA Prolog reprezint un instrument simplu i eficient de abordare a problemelor
specifice de Inteligen artificial. Aceste caracteristici sunt conferite de urmtoarele aspecte
principale ale limbajul Prolog:
1) Sintax simpl.
2) Un program Prolog reprezint, n general, o colecie de clauze (fapte i reguli) care descriu
problema (prin reprezentarea cunotinelor), fr a fi necesar descrierea algoritmului de
rezolvare!
3) Orice clauz are o valoare de adevr (fals sau adevrat), purtnd i denumirea de predicat.
4) Nu exist instruciunea de atribuire! O variabil primete valori numai prin instaniere,
generat de mecanismul de UNIFICARE.
5) Variabilele pot fi eliberate de valori numai prin mecanismul de BACKTRACKING al
interpretorului Prolog. Prin backtracking se revine la punctele de ntrerupere din program i
astfel noi substituii sunt automat testate.

PROBLEME PROPUSE
Problema 1: Descrierea relaiilor din filmul Santa Barbara
Pornind de la intriga i personajele din binecunoscutul film Santa Barbara, s se scrie un
program Prolog care s corespund etapelor precizate mai jos.
1. S se descrie urmtoarele fapte prin clauze Prolog
18

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

predicat: femeie(persoan)
Pamela este femeie.
Sophia este femeie.
Minx este femeie.
Augusta este femeie.
Julia este femeie.
Santana este femeie.
Kelly este femeie.
Eden este femeie.
Laken este femeie.
Rosa este femeie.
predicat: mama(mama, fiica/fiu)
Sophia este mama lui Eden.
Sophia este mama lui Ted.
Sophia este mama lui Brick.
Sophia este mama lui Kelly.
Augusta este mama lui Warren.
Augusta este mama lui Laken.
Minx este mama lui Lionel.
Rosa este mama lui Santana.
Santana este mama lui Brandon.

predicat: barbat(persoan)
CC este barbat.
Mason este barbat.
Lionel este barbat.
Cruz este barbat.
Ted este barbat.
Brick este barbat.
Brandon este barbat.
Warren este barbat.

predicat: tata(tata, fiica/fiu)


CC este tatl lui Mason.
CC este tatl lui Eden.
CC este tatl lui Ted.
Lionel este tatl lui Brick.
Lionel este tatl lui Laken.
Lionel este tatl lui Warren.

2. Descriei urmtoarele reguli prin clauze Prolog


Predicat

Antet

parinte(parinte, copil)

parinte(X, Y)

tata(tata)
mama(mama)
parinte(parinte)
bunica(bunica, nepot)

tata(X)
mama(X)
parinte(X)
bunica(X, Y)

bunic(bunic, nepot)

bunic(X, Y)

sora(persoan,
persoan)

sister(X, Y)

frate(persoan,
persoan)

frate(X, Y)

Descrierea (corpul) regulii


if X este mama lui Y sau
if X este tatl lui Y.
if X este tatl cuiva ( _).
if X este mama cuiva.
if X este parintele cuiva.
if X mam lui Z i Z este printele lui Y.
if X este tatl lui Z i Z este printele lui
Y.
if X este femeie, M este mama lui X i M
este mama lui Y, X<>Y, T este tatl lui X
i T este tatl lui Y.
if X este brbat, M este mama lui X i M
este mama lui Y, X<>Y, T este tatl lui X
i T este tatl lui Y.

3. Lansai programul n execuie (Comanda Run Compile) i chestionai rezolver-ul Prolog:


Natural language question
Este Kelly femeie?
Este Eden barbat?
Cine este femeie?
Cine este mama lui Eden?
Cine este tatl lui Kelly?
Este CC tatl lui Mason?
Al cui tat este CC?
A cui mama este Sophia?
Al cui frate este Mason?

Prolog goal
?:- femeie(kelly).

19

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

Cine este bunica lui Brandon?


Este Brandon tatl lui Kelly?
Cine este bunic?
Este CC tatl lui Brandon?
Problema 2: Podurile din Knigsberg
Grafurile constituie un instrument practic i eficient de reprezentare a obiectelor i a
relaiilor dintre acestea. Teoria grafurilor a fost introdus la nceputul secolului al XVIII-lea de
matematicianul austriac Leonhard Euler n vederea soluionrii celebrei probleme cunoscut sub
numele de podurile din Knigsberg. Knigsberg este un orel austriac aezat pe ambele maluri
ale rului Pregel, ru care formeaz dou insule. Malurile i cele dou insule sunt conectate prin
sistemul de poduri ilustrat n figura 1a. Problema, care a frmntat multe persoane pn la Euler,
este urmtoarea: poate un cltor s parcurg ntregul orel, trecnd pe fiecare pod, fr s
parcurg un pod de dou ori ?
m1

.
p5

p4

p3

p2

i1

p1

i2

p4

p3

Pregel

p1

i1

i2

p6

p7

p6

m1

p2

p5

p7

m2

m2
a) Oraul Knigsberg.

b) graful asociat

Muli au ncercat s gseasc o soluie, ns fr succes. Euler este acela care a demonstrat
matematic c problema nu are soluie!, imaginnd grafurile pentru reprezentarea problemei
(fig. 1b). Problema
de mai sus, cunoscut sub numele de lan eulerian ntr-un graf, nu mai pune
`
azi nici un fel de probleme, cunoscndu-se faptul c un astfel de drum exist dac numrul
nodurilor de conectivitate impar este 0 sau 2. Problema este cunoscut i sub denumirea de lan
(drum) hamiltonian, Hamilton aducndu-i contribuia la stabilirea unor algoritmi pentru generarea
acestor drumuri. Mai mult, se tie c ntr-un graf exist un circuit eulerian dac i numai dac graful
este conex i pseudosimetric. Un graf este pseudosimetric dac din fiecare vrf pleac attea arce
cte intr n vrful respectiv.
Revenind la problema podurilor din Knigsberg, baza de cunotine se poate reprezenta
utiliznd un predicat denumit leaga i utiliznd dou astfel de predicate pentru fiecare pod:
leaga(i1,i2,p1).
leaga(i2,i1,p1).
leaga(m1,i1,p2). leaga(i1,m1,p2). leaga(m1,i1,p3). leaga(i1,m1,p3).
leaga(m1,i2,p4). leaga(i2,m1,p4). leaga(m2,i1,p5). leaga(i1,m2,p5).
leaga(m2,i1,p6). leaga(i1,m2,p6). leaga(m2,i2,p7). leaga(i2,m2,p7).
unde, s-a notat prin: i1, i2 - cele dou insule; m1, m2 - cele dou maluri ale rului; p1,p2,p3,p4,p5,p6,p7 cele apte poduri.
Considernd dif(p,q) predicatul care exprim faptul p i q reprezint dou poduri diferite, n
limbajul de calcul al predicatelor, existena unui drum eulerian s-ar putea reprezenta prin expresia
urmtoare:
X1( X2( X3( X4( X5( X6( X7(
leaga(X1,X2,P1)leaga(X2,X3,P2)leaga(X3,X4,P3)leaga(X4,X5,P4)
leaga(X5,X6,P5)leaga(X6,X7,P6)leaga(X7,X8,P7)dif(P1,P2)dif(P1,P3)dif(P1,P4)
dif(P1,P5)dif(P1,P6)dif(P1,P7)dif(P2,P3)dif(P2,P4)dif(P2,P5)
dif(P2,P6)dif(P2,P7)dif(P3,P4)dif(P3,P5)dif(P3,P6)dif(P3,P7)
dif(P4,P5)dif(P4,P6)dif(P4,P7) dif(P5,P6)dif(P5,P7)dif(P6,P7)
) ) ) ) ) ) ) exista_lant_eulerian.
20

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

Domeniul variabilelor: X1..X7 {i1, i2, m1, m2}.


Fr a avea pretenia c este cea mai simpl forma de soluionare a problemei, dac un astfel
de drum exist, predicatul: exista_lant_eulerian va avea valoarea true.

TEST DE AUTOEVALUARE
1. Care este principalul separator al
termenilor limbajului:
a. ! (semnul exclamrii).
b. , (virgula) .
c. ; (punct si virgula).
2. Terminarea unui enun Prolog se
realizeaz prin caracterul:
a. Punct (.) .
b. Spaiu.
c. Punct i virgula.
3. Inserarea unui comentariu pe mai
multe rnduri se face ncadrnd
textul respectiv ntre:
a. Paranteze ().
b. Delimitatori /* si */ .
c. Ghilimele ( .
4. O variabil ncepe obligatoriu cu o
majuscula sau cu caracterul:
a. .
b. */*.
c. _ .
5. Un quated atom se definete ca
fiind:
a. succesiune de caractere
cuprinsa intre apostrofuri.
b. succesiune de cifre cuprinse
ntre paranteze.
c. succesiune
de
termeni
separai prin virgula unul de
cellalt.
6. Care din urmtoarele forme
definete sintaxa unui termen
compus:
a. xy = yx.
b. functor(t 1, t2, , t n) .
c. functor(!).
7. Clauza de tip fapt este de forma:
a. fapt(V 1, V 2, , V n).
b. antet.
c. antett1t2.
8. Clauza de tip regula are forma:
a. antet:-t1,t2, , t k .
b. functor(t 1,t2, , t k).
c. /* regula */.
21

9. Predicatul = se numete:
a. instaniere.
b. unificare.
c. backtracking.
10. Functorul unei liste este caracterul:
a. Virgul.
b. Dolar.
c. Punct.
11. Predicatul fail este un predicat:
a. Consistent.
b. Inconsistent.
c. Valid.
12. Predicatul cut are ca efect
suprimarea punctelor de:
a. Breaktracking.
b. Breakpoint.
c. Breaktrace.
13. Caracterul % are rolul de:
a. Comentariu pn la sfrit
de linie.
b. Calcul n procente.
c. Salt la sfritul clauzei.
14. Construcia [a,b,c,d] reprezint:
a. Un set de date.
b. O list.
c. O mulime.
15. Predicatul condiional IF este
descris sintactic prin secvena:
a. -:-.
b. :-:.
c. :-.
Rspuns
1. b
2. a
3. b
4. c
5. a

6. b
7. b
8. a
9. b
10. c

11. b
12. b
13. a
14. b
15. c

Inteligena Artificial

Cap. 2 : Limbajul LPAProlog

22

Inteligen Artificial

Cap.3. Limbaje de ordinul I

Cap. 3
Limbaje de ordinul I
Obiective
1.
2.
3.
4.

nsuirea noiunilor de baz privind limbajul de calcul propoziional.


Reprezentarea cunoaterii n limbaj de calcul propoziional.
Metode de demonstrare a teoremelor n limbajul de calcul propozi ional
Dezvoltarea abilitilor practice de operare cu elemente de calcul propoziional.

Durata: 2 ore
3.1. Limbajul de calcul propoziional
3.1.1. Sintaxa i semantica calculului propoziional
Calculul propoziional a fost definit de Whitehead i Rusell (1910) n celebra carte Principia
Mathematica. Importana matematic a calculului propoziional este deosebit, acesta stnd la baza
definirii oricrui sistem logic formal. Calculul propoziional modern se bazeaz pe dezvoltrile i
modernizrile aduse ulterior de Hilbert i Ackermann.
3.1.1.1. Vocabularul limbajului de calcul propoziional
Vocabularul limbajului este format din urmtoarele categorii de simboluri:
- Variabilele propoziionale notate prin simbolurile a, b, c,,a1, b1, c1, . Mulimea variabilelor
propoziionale (propoziiilor) se noteaz n cele ce urmeaz cu V;
- Conectivele logice (conjuncie), (disjuncie) i (negaie);
- Parantezele rotunde ( i );
3.1.1.2. Sintaxa calculului propoziional
Definiia 1.
Mulimea formulelor (enunurilor sintactic corecte) ale calculului propoziional, mulime notat
cu P, se definete recursiv prin urmtoarele reguli:
1) simbolurile propoziionale aparin lui P:

x V x
2) dac a, bP atunci ab, ab, a, (a)P;
3) o combinaie de simboluri din V aparine lui P dac i numai dac ea se obine prin aplicarea
de un numr finit de ori a regulilor 1) i 2).
Se consider algebra (B2,,,) unde B2={0,1} i, pentru orice x, yB2, operaiile , i sunt
definite de relaiile:
xy=min{x, y}=xy;
(1)
xy=max{x, y}=x+y-xy;
x=1x.
Propoziia 1. Algebra (B2,,,) este o algebr boolean.
3.1.1.3. Semantica limbajului de calcul propoziional
23

Inteligen Artificial

Cap.3. Limbaje de ordinul I

Definirea semanticii calculului propoziional presupune definirea unei funcii I:PB2, care s
atribuie fiecrei formule o valoare de adevr. Dat fiind faptul c funcia I d o semnificaie formulelor
limbajului P, permind interpretarea acestora, aceasta este denumit interpretare.
Definiia 2. Se numete interpretare orice morfism al algebrelor (P,,, ) i (B2,,,).
Din definiia 2 rezult c orice interpretare I, I:PB2, satisface urmtoarele proprieti oricare ar
fi formulele a, bP:
I(ab)=I(a)I(b)=max{I(a),I(b)};
(2)
I(ab)=I(a) I(b)=min{I(a),I(b)};
I( a)=1-I(a).
Remarca 1. Avnd n vedere c n calculul propoziional orice interpretare satisface prin
definiie proprietile (2), rezult c valoarea de adevr a oricrei formule FP este bine determinat de
valorile de adevr atribuite de interpretarea I variabilelor propoziionale. Dac n formula F apar n
variabile propoziionale atunci exist 2 n interpretri posibile ale formulei F (funcii I).
O interpretare asociaz fiecrei formule FP o valoare de adevr notat I(F)B2, convenind c
valoarea de fals=0, iar valoarea de adevrat=1.
Notnd cu x1, x2,,xn variabilele care apar n F, atunci pentru orice interpretare I, valoarea de
adevr a formulei F este dat de o relaie de forma:
I(F)=I(F(x1, x2,,xn))=f(I(x1), I(x2),,I(xn))
(3)
n aceast viziune, fiecare formul F poate fi echivalat cu o funcie logic f.
Pe mulimea P se introduc dou conective (operaii) noi, i , numite implicaie logic,
respectiv echivalen logic, a cror semantic este definit dup cum urmeaz:

0
I (a b )
1
1
I ( a b)
0

I (a ) 1

I (b ) 0;
(4)

;
I ( a b) I (b a) 1;
.

(5)

Oricare ar fi formulele a, bP, se obine urmtoarea semnificaie a conectivelor i :


I(a)

I(b)

I(ab)

I(ba)

I(ab)

0
0
1
1

0
1
0
1

1
1
0
1

1
0
1
1

1
0
0
1

Definiia 3. Se spune c formula FP este consistent dac exist o interpretare I pentru care I(F)=1
(pentru care formula este adevrate). O formul care nu este consistent se numete inconsistent. O
mulime de formule {F1,F2,,Fn} este consistent dac exist o interpretare I pentru care I(F1)=
I(F2)= =I(Fn)=1 (pentru care toate formulele sunt adevrate).
Remarca 2. Mulimea {F1,F2,,Fn} este consistent dac i numai dac formula F1F2 Fn
este consistent.
Definiia 4. O formul FP se numete valid sau irefutabil dac este adevrat n orice
interpretare, adic I, I(F)=1. O formul valid se mai numete i tautologie. O formul care nu este
valid este denumit invalid.
Ex.: a a.
Remarca 3. O formul invalid poate fi adevrat ntr-o interpretare particular, n timp ce o
formul inconsistent este ntotdeauna fals.
24

Inteligen Artificial

Cap.3. Limbaje de ordinul I

Relaiile dintre conceptele de validitate, consisten, invaliditate, inconsisten i valorile de


adevr luate de expresii pentru combinaiile de valori de adevr ale formulelor atomice componente sunt
ilustrate n tabelul de mai jos.
Valid
ntotdeauna
adevrat

Invalid
Nu ntotdeauna adevrat
i nu ntotdeauna fals
Consistent

ntotdeauna fals
Inconsistent

Contingent
Se observ existena unei categorii de expresii, care nu sunt nici ntotdeauna valide, nici
ntotdeauna inconsistente. Astfel de expresii, care pentru unele combinaii ale valorilor de adevr ale
formulelor atomice componente iau valoarea "adevrat", iar pentru alte combinaii ale valorilor de adevr
ale formulelor atomice componente iau valoarea "fals", sunt denumite expresii contingente.
Definiia 5. Fie S={F1,F2,,Fn}P o mulime de formule i CP o formul. Se spune c C este
deductibil semantic din S sau C este o consecin logic a lui S, dac pentru orice interpretare I pentru
care I(F1)=I(F2)==I(Fn)=1 avem I(C)=1. Se noteaz acest fapt prin
{F1,F2,,Fn} C
(6)
Remarca 4. Se spune c expresia {F1,F2,,Fn} C este o teorem, {F1,F2,,Fn} constituind
ipoteza, iar C concluzia teoremei respective. Semnul este denumit simbol de asertare a validitii.
Remarca 5. Dac mulimea premizelor este vid, teorema se rescrie sub forma C, ceea ce
semnific faptul c C este o tautologie (adevrat n orice ipotez). Avnd n vedere acest aspect, orice
tautologie a calculului propoziional poate fi considerat o teorem. De asemenea, a demonstra teorema
{F1,F2,,Fn} C revine n a demonstra c formula F1F2 Fn C este o tautologie, adic F1F2
Fn C.
Exist anumite tautologii ale calculului propoziional denumite axiome, prin asertarea crora se
pot deduce toate celelalte tautologii ale limbajului. Sistemul axiomatic al calculului propoziional, definit
de Hilbert i Ackermann are la baz urmtoarele axiome:
i)
AAA
principiul tautologiei;
ii)
AAB
principiul adiiunii;
iii)
ABBA
principiul comutativitii;
iv)
(AB)((CA)(CB))
principiul nsumrii.
3.1.2. Principiul deduciei
Propoziia 2. (Principiul deduciei)
Se spune c {F1,F2,,Fn}C dac i numai dac {F1,F2,,Fn, C} este inconsistent.
3.1.3. Echivalen logic
Definiia 6. Dou formule F1, F2P se numesc echivalente dac, pentru orice interpretare I,
exist egalitatea I(F1)=I(F2): F1 F2 I, I(F1)=I(F2).
Ex.:
a(ab) a
aa a
Propoziia 3. Relaia de echivalen logic are urmtoarele proprieti:
i) FG GF; FG GF (comutativitate)
ii)
F(GH) (FG)H; F(GH) (FG)H (asociativitate)
iii)
F(GH) (FG) (FH); F (GH) (FG) (FH)
25

Inteligen Artificial

Cap.3. Limbaje de ordinul I

iv)
v)
vi)
vii)
viii)

FF F, FF F (idempoten)
F(FG) F, F (FG) F (absorbie)
FF t; FF f
(F) F
(principiul dublei negaii)
(FG) FG
(FG) FG (De Morgan)
oricare ar fi formulele F, G, H P, t=true, f=false.

3.2. Metode de demonstrare a teoremelor n limbajul de calcul


propoziional
Exist mai multe metode prin care se poate verifica dac o anumit formul este sau nu o
teorem (o tautologie) a calculului propoziional. Cele mai cunoscute dintre acestea sunt
prezentate n continuare.
3.2.1. Metode semantice
Se consider o formul F=F(x1,x2,,xn)P i se dorete demonstrarea (sau infirmarea)
faptului c F este o tautologie. Metodele semantice au la baz definiia 4 i constau n verificarea
faptului c n orice interpretare formula F este adevrat. Pentru aceasta se construiete tabelul
valorilor de adevr asociat formulei F. Tabelul va conine cte o coloan pentru fiecare din
simbolurile propoziionale x1, x2,,xn i o coloan pentru formula F, eventual cteva coloane
auxiliare care s faciliteze evaluarea lui I(F). Numrul de linii al tabelului este 2 n, fiecare din
acestea corespunznd unei interpretri a formulei F.
Considernd teoremele de forma:
F1, F2, , Fn C,
(7)
unde F1, F2 ,,Fn (virgula n membrul stng are rol de conjuncie) reprezint ipoteza teoremei
(7), iar C concluzia acesteia, se pot utiliz a dou metode semantice pentru demonstrarea teoremei.
Metoda direct. Se verific c pentru toate interpretrile pentru care premizele sunt
simultan adevrat, concluzia este adevrat, adic I, pentru care I(F1)= I(F2)= =I(Fn)=1,
avem I(C)=1. Procedeul utilizat este urmtorul. Se marcheaz n tabelul de adevr liniile n care
premizele sunt simultan ndeplinite i se verific pentru aceste linii dac n coloana
corespunztoare concluziei toate valorile de adevr sunt egale cu 1.
Metoda invers. Se verific c pentru orice interpretare I, pentru care I(C)=0, cel puin
una din premize este nesatisfcut, adic exist o formul Fi pentru care avem I(Fi)=0. Se
construiete tabelul de adevr i se marcheaz liniile n care concluzia este fals. Pentru aceste
linii se verific c cel puin una dintre premize nu este satisfcut.
Remarca 6. Dezavantajul metodelor semantice const in faptul c numrul liniilor din
tabelul de adevr crete exponenial n raport cu numrul variabilelor propoziionale. Acest
inconvenient a fost eliminat n cazul metodele sintactice.
Exemplu: S se demonstreze,
a, ab b (modus ponens).

prin

26

metoda

direct

invers,

teorema

Inteligen Artificial
a
0
0
1
1

Cap.3. Limbaje de ordinul I


b
0
1
0
1

b
0
1
0
1

ab
1
1
0
1

MD

MI
*
*

Concluzie: Teorema este demonstrat!


S se demonstreze: ACD, A, BC, B D.
3.2.2. Metode sintactice
Spre deosebire de metodele prezentate n 3.2.1, metodele sintactice opereaz cu
simbolurile propoziionale fr a ine cont de semnificaia semantic a formulelor n care acestea
apar. Una dintre cele mai cunoscute metode sintactice este algoritmul lui WANG, care este
aplicabil teoremelor de forma:
F1F2Fn C1C2Cm.
(8)
Presupunnd c n membrul stng al simbolului de asertare a validitii conectiva implicit este
, iar n membrul drept , teorema se poate rescrie sub forma:
F1, F2, , Fn C1, C2,Cm
(9)
Algoritmul presupune ca formulele s fie n prealabil aduse la o form echivalent care s nu
conin dect conectivele , i . Eliminarea conectivelor i se realizeaz innd cont de
urmtoarele echivalene logice:
FG FG, respectiv FG (FG) ( FG) (FG)(FG)
(10)
Exemplu: S se aduc la forma echivalent formulele din urmtoarea teorem:
ACD, A, BC, B D.
Soluie: ACD (AC)D ACD; BC BC.
n final, teorema se poate scrie n forma echivalent:
ACD, A, BC, B D.
Algoritmul lui WANG
1) Se aduce teorema la forma (9).
2) Se execut procedeul iterativ constnd prin aplicarea repetat a uneia din operaiile
descrise la punctele (2.1)-(2.3) pn la ndeplinirea condiiilor de oprire specificate la pasul 3.
2.1. Eliminarea negaiilor:
Dac ntr-unul din cei doi membri ai teoremei apare o formul de formaF, atunci formula
respectiv se trece n membrul opus suprimndu-se operatorul de negaie.
F F.
2.2. Eliminarea conectivelor implicite:
a) Dac n membrul stng apare o formul de forma F=F1F2, atunci operatorul este
suprimat i se pune virgul n locul acestuia.
F1F2 F1, F2.
b) Dac n membrul drept apare o formul de forma F=F1F2, atunci operatorul este
suprimat i se pune virgul n locul acestuia.
F1F2 F1, F2.
27

Inteligen Artificial

Cap.3. Limbaje de ordinul I

2.3 Descompunerea teoremei:


a) Dac n membrul stng apare o formul de forma F=F1F2, atunci teorema respectiv
se descompune n dou subteoreme, fiecare dintre acestea coninnd n locul
termenului F=F1F2 cte unul din termenii disjunciei respective. A demonstra
teorema iniial revine n a demonstra cele dou subteoreme astfel generate.
b) Dac n membrul stng apare o formul de forma F=F1F2, atunci teorema respectiv
se descompune n dou subteoreme, fiecare dintre acestea coninnd n locul
termenului F=F1F2 cte unul din termenii conjunciei respective. A demonstra
teorema iniial revine n a demonstra cele dou subteoreme astfel generate.
3) Condiii de oprire:
3.1) Dac ntr-o teorem (subteorem) apare aceeai formul F n ambii membri ai
simbolului , atunci teorema este demonstrat.
3.2) Dac nici una din transformrile (2.1)-(2.3) nu mai este aplicabil i condiia (3.1) ne
este satisfcut, atunci teorema este infirmat (nu este de fapt o teorem).
Exemplu:
Fie teorema (T): ACD, A, BC, B D.
Se descompune T n urmtoarele subteoreme:
2.1

(T1): A, A, BC, B D A, BC, B D, A. (3.1)


*

(T2): C, A, BC, B D

(T3): D, A, BC, B D . (3.1)


*

2.1

C, A, B, B D C, A, B D, B. (3.1)
2.1

C, A, C, B D A, B D, C. (3.1)
3.2.3. Demonstrarea teoremelor utiliznd metoda deduciei formale
Definiia 8. Se numete regul de inferen un procedeu prin care, pe baza asertrii unor
formule F1, F2,, Fn, se poate deduce (infera) o nou formul adevrat C. Se noteaz acest fapt
prin
F1, F2,, Fn C.
Regula este numit consistent dac genereaz doar acele formule care sunt o consecin
logic a formulelor {F1, F2,, Fn}.
Precizri:
Pentru a emite judeci i aprecieri asupra formulelor scrise n limbajul calculului propoziional,
s-au folosit semnele metalingvistice " " i " ", a cror semnificaie este explicat mai jos.
Expresia " A" semnific faptul c formula A este valid, deci n tabela de adevr se afl numai
valoarea 1, indiferent de valorile de adevr ale propoziiilor atomice componente.
Expresia "A B" semnific faptul c formula B este o consecin valid a formulei A, deci B va
avea valoarea 1 peste tot unde A are valoarea 1.
Expresia " A" semnific faptul c formula A este deductibil, adic exist o secven finit de
formule astfel nct fiecare formul este fie o axiom, fie se deduce din dou formule
precedente prin aplicarea regulei de inferen modus ponens (regul asupra creia vom reveni
ulterior), iar ultima formul a secvenei este A.
Expresia "A B" semnific faptul c formula B este deductibil din formula A; deci, exist o
28

Inteligen Artificial

Cap.3. Limbaje de ordinul I

secven finit de formule ncheiat cu formula B. Fiecare formul component (printre care se
gsete i A) poate fi o axiom sau poate fi dedus din dou reguli precedente prin aplicarea
regulei modus ponens,
Cea mai cunoscut regul de inferen este regula
A, AB B,
cunoscut sub numele de modus ponens.
Similar, regula modus tolens afirm c
AB,B A.
Exist reguli de introducere sau eliminare a conectivelor logice. Astfel regula
A, B AB
este cunoscut sub numele de -introducere, n timp ce regula:
AB A i AB B
este denumit -eliminare.
Similar, regula:
AB BA
este denumit eliminare.
Definiia 9. Fie S={F1,F2,, Fn} i C o formul. Se spune c C este deductibil din S
dac exist un ir de formule C1, C2,, Cm=C, a crei ultim formul este C, iar celelalte
formule sunt axiome, formule din S sau sunt deduse din dou formule anterioare utiliznd regula
de inferen modus ponens.
Exemplul 1. S se demonstreze teorema:
{ACB, BD, A, C} D.
Demonstraie.
A,C AC.
(-introducere)
AC, ACB B
(modus ponens)
B, BD D.
(modus ponens)
3.2.4. Principiul rezoluiei
Definirea metodei de demonstrare utiliznd principiul rezoluiei necesit definire n prealabi l a unor
noiuni suplimentare.
Def 1: Se numete literal un simbol propoziional (literal pozitiv) sau negaia acestuia (literal
negativ).
Def 2: Prin atom se nelege o variabil propoziional.
Def 3: Se numete clauz este o disjuncie de literali:
C=L1L2Ln, Li C,
unde Li este un literal pozitiv sau un literal negativ.
Def 4: Se spune c o formul F este scris n form normal conjunctiv (FNC) sau n form
clauzal, dac aceasta este o conjuncie de clauze:
F=C1C2Cm, unde Ci , i=1,..,m, este o clauz.
Mulimea clauzelor (formelor clauzale) ale calculului propoziional se va nota cu C.
Def 5: Clauza fr nici un literal este denumit clauza vid i se noteaz cu sau nil. Prin
definiie I()=0.
Def 6: Se numete form normal disjunctiv (FND) o disjuncie de formule de forma:
29

Inteligen Artificial

Cap.3. Limbaje de ordinul I

L1L2Ln.
Aplicnd principiul rezoluiei, teorema {F1, F2, , Fn} C, echivalent cu F1F2Fn C,
este demonstrat dac mulimea {F1, F2, , Fn, C} este inconsistent (principiul
deduciei). Pentru ca metoda de derivare prin rezoluie s poat fi aplicat, trebuie ca
formulele din mulimea de mai sus (sau formula F1F2 FnC) s fie adus la forma
normal conjunctiv (FNC).
Propoziia 9. Orice formul FP poate fi rescris sub o form clauzal echivalent.
Demonstraie. Aplicnd urmtorul procedeu, orice formul FP este scris sub forma
FCC i n orice interpretare I(F)=I(FC), adic (FFC).
1) Se elimin conectiva , utiliznd echivalena logic (10):
AB (AB)(AB).
2) Se elimin conectiva , utiliznd echivalena logic (10):
AB AB.
3) Se aplic relaiile lui De Morgen astfel nct fiecare operator de negaie s fie aplicat
unui singur simbol propoziional:
(AB) A B
(AB) B B
A A, () A, B P.
4) Se utilizeaz proprietile de distributivitate ale operatorilor i pentru aducerea
formulei la form clauzal:
A (BC) (AB)(AC)
(FNC)
A (BC) (AB) (AC).
5) Se utilizeaz proprietile de idempoten, absorbie etc. pentru simplificarea FNC
obinute.
Procedeul de demonstrare a teoremelor utiliznd metoda deduciei este destul de simplu din
punct de vedere teoretic, dar este foarte dificil de implementat pe calculator. Dificultatea const n
alegerea regulii de inferen aplicabil la un anumit moment, astfel nct n final s se ajung la
obinerea scopului dorit. Avnd n vedere acest inconvenient, rezolvatoarele automate au la baz o
metod de demonstrare a teoremelor bazat pe principiul rezoluiei datorat lui J. A. Robinson.
Avantajul metodei rezoluiei, n raport cu metodele de deducie, const n faptul c la demonstrarea
teoremelor se utilizeaz o singur regul de inferen i anume regula rezoluiei definit prin:
aF, aG FG ,
(11)
unde a este o variabil propoziional, iar F, G sunt clauze ale limbajului P. Formula FG poart
denumirea de rezolvanta clauzelor aF i aG. Dou clauze de tipul celor din membrul stng al
relaiei de asertare a deductibilitii (11) se numesc rezolubile.
Regula rezoluiei poate fi demonstrat imediat: se constata cu uurin c pentru orice interpretare I
pentru care I(aF)= I(aG)=1 avem fie I(F)=1 fie I(G)=1, deci I(FG)=1.
Propoziia 10. Fie S o mulime de clauze S = {F1, F2, , Fn} i R = rez(Fi, Fj) rezolvanta a dou
clauze din mulimea S. Forma normal conjunctiv S(F1F2 Fn) este echivalent cu
FCN desemnat prin S R(F1F2 FnR).
Exemplu: S se demonstreze regula modus ponens (caz particular al principiului rezoluiei):
a, a b b.
30

Inteligen Artificial

Cap.3. Limbaje de ordinul I

a
ab

b
Def 7: Fie S = {F1, F2, , Fn} o mulime de clauze i R o clauz. Se numete deducie prin
rezoluie sau derivare rezolutiv o secven de clauze R1, R2, , Rn=R cu proprietatea c
pentru orice i = 1..n, Ri este rezolvanta a dou clauze, Ri = rez(Fi1, Fi2), unde FikS sau Fik=
Ri, j<i.
Propoziia 11. O mulime de cauze S = {F1, F2, , Fn} este inconsistent dac i numai dac
clauza vid poate fi obinut prin rezoluie liniar din mulimea S.
Pentru demonstrarea teoremelor utiliznd metoda rezoluiei se pornete de la rezultatul prezentat n
propoziia 2 (principiul deduciei) i de la rezultatul exprimat prin urmtoarea propoziie.
Teorema 1. (Teorema de consisten i completitudine) O mulime de clauze este
inconsistent dac si numai dac din mulimea respectiv se poate deriva prin rezoluie clauza
vid.
{F1,F2,,Fn,C}

rezolutie

nil.

Recapitulnd, pentru a demonstra teorema exprimat prin rel. 6, {F1, F2, , Fn} C,
revine, conform principiului deduciei, la a demonstra c mulimea de clauze S, obinut prin
scrierea sub form clauzal a mulimii de formule {F1,F2,,Fn,C} este inconsistent. n baza
teoremei 1, totul se reduce la derivarea clauzei vide din mulimea S.
Se spune c o clauz este factorizat, dac un acelai literal nu apare de dou ori n contextul
clauzei respective. n baza proprietii de idempoten a operaiei de disjuncie, orice clauz se poate
simplifica prin scrierea o singur dat a tuturor literalilor care apar de mai multe ori n cadrul acesteia
(operaie denumit factorizare). n caz contrar, algoritmul poate s cicleze n anumite cazuri
particulare.
Algoritmul de demonstrare utiliznd regula rezoluiei este prezentat n pseudocod mai
jos:
for all F in S do F:=factor(F);
while ( n S dou clauze rezolubile F1 i F2) and (S) do
begin
R:= rez(F1,F2); C:= factor(R); S:=S{C}
end;
unde prin rez(F1,F2) s-a notat rezolvanta clauzelor F1 i F2, iar factor(R) este clauza obinut prin
factorizarea clauzei R. Conform celor expuse mai sus, teorema este demonstrat dac dup,
terminarea procesului iterativ ilustrat n algoritmul precedent, clauza vid S.
Exemplul 2: S se demonstreze, utiliznd metoda rezoluiei, teorema ACD, A, BC, B D..
Rescriind formulele din mulimea {ACB, BD, A, C, D} sub form clauzal se
obine urmtoarea mulime de clauze:
(C1) ACB
(C2) BD
(C3) A
(C4) C
(C5) D
de unde procesul rezolutiv se poate desfura n felul urmtor:
31

Inteligen Artificial

Cap.3. Limbaje de ordinul I

(C6) rez(C1,C3)= CB.


(C7) rez(C6,C2)= CD.
(C8) rez(C7,C4)= D.
(C9) rez(C8,C5)= .
i astfel teorema este demonstrat. n Prolog, demonstraia poate fi efectuat astfel:
a.
c.
?-d.
b :- a, c.
d :- b.
yes

REZUMAT
Limbajul de calcul propoziional are urmtoarele caracteristici principale:
1. Are rolul de a stabili validitatea (adevrat sau fals) unor afirmaii ntr-un context dat.
2. Formulrile n limbaj natural devin, n limbajul de calcul propoziional, expresii simbolice n
care intervin simboluri (propoziii elementare) i conective logice: i (), sau (), not (),
implicaie (), echivalen ( ).
3. Exist 3 categorii de metode pentru demonstrarea unei teoreme: a) metode semantice (direct
i invers), b) metode sintactice (algoritmul lui WANG), c) metoda deduciei formale
(regulile de inferen, principiul rezoluiei).
4. Principiul rezoluiei utilizeaz o singur regul de inferen i anume regula rezoluiei,
ceea ce permite implementarea ei n rezolvatoarele automate.

EXERCIII I PROBLEME PROPUSE


Exerciiul 1. S se arate c:
1. ab ab
2. (ab) ab
3. (ab) a b
4. ab (ab) (ba) (b a) ( a b)
Aplicaie: a dac e soare; b e frumos.
Exerciiul 2. S se demonstreze utiliznd pe rnd metodele 3.2.1, 3.2.2 i 3.2.4 urmtoarele

teoreme de baz ale calculului propoziional:


i)

A(BA)

ii)

(AB) ((A(BC)) (AC))

iii)

(A(AB))B

iv)

A(BAB)

v)

(AB)A

vi)

(AB)B

vii)

AAB

viii)

BAB

ix)

(AC)((BC)(ABC))

x)

(AB)((AB)A)
32

Inteligen Artificial

Cap.3. Limbaje de ordinul I

xi)

AA

xii)

(AB)((BA)(AB))

xiii)

(AB)(AB)

xiv)

(AB)(BA)

xv)

(AB)(AB)

xvi)

(AB)(AB)

Exerciiul 3. Convertii urmtoarele formule n form clauzal:

(a (bc)) d

Rspuns: ad, b cd.

(a b) (c d)

Rspuns: abc, abd, c da, c db.

( a b) (c d)

Rspuns: ac, ad, bc, b d.

Exerciiul 4. S se demonstreze, aplicnd principiul rezoluiei, urmtoarele teoreme:

a, c, abc ab
a, ac, abc abc
b, ec, ed, ad, ab c

Problema 1:
Tom nu merge la biseric i Hary nu merge la biseric este fals. Dac Alice nu merge la
biseric, atunci Hary nu merge la biseric. Dac Tom merge la biseric, atunci Hary merge la
biseric.
Demonstrai c Alice merge la biseric.
a Alice merge la biseric; b Tom merge la biseric; c Hary merge la biseric.
( b c), a c, bc a.
Problema 2:
Celebrul explorator, antropolog, etnograf, muzicolog, b otanist, optician i inventator Max
de Wax a studiat un timp obiceiurile brbailor de pe o mic i uitat insul din oceanul Pacific.
Iat sinteza nsemnrilor sale:
1. Toi ce care cunosc vechea limb a acestei populaii poart ochelari.
2. Nici un filatelist nu are nepoi.
3. Toi cei ce frecventeaz unicul club de pe insul sunt stngaci.
4. Nici unul dintre insularii care nu tie s noate nu cultiv trandafiri.
5. Toi cei ce nu au nepoi cnt la cimpoi.
6. Toi cei ce poart haine cadrilate frecventeaz clubul.
7. Numai filatelitii nu vorbesc vechea limb a acestei populaii.
8. Nici un stngaci nu cnt la cimpoi.
9. Toi cei care tiu s noate poart haine cadrilate.
ntorcndu-se acas, Max i-a amintit c a omis un lucru foarte important: nu a stabilit ce
legtur exist ntre purtatul ochelarilor i cultivarea trandafirilor. A vrut s se ntoarc pe insul,
dar, cercetndu-i cu atenie notiele, i-a dat seama c cei care cultiv trandafiri poart
ochelari.
Demonstrai concluzia lui Max de Wax, utiliznd principiul rez oluiei.
33

Inteligen Artificial

Cap.3. Limbaje de ordinul I

P1 cunosc vechea limb


P2 poar ochelari
P3 este filatelist
P4 are nepoi
P5 frecventeaz clubul

P6 este stngaci
P7 tie s noate
P8 cultiv trandafiri
P9 cnt la cimpoi
P10 poart haine cadrilate

1.
1.
2.
3.
4.

6. P 10 P5
7. P1 P3
8. P 6 P9
9. P 7 P10
Concluzie: P8 P2

P 1 P2
P3 P 4
P5 P 6
P7 P8
P4 P9

TEST DE AUTOEVALUARE
1.

2.

3.

4.

5.

6.

Regula de inferen, denumit


modus ponens, se exprim prin:
a. AB AB
b. A, AB B
c. AB, B A
Se numete clauz:
a. O regul de inferen.
b. O disjuncie de literari.
c. Un atom.
Regula rezoluiei este definit prin:
a. AC, AB CB
b. AC, AB CB
c. AB, AC BC
O mulime de clauze S={F1, F2,,
Fn} este inconsistenta dac:
a. S nu este rezolutiva.
b. Dac i numai dac clauza
vida poate fi obinut din
mulimea S.
c. Dac S se poate factoriza.
Regula modus tolens afirma ca:
a. A, A |- .
b. = (.
c. , |- .
S se precizeze care dintre
urmtoarele echivalene logice este
adevrat:
a. ab ab.
b. ab a b.
c. ab a b.

7.

O formul F este scris n forma


normala conjuctiv dac aceasta
este:
a. Clauza vida.
b. Conjucie de clauze.
c. Regula modus tolens.
8. Proprietatea de distributivitate a
operatorului este:
a. C = C.
b. C = C.
c. C = C.
9. Pentru demonstrarea teoremelor in
limbaj de calcul propoziional se
poate utiliza o singur regul de
inferen i anume:
a. Regula silogismului.
b. Regula rezoluiei .
c. Regula modus ponens.
10. Dac un acelai literal nu apare de
dou ori n contextul clauzei
respective se spune c aceasta este:
a. Rezolutibil.
b. O instan.
c. Factorizat.

Rspuns
1. b
2. b
3. c
4. b
5. c

34

6. a
7. b
8. a
9. b
10.c

Inteligena Artificial

Cap. 4. Structuri i strategii de cutare

Cap. 4.
Structuri i strategii de cutare n spaiul de stri

Obiective
1. nsuirea noiunilor de baz privind reprezentarea problemelor de inteligen artificial ca
structuri de stri i rezolvarea acestora cu ajutorul metodelor de c utare.
2. Formarea deprinderilor de reprezentare corect i eficient a problemelor de inteligen
artificial n spaiul de stri.
3. Dezvoltarea abilitilor practice de operare cu strategiile inteligente de rezolvare prin
metode de cutare n structuri arborescente (grafuri, n general).

Durata: 2 ore
4.1. Inteligena artificial ca reprezentare i cutare
n lucrarea ACM Turing Award Lecture, Newell i Simon (1976) demonstreaz c activitatea
inteligent, uman sau artificial, se realizat prin intermediul:
1. Simbolurilor pentru reprezentarea aspectelor semnificative din domeniul problemei;
2. Operaii pe aceste simboluri pentru generarea unor poteniale soluii ale problemei;
3. Cutarea n vederea selectrii unei soluii dintre aceste posibiliti.
Cu alte cuvinte, trebuie definit o reprezentare simbolic a obiectelor din domeniul
aplicaiei i trebuie definii nite operatori prin care se poate modifica aceast reprezentare.
Rezolvarea unei probleme de ctre o main gnditoare presupune reprezentarea
cunotinelor i cutarea soluiei, cele dou principii fiind ntr-o interdependen reciproc.
4.1.1. Reprezentarea cunotinelor
nainte ca un calculator s poat ncepe soluionarea unei probleme, trebuie ca detaliile
problemei respective s fie reprezentate i codificate ntr-un limbaj neles de calculator.
Programatorul de inteligen artificial trebuie s abstractizeze aceste detalii i s introduc n
calculator numai acele date indispensabile rezolvrii problemei.
4.1.2 Cutarea
Un al doilea aspect subliniat de Newell i Simon este acela c o problem este soluionat
prin cutarea soluiei printre nite alternative posibile. Acest aspect este susinut de analogia cu
gndirea uman. Omul utilizeaz de asemenea un numr de strategii n modul lui de a rezolva o
problem. De exemplu, un juctor de ah analizeaz un anumit numr de micri viitoare,
alegnd micarea n funcie de un criteriu de eficien, astfel ales nct s-i asigure un avantaj
maxim. Un matematician alege dintre diferite strategii, nu mai puin complexe, pe acelea care-i
permit demonstrarea unei teoreme complexe; un fizician poate investiga un anumit numr de
35

Inteligena Artificial

Cap. 4. Structuri i strategii de cutare

cauze posibile ale unui anumit fenomen .a.m.d. Acest aspect al inteligenei contureaz aa
numita tehnica de rezolvare prin cutare n spaiul de stri.
Prin stare se nelege o anumit configuraie a problemei investigate. De exemplu, n jocul
de ah o stare este o anumit poziie de pe tabla de ah. n calculator, o poziie este reprezentat
printr-o aa numit baz de date, baz a crei complexitate depinde de natura problemei
abordate, mergnd de la cteva numere pn la o baz de date relaional. n procesul de
rezolvare a unei probleme, omul sau maina poate utiliza anumite reguli, poate aplica anumite
procedee sau artificii sau, n cazul jocurilor, poate efectua anumite mutri. De exemplu, n jocul
de ah poate efectua oricare din mutrile posibile. Aceste reguli, procedee sau mutri vor
produce modificri asupra bazei de date, aceasta reflectnd starea c urent a problemei.
Totalitatea acestor stri vor constitui un spaiu pe care-l vom denumi spaiul de stri. Dintre
acestea, vom deosebi o stare denumit stare iniial reflectnd datele iniiale ale problemei. De
asemenea, strile ce constituie soluii posibile ale problemei vor fi denumite stri finale.
Grafurile constituie un instrument practic i eficient de reprezentare a obiectelor i a
relaiilor dintre acestea. Teoria grafurilor a fost introdus la nceputul secolului al XVIII-lea de
matematicianul austriac Leonhard Euler n vederea soluionrii celebrei probleme cunoscut sub
numele de podurile din Knigsberg.
Grafurile ofer un instrument ideal de reprezentare al spaiului de stri al unei probleme.
Astfel, nodurile vor reprezenta strile distincte ale problemei, iar arcele regulile, operaiile sau
mutrile efectuate n procesul de rezolvare al problemei. La un astfel de graf deosebim un nod
corespunztor strii iniiale, nod ce va constitui rdcina grafului. De asemenea, graful va
conine cel puin un nod care va constitui starea final sau soluia problemei (evident, n ipoteza
c problema are soluie). Acest astfel de nod este denumit nod final sau goal.
Utiliznd grafurile pentru reprezentarea spaiului de stri, rezolvarea problemei se reduce la
cutarea n graful asociat a unui drum de la nodul iniial la unul din nodurile finale.
O implementare eficient a unui algoritm de cutare cere programatorului s analizeze i s
prevad comportarea algoritmului, acesta fiind confruntat cu urmtoa rele probleme:
conduce algoritmul respectiv la o soluie?
algoritmul conduce la o soluie ntr-un numr finit (rezonabil) de pai sau poate intra
ntr-un ciclu infinit?
dac o soluie este gsit este aceasta optim?
ct de amplu este procesul de cutare n termenii timpului de calcul consumat i al
memoriei afectate?
Exemplul 1. Este foarte cunoscut aa numitul joc 15-Puzzle constituit din 15 jetoane ptrate
numerotate de la 1 la 15 dispuse ntr-un chenar, jucat de majoritatea copiilor. Fie, pentru
simplitatea reprezentrii, un joc 8-puzzle:
1

8
7

3
4

6
36

Inteligena Artificial

Cap. 4. Structuri i strategii de cutare

Cteva aspecte interesante privitoare la procesul de rezolvare a problemelor pot fi


evideniate pe acest joc.
Dei micrile fizice sunt efectuate prin mutarea micilor jetoane numerotate de la 1 la 8, este
mult mai simplu s ne imaginm c mutm spaiul liber reprezentat prin ptrelul negru. Astfel,
urmtoarele mutri sunt permise:
mutarea ptrelului negru n sus

mutarea ptrelului negru la dreapta

mutarea ptrelului negru n jos

mutarea ptrelului negru la stnga

Pentru a aplica aceste mutri, trebuie avut grij ca ptrelul negru s nu prseasc tabla de
joc. Prin urmare, nu toate dintre cele patru mutri sunt aplicabile la un moment dat. De exemplu,
cnd ptrelul negru este ntr-unul din coluri numai dou din micri sunt posibile.
Dac se specific o stare iniial i una final, se poate reprezenta graful de cutare propriu
problemei propuse. Strile se pot reprezenta ca tablouri 33. Utiliznd calculul predicatelor, o
stare, sau baza de date curent se poate reprezenta printr-un predicat stare coninnd 9
argumente. De exemplu, starea iniial poate fi reprezentat utiliznd predicatul:
stare(1,4,3,7,0,6,5,8,2)
unde s-a notat cu 0 ptrelul negru.
Patru proceduri, definind cele patru micri posibile vor defini arcele grafului de
reprezentare a spaiului de stri. Ca i n cazul precedent, multe stri pot avea diferii
descendeni, prin urmare digraful asociat nu este o arborescen. Un drum de la starea iniial la
starea final n digraful astfel generat nu reprezint altceva dect strategia sau secvena de
micri care conduce la rezolvarea problemei.
1

6
2

7
5
up

left

6
2

right

left
1

6
2

6
2

6
2

up

6
2

right

down

down

6
2

6
2

6
2

Fig. 1. Spaiul de stri n cazul unui 8-puzzle

37

up

right

left

down

3
2

Inteligena Artificial

Cap. 4. Structuri i strategii de cutare

Trebuie de remarcat c n acest caz digraful generat nu mai este aciclic, o anumit
configuraie a dispunerii celor 8 numere putndu-se repeta n cadrul jocului. Dar, dac n graful
generat exist un drum de la starea iniial la cea de goal atunci exist sigur i un drum elementar
ntre cele dou stri. Explornd numai drumurile elementare riscul ca algoritmul de cutare s
pice ntr-un ciclu infinit este exclus.

4.2. Strategii de cutare


Clasificarea algoritmilor de cutare
1. Direcia de cutare

cutare direct (forward chaining, data driven): se pornete de la starea iniial


i se identific drumul ctre starea final.

cutare invers (forward chaining): se pornete de la goal i ajunge n starea


iniial.

cutare mixt: cutare n ambele direcii.


2. Spaiul de cutare

cutare complet (exhaustiv), pe ntreaga mulime S.


cutare incomplet, pe o mulime S S. Este cercetat numai un subspaiu al
mulimii S (hill climbing, beam search).
3. Strategia de cutare

irevocabil (fr revenire, metode de gradient).

cu revenire sau backtracking.


4. Exploatarea informaiei stocate n starea curent (informativitate)

cutare oarb sau neordonat blind search).

cutare euristic (informat), estimeaz distana de la starea curent la soluie n


vederea selectrii celui mai promitor descendent.

4.2.1. Algoritmi de cutare exhaustiv


Cutarea pe ntreg spaiul de stri poate fi implementat cu ajutorul a doi algoritmi
reprezentativi:
1. Depth First (cutare n adncime);
2. Breadth First (cutare pe nivel).
n implementarea celor dou metode de cutare se utilizeaz dou liste:
Lista Open conine strile care urmeaz a fi expandate (explodate, cercetate);
Lista Close conine strile care au fost deja cercetate.
Elementele acestor liste sunt de forma (s, p): s stare curent, p starea printe.

38

Inteligena Artificial

Cap. 4. Structuri i strategii de cutare

Lista Close
Lista Close

Lista Open

Lista Open

Algoritmul Depth First

Algoritmul Breadth First

4.2.1.1. Algoritmul Depth-First (cutare n adncime)


s0
s1
s2
s3

s8
s6

s4

s0
s1

s9
s4

s7
s7

s5

s5
s8

Depth First

s2

s3

s6

s9

Breadth First

procedure DepthFirst
begin
Open [(s0 nil)];
Close [ ];
while Open [ ] do
begin
extract ((s, p), Open) {Extrage primul element al listei Open}
insert ((s, p), Close) {insereaz primul element n lista Close}
if goal (s) then begin
compune_solutia; exit/continue;
end;
t

D {d S | s
d , t T}
for d in D do
if ((d, _) Open) ((d, _) Close) then insert ((d,s), Open);
{Se insereaz (d,s) la nceputul listei Open);
end;
writeln(Problema nu are soluie)
end;
Dezavantajele cutrii de tip Depth First:
nu gsete n general soluia optim;
algoritmul se poate pierde n explorarea unor ramuri foarte lungi, programul putnd fi
ntrerupt datorit depirii resurselor de memorie.
39

Inteligena Artificial

Cap. 4. Structuri i strategii de cutare

Exemplu: S se descrie evoluia listelor Open i Close n problema de cutare reprezentat mai
jos prin algoritmul Depth First.
a 1

e
i

10

11

f
7

Rezolvare
Open =[ a], Close =[ ]
1. Open =[ ], x = a
D(x) =b, e, i;
Close =[ a], Open =[ b, e, i],
2. x = b, Open =[ e, i],
Dx=c, d;
Close =[ a, b], Open =[ c, d, e, i],
3. x = c, Open =[ d, e, i], Close =[ a, b, c],
4. x = d, Open =[ e, i], Close =[ a, b, c, d],
5. x = e, Open =[ i], Close =[ a, b, c, d, e],
D(x)= d, f; % d nu se mai examineaz
Open =[ f, i],

g
goal

6. x = f, Open =[i], Close =[a, b, c, d, e, f],


D(x) = g, h; Open =[ g, h, i],
7. x = g, Open =[h, i], Close =[ a, b, c,
d, e, f, g].
n lista Close se regsesc perechile (S,
P) (Stare, Printe)
(b, a), (c, b), (d, b), (e, a), (i, a), (f, e),
(g, f).
Soluia problemei: aefg.
D(x) mulimea descendenilor strii x

4.2.1.2. Algoritmul Breadth-First (cutare pe nivel)


Dac algoritmul Depth First implementeaz o strategie de tip stiv (LIFO), algoritmul
Breadth First are la baz o strategie de tip coad (FIFO).
Algoritmul Breadth-First este simular cu cel prezentat la metoda Depth First, cu diferena c
starea (d,s) se insereaz la sfritul listei Open i nu la nceputul acesteia (v. fig. de mai jos).
Avantaj: gsete soluia de lungime minim.
0

Open
1

s
s

Close
4

10

11

12

d1
13

14

40

d2

d3

Inteligena Artificial

Cap. 4. Structuri i strategii de cutare

Dezavantaj: resursele de memorie necesare sunt foarte mari, acestea crescnd exponenial
cu nivelul de adncime explorat.
4.2.2. Algoritmi de cutare euristic
George Polya asocia termenul euristic semnificaia de studiu al metodelor i regulilor
descoperirii i inventicii. n dicionarul limbii romne contemporane euristic = adjectiv al
procedeelor metodologice cu semnificaia care servete la descoperirea unor soluii noi.
Lenat (1982): prin euristic se definete acel tip de cunoatere avnd caracterul de
raionament bazat pe experien, specializare, generalizare i analogie cu ajutorul cruia se
efectueaz o interpretare, se ia o decizie sau se acioneaz n vederea atingerii unui obiectiv.
Euristic = euristico = a descoperi <<EUREKA>>
n IA, cutarea euristic se utilizeaz n 2 sisteme de baz:
1. Problema nu are soluie exact datorit inerentelor ambiguiti din datele problemei. Un
diagnostic medical poate fi un exemplu n acest sens: aceleai simptome pot avea la baz mai
multe cauze. Un medic utilizeaz o euristic pentru stabilirea celui ma i probabil diagnostic.
2. Problema are o soluie exact, dar resursele necesare determinrii acesteia pot fi inaccesibile
sau insurmontabile. Ex: jocul de ah are 10 120 stri.
Fie S spaiul strilor i f : S + (N ) denumit euristic care face o evaluare a strilor
avnd sS, f(s) desemnnd ansa sau probabilitatea ca s s se gseasc pe drumul cel mai scurt
spre soluia problemei.
Funcia f se mai numete i funcie cost sau lungime. O stare este cu att mai bun cu ct f
este mai mic. Se calculeaz min f(di) pentru 1 i k, adic se alege descendentul de la care
costul determinrii soluiei este cel mai mic. Se spune c descendentul dmin are anse mai mari
sau se gsete cu o probabilitate mai mare pe drumul optim de la starea s la soluia problemei.
Atunci cnd spaiul strilor este foarte mare, acesta nu poate fi memorat sau parcurs ntr-un
timp rezonabil.
Cutarea euristic este incomplet, dar informaional. Avnd n vedere caracterul incomplet
al cutrii, un algoritm de cutare euristic poate conduce la o soluie suboptimal sau poate
chiar eua, n sensul c nu poate determina o soluie. Cu toate acestea, n multe situaii cutarea
euristic constituie singurul mod de rezolvare a unei mod a unei probleme.
Cutarea euristic poate fi:
complet sau incomplet. Cele incomplete pot fi cu 1 descendent (Hill Climbing) sau
cu civa (cei mai buni Beam search);
cu revenire sau fr revenire (Hill Climbing).
s

d1

d2

dj
f(dj)=min f(d)

dk

d1

d2

dk

decendenii cu valorile f minimale

Algoritmul Hill Climbing

Algoritmul Beam search

Exemplul 1: TICTACTOE
Se consider c maina (calculatorul) joac prima (cu simbolul ), iar juctorul cu caracterul
o. Euristica se definete astfel: unei stri oarecare i se atribuie ca valoare euristic numrul
41

Inteligena Artificial

Cap. 4. Structuri i strategii de cutare

posibilelor combinaii (linii+coloane+diagonale) ctigtoare ale calculatorului, deci numrul


liniilor/coloanelor/diagonalelor care conin i nu conin simbolul o.
Maina

Jucatorul A

Exemplul 2: 8 puzzle
h1(s) numrul jetoanelor care nu se gsesc pe poziia corect.
h2(s) suma deplasrilor
1 2 3
8 1
jetoanelor spre poziia corect.
4 5 6
3 2
h1(s) = 8.
h2(s) = 1+1+3+3+1+1+3+3= 16.

Starea s

7
4

4.2.2.1. Algoritmul Hill climbing


A fost propus i aplicat de Pearl n 1984. Este un algoritm fr revenire i cu o strategie
incomplet. Este aplicabil n probleme de optimizare utiliznd metoda gradientului.
Se urmrete optimizarea funciei f(x1, x2,..., xn), n sensul determinrii max f, i fie vectorul
soluie Xk la pasul k ,

X k x1k , x 2k ,

, x nk X k 1 x1k 1 , x 2k 1 ,

, x nk 1 .

Soluia la pasul k+1 se stabilete astfel:

X k 1 X k

f k k
x1 , x 2 ,
xi

, x nk .

n acest mod, mergnd pe gradient, se asigur traseul ctre valoarea de max (local sau
global) a funciei f.
Cutare oarb: crtorul este nerbdtor i orb. Se alege panta cea mai abrupt pn cnd
se ajunge la un punct de la care nu se mai poate continua: s-a atins soluia sau s-a ajuns la un
maxim local. Cutarea poate s eueze. Samuel Pearl a utilizat cu succes acest algoritm n
implementarea jocului de dame.
4.2.2.2. Algoritmul Beam search
Este un algoritm cu revenire (backtracking), cu cutare incomplet. Din mulimea
succesorilor se rein numai aceia cu anse maxime (i relativ apropiate) de a figura pe drumul
optim.
42

Inteligena Artificial

Cap. 4. Structuri i strategii de cutare

4.2.2.3. Algoritmul BEST FIRST (cu revenire)


Acest algoritm se obine din algoritmul Depth First cu
s
amendamentul c descendenii strii curente sunt ordonai
s
cresctor, prin funcia de evaluare, nainte ca acetia s fie
depui la nceputul listei Open.
Close
Euristica f este conceput n modul urmtor:
f(s) = g(s) + h(s),
d1
d2 d3
g(s) adncimea strii s;
h(s) estimare euristic a lungimii (costului) soluiei
Ordonare
pornind de la starea s.
procedure BestFirstSearch
begin
Open := [(s nil, 0, h(s)]; Close := [ ];
while Open [ ] do
begin
extract ((s, p, g, h), Open)
insert ((s, p, g, h), Close)
if goal (s) then begin
compune_solutia (Close); exit;
end;
t

D:={d S | s
d , t T}
for d in D do
begin
gc := g + Cost(t); fc := gc + h(d);
end;
case d of
(d, _, _, _)Open Close: insert ((d, s, gc, fc), Open);
(d, pe, ge, fe)Open:
if fc<fe then
begin
remove ((d, pe, ge, fe), Open);
insert ((d, pc, gc, fc), Open);
end;
(d, pe, ge, fe)Close:
if fc<fe then
begin
remove ((d, pe, ge, fe), Close);
insert ((d, pc, gc, fc), Open);
end;
end; {case}
Ordoneaz(Open); { f minimal pe prima poziie}
end; {while}
writeln(Problema nu are soluie)
end;

43

Inteligena Artificial

Cap. 4. Structuri i strategii de cutare

Exemplul 1: Cutare ntr-un spaiu cu obstacole


Euristica: f(s) = f(x, y) = |xgx| + |ygy|. f(s) = 5

Operatori

l h

Exemplul 2: 8 puzzle
h(s) numrul pieselor care nu se gsesc n poziia corect (fr a include spaiul liber);
Funcia de evaluare va fi de forma f(s) = g(s) + h(s):
g(s) adncimea sau costul cu care a fost generat starea s;
h(s) estimare euristic a costului soluiei pornind din starea s.
Starea curent
Starea final (goal)
2

4
5

h=5
f=6

h=3
f=4

4
5

h=4
f=6
2

4
5

4
5

h=3
f=5
2

4
5

4
5

g=2

h=2
f=5

g=1

4
5

h=5
f=6

h=3
f=5

h=4
f=7

44

g=3
4
5

Inteligena Artificial

Cap. 4. Structuri i strategii de cutare

REZUMAT
1.
2.

3.
4.

Rezolvarea unei probleme de ctre o main gnditoare presupune reprezentarea


cunotinelor i cutarea soluiei.
Tehnica de rezolvare prin cutare n spaiul de stri presupune reprezentarea simbolic a
obiectelor din domeniul aplicaiei (definirea parametrilor de stare) i definirea unor
operatori prin care se poate modifica aceast reprezentare (funcii generatoare de stri).
Spaiul de stri asociat unei probleme este frecvent reprezentat sub form arborescent.
Cutarea soluiei se poate realiza prin mai multe tehnici (algoritmi): exhaustiv (n
adncime, pe nivel), cu evaluare euristic (de ex., Best First), cu sau fr revenire.

PROBLEME PROPUSE
Problema 1: Utiliznd metodele a) Depth First; b) algoritmul Breadth First i c) Best First, s se
gseasc drumul de la Start la Goal n labirintul din figura de mai jos.
Start

Goal
12
10

11

Ordinea operatorilor:

Problema 2:
S se descrie evoluia listelor
Open i Close n problema de cutare reprezentat
mai jos, prin algoritmul Breadth First.

e
i

10

f
7

45

g
goal

11

Inteligena Artificial

Cap. 4. Structuri i strategii de cutare

TEST DE AUTOEVALUARE
1.

2.

3.

4.

5.

Prin stare nelegem:


a. Un instrument practic i eficient
de reprezentare a obiectelor.
b. O
anumit
configuraie
a
problemei investigate.
c. Reprezentarea cunotinelor i
cutarea soluiei.
Spaiul de stri reprezint:
a. Totalitatea regulilor, procedeelor
sau mutrilor care produc
modificri asupra bazei de date.
b. Totalitatea grafurilor.
c. Totalitatea strilor din domeniul
problemei.
Estimarea distanei de la starea curent
la soluie, n vederea selectrii celui
mai
promitor
descendent,
se
realizeaz prin:
a. Cutare complet.
b. Cutare euristic.
c. Cutare neordonat.
Depth First reprezint un algoritm de:
a. Cutare pe nivel.
b. Cutare fr revenire.
c. Cutare n adncime.
La implementarea algoritmilor Depth
First i Breadth First, lista Close
conine:
a. Strile care au fost cercetate.
b. Strile iniiale i finale.
c. Totalitatea strilor posibile.

6.

Algoritmul Beam Search prezint:


a. Cutri euristice incomplete cu un
descendent.
b. Cutri euristice incomplete cu
civa descendeni.
c. Cutri euristice complete.
7. Lista Open conine:
a. Strile care au fost cercetate.
b. Strile ce urmeaz a fi cercetate.
c. Strile ce nu vor fi cercetate.
8. Best First reprezint un algoritm cu
evaluare euristic a descendenilor de
tip:
a. Cutare in adncime.
b. Cutare pe nivel.
c. Cutare fr revenire.
9. Breadth First reprezint un algoritm
de:
a. Cutare in adncime.
b. Cutare pe nivel.
c. Cutare
cu
revenire
sau
backtracking.
10. Algoritmul Hill Climbing realizeaz:
a. Cutri euristice incomplete cu un
descendent .
b. Cutri euristice complete.
c. Cutri euristice incomplete cu
civa descendeni.

Rspuns
1. b
2. c

3. b
4. c

46

5. a
6. b

7. b
8. a

9. b
10. a.

Inteligena Artificial

Cap.5. Sisteme de producie

Cap. 5.
Sisteme de Producie
Obiective
1. nsuirea noiunilor de baz privind reprezentarea problemelor de inteligen artificial ca
sisteme de producii i rezolvarea acestora.
2. Formarea deprinderilor de reprezentare corect i eficient a problemelor de inteligen
artificial prin stri i producii.
3. Dezvoltarea abilitilor practice de operare cu raionamentele specifice sistemelor de
producii.

Durata: 2 ore

5.1. Definiia sistemelor de producii


n 1972, Newell i Simon prezint un model al raionamentului uman, fiind precursorii
uneia dintre paradigmele de baz ale inteligenei artificiale, i anume sistemele de producie.
Un sistem de producii este un model matematic avnd o importan particular n
inteligena artificial, att pentru implementarea algoritmilor de cutare ct i pentru modelarea
rezolvrii umane a problemelor.
Dup definiia dat de Brownston (1985), un sistem de producii const din:
1. O mulime finit de reguli de producie, denumit baza de reguli. Aceste reguli sunt
numite simplu producii. O producie este o pereche ordonat (condiie, aciune), adeseori notat
condiie -> aciune,
a crei interpretare este urmtoarea:
Dac condiie este ndeplinit ATUNCI se poate executa aciune.
Partea din regul, care conine condiia, specific acele criterii care trebuie s fie ndeplinite
pentru ca regula s fie aplicat, deci ca aciunea pe care aceasta o menioneaz s aib loc.
2. Memoria de lucru (working memory) coninnd piese de cunoatere (declarativ sau
factual), memorate nerestrictiv ntr-o colecie denumit context. Contextul reprezint starea
curent a procesului de rezolvare a unei probleme. La debutul acestui proces, contextul este
iniializat cu datele iniiale ale problemei. Dac condiia unei reguli este satisfcut de piesele de
cunoatere din context, se spune c regula respectiv este aplicabil. Mulimea regulilor aplicabile
poart denumirea de mulime conflictual.
3. Strategia de control sau ciclul de corespondena (sau recunoatere, selecie) i aciune,
nelegnd prin acesta algoritmul care face posibil funcionarea sistemului de producii, algoritm
care const, de obicei, din urmtorii pai :
Corespondena (selecia). Sunt selecionate toate regulile din baza de producii pentru care
s-au gsit piese de cunoatere n contextul actual al problemei care satisfac partea de condiie
(condiia poate fi unificat cu o clauz din contextul problemei). Mulimea acestor reguli astfel
selectate se numete mulime conflictual deoarece regulile acestei mulimi intr ntr-o competiie
din care una singur va fi declanat.
47

Inteligena Artificial
Cap.5. Sisteme de producie
Rezolvarea conflictului. Dac prin procesul de coresponden se obin mai multe reguli
aplicabile, atunci se elimin mai nti acele reguli care produc replici ale unor simboluri (elemente)
deja existente n context (astfel se evit ciclurile), iar apoi regulile rmase se ordoneaz potrivit
unor strategii de rezolvare a conflictelor de prioritate i, astfel, se selecteaz regula care va fi
declanat. Rezolvarea conflictului se poate face simplu prin selectarea primei reguli aplicabile
care nu produce un ciclu sau prin utilizarea unei funcii euristice.
Aciunea. Se execut partea de aciune a regulii declanate. Dac nu exist producii
(reguli) aplicabile (mulimea conflictual e vid), sistemul de producie se oprete. Evident,
execuia unei astfel de reguli va modifica corespunztor contextul problemei.
Reluarea ciclului. Se reseteaz toate produciile selectate (mulimea conflictual) i se reia
ciclul de la faza de coresponden folosindu-se contextul modificat n ciclul anterior. Dac un ciclu
nu produce aciuni, sistemul se oprete. Oprirea mecanismului interpretativ poate avea loc i ca
urmare a executrii unei producii la care partea de aciune specific oprirea.
Un sistem de producie, simplist implementat, nu este prevzut cu o strategie de revenire
(backtracking) din aa numitele situaii "dead-end". De aceea, utilizarea sistemelor de producii la
implementarea unor algoritmi de rezolvare a problemelor trebuie fcut n conexiune cu utilizarea
unor algoritmi de cutare "depth-first", "breadth-first" sau, mult mai elegant, "best-first", strategia
de rezolvare a conflictului fiind "euristica" pentru implementarea acestuia din urm.
Exemplu. Funcionarea unui sistem de producii poate fi uor ilustrat fcnd apel la un
exemplu simplu i anume rearanjarea n ordine alfabetic a simbolurilor unui ir de caractere .
Producii:
1.
ba -> ab
2.
ca -> ac
3.
cb -> bc
irul (contextul) iniial: cbaca
Iteraia

Context

Mulimea
conflictual

Regula
declanat

cbaca

1,2,3

cabca

acbca

2,3

acbac

1,3

acabc

aacbc

aabcc

Halt

Trasarea algoritmului de rearanjarea a caracterelor irului iniial este ilustrat n tabelul de


mai sus.
Ideea utilizrii produciilor aparine aparine lui Post (1943), care a propus un model bazat
pe reguli de producie ca o teorie formal a calculului. Ideea are la baz formalismul gramaticilor
generative introduse de N. Chomsky, n special gramaticile contextuale. Aplicaii interesante ale
48

Inteligena Artificial
Cap.5. Sisteme de producie
sistemelor de producie apar n lucrrile lui Newell i Simon de la Carnegie Institute of
Technology. De asemenea, ideea sistemelor de producii st la baza algoritmilor Markov i a
mainilor Turing.
Pentru familiarizarea cu acest concept, de o importan major n inteligena artificial, sunt
prezentate n continuare dou exemple.
Exemplul 5-1. Spaiul de stri generat de un 8-puzzle este destul de complex pentru a
prezenta interes, astfel nct acesta este un exemplu frecvent utilizat n inteligena artificial. n
cele ce urmeaz este prezentat soluia acestei probleme utiliznd un sistem de producii.
Pentru simplitatea soluiei, se va presupune din nou c ptrelul liber (negru) este mutat i
nu piesele.

Starea iniial

Goal

3
4

Producii:
Contextul conine starea goal
-> Halt
Patrelul negru nu este sus
-> mut ptrelul negru n sus
Patrelul negru nu este n stnga -> mut ptrelul negru la stnga
Patrelul negru nu este n dreapta -> mut ptrelul negru la dreapta
Patrelul negru nu este jos
-> mut ptrelul negru n jos
Contextul (Memoria de lucru) conine configuraia curent
Strategia de control:
1. ncearc fiecare producie n ordine;
2. Evit ciclurile;
3. Oprete-te dac ai ajuns la Goal.
Dup cum se poate constata din analiza punctelor 1 i 2 ale strategiei de control a cutrii,
rezolvarea conflictului se realizeaz prin alegerea primei reguli (producii) care nu produce un
ciclu. Aceasta este una dintre cele mai simple strategii de rezolvare a conflictului. Implementarea
unui astfel de algoritm trebuie s se fac impunnd o condiie de limitare a adncimii, altminteri
algoritmul se va "pierde" n investigarea unor drumuri foarte lungi sau va descoperi o soluie deloc
optimal (problema la descrierea algoritmului "depth-first"). Evident, o implementare simplist,
fr un procedeu de revenire (backtracking), poate uor devia de la soluia problemei.
Exemplul 5-2. Problema traseului calului de ah este de asemenea un exemplu des utilizat
n inteligena artificial pentru sublinierea unor aspecte importante privind implementarea
sistemelor de producie.
Pentru nceput, se consider o tabl format din 33 ptrele. Tot pentru simplitate cele 9
ptrele se vor numerota cu cifrele arabe de la 1 la 9, i nu cu o pereche de tip (C,L) notaie
utilizat uzual n jocul de ah.

49

Inteligena Artificial

Cap.5. Sisteme de producie


1

Regulile de producie vor reprezenta n acest caz mutrile egale ale calului de ah i anume:
1
Calul este n prelul 1 -> Mut calul n ptrelul 8
2
Calul este n prelul 1 -> Mut calul n ptrelul 6
3
Calul este n prelul 2 -> Mut calul n ptrelul 9
4
Calul este n prelul 2 -> Mut calul n ptrelul 7
5
Calul este n prelul 3 -> Mut calul n ptrelul 4
6
Calul este n prelul 3 -> Mut calul n ptrelul 8
7
Calul este n prelul 4 -> Mut calul n ptrelul 9
8
Calul este n prelul 4 -> Mut calul n ptrelul 3
9
Calul este n prelul 6 -> Mut calul n ptrelul 1
10
Calul este n prelul 6 -> Mut calul n ptrelul 7
11
Calul este n prelul 7 -> Mut calul n ptrelul 2
12
Calul este n prelul 7 -> Mut calul n ptrelul 6
13
Calul este n prelul 8 -> Mut calul n ptrelul 3
14
Calul este n prelul 8 -> Mut calul n ptrelul 1
15
Calul este n prelul 9 -> Mut calul n ptrelul 2
16
Calul este n prelul 9 -> Mut calul n ptrelul 4
Memoria de lucru va conine starea curent existent pe tabla i starea de goal. Rezolvarea
conflictului presupune i n acest caz alegerea primei producii care nu produce o bucl. Strategia
de control este simpl constnd n aplicarea regulilor pn la atingerea poziiei de goal, caz n care
algoritmul ia sfrit. De asemenea, strategia de control ar trebui s implementeze mecanismul de
backtracking. n aceste condiii, modul n care sistemul de producii determin soluia problemei
este ilustrat n tabelul urmtor.
Iteraia

Poziia calului

Mulimea
conflictual

Regula
declanat

Curent

Goal

1,2

13,14

13

5,6

7,8

15,16

15

5
2
2
Halt
Strategia de control sau ciclul de recunoatere i aciune se poate implementa utiliznd o
procedur recursiv Path(X,Y), unde X reprezint poziia iniial a calului de ah, iar Y poziia n
care acesta trebuie mutat.
procedure Path(X,Y)
begin
50

Inteligena Artificial

Cap.5. Sisteme de producie

if X=Y then halt


else begin
Corespondena:
alege dintre producii pe cele a cror parte de
condiie poate fi unificat cu regula move(X,Y)
Rezolvarea conflictului:
alege din mulimea conflictual prima producie a
crei aplicare nu produce mutarea calului ntr-un
ptrel anterior vizitat (excluderea ciclurilor)
fie move(X,Z) producia selectat
Aciunea: % declanarea produciei move(X,Z)
mut calul n ptrelul Z
X := Z
stocheaz n memoria de lucru informaia c ptrelul
Z a fost vizitat
%
path(Z,Y)
afieaz(Z)
end
end;

Implementarea procedurii precedente ntr-un limbaj de calcul al predicatelor (respectiv


Prolog) este foarte simpl, aceasta constnd n scrierea a dou clauze, un fapt i o regul:
X path(X,X).
X, Y path(X,Y) Z move(X,Z) (been(Z)) assert(been(Z)) path(Z,Y).
Dup cum se poate constata regula path este recursiv. Pentru prevenirea ciclurilor n baza
de date se adaug, utiliznd n acest scop predicatul assert cte un fapt been(Z) de fiecare dat ce
un nod Z este ntlnit n procesul de cutare.
Cum iniial X=1 i Y=2, subgoal-ul move(X,Z) este unificat cu prima regul din baza de
reguli i anume producia move(1,8), variabila Z fiind instaniat cu 8. Cum calul nu a fost nc
plasat n ptrelul 8, regula respectiv este selectat i declanat. Aciunea regulii const n
actualizarea strii curente X:=Z=8 i stocarea n memoria de lucru a informaiei c ptrelul 8 a
fost vizitat. Procedura apelndu-se recursiv, acest procedeu se reia pn la atingerea strii Y=2.
Trebuie remarcat faptul c este esenial ca subgoal-urile regulii path s fie executate n ordinea n
care acestea apar n corpul regulii.

5.2. Controlul cutrii n sistemele de producie


Modelul sistemelor de producie ofer cteva mecanisme prin care proiectantul unui astfel
de sistem poate interveni dirijnd procesul de cutare: selecia modului de cutare data-driven sau
goal-driven, structura regulilor de producie i strategia de rezolvare a conflictului.
5.2.1. Selecia modului de cutare: data-driven sau goal-driven
n cutarea Data-driven (direct) se ncepe de la descrierea iniial a problemei (o secven
de axiome, simptomele unei boli, o colecie de date ce trebuie interpretate etc.) i se deduc noi
cunotine din aceste date. Deducerea noilor cunotine este consecina aplicrii unor reguli de
inferen logic, efectuarea unor mutri n cazul jocurilor sau, n general, aplicarea unor operatori
51

Inteligena Artificial
Cap.5. Sisteme de producie
de tranziie strii curente a problemei. Noua stare, rezultat n urma aplicrii operatorului de
tranziie, va fi adugat bazei de cunotine a problemei n cauz.
Descrierea precedent accentueaz oportunitatea utilizrii sistemelor de producie pentru
implementarea proceselor de cutare. Contextul (sau memoria de lucru) va fi construit din datele
presupuse a fi adevrate (ipoteze) i cele deduse ca fiind adevrate prin utilizarea unor producii n
ciclurile precedente.
O producie este selectat dac condiia acesteia
start
este unificat cu un fapt din contextul problemei.
Aplicarea (declanarea) unei reguli are ca efect execuia
aciunii asociate, aciune care va avea drept efect
modificarea contextului (memoriei de lucru), prin
v
r
q
modificarea unor informaii sau adugarea unor
informaii noi.
n tabelul de mai jos este ilustrat modul de
s
cutare al grafului AND/OR ilustrat n figura 5.1 i
p
descris prin produciile urmtoare:
goal
1. pq goal
Fig. 5.1
2. rs p
3. wr q
4. tu q
5. v s
6. start vrq
Iteraia

Contextul
(memoria de lucru)

Mulimea
conflictual

Regula
aplicat

start

start,v,r,q

6,5

start,v,r,q,s

6,5,2

start,v,r,q,s,p

6,5,2,1

start,v,r,q,s,p,goal

6,5,2,1

Halt

Observaie. Graful de mai sus nu este cunoscut a priori, ci este generat n procesul de
cutare.
Dup cum se poate constata din analiza datelor din tabelul de mai sus, s-a utilizat o
strategie simpl de rezolvare a conflictului i anume alegerea/selectarea acelei reguli aplicabile
care a fost cel mai puin recent utilizat sau nu a fost utilizat deloc.
n varianta data-driven produciile sunt de forma CONDIIE ACIUNE i anume dac
condiia este satisfcut de elementele din memoria de lucru se poate efectua aciunea respectiv.
n aceast situaie, cnd produciile sunt implicaii logice i aciunea adaug noi informaii n
memoria de lucru, actul de aplicare a unei reguli este, de fapt, modus-ponens. Aplicarea unei astfel
de reguli genereaz un nou nod al grafului AND/OR cercetat.

52

Inteligena Artificial
Cap.5. Sisteme de producie
Un sistem de producie poate fi implementat i prin utilizarea unei metode goal-driven de
cutare. Pentru exemplificare, s considerm secven de reguli de producie de mai jos, reguli care
genereaz graful AND/OR alturat.
goal
1. pq goal
2. rs p
3. wr p
p
q
4. tu q
5. v s
6. start vrq
w
r
s
t
u
n aceast situaie o producie CONDIIE
ACIUNE este aplicabil dac aciunea acesteia
poate fi unificat cu un element din memoria de
lucru. Aplicarea unei reguli implic adugarea
condiiei regulii respective informaiilor din
memoria de lucru. Procesul de cutare se oprete
cnd n baza de date se gsete un fapt echivalent cu
datele iniiale ale problemei. Trasarea acestui
algoritm, pe cazul exemplului propus, este ilustrat n tabelul urmtor.
Contextul
(memoria de lucru)

Iteraia

Mulimea
conflictual

start
Fig. 5.2

Regula
aplicat

goal

goal,p,q

1,2,3,4

goal,p,q,r,s

1,2,3,4,5

goal,p,q,r,s,w

1,2,3,4,5

goal,p,q,r,s,w,t,u

1,2,3,4,5

goal,p,q,r,s,w,t,u,v

1,2,3,4,5,6

goal,p,q,r,s,w,t,u,v,start

1,2,3,4,5,6

halt

Analiznd tabelul de mai sus se constat c strategia de rezolvare a conflictului este aceeai
cu cea utilizat n cutarea data-driven.
5.2.2.Controlul cutrii prin intermediul strategiei de rezolvare a conflictului
Dup cum s-a specificat mai sus, sistemele de producii permit implementarea unor funcii
euristice pentru rezolvarea conflictului. n cele ce urmeaz sunt prezentate principiile utilizate
pentru implementarea strategiilor generale de rezolvare a conflictului. Evident, eficiena procesului
de cutare nu este aceeai dac se implementeaz o strategie eficient de rezolvare a conflictului
sau se alege cea mai simpl dintre ele: selectarea primei reguli care nu conduce la un ciclu.
Cele mai reprezentative aspecte care trebuie avute n vedere la implementarea unei strategii
generale de rezolvare a conflictului sunt urmtoarele:
53

Inteligena Artificial
Cap.5. Sisteme de producie
Refracia.
Dac o regul a fost aplicat, aceasta nu mai poate fi aplicat pn ce
contextul n care aceast regul a fost aplicat nu s-a modificat (rolul
refraciei este de a evita ciclurile).
Recentitatea. Sunt preferabile acele reguli ale cror condiii sunt unificate cu cele mai
recente fapte adugate n memoria de lucru (se influeneaz continuarea unei
anumite linii de raionament).
Specificitatea. O regul mai specific este preferabil n raport cu una general. O regul
este mai specific dect alt regul dac partea de condiie a regulii
respective este mai restrictiv dect a celeilalte.

REZUMAT
1. Un sistem de producii const dintr-o mulime finit producii, reguli de forma condiie ->
aciune, i o baz de date (memoria de lucru) care conine starea curent a problemei
(contextul).
2. Sistemele de producii au urmtoarea strategie de control, aplicabil n fiecare ciclu de
execuie: a) se testeaz condiiile produciilor din baza de cunotine i se formeaz
mulimea conflictual (a regulilor aplicabile, ale cror condiii sunt ndeplinite de datele din
context); b) se selecteaz regula care va fi declanat (la un ciclu se execut o singur
regul, selectat din mulimea conflictual dup o strategie anterior stabilit); c) se execut
partea de aciune a regulii declanate, ceea ce conduce la modificarea contextului
problemei.
3. Se reseteaz toate produciile selectate (mulimea conflictual) i se reia ciclul de la faza
de coresponden folosindu-se contextul modificat n ciclul anterior. Dac un ciclu nu
produce aciuni, sistemul se oprete. Oprirea mecanismului interpretativ poate avea loc i
ca urmare a executrii unei producii la care partea de aciune specific oprirea (n general,
la gsirea soluiei).

PROBLEME PROPUSE
Problema 1. S se obin prin metoda sistemelor de producii ordonarea alfabetic a irului de
caractere: cabbcba.
Producii:
1.
ba -> ab
2.
ca -> ac
3.
cb -> bc
irul (contextul) iniial: cabbcba.
Problema 2. S se rezolve problema 8-puzzle din figura de mai jos utiliznd un sistem de
producii.
54

Inteligena Artificial

Cap.5. Sisteme de producie

Starea iniial

Goal

3
4

Producii:

Contextul conine starea goal


-> Halt
Patrelul negru nu este sus
-> mut ptrelul negru n sus
Patrelul negru nu este n stnga -> mut ptrelul negru la stnga
Patrelul negru nu este n dreapta -> mut ptrelul negru la dreapta
Patrelul negru nu este jos
-> mut ptrelul negru n jos
Contextul (Memoria de lucru) conine configuraia curent
Strategia de control:
1. ncearc fiecare producie n ordine;
2. Evit ciclurile;
3. Oprete-te dac ai ajuns la Goal.

TEST DE AUTOEVALUARE
1.

2.

3.

4.

5.

6.

Ce este o producie:
a. Pereche ordonata (condiie, aciune) .
b. Pereche ordonata (aciune, condiie).
c. Pereche neordonat.
n cazul unei mulimi conflictuale:
a. Regulile acestei mulimi intra ntr-o competiie din care toate vor fi declanate.
b. Regulile acestei mulimi intra ntr-o competiie din care una va fi declanat .
c. Regulile componente se vor declana fr competiie.
n cazul metodei goal-driven, o producie e aplicabil dac:
a. Condiia acesteia nu poate fi unificat cu un element din context.
b. Aciunea acesteia poate fi unificat cu un element din memoria de lucru.
c. Condiia acesteia poate fi unificat cu un element din memoria de lucru.
Ce reprezint contextul?
a. Starea curenta a procesului de rezolvare a unei probleme.
b. Starea anterioara a procesului de rezolvare a unei probleme.
c. Starea viitoare a procesului de rezolvare a unei probleme.
Prin declanarea unei reguli are loc:
a. Se oprete necondiionat programul.
b. Se reia ciclul fr modificarea contextului.
c. Executarea prii de aciune din corpul regulii.
Strategia de cutare pornind de la descrierea iniial a problemei poart denumirea de:
a. Data-driven.
b. Goal-driven.
c. Open-driven.

Rspuns
1. a
2. b

3. b
4. a

5. c
6. a

55

Inteligena Artificial

Cap.5. Sisteme de producie

56

Inteligena Artificial

Cap. 6. Planning

Cap. 6.
Planning
Obiective
1. nsuirea noiunilor de baz privind reprezentarea i rezolvarea problemelor de
inteligen artificial prin metoda de planning.
2. Formarea deprinderilor de reprezentare corect i eficient a problemelor de inteligen
artificial prin predicate pentru descrierea starilor problemei i a operatorilor de tranziie.
3. Dezvoltarea abilitilor practice de operare cu raionamentele specifice metodei planning.

Durata: 2 ore

Prin planning se nelege generarea secvenei de operaii care trebuie executate, adeseori de
ctre un robot, n vederea realizrii unui anumit task. Pe lng aplicaiile evidente n robotic,
planning-ul este utilizat n sistemele expert, pentru controlul automat al proceselor de fabricaie,
nelegerea limbajelor naturale etc.
Exemplele care se vor prezenta n continuare sunt alese din domeniul roboticii.
Componentele sau paii care compun un plan de operaii, pe care un robot va trebui s le execute
n vederea ndeplinirii unui anumit task, se vor numi operaii elementare sau atomi. Un astfel de
plan de operaii, prin care un robot ar executa o comand de genul "adu (te rog) obiectul A din
camera B", ar putea fi urmtorul:
1. Las jos ce ai n prehensor;
2. Du-te n camera B;
3. Identific obiectul A;
4. Prehenseaz obiectul B;
5. Prsete camera B;
6. Revino la poziia iniial.
Planurile sunt elaborate prin cutare, n spaiul generat de operaiile elementare, a secvenei
de atomi necesare realizrii task-ului propus. Strile acestui spaiu sunt configuraiile posibile ale
mediului, mediu care se modific prin intermediul operaiilor pe care robotul le execut.
Elaborarea planului de operaii se poate realiza off-line, acesta nefiind condiionat de
prezena fizic a robotului pentru care planul respectiv este generat. n majoritatea variantelor de
planning, debutate ncepnd cu anul 1960, ntregul plan de operaii era generat nainte ca un robot
s execute prima operaie a acestui plan. Planurile erau generate n absena robotului, partea de
inteligen artificial (planning-ul) fiind separat de cea de execuie (postprocesarea operaiilor
componente pentru robotul gazd).
Mai recent, odat cu implementarea unor senzori sofisticai i creterea considerabil a
performanelor microprocesoarelor, cercetrile s-au orientat n direcia integrrii dintre generarea i
execuia operaiilor unui task (on line). Evident, acest nivel superior de planning d o mai mare
autonomie robotului, un astfel de plan ne mai fiind static, ci generat dinamic, permind
conceperea unor roboi autonomi de explorare, roboi capabili s rezolve situaii pentru care nu au
fost programai n mod explicit (ex. Lunahod).
57

Inteligena Artificial

Cap. 6. Planning

Dei planning-ul este o problem de cutare n spaiul de stri, aceasta ridic cteva
probleme particulare, probleme ce vor fi punctate n continuare.
Prima dintre problemele ridicate de planning decurge din complexitatea strilor. n
exemplul considerat, o stare const n descrierea configuraiei curente a mediului, fiind de o
complexitate mult mai mare dect cea a strilor utilizate pn acum n problemele de cutare. O
astfel de stare este modelat de obicei printr-o colecie de aseriuni n limbajul de calcul al
predicatelor.
Complexitatea strilor atrage dup sine dificulti n ceea ce privete modelarea
operatorilor de tranziie i a impactului pe care aceti operatori l au asupra mediului. Astfel, o
particularitate care apare n cazul planning-ului este necesitatea caracterizrii situaiilor care rmn
neschimbate n urma execuiei unei anumite operaii elementare. De exemplu, ridicarea unui obiect
schimb poziia obiectului i faptul c prehensorul nu mai este liber, ci conine obiectul respectiv;
n schimb, acea operaie nu schimb poziia altor obiecte din mediul robotului.

6.1. Prima metod de planning (John McCarthy)


Problema specificrii a ceea ce se modific i ce rmne invariant n descrierea unei stri
prin aplicarea unui operator de tranziie este cunoscut sub numele de "problem de elaborare a
planului" ("frame problem", McCarthy & Hayes 1969, McCarthy 1980). Cu ct descrierea unei
stri este mai complex, cu att aceast problem este mai dificil. Pentru exemplificarea acestei
metode se consider situaia prezentat n fig. 6.1. Se presupune c toate obiectele notate a, b, c i d
sunt de form cubic, identice ca mrime i c prehensorul robotului poate s prehenseze oricare
din aceste cuburi cu condiia ca obiectul respectiv s nu aib un alt cub situat deasupra sa (spunem
c obiectul respectiv este liber).

Fig. 6.1. Dispunerea obiectelor n mediul robotului


Se presupune c braul articulat al robotului poate executa urmtoarele operaii elementare
(primitive):
pickup(W)
Ridic cubul W de pe mas. Se presupune c cubul W este liber i
prehensorul era liber n momentul lansrii comenzii.
pudown (W) Pune cubul W pe mas. Cubul W trebuie s fie prehensat n momentul
activrii comenzii.
takeoff (U, V) Ridic cubul U de deasupra cubului V. U trebuie s fie situat deasupra lui V,
V s nu aib un alt cub deasupra sa i prehensorul s fie liber.
puton (U, V) Pune cubul U deasupra cubului V. Cubul U trebuie s fie prehensat, iar
cubul V s fie liber n momentul lansrii comenzii.
Starea curent din mediul robotului poate fi descris prin utilizarea urmtoarele predicate:
on (U, V)
- cubul U este situat deasupra cubului V.
58

Inteligena Artificial

Cap. 6. Planning

clear (X)
- cubul X este liber (poate fi prehensat).
hold (W)
- prehensorul conine obiectul W.
empty
- prehensorul est liber.
ontable (Y)
- obiectul Y este situat pe mas.
Regulile de mai jos descriu anumite proprieti cunoscute n domeniul aplicaiei
considerate:
1.
( X clear(X) ( Y on(Y, X)))
2.
( Y X on(Y, X) ontable(Y))
3.
( Y hold(Y) empty)
i anume cele trei proprieti afirm c:
1.
Un obiect oarecare X este liber dac nu exist nici un bloc Y situat deasupra sa.
2.
Dac un bloc este pe mas el, nu se gsete deasupra altui bloc.
3.
Prehensorul este liber dac i numai dac acesta nu conine un obiect.
Expresiile de mai sus au, nainte de toate, un aspect declarativ, descriind anumite relaii i
proprieti. Totodat, aceste expresii au i un aspect semantic (sau procedural), sugernd procedeul
prin care aceste proprieti pot fi ndeplinite. Astfel, interpretat semantic, prima regul spune c
un obiect X poate fi eliberat prin nlturarea eventualelor obiecte Y situate deasupra sa.
Descrierea situaiei iniiale din mediul robotului (v. fig.6.1), se realizeaz prin urmtoarele
aseriuni:
Stare 1:
empty
clear (a).
clear (b).
on (a, c).
on (b, d).
ontable (c). ontable (d).
Pornind de la aceast stare, spaiul de stri este generat prin aplicarea operatorilor de
tranziie corespunztori operaiilor elementare ale robotului. Specificul acestei metode const n
faptul c operatorii de tranziie sunt de forma:
(A(BC)),
n care formulele A, B i C au urmtoarele semnificaii:
A operatorul de tranziie;
C condiie pe care starea curent trebuie s o ndeplineasc ca operatorul s fie aplicabil;
B colecie de predicate care arat proprietile noi ale strii generate prin aplicarea
operatorului de tranziie respectiv.
Cele patru operaii elementare pot fi descrise prin urmtoarele reguli:
(R1)
X (pickup(X)
(hold(X) (empty ontable(X) clear(X))))
(R2)
X (putdown(X)
((ontable(X) clear(X) empty) (hold(X)))))
(R3)
X Y (puton(X, Y)
((on(X, Y) clear(X) empty) (hold(X) clear(Y))))
(R4)
X Y (takeoff(X, Y)
((clear(Y) hold(X) (on(X, Y) clear(X) empty)))

59

Inteligena Artificial

Cap. 6. Planning

Observaie: Cele patru reguli de mai sus sunt de forma A (B C); operatorul A se
poate utiliza pentru producerea noilor predicate B cnd condiiile C sunt ndeplinite. Dar, pentru
aplicarea operatorilor de tranziie trebuie rezolvat, n prealabil, problema de elaborare a planului,
definind aa numitele axiome de elaborare a planului ("frame relations"). Axiomele de elaborare
a planului sunt reguli care descriu care din predicatele din descrierea strii curente rmn
invariante la aplicarea unui operator de tranziie, acestea fiind copiate ca atare n descrierea strii
generate prin aplicarea operatorului respectiv.
n cazul exemplului considerat, se pot scrie mai multe astfel de axiome. De exemplu,
urmtoarele dou axiome exprim faptul c un cub situat pe mas nu este afectat de operatorii
puton i takeoff:
X Y Z (puton(Y, Z) (ontable(X) ontable(X))),
X Y Z (takeoff(Y, Z) (ontable(X) ontable(X))),
regulile avnd aceeai semnificaie. Astfel, dac predicatul ontable (X) exist n descrierea strii
curente, acesta va fi copiat i n noua stare generat (pentru toate instanierile posibile ale variabilei
X), dac unul din cei doi operatori este aplicat.
Alte axiome de elaborare a planului ar putea preciza c on i clear sunt afectate de
operatorii puton i takeoff doar n cazuri particulare. De exemplu, on (b, a) nu este afectat de
takeoff(c, d).
Nu mai insistm asupra celorlalte axiome de elaborare a planului care se pot defini pentru
cazul considerat, dar s subliniem faptul c trebuie definite aceste axiome pentru toate situaiile
care pot surveni n contextul considerat; acesta este un aspect care evideniaz nc o dat
complexitatea elaborrii planului de operaii.
mpreun, operatorii de tranziie i axiomele de elaborare a planului definesc un spaiu.
Pentru ca un operator s poat fi aplicat trebuie s fie ndeplinite condiiile C din definiia acestuia.
Astfel, pentru ca operatorul takeoff s poat fi aplicat trebuie ca toate cele trei condiii:
on(X, Y), clear(X) i empty
s fie ndeplinite. Aceste condiii sunt satisfcute pentru dou substituii posibile ale variabilelor X
i Y. Aplicat prin unificarea {b/X, d/Y} operatorul takeoff va produce urmtoarele dou predicate
clear(d) i hold(b).
Noua stare generat, Stare 2, va fi descris din acele predicate din descrierea strii curente,
probate ca invariante prin aplicarea axiomelor de elaborare a planului, la care se adaug noile
predicate generate de operatorul de tranziie (lista A).
Stare 2
ontable(c)
on(a, c)

ontable(d)
hold(b)

clear(a)
clear(d)

Dei teoretic problema pare simpl, rezolvarea practic este foarte dificil, numrul
axiomelor de generare a planului crescnd exponenial, n funcie de numrul predicatelor utilizate n
descrierea strii. Complexitatea unui astfel de proces de cutare impune necesitatea descompunerii
unui goal n dou sau mai multe subgoal-uri independente sau liniare (care se pot executa
secvenial). Aici apare o nou problem. O greit interpretare a independenei acestor subgoal-uri
poate face ca realizarea unui subgoal s fac imposibil realizarea unui alt subgoal.

60

Inteligena Artificial

Cap. 6. Planning

6.2. Metoda STRIPS ( STanford Research Institute Planning System)


Standford Reasearch Institute (SRI), nume de care se leag multe din realizrile valoroase
n domeniul inteligenei artificiale, este creatoarea a ceea ce se numete STRIPS (Stanford
Research Institute Planning System) implementat la nceputul anilor '70 pentru controlul robotului
SHAKEY, prin utilizarea unei metode eficiente de planning. Sistemul este prevzut cu o metod de
nvare, planurile rezolvate cu succes sunt stocate ntr-o baz de cunotine sub form de macrooperatori, care pot fi reutilizai n situaii similare ivite n viitor.
Caracteristic sistemului de producie conceput de cercettorii de la Standford Reasearch
Institute este modul de reprezentare al operatorilor de tranziie. Concret, un operator de tranziie
este un triplet ordonat (P, A, D). Primul element al tripletului reprezint precondiiile care trebuie
ndeplinite de starea curent pentru ca operatorul respectiv s poat fi aplicat. Cel de al doilea
element definete lista de predicate pe care operatorul le va aduga (Aadd) n descrierea noii stri
generale (proprieti noi ale strii generale). Ultimul element al tripletului definete secvena de
predicate din descrierea strii curente care vor fi eliminate (Ddelete) n descrierea noii stri,
acestea ne mai fiind consistente n contextul strii generate de operator.
Aceast reprezentare este mult mai natural i are avantajul de a ne scuti de povara
formulrii axiomelor de elaborare a planului.
Revenind la exemplul anterior, cei patru operatori corespunztori operaiilor elementare ale
robotului sunt reprezentai n felul urmtor:
pickup(X)
P: ontable(X), clear(X), empty
A: hold(X)
D: ontable(X), clear(X), empty
putdown(X)
P: hold(X)
A: ontable(X), clear(X), empty
D: hold(X)
takeoff(X)
P: on (X, Y), clear(X), empty
A: clear(Y), hold(X)
D: on(X,Y), clear(X), empty
puton(X, Y)
P: hold(X), clear(Y)
A: on(X, Y), clear(X), empty
D: hold(X), clear(Y)
Observaie: n contextul listelor P, A, D de mai sus, virgula are semnificaia de conjuncie logic.
Un dezavantaj minor al modelrii operatorilor de tranziie, prin utilizarea celor trei liste,
const n pstrarea unor informaii redundante n listele respective. De exemplu, n cazul
operatorului takeoff inserarea predicatului hold(X) implic tergerea de la sine a predicatului
empty. Acest dezavantaj este ns minor n raport cu facilitile oferite de aceast modelare a
operatorilor de tranziie i anume toi descriptorii unei stri care nu sunt citai n listele A(add) sau
D(delete) rmn nemodificai n descrierea noii stri.
Spaiul strilor, generat cu oricare din cele dou metode prezentate mai sus, este ilustrat n
figura 6.2.

61

Inteligena Artificial

Cap. 6. Planning

Fig. 6.2. Spaiul generat prin aplicarea operatorilor takeoff, puton, putdown i pickup
Problemele rezolvate, a cror soluie este memorat, pot fi utilizate pentru rezolvarea altor
probleme similare. De aceea, se impune stocarea unor soluii ntr-o form fix. Forma fix propus
de cercettorii de la SRI poart numele de tabela triunghiular i este prezentat mai jos.

empty
clear(a)
on(a,c)
ontable(c)
clear(b)
on(b,d)
ontable(d)

takeoff(b,d)

clear(a)
on(a,c)
ontable(c)
ontable(d)

hold(b)
clear(d)

clear(a)
on(a,c)
ontable(c)
ontable(d)

clear(d)

ontable(c)
ontable(d)

clear(d)

putdown(b)

clear(b)
ontable(b)
empty

takeoff(a,c)

clear(b)
ontable(b)

hold(a)
clear(c)

Starea iniial este nscris n linia 0, coloana 0. Lista add corespunztoare operatorului O 1
(primul aplicat) n linia 1 coloana 1. n linia 1 coloana 0 se nscrie rezultatul obinut prin tergerea
din starea iniial a predicatelor din lista delete a operatorului O1. Cu alte cuvinte, starea dup
aplicarea operatorului O 1 este nscris n coloanele din linia 1. Rezultatul aplicrii operatorului O 2
62

Inteligena Artificial

Cap. 6. Planning

la aceast stare va fi memorat n linia 3 .a.m.d. Starea nscris n ultimul rnd al tabelului
triunghiular satisface starea obiectiv.
Tabelele triunghiulare pot fi generalizate prin introducerea variabilelor, definind aa
numiii macrooperatori. Prin stocarea n baza de cunotine a macrooperatorilor, sistemul STRIPS
i-a sporit mult eficiena de elaborare a planurilor, prin reutilizarea macrooperatorilor o dat
"nvai" n situaii similare.
n diagrama de mai jos este prezentat o tabel triunghiular generalizat. Operaiile
elementare ale planului sunt nscrise de-a lungul diagonalei. Acestea sunt cele patru operaii
cunoscute: pickup, putdown, takeoff i puton.
n coloana 1 este precizat starea iniial, iar n linia 7 starea final.
Precondiiile fiecrei operaii sunt nregistrate n linia care precede numele operaiei.
Postcondiiile (coninute n listele add i delete) sunt nscrise n coloana situat sub numele
comenzii. Predicatele respective sunt nscrise n liniile corespunztoare operaiilor care le
utilizeaz drept precondiii, organiznd astfel tabela ntr-o manier relevant pentru succesiunea
operaiilor.
Tabela triunghiular generalizat

clear(Y)
on(Y,V)
empty

hold(Y)

2
3

takeoff(Y,V)

putdown(Y)
takeoff(X,U)

empty

clear(X)
on(X,U)

4
5

ontable(U)

putdown(X)

clear(U)

empty

clear(V)

6
7

hold(X)

hold(U)
ontable(Y)
clear(Y)

ontable(V)
2

pickup(U)

ontable(X)
clear(X)

puton(U,V)
on(U,V)
clear(U)

Se numete nucleu de ordin n intersecia dintre liniile avnd numrul cel puin egal cu n (r
n) i coloanele avnd numrul cel mult egal cu n (c n). n figur este reprezentat ngroat
nucleul de ordin 2. n executarea unui plan reprezentat printr-o tabel triunghiular, operaia i poate
fi efectuat numai dac toate predicatele coninute n nucleul i sunt adevrate.
Tabela triunghiular permite reluarea i refacerea planului ca urmare a apariiei unor
evenimente neateptate. De exemplu, cnd robotul execut primul operator puton(c,d), el scap
goalul c. Presupunnd c robotul poate localiza cubul c prin intermediul unei camere video, starea
curent satisface clauzele cuprinse n nucleul 4, ceea ce face ca robotul s reia planul cu operaia
pickup(c). Fiind dat o tabel triunghiular, orice stare ce satisface toate clauzele nscrise ntr-un
nucleu al tabelei triunghiulare poate fi convertit n starea obiectiv.

63

Inteligena Artificial

Cap. 6. Planning

REZUMAT
1.
2.
3.

4.

Planning-ul poate fi privit ca o problem de cutare n spaiul de stri;


Strile sunt generate prin aplicarea operatorilor de tranziie i a axiomelor de elaborare a
planului;
Problema const n gsirea, n graful ce modeleaz spaiul de stri, a unui drum de la starea
iniial la cea final, denumit obiectiv. Operaiile corespunztoare arcelor ce compun
acest drum constituie planul de operaii pentru realizarea obiectivului propus.
Dou metode reprezentative s-au impus n rezolvarea problemelor de planning: a) metoda
John McCarthy i b) metoda STRIPS.

PROBLEME PROPUSE
Problema 1. Descriei strile iniial i final ale problemei de planning de mai jos i generai o
soluie a acesteia prin cele dou metode expuse anterior.

a.

b.
Fig. 1

Problema 2. S se rezolve problema turnurilor din Hanoi tratat ca problem de planning.

Fig. 2. Turnurile din Hanoi


Pentru descrierea situaiei curente se vor utiliza predicatele din tabelul de mai jos.
64

Inteligena Artificial

Cap. 6. Planning

Predicat
handempty
hold(D)
turnempty(T)
ontable(D,T)
clear(D)
on(X,Y)

Semnificaie
Prehensorul este liber
Discul D este prehensat
Turnul T nu conine nici un disk
Discul D se afl la baza turnului T
Discul D este liber (poate fi prehensat)
Discul X este situat deasupra discului Y

Concepei i completai listele P, A i D corespunztoare operaiilor primitive indicate n


tabelul de mai jos.
Operaia
pickup(X)

putdown(D,T)

takeoff(X,Y)

puton(X,Y)

Coninutul listelor P, A, D
P
A
D
P
A
D
P
A
D
P
A
D

Condiia de a nu plasa un disc de diametru mai mare peste unul de diametru mai mic este
deja implementat n contextul operaiei puton, a crui operator de tranziie este reprodus mai
jos:
move(puton(X,Y),Stare,Delete,Add) :- % Pune discul X
disc(X), disc(Y),
% peste un disc Y
diam(X,D1), diam(Y,D2), D1<D2,
Preconditii=[ * * * ],
subset(Preconditii,Stare),
Delete=[ * * * ], Add=[ * * * ].

TEST DE AUTOEVALUARE
1.

n exemplu (pickup (x)(hold (x)(empty ontable (x) clear (x)))) formula hold (x) are
urmtoarea semnificaie:
a. Produce noi predicate.
b. Este o condiie pe care starea curent trebuie s o ndeplineasc ca operatorul s fie aplicabil.
c. Colecie de predicate care arata proprietile noi a le strii prin aplicarea operatorului de
tranziie respectiv.
65

Inteligena Artificial
2.

3.

4.

5.

6.

Cap. 6. Planning

Axiomele de elaborare a planului sunt:


a. Reguli care descriu care dintre predicate rmn invariante la aplicarea unui operator de
tranziie.
b. Reguli care descriu care dintre predicate se schimb la aplicarea unui operator de tranziie.
c. Reguli care genereaz noi operatori de tranziie.
Macrooperatorii se folosesc, n probleme de planning, pentru:
a. Mrirea operatorilor de tranziie.
b. Generalizarea tabelei triunghiulare prin introducerea variabilelor.
c. Micorarea operatorilor de tranziie la aplicarea unui operator de tranziie.
Tabela triunghiular reprezint:
a. Reprezentarea tuturor soluiilor sub forma triunghiular.
b. Introducerea simbolurilor triunghiulare n rezolvarea problemei.
c. O modalitate de stocare a unei soluii ntr-o form fix triunghiular.
n forma operatorului de tranziie (A(BC)), formula C are urmtoarea semnificaie:
a. Operator de tranziie.
b. Condiie pe care starea curent trebuie s o ndeplineasc ca operatorul s fie aplicabil .
c. Colecia predicatelor noi generate prin aplicarea operatorului de tranziie.
n exemplul urmtor: P: on (x,y), clear (x), empty; A: clear (y), hold (x); D: on (x,y), clear (x),
empty; tripletul ordonat (P, A, D) are urmtoarea semnificaie:
a. Lista predicatelor adugate, a precondiiile i a predicatelor eliminate.
b. Lista precondiiilor, a predicatelor adugate i a celor eliminate .
c. Lista predicatelor eliminate, a celor adugate i a precondiiilor.

Rspuns
1. c
2. a

3. b
4. c

5. b
6. b

66

Inteligena Artificial

Cap.7. Sisteme Expert

Cap. 7.
Sisteme Expert
Obiective
1. nsuirea noiunilor de baz privind structura i rolul sistemelor expert.
2. nsuirea noiunilor privind reprezentarea cunotinelor i implementarea acestora n
sisteme bazate pe cunotine.
3. Dezvoltarea abilitilor practice de operare cu raionamentele specifice sistemelor expert.

Durata: 3 ore

7.1. Inteligena artificial i sistemele expert


Utilizarea n ultimii ani a sistemelor expert a fost asociat cu cercetrile de inteligen
artificial deoarece structura i proprietile sunt apropiate de produsele IA. Sistemele expert
(SE) beneficiaz de cercetrile ce au fost realizate n diferite zone ale IA. n fig. 7.1. se evideniaz
relaiile ntre sistemele expert i celelalte domenii ale IA.
Logic
matematic
Psihologie

tiina calculatoarelor

Lingvistic
Filozofie

Inteligena
Artificial

Sisteme
expert

Prelucrare n
limbaj natural

Robotic
Planificare

Vedere artificial

Fig. 7.1. Domenii ale inteligenei artificiale


n prezent, sistemele expert sunt tot mai mult asociate direct cu modurile de raionare i
cunotinele reprezentate. SE sunt de fapt dezvoltri n noile cmpuri ale achiziiei de cunotine
ca forme specializate de nvare, n care cunotinele sunt achiziionate direct de la expert. Alte
SE ca tehnici de IA include explicaii, nvare inteligent, planificare, rezolvarea problemelor
distribuite, cercetri ce sunt adresate direct IA.
7.1.1. Sisteme Expert. Definiii
O ramur a Inteligenei Artificiale (IA) este reprezentat i de ctre sistemele expert. Un
sistem expert este un program care urmrete cunotinele, raioneaz pentru obinerea
rezultatelor ntr-o activitate dificil ntreprins uzual doar de experii umani. Dac un
expert uman are cunotine ntr-un domeniu specific, un sistem expert utilizeaz cunotinele ce
67

Inteligena Artificial

Cap.7. Sisteme Expert

sunt stocate ntr-o baz de cunotine, baz format din cunotinele asociate domeniului
respectiv. Experii umani raioneaz i ajung la concluzii pe baza cunotinelor ce le posed,
sistemele expert raioneaz utiliznd cunotinele stocate n baza de cunotine.
Din punct de vedere funcional, un sistem expert poate fi definit astfel:
Un sistem expert (SE) este un program care urmrete un grup de cunotine pentru
obinerea n acelai mod ca i experii umani a rezultatelor despre activiti dificil de
examinat. Principala caracteristic a sistemelor expert este derivat din baza de cunotine
mpreun cu un algoritm de cutare specific metodei de raionare. Un sistem expert
trateaz cu succes probleme pentru care nu exist o soluie algoritmic clar.
Sistemele expert sunt programe aplicative de inteligen artificial bazate pe cunoatere
specializat de nivel nalt, nivel atins n societate de cei mai competeni experi umani ai
domeniilor aplicative ce se implementeaz n aceste sisteme. Denumirea de "sisteme expert" deriv
din capacitatea acestor programe de a egala unele din performanele de gndire i de intuiie pe
care experii umani le obin atunci cnd aplic o astfel de cunoatere pentru rezolvarea unor
probleme complexe din domeniul de expertiz.
Din punct de vedere funcional un sistem expert este definit ca un program ce ofer
cunotine pentru obinerea rezultatelor taskurilor dificile rezolvate uzual de experii umani.
Din punct de vedere structural i arhitectural SE au urmtoarele caracteristici:

sunt construite n general pentru focalizarea taskurilor cu gam limitat de


aplicabilitate;

exist o separare explicit ntre cunotine i metodele de raionare utilizate n


vederea obineri unor concluzii pe baza cunotinelor;

sunt capabile s explice propriile aciunii i linii de judecat.


Avantajele sistemelor expert fa de aplicaiile avnd complexitate comparabil, dar
rezolvate cu ajutorul metodelor convenionale de programare a calculatoarelor, constau n
puterea lor de a soluiona problemele n baza cunoaterii asupra ntregului domeniu specific, n
capacitatea lor de a reprezenta i de a nva, n uurina cu care folosesc i combin diferite
strategii de rezolvare. O caracteristic principal a sistemelor expert, care deriv din conceptele
aplicate la elaborarea acestora, este flexibilitatea. Cnd unele proceduri existente sunt
actualizate, sau sunt adugate noi proceduri, nu este necesar rescrierea sau actualizarea
celorlalte programe care alctuiesc sistemul.
Sistemele expert au fost acceptate cu entuziasm ntr-o mulime de domenii: afaceri, industrie
i alte sfere profesionale, ca o cale de fructificare a experienei, disponibil oricnd este necesar. SE
sunt binevenite n domenii particulare n care experii umani existeni au suficient experien pe care
o pot furniza.
Tehnologiile de programare utilizate n dezvoltarea sistemelor expert pot fi privite ca o
evoluie timpurie a limbajelor calculatoarelor n noul nivel al exprimrii, ce permite utilizarea
reprezentrii a foarte multor cunotine. Limbajele timpurii sunt dificil de utilizat, exceptnd
specialitii n calculatoare. Recentele limbaje de programare sunt binevenite pentru utilizarea i
includerea diverselor forme de expresie uman.
Tehnologiile de programare specifice SE marcheaz ali pai n aceast direcie. Pentru a
fi utilizat efectiv, fiecare tehnologie nou este nsoit de un set de ghiduri i metodologii pentru
utilizare. Aceasta ajut noii utilizatori la creterea eficienei utilizrii i a maximizrii

68

Inteligena Artificial

Cap.7. Sisteme Expert

productivitii. Din acest motiv utilizarea tehnicilor specifice n SE cu foarte multe cunotine va
necesita un nou set de metodologii, bazate pe experiena crescut, n dezvoltarea aplicaiilor.
Expertul care nelege necesitatea utilizrii unui SE n domeniul su de cunoatere poate
de asemenea obine un ajutor de la inginerul de cunotine (adic, a specialistului n calculatoare
priceput n SE) deoarece, n urma discuiilor cu acesta, anumite cunotine vor fi reformulate. n
concluzie, prin interaciunea ntre expertul uman i inginerul de cunotine poate fi fcut un
schimb ntre domeniile de experien ale fiecruia. Deci, inginerul de cunotine, n general un
ignorant al domeniului cunoaterii specifice expertului, iar expertul cu foarte puine cunotine
despre sisteme expert au puncte de vedere ce vor fi puse de acord n urma acestei colaborri.
Prin urmare, nu este uor pentru un expert s gseasc un inginer de cunotine n vederea
colaborrii deoarece cunotinele sunt expansive i greu de formulat ntr-o manier concis.
Aceasta motiveaz necesitatea ca experii umani s aib mai multe cunotine despre sistemele
expert. Sunt necesare ct mai multe utilitare specifice dezvoltrii sistemelor expert, trebuie s fie
posibil ca eventual mai muli experi s fie adepii utilizrii SE fr a fi utilizate cunotinele lor
n acelai timp de ctre inginerii de cunotine. n orice eventualitate, punctele de vedere ale
inginerului de cunotine sunt utilizate n proiectare i este limpede c procesul construirii
sistemelor expert este mai eficient dac expertul este cunosctor asupra tehnologiilor i
metodologiilor sistemelor expert.
7.1.2. Originea Sistemelor Expert. Experimentri i realizri
Dup ce s-a trecut de limitrile de spaiu i timp, apreciate la cteva ordine de mrime, au
fost marcate succese n comercializarea mai multor programe ce furnizeaz taskuri specifice cu
cele ale experilor umani, numite i sisteme expert. n 1960 NASA a hotrt trimiterea unui
vehicul pe Marte, unul dintre scopuri fiind cercetarea structurii chimice a solului acestei planete.
Pentru aceasta cercettorii de la Stanford au construit un program ce a trebuit s nglobeze
experiena chimitilor n identificarea structurii chimice a unor substane pornind de la
spectrograma de mas. n dezvoltarea programului numit DENDRAL sunt investigate
cunotinele experilor umani n domeniul spectrografiei de mas, analizei structurilor chimice,
descoperindu-se cu acest prilej i o serie de erori n literatur. Datorit nglobrii experienei
chimitilor, utiliznd att deduciile empirice ct i raionamente tiinifice, DENDRAL a fost
considerat primul sistem expert. El a fost scris n FORTRAN i cunotinele proprii ale
domeniului erau integrate cu mecanismul de inferen, motiv pentru care ameliorarea sa este
greu fezabil. DENDRAL a fost urmat de un mare numr de alte SE utilizate n rezolvarea de
probleme similare cu cele realizate de experii umani.
Se consider c istoria sistemelor expert a nceput n anul 1964 cu elaborarea programului
DENDRAL-64, conceput n vederea construirii, enumerrii i notrii moleculelor organice, ca
structuri arborescente i grafuri ciclice. Acest sistem genereaz reprezentri structurale plauzibile
pentru moleculele organice, pornind de la spectogramele de mas ale substanelor analizate.
Dezvoltat i perfecionat n decursul mai multor ani de ctre autorii si, n cadrul
laboratoarelor de inteligen artificial de la Universitatea Standford, sistemul DENDRAL a
servit ca exemplu de pionierat pentru a arta puterea pe care metodele inteligenei artificiale o
pot dovedi n aplicaii deosebit de sofisticate. n domeniul chimiei se mai pot aminti alte realizri
semnificative, sistemul CRYSALIS, realizat de Engelmore i Terry, care interpreteaz

69

Inteligena Artificial

Cap.7. Sisteme Expert

diagramele de densitate ale electronilor pentru proteine, sau sistemul SECS (Wipke, 1974) care
acord utilizatorilor asisten la conceperea schemelor pentru sinteza chimic organic.
n domeniul geneticii moleculare, sistemul MOLGEN asist pe cercettori la elaborarea
planurilor pentru experimentele cu ADN. Acest sistem a introdus n inteligena artificial unele
dezvoltri privind planificarea n sistemele expert.
Domeniul medicinii este reprezentat n numeroase i variate sisteme expert, dintre care
cel mai reprezentativ fiind sistemul expert MYCIN, bazat pe reprezentarea relaiilor cauzale cu
ajutorul regulilor de producie. Sistemul funcioneaz interactiv pentru elaborarea diagnosticului
n cazul infeciilor bacteriene ale sngelui, folosind cunoaterea despre simptome i datele
rezultate din analiza sngelui, producnd n acelai timp i recomandri privind tratamentul
medicamentos adecvat. Pornind de la experiena acumulat la elaborarea sistemului MYCIN, s-a
dezvoltat un alt sistem EMYCIN. Acesta din urm este un sistem expert instrumental, capabil de
a fi ncrcat cu cunoatere specific diferitelor domenii ale practicii clinice, genernd astfel
sisteme expert specializate. n acest fel a fost obinut sistemul expert PUFF pentru diagnosticarea
bolilor pulmonare sau sistemul HEADMED pentru diagnosticarea i medicaia unor afeciuni
neuro-psihiatrice. Un alt sistem bine cunoscut n practica medical, sistemul INTERNIST, este
bazat pe cunoaterea privind diagnosticul n medicina intern i supravegherea clinic a
pacienilor (Pople, Myers,Miller 1977).
Sistemul CASNET (Weiss,1978), destinat diagnosticrii bolilor de ochi, organizeaz
cunoaterea despre boli pe urmtoarele trei niveluri:
simptome i teste de laborator care alctuiesc probe directe ale existenei bolii;
stri fiziopatologige ale pacientului, presupuse a putea fi prezente fr a fi considerate mutual
exclusive;
categoriile de boli, descrise pe baza de pattern-uri de stri.
Prin organizarea bazei de cunotine i prin prevederea mai multor strategii de control, sistemul
expert CASNET se detaeaz ca un sistem mai elaborat, n ceea ce privete tratarea conceptelor
fundamentale, de adncime i de complexitate, ale cunoaterii despre domeniul de expertiz.
Un ultim exemplu din domeniul medicinii, sistemul expert MDX, are o structur mai
complex, alctuit dintr-o colecie de mici subsisteme expert, care comunic ntre ele prin
intermediul unei zone de comunicaii cu ajutorul unei tehnici speciale (de broacasting).
n domeniul explorrilor geologice pentru descoperirea zcmintelor de minerale,
sistemul expert PROSPECTOR acord asisten geologilor la evaluarea interesului pe care o
anumit zon dedicat prospeciunilor i forajelor geologice, o prezint n privina existenei
depozitelor minerale de un anumit tip cutat.
Un sistem expert cu performane deosebite n ceea ce privete nivelul i calitatea
rezultatelor obinute este sistemul AM destinat descoperirii conceptelor n matematici. Prin
combinarea i adaptarea diferitelor metode ale inteligenei artificiale, folosirea cunoaterii
declarative, normative i euristice, sistemul conduce la producerea unor raionamente rafinate
comparabile cu cele obinute de experii de mare clas.
Sistemul expert HEARSAY-II, destinat nelegerii vorbiri, se caracterizeaz prin
utilizarea unor tehnici deosebite de organizare a cunoaterii, de control i de comunicaie ntre
componente. Cunoaterea este organizat n uniti procedurale denumite surse de cunoatere,
care sunt alctuite dintr-o component care evalueaz aplicabilitatea sursei de cunoatere
(componenta condiional) i o component care reprezint nsui programul de aciune pe care
70

Inteligena Artificial

Cap.7. Sisteme Expert

trebuie s l ndeplineasc o surs de cunoatere aplicabil, sau invocat spre aplicare. Aceste
concepte au fost dezvoltate ulterior n sistemul HEARSAY-III, care este un sistem cadru
independent de domeniu, destinat implementrii, pe baz exclusiv de cunoatere expert, a unor
tipuri diverse de sisteme expert dedicate.
Cu toate c elaborarea sistemelor expert independente de domeniu este nc la primele
ncercri i realizri, se poate afirma c viitorul i aparine. Aceasta se datoreaz necesitii de
asigurare a unor componente cognitive i rezolutive performante pentru orice fel de domeniu
aplicativ. Un astfel de sistem expert independent de domeniu este sistemul INTEXP.
n informatic, sunt cunoscute sisteme expert pentru asistarea elaborrii de programe, ca
de exemplu sistemul PECOS care genereaz programe n limbajul LISP pornind de la descrierea
algoritmilor. Sistemul expert APE genereaz programe n limbajul INTERLISP, pornind de la
specificaiile unor algoritmi abstraci i tipuri abstracte de date prelucrate.
n domeniul ingineriei cunoaterii i inteligenei artificiale, instrumentele elaborate
reprezint doar unele cutri i experimentri. De exemplu, sistemul TEIRESIAS ofer
utilizatorilor de sisteme de tip MYCIN posibiliti de achiziie a cunoaterii experte. Un
instrument mai general de implementare a unor noi sisteme expert, a fost dezvoltat la
Universitatea Standford, sub denumirea de AGE. Acest sistem este rodul experienei colectivului
de inteligen artificial a acestei universiti, experien ilustrat de numeroase sisteme expert
de mare succes, dintre care s menionm numai sistemele DENDRAL, META-DENDRAL,
MYCIN, AM, MOLGEN, CRYSALIS, SACON.
Dezvoltarea SE cere noi specialiti pentru captarea cunotinelor i exprimarea acestora
sub form de reguli. Devine necesar o nou specializare numit "inginer de cunotine", un
intermediar ntre specialistul n calculatoare i expertul uman.
Metodologia de captare a cunotinelor este cunoscut sub numele de ingineria
cunoaterii. Ca urmare se poate concluziona:
un SE poate fi expert ntr-o singur chestiune. Dac se construiete un SE ce rezolv dou
probleme sunt posibile critici pentru fiecare dintre acestea;
un SE poate s rezolve numai acele probleme pe care expertul uman le-a transmis. Dac se
construiete un SE fr a fi consultat expertul uman acesta are cunotine limitate i deci este
mai slab dect expertul uman;
un SE nu va putea niciodat s nlocuiasc omul.
O caracteristic specific SE este marcat de faptul c acestea pot fi adaptive,
caracteristic marcat prin faptul c schimbrile efectuate la diferite intervale de timp nu
determin modificri ale programelor. Pentru aceasta cunotinele sunt inute sub form de reguli
care pot fi uor citite i modificate de utilizator cu mici intervenii din partea acestuia. n multe
SE uzuale exist o distincie net ntre cunotine i mecanismele ce manipuleaz aceste
cunotine. Prin modificarea naturii cunotinelor utilizate, un SE devine capabil a fi utilizat n
alte zone ale aceluiai domeniu. De exemplu, un SE destinat diagnosticului medical, prin
schimbarea cunotinelor medicale i substituirea acestora de cunotine inginereti poate deveni
expert n domeniul autodiagnozei.
O caracteristic specific a sistemelor expert este organizarea pe reguli n loc de
instruciuni. Pe cnd calculatoarele convenionale folosesc programe ce intr linie cu linie n
execuie, SE constau dintr-o colecie de reguli ce nu sunt executate secvenial dect atunci cnd
condiia de aplicabilitate este ndeplinit. Conceptual, punctul de vedere este rezonabil pentru c
71

Inteligena Artificial

Cap.7. Sisteme Expert

n SE fiecare linie ncepe prin cuvntul IF, care n accepiunea clasic nseamn c grupul de
instruciuni din corpul su sunt executate numai dac valoarea condiiei este adevrat.

7.2. Structura general a unui sistem expert


Aa cum s-a artat i n capitolul anterior, sistemele expert acoper o clas foarte mare de
programe ce au o serie de caracteristici comune, dar difer n multe privine fa de programele
clasice. n cazul SE, baza de cunotine are o serie de caracteristici care ofer o independen a
cunotinelor, cum sunt:
- granularitatea cunotinelor (independena acestora);
- ordinea n care sunt stocate cunotinele n baza de cunotine nu influeneaz rezultatele;
- modificarea elementelor bazei de cunotine nu are implicaii deosebite asupra
programului;
- sistemul expert poate fi caracterizat ca o nou modalitate de programare declarativ.
Pentru a se putea nelege mai bine modul n care funcioneaz un sistem expert, se va
prezenta n figura 7.2 conceptul de baz al funcionrii unui SE. Utilizatorul furnizeaz
sistemului expert fapte sau alte informaii i primete, ca rspuns, "sfaturi" sau "e xpertize".

Baza de cunotine
Fapte
Utilizator
Expertize
Motor de inferen
Sistem Expert
Fig. 7.2. Conceptul de baz al funcionrii unui SE
O caracteristic a sistemelor expert este cea privind competena acestora de a furniza
explicaii asupra raionamentelor ntreprinse pentru ajungerea la rezultat, explicaii care trebuie
s fie exprimate ntr-un limbaj ct mai apropiat de limbajul natural.
7.2.1 Componentele sistemelor expert
Toate aceste caracteristici determin o structur specific pentru sistemele expert,
structur ce poate fi grupat n jurul a trei module principale, module ce determin i ceea ce se
numete sistem esenial:
Baza de cunotine este reprezentat ca o structur de date ce conine ansamblul
cunotinelor specializate introduse de ctre expertul uman. Cunotinele stocate n baza de
cunotine sunt n principal descripii de obiecte n conjuncie cu relaiile dintre acestea. Baza
de cunotine face parte din sistemul cognitiv, cunoaterea fiind memorat ntr-un spaiu
special organizat. Forma de stocare a informaiei experte trebuie s asigure cutarea pieselor
72

Inteligena Artificial

Cap.7. Sisteme Expert

de cunoatere specificate direct prin simboluri identificatoare, cutarea pieselor de cunoatere


referite indirect prin proprieti asociate sau valori atribuite acestora, cutarea pieselor de
cunoatere prin inferene sau lanuri infereniale ce pornesc de la alte piese de cunoatere sau
de la proprieti asociate acestora, meninerea bazei de cunotine n concordan cu evoluia
domeniului de expertiz.
Mecanismul de inferen reprezint noutatea sistemelor expert. El preia cunotinele din
baza de cunotine ce sunt utilizate pentru construirea raionamentului. Mecanismul de
inferen urmrete o serie de obiective majore cum sunt: alege strategia de control funcie de
problema curent ce o are de rezolvat, elaboreaz planul de rezolvare a problemei dup
necesitate, execut comutarea de la o strategie de control la alta, execut aciunile prevzute
n planul de rezolvare, constituie informaiile de control pentru mecanismele fundamentale
ale mecanismului de inferen. Cu toate c n esen mecanismul de inferen este constituit
dintr-un ansamblu de proceduri n sensul obinuit al termenului, modul n care utilizeaz
cunotinele nu este prevzut prin nici un program, acesta fiind condiionat de datele i
cunotinele pe care le posed.
Baza de fapte este reprezentat de o memorie auxiliar ce conine toate datele utilizatorului
(faptele iniiale ce descriu enunul problemei de rezolvat), i rezultatele intermediare produse
n cursul procedurii de deducie. Coninutul bazei este pstrat ntr-o memorie RAM i poate
fi conservat doar la cererea utilizatorului.
Pe lng aceste module un sistem expert mai conine o serie de module ce asigur
comunicarea cu operatorul i expertul uman.
Modulul de comunicaie este destinat furnizrii interfeelor specifice pentru utilizatorii
sistemului expert ct i pentru achiziia de cunotine. n compunerea acestui modul intr
procesoare specifice pentru limbajele de comunicare nglobnd limbaje de comunicare cu
utilizatorul, limbaje pentru achiziia cunotinelor, procesoare pentru comunicarea intern ntre
sistemul expert i echipamente auxiliare pentru stocarea cunoaterii, procesoare speciale pentru
intrri/ieiri grafice, achiziia senzorial i instrumental a cunoaterii, comanda elementelor de
execuie.
Interfaa utilizator este cea care asigur dialogul ntre utilizator i sistem n limbaj
cvasinatural prin translatarea limbajului intern. Tot ea este cea care comunic mecanismului de
inferen cererile utilizatorului, rezultatul acestora fiind furnizat utilizatorului. n egal msur
faciliteaz achiziia enunului problemei iniiale i comunicarea rezultatului. Sunt situaii n care
interfaa utilizator este mai sofisticat, integrnd dicionare, fiind capabil de analize
lexico-sintactice, verificri semantice, corecii ortografice, gestiunea prescurtrilor etc.
Modulul de achiziie a cunotinelor preia cunotinele specializate furnizate de
expertul uman sau inginerul de cunotine ntr-o form ce nu este specific reprezentrii interne.
O serie de cunotine pot fi furnizate prin fiiere specifice bazelor de date sau alte programe
externe. El recepioneaz cunotinele, verific validitatea acestora i n final genereaz o baz de
cunotine coerent.
Modulul de explicaii permite trasarea drumului urmat n raionare de ctre sistemul
rezolutiv i emiterea justificrilor pentru soluiile obinute, evideniindu-se n acest mod cauza
greelilor sau motivul eecului. El ajut expertul s verifice consistena bazei de cunotine.
73

Inteligena Artificial

Cap.7. Sisteme Expert

n fig. 7.4,a se prezint o structur general a unui sistem expert ce nglobeaz toate
modulele descrise mai sus. Aa cum se observ, n figur se disting mai multe activiti ncepnd
cu achiziia cunotinelor, reprezentarea acestora, tratarea cunotinelor i utilizarea lor.
nglobarea modului de achiziie a cunotinelor face oricnd posibile modificri ale bazei de
cunotine odat cu rafinarea acestora.

Inginer de
cunotine

Reprezentare
cunotinelor

Tratarea
cunotinelor

Baza
de
cunotine

Mecanism
de
inferen

Baza
de
fapte

Modul
de
explicare

Utilizarea
cunotinelor

Interfaa utilizator

Expert uman

Modul de achiziie a cunotinelor

Achiziia de
cunotine

Utilizator

Fig. 7.4,a Structura general a unui sistem expert


Puterea rezolutiv a sistemelor expert se bazeaz pe abilitatea acestora de a memora, a
ntreine i a manevra cantiti mari de piese de cunoatere specifice domeniului de expertiz, de
a oferi o nalt flexibilitate de reprezentare a cunoaterii, indiferent de complexitatea acesteia,
de a elabora strategii i planuri de rezolvare rafinate, i de a-i mbunti aceste performane
prin nvare i experien.
Deoarece sistemele expert sunt de fapt sisteme inteligente bazate pe cunoatere (KBSKnowledge Based expert System) pentru rezolvarea problemelor, structura acestora este
presupus a satisface cerinele care definesc orice sistem formal. De aceea, sistemele expert sunt
dotate cu mecanisme fundamentale, axiomatice, care se aplic pe un suport alctuit din piese de
cunoatere despre obiecte, aciuni i relaii, cu ajutorul crora sunt generate noi entiti bine
formate de tip obiectual, procesual sau relaional.
Indiferent de cerinele particulare ale domeniului de expertiz dat, orice sistem expert poate fi
conceput n concordan cu urmtoarea schem general de structur (fig. 7.4,b):

74

Inteligena Artificial

Cap.7. Sisteme Expert


Prelucrarea cunoaterii
despre sistem
Sistem
metarezolutiv

amf

amf
Solicitare
Rspuns

Sistem
de comunicare

Prelucrarea
cunoaterii
despre
domeniu
Sistem

pbd
dr

cpc

rezolutiv
j

pmc
Sistem
explicativ

pc

ipc

pc

cpc

Sistem
cognitiv

Index:
pbd - problem bine definit
cpc
pc ipc
cpc - cerere pies de cunoatere
ipc - introducere pies de cunoatere
Baza de cunotine
pc - pies de cunoatere
Nivelul metacunoaterii
dr - drumuri de raionament
Nivelul cunoaterii conceptuale
j - justificri
Nivelul cunoaterii factuale
amf - adecvare mecanisme fundamentale
pmc - pies de metacunoatere

amf

Fig. 7.4,b. Structura general a unui sistem expert


Sistemul cognitiv, care este dedicat realizrii urmtoarelor funcii i obiective
legate de cunoatere:
- memorarea cunoaterii experte ntr-un spaiu de memorare special organizat n acest
sens, denumit baz de cunotine;

- cutarea pieselor de cunoatere specificate direct, prin simboluri identificatoare;


- cutarea pieselor de cunoatere referite indirect, prin proprieti asociate i/sau valori
atribuite acestora;
- cutarea pieselor de cunoatere prin inferene sau lanuri infereniale care pornesc din
alte piese de cunoatere;
- meninerea bazei de cunotine n actualitate cu evoluia domeniului de expertiz;
Sistemul rezolutiv, care este dedicat urmtoarelor funciuni i obiective legate de
rezolvarea problemelor:
- alegerea strategiei de control adecvate pentru tipul problemei curente;

75

Inteligena Artificial

Cap.7. Sisteme Expert

- comutarea controlat de la o strategie la alta;


- elaborarea planului de rezolvare a problemei curente;
- desfurarea aciunilor prevzute n planul de rezolvare;
- verificarea consistenei pailor de rezolvat;
- trasarea drumurilor de raionament prin arbori deductivi.
Sistemul explicativ, care este dedicat urmtoarelor funciuni i obiective legate de
justificarea soluiilor obinute de sistemul expert la problemele utilizatorilor:
- interpretarea drumurilor de raionament trasate de ctre sistemul rezolutiv i emiterea
justificrilor pentru soluiile obinute;
- evidenierea cauzelor greelilor sau eecului;
- evidenierea pieselor de cunoatere care lipsesc n lanul de inferene, sau a celor care
sunt suspecte de a furniza cunoatere eronat.
Sistemul de comunicare, care este dedicat comunicrii dintre sistemul expert i
utilizatorul acestuia. Acest dialog se poate realiza pe mai multe ci:
- n mod interactiv, ntrebare-rspuns;
- sistem de meniuri;
- limbaj natural;
- interfa grafic;
n funcie de complexitate sistemului expert i de modul de realizare a acestui dialog, sistemul de
comunicare poate incorpora:
- procesoare pentru limbajele de comunicare cu utilizatorul;
- procesoare pentru limbajele de reprezentare a cunoaterii;
- procesoare pentru comunicarea intern ntre sistemul expert i echipamentele auxiliare
de stocare a cunoaterii;
- procesoare speciale: intrare/ieire grafic, achiziia senzorial i instrumental a
cunoaterii, comanda dispozitivelor cu caracter efectorial.
Sistemul meta-rezolutiv este dedicat unor funciuni i obiective legate de adecvarea
mecanismelor fundamentale ale sistemului expert la caracteristicile domeniului de expertiz:
- adecvarea mecanismelor fundamentale ale sistemului cognitiv: metoda de reprezentare
a cunoaterii, mecanismele infereniale aplicate peste baza de cunotine, metode da cutare i
revenire prin grafuri i arbori, criteriile de clasificare i organizare a bazelor de cunotine.
- adecvarea mecanismelor fundamentale ale sistemului rezolutiv: structura informaiei de
control, metodele de rezolvare, strategiile de control, mecanismele de comutaie pentru strategii,
planuri i metode, mecanisme de trasare i revenire;
- adecvarea mecanismelor fundamentale ale sistemului explicativ: tipuri de ntrebri,
adnvimea justificrilor;
- adecvarea mecanismelor fundamentale ale sistemului de comunicare: gramatica
limbajului de comunicare, lexicul, sistemul de prioriti i restricii legate de numrul posturilor de
lucru cu sistemul i de clasificarea utilizatorilor.
7.2.2. Categorii de aplicaii
Ne propunem s analizm care sunt diferenele dintre sisteme expert realizate pentru
diferite aplicaii, dac acestea se pot grupa n clase, modul n care are loc transferul
cunotinelor. La multe din aceste ntrebri nu se poate da un rspuns net i precis, ns pot
76

Inteligena Artificial

Cap.7. Sisteme Expert

aprea elemente ce fac obiectul cercetrilor viitoare. n acest context este necesar o analiz
asupra limitrilor sistemelor expert, ct i a posibilitilor viitoare de evoluie. Odat stabilite
aceste chestiuni se va ncerca s se defineasc principiile de baz ale metodologiei de construcie
a unui sistem expert.
Fr a propune o grupare a sistemelor expert foarte diferite n clase, putem face o
difereniere, n funcie de natura scopului urmrit, deci de utilizare. Astfel, aceste sisteme se pot
mpri n trei mari categorii:
1) SE de clasificare - interpretare, pot realiza spre exemplu clasificarea cauzelor
posibile ale unei disfuncionri (cantitative, calitative, vizuale) n scopul de a determina
semnificaiile acestor tipuri de date. Acest tip de SE este cel mai vechi (diagnostic, prospecii) i
cel mai des utilizat. Dezvoltate cu precdere pentru aplicaiile n medicin, cercetrile au
influenat aplicaiile ulterioare rezultnd ceea ce numim diagnostic tehnic. Dintre sistemele
utilizate n domeniul medical, MYCIN este un exemplu perfect. Sistemul utilizat pentru
diagnosticarea infeciilor bacteriene utilizeaz o reprezentare a cunotinelor sub form de reguli,
descriind legturile ntre simptome i bolile posibile. Cunotinele folosite aici sunt cu precdere
empirice i de aceea mai sunt numite i "cunotine de suprafa". Este util s remarcm faptul c
sistemele ce utilizeaz cunotine de suprafa nu pot s justifice raionamentul ce explic
deduciile realizate. La nivelul raionamentelor utilizate n MYCIN se disting dou caracteristici
principale:
- raionare nainte (singurul mod);
- cercetare exhaustiv se refer la aplicarea tuturor regulilor posibile pentru a crete
sau a diminua factorul de certitudine al concluziei.
2) Sisteme expert de control (monitorizare) - sunt caracterizate prin introducerea
noiunii "timp", care este primordial, i au sarcina de a supraveghea buna evoluie a unui proces.
Aceste sisteme supravegheaz evoluia datelor sau semnalelor provenind de la procesul
controlat. Ele trateaz, deci date continue ntr-o logic nemonoton ca n exemplul:
(dac A este adevrat la un moment T,
atunci A este lansat n execuie la momentul T+Q).
Pentru aceste sisteme msura intervalelor regulate de timp trebuie s fie interpretat,
genernd declanarea unei aciuni imediate, atta timp ct anumite condiii sunt ndeplinite. Este
necesar deci o structur de control ce permite evoluia datelor altfel dect n cazul clasic al
diagnosticrii.
Cunotinele pot fi reprezentate sub form de tabele cu date care, n funcie de valoarea
mrimii controlate selecteaz strategiile ce vor fi aplicate la momentele urmtoare.
3) SE de anticipare - acestea sunt caracterizate printr-o alocare a resurselor innd cont
de restricii. Ex. CAO (anticiparea unui rezultat) pentru meteorologie, pentru anticiparea
evoluiei n viitor pe baza datelor prezente i a evoluiilor trecute, pentru ordonarea i
planificarea produciei. Aceast compartimentare a fost fcut pentru a permite studiul i
cutarea dup caz a sistemului cadru pentru dezvoltarea unei aplicaii. Spre exemplu, sistemele
expert utilizate n diagnoz nu pot fi utilizate la dezvoltarea aplicaiilor de conducere a
proceselor.
n concluzie, este deci indispensabil determinarea clasei aplicaiei i cutarea sistemului
de dezvoltare adecvat.

77

Inteligena Artificial

Cap.7. Sisteme Expert

7.2.3. Alternative n construcia unui sistem expert


Pentru construirea unui sistem expert sunt posibile dou alternative:
existena unei aplicaii care n urma analizei justific abordarea cu un sistem expert n
detrimentul programrii clasice;
existena unui sistem expert cadru pentru o anumit categorie de aplicaii la care se ataeaz
o baz de cunotine specializat n problema ce se cere rezolvat.
Hotrrea de a utiliza un sistem expert pentru rezolvarea problemei este luat dup
examinarea urmtoarelor situaii:
dac o problem este bine rezolvat prin modele numerice clasice (programarea liniar sau
altele) este inutil dezvoltarea unui sistem expert. Din contr, dac problema nu este bine
rezolvat n maniera clasic dect n condiii ideale rar atinse, sau numrul parametrilor de
natur simbolic pui n joc este dificil de luat n consideraie ntr-un model numeric, atunci
se poate apela la o rezolvarea utiliznd sisteme expert.
existena expertului uman, recunoscut ca fiind persoana ce cunoate bine lucrul studiat.
Aceasta explic de ce construcia unui sistem expert depinde de un expert uman pentru baza
sa de cunotine i de ce dac problema nu este rezolvat de persoane nu poate fi rezolvat
nici de un sistem expert;
dac evoluia cunotinelor n domeniu este caracterizat de o dinamic rapid, necesit
frecvente schimbri, atunci un sistem expert se poate aplica. n aceast situaie se poate folosi
i un program clasic, ns amendamentele aparent minore, aduse la acest program i pot
modifica profund comportamentul.
Realizarea programelor clasice este un proces rigid, greu, ce creeaz dificulti n
elaborarea specificaiilor, proces ce conduce la programe lipsite de suplee i fr posibiliti de
mbuntire. Din contr, sistemele expert prin nsi construcia lor se preteaz la modificri
locale numeroase, n condiiile n care modificrile nu afecteaz coerena bazei de cunotine:
principalele caliti ale expertului uman sunt exprimate n cunotinele transferate sistemului,
cunotine ce sunt n general de bun sim i nu formalizate. Nu trebuie neles ns, c
sistemul expert nu poate raiona utiliznd cunotine puternic formalizate, ns marele ctig
se regsete n utilizarea cunotinelor slab formalizate;
problemele pentru a cror rezolvarea sunt necesare cteva ore de munc uman i nu sunt
repetitive, nu se preteaz la rezolvarea cu sisteme expert pentru a cror rezolvare activitatea
este mult mai complex. Dac, de exemplu, stabilirea unei configuraii pentru un sistem de
calcul necesit o zi de munc uman, innd cont de faptul c o problem similar este
rezolvat practic n fiecare zi, un sistem expert este adecvat;
o cot a rotaiei de personal ridicat (cerut des n tehnic) este n aceeai msur un semn c
utilizarea sistemelor expert permite memorarea experienei acumulate de persoanele ce
lucreaz n domeniu (perenitatea informrii);
cnd ntr-o clas bine definit de probleme, nu se tie care va fi rezolvarea precis,
variabilele de intrare, numrul de terminale, tipul lor, tipuri de comunicaie numeroase nu
permit scrierea programelor pentru toate variantele n forma clasic.
Tabelul 7.1 sumarizeaz posibilele utilizri ale sistemului expert.

78

Inteligena Artificial

Cap.7. Sisteme Expert

Problema
Precis i stabil

Precis, dar evolueaz


frecvent

Programare clasic

SE uor de actualizat
ca urmare a evoluiei

SE pentru c se poate
adapta la fiecare
problem

SE pentru cutarea
soluiei, apoi adaptat
pentru exploatare

SE pentru cutarea
soluiei, uor de
exploatat pentru c se
adapteaz la problema
precis

Soluia
Cunoscut

Necunoscut

Tabelul 7.1
Fluctuant ntr-un
domeniu bine
stabilit

SE pentru gsirea
soluiei, apoi abandonat
n favoarea programrii
clasice

7.2.4. Etape ale realizrii unui sistem expert


Paralel cu derularea procesului de transfer al experienei, procesul de realizare a unui
sistem expert poate fi descompus n trei perioade:
A. Un studiu de fezabilitate realizat mai nti cu ajutorul unei machete de sistem expert;
B. Realizarea prototipului - vizeaz construirea unui prototip pe care se experimenteaz
diferitele moduri de reprezentare a cunotinelor, mecanismele de inferen realizate;
C. n final, sistemul expert este realizat pornind de la prototip. Dac rezultatele sunt
satisfctoare i structura sistemului realizat ca prototip, permite obinerea eficacitii maxime,
urmeaz etapa de industrializare.
Studiu
de
fezabilitate

Identificare
Conceptualizare
e
Prototip

Formalizare
Implementare
Industrializare

Validare

Fig. 7.5. Etapele dezvoltrii sistemului expert


n fig. 7.5 se reprezint cele cinci faze aferente transferului de cunotine n conjuncie cu
cele trei etape de dezvoltare. Aceasta arat c studiul de fezabilitate este foarte restrns, ns
dezvoltarea prototipului i experimentarea reprezint pri importante ale procesului de
construcie. Diferena ntre machet i prototip nu poate fi foarte clar, ns, precis prin prototip
se neleg subansambluri ale sistemului expert final pe cnd macheta este total independent.

79

Inteligena Artificial

Cap.7. Sisteme Expert

Etapa de prototip permite verificarea rapid (dou sau patru luni) dac pentru problema
dat se justific utilizarea sistemului expert. Ea presupune realizarea unei machete care nu
rezolv dect cteva cazuri tipice. Macheta este realizat fr a urmri aspecte legate de
optimizarea timpului de rspuns i a memoriei ocupate, sau de validarea formalismului utilizat.
Inginerul de cunotine utilizeaz pentru aceste reprezentri simple i flexibile, nuclee existente
fr s urmreasc validarea formalismului utilizat.
La finalul acestui studiu, problema trebuie s fie clar definit, permind s se ia o decizie
asupra desfurrii ulterioare a lucrrii. Soluii distincte ale problemei trebuiesc testate i
comparate pe parcursul dezvoltrii prototipului (care poate fi o extensie a machetei). Pentru
aceasta, cel mai comod de utilizat sunt sistemele expert cadru. Acest prototip trebuie, n
majoritatea cazurilor s rmn modest n principiu, el va fi abandonat atunci cnd inginerul de
cunotine are o idee precis asupra dezvoltrilor viitoare ale sistemului expert pe baza
experienelor realizate. n final, este preferabil abandonarea prototipului, modificrile nu pot
garanta eficacitatea sistemului, chiar dac prototipul este la un moment dat mult mai bine
cunoscut.
Pentru ilustrare s considerm o comparaie imaginar: extensia unui prototip (sau a unei
machete) este similar cu aceea de a mri un cart pentru a obine o main de formula I. Aceasta
nu va atinge niciodat performanele unei maini construite n acest scop, deficienele provenind
din nsi arhitectura cartului. Diferena esenial ntre aceast etap i etapele precedente rezid
n faptul c la acest nivel se tie foarte exact ce facem i cum facem. Se procedeaz acum la o
rescriere a prototipului testat n etapa anterioar urmrind satisfacerea condiiilor de eficacitate.
Baza de cunotine continu s evolueze pe parcursul acestei faze ncorpornd cazuri reale i din
ce n ce mai complexe. Sistemul expert ncepe s devin utilizabil nainte ca baza de cunotine
i obiectivul fixat iniial s fie realizat complet.
Dezvoltarea n varianta clasic descompune problema n subprobleme realizate
independent unele de altele. Din contr, abordarea de viitor este abordarea experimental i
incremental a machetei, prototipului sau a tuturor elementelor. Se observ n varianta clasic
descompunerea n subprobleme cu rezolvarea acestora n paralel. Astfel rezolvarea este limitat,
subproblemele fiind parcurse independent. Construcia printr-un proces experimental i
incremental este bazat pe luarea n consideraie la anumite etape a tuturor subproblemelor ntr-o
manier detaliat.
Multe companii se gsesc astzi la sfritul etapei A, o machet a fost realizat, ns
problemele nu au fost clar delimitate. Dac decizia de trecere la etapa B era luat (i multe sunt
deja luate) partea cea mai important ncepe aici. Ca efect, un studiu asupra domeniului va fi
necesar i indispensabil. El permite determinarea cunotinelor utilizate de expertul uman i
maniera de a le reprezenta, sprijinindu-se pe experiena deja acumulat n acest domeniu (faza de
conceptualizare, formalizare). Aceast etap este important cci ea condiioneaz urmarea
studiului. Lucrurile care sunt efectuate (reprezentarea cunotinelor, utilitare, mecanism de
inferen) determin caracteristicile sistemelor expert viitoare i performanele lor. Primele
rezultate ale studiului pe teren, permit enunarea criteriilor de cutare a utilitarelor utilizate n
dezvoltarea sistemului expert.
Prototipul obinut, deci baza de cunotine nu trebuie s fie voluminoas, ea servete doar
ca suport de decizie pentru autorizarea trecerii la faza urmtoare. Etapa C ncepe prin
determinarea utilitarelor corespunztoare realizrii finale (ce pot fi aceleai cu cele ale fazei B).
80

Inteligena Artificial

Cap.7. Sisteme Expert

Realizarea acestei etape se sprijin pe prototipul construit n etapa precedent insistnd pe


eficacitatea performanelor. Baza de cunotine a SE final se mrete lent pe msura avansrii
proiectului, prin noi cunotine i prin rezultatele testelor ce demonstreaz validitatea coerenei
cunotinelor. Trebuie amintit c faza de extracie a cunotinelor este lung i delicat, ea
consum o mare parte din timpul total de realizare a sistemului expert.

7.3. De la sistemele de producii la sistemele expert.


Un mic exemplu
Exist o asemnare ntre structura sistemelor expert i cea a sistemelor de producii
prezentate n capitolul precedent. Aceast asemnare nu este o simpl ntmplare, sistemul de
producii fiind precursorul sistemului expert. De fapt, Newell i Simon au elaborat modelul
sistemului de producii n ideea modelrii raionamentului uman.
Dac privim structura sistemelor expert prin prisma sistemelor de producii, baza de
cunotine este o mulime de reguli. n sistemul expert, produciile (condiie, aciune) sunt
organizate ca reguli, de forma
Regula x:
if
precondiii
then concluzie,
condiia regulii de producie constnd n precondiiile regulii (partea if), iar aciunea n concluzia
regulii (partea then). Sistemul rezolutiv al sistemelor expert, acel "inference engine", este
corespondentul ciclului de coresponden i control al sistemelor de producii.
Ca i n cazul sistemelor de producii se pot implementa algoritmi de cutare nainte sau
napoi. Multe probleme par a fi mai natural implementate utiliznd o strategie de cutare nainte. n
situaii cnd datele iniiale ale problemei sunt date i este dificil de a formula un ipotetic goal,
datele iniiale sunt plasate n memoria de lucru i sistemul va utiliza o strategie de cutare nainte.
Sistemele expert utilizeaz de regul strategia de cutare invers (goal-driven expert
system). Iniial, obiectivul (starea goal) este plasat n memoria de lucru. Sistemul unific aceast
stare cu concluziile regulilor din baza de cunotine, selectnd o regul i plasnd premizele
acesteia n baza de cunotine. Acest pas are drept efect descompunerea problemei n subgoal-uri
mai simple. Procesul continu, premizele adugate n baza de date devenind noi subgoal-uri ce vor
fi unificate cu concluziile regulilor sistemului. Astfel, pornind de la starea goal i ncercnd apoi
verificarea premizelor, sistemul are o comportare asemntoare cu raionamentul uman
(verificarea anumitor ipoteze n vederea tragerii unei anumite concluzii).
n sistemele expert, unele subgoal-uri sunt deseori rezolvate prin chestionarea utilizatorului
asupra faptului respectiv. Cazurile n care sistemul solicit "ajutorul" utilizatorului depind de la o
implementare la alta. Astfel, la generarea sistemului expert se pot preciza acele ntrebri la care
sistemul va cere rspunsul utilizatorului. Alte sisteme expert cer ajutorul utilizatorului n cazul n
care un subgoal nu poate fi unificat cu nici una din concluziile regulilor din baza sa de cunotine.
Pentru claritatea celor discutate, n continuare s ne imaginm un mic sistem expert pentru
diagnosticul unei pene de automobil:
Regula 1:
if
motorul se alimenteaz and
demarorul nvrtete arborele cotit,

81

Inteligena Artificial

Regula 2:

Regula 3:

Regula 4:

Cap.7. Sisteme Expert


then problema este bujiile.
if
demarorul nu nvrtete arborele cotit and
luminile nu se aprind
then problema este bateria sau cablurile.
if
demarorul nu nvrtete arborele cotit and
luminile se aprind
then problema este demarorul.
if
este carburant n rezervor and
este carburant n carburator
then motorul se alimenteaz.

S presupunem c sistemul expert este solicitat pentru diagnosticarea unei pene de


automobil, utilizatorul plasnd n baza de cunotine ntrebarea:
"problema este X" problem(X).
Trei din regulile sistemului expert sunt aplicabile: regula 1, regula 2 i regula 3. Dac
rezolvarea conflictului se face n favoarea regulii cu numrul cel mai mic (prima regul aplicabil),
atunci regula 1 va fi declanat. Aplicarea acestei reguli va avea drept consecin instanierea
variabilei X cu valoarea "bujiile" i premizele regulii 1 vor fi copiate n memoria de lucru (fig.
7.6). Sistemul va ncerca deci s analizeze ipotetica cauz c bujiile ar fi defecte.

Memoria de lucru

Reguli:

problema este X

regula 1
regula 2
regula 3
regula 4

Fig. 7.6. Starea iniial a sistemului expert


De remarcat, c regula 1 are dou premize i amndou dintre acestea trebuie s fie
ndeplinite pentru a se trage concluzia respectiv. Premizele sunt ramurile unui nod AND al
arborelui de deducie, reprezentnd descompunerea problemei (stabilirea faptului c bujiile sunt
defecte) n subprobleme (stabilirea faptelor c "motorul se alimenteaz" i "demarorul nvrtete
arborele cotit"). Se poate aplica apoi regula 4, a crei concluzie este echivalent cu faptul c
motorul se alimenteaz cu combustibil. Aplicarea acestei reguli va avea drept efect adugarea
premizelor corespunztoare n memoria de lucru (fig. 7.7). n acest moment n memoria de lucru
sunt trei piese de cunoatere (carburant n rezervor, carburant n carburator, demarorul nvrtete
arborele cotit) care nu pot fi unificate cu concluzia nici uneia din regulile sistemului (fig. 7.8).

82

Inteligena Artificial

Cap.7. Sisteme Expert

Memoria de lucru

Reguli:

-motorul se alimenteaz
-demarorul nvrtete
arborele cotit
-problema este bujiile

regula 1 *
regula 2
regula 3
regula 4

Fig. 7.7 Starea sistemului expert dup aplicarea regulii 1

Memoria de lucru

Reguli:

-combustibil n rezervor*
-combustibil n carburator*
-motorul se alimenteaz
-demarorul nvrtete arborele cotit*
-problema este bujiile*

regula 1
regula 2
regula 3
regula 4*

Fig. 7.8. Starea sistemului expert dup aplicarea regulii 4


Astfel, sistemul expert va ntreba utilizatorul despre veridicitatea acestora. Dac utilizatorul
confirm c toate cele trei premize sunt adevrate, sistemul expert va stabili faptul c bujiile sunt
defecte ("problema este bujiile"), diagnosticnd cu succes pana de automobil i indicnd eventual
modul de soluionare.
Acesta este desigur un exemplu foarte simplu. Nu numai c baza de cunotine este foarte
redus, dar sunt ignorate o serie de aspecte privind implementarea real a unui astfel de sistem.
1) Regulile sunt formulate n limbaj natural ci nu ntr-un limbaj formal de reprezentare.
2) De asemenea, implementarea real trebuie s incorporeze un mecanism de backtracking. n
exemplul considerat, dac prin alegerea regulii 1 nu se poate dovedi c bujiile sunt defecte,
mecanismul de backtracking va determina revenirea n punctul n care ultima regul a fost
selecionat n vederea alegerii alteia dintre regulile aplicabile (ex. regula 2).
n urma procesului de cutare este generat graful AND/OR ilustrat n fig. 7.12. Sistemul
explicativ are la baz tocmai acest graf. Memornd evoluia sistemului expert, sistemul explicativ
utilizeaz un algoritm de trasare pentru a rspunde la ntrebri .
n general, unui sistem expert i se pun dou tipuri de ntrebri: De ce? i De unde? (sau
Cum?). Utilizatorul pune ntrebarea "de ce?" sistemului expert atunci cnd acesta din urm cere
anumite informaii utilizatorului. ntrebarea "de ce?" avnd semnificaia "de ce ntrebi acest fapt ?",
sau "de ce trebuie s cunoti acest lucru ?". Rspunsul la ntrebarea "de ce?" este de fapt regula
curent ce a fost declanat. Prin ntrebarea "Cum ?", utilizatorul poate cere sistemului expert s
justifice cum a dedus anumite informaii "De unde ai aceast informaie ?", sau "Cum ai ajuns la

83

Inteligena Artificial

Cap.7. Sisteme Expert

aceast concluzie ?". Rspunsul const, de aceast dat, n secvena de reguli care au generat
subgoal-ul respectiv.
Pentru exemplificare, s considerm c sistemul expert pentru diagnosticul penelor de
automobil este prevzut cu un subsistem explicativ i, s presupunem, c n urma investigaiilor
preliminare s-a ajuns n situaia ilustrat n fig. 7.8. Sistemul expert ncepe dialogul cu utilizatorul
ntrebndu-l asupra noilor subgoal-uri aprute n memoria sa de lucru:
Este carburant n rezervor ?
Da
Este carburant n carburator ?
Da
Demarorul nvrte arborele cotit ?
De ce
Aici, rspunsul "De ce?" al utilizatorului nseamn "de ce vrei s tii acest lucru ?". Sistemul expert
va rspunde:
S-a stabilit c:
1. Motorul se alimenteaz,
deci, dac
2. demarorul nvrtete arborele cotit,
atunci problema este bujiile.
Deoarece utilizatorul a rspuns afirmativ la primele dou ntrebri, regula 4 a fost aplicat,
ndeplinindu-se astfel prima premiz a regulii 1. Cnd utilizatorul a pus ntrebarea "De ce?",
sistemul ncerca s stabileasc cea de a doua premiz a regulii 1. Dei, explicaia sistemului este,
dup cum se poate constata, doar
o exprimare mai natural a regulii curente, aceasta d totui
o explicaie foarte clar asupra scopului urmrit prin chestionarea utilizatorului. S presupunem c
dialogul continu n modul urmtor:
De ce se alimenteaz ?
De data aceasta utilizatorul a ntrebat sistemul de unde tie c motorul se alimenteaz cu
combustibil. Rspunsul const n trasarea raionamentului care a condus la aceast concluzie.
Trasarea se face ncepnd cu subgoal-ul curent i mergnd n ordine invers spre ipoteze.
Rspunsul sistemului este de felul urmtor:
Aceasta este o consecin a regulii 4:
if
carburant n rezervor, and
carburant n carburator
then motorul se alimenteaz
carburant n rezervor: confirmat de utilizator,
carburant n carburator: confirmat de utilizator.

REZUMAT
1.

Sistemele expert sunt programe aplicative de inteligen artificial bazate pe cunoatere


specializat de nivel nalt, nivel atins n societate de cei mai competeni experi umani ai
domeniilor aplicative ce se implementeaz n aceste sisteme.

84

Inteligena Artificial
2.

3.

4.

5.

Cap.7. Sisteme Expert

Denumirea de "sisteme expert" deriv din capacitatea acestor programe de a egala unele
din performanele de gndire i de intuiie pe care experii umani le obin atunci cnd
aplic o astfel de cunoatere pentru rezolvarea unor probleme complexe din domeniul de
expertiz.
Din punct de vedere funcional un sistem expert este definit ca un program ce ofer
cunotine pentru obinerea rezultatelor taskurilor dificile rezolvate uzual de experii umani.
Din punct de vedere structural i arhitectural SE au urmtoarele caracteristici: a) sunt
construite n general pentru focalizarea taskurilor cu gam limitat de aplicabilitate; b)
exist o separare explicit ntre cunotine i metodele de raionare utilizate n vederea
obineri unor concluzii pe baza cunotinelor; c) sunt capabile s explice propriile aciunii i
linii de judecat.
Subsistemele definitorii ale unui Sistem Expert sunt: a) Baza de cunotine; b) Baza de
fapte; c) Mecanismul de inferen; d) Modulul de explicaii; e) Modulul de comunicaie; f)
Modulul de achiziie a cunotinelor.
Sistemele expert se pot mpri n trei mari categorii: a) sisteme expert de clasificare
interpretare; b) Sisteme expert de control (monitorizare); c) sisteme expert de anticipare.

TEST DE AUTOEVALUARE
1.

2.

3.

4.

5.

6.

Un sistem expert reprezint:


a. Un program algoritmic elaborat de colectiv de experi umani.
b. Un program care asist expertul uman n rezolvarea problemelor de nalt dificultate.
c. Un program care este capabil s raioneze similar unui expert uman.
Baza de cunotine a unui sistem expert reprezint o structur de date care conine:
a. Ansamblul datelor specializate furnizate de ctre expertul uman.
b. Ansamblul datelor obinute la un moment dat prin rularea programului.
c. Ansamblul general al datelor i cunotinelor.
Rolul principal al mecanismului de inferen ntr -un sistem expert este:
a. Supravegheaz rezolvarea problemei i intervine n caz de blocare.
b. Alege strategia de control i elaboreaz planul de rezolvare a problemei.
c. Achiziioneaz date de la utilizator i de la expertul uman.
Prin metacunoatere se nelege:
a. Cunoaterea n domeniul de specialitate al sistemului expert.
b. Un ansamblu de metode de memorare a datelor furnizate de expertul uman.
c. Cunoaterea despre cunoaterea nsi.
Ingineria cunoaterii are ca obiectiv principal:
a. Programarea cunoaterii.
b. Captarea i reprezentarea cunoaterii.
c. Testarea sistemelor expert.
Reprezentarea prin condiii de tipul (dac A este adevrat la un moment T, atunci A este lansat n
execuie la momentul T+Q) se utilizeaz n sisteme expert:
a. de clasificare-interpretare.
b. de control (monitorizare).
c. de anticipare.
85

Inteligena Artificial

Cap.7. Sisteme Expert

7.

Rolul principal al prototipului unui sistem expert const n:


a. Testarea diverselor moduri de reprezentare a cunotinelor i mecanisme de inferen.
b. Identificarea calitilor sistemului expert dup implementarea industrial a acestuia.
c. Identificarea fezabilitii proiectului de sistemului exp ert.
8. Justificarea soluiilor obinute de sistemul expert la problemele utilizatorilor se obine prin:
a. Sistemul explicativ.
b. Sistemul de comunicare.
c. Sistemul rezolutiv.
9. Datele utilizatorului i rezultatele intermediare produse n cursul procedurii de deduci e sunt
nregistrate n:
a. Baza de date.
b. Baza de cunotine.
c. Baza de fapte.
10. Un sistem expert este recomandat a fi creat i utilizat n cazul n care:
a. Problema este cunoscut, iar soluia este cunoscut.
b. Problema prezint incertitudini i nu exist experi n domeniu.
c. Domeniul problemei evolueaz frecvent, iar soluia este necunoscut.

Rspuns
1. c
2. a

3. b
4. c

5. b
6. b

7. a
8. a

9. a
10. c

86