Sunteți pe pagina 1din 62

2.

PRQBLEMKLEGATRllE RELATIA DINTRE INTELIGENTA


ARTmcIALA. 81 MEDICINA.

.Cum
Acestea au aparut In domeniul diagnozei medicale. Tema cercetarii a fost:
poate un program sa asiste un doctor sa interpreteze constatarile sale clinice ajumnd-ul
sa produca un diagnostic. .
.
Exitsrn doua cai principale de abordare a acestei probleme:
a.LUneori, apar la stabilirea unui diagnostic mai multe alternative, de~i toate datele
medicale au fost colectate.
Se poate construi un program care sa sugereze cea mai plauzibila altemativa. Aceasta poate
fi verificaili prin metode clinice mai evoluate (~idesigur mai costisitoare). Daca este infirmarn
programul poate sugeraalrn altemativa. Evident, decizia fmala asupra diagnosticului este
Iasarn exc1usiv doctorului.

-.
De~i la prima vedere, aceasili problema pare raspandiili, cazurile de aplicabilitate sunt foarte
rare.
Primul model pentru un astfel de program a fost inspirat din sistemullui ~ ~i este
foarte simplu de implementat
- Structurile de date necesare sunt 0 matrice K ~i un vector R (vezi figura 1.).

simptome

1 1
2 2
. Boli R
. K
.. .
I

m m
1 2 . . . n

figura 1.

- Pozitille din matrice reprezinrn relatia simptom-boala.


- Fiecare pozitie a vectorului Rare asociata 0 boala i (i=l,m).
- Initial, vectorul R se seteaza pe zero.
Completarea matricii K se face la construirea sistemului cu valori cuprinse de exemplu mtre - .
100 ~i 100. Valoarea este propusa de medic ~ireprezinta plauzabilitatea ca un anumit simptom
sa apara la 0 anumirn boala.
Functionarea sistemului se desfii~oaradupa urmatorul algoritm:
1. R = O.
2. Se parcurg de la Ila n simptomele ~i:

{
dadi simptomul apare, coloana corespunzatoare acestuia din K se aduna la R.
3. Se afi~eaza numele bolilor asociate pozitillor din R in ordinea descrescatoare a
valorilor fmale.
Obs. Se poate afi~a §i v~I°'4:ea~~c~, aceasta putand fi interpretata ca un scor de
plauzibilitate.
. Modelul nu are nid un fundament matematic ~i este foarte rudimentar. Dar, pledind de la
acest model s-au construit noi modele, cu 0 funcponalitate mai ridicata ~i mai bine

-
aprofundate teoretic.
. Tipul acesta de programe a fost numit SISTEM..DESUPORT PENTRU DECIZIL!~i§iQE
S~port ~y~~~-p.§1!). -
Domemul de aplicabilitate nu este numai medicina. Oriunde exista in anumite conditii date,
posibilitatea de a lua mai multe decizii, putem aplica astfel de sisteme (depanare, economic, .
rnilitar).
b.) a a doua cale de abordare este simularea rationamentului medical.
Se construie~te un program asemanator unui demonstrator automat de teoreme, care pe baza
unor .t{.~m,i:i~prin deduce diagnosticul.
Programul trebuie
Spre deosebire sa incorporeze
de DSS, ~iese ~W9~
acest tip deprograme necesareefectuariiraponamentului.
(m t mai complexe) a fost denumit v'SISTEM .
BAZAT I;'E CUNOSTINTE (Knowledge ~ased Systems - I93.S).
Denumifi1e'de-DS"S~~r'K'Bt sunt fulosite cu predidere 'ill M;ea Britanie. In SUA aceste
programe au fost cunoscute sub denumirea generidi d~§ISTEME EXPERT (Exp~rt~ste.~).
. Pentru KBS primele modele au fost influentate de limbaiele de programare existente in
perioada '55 - '65 (FORTRAN, COBOL). Din acest motiv cel mai fIresc model a fost la acea
data DIAGRAMA DE FLUX (Flowchart).
- Structura de date folosita in acest caz este un graf orientat peste care se aplica un mecanism
de evaluare logica in lant (branch chain logic). Nodurile grafului pot contine piese de
cunoa~tere (simboluri, propozipi) ~i/sau operapi logice.
Un nod poate avea una sau mai multe "intrari" (arcele orientate catre acel nod) §i 0 singura
"ie§ire" care poate fi multiplicata. Schema generala a unui astfel de nod este data in figura
2. Nodurile I§i transmit pe arce valori de adevar True/False.

"-'>V
) P\ -)
?J
[piesa de cunoastere]

operatie logica

figura 2.

<>Un exemplu foarte simplificat este ilustrat In figura 3.


a Sistemul prezentat funcponeaza corect doar daca la ie~ire va apare 0 singura valoare True ~i
, restul False in toate cazurile de utilizare (seturi de premise posibile).
J

Cf(/?,r; - (l. P-t~ J66A


2(~ ) MY. ~~~ ~.
CQAt
, IJ.
~, t
-'I-I"
o..cM)"
\
II
a:J,., {)"\N-
U CAAAf~oi)
durata boala (Iunga/s,

tuse seaca
CD
.-N tuse violenta
1i1
c: TBG
«S
.-C/) febra 37 - 38

(])
febra 38 - 39
E
.9 -
a. febra 39 42 septicemie
.-E
C/) leucocite 5 - 20000

leucocite 20000 -

. Dezavantajul acestui model este complexitatea pe care 0 poate atinge grafu1pentru un set
prea mare de piese de cunoa~tere. Aceasili complexitate duce inevitabilla ~.li de function are
(nu apare nici un diagnostic sau apar mai multe) care sunt foarte greu de depanat Adaugarea .
de noi noduri poate duce la comportari nea§teptate ale sistemului. De§i pentru probl~me de
tipul premise logice --7 conc1uzie simple modelul este u~or de implementat el nu este
recomandat pentru construirea unor sisteme cu un volum mare de cunostinle inl1intuitelogic.
~i acest model a reprezentat un punct de plecare pentru construirea unor modele mai
puternice, bazate de regula pe logica matematica.
. ~i DSS §i KBS au la intrare un ~~~~ (simptome sau analize clinice dad. ne referim
la domeniul medical). S-a observat ca este foarte important ca aceste premise sa fie
standardizate.
ill

3. FOLOSIREA METODELOR STATISTICE PENTRU IMPLEMENTAREA


DSS.

.mattice,
Modelul DSS prezentat anterior~are un fundament matematic. Acesta lncapsuleaza mtr-o
cuno§tinle medicale provenite din caqi, articole §i experienta personala, lntr-un mod
empIDC.
. Daca pentru un numar mare de pacienti investigati, stocam mtr-o baza de date, toate
premisele standardizate (un set de simptome ~i analize clinice unitare) §i diagnosticul final
(care se presupune a fI corect) yom avea 0 sursa viabila de informatii, oarecum diferiili de
exprienta personala.
. Daca folosim elemente din teoria probabiliilitilor putem folosi aceste date pentru a stabili
un diagnostic pe baza unor premise date.

4. DEFINITII 81 NOTATII UTILE

. Notam eu Q multimea tuturor rezultatelor posibile ale unui unui experiment (§i 0 yom

?J
considerafiniffi).
<>Exemplu: aruncarea zarului va genera Q = {I,2,3,4,5,6}
. a submultimea lui Q se nume~teevenimentnotat E, F,u.
<>Exemple: evenimentul ca din aruncarea zarului sa rezulte un numar par este E = {2,4,6,}.
Evenimentulca din aruncareazaruluisa rezulteun numarmai mic dedit 4 este F ={1,2,3,}.
. EvenimentulQ se nume~teevenimentulcert.
. Evenimentul {} (notat ~i I) se nume~te evenimentul imposibil.
. Probabilitatea..unui eveniment se noteaza p(E), este un numar real §i are unna~oarele
propriemtiaxio'matice:
0 So P (E) So 1

p(Q) =1

p ( I) =0

.probabilitatea
Axioma. Daca doua evenimente E §i F sunt mutual exclusive (multimi disjuncte),
ca macar unul sa apara este suma probabilimtilor lor individuale:
En F={} - p(E U F) =p(E) +p(F) (1 )

. Complementul-,unui eveniment (notat E) este:


E ~ Q-E

p (E) = l-p(E) (2 )

. Probabilitatea p(E
o,£g~Qr.iY.a~
(J F) semnifica faptul di §i evenimentul E §i evenimentul F trebuie
~i se nume§te probabilitate compusa. Se noteaza:
p(E,F) ~ p(E n F)

. Probabilitatea conditionata a evenimentului E in cazul aparipei obli.,g,!}tQrll


a J~. !: este
notam peEIF). Cand p(F);C(),peEIF) se defme~te ca raportul dintre probabilitatea compusa
p(E,F) §i probabilitatea de aparipe a lui F.

P (ElF) ~ P (E, F) (3 )
p(F)

Obs. Cand p(F)=O, p(EIF) nu poate fi definim.


<>Exemplu. Care este probabilitatea sa apara la aruncarea zarului un numar par cand se .
considera ca este cert ca numarul va fi mai mic 4.
E={2,4,6} p(E)=p( {2})+p({4})+p({6})=1/2
F={1,2,3} p(F)=1I2
En F={2} p(E,F)=p(F,E)=p({2})=1I6
. 0 variabiUi aleatoare se defrne~te ca 0 aplica}ie:

Lr
1
- p(E, F) - 6" - 1

If
/~ ( P(EIF)
- P (F) - 1
2
- 3"

a:O-R

. Varianta booleana:
aB : 0... {O,l}

se nume~te variabiIa propozitionaHL


. Prin eonven}ie, dnd 0 variabila aIeatoare este egala eu 0 valoare a se noteaza:
a=a ~ {seO 10:(s) =a}

. Daea avem A={a!,az,...,<X.t}un ~ir ordonat de variabile aleatoare ~i a={al,az,...,<1n}


un ~irde
valori reale sau boolene, se noteaza prin eonven}ie:
n
A=a ~ n
li=l
(ai=ai)

. Tot ea ~i eonven}ie,ill formulele din ealeulul probabilimtilor, se eonsidera ea atunci dind,


variabilele propozi}ionale nu mai apar Inso}ite de valorile asociate, ele au asociat un .
euantifieator universal (V).
<>Exemplu. Formula p(a,p)=p( a).p(p) se eite~te:
V a,b E {O,l} p(a=a,p=b)=p(a=a).p(p=b)
. Pentru simplifiearea nota}iei:
a= 1 devine A
p= 1 devine B
a=O devine A
P=O devine B
(literele mici greee~ti se transforma ill litere mari latine)
. Doua evenimente E ~i F sunt independente dnd probabilitatea:
p(E, F) = p(E). p(F) (4 )

<> Exemplu. Probabilitatea unei duble de ~ase este:


1: .1: = .J:...
6 6 36

. Doua variabile propozi}ionale a ~i p sunt independente neconditionat cand:


p(a,l3) =p(a).p(l3) (5 )

~i independente eonditionat dind flind dat un ~ir C de variabile propozi}ionale:

5
p ( ex I PIC) = p I . p ( PIC)
( ex C) ( 6)

5. UTILIZAREA TEORIEI PROBABILIT ATILOR iN DIAGNOZA


, . MEDICALA - - .~

.in acest caz Q este vazuta ca 0 .multi-me de pacieill! (numim ~i populati-e statistica). "
Presupunem ca 8j este 0 variabila propozitionala asociam unei boli (diagnosticul). Formal spus
8j=1 (notat ~i Dj) este multimea tuturor pacientilor care au acea boal~L
. Fie S={O""O"Z,...,O"n}0 multime ordonam de variabile propozitionale asociate tuturor
simpt~!l1~Q.r considerate standard.
<>Exemplu:
0"3=0(S3) inseamna ca pacientii nu au temperatura.
0"3=
1 (S3)inseamna ca pacientii .ill!temperatura.
.. Relativla bazade date prezentamla cap.3,un anumitpacientva avea asociatun vectorde
valori s=(Sj,$z,...,sn)reprezenrond valorile asociate variabilelor din S, ~i 0 boala 8j G=l,m unde
m este numarul de boli luate in considerare).
. Pentru ~n nou pacient, pentru care cunoa§tem doar vectorul s asociat (toate simptomele
sale), dorim sa ca1culam probabilitatea ca sa aiba 0 anumim boala ~, adica valoarea
p(DkIS=s).
. Daca populatia statistica-Q ar fi foarte mare, am numara diti pacienti au avut aceia~iboala
_..&lJ!I1.'IJ!»!'"
~i exact acela~i vector asociat s ~i I-am ~££fI:P I?k (numaruI to~ de cazuri care au
avut acea boala). d~\ ~. !
.
"-- /A(,
A

In practica acest luem este foarte greu de realizat din cauza numarului excesiy d~ mare de
A ~

~}~ pe care ar trebui sa Ie contina baza de date. In plus~SEPRtome}enu smJtU1t~ltdeall~


acelea~i
""'--~,,- la pacienti diferiti, dar care au aceia~i boala. Exism insa 0 serie de alternative pentru
ca1culul p(DkIS=s).

1--~- 6. TEOREMA LID BAYES

. Spuneca:
P (ElF) = p (FIE)
p(F)
. p (E) (7 )

TEMA. Demonstrati singuri teorema folosind formulele anterioare.


.Pentru diagnoza medicala:

(D S) I
= p (sink) .p (Dk) (8)
p k p (s)
f ' 1...t
ft:Jir.~I;,~ <{J.{, ("'U"f!o.~

.. p(Dk) este simplu de calculat cunosdind frecventa cu care ~=1 apare in populatia Q.

p(Dk) = cardLxEQ 15k (x) =1} = cardDk (9)

Obs. Pentru card Q mic, iar ~ este 0 boala rara, pot apare rezultate anormale.
. Pentru a ca1cula peSIDk) trebuie sa presupunem ca simptomele sunt ~!1d~p~,!1:~~_n.t~

G
condi~onat in prezenta bolii ~. Atunci:
n
(10)
p{SIDk) = IIp{aiIDk)
i=l

unde:

p (a i IDk) = p (a l' Dk) (11)


p (Dk)

§l:

cardtxEal~k{x)=1,a1{x)=1} card (Dj1Si) (12)


p ( ai' Dk) = =

.Mai greu este de calculat peS). Dad! presupunem di toate bolile sunt mutual exclusive, adidi ~"~~

fiecare pacient trebuie sa aiba la un moment dat doar 0 singura boala (§i nu este mtotdeauna .
a§a) putem calcula folosind formulele (1) §i (3):
m
(13)
p (S) = j=l
:E p (SIDj) . P (Dj)

unde j este un indice al tuturor bolilor investigate Cl'CZ'''''Cm'


peS IDj) se calculeaza cu formula (10):
n
P(SIDj) = 1=1
IIp(aiIDj)

pentru care se ca1culeaza cu formulele (11) §i (12) fiecare factor.


.Rezulm in final:
n
P(Dk). IIp(aiIDk)
p (Dkls) = i=l (k=l, m) (14)

t,~(Dj) "p,P(01IDJ)]

Se poate observa di numaratorul este unul din termenii sumei de la numitor.


. Aplicarea acestei formule asupra unei baze de date eare reprezinm 0 populatie statistid cu
scopul de a determina un dignostic pentru un nou pacient s-a numit ~RENT A PRIN
REGULABAYESIANA.. ~'"' I' ..~ ". "':-,:,
e":';"."""""rt'"'
~Iic,>t "'~_i,,,,,,,,,,,.'.

lmplementarea unui astfel de sistem din punct de vedere al programarii este foarte simpla.
Daca preferam 0 implementare bazam pe SGBD cunoscute, avem la dispozitie primitive
pentru defmirea unor campuri pentru fiecare pacient din populatia statistica investigata, ca
numele §i alte informatii propozitionale, §i mai ales pentru memorarea unor valori ale
variabilelor propozitionale, amt pentru simptome, dit ~i pentru diagnostic. Dad apare un nou
caz, pentru care cunoa§tem toate simptomele, dar nu §i boala de care sufera, eel mai simplu
este sa prelucram baza de cuno§tin!e, prin contorizarea valorilor de care avem nevoie pentru

7
a aplica teorema lui Bayes, §i in final sa oblinem probabilitatea de aparilie pentru fiecare
boala in parte, sa ordonam descresditor aceste informatii, §i sa afi§am acest tabel ordonat.
Dadi sunt prea multe boli, atunci afi§am numai boilie care au 0 probabilitate mai mare dedit
0 valoare impusa (de exemplu 0.5). Dadi nici 0 boaUi.nu are probabilitatea de aparitie mai
mare decat pragul impus, se poate mtampla ca sistemul expert sa fie necorespunzator pentru .
pacientul respectiv, sau datele culese de la pacient nu au fost bine interpretate.

<>Exercitiu. Avem trei ~imptome (cr},crZ'cr3)§i patru .-boli (<>}'<>Z'<>3'<>4)


§i urmatoarea baza de
date prelucrata. Nr. este numarul de pacienti care au numai 0 boaUi§i un set de simptome:

";"''''.ft~ ~~
I
<>} <>2 <>3 <>4
I O'} O'z 0'3 I Nr. /I
o} Oz <>3 04
I O'l O'z 0'3 I Nr. I

