8. SISTEME EXPERT BAZATE PE REGULI Mijloacele prin care sistemele expert î și ating obiectivele se bazeaz ă pe mulțimi de fapte și reguli euristice,… [606343]
73
8. SISTEME EXPERT BAZATE PE REGULI
Mijloacele prin care sistemele expert î și ating obiectivele se bazeaz ă pe mulțimi de fapte
și reguli euristice, adic ă reguli pentru gestiunea cuno ștințelor. Un sistem expert bazat pe reguli
are trei componente:
¾ baza de cuno ștințe (sau baza de reguli ) care descrie universul domeniului în care se
aplică sistemul expert; reprezentarea cuno ștințelor se face utilizând reguli de forma:
IF <condi ție_1> și …<condi ție _k>
THEN <ac țiune>
(<condiție_1> și …<condi ție _k> se numesc premisele regulii)
¾ memoria de lucru care conține informa ția de stare necesar ă rezolvării unei probleme;
această informație este de obicei organizat ă sub forma unei mul țimi de aser țiuni numite fapte ;
trebuie făcută distincție între faptele ini țiale, care reprezint ă datele ini țiale ale problemei de
rezolvat și faptele dinamice , care sunt deduse pe m ăsura derul ării procesului de rezolvare a
problemei.
¾ mecanismul de inferen ță care reprezint ă componenta de control și execuție dintr-un
sistem bazat pe reguli; acest mecanism realizeaz ă selectarea unei reguli din baza de cuno ștințe și
declanșarea acestei reguli; efectul acestei declan șări este modificare memoriei de lucru.
Arhitectura unui sistem bazat pe reguli este prezentat ă mai jos:
memoria de lucru fapte baza de reguli
reguli
ac țiuni mecanism de inferen ță
Mecanismul de inferen ță poate folosi trei moduri de ra ționament:
74 M ădălina Roxana Buneci
¾ deductiv , dirijat de fapte ( inferență cu înlănțuire înainte )
¾ inductiv , dirijat de scop ( inferență cu înlănțuire înapoi )
¾ mixt
Un proces de inferen ță cu înlănțuire înainte porne ște de la o mul țime de fapte ini țiale
care sunt înc ărcate în memoria de lucru. La fiecare pas se determin ă o regulă ale cărei premise
sunt satisf ăcute de con ținutul curent al memoriei. Se declan șează acțiunea asociat ă acelei reguli,
după care procesul se reia. Acest proces se opre ște dacă este îndeplinit ă una din urm ătoarele
condiții:
conținutul memoriei de lucru satisface o anumit ă condiție
nu mai exist ă reguli aplicabile
s-a epuizat o cantitate de efort de calcul predefinit
Un proces de inferen ță cu înlănțuire înapoi porne ște de la un scop (o problem ă de
rezolvat) pe care îl descompune în subprobleme primitive. De aceea se spune c ă acest mod de
raționament este dirijat de scop în sensul g ăsirii faptelor care permit atingerea acestuia. Se
observă că raționament este invers decât ra ționamentul deductiv. La fiecare pas se selecteaz ă o
regulă care are în partea de concluzii cel pu țin unul dintre obiectivele de rezolvat. Premisele
acestei reguli se adaug ă la obiectivele ce trebuie rezolvate. Acest proces se opre ște dacă este
îndeplinit ă una dintre urm ătoarele condi ții:
mulțimea obiectivelor de rezolvat devine vid ă
nu mai exist ă reguli aplicabile
s-a epuizat o cantitate de efort de calcul predefinit
Ra ționamentul mixt încearc ă să realizeze compromisuri între cele dou ă moduri de
raționament de baz ă: deductiv și inductiv. Principiul general al acestui mod de ra ționament este
următorul: se fixeaz ă un scop, se determin ă faptele deductibile, se aplic ă mai întâi ra ționamentul
inductiv, care va solicita utilizatorul pentru specificarea valorilor unor fapte necunoscute, dar
interogabile și apoi se aplic ă raționamentul deductiv pentru a deduce tot ce este posibil ș.a.m.d.
Pentru exemplificarea celor dou ă moduri de ra ționament de baz ă vom considera
următoarele reguli:
R1: IF a THEN b
R2: IF c THEN d
R3: IF b THEN c
Dezvoltarea sistemelor expert în PROLOG 75
Să presupunem c ă mulțimea faptelor ini țiale este{a}. Dac ă se aplică raționamentul deductiv și
condiția de terminare este s ă numai existe reguli aplicabile, atunci inferen ța decurge astfel: se
selectează regula R1 și mulțimea de fapte devine {a,b}. La al doilea pas se selecteaz ă regula R3 și
noua mul țime de fapte ob ținute este {a,b,c}. La al treilelea pas se selecteaz ă regula R2 mul țimea
de fapte ob ținute devine {a,b,c,d}. Deoarece nu mai exist ă reguli care s ă producă fapte noi,
procesul de inferen ță se oprește. Dacă se aplică raționamentul inductiv și scopul care trebuie
demonstrat este c atunci inferen ța decurge astfel: la primul pas se selecteaz ă regula R3 și noul
obiectiv generat este b. La al doilea pas se selecteaz ă regula R1 și noul obiectiv generat este a.
Acest obiectiv este adev ărat ceea ce determin ă ca obiectivul b s ă fie adăugat la mul țimea de
fapte. Ca atare premisa regulii R3 este adev ărată și deci d este demonstrat. În momentul încheierii
inferenței conținutul memoriei de lucru este{a,b,d}.
În PROLOG ra ționamentul folosit este cel inductiv. Prezent ăm în continuare un
microsistem expert de consiliere a persoanelor fizice în domeniul investi țiilor. Sistemul va ține
cont de
vârsta clientului- persoanele mai în vârst ă trebuie să fie mai precaute
suma deja investit ă în depozite bancare-plasamente cu grad ridicat de siguran ță
suma deja investit ă în acțiuni ale societ ăților bine cotate la burs ă- plasamente rentabile
și cu grad de siguran ță rezonabil
Sistemul va recomanda utilizatorului ce sum ă este disponibil ă pentru investi ții riscante dar foarte
rentabile.
domains
suma=real
varsta=integer
predicates
suma_medie_depozite(varsta,suma)
suma_medie_actiuni_bine_cotate(varsta,suma)
suficient_depozite(suma,suma)
suficient_actiuni_bine_cotate(suma,suma)
date_pers( varsta,suma,suma,suma)
recomandare(suma,suma,suma,suma,suma,suma).
afis_recomandare(suma)
76 M ădălina Roxana Buneci
consiliere
max(real,real,real)
fer
fer1
fer2
elimin_fer
clauses
fer:-makewindow(1,113,37,"Consiliere in domeniul investitiilor persoanelor
fizice",0,0,25,80). /*1*/
fer1:-makewindow(2,113,36,"Datele pesoanei care investeste",2,2,12,75). /*2*/
fer2:-makewindow(3,113,36,"Recomandarea sistemului",16,2,7,75). /*3*/
max(X,X,X). /*4*/
max(X,Y,X):-X>Y. /*5*/
max(X,Y,Y):- X<Y. /*6*/
suma_medie_depozite(Varsta,1000):-Varsta<30. /*7*/ suma_medie_depozite(Varsta,3000) :-Varsta>=30,Varsta<40. /*8*/
suma_medie_depozite(Varsta,6000) :-Varsta>=40,Varsta<50. /*9*/
suma_medie_depozite(Varsta,9000):-Varsta>=50. /*10*/
suma_medie_actiuni_bine_cotate( Varsta,1000):-Varsta<30. /*11*/
suma_medie_actiuni_bine_cotate(Varsta ,3000):-Varsta>=30,Varsta<40. /*12*/
suma_medie_actiuni_bine_cotate(Varsta ,5000):-Varsta>=40,Varsta<50. /*13*/
suma_medie_actiuni_bine_cotate(Varsta ,8000):-Varsta>=50,Varsta<60. /*14*/
suma_medie_actiuni_bine_cotate(Varsta,12000):-Varsta>=60. /*15*/
suficient_depozite(Suma_medie,Suma_efectiva):-Suma_medie<=Suma_efectiva. /*16*/
suficient_actiuni_bine_cotate(Suma_medie,Suma_efectiva):-
Suma_medie<=Suma_efectiva. /*17*/
date_pers(Varsta,Suma_efectiva_dep,Sum a_efectiva_act,Suma_invest):-
shiftwindow(2),nl,wri te("Varsta = "),readint(Varsta),nl,
write("Valoarea investiti ilor in depozite = "),readreal(Suma_efectiva_dep),nl,
write("Valoarea investitiilor in actiuni bine cotate = "),readreal(Suma_efectiva_act),
nl, write("Suma pe care doriti sa o investiti = "),readreal(Suma_invest),nl. /*18*/
recomandare(Suma_invest,Suma_efectiva_dep,Suma_medie_dep,Suma_efectiva_act,
Dezvoltarea sistemelor expert în PROLOG 77
Suma_medie_act, Invest):-
suficient_depozite(Suma_medie_dep,Suma_efectiva_dep),
suficient_actiuni_bine_c otate(Suma_medie_act,Suma_efectiva_act),
Invest=Suma_invest,!. /*19*/
recomandare(Suma_invest,Suma_efectiva_dep,Suma_medie_dep,Suma_efectiva_act,
Suma_medie_act,Invest):-
Invest_rec=Suma_invest+(Suma_efectiva_dep-
Suma_medie_dep)+(Suma_efectiva_act-
Suma_medie_act), max(0,Invest_rec,Invest). /*20*/
afis_recomandare(Suma):-shiftwindow(3),nl,write ("Va recomandam sa investiti suma de
"),
writef("%-30.2\n",Suma),cursor(4,30),
write("pentru a termina apasati orice tasta…"), readchar(_). /*21*/
elimin_fer:-shiftwindow(1), removewindow, shiftwindow(2), removewindow,
shiftwindow(3),
removewindow. /*22*/
consiliere:-fer,fer1,fer2,
date_pers(Varsta,Suma _efectiva_dep,Suma_efectiva_act,Suma_invest),
suma_medie_depozite(Varsta,Suma_medie_dep),
suma_medie_actiuni_bine_cotate(Varsta,Suma_medie_act),
recomandare(Suma_invest,Suma_efectiva_dep,Suma_medie_dep,
Suma_efectiva_act, Suma_medie_act,Invest),
afis_recomandare(Invest),elimin_fer. /*23*/
Clauza 18 are ca efect citirea datelor de in trare: vârsta clientului, suma deja investit ă în depozite
bancare, suma deja investit ă în acțiuni bine cotate și suma pe care dore ște să o investeasc ă.
Clauzele de la 7 la 10 stabilesc suma medie care ar trebui investit ă în depozite bancare de client.
Se observ ă că această sumă crește odată cu vârsta. Clauzele de la 11 la 15 stabilesc suma medie
care ar trebui investit ă în acțiuni bine cotate de c ătre client. Și această sumă crește odată cu
vârsta. Clauzele 16 și 17 stabilesc dac ă s-a investit suficient în depozite, respectiv în ac țiuni bine
cotate. Clauzele 19 și 20 codific ă recomandarea sistemului: dac ă s-a investit suficient în depozite
și acțiuni atunci se recomand ă ca întreaga sum ă să fie investit ă în acțiuni riscante, altfel doar o
78 M ădălina Roxana Buneci
parte din aceast ă sumă se investe ște, restul compensând sumele lips ă la valorile depozitelor și
acțiunilor. Clauza 21 are ca efect afi șarea recomand ării sistemului. Interogarea se realizeaz ă prin:
Goal: consiliere
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: 8. SISTEME EXPERT BAZATE PE REGULI Mijloacele prin care sistemele expert î și ating obiectivele se bazeaz ă pe mulțimi de fapte și reguli euristice,… [606343] (ID: 606343)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
