Documente Academic
Documente Profesional
Documente Cultură
.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.
{
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.
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
.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.
. 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 )
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)
P (ElF) ~ P (E, F) (3 )
p(F)
Lr
1
- p(E, F) - 6" - 1
If
/~ ( P(EIF)
- P (F) - 1
2
- 3"
a:O-R
. Varianta booleana:
aB : 0... {O,l}
5
p ( ex I PIC) = p I . p ( PIC)
( ex C) ( 6)
.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 ~
. Spuneca:
P (ElF) = p (FIE)
p(F)
. p (E) (7 )
(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.
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:
§l:
.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)
t,~(Dj) "p,P(01IDJ)]
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.
";"''''.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
B
'L--,
"0\/
.
cplicabilitate ~i generalita!e a inferentei bayesiene.
Putem Inlocui formula (10) prin formula dedusa de Lancaster:
wlde:
T =numarul total de pacienp.
. 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)
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
~i ,antiprobabilitatea conditionata:
~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
~1
(i=l,n) (26)
Wik= 1',( p(oiIDk)
L1 p (0 i IDk) )
. -I daca °1=0
(i=l,n) (27)
s.lgn(oj) = { 1 daca °i=l
9. REGULI
'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:
4
BAZA
DE zona
de
CUNOSTINTE MASINADE INFERENTE lucru
figura 4.
<>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).
5
11. FORWARD CHAINING
mai avem nevoie de un set de clauze care reprezinta simptomele (premise Ie initiale):
symptom«nume_simptom».
disease «nume_boala» .
.Mai trebuie sa ne definim un tip de c1auza "asertabila", clauze care vor contine
concluziile intermediare:
partial_conclusion«concluzie».
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} .
goal
empty_the_working_space,
checklist_symptoms,
forward_chaining(D),
write_diagnostic(D).
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]).
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*********************************************************
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) .
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).
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
figura2.
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..~«<."~
fly tall
figura 4.
: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.
.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 .
N ume_Atribut -- Valoare
. 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) .
live (at_sea) .
bill (hooked) .
size(large) .
wings(long_narrow).
color(dark) .
- Punand intrebarea:
goal: bird(X)
X=black_footed_albatross
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) .
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(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
~
.
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(...
.
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:
. 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).
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.
goal
greetings,
repeat,
solve,
nl, write( "Another bird? (y/n)"),
readchar (C) ,
C=' n' .
solve:- retractall(known(_,-»,
top_goal (X) ,
nl, write ("The bird is a ",X), nl,
! .
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(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, ! .
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)
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
. 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.
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.
. 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.
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.
. 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].
. 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:
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").
Pentru simplificare vom consider a ca evidenjele sunt conectate doar prin operatorul
conjunctie.
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") .
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».
compute_belief_of_evidence(List, Min):-
,minim(List, Min).
minim([_IT], Min):-
minim(T, Min).
value(H, Val):-
partial_hypothesis(H, Val),
1.
value(H, Val):-
symptom(H, Val).
5
@
"'"':'
"~- -- --
.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).
~
What does the gas gauge say?
empty, low or full
:empty
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.
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.
t
(10
-- - -----
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"
.
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.
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~.
1.
(r\)
- - -- - -- - -
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:
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).
adjust (CF,Bel_Evidence,New_CF) :-
X=CF*Bel_Evidence/1OO,
real_ints(X,New_CF, ...).
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, ...).
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).
top_goals:-
top_goal (Attr) ,
top (Attr) ,
print_goal (Attr),
fail.
top_goals.
top(Attr):-
findgoal(av(Attr,Val),CF),
!.
top(-) :-
true.
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.
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.
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
goal
greetings,
empty_the_working_storage,
top_goals.
aplicabila in special in cazurile in care p(H) ~i p(H IE) sunt u§or de. ca1culat.
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:
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)
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
;/
0 (HIE) = X' 0(H) .~ l€)H) (10)
Dadi H (utilul) este 0 solune, 0 vom afi$a, insotWi de valoarea obpnuta prin formula
anterioara (11).
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).
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 )
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)..
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
Daca toate cele Ej O=l,k) evidente sunt independent.e, atunci putern calcula:
2
20. UTILIZAREA TEORIEI FUZZY IN SISTEMELE EXPERT
. 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.
. 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).
. 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.
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
~
~( 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.
J.LA (AX]. + ( 1 - A ) X2) ~mi n [J.I.a (Xl) , IJ.A (X2) ] . unde Xl' X2 EX si AE [0, 1] (3 )
~(X) ~(X)
x x
Obs. Mulpmea X (marimea de pe abscisa acestor grafice) se mai nume~te ~i domeniul
discursului.
f
IAI=xeXIJ.A(x) dx
(4)
3
estedefinita ca:
Similar, reWli1.mea
~c (x) =max [~A (x) , ~B (x) ] XEX (6 )
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.
4:
j.!A+B(x) =j.!A (x) +j.!B (x) -j.!A (x) 'j.!B (x)
(11)
<> 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)}
. 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)
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)} .
-'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.
unde:
(21)
J.LiAi.JB(w) =suPw=max (U,t.Vj) [min (J.Lu,t(x) I J.LVj(x) ) ]
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
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
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.
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:
\)
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:
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 )
<> Exemple:
Pentru f(x)=-x, 8M este definit prin fWlctia de apartenenta:
~eM(x) =IlM(-x) (5)
~
(~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.
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.
Obs. Aplicarea
sau negative.
operatorului e este posibila doar daca M,N sunt impreuna pozitive
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".
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
tK (x) - - --- - - -
A
'(\\
xtZ-K
(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
~
~
(m,a,b)~O(n,c,d)~~(mn,mc+na,md+nb)~ ( 16 )
. 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
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.
. 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
. 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
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".
<) Exemplu. "if several mice are very smart then some cats are deeply depressed FTV
b
= 0,8" unde:
. 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
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.
D~=D1 oR1
D~=Dz°Rz
Dc=(D~nn~)UD~
------
1'?f) V o...~''p / U \\- ., . .
In cazul in care au aparut toate componentele. ,
"
~
8
,