1 000 000 5 0 0 1 0 000 5


1 000 001 20 0 0 1 0 001 100
1 000 010 10 0 0 1 0 010 20
1 000 0 1 1 20 0 0 1 0 011 60
1 000 100 100 0 0 1 0 100 10
1 000 101 40 0 0 1 0 101 40
1 000 1 1 0 50 0 0 1 0 1 1 0 10
1 000 1 1 1 5 0 0 1 0 111 5
0 1 0 0 000 5 000 1 000 10
0 1 0 0 001 10 000 1 001 5
0 1 0 0 010 100 000 1 010 5
0 1 0 0 0 1 1 50 000 1 0 1 1 20
0 1 0 0 100 20 000 1 100 30
0 1 0 0 1 0 1 20 000 1 101 120
0 1 0 0 1 1 0 40 000 1 1 1 0 30
0 1 0 0 1 1 1 5 000 1 1 1 1 30

Folosind formulele (8),(9),(10),(11),(12),(13),(14) calcula}i care sunt probabilitil}i1epentru


fiecare boala pentru un pacient care prezintil simptomele IT}§i 0'3.

B
'L--,
"0\/

6. IMBUNATATIRI ALE INFERENTEI BAYESIENE

. Presupunerea ca ~tomele sunt indeJ?endente condiponat ~i ca un pacient nu


poate avea decat 0 singura boal~ la un moment dat reduce .drastic aria de

.
cplicabilitate ~i generalita!e a inferentei bayesiene.
Putem Inlocui formula (10) prin formula dedusa de Lancaster:

P(SIDk) =t t P((]i,OjIDk)' iI.. P((]qIDk) -(C~-l) .frp((]iIDk) (k: A, n(


(~=1 J=l [ q=1 (q;<~,J) ]) ~=1
(15)

care permite dependenta mtre perechi de simptome.


Aceasta formula este utilizabila doar pentru d~pendent~ (simptomul O"jeste
Intr-o corespondenta funcponala cu simptomul O"j)'Daca avem simp tome dependente
cate trei, sau mai multe, formula 15 se modifica suma dubla fiind lnlocuita cu 0 suma
tripla sau mai mult, iar combinarile din al doilea termen se iau luate cate 3, sau
respectiv mai multe. Evident acest lucru va face ca formula sa devina intensiv .

computaponala ~i pentru un numar mare al dependentelor (apropiat de numarul


simptomelor) sa devina imposibil de ca1culatpe un sistem obi~nuit.
. 5-a observat ca m cazul unei populatii statistice foarte mari, care duce 1aun flmp
de calcul excesiv cu ajutorul formulei (10) ~i mai ales a formulei (15), 0 solupe este
formula lui Aitken:
...

P(SIDk) =l::E Arst'(l-Aa) st ( k= 1 , m) ( 16 )


T t=l

wlde:
T =numarul total de pacienp.

As =factorul de "netezire" pentru boala 8 (O.59..s:S;I).

st =distanJ:a Hamming mtre valoarea 5=(51, 521..., Sn) a pacientului investigat .


~i ~=(51t, S2t,..., 5nt) a pacientului t din baza de date.

5uccesul metodei depinde de alegerea judicioasa a va1orilor As. Exista 0 serle de


metode de optimizare ale acestora. Empiric, pentru 0 boala mai rara Asva fi mai mic,
iar pentru 0 boala mai raspandita va fi mai aproape de 1. .

7. ALTERNATIVE DE CALCUL APROXIMATlVE LA INFERENTA


BAYESIANA

. Daca prin absurd, am avea un numar de pacienp T foarte mare, iar pentru fiecare
boala ~i configurape de simp tome un numar suficient de cazuri, nu ar mai fi necesara
aplicarea formulei (14). p(Dk 15=5)ar putea fi calculata direct cu:

1
p(Dkls=s) = C'C3rdtx~nl~k(X)=l,S(x) =s} (k=l, m) (17)
cardtS=s}

.
numita ~i frecventa relativ~,
a aproximare a formulei (17) pentru valori T rezonabile este "relaxarea" condipei -
S(x)=s prin:
s(x)'"s (18)

numita ~i metoda "vecinilor apropiati", Folosind metrica Hamming pentru a calcula


un numar Vkde pacienp care au boala ~ ~i au simptomele "apropriate" (de exemplu,
pentru 22 de simp tome, distanta Hamming maxim admisa este 3) de simptomele
pacientului diagnosticat, probabilitatea "aproximativa" va fi:
Vk (19)
Pa (Dkls",s) = card {s=s}

Pentru a obpne rezultate bune e indicat sa avem populapi statistice mari, un numar
, mare de simptome standard, iar distanta ma~Ill~ admisa Intre vecini sa ~
. depa~easca 0 zecime din nUJJ:}_~torn~lQ.r,

8. MODELUL LOGISTIC

" Se introduce antiprobabilitatea:

0 (E) ~ P (E) = P (E) (20 )


peE) I-p(E}

~i ,antiprobabilitatea conditionata:

0 (ElF) =P (ElF) (2.1 )


P (ElF)

Din (20) ~i (21) se pot deduce:

p (E) = 1 0+0(E)(E) (22)

~l:

p(EIF) = l+o(E
o(E F) (23)
F)

" S-a observat ca este mai u~or de calcu1at o(EIF). 0 metoda este discriminarea
logistica,(Anderson, 1982)care demonstreaza formula: - .
n
(24)
In 0 (Dls=s) = ao+.E ai'si
. i=l

2
unde vectorul a=(ao/all.", an) poate fi calculat prin diverse metode.
Obs. Metoda este mai generala deeM regula Bayesiana pentru ca:
a) Nu este necesar ca bolile sa fie mutual exclusive.
b) Nu este necesar ca simptomele sa fie independente conditionat.
. Pentru diagnoza medicala s-a propus urmatoarea metoda particulara:
n
(k=l, m) (25)
In O(Dkls=s)= wOk+Lwikosign(Oi)
i=l

unde Wi se numesc "ponded" ~i se calculeaza cu:


WOk= In 0 (Dk)

~1

(i=l,n) (26)
Wik= 1',( p(oiIDk)
L1 p (0 i IDk) )

care este 0 formula aproximativa.


Pentru pacientul investigat se baleiaza lista de simptome ~i se calculeaza:

. -I daca °1=0
(i=l,n) (27)
s.lgn(oj) = { 1 daca °i=l

. Se poate observa ca:

p (Dkls) = eln 0 (DkIS)


(28)
1 +e1n O(Dkls)

ceea ce este tocmai rezultatul dorit.


. Pentru a imbunataji performanj:ele, se compenseaza aproximarea
(26) prin imbunatajirea formulei (27):
data de formula

. -ai daca °i=O


s.lgn(oi)= { bi daca °i=l

unde aj ~i bi sunt ~rametr~tiplizabili( care pot fi recalculaji, ill timp ce sistemul .


este testat.

9. REGULI

. Bazele de date prezentate anterior conjin :'~q~tin~e::.~.W:l~.!i~~.


. Daca analizam domeniul medical, putem identifica ~i alte categorii de cuno~tinJ:e:
a.) CUNO$INTE EURISTICE
Acestea sunt asociajii intre simp tome ~i boli, derivate din o~
medicala.
<>Exemple:
- "Apendicita cauzeaza de obicei dureri in cuadrantul abdominal dreapta-jos".
- "Dureri acute in cuadrantul abdominal dreapta-jos sugereaza apendicita".

'3
b.) CUNO$TINTE APROFUNDA TE
Acestea sunt realitap anatomice ~i cauzalitap fizologice sigure.
<>Exemple:
- "Apendicele este plasat m cuadrantul abdominal drepta-jos".
- "Inflamapa unui organ intern abdominal cauzeaza sigur durere".

c.) META-CUNO$TINTE~
Acestea sunt ~
<>Exemple:
- "Probabilitatea calculata din populapi statistice coreste ~i mari este mai sigura
dedit estimarile subiective".
- "Daca 0 concluzie nu poate fi atinsa prin folosirea cuno~tintelor euristice,
trebuie folosita 0 metoda care utilizeaza cuno~tinte aprofundate". .
. Cand populatiile statistice nu pot fi construite sau bazele de date construite au un
.
numar insuficient de cazuri, nu putem folosi metodele statistice.
Un alt motiv de evitare al inferentei probabilistice este neicrederea utilizatorilor.
Rezulatatul este pur numeric iar inferenta este "opaca", adica nu ofera nici 0 explicatie
in timpul raponamentului.
.. a proprietate necesara a sistemelor expert este TRANSPARENIb-, adica 0

.
modalitate de a explica utilizatorului raponamentul efectuat.
Daca dorim sa modificam un sistem bazat pe probabilitap, prin adaugarea de noi
boli ~i simp tome, trebuie modificate bazele de date, lucru care implica refacerea
populapilor statistice prin colectarea de noi informapi. Acest lucru este foarte
costisitor.
. a aHa proprietate importanta a sistemelor expert este PLAS':f.!£IT1\P?1-_.
.
posibilitatea de a adauga/~terge/modifica cuno~tintele conpnute.
Cuno~tintele aprofundate pot fi imparpte m doua clase:
a.) Cuno~tinje categorice.
b.) Cuno~tinje cu un anumit grad de incertitudine.

- - - CATEGORICE
10..' CUNOSTINTE - ~ "',

$ Se numesc astfel cuno~tintele care conpn relapi mtre entitap fizice sau abstracte,

.
relapi despre care j},.\J,I~ii~!l~
Ele pot fi exprimate ca reguli de tipul"if-then". Acestea au structura:

( if PREMISE then CONCLUZIE)


- PREMISE este 0 conjunclie
logica de simboluri care denota entitap. Un simbol
poate reprezenta 0 intreaga propozipe sau grup atomic de propozipi.
- CONCLUZIEeste.un sin~~ !~~jf.U~...olcare denota 0 entitate care poate fi
dedusa logic din premise. .
. a coleCjiede astfel de reguli se nume~te baza de cunostinte categorice. \£.~~g.9r\~1
I<:!1~~~~~,,~,~~~~). . . . ., .

48 In Jurill.-unel astfel de baze de cuno~tmte se poate constrUl un slstem expert cu


structura descrisa m figura 4.
. Relativ la regulile "if-then" exista doua mecanisme posibile pentru <:onstr~ui:r:.~~
ma~inii de~i11f£.fenj~:
a) Mecanismul bazat pe rationamentul dirijat de date ("data driven reasoning")

4
BAZA
DE zona
de
CUNOSTINTE MASINADE INFERENTE lucru

figura 4.

numit ~i "forward-chaining". Uneori un astfel de sistem este denumit ~i sistem de


producpe ("production system").
b) Mecanismul bazat pe rationamentul dirijat de scop ("goal driven reasoning")
numit ;;i "backward chaining".

<>Exemplul unniHor diferentiaza cele doua mecanisme. Daca avem doua reguli:
- if a=l & b=2 then c=3
- if c=3 then d=4
yom avea doua sisteme descrise In Figura 5.

FORWARD CHAINING
a=1 date REGULI
b-, oferitsde d-4
inferenta prin 'modus ponens" concluzn
utlliz810r

BACKWARD CHAINING
intrebari REGULI
catre scop
utlliz810r
inferenta prln
principlul rezolutiei raspuns
sistem

figura 5.

-In diagnoza medicala avem un numar mare de premise (simp tome) care sunt
colectate de la un pacient investigat. De obicei? 0 mica parte din ele sunt considerate
(Jj=l (adevarate), restul fiind considerate (Jj=O(false).

- De aici se poate trage concluzia ca un sistem de diagnoza medicala se poate


implementa avantajos cu un mecanism "forward-chaining".

5
11. FORWARD CHAINING

. Dad avem regulile exprimate in PROLOG sub forma:

rule([premisal, premisa2, ..., premisa N], concluzie).

mai avem nevoie de un set de clauze care reprezinta simptomele (premise Ie initiale):

symptom«nume_simptom».

~i un set de clauze care reprezinta boilie posibile (concluziile finale):

disease «nume_boala» .
.Mai trebuie sa ne definim un tip de c1auza "asertabila", clauze care vor contine
concluziile intermediare:

partial_conclusion«concluzie».

~ Ma~ina de inferenta poate fi descrisa foarte simplu prin urmatoarele predicate:

forward_chaining(D):-
disease (D) ,
partial_conclusion(D),
! .

forward_chaining(D) :-
rule(P, C),
truelist(P),
not(partial_conclusion(C»,
assert(partial_conclusion(C»,
forward_chaining(D),
! .

forward_chaining(_):-
nl, write ("No solution found for these premises") .

truelist ( [] ) .

truelist([HIT]):-
symptom(H) ,
truelist(T) ,
!.
truelist{[HIT]}:-
partial_conclusion(H),
truelist {T} .

Q Sistemul va functiona dupa principiul:

goal
empty_the_working_space,
checklist_symptoms,
forward_chaining(D),
write_diagnostic(D).

Se observa ca secvenJ:a de mai sus va afi~a doar 0 singura solutie D=<nume_boala>


(prima intiHnita in setul de clauze "disease"). Se poate utiliza predicatul repeat, dar
afi~area mai multor boli pentru un set de simp tome date poate insemna 0 functionare
defectuoasa a sistemului.

6
<> Exemplu:
Se prezinta In continuare un sistem simplu ell "forward_chaining".
domains
list=symbol*
predicates
rule (list, symbol)
animal (symbol)
fwd (symbol)
checklist-premises
initial-premises(list)
truelist(list)
checkl(list)
empty_working_storage
database
partial (symbol)
premise (symbol)
clauses
1***********************************************************
BAZA DE CUNOSTINTE
***********************************************************1
1* aceasta este 0 parte a bazei de cunostinte pe care
trebuie s-o scrie proiectantul pentru a asigura partea.
de citire a premiselor initiale din interfata *1

initial-premises([has_feathers,
lays_eggs,
flies,
has_scales,
has_skin,
lives_on_land,
lives_in_water,
has_fur,
drinks_milk,
is_carnivore,
is_domestic,
is_viviparous,
is_flightless,
swims,
is_big,
has_no_legs,
black-yellow_color]).

1* acestea sunt cunostintele care pot fi scrise de un expert


care aproape nu stie PROLOG */

rule([has_feathers, lays_eggs ], is_bird).


rule([has_scales, lives_on_land, lays_eggs ], is_reptile).
rule([has_scales, lives_in_water, lays_eggs ], is_fish).
rule([has_skin,lives_in_water, lays_eggs ]h is_fish).
rule([has_fur, is_viviparous, drinks_milk ], is mammal).
rule([has_skin, is_viviparous, drinks_milk ], is_~ammal).
rule([is_bird, is_flightless, swims ], is-penguin).
rule([is_bird, flies, is_carnivore ], is_falcon).
rule([is_bird, is_flightless, is_big ], is_ostrich).
rule([is_mammal, lives_in_water,is_big ], is_whale).
rule([is_mammal, lives_on_land, is_carnivore], is_tiger).

7
rule{[is_mammal, lives_on_land, is_domestic ], is_horse).
rule([is_fish, is_big ], is_shark).
rule([is_fish ], is_salmon).
rule([is_reptile, has_no_legs ], is_snake).
rule([is_reptile, black-yellow_color ],is_salamander).

1* acestea sunt concluziile finale la care poate ajunge acest


sistem expert - pot fi scrise si de expert *1
animal(is-penguin).
animal(is_ostrich).
animal(is_falcon).
animal(is_whale).
animal(is_tiger).
animal(is_horse).
animal(is_shark).
animal(is_salmon).
animal(is_snake).
animal(is_salamander).

1*********************************************************
MASINA DE INFERENTA
*********************************************************1

fWd(Animal):-animal(Animal),partial(Animal),I.
fwd(Animal):-rule(Premises, Conclusion),
truelist(Premises),
not (partial(Conclusion»,
assert(partial(Conclusion»,
fwd (Animal) .

fwd(_):-nl,write(IIFor these premises is no solution").

truelist( []).
truelist([HIT]):-partial(H),truelist(T),I.
truelist([HIT]):-premise(H),truelist(T).

1*********************************************************
INTERFATA
*********************************************************1

checklist-premises:-initial-premises(L),checkl(L).
checkl ( [] ) .
checkl ([H IT] ):- .
write (lI\nanswer: The animal", H," (y/n) II),readchar(A),
write(A),A='y',I, assert(premise(H»,checkl(T).
checkl([_IT]):-checkl(T).

empty_working_storage:-
retractall(premise(_»,retractall(partial{_».

goal
empty_working_storage,
checklist-premises,
fwd (Animal) ,
write(lI\n Animal II, Animal).

. Un astfel de sistem se mai nume~te ~i sistem eu "forward-chaining" interaetiv.

8
12. BACKWARD CHAINING

. In alte domenii dedit diagnoza medicala, poate fi foarte costisitor ;;i dificil sa avem
la un moment dat toate premisele inijiale care'sunt adevarate, pentru ca numarul
premiselor initiale poate fi foarte mare (Hi'). Sunt lnsa foarte multe cazuri in care
aces tea se exclud in lanj. Punerea uneia sau a mai multora pe valoarea TRUE nu ar
avea nid un efect.
<>Exemplul urmator ilustreaza acest caz.

if (B,C,D) ; R then A.
if E,F then B.
if G,H,I then C.
if J,K then D.
if L,M then H.
if N,O,P then K.

Aceste reguli se pot reprezenta ;;i ca un subarbore de decizie- de tiE. ~i/~y (vezi
Figura 1) care aparjine unui arbore mai mare care reprezinta intreaga baza de .
cuno?tinte.

jonctiune "si"

figura 1.

In aceasta baza de cuno;;tinje E,F,G,L,M,N,O,P sunt premise initiale ;;i intr-un sistem
cu "forward-chaining" interactiv utilizatorul ar fi interogat secvential despre valoarea
lor de adevar. Dar se poate observa ca negarea uneia duce la negarea celorlalte. Daca
E = FALSE nu mai are yost sa intrebam utilizatorul ce valoare au F,G,L,M,N,O,P.
Evaluarea trebuie inceputa de la R.
. Din acest exemplu se poate trage concluzia ca ar fi mai bun un mecanism care se
bazeaza pe cautarea in adancime.
. Primul nivel al arborelui va reprezenta concluziile finale (vezi figura 2).
De obicei se dore§te atingerea unei singure concluzii finale. Pornind de la fie care,
coboram in arbore incepand din stanga pana la prima premisa initiala ;;i intrebam
dadi aceasta este adevarata sau falsa. Daca este adevarata, contiJluam eu nodul
dreapta ei. Daca este falsa, trebuie sa urcam pana gasim 0 jonctiune de tip sau ;;i

~
concluzie finala

concluzie1 concluzie2 III III II concluzie n

figura2.

continuam de acolo de acolo cautarea in adancime, pe noua ramura din dre~pta


jonctiunii sau. Toate nodurile din stanga joncpunii sau vor fi considerate false. Daca
vom reu~i sa gasim un subarbore cu radacina Concluziej care are toate nodurile
adevarate, inseamna ca am gasit rezultatul dorit ~i eventual (daca nu poate exista
dedit un singur rezultat) oprim diutarea. v'
PROCEDURAL, ACEST ALGORITM REPREZINTA MECANISMUL DE
"BACKWARD-CHAINING".
. Implementarea intr-un limbaj procedural este foarte putin avantajoasa, mai ales
dad} dorim separatia bazei de cuno~tinte de ma~ina de inferente, iar cuno~tintele sa
apara reprezentate ca reguli "if-then".
. In limbajul-PROLOG, implementarea este mult mai simpHi, pentru ca sistemele
PROLOG ofera prin propriullor sistem de backtracking 0 construire mai u~oara a
ma~inii de inferenta cu "backward-chaining", iar n:;gq1ile se pot reprezenta ca ~i
cl't~~ I;!2m. Aceste sisteme se mai numesc §i "meta-interpretoare~
.. Pentru ca sistemele bazate pe "backward-chaining" sunt prin natura lor interogative,
trebuie tinut cont in implementare de doua aspecte importante:
- interfata cu utilizatorul sa fie cat mai "user-friendly" (ferestre, meniuri, etc.).
- posibilitatea explicarii rationamentului (TRANSPARENT A).
. Pentru exemplificarea implementarii $i functionarii unui sistem care se bazeaza pe
mecanismul intrinsec de "backward-chaining" al PROLOG-ului vom considera cazul
concret al unui sistem expert pentru recunoa§terea pasarilor pe baza unor atribute
observate (euno~tintele neeesare sunt preluate din cartea "Birds of North America" de
Robbins, Bruum, Zim ~i Singer).
. Inainte de a trans~~te cuno~tintele sub forma de 9auze Hor~, este necesara 0
incursiune in domeniul denumit ingineria cunostintelor (Knowledge Engineering).

13.TEORIA ASOCIA TIONIST A


. Define$te intelesul unei entitap fizice sau abstracte in termenii unei retele de
asoeiere eu alte entitati aflate in mintea umana sau intr-o baza de cuno§tinte. Teoria
spune ca, de exemplu cand percepem sau raponam relativ la 0 anumita entitate,
aceasta este mapata peste 0 zona a mintii noaStre, numWi zona conc~tuala. Aceasta
zona apartine de intreaga noastra colectie de cunostinte despre lume $1este conectata
de zone conceptuale care retin informapi despre alte entitati care au relatii semantiee
cu conceptul respectiv.
e Injelegerea organizarii colecjiei de cuno$tinte des pre lume a omului este unul din
scopurile majore ale $tiintelor cognitive $i se afla intr-un stadiu primar.

2
.. Exista insa experimente psihologice care au relevat caracteristici fundamentale ale
organizarii conceptelor in mintea umana.
Unul din aceste experimente este cel allui CQllips ~i Quillian (1969);
- Subiecti umani au fost testap folosind un set de intrebari despre un anumit
domeniu limitat.
De exemplu:
1. "A canary is a canary?"
2. "A canary is a bird ?"
3. "A canary is an animal ?"
4. "A canary can sing ?"
5. "A canary can fly?"
6. "A canary can breathe ?"

S-au masurat timpii de raspuns medii la aceste intrebari ~i s-au obtinut rezultatele din
Figura 3.
Acestea au sugerat ca omul memoreaza
conceptele intr-un mod ierarhicf in functie tIs] 1.0.
de nivelul lor de abstractizare. Pentru 1.5
1A
setul de intrebari respectiv (unde sunt mai 1.3
multe deeM cele 6 prezentate) s-a putut 1.2
construi ierarhia din figura 4, unde 1.1
1.0
conceptele scrise cu litere marl se numesc 0.11
CLASE, iar cele scrise cu litere mid
atribute. Acestea de mo~tenesc de la clase
~
complexitatea intrebani
la subclase, mai putin exceppile.
Atributele pot fi la randullor clase in alte figura 3.
ierar hii.

ANIMAL~ Move
Breathe
is_a

feathers
FI S H..~«<."~

sing Yallow Ostrich


t ".

fly tall

figura 4.

Din punct de vedere psihologic, explicatia tirnpilor de raspuns poate fi urrnatoarea:


Incercarea de regiisire a raspunsului dureaza rnai rnult datorita necesitiitii p.E:rcurgerii
ierarhiei
. pentru "atingerea"
. inforrntiei dorite.
-

:3
Explicajia acestui mod de memorare a informapei poate fi _~inima ~_~~u~~aDJA'
Mintea umana se pare ca s-a adaptat sa-~i organizeze informapa intr-un mod cat mai
structurat §i mai optim.

. Pentru un model computational inspirat din aceasta teoriel avantajul principal


apare cand adaugam n.Qiclqse. Toate atributele necesare acestora vor fi mo~tenite
(tratand evident exceptiile)1 nefiind necesare decat adaugarea atributelor specifice ale
acestor clase.
. Pentru sistemul nostru vom folosi ierarhia ilustrata in anexa A.

.Ne propunem sa putem identifica cele 20 de pasaril care apar ca ;;i frunze in acest
arb ore taxonomic.
'. Fiecare clasa dIn aceasta ierarhie are 0 serie de atribute care se mo~tenesc la .

subclase. Am evitat exceptiile pentru ca tratarea lor este 0 problema deosebit de


complexa ~i ar mari exponential dimensiunea sistemului nostru.
.Atributele sunt perechi de tipul:

N ume_Atribut -- Valoare

Pentru a putea construi sistemul trebuie sa cunoa~tem toate numele atributelor ~i


toate valorile posibile ale acestoral adica 0 lista:

<atribut_l>: (valoare_llf '''1 valoare_n1).

<atribut_m>: (valoare_lml "'1 valoare_nm).

14. IMPLEMENT AREA SISTEMULUI IN PROLOG

. Pornind de la ierarhia de clase prezentata anterior putem defini trei tipuri de reguli:

a) order«ordinul» :-
<atribut_o1>«valoare», ...,

<atribut_oM> «valoare» .
unde atributele sunt specifice ordinului respectiv.

b) family«familie»:-
order«ordinul_din_care_face-parte_familia»,
<atribut_f1>«valoare», ...,

<atribut_fL>«valoare».

unde atributele sunt specifice familiei respective. Se poate observa ca atributele unei
superclase se mo§tenesc prin apel de predicate la subclase. Exista ~i posibilitatea
mO$tenirii multiple, eu eondipa sa nu apara atribute contradictorii. 0 baza de
cuno;;tinte care contine reguli care se contrazic se nume~te INCONSISTENT A.

e) bird«pasare» :-
family«familia_din_care_face-parte-pasarea»I
<atribut_b1>«valoare», . ..,

4
<atribut_bk> «valoare» .
Regulile de aceste tipuri vor forma baza de cuno~tinte.
. Putem deja utiliza baza de cuno~tinte folosind mecanismul de "backward-chaining"
intrinsec al sistemului PROLOG lucrand in felul urmator:
- Dadi vom considera regulile:

order(tubenose):-
live(at~sea),
bill (hooked) .
family(albatross):-
order(tubenose),
size(large),
wings(long_narrow).
bird (black_footed_albatross) :-
family(albatross),
color(dark) .

- $i adaugam prin assert premisele:

live (at_sea) .
bill (hooked) .
size(large) .
wings(long_narrow).
color(dark) .

- Punand intrebarea:
goal: bird(X)

Prin "backward-chaining" sistemul PROLOG va deduce:

X=black_footed_albatross

. Aeest sistem de lueru este dezavantaios pentru di nu folose~te meeanismul de


interogare selectiva a utilizatorului (mediul de lucru interactiv). Aceasta are sens doar
in eazulin care avem joncfiuni de tip sau. Acestea apar in cazul nostru din doua
motive:
a) Datorita relafiilor superclasa-subclasa. 0 superclasa confine mai multe subclase,
negarea unui atribut specific unei subclase "duce" rafionamentulin "zona" subclasei
imediat urmatoare.
b) Posibilitatea de a avea mai multe reguli pentru aceea~i pasare. In sistemul nostru .

putem da urrnatorul exemplu: pentru pasarea "mallard", masculul ~i femela au


coloraturi diferite. Regulile se vor scrie:
bird(mallard) :-
family(duck), voice(quack), head (green) .
bird{mallard) :-
family(duck), voice(quack), color (motled_brown) .

. Nu este obligatoriu sa se eonstruiasea baza de cuno~tinte utilizand doar 0 singura


ierarhie. Daca avem mai muIte este natural sa existe relatii intre entitafi ale acestora.
Vom ilustra aeest lueru printr-un exemplu:

s-
- Unul din atributele posibile ale pasarilor este regiunea unde au fost observate. Mai
mult, se poate intampla ca din cauza migrajiei, ele sa poata fi observate in regiuni
diferite in funcjie de anotimp. Pentru pasarea "canada_goose" vom avea in acest caz
urm;Hoarele doua reguli (un caz de sau in arborele de decizie):

bird (canada_goose) :-
family(goose); season(winter) I
country(united_states), head(black) ,
cheek(white). .
bird(canada_goose):-
family(goose)I season (summer) I
country(canada), head(black),
cheek (whi te) .

. Atributul country va face parte din alta ierarhie (de regiuni):


Pentru simplitate vom considera doar doua nivele din aceasta ierarhie, ~i doar cateva
regiuni posibile:

country(united_states):- region(mid_west) .

country(united_states):- region(south_west) .

country(united_states):- region(north_west) .

country(united_states):- region(mid_atlantic) .

country (canada) :- region(ontario) .

country(canada):- region(quebec) .

. Intotdeauna, intr-o baza de cuno~tinje, una din ierarhii se nume~te principala, restul
fiind auxiliare. Regulile care Ie definesc se nurnesc ~i ele principale, respectiv reguli
auxiliare. Regulile care cantin concluziile finale (in cazul nostru regulile "bird") se

.
numesc reguli de scop (top goal rules). .
Nu este obligatoriu ca regulile auxiliare sa fadi parte dintr-o ierarhie. In cazul in
care ele sunt intr-un numar foarte mare, se poate observa avantajul construirii
~

sistemului in PROLOG, care permite contralul informatiei chiar daca arborele de


decizie devine prin complexitatea sa oarecum haotic.
. Pentru ca, in forma actuala, sistemul funcjioneaza doar daca adaugam prin assert
premisele initiale este necesar sa construim 0 interfata care sa puna intrebarile

.
necesare pentru deducerea unei solutii.
Nu mai este necesara construirea explicita a masinii de inferenta pentru ca sistemul
PROLOG va juca acest rol. Structura sistemului, scrisa in PROLOG pur (sin taxa
Edinburgh) va fi urmatoarea:

/ / BAZA DE CUNO$TINTE:
order (<primul_ordin» :- ".' I !.

order«ultimul_ordin»:- "'1 1.
family«prima_familie»:- ..., !.

family«ultima_familie»:- . .., !.
bird{<prima-pas~re»:- "'1 !.

bird«ultima-pas~re»:- ..., !.
top_goal(X):- bird(X).

Predica tul procedural cut (!) este folosH ca sistemul sa se opreasca la prima solujie

G
intalnWi. Predicatul top~oal va specifica nurnele de predicate de scop (pot fi mai
multe). Baza de cuno;;tinte continua cu regulile auxiliare:

country ( ...
region(...

. Aceasta parte a sistemului confine strict cuno~tintele incorporate. Pentru a asigura


legatura cu interfata trebuie specificate toate a"tributele care apar in sistem. Daca
aces tea sunt atinse in timpul cautarii in adancime (prin backtracking), utilizatorul
trebuie intrebat despre valoarea atributului respectiv. In concluzie, pentru fiecare
atribut, sistemul va contine 0 regula de tipul:

1) <atribut>(X):- ask«nume_atribut>, X).

<> Exemplu: color(X):- ask(color, X).

.
Predicatul ask face parte din interfata sistemului.
Un mod comod de a introduce raspunsul este de a avea afi;;ate toate optiunile
posibile ;;i de a selecta doar una din ele (In stiIuI meniu de optiuni). In acest caz mai
trebuie 0 serie de clauze de forma:

II) answers «nume_atribut>, [<valuel>, ..., <last_value>]).

<> Exemplu: answers (color, [dark, ... ]).

. Regulile de tipul I ;;i II vor reprezenta 0 parte a sistemului care va realiza legatura
dintre baza de cuno;;tinte ;;i interfata ;;i vor fi serise de catre proiectant.
. 0 prima versiune a predicatului ask care implementeaza interfata ar putea fi:
.
ask(Attribute, Value):- answers(Attribute, value_List),
<afi~are_selectare>(Value_List, Answered_Value),
Value == Answered_Value.

.
unde operatorul == este egalitatea in PROLOG-ul pur.
Cu aceasta varianta, se va observa ca din cauza mcerdirii regulilor una
in caz ca ele nu reu;;esc, aceia~i mtrebare poate fi pusa in mod inutil de
dupa alta,
mai multe
ori. Din acest motiv este necesar ca dupa ce un anumit atribut a primit 0 anumita
valoare, aceasta sa fie memorata ca ;;i 0 noua clauza intr-o zona de lucru dinamica,
prin metapredicatul assert.
ask (Attribute, Value):- clause(Attribute(Value»,
1.
ask (Attribute, -):- clause(Attribute(_»,
.I ,
fail.
ask (Attribute, Value):- answers(Attribute, Value_List),
<afi~are_selectare-prin_meniu>(Value_List, Answered_Value),
New_Clause =.. [Attribute, Answered_Value],
assert(New_Clause),
Value == Answered_Value.

7
uncle =.. este operatorul univ care construie~te un functor dintr-o lista (~i invers).
. Pornirea sistemului va fi asigurata prin:
goal
greetings,
top_goal (X) ,
<afil?eaza_solu1;.ia>("Thebird is a ", X).

. Oatorita inexistentei metapredicatului clause ~i a operatorului univ In


TURBOPROLOG, vom folosi ca ~i zona dinamica de lucru, zona definita cu database
printr-un predicat special care va refine raspunsurile ca ~i pereche atribut-valoare. .
database
known «atribut>, <valoare».

In TURBOPROLOG, predicatul ask va avea forma:


ask (Attribute, Value):- known (Attribute, Value),
! .

ask (Attribute, -):- known (Attribute, -),


I,
.

fail.
ask (Attribute, Value):- answers (Attribute, Value_List),
<afil?are_selectare-prin_meniu>(Value_List, Answered_Value),
assert (known (Attribute, Answerd_Value»,
Value = Answered_Value.

iar in zona de goal vom avea:

goal
greetings,
repeat,
solve,
nl, write( "Another bird? (y/n)"),
readchar (C) ,
C=' n' .

unde predicatul solve va porni procesul de cautare ~i va afi~a solupa.

solve:- retractall(known(_,-»,
top_goal (X) ,
nl, write ("The bird is a ",X), nl,
! .

solve:- write("No bird with these features found "), nl.

In continuare se prezinta implementarea funcponala a acestui sistem in


TURBOPROLOG:

domains
list=symbol*
predicates
top_goal (symbol)
bird (symbol)
family(symbol)
order (symbol)

8
answers (symbol, list)
ask(symbol,symbol)
solve

greetings
select_from_menu(symbol,list,symbol)
displist (integer, list)
pick(integer,integer,list,symbol)
repeat

live (symbol)
bill (symbol)
feet (symbol)
eats (symbol)
size(symbol)
wings (symbol)
neck (symbol)
color (symbol)
flight (symbol)
feed(symbol)
head (symbol)
tail (symbol)
voice (symbol)
season (symbol)
cheek (symbol)
country (symbol)
region (symbol)
/******************************************
BAZA DE CUNOSTINTE
*******************************************/
clauses
top_goal(X):-bird(X). /* asigura legatura cu MI */
/* REGULI AUXILIARE */
country(united_states):-region(new_england),!.
country(united_states):-region(mid_atlantic),!.
country(united_states):-region(south_east), !.
country(united_states):-region(mid_east),!.
country(canada):-region(ontario),!.
country(canada):-region(quebec).
/* REGULILE PRINCIPALE */
order(tubenose):-live(at_sea),
bill (hooked) , ! .

order(waterfowl):-feet(webbed),
bill(flat), !.
order(falconiforms):-eats(meat),
feet(curved_talons),
bill(sharp_hooked), !.
order (passerformes) :-feet(one_long_backward_toe).

family(frigate) :-order(tubenose),
wings(w_shaped), !.
family(albatross):-order(tubenose),
size(large),
wings(long_narrow),!.
family(swan) :-order(waterfowl),
neck (long) ,
color(white),
flight(ponderous), !.

5
family(goose) :-order(waterfowl),
size (plump),
flight(powerful), !.
family(duck):-order(waterfowl),
feed(on_water~surface),
flight(agile), !.
family(vulture):-order(falconiforms),
wings (broad) , .,
feed(scavange),!.
family(falcon) :-order(falconiforms),
wings(long-pointed),
head(large),
tail(narrow_at_tip), !.
family(flycatcher) :-order(passerformes),
bill(conical),
eats(flying_insects), !.
family(swallow) :-order(passerformes),
wings(long-pointed),
tail(forked),
bill (short) .

bird(seagull) :-family(frigate),
color(white),
eats (fish) ,
size(medium), !.
bird(petrel) :-family(frigate),
color (brown) ,
head(black),
size(small),I.
bird(laysan_albatross):-family(albatross),
color(white), !.
bird (black_footed_albatross) :-family(albatross),
color (dark) ,! .

bird(fulmar) :-order(tubenose),
size (medium) ,
flight(flap_glide),!. .
bird(whistling_swan):-family(swan},
voice(muffled_whistle),I.
bird (trumpeter_swan) :-family(swan),
voice(loud_trumpeting), !.
bird (canada_goose) :-family(goose),
season(winter),country(united_states),
head (black) ,
cheek (white) ,! .

bird (canada_goose) :-family(goose),


season(summer),country(canada),
head (black) ,
cheek(white),I.
bird(snow_goose):-family(goose),
color(white),
live(sub-polar_zone),I.
bird(mallard) :-family(duck),
voice(quack),
color (brown) ,1 .

bird(mallard):-family(duck),
voice (quack) ,
head(green), !.
bird(pintail):-family(duck),

~()
neck(white),
- cheek(golden),!.
bird(turkey_vulture):-family(vulture),
color(white_sprayed_black),
head(red),!.
bird(california_condor):-family(vulture),
color(black),
head(white),!.
bird(sparow_hawk):-family(falcon),
eats(insects),
live(at-ponds), !.
bird(peregrine_falcon):-family(falcon),
eats(birds),
neck(cone_shaped), !.
bird(crester) :-family(flycatcher),
neck(yellow),
flight(fast_low_level), !.
bird(ash_throat):-family(flycatcher),
tail(long_narrow),
feed(hidden),!.
bird(barn_swallow):-family(swallow),
live(forrest), !.
bird(cliff_swallow):-family(swallow),
cheek(grey), !.
bird(purple_martin):-family(swallow),
color(brown),
head(black).
/**************************************************
Legatura dintre baza de cunostinte si interfata
***************************************************/
answers (region, [new_england, mid_atlantic, south_east,
mid_east, ontario,quebec]).
answers (live, [at_sea,sub-polar_zone,at-ponds,forrest]).
answers (bill, [hooked,flat,sharp_hooked,short,conical]).
answers (feet, [webbed,curved_talons,one_long_backward_toe]).
answers (eats, [meat,flying_insects,fish,insects,birds]).
answers (size, [large,medium,small,plump]).
answers (wings, [long_narrow,w_shaped,broad,long-pointed]).
answers (neck, [long,white,cone_shaped,yellow]).
answers (color, [white,brown,dark,white_sprayed_black,black]).
answers (flight, [ponderous, powerful, agile, f1ap_glide,
fast_low_level]).
answers (feed, [on_water_surface,scavange,hidden]).
answers (head, [large,black,green,red,white]).
answers (tail, [narrow_at_tip,forked,long_narrow]).
answers (voice, [shouted, muffled_whistle, loud_trumpeting,
quack]).
answers (cheek, [white,golden,grey]).
answers (season, [winter,summer]).

live(X):-ask(live,X).
bill(X) :-ask(bill,X).
feet(X):-ask(feet,X).
eats(X):-ask(eats,X).
size(X):-ask(size,X).
wings (X) :-ask(wings,X).
neck(X) :-ask(neck,X).
color(X):-ask(color,X).

1~
flight(X) :-ask(flight,X).
feed(X) :-ask(feed,X).
head(X) :-ask(head,X).
tail(X):-ask(tail,X) .

voice(X) :-ask(voice,X).
season(X):-ask(season,X).
cheek(X):-ask(cheek,X}.
region(X}:-ask(region,X).
/**************************************************
INTERFATA si MASINA DE INFERENTA (llshell")
***************************************************/
database /* zona dinamica de lucru */
known (symbol, symbol)
clauses
ask(Attribute,Value}:-Known(Attribute,Value},!.
ask(Attribute,_} :-known(Attribute,_}, !,fail.
ask(Attribute,Value} :-answers(Attribute,Values_List),
select_from_menu(Attribute,
Values_List, Answered_Value) ,
assert(known(Attribute,Answered_Value»,
Value=Answered_Value.
solve:-retractall(known(_,_)},
top_goal (Bird),
write (liThe bird is a ", Bird), nl, ! .

solve:-write(IINo bird with these features found"),nl.


/* predicate auxiliare pentru interfata */
select_from_menu(Name,L,A):-nl,write(Name),
displist(l,L} ,
readint (N) ,
pick(l,N,L,A} .

displist (-, [] ) :-! .

displist(N, [HIT]} :-nl,write(N,1I : II,H},nl,


NN=N+1,
displist(NN,T}.
pic k (-, -' [] , none) :- ! .

pick(N,N, [Foundl_],Found} :-!.


pick(Ctr,N, [_IT],Val}:-NextCtr=Ctr+l,
pick(NextCtr,N,T,Val) .

greetings:-makewindow(1,7,7,IIBird identification", 1,
1,.20,60).
repeat.
repeat:-repeat.
goal
greetings,
repeat,
solve,
write ("another bird? (y/n)") ,
readchar (C) ,
C= 'n' .

12
.

J)
~1 'i A\
) j
I

\ ~ (f CT-(j)
.

~/ I\:V ~(j)

JJj)
?S "P\
'1. f k\ ~
~
(continuarea capitolului 14)

. Schema de principiu a sistemului expert cu "backward-chaining" prezentat este data

utir .f
<atribute> r--- I
answers : INTERFATA I
I ask I
I
I I I
BAZA DE CUNOSTINTE I Masina de inferente I
reguli principale auxiliare I I
solve I
order country
I

family
J
bird region j--- zomioeIUcru--
shell known

figura 1.

in figura 1.
. Interfata §i ma§ina de inferente ("shell"-ul) pot fi reutilizate pentru 0 baza de
cuno§tinj:e similara ca §i structura, dar din alt domeniu. Acest principiu al separatiei I

este foarte important, el dudmd la construirea unor "shell"-uri care pot fi


comercializate separat, fara baza de cuno~tinte, care va fi construWi de utilizator.

. Sistemul prezentat are doua car~~ fundamentale:


a.) Nu sunt tratate exceptiile. Pentru a pastra separatia intre "shell" §i baza de
cuno§tinj:e, trebuie aleasa 0 forma de reprezentare a regulilor care sa permita
specificarea unor exceppi, fara ca acest lucru sa implice modificari repetate ale
ma§inii de inferente.
b.) Nu este asigurata transparenta. Pentru acest deziderat trebuie ata§ate facilitap de
tipul "how?" §i "why?".

. In plus, ordinea punerii intrebarilor este determinata de ordinea regulilor din baza
de cuno§tinte. Daca baza de cuno§tinj:e este foarte mare, reordonarea regulilor poate
deveni dificWi. Se recomanda ca la startul proiectarii bazei de cuno§tinre sa de j:ina
cont de acest aspect.

15. UN INSTRUMENT PENTRU NON-PROGRAMA TORI

. Din exemplele prezentate se observa ca exista doua nivele de lucru in PROLOG,


unulla care este foarte u§or de lucrat §i unul care presupune 0 experienra serioasa
de prograrnator.

. Primul nivel este pur declarativ §i presupune transpunerea regulilor "if-then" in


clauze cu 0 sin taxa impusa. Sunt necesare doar cuno§tinte des pre construirea unor

i "-
I
ierarhii, mecanismul de mo~tenire~i algoritmii de determinare a solutiilor prin
parcurgerea arborelui de decizie, toate aces tea permiland unui neiniliat sa constuiasca
0 baza de cuno~tinle.

. Al doilea nivel presupune cuno~tinle despre backtracking, unificare, predicate


predefinite ~i aspectele procedurale (inclusiv I/O) ale limbajului. Este necesara ~i
cunoa§terea metodelor de reprezentare ~i prelucrare a structurilor de date (liste,
arbori, grafuri) ~i a artificiilor de programare folosite de profesioni~ti. Pentru
construirea unui "shell" de sistem expert avem nevoie de astfel de programatori, care
in plus mai trebuie sa asigure §i unele componente de legMura intre "shell" ~i baza
de cuno~tinte.

. Construirea unui sistem expert poate fi facuta in mod ideal de trei persoane (sau
trei grupuri, daca sistemul este complex): -
- programatorul de sistem,

{
. - expertul din domeniul de lucru,
- "Knowledge engineer".
Pentru sisteme mici, atunci rand expertul poseda cuno~tinte de PROLOG de nivel
unu, expertul ~i "Knowledge engineer"-ul pot fi una ;;i aceea~i persoana.

16. INCERTITUDINEA CUNOSTINTELOR

. Rationamentul medical este in mod inevitabil asociat cu 0 doza de "incertitudine".


Experimentele psihologice au relevat faptul ca nu rationamentul genereaz3
incertitudinea ci cuno~tintele folosite pentru aplicarea lui.

. Daca 0 piesa de cunoa;;tere reprezentabila printr-o regula are un anumit grad de


incertitudine, acesta se poate reprezenta printr-un parametru atasat acelei reguli.
Primul sistem expert care a folosit astfel de reguli a fost MYCIN (Shortliffe, 1976)
dedicat diagnozei in bolile infectioase. Regulile din acest sistem erau insotite de un
factor de certi dine cuprins intre -1 ~i 1. Cf e [-I. - n
<>Exemp u de regula din MYCIN:

RULE 85
IF 1) The site of the culture is blood, and
2) The Gram stain of the organism is negative, and
3) The morphology of the organism is rod, and
4) The patient is a compromised host
THEN
there is a suggestive evidence (0.6) that the
identity of the organism is pseudomonas aeruginosa.

Ceea ce inseamna ca daca premisele sunt adevarate, increderea (belief) ca agentul


patogen este "pseudomonas aeruginosa" a crescut cu un coeficient de 0.6 .

. Factorul de certitudine este exprimat empiric de ~ care enunta


factor de certitudine avand valoarea 1 indica faptul ca regula este logic adevarata, iar
regula. Un

-1 ca este logic falsa. Valoarea 0 inseamna incertitudine maxima ~i nu este normal sa


scriem reguli cu un astfel de factor.

. Valoarea increderii, notata bel(a), unde a. este 0 cale intr-un arbore de decizie, se

z
propaga de-a lungul raponamentului pana la obpnerea unei solupi, care in final va
fi insopta de 0 valoare a mcrederii mea, beI(sol), cuprinsa In intervalul [-1, 1].

. Dadi intr-un rationament lucram cu factori de incertitudine, folosirea notiunilor de


"premisa" ~i "concIuzie" nu sunt potiivite. In locul lor vom folosi nopunile de
"evidenta" ~i respectiv "ipoteza". .

. Evidentele pot fi lnsopte ~iele de valori ale mcrederii.


<>Exemplu:

bel("The site of the culture is blood")=1.0


bel("The Gram stain of the organism is negative")=1.0
bel("The morphology of the orgamsIl)."is-ioq")=O.9
bel("The patient is a compromised 'host")=OA

. Vom nota valoarea de mcredere a evidentelor cu bel(E). 0 evidenta poate fi 0


expresie logica propoziponala sau predicativa conectata prin operatori §i/ sau.
Cunoscand valorile bel(Pi) ale tuturor componentelor putem calcula intuitiv beI(E)
alegand maximul cand este vorba'tie 0 disfuncfie ~iminimul cand. este vorba de 0
conjunqie. Justificarea acesteimetode este data de observafia ca lantuJ. de-evidente
componente are taria cele!imai slabe verigi. Se poate observa ca bel(E)=O.4pentru
Regula 85.
<>Exemplu:
rJ;h<; f.j i;- t ~f.M.'",fc.
I -:.:I' I

Rule.: if(Pl and P2) or P3 then Rl (0.7) and R2 (0.3)

cunoscand bel(pl)=O.6, bel(P2)=OA, bel(P3)=O.2 rezulta: rJ

bel(E)=max(min(beI(Pl), bel(P2», bel(P3»=O.4

. Daca avem 0 negape: beI(not(E»= -bel(E).

. Daca pentru 0 regula, beI(E)g), regula respectiva se va ignora In timpul


rationamentului.

. Valoarea de mcredere m ipoteza unei reguli, 0 vom nota cu belCH). Daca bel(E»O,
atunci se calculeaza bel(H) poo produsul factorului de certitudine al regulii - CFk (k-
numarul regulii) cu valoarea bel(E).
bel (H) = bel (E) . CFk (29 )

Pentru Regula 85 beI(H)=O.24, iar pentru regula RuleE vom avea bel(Rl)=O.28 §i
bel(R2)=O.12. 0 formula completa de calcul ar fi:
bel (H) = (max(O,bel (E»' CFk (30)

. Sunt foarte frecvente cazurile in care mai multe reguli duc la aceeasi ipoteza H,
Dadi bel(E) pentru aceste reguli este pozitiv, Inseamna ca ele sunt active, ~i se
calculeaza belCH) luandu-Ie pe toate in considerare. Sa presupunem ca avem doua
asHel de reguli:

~
@
Rulel: if El then H(CF1) (bel(E1»O)
Rule2: if E2 then H(CF2) (bel(E2»O)
Pentru simplificare vom nota:

CF/ = bel(E1). CF1 (bel(H) pentru Rulel)


CF/ = bel(Ez). CFz (beI(H) pentru Rule2)

Compunerea va fi data de formula:


, , 2 OtAM.dl.t"-~t&.v~i"''tt;
CFt.+cF1-CF!:CF:
CFt.+cF1 +CFt..cr:
, ,
CF1,CF2>O
CF1,CF2<O (31)
bel (H) =
CFt.+CF~
altfel
1 - (min ( ICFil, ICF11)

Formula nu funcjioneaza pentru cazul CF/=-1 ~i CF/=1 (sau invers) ceea ce se poate
interpreta in cazul unor reguli categorice ca 0 contradicjie logica. In acest caz
rezultatul se alege O.
Daca avem mai mult de doua reguli, se calculeaza bel(H) pentru primele doua ~i se
aplica formula (31) din nou pentru aceasta valoare ~i valoarea CFk' a regulii
urmatoare. Se continua procedeul pana la epuizarea tuturor regulilor active care au
ipoteza H.

. Pentru un sistem construit in jurul unei baze de cuno~tinje formata din astfe! de
reguli putem alege oricare din cele doua mecanisme de inferenja studiate anterior,
pentru cazul regulilor categorice (de exemplu, MYCIN are mecanismul de ".backward
chaining").

17. FORWARD CHAINING CU INCERTITUDINE

. Considerand acest mecanism de inferenja, cea mai eficienta reprezentare


PROLOG a cuno~tinjelor cu factor de certitudine este urmatoarea:
in

rule([<evidente...>], dpoteza>, <CF».

Pentru simplificare vom consider a ca evidenjele sunt conectate doar prin operatorul
conjunctie.

. Ma~ina de inferenje va trebui sa calculeze in permanenja bel(H) pentru toate


ipotezele care sunt atinse. Solupile pentru care beI(E)~O vor fi afi;;ate in ordinea
valorii de incredere ata~ate (este recomandabil sa fie afi~ate toate so!ujiile impreuna
cu valorile bel(sol).

0 Pentru interfaja cu utilizatorul trebuie prevazuta ;;i facilitatea de a introduce valori


de incredere pentru evidenjele (simptomele) initiale. Este recomandabil ca pentru 0
mai u;ioara utilizare sa se citeasca 0 valoare cuprinsa in intervalu! [1,100] care va fi
fmparjita. cu 100. Daca evidenja inijiala este negativa (nu exista simptomul X, cu 0
anumita incertitudine) valoarea se inmulje;;te cu -1.

. Predicatele care implementeaza 0 astfel de ma~ina de inferenja ar putea fi

4-
urmatoarele:
uncertain_forwardeD, Bel_Value):-
partial_hypothesis(D, Bel_Value),
final_solution(D).
uncertain_forwardeD, ~el_ValueJ:-
rule (Elist, H,'Cf), .- .~
/* minimul */ compute_belief_of_evidence(Elist, Bel_E) ,
select_option (Bel_E, H, Cf),
uncertain_forwardeD, Bel_Value).
uncertain_fo~ard(~, -):-
nl,
write ("No solution found") .

select_option (Bel_E, -' -):-


Bel_E < 0,
I, .

fail.
select_option (Bel_E, H, 'Cf):-
not(partial_hypothesis(H~ -»,
Bel_value = Bel_E * Cf,
assert(partial_hypothesis(H, Bel_value»,
1. .
select_option (Bel_E, H, Cf):-
retract(partial_hypothesis(H, Antecedent_value»,
Bet_value =,~~l_E '!r Cf""
compute_compos ed_value (Bel_value,
Antecedent_value,
'Composed_value),
assert(partial_hypothesis(H, Composed_value».

. Predicatul compute_composed_value se bazeaza pe formula (31).Predicatul


compute_belieCoCevidence traverseaza listaevidentelor dintr-o regula ~ireturneaza
minimul.

compute_belief_of_evidence(List, Min):-
,minim(List, Min).

minim ( [], -).


minim([HIT], Min):-
value(H, Val),
Val < Min,
minim(T, Val),
! .

minim([_IT], Min):-
minim(T, Min).

Daca lista ar contine "sau" aceste predicate trebuie modificate


~i conexiuni
corespunzator. Predicatul value cauta ipoteze "asertate" anterior ~i returneaza
.

valoarea increderii asociata acestora.

value(H, Val):-
partial_hypothesis(H, Val),
1.
value(H, Val):-
symptom(H, Val).

5
@
"'"':'
"~- -- --

In TURBO-PROLOGpartial_hypothesis ~isymptom trebuie declarate Intr-o sectiune


database.

18. BACKWARD CHAINING CD INCERTITUDINE

.Pentru ilustrarea acestei idei vom folosi 0 baza de cuno~tinte cu reguli incerte,
construita pentru diagnoza unui automobil care nu porne~te. Pentru claritate, vom
cOllsidera factorii de certitudine exprimati in valori cup rinse in intervalul [-100,100]
(modifidind bineinteles ~i formulele de calcul).

rule1: if not turn_over and battery_bad then problem is battery.


rule2: if !M1lights- weak then battery_bad cf 50.
rule3: if radio_weak then battery_bad cf 50. "

rule4: if turn_over and smell~as then problem is flooded cf 80.


ruleS: if turn_over and gas~auge is empty then problem is out_of~as cf 90.
rule6: if turn_over and gas~auge is low then problem is out_of~as cf 30.

Se poate observa introducerea in corpul propozitiilor care constituie evidenta ~i


ipoteze a predicatului lli. fapt care ne obliga sa privim problema ca facand parte din
logica predicatelor. Pentru simplitate vom accepta in corpul evidentelor doar
conectori "~" ~i opera tori unari "not". Tot ca 0 limitare simplificatoare, ipoteza va fi
formata doar dintr-o singura propozipe.

. Dorim ca dialogul cu utilizatorul sa se poata desfa~ura in modul urmator:


. 0 Exemplu:

Does the engine turn over?


Ii :yes
"f
Do you smell gas?
!
:yes
What does the gas gauge say?
empty, low or full
I,'
I
:empty
IJ problem - out 6f gas cf 90
i!
I
i: problem - flooded cf 80
I Done
I i
i,
I!
Daca utilizatorul introduce doar raspunsuri de tip yes/no sau selecteaza un cuvant
din meniul posibil de raspunsuri, aceste "simp tome" vor avea implicit asociata
valoarea illcrederii 100 (sau -100 pentru "no"). Este necesar ca utilizatorul sa poata
introduce ~i valori de incredere pentru evidentele observate.
I , 0 Exemplu:
jI
!
Does the engine turn over?
:yes
Do you smell gas?
:yes cf 50

~
What does the gas gauge say?
empty, low or full
:empty

problem - out of gas cf 90


problem - flooded cf 40
Done

~i in cazul evaluarii prin "backward-chaining" trebuie sa aplicam formula (31).


<>Exemplu:

Does the engine turn over?


:yes
Are the lights weak?
:yes
Is the radio weak?
:yes

problem - battery d 75
Done

. Sistemul va afi~a toate solujiile care vor avea valoarea asociata bel(sol) mai mare
decat un prag de activare (care nu este neaparat 0). Valoarea increderii pentru
raspunsurile utilizatorului de tip no [d <va!>] se vor inmulji de ditre sistem cu -1.

. Daca vomimplementa sistemul in PROLOG, legatura dintre interfata ~i baza de


cuno~tinje se va baza pe un mecanism asemanator predicatului ask descris anterior.
In pseudocod clauzele ar arata in felul urmator:

tum_over:-ask("Does the engine turn over?"),


read_answer( yes/no) [,read (d)].
lights- weak:-ask("Are the lights weak?"),
read_answer(yes/no) [,read (d)].
radio- weak-ask("Is the radio weak?"),
read_answer(yes/no) [,read(d)].
smeICgas:-ask(IIDo you smell gas?"),
read- answer( yes/no) [,read (cf)].
gas~auge:-ask("What does the gas gauge say?"),
read_answer( ern pty/low/full) [,read (cf)].

In general, la orice SE, este recomandabil ca la activarea unei clauze ask sa se afi~eze
textul intrebarii in clar, astfel in cat utilizatorul sa nu aiba dubii des pre ceea ce trebuie
sa raspunda.

. Pentru a ne menjine in calcule in intervalul [-100, 100] trebuie sa impihtim


rezultatele cu 100*(factorul_de_multiplicitate - 1).
<> Exemplu:
bel(H) = bel(E)' dllOO

t
(10
-- - -----

. La sistemul cu "forward-chaining" eu incertitudini am luat in considerare doar


regulile care aveau beI(E) > o. Nu este neaparat necesar ca pragul de activare al unei
reguli sa fie o. S-a observat empiric ca cea mai potrivWi valoare pentru astfel de
sisteme este 20 (sau matematic exprimat 0.2).

. Spre deosebire de cazul regulilor categorice, un de cautarea in adfmcime prin


"backward-chaining" se fi:icea pentru gasirea unei singure solutii, aid strangem
informatii ~i calculam valori de incredere pentru mai multe solutii (toate pentru care
beI(sol) > 20).

. In acest caz nu mai este posibWi reprezentarea


"pure". Forma folosita va fi:
regulilor sub forma de clauze Horn

rule( <name / number>, <PS>, <PD».

PS (partea stanga a regulii "if-then") va contine 0 lista de evidente intr-un functor


ps([<evidente>]). PD (partea dreapta) va fi un functor de aritate 2 de forma
p d(<ipoteza> ,<cCaCregulii».

. Pentru ca evidentele ~i ipotezele pot fi predicative, trebuie sa Ie memoram intr-un


fWletor de tip atribut-valoare pe care il vom numi avo Un astfel de functor se traduce
in limbaj natural ca 0 propozipe de tipul <atribut> is <valoare>. Daca. dorim sa
reprezentam ~i propozitii de alt tip, va trebui sa construim 0 lista neomogena de
functori cu nume de predicate ~i aritap diferite.

. Aceasta forma va permite memorarea explicita a drumului parcurs ill timpul


rationamentului, lucru necesar pentru caIculul valorilor bel(sol) pentru toate solutiile
obtinute. Forma generala a unei reguli va fi:

rule«numar>, ps([av«aI>, <vI», avka2>, <v2»,...]),


pd(avkatribut>, <valoare~ cf».

0 Exemplu. In acest format Regula 5 se va scrie in PROLOG sub forma urmatoare:


".-
rule ()f,it
ps([av(turns_overf,yes),av(gauge,empty)]), \01A
-------- i
~C:l.V CI.=ul.Jl ". t'luucl PI) 18-0) T.
~

J
Se poate observa di pentru evidentele ~i ipotezele pur propozitionale, argumentul ~
<valoare> din functorul av va fi de tipul yes/no.
f
. Acest format are 0 lizibilitate redusa ~i este recomandabil ca expertul (sau
"knowledge-engineer"-ul, dupa caz) sa-~i serie cuno~tintele intr-un format extern al
regulilor (forma if E then H cf <va!>, de exemplu), iar sistemul sa dispuna de un
translator care sa Ie aduca in forma PROLOG, care este mai potrivita pentru ma~ina
de inferente.

6
(continuarea capitolului 18)

.~i incertitudini ?
Cum functioneaza ma;;ina de inferente a unui sistem expert cu "backward-chaining"
.

Considerand di avem regulile:

if B and E then A cf x.
if C and D then B cf y.
if then D cf z.
if then D cf w.
if then D cf v.

care formeaza un arbore de decizie ilustrat in figura 1.


i

activarea acestu i I

I
nod este data de . I
I
I
i
formula (31)
I

I
i
jonctiune "sau" tI
spacial a I
I
I

Figura 1.

Vom parcurge arborele in adancime, iar la revenire, vom calcula pentru Hecare nod,
dad el este activo sau nu (bel(X) > 20). J . --. -..A 'if 1.- . ~'4 " ,-4-
.
- . p r- o.MG\~ ().. I'J\.IJUU>..N'-"A. 1fJJ,J, ~ .
PUP../lAAM/.A.
,G,I~.

. Calculul valorii de incredere se va face in mod diferentiat pentru diferitele tipuri


de jonctiuni.
- pentru g se alege minimul.
- pentru sau (mai multe reguli cu aceea§i ipoteza) se aplica formula (31).
- pentru frunze, evidentele sunt introduse de utilizator, iar
belkevidenta_utilizator» se calculeaza dupa metodologia prezentata anterior.

. Informatiile des pre drumul parcurs in arbore de alungul rationamentului vor fi


memorate in zona dinamica de lucru. Aceasta va contine informapi de tipul:
fact(av«atr>,<val»,cf) .
. Rationamentul se porne;;te de la 0 solutie Oucru specific pentru mecanismul de

1.
(r\)
- - -- - -- - -

"backward-chaining"). in cazul nostru particular vrem sa aflam valoarea atributului


problem (~ivaloarea Increderii asociata prin rationament). Pentru di avem mai multe
reguli care au ca ipoteza av(problem,<atribut», putem obj:ine mai multe solutE
lnsoj:ite de valori de Incredere diferite. Predicatul:

findgoal(av(problem,X),CF)

va avea sarcina gasirii aces tor atribute ~i valori de lncredere. Apelul acestui predicat
poate duce la trei situatii:
- valoarea X ~i CF sunt deja cunoscute.
- exista reguli din care X ~i CF pot fi deduse.
- trebuie Intrebat utilizatorul.

. Pentru a ~ti ce valori poate da utilizatorul unui anumit atribut, vom folosi
predicatul askable (care va face parte din interfata sistemului) definit prin clauze de
forma:

aSkable«atribut>,"Question String", [<valori>]).

. Clauzele care definescpredicatul findgoal sunt urmatoarele:


findgoal(av(Attr,Val,CF):-
not(fact(av(Attr,_),_»,
askable(Attr,Prompt,Menu_List),
querry_user(Attr,Prompt,Menu_List,Val,CF),
assert(fact(av(Attr,Val),CF»,
.I ,
findgoal(av(Attr,Val),Cf).
findgoal(Goal,CurrentCF):-
fg(Goal,CurrentCF) .
unde fg este un predicat care va utiliza 0 bucla de tip repeat-fail pentru a gasi toate
regulile care au PD continand atributul cautat. Procesul se termina fie cand valoarea
atributului este cunoscuta ~i are valoarea de lncredere 100 (echivalentul valorii TRUE
din logic a bivalenta) saunu mai exista alte reguli.

fg(Goal,CurrentCF):-
. rule(N,ps(IfList),pd(Goal,CF», /***/
prove(IfList,Bel_Evidence),
adjust(CF,Bel_Evidence,NewCF),
update(Goal,NewCF,CurrentCF),
CurrentCF=lOO,
!.
,
fg(Goal,CF):- j
fact(Goal,Cf).
,I
Predicatul prove testeaza evidentele ~i calculeaza valoarea de Incredere a Intregii liste
~i 0 depune In variabila BeCEvidence; In plus va starta ~i cautarea altor reguli prin
"backward-chaining" apeland recursiv (indirect) predicatul findgoal. I

prove(IfList,Bel_Evidence):-
prov(IfList,lOO,Bel_Evidence).

2
prov ( [] , B, B) .

prov([HIT],CurrentBel,Bel) :-
findgoal (H, CF),
min(CurrentBel,CF,B) ,
B>20,
prov(T,B,Bel).

Se observa ea dad prove nu reu;;e;;te se eauta urmatoarea regula (vezi zona mareata
eu j***j).

. Predieatul adjust ealculeaza produsul valorii de ineredere a evidentelor eu faetorul


de certitudine al regulii (CF).

adjust (CF,Bel_Evidence,New_CF) :-
X=CF*Bel_Evidence/1OO,
real_ints(X,New_CF, ...).

. Predicatul update aplica formula (31) prin intermediul predicatului combine.

update(Goal,NewCF,CF):-
retract(fact(Goal,OldCF»,
combine {NewCF,OldCF,CF),
assert(fact(Goal,NewCF»,
! .
update(Goal,CF,CF):-
assert{fact(Goal,CF».

combine(CF1,CF2,CF):- ~~~)
CF1>=O,
CF2>=O,
X=CF1+CF2*(lOO-CF1)jlOO,
real_ints(X,CF,.. .),
!.
combine(CF1,CF2,CF) :-
CF1<O,
CF2<O,
X=-(-CFI-CF2*{lOO+CF1)/lOO),
real_ints{X,CF,.. .),
!.
cOmDine{CF1,CF2,CF):-
abs_minimum{CF1,CF2,MCF),
X=lOO*(CF1+CF2)/(lOO-MCF),
real_ints(X,CF, ...).

. Trebuie analizata ;;i problema negatiilor. Daea 0 evidenta este


(av( <atribut> ),no»), valoarea de incredere asociata trebuie mn1ultiUi cu -1. Modificarea
negata

se face in a doua clauza a predicatului provo

prov( [HIT],CurrentBel,Bel):-
compute_for_an_eventually_not(H,CF),
min... /* restul predicatului */

~
compute_for_an_eventually_not(av(Attr/no)I NewCF);-
findgoal{av(Attr,no),CF),
NewCF=CF* (-1) ,
!.

compute_for_an_eventually_not(H,CF) :-
findgoal(H,CF).

. Se poate intampla ca sa construim 0 regula cu PD=pd(av«atribut>,no),CF). Este


indicat sa nu avem astfelde situa}iipentru ca ele ar necesita 0 modificare serioasa a
ma;;inii de inferenja concepute pana in acest punct. Aceasta problema poate fii11sa
rezolvata simplu prin inlocuirea valorii"no" cu "yes" ;;ia CF cu -CF,regula devenind
"negativa" prin factorul de certitudine ;;inu prin valoarea atributului din ipoteza.

. Ma;;ina de inferenje va fi structurata in felul urmator:

top_goals:-
top_goal (Attr) ,
top (Attr) ,
print_goal (Attr),
fail.
top_goals.

top(Attr):-
findgoal(av(Attr,Val),CF),
!.
top(-) :-
true.

Aceastabuclaasiguragasirea tuturor solu}iilor. Predicatul top-!5°al asigura legatura


intre baza de cuno;;tinje ;;i ma;;ina de inferente. In cazul nostru yom avea 0 singura
clauza:

top_goal (problem) .

care va fi ata;;ata bazei de cuno;;tinje. Pentru probleme mai complexe, pot exista rnai
m.ulte astfel de clauze succesive ;;i cmar un sistem ierarhic de selectare interactiva a
lor.

. Interfata este "alcatuita din predicatele querry_user care in funcjie de abilitatea


proiectantului poate aveaforme destul de complexe (ferestre, meniuri, etc.). Afi;;area
se face prin:

print_goal(Attr):-
nl,
fact(av(Attr,X),CF),
CF>20,
output(av(Attr,X),CF),
nl,
fail.
print_goal(Attr):-
write ("Done with" ,Attr) ,
nl.

unde output este un predicat care va fi scris de proiectant.

4-
. ~i la acest sistem expert se observa aplicarea principiului separatiei. Schema
generala a sistemului este data in figura 2.

i
, interfata
askable : quarry_user
I
I
, prlntoaJ
fact
I I
I output
I
.
rule .
I
I I
I
,
I tooals up.date
I
tin oal attjust -
, combine
prove. "sh ell 11
I
Baza de cunostinte I
I
masina de inferente

<::::: ]'[ :>


Figura2.

In TURBO-PROLOG vom avea programul principal:

goal
greetings,
empty_the_working_storage,
top_goals.

19. LEGATURA DINTRE FACTORII DE CERTITUDINE 51 PROBABILITATI

. Formalismul matematic al factorilor de certitudine a fost criticat pentru natura sa


"ad_hoc". Cercetari ulterioare au relevat posibilitatea "cuplarii" teoriei probabilitatilor
cu teoria certitudinii. Una din metodele statistice de ca1cul ale factorilor de certitudine
a fost dedusa de Heckerman (1986t

- CF pentru regula if E then H este:


P (HIE) -p (H)
p(H) ~p(HIE)
l-P (H) (1)
CF'- P (HIE) -p (H)
p (H) >p (HIE)
{ p(H}

aplicabila in special in cazurile in care p(H) ~i p(H IE) sunt u§or de. ca1culat.

. Ata~area unor valori de probabilitate regulilor de tip "if-then" a dus la 0 cre~tere


spectaculoasa a performanjei sistemelor expert. In acest caz modul de lucru este
asemanator, adica avem valori ata§ate regulilor de catre proiectanp, §i valori care se
propaga de-alungul rajionamentului, insojind in final solujiile care vor fi listate in
ordinea lor descrescatoare. Principalul dezavantaj al acestei metode este ca de~i
corecta din punct de vedere matematic, exactitatea solujiilor depinde de populatiile
statistice pe baza carora s-au facut calculele coeficienjilor ata~ap regulilor §i a
valorilor de probabilitate care insojesc "simptomele" date de utilizator.

5" ~._...
( (' I I
\~/
Este necesar un efort deosebit pentru colectarea tuturor datelor necesare, mull: mai
mare dedit de exemplu colectarea datelor pentru un sistem cu inferenta bayesiana.
Practic fie care regula trebuie insotita de valori care se stabilesc prin metode statistice,
pledind de la un volum mare de date experimentale.
In istoria sistemelor expert exista un singur exemplu semnificativ'unde s-a aplicat
aceasta metodologie. La inceputul anilor '70 Departamentul pentru resurse naturale
al SUA a initiat un vast proiect de cartografiere ~i inregistrare pe calculator a
resurselor minerale, indiferent de natura lor strategica (practic toate mineralele
cunoscute in natura erau luate in considerare). Observapa irnportanta ce s-a facut in
acel moment (lucru obi~nuit insa in gandirea geologilor) a fost ca orice mineral apare
in prezenta altor minerale specifice.

.De la aceasta observatie s-a tras concluzia ca pentru fiecare pereche de minerale in
parte se poate scrie 0 regula de tipul:

IF mineral-observat (0 evidenta) THEN mineral-probabil (0 ipotezaJ

evidenta reprezentand minerale u~or detectabile prin metode specifice prospectarilor


geologice, sau minerale care puteau fi ipoteze ale unor reguli de acest tip (puteau fi
deduse prin evaluarea unui arb ore de decizie construit pe baza acestor reguli).
Solutiile sunt mod necesar minerale rare, pentru ca sunt singurele care pot justifica
startul unei explorari care poate fi foarte costisitoare (aur, molibden ~i chiar cupru).
S-a construit la inceput un sistem expert format doar din reguli ~i factori de
certitudine ata~ati, dar solupile date de acest sistem nu erau satisHiditoare.

. Pentru clarita tea explicatiei vom denumi pe H "util" ~i pe E ca "insotitor".IPe baza


unui volum mare de date, colectate din prospectarile geologice finalizate, putem
calcula valorile de probabilitate:

I
p ( E H) = p (E , H)
P (H)
(2 )

:) (Li
p ( E, H) \ (3 )
p (EIR) =
p(H) - './' .

/~
p(EIH) = P (EIH) (4 )
p(H)

p (EIR) = p (E, H) (5)


p(H)

unde p(X,Y) semnifica faptul ca utilul apare (sau nu) impreuna cu insotitorul iar p(H)
se calculeaza relativ la toate prospectarile utilului H disponibile ~i unde el a fost gasit
in cantitati exploatabile. ,
0 regula de tipul "if E then H" va fi insopUi de doua. valori: CC:o~ f)
Cunoscand valoarea p(H) putem ca1cula antiprobabilitatea: .

ro
A ~ P (E H) I (6)
p (EIH)

x ~ p(EIH) (7 )
p (EIH)

o(H) = p(H) (8 )
l-p (H)
L

pe care 0 vom ata$a regulii "if-then".


r/~
/
Rezulti'i:

0 (HIE) =).. 0 (H). t) eE:l H) (9 )

;/
0 (HIE) = X' 0(H) .~ l€)H) (10)

(TEMA: Demostrati singuri aceste egalitati)

Putem calcula U$or valoarea cautata:

p(HIE) = ~1 +0 (HIE) (11)

Dadi H (utilul) este 0 solune, 0 vom afi$a, insotWi de valoarea obpnuta prin formula
anterioara (11).

. Propagarea informapei in timpul raponamentului se face prin


pornind de la "frunzele" arborelui de decizie ditre solutii (indiferent de mecanismul
doua "canale",

de inferenta aplicat):

i.- anumite simboluri care sunt ipoteze confirmate sau sunt furnizate de utilizator
devin evidente pentru un set de reguli care contin acea evidenta sub forma E sau not
E. .

i1.- 0 evidentaE este lnsotita de 0 valoare p(E ID) rezultata dintr-o regula anteriora
sau furnizata de utilizator, dad E este 0 frunza in arborele de decizie ($i care
semnifica probabilitatea ca E sa fie un insoptor real).

.. Putem avea doua situapi:

a. 0 singura regula duce la H. Daca este de tipul"if E then H" se calculeaza o(E ID)
$i apoi (Duda & Hart 1979):

In? i
f ~
o(HIE) = o(EIU). A' o(H) (1~)

Dadi este 0 regula de tipul "if not E then H" atunci se calculeaza:
p(EIU) = 1-p(EIU) (13 )

de aid va rezulta 0(£ IV) ~i putem calcula:


° (HIE) = ° (EI U) . X' ° (H) (14)

rezultat care datorita negatiei poate fi interpretat ca o(H IE). De aid indiferent de
tipul regulii se poate calcula p(H IE) cu formula (1l)..

Aceasta valoare va deveni in urmatorul pas de rationament p(E'IV') adica E'=H ~l


V'=E.

b. Mai rnulte reguli duc la H. Vorn avea Er,...,Ek evidente asociate aces tor reguli. Sf
poate ca1cula:
. n
(15)
°poz(HIEl"" ,En) =TI [O(EiIUi)' Ai]
i=l

rezultat dat de regulile unde Ej apare nemodificat; ~i:


m.
°neg(HIEn+1'" .,EK) =TI [oCEjIUj)' Xj] (16)
j=1
00;0
rezultat dat de regulile unde Ej apare precedat de "not" (n+rn=k).

Daca toate cele Ej O=l,k) evidente sunt independent.e, atunci putern calcula:

0 (H!EJ.' ... ,Ex> =Opo.a-(E1,.. .,En> . °:aSg(En+J.'." ,Ex>' o(B) (17)

care poate fi transformata in p(E'IV') ce va fi transmisa mai departe de alunguJ


rationarnentului, sau afi~ata ca valoare insoptoare a unei solutii.

. 5e poate face observatia ca pentru 0 regula ar fi suficient un singur coeficient A,


depinzand ca tip de prezenta rnodificatorului "not".
5e poate intampla ins a sa avem ~i reguli de tipul"if E then not H", lucru care va face
necesara prezenta ambelor valori pentru ca 0 astfel de regula genereaza aparitia in
tirnpul rationamentului a unei evidente negate E, care va activa toate regulile care
contin aceasta evidenta, indiferent daca evidenta este precedata in regula de "not" sau
nu e precedata. Oed, ambele valori sunt necesare.
Acest lucru dernonstreaza faptul ca interpretarea rnodificatorului "not" este rnult mai
"elastidi" dedt in logica unde lucram cu CW A.

2
20. UTILIZAREA TEORIEI FUZZY IN SISTEMELE EXPERT

. Simularea unui sistem din natura cu ajutorul calculatorului presupune construirea


unui model adecvat. Acest model trebuie in mod necesar sa fie descris intr-un limbaj
formal. Modelele care mapeaza mtr-un spaj:iu virtual un sistem din natura sunt de
doua tipuri: faetuale, ~i aproximative. Cele faetuale (m special sistemele fizice) sunt
U§or de modelat din eauza faptului ea dispunem de un lirnbaj formal deosebit de
puternic. Pentru procesele cognitive limbajul formal cel mai utilizat (logica
matematica ~i derivatele sale) este foarte departe de realitate. De aici, ~tiinta
eontemporana (Apostel) a tras urmatoarele concluzie:

- relaj:ia intre limbajele formale de descriere a sistemelor din natura ~i domeniile in


care aeestea au modele empirice trebuie m mod necesar sa respecte urmatoarele
eonsideratii:

a. Relaj:iadintre limbajul formal ~i domeniul modelului tret;,uie sa fie foarte


stransa, pentru ca mtr-un anumit sens, cele doua sunt produse una pentru cealaWi.

b. Pentru a produce un progres in aceasta direqie trebuie luate in considerare


extensii ale modelului ~i ale formalismului. in ~tiintele empirice, astfel de extensii se
pot obline printr-o aproximare a modelului care poate duce la irelevanta lui practid.
In acest caz 0 introducere a unei "aproxirnari" m formalism poate fi 0 soluj:ieposibila
pentru modelarea unor sisteme deosebit de complexe.

. Para a disputa utilitatea lirnbajului matematic clasic in modelarea sistemelor din


natura, putem totu~i observa limitarile din anumite domenii m care modelele actuale
sunt foarte primitive. De obicei m aceste domenti se poate face observaj:ia(Schwartz):
"Un argument, care este convingator prin precizia lui,. ~i pierde toata forta dad
presupunerile pe care este bazat sunt u~or modificate, pe cand un argument
convingator dar imprecis va fi stabil chiar ~i la perturbaj:ii ale premiselor sale."

. Pentru a introduce 0 aproxirnare bine aprofundata m formalism trebuie sa


construim un limbaj formal plecand de la noj:iunile fundamentale. Lofti Zadeh (1965)
a pomit construirea unui astfel de limbaj formalin care se permite Sa avem ~i entitap
aproximative. Punctul de plecare a fost teoria mulp.mi1or, de la car.e se pot construi
mai departe structuri algebrice, "numere" ~i operatii, extensii ale logicii matematice
~i chiar ale analizei matematice, in specialm domeniul calculului infinitezimal.

. Ideea de baza a fost definirea formal a a "multimii vagi" (fuzzy), 0 mulpme care
spre deosebire de mulp.mi1e ob~nuite nu are granite bine delimitate, entitaple sale
componente aparpnand multimii doar intr-o anumita masura.

21. DEFINml 51 NOTATII

. in teoria c1asica a multimilor, 0 mullime X (finita sau infinita) are ata~ata 0 funclie
caracteristica, ale drei valori indica apartenenta unui element la x. In mod necesar
mulj:imea valorilor acestor funqii este {TRUE, :EALSE}.
Pentru 0 mulpme fuzzy, funcpa caracteristica va avea de obicei un rezultat real
cuprins in intervalul [0,1].

1
Definitie. Dadi avem 0 muIpme X (numWi §i multime de baz~i), 0 muItime fuzzy A
de tip 1 in X, este 0 muIpme de perechi:
A={ (x, J.1.A
(x) ) IXEx} (1)

unde PA(x) este numWi functie de apartenenta (membership function) ~i are valori
reale, pozitive. In mod obligatoriu SUP(PA(X»trebuie sa fie 0 valoare finita (nu
neaparat 1).

<>Exemplu. Clasificarea apartamentelor in funcpe de graduI de comfort. Un indicator


al comfortului poate fi numaruI de dormitoare. Consideram X={1,2,3,4,5,6,7,8,9,10}
rnulpmea tipurilor de apartamente disponibile, unde tipuI 1 are un dormitor, tipul
2 - doua, ~.a.rn.d. pana la zece dormitoare.
Mulpmea fuzzy A care denota "apartarnent comfortabil pentru 0 familie cu 4
persoane" poate fi descrisa matematic prin:

A={ (1,.2),(2,.5),(3,.8),(4,1),(5,.7),(6,.3),(7,0),(8,0) ,(9,0),(10,0)}

. Un tip aparte de multimi fuzzy sunt numerele fuzzy, ca de exemplu "in jur de 10",
"aproape 10", ~.a.m.d. Ele pot fi definite "triunghiular", "trapezoidal" sau "Gaussian"
relativ la fonna funcpei de apartenenta, atunci cand este reprezentaHi grafic.

<>Exemplu. Numarul fuzzy ''in jur de 10". Se poate specifica prin: .


AlO={(7,.1),(8,.5),(9,.8),(10,1 ),(11,.8),(12,.5) ,(13,.1)}

care duce la 0 forma aproximativ triunghiulara a graficului funcpei de apartenenta.


J.!.CX

1
+, ,
0,8 ~ ,
./
?T"" ~ "-
. "-
/ "-

0,5
/
/
¥/, "-~
,,
// ,,
0,1 ~ ~
7 8 9 10 11 12 13 XE R
Pentru a avea 0 funcpe continua, necesara in unele operapi, VOIDdefini analitic
funcpa de apartenenta, obpnand reprezentarea "Gaussiana" prin:
1
(.2)
~lO (x) - 1+ (x-10) 2

care are graficul:

~
~( X) 1

10- x
. S-a observat ca numerele fuzzy trebuie sa aiba 0 definipe mai stricta, pentru a
putea efectua operapi aritmetice. Vom reveni la aceste operapi dupa explicarea unor
nop.uni de baza, absolut necesare.

Definitii utile.

. Suportul unei mulpmi fuzzy A, notat SeA) este 0 mul.time clasica XEX, a.l. ~A(x»O.

. 0 mulpme fuzzy este normala daca sup(~A(x))=l. Orice mulpme fuzzy poate fi
normalizata, ~i in practica este indicat sa lucram numai cu astfel de mulpmi.

. 0 mulpme fuzzy A este convexa daca:

J.LA (AX]. + ( 1 - A ) X2) ~mi n [J.I.a (Xl) , IJ.A (X2) ] . unde Xl' X2 EX si AE [0, 1] (3 )

Intuitiv, aceasta proprietate se poate observa din graficul funcpei deapartenenja. De


exemplu: .

~(X) ~(X)

x x
Obs. Mulpmea X (marimea de pe abscisa acestor grafice) se mai nume~te ~i domeniul
discursului.

. Cardinalitatea unei mulp.mi fuzzy A, notata IA I este data de relajia:

f
IAI=xeXIJ.A(x) dx
(4)

care nu poate fi mtotdeauna calculata.

. Din toate cele prezentate, se poate observa di funcpa de apartenenja este


componenta cruciala a mulp.milor fuzzy. Toate operapile peste astfel de mulpmi vor
fi in ultima instanta, operapi bazate pe aceste funcpi. De exemplu intersectia a doua
multimi fuzzy A ~i Beste 0 noua mulp.me fuzzy C, care are funcpa de apartenenta:
!oLe(X) =min [IJ.A (X) , IJ.B(x) ] XEX (5)

3
estedefinita ca:
Similar, reWli1.mea
~c (x) =max [~A (x) , ~B (x) ] XEX (6 )

Complementul (A trebuie sa fie normala):


~C..A(x) =l-~A (x) XEX (7)

poate semnifica din punct de vedere semantic 0 negatie.

<>Exemplu. Daca interpretam A ~i B ca numere fuzzy:

A A "x - considerabil mai mare dedit 10"


B A "x - aproximativ 11"
unde:
0 X:;;1 0
(8)
~A(X)= { (1+(x-10)-2)-1 x)10

~B(X) =(1+ (x-11) 4)-1 (9)

vom avea:

PAnS'1

10 11 xER
. Din punct de vedere semantic, reuniunea ~i intersecp.a mulp.milor fuzzy pot avea
semnificapa operap.ilor logice de "OR", respectiv "AND", aplicate asupra simbolurilor
care denota aceste mulp.mi. Aceasta asociere ne permite sa facem pasul de la nivelul
de teoria muljimilor la nivelullogicii simbolice.
Obs. Toate operajiile prezentate sunt justificate axiomatic, existand mai multe
propuneri pentru agregarea funcjiilor de apartenenja, pentru diferite operap.i.

. Deoarece uneori semnificap.a unor muljimi fuzzy este strict cea de numar fuzzy,
este necesara ~i introducerea de operatori algebrici.

- Produsul cartezian este definit in felul urmator:


Fie AI, ..., ~ muljimi fuzzy in Xl, ..., ~. Produsul cartezian AlxA2x...~ este 0
mulpme fuzzy in spapul X=XlxX2X...xXn cu funcpa de apartenenja:.
~ (A,.xA2x...xAn>(x) =min{IJA;j (Xi) IXEX, Xi EXi} (lO)

- Suma algebrica, notata C=A+B, este definita prin:

4:
j.!A+B(x) =j.!A (x) +j.!B (x) -j.!A (x) 'j.!B (x)
(11)

- Suma cu limitare, notata C=AEBB,este definita prin:


j.!AffiB(x)=min[l,j.!A(X)+j.!B(X)] (12)

- Diferenta eu limitare, notata C=AeB, este definita prin:


j.!A8B(x)=max[O,j.!A(X)+j.!B(X)-l] (13)

- Produsul algebric, notat C=A 'B, este definit prin:


j.!kB (x) =j.1A(x) 'j.!B(x) (14)

iar ridiearea la putere prin:


XEX (15)
j.!A"(X) = [j.!A(x)] m

<> Exemplu.
Fie A={(3,.5),(5,l),(7,.6)} ~i B={(3,l),(5,.6)}
Vom avea: .

AxB={[ (3,3) ,.5],[ (5,3) ,1],[ (7,3) ,.6],[(3,5),.5],[ (5,5) ,.6],[ (7,5) ,.6]}
A 2={(3,.25),(5,1),(7,.36)}
A +B={ (3,1),(5,1) ,(7,.6)}
AEBB={(3,1) ,(5,1) ,(7,.6)}
AeB={(3,.5),(5,.6)}
A 'B={(3,.5),(5,.6)}

. Daea dorim sa folosim formalismul mulpmilor fuzzy pentru modelarea unor


sisteme reale, ne lovim de obicei de rigiditatea funcpilor de apartenenla ]1. Pentru 0
modelare cat mai eoreeta ar fi util ca valorile luate de aceste funclii sa fie la randul
lor multimi fuzzy.
0 mulpme fuzzy care are funcpa de apartenenla rigida (c1asica) se nume~te mulpme
fuzzy de tipul 1. Inductiv putem defini mulpmi fuzzy de tipul m. Operatiile definite
anterior nu mai Stint adecvate pentru aceste tipuri.

. Unul din conceptele de baza ale teoriei fuzzy este principiul extensiei. El este
definit in felul urmator:
Definitie. Fie X produsul cartezian al Xl, .../ Xr ~i AI, ..., ~ un numar de mul}imi
fuzzy In ~. f este 0 aplicalie din X in Y, y=f(x1, ...,xJ 0 mul}ime fuzzy Bin Y este
definita prin:
B={(y, j.!B(y» ly=f(Xl' . . . ,Xr); (Xl' ... ,xx) Ex} (16)

unde: (17)

J.1B(Y} =fsuP(Xl,-.,Xr) Erl(y) [min(j.1~ (Xl) ,..., j.!Ar(Xr)}] dac8. f-l(y} ~O


LO al tfel

s-
~ Exemplu. Fie A:::{(-1,.5),(O,.8),(1,lM2,A)}
~i f(x):::~,fl(y):::i\
Aplicand principiul extensiei vom obtine:
B=f(A)={(0,.8),(l,1),(4,A)} .

Iar relapa f:AAB 0 vom ilustra in figura urmiHoare:

-'4
-13
2...- 2 exceptie
1 1 .x=y=O
0 0
-1 t-
S(A) S( B)
. Principiul extensiei poate fi utilizat pentru definirea operatorilor pentru mul}imile
fuzzy de tipul 2.
Fie A ~i B doua mul}imi definite prin:
(x) ={ (Uil J.Lui (x)
J.LA ) IXEX, ui I J.Lui (x) E [0 ,1]} (18)

J.LB
(x) ={ (Vjl J.Lvj(x) ) IXEX, Vjl J.Lvj(x) E [0 ,1]} (19)

unde ~ ~i Vjsunt grade de apartenenta ~i fac parte din mulpmi fuzzy de tipul 1.

. Reuniunea a doua mulpmi fuzzy de tipul 2 este data prin:


J.LAUB (x) ={( w, J.LiAIJB
(w) ) I w=max (Ui I Vj)}
(20 )

unde:

(21)
J.LiAi.JB(w) =suPw=max (U,t.Vj) [min (J.Lu,t(x) I J.LVj(x) ) ]

. Intersecpa este definita prin:


J.LA/lB(x)={(w, J.LiAi\5(W» Iw=min(uil Vj)} (22)

unde:

J.LiAC1zl(W}
=suPlPmin(u,t.vj) [min(J.Lu,t(x) IJ.LVj(X)}] (23)

<> Exemplu. Fie X=[l, ..., 10] (interval rea!), ~i mwPmile fuzzy:

A="intregi mid"
B="intregi apropiati de 4"

Pentru mulPmile fuzzy de tip 2, fiecare element din domeniul discursului (XEX)
trebuie insopt de 0 mulpme fuzzy de tip 1 reprezentand gradul sau de apartenenta
la respectiva multime. Pentru exemplificare vom defini structura acestor mulpmi doar

~
pentru elementul 3.
I-L
A (3) ={( Ui' IJ.Ui (3) ) Ii =1, ..., 3}={( . 8, 1) , ( . 7 , . 5) , ( .6, .4)} (24)

(25)
I-LB ( 3) ={( Vj' IJ.Vj ( 3) ) Ij =1 , ..., 3 }=(( 1, 1) , ( . 8, . 5) , (. 7 , . 3 ) }
lntersecpa AnB se poate calcula tabelar, separat pentru fiecare element. Pentru 3 vom
avea:
. ( 3)J
Vi = mln \ U j J VJ J pu j \J J-IVj \:JJ 111111
L }lUj l j) I ]JVj ( 3)J
I. 1_;B,I
--6.8
1J -8
.8
.1
1 .5
1 1.
8.7
.5
UI;VO .7 1 .3 .3
.7 1 .7 .5 1 .5
1=2 .7 .8 .7
.7
.5 .5 '.5
.7 .7 .5 .3 --3
..6 1 ; .6 .4 1 .4
I.:3 .6 .8 .6 .4 .5 '
..4
-6 .7 .6 .4 .3 .3
In continuare s.e calculeaza supremum din gradele de apartenenta ata~ate tuturor
perechilor (~, Vj)care genereaza 0 valoare w ca minim.

SU P.8=min(ui,vj)(1,.5)= 1
SUP,7=min(ui,vj)(.3,.5,.5,.3 )=.5
SU P.6=min(ui,vj) (04,.4,.3) =. 4

Pentru X=3 se va obpne urrnatoarea funcpe de apartenenta (specifica tipului 2):


IJ.AIlB(3) ={( . 8 , 1) , ( . 7 , . 5) , ( . 6, . 4 ) } (2 6 )

oOperapile n ~i u asociate tipului 2 sunt idempotente, comutative ~i asociative, ~i


satisfac legile lui DeMorgan. Spre deosebire de operatorii logici, nu satisfac legile
absorbpei, ale identitapi ~i distributivitatea. Totu~i, pentru a sirnula operapi logice,
ele sunt mult mai putemice decat operapile asociate tipului 1.

0 Revenind la nurnerele fuzzy, vom da 0 definipe mai riguroasa ~i vom construi noi
operapi algebrice, de data aceasta bazandu-ne pe principiul extensiei. Acest lucru este
necesar din urmatorele motive care sunt evident din punct de vedere matematic.
- Intr-un sistem in care folosirn numere fuzzy vom avea in mod cert nevoie de
toate operapile pe care Ie putem efectua asupra numerelor reale.
- Pentru
ca aceste operapi sa reprezinte din punct de vedere semantic acel~i
lucru ca ~i operapile asociate numerelor reale trebuie sa existe un izomorfism intre
teoria nurnerelor fuzzy pe care 0 folosirn §i teoria nurnerelor reale cu care suntem
acomodap.
- Calea matematica pentrudezvoltarea §i atingerea acestui izomorfism este cea
a construirii structurilor algebrice. A§a cum pomind de la mulpmi simple ~i operapi

1
logice putem construi algebra Boole, la fel vom puteaconstrui ~i un corp fuzzy.
Metoda folosita. de catre matematicienii care au studiat aceasta. problema. a fost:

..
definirea mulpmilor

..construirea unei structuri de grup (demonstrand toate proprietaple necesare)


construirea unei structuri de inel
construirea unei structuri de corp al numerelor fuzzy
.

Ultimul pas nu a fost realizat in intregime, operapile care au fost propuse satisfacand
doar in parte toate proprietaple necesare (unele fiind doar aproximative). Majoritatea
cerceta.torilor afirma. insa. (~i acest lucru este discutabil) ca definipa numerelor fuzzy
poate fi la ra.ndul ei fuzzy atat timp cat operapile asociate acesteia pot fi utilizate cu
succes in aplicapile practice.

. Realitatea este ca numerele fuzzy au in momentul de faja. 0 aplicabilitate redusa. ~i


reprezinta. mai mult un exercipu pur academic de construire a unei noi teorii (dar
care se dore~te sa. fie foarte bine aprofundata.). In sistemele expert numerele fuzzy
pot fi utilizate in locul factorilor de certitudine folosind exact acelea~i formule (30 ~i
31). In acest caz putem scrie reguli de tipul:

IF evidente THEN ipoteza (numar fuzzy)

unde numarul fuzzy poate avea exprimari de tipul (aproape 0.9) sau (in jur de 0.5)
sau (ceva mai mult de 0.2), exprimari care pot fi traduse de dHre proiectantul
sistemului in funcjii de apartenenja specifice. La sfar~itul raponamentului yom avea
mai multe solupi care vor fi insojite de numere fuzzy reprezentand valorile de
incredere asociate. Acestea pot fi comparate ~i ordonate descrescator. -

Problema care apare este traducerea inversa a funcpei de apartenenja intr-un term en
de tipul aproape, in jur de, mai mare deca.t sau altele. Pentru un numar mare de
asocieri de termeni lingvistici fuzzy cu forme de functii de apartenenta se poate cauta
forma cea mai apropiata de forma funcpei de apartenenja. a numa.rului care trebuie
explicitat printr-un termen lingvistic. Acesta modalitate va fi explicata. mai pe larg in
capitolul urmator.

. Cu 0 mult mai larga. aplicabilitate sunt regulile care sunt fuzzy prin exprimarea lor
intrinseca., de exemplu:

If the girl is quite pretty, and


tall enough, and
a little smart, and
has big grey eyes
then probably,I will like her.

\)
22. NUMERE FUZZY. 0 DEFINITIE MAl COMPLETA

Definitie
Un numar fuzzy M este 0 multime fuzzy normala. ~i convexa avand ca domeniu al
discursului multimea numerelor reale JR~i care indepline~te urmiHoarele conditii:

a. Exista exact un XoEJRpentru care PM(xo)=l (xoeste 'numita valoarea medie m


a lui M)
b. llM(X) este continua pe intervale.

Obs. Un numar fuzzy este numit pozitiv (respectiv negativ) dadi funetia lui de
apartenenta este foarte apropiata de 0 (relativ la intervalul (0,1]) pentru \fx<O
(respeetiv \fx>O). Nopunile de negativ ~i pozitiv sunt ~i ele fuzzy in aeest context
Uneori trebuie sa stabilim cu exactitate daca un numar fuzzy este pozitiv sau negativ.
Pentru a putea face aeest lueru trebuie sa evitam sa lucram cu numere fuzzy
apropiate ca valoare inedie m de 0, sau graficul functiei de apartenenta sa fie foane
"ingust".

- Vom nota operapile algebrice cu E9, 8, 0, 9 (operapa fuzzy binara generica cu 0).
- Mulpmea numerelor fuzzy in JRse noteaza F(JR).
- a operape fuzzy algebrica binara este aplieatia:
(j:F(R)xF(R)-F(JR) ( 1)

'*: :
care are ca ~i corespondent realye~ o~~O- 4~.~ ~'-
*:RxR-R (2 )

iar principiul extensiei ne permite urmatoarea exprimare (Dubois&Prade 1980):


~M()N( z) =suPz=x*y [min (~M(X) , IlN(Y) )] (3 )

. Penuu operapi unare principiul extensiei se reduce la:


Ilf(M) (z) =suPxEf-1(z) [IlM(X)] (4 )

<> Exemple:
Pentru f(x)=-x, 8M este definit prin fWlctia de apartenenta:
~eM(x) =IlM(-x) (5)

Pentru f(x)=l/x vom avea:

I-1w1(x) =IlM( 1.) (6 )


x

. S-au demonstrat (Dubois&Prade) urmatoarele proprietati ale operatiei de adunare


fuzzy EB:
8 (M3JN) = (8M) EB (8N) (7 )

~
(~j)
ffi este comutativa
ffi este asociativa
~ OFE FOR) ell efeet de element neutru M+Or ~ M, pentru \fM~ FOR).
Nu exista element invers pentru ffi, deci Mffi(eM):;i:°F'

0 consecinta a faptului ca nu exista element invers pentru ffi, este ca ecuatiile fuzzy
nu pot fi rezolvate prin eliminarea variabilelor.

. Opera}ia de inmultire fuzzy 0, are urmatoarele proprietati:


(eM) ON=8 U-DN) (8 )

0 este comutativa
0 este asociativa
::3 IFE FOR.) cu efect de element neutru M01F=M, pentru 'v'MEFOR.).
Nu exista element invers pentu 0, deci M0M-1:;i:lF.

. Pentru scadere fuzzy 9/ prin aplicarea principiului extensiei, '10m avea:


~t>BN(Z) =SUPz=x_y[min(~M(x), ~N(Y))] =
(9 )
=SUPz=X1-Y[min (~M(X) , ~N( -y) ) ] =
=suPz=x+y [min (~M(X) , ~-N(Y) ) ]

. Pentru impartirea fuzzy 8, '10m folosi 0 metoda asemanatoare:


~MEBN(Z) =suPz=~ [min(~M(x), ~NCy)) J=
y
1
(10 )
=SUPz=xy [min (~M(X) '~N(
.
-=-)
y )J =
=suPz=xy[min(~M(x), ~N-dy)

Obs. Aplicarea
sau negative.
operatorului e este posibila doar daca M,N sunt impreuna pozitive

. Aplicarea aces tor operatori asupra reprezentarilor


numerelor fuzzy poate duce la erori de reprezentare.
triunghiulare discrete ale

0 Contraexempl~:
M={ 0,.3) ,(2,1) ,(3,.4)}
N ={(2/.7) /(3,1 ),(4,.2)}
M0N ={(2,.3) ,(3,.3),( 4,.7) ,(6,1.0) ,(8,.2),(9 ,.4) ,(12,.2)}
5e observa ca elementul subliniat produce 0 "concavitate".

. Evitarea aces tor erori se face printr-o reprezentare LR a nUlllerelor fuzzy


(Dubois&Prade). In acest caz functia de apartenen}3. este descrisa in felul urmator:
m- x
L ( -) pentru x~m
(11)
~M(X) = a
x-m
R ( -) pen tru x~m
{ b

cu conditia evidenta L(O)=R(O)=l (consideram m - valoare medie).

. L(x/m,a) ;;i R(x,m/b) se numesc functii de referinta ;;i trebuie sa indeplineasca

2-,
urmatoarele proprietati:

i. f(-x)=f(x)
ii. f(0)=1
iii. f sa fie desereseatoare pe intervalul [0/+=)

De obieei se alege:
1
unde p=2, 3 sau 4 (12)
L(x) =R(x) = l+xP

Constantele a, b, p se stabilesc experimental pentru alegerea darita a pantelar


graficului pseudotriunghiular a lui M. Grafieul uneiastfel de funetii are urmatoarea
forma:

tK (x) - - --- - - -
A

'(\\
xtZ-K

. Daca folosim reprezentarea LR atunei ea1culele neeesare pentru efeetuarea


operatiilor algebriee fuzzy pot fi simplifieate. S-a demonstrat ea pentru doua numere
fuzzy reprezentate LR, notate M(m,a,b)LR~i N(n,e,d)LR' unde L(x) ~i R(x) sunt acelea~i
funetii de referinta pentru M ~i N vom avea:
(m, a,b) LRffi(n, c, d) LR=(m+n, a+c,b+d) LR (13)

- (m, a, b) LR=(-m, b, a) LR (14)

(m,a,b)LR8(n,c,d)LR=(m-n,a+d,b+c)LR (15)

Obs. Operatiile EI7~i e calculate eu formulele de mai sus sunt exaete din punct de
vedere matematie.

. Operatiile
urmatoarele
() ~i 0" nu au putut fi definite
situatii:
deca.t aproximativ. Pentru 0 vom avea

1. Daea M ~i N sunt pozitive se aplica formula:

~
~
(m,a,b)~O(n,c,d)~~(mn,mc+na,md+nb)~ ( 16 )

II. Daca M este pozitiv ~i N negativ:


(m, a, b) ~O (n, c, d) ~~ (mn, na -md, nb-mc) ~ (17)

III. Daca M ~i N sunt negative:


(m, a,b) ~O (n, c, d) ~~ (mn, -nb-md, -na-mc) ~ (18)

Pentru e se prefed. aplicarea formulei de baza (0).

23. RELATII FUZZY

. Sunt mapari Intre doua mulpmi (care pot fi obi~nuite sau fuzzy) X ~i Y, de tipul
X 7Y ~i sunt reprezentate prin asocierea unei valori de apartenenta l1(x,y) la 0 pereche
din multimea X x Y. Altfel spus:
R={( (x,y), ~ (x,y)) I (x,y) EXXy} (19 j

Relatiile fuzzy pot fi generalizate la rangul n, dar s-au studiat in special relatiile
bin are pentru ca au cea mai mare arie de aplicabilitate.

<>Exemplu. Vom considera X,Y~JR;;i relatia fuzzy R="considerabil mai mare decat".
Funcpa de apartenenta PR(X,y) poate fi definita in felul urmator:

fa pentru x::::y
~R (x, y) =~ x-y
(20)
lOY pentru y<x::::lly
.
l1 pentru x>11y

sau, intr-o alta varianta:


o pentru x::::y (21)
~R()('Y)= { (l+(Y+X)-Z)-l pentrux>y

. Din considerente de viteza, mai ales in implementarile practice, se obi;;nuie;;te ca


relapile fuzzy blnare .sa fie des crise sub forma unor matrici.

<>Exemplu. Fie X={x1,Xz,X3}~i Y={YuYz,Y3'Y4},unde componentelenu sunt neaparat


numere fuzzy. Relapa fuzzy R="X considerabil m.ai mare decM v" poate fi
implementati1 prin:
X :}1-

x, 0 a .1 .6
Xl. 0 .t:> 0 0

X3 .~ .t) 1.0 .5
. Se poate observa ca relatiile fuzzy sunt tot l1mltimi fuzzy"dar in spatii obtinute prin
produse carteziene. Asupra lor se pot aplica operatii de reuniune (max) §i intersectie
(min). Restrictia matematici1 relativ la aceste operatii este ca ele sunt aplicabile doar
intre relatii rezultate din acela§i tip de produs cartezian.

4
i
I:
. Relatii fuzzy in spatii produsdiferite pot fi combinate intre ele prin operatia de
"compozitie". Cea mai utilizata implementare a operatiei de compozitie (notata "0")
este cea numita "max-min" (mai exista ~i "max-star", "max-product", "max-average",
etc.).

Definitie. Fie Rj(x,y) unde (X,y)E XxY ~i R2(y,z) unde (y,Z)E YxZ, doua relatii fuzzy.
Compozitia lor fuzzy de tip max-min este relatia fuzzy:

R c =Rl 0 Rz ={C (x z)
I I maxYE)mi n [ ~ Rl (x. y) I ~ R2 (y I z) ]}] IxE X I Z E Z} ( 22 )

Daca rela}iile sunt implementate matriceal atunci algorihTIul de calcul este foarte
simplu de construit. Dadi rela}iile sunt descrise analitic atunci "0" devine un operator
functional neliniar care poate Ii realizat prin rezolvarea numerica a unui sistem de
ecuatii cu derivate partiale, varianta prohibitiva din punct de vedere al intensitatii
computationale.

24. UTILIZAREA RELATIILOR FUZZY PENTRU MODELAREA REGULILOR


"IF-THEN"

. Teoria multimilor fuzzy a fost folosita pentru construirea unor extensii matematice
in topologie, algebra, grafuri, analiza, logica, etc. Pentru aplicarea teoriei in domeniul
sistemelor expert putem folosi numerele fuzzy in locul factorilor de certitudine (cap.
21), sau putem modela matematic reguli fuzzy (vezi exemplul de la sfar~itul cap. 21).
Pentru a putea face aceasta modelare avem nevoie de 0 interpretare a teoriei fuzzy
in raport cu lumea realiL 0 interpretare este 0 mapare a unor entitati matematice
fuzzy (de obicei mul}imi) peste conceptele din lumea inconjuratoare (mai exact
conceptele din discursul aplicatiei), care au din punct de vedere semantic 0 anumita
ambiguitate. I

<>Exemplu: Notiunea de culoare poate fi asociata cu diverse valori ca ro~u, galben,


albastru, verde, etc. Daca am privi culoarea ca pe 0 variabila dintr-un program, ea ar
lua in mod exact valori numerice in domeniul frecventelor din domeniul vizibil. Se
poate observa aici ca simpla specificare simbolica are un grad de imprecizie.

. Din punct de vedere metodologic, 0 interpretare bine pusa la punct


posibilitatii (Dubois & Prade). Aceasta introduce notiunile de variabila lingvistica ~i
este teoria

distributie de posibilitate (in contrast cu notiunea mai exacta de distributie de


probabilitate). .
Se considera ca rationamentul explicit uman lucreaza cu termeni lingvistici, proveniti
din limbajul natural. 0 parte din termenii lingvistici au un sens strict ("mama", "viu",
"mort", etc.), al}ii avand un sens mai ambiguu ("draguta", "tanara", "de;;teapta", etc.),
Ace~tia din urma sunt cei care nu pot fi utilizati intr-un mod corespunzator ca
simboluri cu valoare bivalenta de adevar (T, F) in sistemele de rationament obi~nuite.
Ace~ti termeni au fost denumiti termeni lingvistici fuzzy. Ei pot compune prin
conective g, sau propozitii fuzzy.

. 0 variabila lingvistica poate lua ca valori termeni sau propozitii fuzzy. Intre
numele variabilei ~i valorile sale trebuie sa existe 0 relatie semantica. De exemplu
pentru variabila "varsta yom avea valori de tipul "infantil", "adolescent", "adult",
"tanar", "batran", "foarte bi3.tran", ~.a.m.d.
Fiecare term en fuzzy care poate fi valoarea unei variabile lingvistice, are asociata 0
distributie de posibilitate, <;areeste 0 multime fuzzy. Atunci cand cunoa~tem valoarea
variabilei, trebuie sa cunoa~tem ~i distributia de posibilitate asociata acestei valori. 0

(7.~'
~ 0J
restrictie care apare este ca pentru toate valorile aceleia~i vari.abile, universul
discursului pentru mulpmile fuzzy ce reprezinta distributiile de posibilitate, trebuie
sa fie aceleasi.

<)Exemplu: Fie variabila height cu valorile "small", "quite small", "medium", "tall" $i
"very tall". Sa consideram ca univers al discursului multimea H=[100,...,200]
reprezentand inaltimea in centimetri a unei persoane. Yom putea avea de exemplu
urmatoarele distribupi de posibilitate:

r f5c) ~ ~
(/~ ~:/~----
--~\
"- ,
1:.oJ.t ~\
~,,---j'.'

l~r
f.4

-~ - .,,---
CJ ~

D~ y . {
/ ,,00 .1.00

Mulpmile fuzzy care implementeaza distributiile de posibilitate sunt definite empiric


(discret sau analitic) de catre utilizator.

.Descriptorii sunt tern:teniicare reprezinta adjective simple pentru 0 anumita insu~ire


Termenii fuzzy pot fi impartiti in doua categorii: descriptori ~i rnodificatorL

care define~te numele variabilei lingvistice. De exemplu height este numele variabilel
iar valorile sale sunt descriptori simpli. I

Modificatorii sunt termeni de tipul "very", "quite", "more", "less", etc. Ei sunt de oblcei
prefixe care insotesc un termen descriptiv. 0 astfel de pereche se nurne~te termen
campus ~i poate fi valoarea unei variabile lingvistice.
Mai exista 0 categorie de terrneni, cuantificatorii fuzzy. Daca in logica clasica exista
doar doi cuantificatori, eel existential (3) ;;i eel universal (V), in logic a fuzzy se pot
utiliza un numar nelimitat. Cei mai utilizati sunt: "most", "many", "several", "few",
"much", "frequently", "occasionally", sau de tipul aproximatiei numerice intregi de
tipul "about ten".

. Forma cea mai general a a unei reguli fuzzy este urmatoarea:

QjCif A is Vj(M-F)) then Q2(B is V2(N-G) (FTV) unde:


Qj, Q - cuantificatori
A - obiectul antecedent
B - obiectul consecinta
Vj, V2 - numele variabilelor lingvistice
M, N - modifica tori
F, G - descriptori
FTV - fuzzy truth value

FTV este 0 valoare care se propaga de-a lungul rationamentului ~i poate £i


interpretata ca un factor de certitudine pozitiv.

<) Exemplu. "if several mice are very smart then some cats are deeply depressed FTV

b
= 0,8" unde:

Q]=several A=mouse Vj=intelligence


Q2=some B=cal V2=mood
M=very F=smar t
N =deeply G=depressed
-!~
. De obicei 0 regyfa conpne
if A is Vj(x) then C is V2(Y)
variabile ~i are forma

unde X ~i Y sunt valorile neinstantiate ale variabilelor Vj ~i V2, X va avea universul


discursului V1 iar Y va avea universul discursului V2.
Daca la un moment dat in decursul raponamentului X va fi instantiata cu 0 valoare
(un term en lingvistic fuzzy, simplu sau compus), aceasta va avea asociata 0
distributie de posibilitate D1={(x/P[)](X»lxEVI},

. Inferenta fuzzy consta in determinarea unei distributii de' posibilita te


D2={(y,PD2(y»IyEV2}. Cea mai simpla metoda este utilizarea compozipei fuzzy in
raport cu 0 relape fuzzy R asociaUi regulii. In acest caz compozitia are forma:
D2 =D1 oR (23)

unde Ou D2 au dimensionalitatea carteziana I, 0 astfel de formula se mai nume~te


~i ecuape relationala. °Aplicarea formulei generale (22) se face prin forma particulara:
~D2 (y) =maxxw 1 [min (~D1 (x) I IlR (x, y) ) ] (yEU2) (24)

Relapa R se implementeaza printr-o matrice in care liniile au asociate fiecare, toate


elementele din universul discursului VI iar pe coloarie toate elementele din universul'
discursului V2. Calculul D2 se face prin urmatoarea schema cu vectori ~i matrici:
L---
~
2
XL 0
(x\) \ . 1Sj1
I
, \- \ \
Xn X"-

. Variabilele Vj ~i V2 pot lua valori diverse in cadrul regulii "if-then". De obicei aceste
valori sunt perechi ~i yom avea:

~. OR=D~',
D1oR=D2 (25)

, 1
Po R -D P
- 2

care se nume~te sistem de ecuatii relationale. Necunoscuta acestui sistem este R. In


majoritatea cazurilor acest sistem nu are solutie. Oar chiar ;;i in acest caz 0 solutie
aproximativa (care nu este unica) este viabila,

<>Exemplu. Pentru regula:

if the_price is X then the_profit is Y

1-
@~'
putem avea raportat la universul discursului UI asociat lui X (0 serie de preturi, de
exemplu UI {$10, $10.5, ..., $17}), termeni fuzzy "high" ~i "low", iar raportat la
universul discursului U2 asociat lui Y (0 serie de valori de profit, de ex. U2=1$10.000,
$11.000, .." $20.0001), termenii "good" ~i "poor", Termenii pot fi compu~i ell
modificatorul "very".
Vom avea urmatoarele distributii de posibilitate (multimi fuzzy):

\~
f- - -
~ - - \
/?:: ~~G'"
<\I .i
f-
~. ~
-
-
-\~o:t
~

~ Ife,\
~~
~-
~'!:..
, ~
f<\~ t \. ' / ./ -v f(b~-
care vor duce la determinarea lui R prin rezolvarea unui sistem de tipul (25) cu 4
ecuatii relationale.

. Cum se propaga raponamentul:


1. - Dadi la un moment dat, in timpul rationamentului apare ca ~i consecinta
.

activa propozipa P is VI(D), unde D este 0 distribupe de posibilitafe, se cauta toate


propozipile unde aceasta propozitie apare ca ~i antecedent.
2. - Se calculeaza pentru fiecare regula:
Dc=DoR
distributia de posibilitate a valorii din consecinta C is V2(Dc) ~i se reia procesul de
la pasul 1. -
2'. - Dadi C is V2(Dc) este 0 solutie, Dc trebuie transformaUi din distributie de
posibilitate in term en lingvistic fuzzy. Identificarea se face printr-un mecanism de
"pattern-matching" elastic cautand 0 distributie de posibilitate asemanatoare din
multimea de distributii definite peste universul discursului asociat variabilei I V2,
Gasind 0 distributie asemanatoare cu Dc, V(Dc) va fi inlocuWi de termenul fuzzy
asociat ~ acesteia T ~i se afi~eaza propozitia C is T.

. In zona antecedentului regulii putem avea 0 propozitie fuzzy de tipul:

[PI is VI(DI)] and [P2 is V2(D2)] or [P:\ is V:\(D:\)] (26)

Interpretarea conectivelor and ~i or poate fi nicuta in modul urmator:


- La un nivel allogicii dasice, putem privi aceasta espresie ca fiirld adevarata
sau falsa in fun~pe de aparipa in timpul rationamentului a componentelor sale. Daca
ele apar, pentru fiecare variabila lingvistica va trebui sa avem 0 relatie fuzzy R. Vom
avea:

D~=D1 oR1
D~=Dz°Rz

Toate Deivor fi defin?'ite in acela~i univers al discursului ~i in funqie de conectivele


din antecedent Ie vom agrega prin n (min) ~i u (max).

<>Exemplu: pentru expresia (26) vom avea:

Dc=(D~nn~)UD~
------
1'?f) V o...~''p / U \\- ., . .
In cazul in care au aparut toate componentele. ,
"
~
8
,

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