Sunteți pe pagina 1din 63

 

 
 
 
 
Suport lucrări de laborator
Sisteme Expert de Gestiune
„FIŞA DISCIPLINEI (anul universitar 2009-2010)

Universitatea „1 Decembrie 1918”


Facultatea De Ştiinţe
Specializarea Contabilitate şi informatică de gestiune
I.
DENUMIRE CATEGORIA
Sisteme expert de gestiune
DISCIPLINĂ (DF/DD/DS/DC):
II.
STRUCTURĂ DISCIPLINĂ (NR. ORE SĂPTĂMÂNAL)
SEMESTRUL CURS SEMINAR LABORATOR PROIECT
I - - - -
III.
STATUT DISCIPLINĂ OBLIGATORIE OPŢIONALĂ FACULTATIVĂ
  x    
IV.
TITULAR DISCIPLINĂ
SEMINA PROIEC
  CURS LABORATOR
R T
NUMELE ŞI
Ioan Ileana   Incze Arpad  
PRENUMELE
univ. univ.
INSTITUŢIA    
„1 decembrie „1 decembrie
1918” 1918”
CATEDRĂ / informatică şi informatică şi
   
DEPARTAMENT matematică matematică
TITLUL ŞTIINŢIFIC doctor   doctorand  
GRADUL DIDACTIC profesor   Lector  
ÎNCADRAREA (NORMA
norma de bază   norma de bază  
DE BAZĂ/ ASOCIAT)
VÂRSTA     39  
V.
OBIECTIVELE DISCIPLINEI (CURS ŞI APLICAŢII): LABORATORUL URMĂREŞTE
DOBÂNDIREA NOŢIUNILOR FUNDAMENTALE REFERITOARE LA DOMENIUL
SISTEMELOR EXPERT DE GESTIUNE ŞI LA ROLUL LOR ÎN ECONOMIE. SUNT
TRATATE URMĂTOARELE SUBIECTE:

Reţele neuronale. Logica propoziţiilor, logica predicatelor Reguli de producţie Arbori de


căutare TIPURI DE Raţionamentul Aplicaţiile EISEWin şi EXSYS 24

SE URMĂREŞTE CREAREA ŞI DEZVOLTAREA DE ABILITĂŢI:

         ÎN CUNOAŞTEREA METODELOR SPECIFICE SISTEMELOR EXPERT;


         ÎN CUNOAŞTEREA ŞI UTILIZAREA APLICAŢIILOR SPECIFICE SISTEMELOR
EXPERT
VI.
   
VI.3. LUCRĂRI DE LABORATOR  
Laborator 1 Reţele neuronale.

Laborator 2 Logica propoziţiilor, logica predicatelor

Laborator 3 Reguli de producţie

Laborator 4 Arbori de căutare

Laborator 5 Arbori SI SAU

Laborator 6 Generatorul de SE EISEWin


 
Laborator 7 Generatorul de SE EXSYS

Laborator 8 Utilizarea variabilelor în EXSYS

Laborator 9 Formule individualizate pentru ierarhizarea soluţiilor în EXSYS

Laborator 10 Combinarea variabilelor si calificatorilor in EXSYS pt rezolvarea


problemelor complexe

Laborator 11 Sisteme expert uzuale. Teste de personalitate cu EXSYS

Laborator 12-14 Proiect de laborator


   
VI.4. TEMATICĂ PROIECT  
Realizarea unei aplcaţii folosind programele studiate  
VII.
BIBLIOGRAFIE
1.            Ioan Ileana Sisteme expert Manualul studentului

2.            J. Glenn Brookshear Introducere în informatică

3.            Ioan Andone, Alexandru Ţugui Sisteme Inteligente în management contabilitate


finanţe bănci şi marketing
VIII.
FORME DE
METODE DIDACTICE FOLOSITE
ACTIVITATE
LABORATOR LA LABORATOR SE VOR FACE APLICAŢII ALE
NOŢIUNILOR PREDATE LA CURS, ASTFEL ÎNCÂT
STUDENŢII SĂ ÎNŢELEAGĂ, SĂ APROFUNDEZE ŞI MAI ALES
SĂ-ŞI FORMEZE DEPRINDERI DE A APLICA PRACTIC
  CUNOŞTINŢELE ACHIZIŢIONATE.

Data: Titular laborator,

Lect. drd. Incze Arpad


CUPRINS

Laborator 1 Reţele neuronale.

Laborator 2 Logica propoziţiilor, logica predicatelor

Logica propoziţiilor

Calculul predicatelor

Laborator 3 Reguli de producţie

Laborator 4 Arbori de căutare

Căutare euristică

Laborator 5 Arbori SI SAU

5.2.1. Raţionamentul deductiv

5.2.2 Raţionamentul inductiv

Laborator 6 Generatorul de SE EISEWin

Programul EISEWIN

Crearea unui script

Laborator 7 Generatorul de SE EXSYS

Crearea unei baze de cunoştinţe

Introducerea calificatorilor

Introducerea regulilor:

Laborator 8 Utilizarea variabilelor în EXSYS

Laborator 9 Formule individualizate pentru ierarhizarea soluţiilor în EXSYS

Laborator 10. Combinarea variabilelor numerice şi a calificatorilor.


Laborator 11 Teste de personalitate

Bibliografie sursă
Laborator 1 Reţele neuronale.
Să studiem construcţia şi modul de funcţionare al celulei neuronale. Sinapsele sunt receptorii
terminali care “simt” anumiţi stimuli din mediu. Sinapsele transmit apoi semnalul prin dendrite
nucleului, centrului de decizie care apoi transmite decizia prin Axon spre un centru de execuţie
(muschi sau alt organ intern) sau spre sinapsa unui alt neuron. Un nucleu poate primi mai multe
informaţii consecutiv şi pe baza “experienţelor anterioere” referitoare la acea combinaţie de
stimuli sau ţinând cont de o anumită ordine de priorităţi a diferiteor stimuli va lua o decizie pe
care o va transmite mai departe.

Pornind de la această structură se încearcă aplicarea modelului neuronal şi în informatică.


Modelul corespunzător neuronului într-un sistem artificial ar fi următorul.

P1

P2

P3

 
  S1

Acţiune

Nonacţiune

Decizia:

?? prag

Suma ponderată a intrărilor

S P
i i

P1

  S2

P2

  S3

Pn

  Sn

 
Pe diferite căi de comunicaţii centrul de decizie primeşte un set de “stimului” Si fiecare cu o
anumită importanţă în luarea deciziei Pi . Se calculează suma ponderată a intrărilor şi se compară
cu o valoare prag care dacă este depăşit, celula va transmite mai departe, altfel se va bloca.

În informatică semnalele pot avea două valori : 0 (nonacţiune, fals) şi 1(acţiune, adevărat), deci
putem lucra cu valori oarecare numai pentru ponderi respectiv prag.

În practică se utilizează o schemă simplificată a neuronului artificial, care conţine ponderile


respectiv pragul:

-5

0.1

   

Astfel pentru setul de valori (1,0,0) suma ponderată va fi

1x(-5)+0x3+0x3=-5<0.1

deci răspuns 0. Se poate vedea că pentru aceste valori trebuie ca stimulii 2 şi 3 să fie neapărat 1.
Am ales pragul 0.1 pentru că având stimulii (0,0,0) pragul de 0 ar fi satisfăcut dar este “ilogic” să
nu avem semnal de nici un fel. Sunt situaţii când este posibil şi acest lucru.

În funcţie de valoarea ponderii acestea pot fi excitatoare, de obicei valori pozitive care contribuie
la îndeplinirea condiţiei de depăşire prag deci spre acţiune; iar dacă o ponderea este negativă,
reduce şansele depăşirii pragului vorbim de valori inhibatoare. Prin urmare prin valoarea
ponderilor reflectăm importanţa unui anumit stimul, care pot veni de la un anumit receptor sau de
la o altă celulă. Prin ajustarea ponderilor putem programa reţeaua de unităţi de prelucrare să
răspundă într-un anumit mod previzibil sau chiar definit la anumiţi stimului.

Reţelele neuronale sunt formate dintr-o serie de unităţi neuronale conectate între ele. Ieşirea unei
celule este intrare într-o altă celulă.

În funcţie de participarea unui stimul la ekementele reţelei avem două tipuri de reţele:

Reţele simple în care un stimul participă la o unitate :

Reţele combinate în care un stimul poate participa cu valoarea lui la mai multe celule care la
rândul lor sunt legate între ele.

Să vedem în continuare câteva cazuri concrete.

1.Fie unitatea din figură.

Să se calculeze ieşirile pentru valorile:

P1= -2 P2=3 P3= -1 Prag=1,5


Pentru următoarele seturi de intrări (0,1,1) (1,0,1) (0,0,0) (0,1,0) (1,1,0)

2. Pentru schema reţelei combinate să se calculeze răspunsurile pentru valorile de prag respectiv
ponderi din tabel cu urmatoarele valori de intrare:(0,0) (0,1) (1,0) (1,1)

P1 P2 Prag1 P’1 P’2 P’3 Prag2


1 1 1.5 1 -2 1 0.5
0 0 1.5 0.35 0 0.35 0.5

3. Fie unitatea de prelucrare din figură să se determine ieşirile


pentru (0,0) (0,1) (1,1) (1,0):

dacă P1= 1 P2= -1 Prag= 0.5

4. Ajustaţi ponderile şi valoare prag pentru următoarea unitate de prelucrae astfel încât ieşirea să
fie 1 dacă şi numai daca cel puţin două dintre intrări au valoare 1.
Laborator 2 Logica propoziţiilor, logica
predicatelor
Logica propoziţiilor
După cum s-a văzut la curs, logica propoziţiilor se bazează pe determinarea stării de adevărat sau
fals ale conţinutului acestora sau a modului de implicare(o afirmaţie are o implicaţie într-o altă
afirmaţie), iar când avem mai multe propoziţii se aplică axiomele pentru determinarea stării
logice finale. Pentru acesta se trasează tabela de adevăr.

Se pune problema formalizării limbajului natural adică găsirii unui mod de substituţie a
limbajului natural cu un un limbaj formal. Pentru o asemenea descriere vom folosi notaţii
speciale pentru categoriile:

1.Constante referitoare la obiecte

2.Predicate referitoare la relaţia dintre obiecte

3.Argumente de tip predicat cu nume specifice (ex: studentii de la IDD sunt cu taxe=> cu
taxe(studenti IDD))

4.Argumente de tip predicat pentru adjective(Leul este instabil => instabil(leu))

5.Verbele sunt reprezentate ca predicate cu argumente care pot fi subiecte sau obiecte (ex:
plouă =>plouă(); creşterea leului => creşte(leu); A plăteşte lui B 100 lei =>plăteşte(A,B,100))

6.Timpurile se introduc ca şi argumente (A a plătit lui B 100 lei =>plăteşte(A,B,100,trecut))

7.Articolele nedeterminate se reprezintă cu ajutorul cuantificatorilor existenţiali “”(exista


cel puţin un… pentru care propoziţia este adevarată): Un client a deschis un cont =>
(x,y):client(x)cont(y)deschis(x,y,trecut)

8.Analog se procedează cu expresii ca “este”,” există”,”sunt” : Există un venit diferit de salar


sau pensie => (x):venit(x) este-un(x,y)diferit(y,salar) diferit(y,pensie)

9.Expresii de genul “oricare”, “totul“, “fiecare” se reprezintă cu ajutorul cuantificatorului


universal “”(propoziţie adevărată pentru oricare ..): Orice personă trebuie să plătească
imopzit => (x):persoana(x) trebuie-platit(x,impozit)

10.                          imlpicaţiile reprezintă expresii condiţionale. IF este premisa sau condiţia iar
THEN este acţiunea sau concluzia: Dacă un om este fericit el este prietenos => (x):fericit(x)
prietenos(x)
O altă metodă de utilizare a logicii este inferarea adică derivarea unor propoziţii noi din
propoziţii existente.

P=Tribuna economica apare joi

Q=Astăzi este luni

---------------------------------------

R=Tribuna economica nu apare azi

Pentru a nu scrie totdeauna toate propoziţiile acestea vor fi înlocuite cu litere.

Calculul propoziţional are în vedere enunţurile declarative repartizate în două grupe: Adevărat şi
Fals. O propoziţie compusă este formată din propoziţii elementare legate cu conectorii (AND)
(OR) iar pentru negarea unei propoziţii se foloseşte ~(NOT) . Pentru a stabili valoarea de
adevăr a unei propoziţii vom folosi următorul tabel

Tabela de adevăr pentru câteva propoziţii logice

A B ~A ~B AB AB
A A F F A A
A F F A F A
F A A F F A
F F A A F F

Calculul predicatelor
Calculul predicatelor permite fragmentarea propoziţiilor în obiecte (argumente) şi
predicate(aserţiuni despre atributele obiectelor); calculul predicatelor permite de asemenea
utilizarea variabilelor şi funcţiilor de variabile. Aceste proprietăţi fac din calculul predicatelor un
instrument mai puternic decât calculul propoziţional.

Trecerea de la propoziţie la forma de calcul predicativ arată în felul următor:

“Creditează 101 cu 70.000.000”  creditează(101,70000.000) sau (crediteaza 101


70.000.000)

În exemplul de mai sus am utilizat valori concrete dar la fel de bine se pot utiliza în descrierea
formală a predicatelor variabile cont-de-activ(x) deci putem scrie propoziţii generalizate.
Cuantificatorii universal şi existenţial enunţaţi mai sus se pot folosi şi la calculul predicatelor:

Ex: “Toţi Popescu sunt cetăţeni ai româniei”  (x),Popescu(x)->cetăţean-român(x) acesta


se poate citi astfel Daca x este Popescu atunci x este român

(x),cont(x)->cont-de-activ(x) AND cont(5121)=>cont-de-activ(5121)

Contul 5121 este un cont de activ dacă 5121 este un cont şi toate conturile sunt de activ

Exerciţii:

Folosind diagrama de mai jos, tabelul de adevăr şi regula IF A AND B THEN C, complectaţi
rubricile corespunzătoare(vă dăm rezolvarea pt cazul A=a şi B=f):

A _a_______________________

B __f______________________

A AND B _f__________________

IF A AND B THEN C __f_______

2. Transformaţi următoarele predicate în propoziţiile corespunzătoare:

ESTE(INFLAŢIA MARE)

DEBITEAZĂ(X, CONT(5131))

3. Utilizaţi următoarele enunţuri pentru scrierea de formule în calculul predicatelor:

P(x)= x este un economist

S(x)= x este iteligent

L(x,y)= x iubeşte y

a)      toţi economiştii sunt inteligenţi ((x),P(x)->S(x))

b)      unii economişti sunt inteligenţi

c)      nici un economist nu este inteligent

d)      unii sunt economisti

e)      nici unul nu este economist


f)        unii economişti nu sunt inteligenţi

g)      exista economişti

h)      unii iubesc pe alţii

i)        toţi î-l iubesc pe economist

j)        nimeni nu iubeşte economistul

k)      unii economişti sunt iubiţi

l)        toţi iubesc economiştii inteligenţi

Notă: modul de scriere al formularelor poate varia în funcţie de modul de interpretare .


Laborator 3 Reguli de producţie
Metoda regulilor de producţie are la bază conceptul de reprezentare a cunoaşterii sub forma unor
reguli de forma: DACĂ premisă ATUNCI concluzie1 ALTFEL concluzie2. Atât premisele cât
şi concluziile sunt stabilite de expert. Premisa este de obicei o afirmaţie care este evaluată dacă
este adevărat sau fals. Concluziile pot fi soluţii-acţiuni. O concluzie poate deveni la rândul lui
premisă într-o altă regulă. De asemenea acest tip de reprezentare a cunoaşterii permite folosirea
variabilelor.

Regulile de producţie pot fi clasificate dupã ordinea în care se merge în inferenţã (premise ->
concluzie, sau concluzie -> premise) sau dupã tipul de entitãţi conţinute (constante sau variabile).

a) Reguli de producţie deductive (RPD). Sunt de forma:

DACÃ

<premise>

ATUNCI

<concluzie>

În acest caz se utilizeazã implicaţia logicã în sensul cã dacã premisele sunt adevãrate, atunci şi
concluzia este adevãratã şi aceasta se adaugã şi ea bazei de fapte.

Ca urmare se pot aplica alte reguli care conţin între premise şi fapta nou adãugatã.

b) Reguli de producþie inductive (RPI). Sunt de forma:

<concluzie>

DACÃ

<premise>

Aceste reguli declanşeazã deducţii succesive, plecând de la concluzie şi verificând fiecare


premisã. Dacã premisele se gãsesc a fi adevãrate se conchide cã şi concluzia este adevãratã.

Din punct de vedere logic regulile deductive şi cele inductive sunt formulãri echivalente.

c) Reguli de producţie cu variabile (RPV)

Utilizarea unor reguli care conţin doar constante este neeconomicã datoritã faptului cã trebuie
scrisã câte o regulã pentru fiecare caz în parte, chiar dacã sunt mai multe cazuri similare.
Ca şi în cazul predicatelor, folosirea variabilelor oferã o modalitate generalã de exprimare.

Exemplu : Presupunem cã sunt necesare reguli pentru pensionarea unui angajat de forma:

IF Ionescu V. este salariat

AND Ionescu V. a depãsit vârsta de 65 ani

THEN Ionescu V. se poate pensiona

Astfel de reguli trebuie scrise pentru fiecare angajat, soluţie greoaie si neeconomicã. Se poate
scrie însã o regulã cu variabile care sã fie valabilã pentru toţi angajaţii:

IF ?x este SALARIAT

AND ?x are vârsta > 65

THEN ?x se poate pensiona

În continuare vom reda o posibila listă de reguli de producţie care vor fi de folos la alegerea unui
tip de imprimantă. Avem trei tipuri de imprimante:

1.      cu ace (costul de intreţinere redus, calitate rea, pret mediu) recomandat pentru
contabilitate

2.      cu jet (caliate bună, preţ mic, costuri relativ mari) recomandat pentru birouri mici
sau pentru casa cu numar redus de listări

3.      cu laser (calitate foarte bună, costuri mici, pret foarte mare) recomandat
birourilor, firmelor mari unde calitatea documentelor este importană.

Vom face mai întâi un tabel în care vom include datele de mai sus:

Tip imprimantă Ace Jet Laser


Proprietaţi
Preţ mediu mic mare
Costuri F_mic mare mic
Calitate rea buna F_bună

O regulă de producţie ar arăta astfel:


DACĂ calitate=f_bună
AND costuri=mici

AND preţ_achiz=mare

THEN Alege imprimanta laser

Putem constata că pentru a lua în consiederare toate posibilităţile trebuie să scriem 3x3x3=27
reguli de producţie. Evident sunt combinaţii (ilogice) care nu ne duc la nici o soluţie concretă.
(ex: preţ-mare costuri-mari calitate-rea) Exerciţiu: scrieţi celelalte reguli de producţie logice.

Exerciţiu 2: Stabiliţi criteriile şi concepeţi regulile de producţie pentru un sistem expert care să
ne asiste în alegerea unei anumite metode de investiţii financiare(bancă, valută, acţiuni).
Observaţie pentru a rezolva problema trebuie să utilizaţi posibilitatea utilizării variabilelor şi
valorilor numerice în scrierea regulilor de producţie.
Laborator 4 Arbori de căutare
Sarcina principală a sistemului de control este acela de a dezvolta o soluţie pentru o anumită
problemă. Pentru acesta algoritmul de căutare va trebuii să asigure parcurgerea grafului de stări
pornind de la nodul iniţial până când se ajunge la nodul ţintă .

Nodurile sunt stările sistemului iar producţiile sunt reprezentate prin operaţiile efectuate pentru a
trece de la o stare la alta. Sistemul de control va parcurge nodurile prin efectuarea producţiilor,
va compara fiecare nod cu starea ţintă şi în momentul găsirii acestuia va reconstitui calea pe
acele noduri şi acele producţii care au condus la rezultat. Ca efect ala cestei strategii se
construieşte arborele de căutare care nu este altceva decât acea parte a grafului stărilor care a fost
verificată de sistemul de control. Nodul rădăcină este stare iniţială iar fiii fiecărui nod sunt stările
care pot fi onbţinute prin producţii asupra nodului părinte. Fiecare arc care leagă două noduri
este o producţie.

Parcurgerea unui graf de stări se poate face în două feluri:

1. în adâncime parcurgând o ramură a grafului până la un nivel prestabilit, are dezavantajul că


este posibil să nu se ajungă a soluţie dacă acesta este sub nivelul maxim admis de căutare.
Pe orizontală adică sunt parcurse toate stările pe un nivel şi dacă nu s-a găsit soluţia se trece la
nivelul următor

Un exemplu pentru arborii de căuatre ar fi modul de rezolvare al unui puzle cu 8 cifre

Pentru rezolvarea acestui puzle o maşina făra gândire logică umană ar trebuii să
mute numerele, efectuând toate mutările posibile dintr-o anumită stare
(producţii) să verifice stările obţinute şi dacă nu sa găsit starea ţintă să mai
aplice câte o producţie pe stările noi . În cazul nostru pe primul nivel (nivelul
0)ar fi trei producţii posibile : 2, 5 şi 8. Cele trei noduri obţinute, pe nivelul 1 cu
3 stări, la rândul lor nefiind stări ţintă, vor fi supuse unor noi producţii rezultând
alt nivel (2) cu 5 stări ş.a.m.d.. până când pe un nivel oarecare (5) se obţine
soluţia . Parcurgerea în acest exemplu as efectuat pe orizontală. După găsirea soluţiei se
reconstituie acele producţii (se evidenţiaază acele ramuri) care au condus la rezultat.

Evident metoda poate fi înbunătăţit cu anumite condiţii “de bun simţ” cum ar fi:

nu revenim la starea de dinainte;


dacă pe o ramură ajungem la o stare care se regăseşte deja pe o altă ramură (există această
posibilitate) vom continua producţiile numai pe ramura care are deja subramuri (a fost deja
dezvoltat).

Cu aceste regului soluţia finală se va obţine pe nivelul 5 având următoarele producţii:

Mută 5 în jos

Mută 3 la dreapta

Mută 2 în sus

Mută 5 la stânga

Mută 6 în sus

Primele trei nivele le puteţi vedea pe figura următoare. Urmăriţi producţiile enunţate mai sus şi
verificaţi corectitudinea rezultatului. (obs.. ramura din stânga)

Exerciţiu desenaţi arborele de căutare pentru următoarea stare iniţială:


Pentru simplificare renunţaţi la desenarea pătrăţelelor

132

485

76

 
Căutare euristică
Vom îmbunătăţi metoda noastră prin introducerea unor elemente care imită intuiţia umană. Vom
spune că acolo unde oamenii aplică reguli logice, sistemele artificiale aplică reguli euristice.
Vom identifica acele caracteristici pe care le iau în considerare oamenii atunci când aleg calea.
Oamenii tind să aibă în vedere ţinta şi tind spre opţiunea care le aduce mai aproape de acesta,
gândim înainte. Pentru a aplica o asemenea metodă trebuie să învăţăm sistemul să poată măsura
care din stări care din producţii este mai aproape de ţintă. O asemenea măsură se numeşte
euristică.

Pentru jocul nostru de puzle o asemenea euristică ar putea consta în “evaluarea costuirilor”. Prin
acesta vom înţelege în acest caz (şi numai în acest caz, pentru alte probleme vom stabilii alte
criterii) suma mutărilor necesare dacă persupunem că la un moment dat avem un singur număr
pe suprafaţa de joc, pentru ca acesta să ajungă în poziţia lui finală. Astfel o cifră aflată într-o
poziţie adiacentă poziţiei finale va fi la distanta 1, iar o cifră aflată lângă poziţia finală dar pe
diagonală va avea distanţa=2 (1 verticală + 1 orizontală). Fie de exemplu starea următoare:

Pentru acaestă stare costul proiectat est de 7 (2,5,8 la distaţa 1; 3,6 la distanţa 2
=> 3x1+2x2=7)

Să aplicăm această euristcă în modul următor: pornind de la starea iniţială efectuăm


producţiile posibile şi pentru stările obţinute vom calcula costurile. Vom continua
producţiile pe acea ramură care are costul de producţie minim (care promite cel mai
mult). Dacă după o nouă producţie obţinem stări cu costuri mai mari decât costurile
unuia din stările iniţiale vom reveni la starea cu costul mai mic indiferent dacă acesta este pe o
ramură mai spre rădăcină şi care la un moment dat a fost abandonat, după cum se poate observa
şi în exemplul următor unde am plecat pe prima ramură (din stânga) cu cost (4) dar pentru că am
obţinut o stare cu cost mai mare (5) am revenit pe cealaltă ramură cu cost (4)(dreapta).
Exerciţiu: Să se traseze
graful stărilor folosind
căutarea euristică pentru
următoarele stări iniţiale:

1.

2.

 
 
 
 
 
 
Laborator 5 Arbori SI SAU
 

O altă metodă de reprezentare a cunoşterii este ce a a arborilor (grafurilor) Şi/Sau . Nodurile acestor
grafuri reprezinta faptele, baza de cunostinte iar ramurile (legaturile) intre diferite fapte legate prin
afirmatii de tip Si Sau se bazează pe regulile de productie.

Moduri de raţionament pentru motoarele de inferenţe

Motorul de inferenţe poate folosi următoarele trei moduri de raţionament:

         Raţionament deductiv (înainte-forward chaining), în care se pleacă de la fapte şi se caută un


anumit scop sau obiectiv. Se spune că raţionamentul deductiv este dirijat de fapte.

         Raţionament inductiv (înapoi-backward chaining), în care se porneşte de la un scop care este
descompus succesiv în subscopuri până se ajunge la dovedirea lui. Acest tip de raţionament este
dirijat de scop.

         Raţionament mixt. În acest caz se fixează un scop, se determină toate faptele deductibile, se
precizează faptele interogabile, apoi se aplică raţionamentul inductiv.

Fiecare din modurile de raţionament enumerate mai sus are avantaje şi dezavantaje, eficienţa
aplicării lui depinzând mult de contextul problemei.

5.2.1. Raţionamentul deductiv


Motorul de inferenţe porneşte de la faptele existente în baza de fapte şi caută să dovedească un
anumit scop.
 

Vom ilustra acest mod de raţionament pentru următoarea problemă [13]:

Se consideră setul de 9 reguli R1…R9 de mai jos, se dă baza de fapte formată din faptele B şi C şi se
cere să se demonstreze scopul H.

R1: Dacă B şi D şi E atunci F

R2: Dacă D şi G atunci A

R3: Dacă C şi F atunci A

R4: Dacă B atunci X

R5: Dacă D atunci E

R6: Dacă A şi X atunci H

R7: Dacă C atunci D

R8: Dacă X şi C atunci A

R9: Dacă X şi B atunci D

Figura 5.2 ilustrează funcţionarea motorului de inferenţe în cazul aplicării primei reguli din listă, iar
figura 5.3 cazul în care se aplică regula cea mai complexă.

 
Fig. 5.2. Raţionament deductiv cu executarea primei reguli aplicabile.

Sursa:[13], pag. 104

Fig. 5.3. Raţionament deductiv cu executarea cele mai complexe

reguli aplicabile (3 inferenţe). Sursa:[13], pag. 104

Avantaje ale raţionamentului deductiv:

 Se pot genera toate soluţiile posibile;


 La fiecare ciclu al motorului de inferenţe, baza de fapte se îmbogăţeşte.

Dezavantaje:

 Iniţial baza de fapte trebuie să conţină suficiente fapte;


 Se declanşează toate regulile aplicabile, chiar dacă unele nu prezintă interes;
 Dacă numărul de fapte şi de reguli este foarte mare şi scopul nu poate fi atins, se poate ajunge la o
explozie combinaţională a numărului de cicluri;
 În timpul inferenţelor nu există interactivitate, încât se poate ajunge la eşec cu numai o faptă
necunoscută care ar putea fi furnizată de utilizator.

În legătură cu ultimul dezavantaj, se poate face o clasificare a faptelor procesate de un sistem expert
în fapte cunoscute şi fapte necunoscute. La rândul lor faptele necunoscute pot fi deductibile prin
aplicarea unor reguli sau pot fi interogabile (într-un proces de comunicare interactivă între sistemul
expert şi utilizator).

5.2.2 Raţionamentul inductiv


În cazul raţionamentului inductiv, motorul de inferenţe pleacă de la un scop (problema de rezolvat, o
soluţie ipotetică etc.) care este descompus succesiv în sub-scopuri şi sub-sub-scopuri, până se ajunge la
primitive dovedite sau interogabile. Se pleacă de la o regulă ce are în partea dreaptă (concluzia) scopul
urmărit şi premisele acestei concluzii devin sub-scopuri ce urmează a fi dovedite în aceeaşi manieră.
Algoritmul acestui mod de raţionament este următorul [3]:

Vom ilustra acest mod de raţionament pe aceeaşi problemă enunţată în cazul raţionamentului deductiv.

Întrucât regula R6 are în partea de concluzii scopul urmărit H, se începe cu ea iar premisele ei devin sub-
scopuri. Urmează deci să se arate că X şi A sunt adevărate. Procesul continuă prin descompunerea fiecărui
sub-scop în sub-sub-scopuri, până se dovedesc toate faptele necesare (fig. 5.4).

Fig. 5.4. Raţionamentul inductiv. Sursa: [13], pag. 108


 

Observaţii:

 În etapa de rezolvare a conflictelor se alege regula cu numărul de ordine cel mai mic;
 Arborele este parcurs în profunzime şi de la stânga la dreapta;
 În caz de eşec (G) se revine în arbore la următoarea regulă posibil de declanşat (R3).

Avantaje:

 Spaţiu de memorie mic, datorită dimensiunii reduse a arborilor de căutare;


 Timp de găsire a soluţiilor mai scurt, datorită faptului că se face căutare doar pentru sub-scopurile
necesare.

Principalul dezavantaj îl constituie pericolul de ciclare.

Exercitii:

1.                                          Se consideră următoarea situaţie:

- baza de fapte iniţială conţine faptele iniţiale X şi Y

- scopul propus este faptul S

- baza de reguli conţine regulile:

R1 dacă X şi Y atunci A

R2 dacă A atunci B

R3 dacă B atunci C

R4 dacă A şi X şi Y atunci D

R5 dacă D atunci G

R6 dacă A şi D atunci E

R7 dacă E atunci F

R8 dacă A şi D şi E atunci S

Folosind raţionamentul deductiv şi luând în considerare prima regulă aplicabilă, să se traseze


un arbore al găsirii scopului (S).

 
2.                                          Să se exprime sub formă de reguli de producţie următorul arbore:

 
Laborator 6 Generatorul de SE EISEWin
Generatorul EISEWin face parte din grupa generatoarelor de tip arborescent care în noduri
permit bifurcarea în două în funcţie de răspunsul afirmativ sau negativ la un anumit nivel şi
utilizat la generarea sitemelor descriptive. Baza de cunoştinţe este stabilită de cognitician. Un
scenariu este format dintr-o înşiruire de întrebări şi răspunsuri, răspunsurile la rândul lor pot fi
noi întrebări astfel asigurându-se ramificarea pe subnivele. Utilizatorul va avea de ales între două
variante de răspunsuri Da Nu

Solutiile pot apărea pe diferite


nivele în funcţie de răspunsurile
date.

Sarcina cogniticianului este de a


stabili ordinea întrebărilor, locul
acestora în arbore şi imlpicaţiile
consecutive (ce întrebări noi
ridică un răspuns afirmativ sau
negativ la o întrebare).

Este posibil ca soluţia dată la un


moment dat să nu fie ceva
concludent, concret.

Un asemenea sistem se poate


utiliza cul cel mai mare succes în
domenii descriptive.

Dezavantajele constau în faptul


că aplicaţii cu soluţii date prin
implicarea a mai multor
parametrii, secnariile se dezvoltă
foarte greu dacă nu chiar
imposibil, pe de altă parte nu se
pot folosi variabile de lucru deci
nu se pot face calcule.

De aici rezultă că acest sistem poate fi folosit doar acolo unde este valabilă cunoaşterea
descriptivă, făcându-se o evaluare calitativă.

Programul EISEWIN
Lansarea în execuţie a programului se face de pe desktop (dacă este făcută legătura)
sau din Windows Explorer din directorul corespunzător dând dublu-click pe icoana
programului.

Progarmul se prezintă întro fereastra cu două mape corespunzătoare celor două moduri
de lucru şi anume Run EISEWin Script pentru rularea aplicaţiilor create; Create EISEWin
Script pentru a crea o aplicaţie (script).

Să vedem în continuare prima mapă, cea de utilizare a scripturilor. Suprafaţa de lucru a acestuia
conţine:- butoane pentu încărcarea scripturilor salvate pe disc, -lansarea scriptului încărcat,
-ieşire din program, -ajutor, -iar pe suprafaţa client unde apar întrebările respectiv soluţia avem
două butoane Yes şi No corespunzătoare răspunsurilor posibile la un monet dat.

 
 

 
Încărcare script Rulare Script Ieşire program Ajutor
 

Pentru a încărca un script dăm click pe butonul corespunzător. Va apărea o fereastră pentru
selectarea discului, directorului şi fişierului. Ne selectăm fişierul cu scriptul dorit şi dăm dublu
click pe acesta sau după selectare facem click pe butonul OK

 
 

Fig. Fereastra de alegere şi încarcare a unui script EISEWin

După încărcarea unui script trecem la execuţia (rularea acestuia) facând click pe butonul de
rulare.

Pe suprafaţă se pot vedea întrebarea,


butoanele pentru răspuns, respectiv dacă s-
a ajuns la o soluţie este afişată soluţia.

Se poate observa că dacă s-a ajuns la


soluţie butoanele Yes No sunt inactive.

 
 
Crearea unui script
Crearea unui script trebuie să înceapă cu proiectarea acestuia pe hârtie. Trebuiesc stabilite
punctual soluţiile problemei date; întrebările care conduc la o anumită soluţie, structura arborelui
de întrebări şi răspunsuri. Este bine ca sistemul să aibă răspunsuri şi pentru situaţia în care
utilizatorul nu ştie ce vrea, char dacă acest răspuns este acela de ai indica să stabileasca mai exact
propriile criterii (să ştie ce vrea).

Să proiectăm un script în care să sfătuim un utilizator ce imprimantă săşi achiziţioneze. Pentru


acesta stabilim prima dată soluţiile posibile şi criteriile care vor conduce la o anumită alegere.
Avem trei tipuri de imprimante: -cu ace (costul de intreţinere redus, calitate rea, pret mediu)
recomandat pentru contabilitate

-cu jet (caliate bună, preţ mic, costuri relativ mari) recomandat pentru birouri mici sau pentru
casa cu numar redus de listări

-cu laser (calitate foarte bună, costuri mici, pret foarte mare) recomandat birourilor, firmelor mari
unde calitatea documentelor este importană.

În primă fază vom crea un script numai pentru utilizările recomandate urmând ca dumneavoatra
să stabiliţi şi să creaţi un nou script care să ţină cont şi de proprietăţile din paranteze.

Deschidem deci mapa de creare a scripturilor Create EISEWin Script. Suprafaţa de lucru se
va prezenta astfel:

1 2 3
4 5 6 7

 
9
Aici găsim următoarele:

1. Buton pentru încărcarea unui script spre vizualizare/modificare


2. Buton pentru salvarea scriptului creat modificat
3. Buton pentru inserarea unui nou arbore DA NU
4. Buton pentru ştergerea unui arbore
5. Buton de ieşire EISEWin
6. Buton pentru apel ajutor
7. Butoane Yes No pentru a trece pe ramura de Yes sau No a ramurii curente pentru
introducerea textului pe acea ramură.
8. Question/Answer text câmp pentru introducerea întrebării sau soluţiei
9. Zona de arbore pentru a vizualiza structura arborescentă, utilă pentru consultare, navigare
alegerea ramurii pe care vrem să-l modificăm

Introducerea textelor se face in felul următor: selectăm în 9 poziţia corespunzătoare pe ramură


apoi introducem textul nostru în 8. Pentru a deschide o nouă ramură dăm clic pe butonul 3, iar
pentru a suprima o ramură se dă clic pe 4. Se complecează cu textele corespunzătoare
raspunsurilor Da sau Nu ramurile aferente. In final structura arborescentă va arăta astfel:

După introducerea textelor salvăm scriptul dând clic pe butonul 2 şi introducând un un nume în
fereastra care apare (atenţie format din maxim 8 litere, limitare a programului EISEWin) . Noi
am ales numele de printer.
Exerciţiu: refaceţi acest script astfel încât la rulare acesta să ţină cont şi de celelalte caracteristici
ale diferitelor tipuri de imprimante. Pentru ajutor redăm în ceea ce urmează o posibilă clasificare
pe criterii (ideea este de a stabilii câte un criteriu principal pentru care dupa aceea verificăm şi
celelalte criterii).
Laborator 7 Generatorul de SE EXSYS
Generatorul de SE EXSYS este o aplicaţie care utilizează regulie de producţie ca metodă de
reprezentare a cunoaşterii şi de luare de decizii. Acest program permite crearea SE de
complexitate mică şi medie. Pune la dispoziţia utilizatorilor o interfaţă sugestivă pentru alegerea
soluţiilor, variabilelor, calificatorilor(constante de text care reprezintă “valori”, atribute descrieri
ale unor subiecte) introducerea de formule etc.

Lansarea în execuţie se face cu clic pe icoana EXSYS de pe desktop sau din Windows Explorer
din mapa EXSYS\PRO\editdemo.exe. După încărcarea programuluiputem alege ca din meniul
File să deschidem o baza de cunoştinţe existente cu comanda Open după care introducem numele
fişierului, sau să creem o nouă bază de cunoştinţe.

Crearea unei baze de cunoştinţe


Din meniu File se dă comanda New. În fereastra următoare se introduce un nume generic pentru
baza de cunoştinţe, acesta va fi de fapt numele fişierului cu care se vor salva datele pe disk
(numele poate fi de cel mult 8 caractere, fără spaţii sau semne de punctaţie !!!).

Ca şi exemplu vom relua problema alegerii unei imprimante având în vedere că la laboratorul
precedent am stabilit deja care sunt criteriile de alegere a unui anumit tip de imprimantă
respectiv care sunt regulile pe baza cărora vom decide. Să botezăm deci proiectul nostru
printer.

După introducerea si validarea numelui proiectului apare fereastra de parametrii care conţine
date despre autor, subiect, metoda de lucru cu factorul de certitudine(Confidence mode),
modalitatea de parcurgere a bazei de cunoştinţe(Derivation mode), modul de vizualizare a
regulilor pe parcursul execuţiei(Rule Display Mode), modul de testare a regulilor pentru a evita
dublurile respectiv regulile fără sens(Chek new rules for consistency), textul de întâmpinare şi
de final(Starting / Ending text), limita valorii factorului de certitudine de la care să se afiseze
rezulatele(Display Threshodl). Atenţie !!! Odata stabilite criteriile Confidence mode şi
implicaţiile acestuia (Calculation mode) nu mai putem reveni asupra lor dacă s-au introdus deja
soluţii, reguli, sau variabile.
Fereastra cu parametri iniţiali se va complecta după cum urmează:

Butoanele Starting text şi Ending text vor afişa


câte o fereastră în care vom introduce
mesajele de întâmpinare respectiv de final de
introducere a raspunsurilor la întrebările SE.

După stabilirea parametrilor urmează stabilirea


soluţiilor. Acest lucru va fi solicitat imediat după
acceptarea parametrilor prin apariţia unei ferestre de introducere a soluţiilor:

Transmiterea unei soluţii în baza de


cunoştionţe se face prin click pe butonul OK.
După epuizarea soluţiilor, pentru a termina cu
fereastra Choice dăm click pe Cancel. Va
apărea o nouă fereastră cu toate soluţiile. Din această fereastră, după ce selectăm o soluţie putem
să-l modificăm (Edit), ştergem (Delete), de asemenea putem adăuga noi soluţii(New Ch.).

Pe parcurs avem posibilitatea de a afişa aceasta fereastră din meniul Rule -> Choice List.

Meniul rule (poate cel mai important meniu al programului)

Adăugare regulă

Editare regulă

Ştergere regulă

Mutare regulă (atunci când contează ordinea)

Acces la Lista calificatorilor

Acces la lista devariabile

Acces la lista de soluţii


 

Introducerea calificatorilor
Calificatorii sunt variabile text prin care reprezentăm datele de intrare ale cunoştinţelor, sunt
valori care descriu premisele pe baza cărora SE va face alegerea soluţiei. De exemplu pentru
problema cu imprimanta un asemenea calificator este Preţul de achiziţie care poate lua trei
valori mic, mediu şi mare.

Introducerea calificatorilor începe cu deschiderea meniului Rule->Qualifier list. Aceasta


comandă va afişa o fereastra de introducere/editare a calificatorilor:

 
 

Câmpurile se complectează după cum urmeaza:

Name -> un nume generic pentru calificator

Qualifier -> întrebarea care va apărea pe ecran în timpul rulării programului

Value -> valoarea curentă

După introducerea unei valori, pentru ataşarea acestuia la lista de valori posibile ale
calificatorului, se apasă butonul (click) Add.

Dacă dorim să avem o valoare implicită (mai des utilizată) putem include această valoare la
Default Value. De asemneea putem limita numărul de răspunsuri (posibilităţi), care se pot
selecta la o anumită întrebare, prin selectarea opţiunii Limit input values to: urmat de un număr.

Pentru baza de cunoştinţe vom mai introduce doi calificatori cu valorile corespunzătoare după
cum urmează:
 

Fig. REGULUI

 După stabilirea soluţiilor, variabilelor şi calificatorilor urmează implementarea cunoştinţelor sub


forma regulilor de producţie. Pentru acesta deschidem fereastra de introducere a regulilor din
Rule->Add rule sau Alt+a.

 
Introducerea regulilor:
1.Partea IF implică în primul rând selectarea butonului radio de opţiune unică IF Part(1)

2.Click pe butonul Qualifier-se deschide o fereastră cu calificatori şi valorile lor

3. se alege calificatorul şi valoarea dorită după care se dă clic pe OK(în fereastra de regulă va
apărea la partea de IF calificatorul şi valoarea ca premisă)

4. dacă se doreşte introducerea a încă o valoare la parte de IF cu separatorul AND sau OR


selectăm opţiunile AND sau OR de la (5) şi Insert(4) şi reluăm de la punctul 2.

5. după introducerea premiselor urmează concluziile adică partea THEN (2) deci î-l selectăm

6. dăm clic pe butonul Choice, va apărea o ferastra pentru alegerea soluţiei


7. alegem soluţia şi î-i atribuim o valoare, o “încredere”. Evident soluţia cea mai optimă pentru
premisa dată în partea de IF va primi punctajul maxim. Pe baza acestor valori SE va stabili
“clasamentul” soluţiilor făcând o medie a punctajelor soluţiilor individuale conform
răspunsurilor date de utilizator la întrebările generate de regului.

8. pentru a adăuga noi soluţii la partea de THEN, separate cu AND sau OR, procedăm analog ca
la partea de IF ,dând rând pe rând clic pe butonul Choice cu Insert şi AND selectate.

După terminarea intoducerii soluţiilor şi punctajelor aferente unei premise, vom obţine ceva
asemănător cu fig. REGULI

Exerciţiu: Complectaţi baza de cunoştinţe cu celelalte regului necesare.

Se poate vedea că prin introducerea valorii de punctaj,


(încredere) pentru o anumită soluţie se reduce semnificativ
numărul de reguli. Vom avea în total 9 reguli pentru cele nouă
valori ale calificatorilor, faţă de 27 câte am avut la descrierea
clasică a regulilor de producţie (vezi ex.lab. 3). Celălalt avantaj
al folosirii punctajului soluţiilor este că va permite alegeri
ilogice, caz în care rezultatul afişat va reflecta totuşi un clasament al opţiunilor.

După stabilirea tuturor regulilor şi salvarea acestora în baza de cunoştinţe putem trece la
utilizarea programului. Pentru a lansa în execuţie aplicaţia noastră deschidem meniul Options şi
alegem comanda Run

După fereastra de întâmpinare apar pe rând ferestrele în care alegem valorile pentru calificatori.
Numărul de ferestre este egal cu numărul de calificatori incluşi în regului ( la noi 3)
Selectăm cu mouse-ul valoarea (valorile) corespunzătoare şi apăsăm OK pentru a merge mai
departe. După epuizarea calificatorilor SE va genera răspunsul sub forma unei liste a soluţiilor cu
punctajele câştigate. După cum se poate vedea două imprimante au obţinut acelaşi punctaj, ca
urmare a alegerii unor valori “ilogice”.
Laborator 8 Utilizarea variabilelor în EXSYS
În cursul acestui laborator vom urmării printr-un exemplu concret cum se pot utiliza variabilele
numerice în programul EXSYS. Având în vedere utilizarea cu precădere în domeniul economic
al SE este inutil să mai vorbim despre necesitatea ca acestea să poată lucra cu varibile numerice,
în fond deciziile în economie se iau în urma comparării unor valori numerice.

Să vedem problema: Scrieţi un program SE care să recomande un anumit instrument de


investiţie financiară dintre următoarele: valută, depozit bancar, acţiuni. Evident va trebuii să
facem o comparaţie a căştigurilor în diferitele investiţii. Date de intrare vom avea dobânda
bancară anuală, media variaţiei acţiunilor pe o lună, cursul valutar la începutul respectiv la
sfărşitul lunii pentru două valute.

Să facem un pic de matematică. Pentru a determina investiţia optimă vom compara procentele de
câştig lunare din cele trei moduri de investiţie. Vom avea formulele:

unde DBL-Dobânda Bancară Lunară, DBA-Dobânda Bancară Anuală,

CV – creştere în procente a cursului valutar , CVS-Curs Valutar la


sfârşitul perioadei, CVI-Curs Valutar la începutul perioadei. (Pentru acţiuni consoderăm că
cunoaştem procentul de variaţie.)

Evident vom recomanda acea investiţie care prezintă procentaj cel mai mare la câştig.

După cum se poate vedera avem nevoie de câteva variabie numerice pentru a rezolva această
problemă.

Vom începe o nouă sesiune de lucru cu programul EXSYS. Vom boteza proiectul cu numele
invest. Exemplul descris în suportul de laborator face evaluarea doar pentru situaţiile a două
variabile, dobânda bancară şi cursul valutar, cursanţilor revenind sarcina de a completa proiectul
şi cu a treia variantă pentru investiţii în acţiuni.

După parcurgerea paşilor deja cunoscuţi, adică stabilirea proprietăţilor iniţiale (aici vom alege
Confidence mode Yes/No), respectiv a soluţiilor (Depozit bancar, cumpara valută, ) urmează
să definim variabilele. Vom folosi ca şi denumiri aceleaşi notaţii ca la descrierea teoretică.

Pentru a adăuga variabile selectăm din meniul Rule -> Variable List. În fereastra care apare se
face clic pe butonul New Variable.

Va aparea o nouă fereastra în care vom stabili pe rând numele variabilei.NAME (numele nu
poate conţine spaţii sau semne de punctuaţie) întrebarea care va fi afişată pe ecran când se va
cere valoarea pentru variabila respectivă (Prompt), de asemenea se pot stabili o valoare
iniţială(INITIALIZE), limitele inferioară(LOWER LIMIT) şi superioară(UPPER LIMIT).

 
 
 
 
 
 
 
 
 
 

Vom complecta cu datele necesare câmpurile corespunzătoare astfel încât în final să aveţi
declarate variabilele necesare. OBSERVAŢIE trebuie să declarăm în mod identic şi variabilele
care nu vor fi introduse de utilizator ci vor fi calculate pe parcurs.
Urmează să efectuăm calculele descrise în partea de introducere. Generatorul EXSYS foloseşte
motorul de declaraţie a regulilor pentru a efectua calcule cu variabile în anumite formule. Regula
de producţie pentru formule de calcul are în partea de IF declarată lista variabilelor iniţiale iar în
parte de THEN formule de calcul pentru variabilele derivate.

IF x THEN y=f(x)

O asemenea scriere se interpretează astfel: Dacă s-a introdus valoare pentru variabila x atunci cu
valoarea variabilei x fă calculul pentru y=f(x).

Urmează deci regulile. Prima regulă o vom folosi pentru testarea variabilelor, dacă au fost
introduse valori pentru ele. Vom selecta butonul Var./Math care va avea ca efect apariţia
ferestrei Add Formula, unde
vom putea introduce formule.
În această fereastră dacă dăm
clic pe butonul Display
Variables va apărea fereastra
cu lista variabilelor unde cu
dublu clic transferăm automat
variabilele în fereastra de
formule. Nu avem nevoie de
formule ci doar de variabile
deci vom introduce în
fereastra de formule doar
variabila pe care vrem so
testăm. Pentru a trece la
fereastra cu reguli după
selectarea variabilei dăm clic
pe butonul OK. În final partea de IF va conţine cele trei variabile iniţiale.

Motorul de inferenţe va testa dacă sau introdus valori pentru cele trei variabile. Ordinea apariţiei
variabilelor în partea de IF va determina ordinea în care la rularea programului acestea vor fi
solicitate utilizatorului.

Urmează ca în partea de THEN să calculăm dobânda lunară şi creşterea cursului valutar.


Selectăm deci THEN şi în loc de Choice vom da clic din nou pe Var./Math şi vom introduce
următoarele două formule:

 
 

Puteţi introduce formulele direct de la tastatură, în


acest caz să fiţi atenţi la paranteze şi la scrierea corectă a numelui variabilelor, sau puteţi da clic
pe Display Variables şi să selectaţi variabilele dorite introducând de la tastatură doar operatorii
matematici (recomandat).

După parcurgerea acestor paşi fereastra cu regulă ar trebuii să arate astfel:

Urmează stabilirea regulilor de producţie care vor da soluţia


finală. Vom folosi o singură regulă după cum urmează.
 

Am putut renunţa la o a doua regulă prin utilizarea părţii ELSE (Altfel) având în vedere că
aveam doar două posibilităţi.

Exerciţiu.

1. Refaceţi programul astfel încât să conţină şi a treia variabilă pentru investiţia în acţiuni. Câte
reguli va trebuii să scriem?

2. Scrieţi un proiect care să stabilească dacă un student are şanse de promovare respectiv de
bursă pe baza a trei medii la trei materii. Nota de promovare fiind 5 iar cea de bursă 8.50

Laborator 9 Formule individualizate pentru


ierarhizarea soluţiilor în EXSYS
Pe lângă metodele clasice de acordare a punctajelor diferitelor soluţii, respectiv metodele de
determinare a punctajului final (Average, Dependent, Independnt) EXSYS pune la dispoziţia
utilizatorului şi posibilitatea definirii formulelor proprii. Pentru acesta în fereastra de opţiuni va
trebuii să selectăm Costum formula În acest caz soluţiile vor fi considerate ca variabile ale căror
valoare se va calcula dupa anumite formule, mai corect spus o soluţie va primi un punctaj
calculat cu o formulă individuală.

Să refacem exemplul cu investiţia financiară dar atribuind soliţiilor punctajul corespunzător cu


procentul de căştig.
În continuare efectuaţi paşii de la laboratorul 7 până la introducerea regulilor, adică, declaraţi
soluţiile, declaraţi variabilele. Nu vom avea nevoie de variabilele CV şi DBL, formulele cu care
le calculăm vor fi de fapt formulele pentru încredere ale soluţiilor. Ramura de IF va arăta exact
ca la cazul precedent, adică va testa dacă sau introdus valori.

Ramura THEN în schimb va trebuii să asigure atribuirea de valori de încredere soluţiilor egale cu
procentele diferitelor investiţii.

Pentru că în fereastra de opţiuni am stabilit că soluţia se va calcula cu o formulă individualizată


după apăsarea butonului Choice vom primi o fereastră cu soluţiile disponibile care permite
introducerea de formule, şi selectarea unor operatori logici (vezi fig. urm.). Noi vom folosi
operatorul = pentru a atribuii soluţiei punctajul calculat cu o formulă. Ceilalţi operatori logici
sunt utili atunci când o anumită soluţie este refolosită într-o componentă IF a unei alte regului,
pentru a testa îndeplinirea anumitei condiţii de acesta.

In această fereastră se procedează astfel:- se selectează soluţia dorită,

-se selectează operatorul de atribuire (sau unul din operatorii logici)

-se introduce formula , din pacate nu putem apela la lista de variablie pentru a ne ajuta munca. În
cazul în care avem formule mari greoae este de preferat ca să se introducă o noă variabilă care să
păstreze valoarea formulei şi cu o regulă în plus să se atribuie soluţiei valoarea din acea variabilă
suplimentară (în loc să scriem soluţia = a+b scriem c=a+b, soluţia=c). Complectăm câmpurile
conform figurilor ce urmează (atenţie la PARANTEZE !!!).
Regula noastră (unica !) va arăta astfel:
Iată şi un exemplu de terminal:

Exerciţiul 1: Complectaţi problema precedentă cu o a treia investiţie în fonduri de asigurări.

 
Laborator 10. Combinarea variabilelor
numerice şi a calificatorilor.
Deşi prin utilizarea variabilelor se reduce drastic numarul de reguli necesare rezolvarii unor
probleme, de multe ori însă acest lucru se face prin renunţarea la anumite criterii care nu pot fi
cuantificaţi numeric. În exemplul cu investiţii de exemplu, am eliminat criteriul periodaei de
investiţii presupunând că investiţia se face pe o perioadă fixă dar celalalt crirteriu riscul, deşi
foarte important, nu a fost deloc luat în considerare.

În asemena situaţii putem apela la anumite artificii matematice prin ataşarea la criteriul
necuantificabil numeric a unei variabile numerice care reflecta importanţa acelui criteriu iar prin
inlcuderea acelei valori în formula de calcul al punctajului soluţieio să putem avea un control în
ceea ce priveşte şansele de reuşită a anumitor soluţii soluţii.

În cazul problemei găsirii celei mai bune metode de investiţii factorul risc va fi luat în
considerare prin ataşarea acestui calificator a unei variabile. Valoarea variabileli va fi inclus în
formula de calcul al puntajului aferent fiecărei metode de investiţii astfel încât prin acceptarea
riscului de către utilizator, punctajul obţinut de fiecare metoda de investiţie să fie cel calculat în
laboratorul precedent, dar daca utilizatorul nu este dispus să asume un risc prin alegerea
corespunzătoare a valorii variabilei risc, şansele de succes pentru metodele care prezintă risc
ridicat ) valută şi acţiuni să fie redus considerabil.

Puţină matematică: orice număr înmulţit cu 1 rămâne neschimbat

1xX=X

Orice număr înmulţit cu 0 este 0

Orice număr înmulţit cu un număr subunitar va rezulta un număr mai mic decât cel original.

Ne vom folosi de aceste proprietăţi ale inmulţirii astfel:

Formulelor de calcul pentru profit la valută şi acţiuni din laboratorul precedent li se adaugă prin
înmulţire variabila risc astfel:

Soluţa valută = [RISC]*([CVF]-[CVI])*100/[CVI] (identic şi la acţiuni)

-                     daca utilizatorul este dispus să-şi asume un risc atunci valoarea variabileli risc
va fi egal cu 1, deci rezultatul forumlei va fi neschimbat

-                     daca utilizatorul nu este dispus sa-şi asume nici un risc atunce atribuim variabilei
[RISC] valoarea 0 astfel rezultatul înmulţirii va fi 0 deci şansele ca această soluţie să
fie câştigătoare sunt 0.
-                     Dacă utilizatorul este dispus să accepte un risc moderat, atnci valoarea variabilei
[RISC] o vom stabili la 0,33 astfel punctele obţinute de soluţiile valută şi acţiuni vor
fi 3 ori mai mici. Putem spune şi astfel: profitul în valută şi/sau acţiuni trebuie să fie
de 3 ori mai mare decât profitul din bancă ca să merite să riscăm.

Să vedem aplicţia. Procedăm la fel ca la laboratorul 9 doar că la soluţii adăugăm şi


acţiuni.

La variabile vom declara urmatoarele:

-   DBA – dobânda bancara anuală

-   CVI, CVF – valoarea iniţială respectiv finală a cursului valutar

-   CAI, CAF – valoarea iniţială respectiv finală a acţiunilor

-   RISC – variabila de control al rezutatului iniţializat cu 0

Avem însă şi un calificator nou şi anume cel în care i se cere utilizatorului sa se exprime
asupra riscului asumat.

Regulile de producţie sunt următoarele:

În primă fază trebuie să stabilim valoarea variabilei RISC deci vom avea 3 reguli pentru
cele 3 valori ale calificatorului risc. De fapt numai 2 pentru ca prin iniţializarea variabilei RISC
cu 0 am presupus că suntem în situaţia în care utilizatorul nu-şi asumă nici un risc, deci pentru
valoarea „fără riscuri” nu trebuie sa scriem o regulă.

Cele două reguli de control al riscului sunt:


 

Urmează ultima regulă, cea în care cerem introducerea valorilor pentru dobândă respectiv cursuri
valutare şi acţiuni şi acordăm punctajele corespunzătoare soluţiilor dar (!!!) formula de la
laboratorul precedent este inmulţit cu variabila risc.

Exerciţiu . realizaţi acest script EXSYS şi verificaţi rezultatele pentru diferite valori.

Laborator 11 Teste de personalitate


O materializare clasică a sistemelor expert o reprezintă testele de peronalitate. Să ne gândim
bine, ce este un test de personalitate ? Un test de personalitate nu este altceva decât un set de
întrebări şi răspunsuri predefinite, fiecare răspuns fiind punctat într-un anumit mod. La final se
face un scor general şi în funcţie de rezultatul general persoana este încadrata într-un anumit
grup cu anumite caracteristici.

Există două abordări în ceea ce priveşte calculul punctajului testelor de personalitate:

1. de fiecare data când un răspuns corespunde unei anumite categorii (soluţii),


soluţia respectivă este incrementată cu o valoare, de obicei 1. La final, evident
soluţia care a fost cel mai des incrementat va avea cele mai multe puncte şi va
„câştiga”
2. fiecare răspuns la o întrebare este punctat cu o anumită valoare. Jucătorului i se
calculează un punctaj general prin însumarea punctelor individuale acordate pe
raspunsurile individuale la fiecare îintrebare. Categoriile (soluţiile) sunt pe
domenii de valori şi în funcţie de punctajul final obţinut persona este încadrată
într-o anumită categorie. (între m şi n puncte categoria A, între n şi o puncte
categoria B ş.a.m.d.)

Să vedem cum sunt realizate practic în aplicaţia EXSYS testele din primul mod de
abordare.

Presupunem un teste de personalitate generic, fără întrebări concrete de forma:

Care este parerea voastră despre situaţia X ?

a)      răspuns a (corespunzător soluţiei A)

b)      răspuns b (corespunzător soluţiei B)

c)      răspuns c (corespunzător soluţiei C)

Care este parerea voastră despre situaţia Y ?

d)      răspuns a (corespunzător soluţiei A)

e)      răspuns b (corespunzător soluţiei B)

f)        răspuns c (corespunzător soluţiei C)

……………………………………………………..

Rezolvarea problemei în EXSYS însemnă parcurgerea paşilor următori:

Pasul 1 se alege metoda costum formula din fereastra de opţiuni

Pasul 2 se introduc soluţiile testului de personalitate ca şi soluţii ale aplicaţiei


Pasul 3 pentru fiecare soluţie se creaza o variabilă asociată. Avem nevoie de aceste variabile ca
sa calculăm rezultatele parţiale (punctele) obţinute pe parcursul testului. La definirea acestor
variabile ne vom asigura să le iniţializăm cu 0.

Pasul 4 se introduc întrebările şi răspunsurile testului ca şi calificatori şi valori pt calificatori.


Întrebarea este calificatorul iar răspunsurile sunt valorile posible. Observaţie !!! Numărul de
răspunsuri la fiecare întrebare trebuie să fie egal cu numărul de soluţii astfel încât fiecare soluţie
să fie reprezentat pt fiecare întrebare.

La sfârşit vom avea un set de întrebări, fiecare întrebare având totatâtea răspunsuri câte soluţii,
fiecărei soluţii îi corespunde un răspuns)
Pasul 5 reguli de producţie. Avem un set de reguli de producţie în care parcurgem întrebările
testului de personalitate. Specific acestor reguli este faptul că la partea de THEN, în loc să avem
o soluţie vom avea o incrementare a valorii variabilei asociate unei soluţii de forma
VAR_X=VAR_X+1 (interpretare: valoarea nouă a variabilei VAR_X este egal cu valoarea
veche/precedentă plus 1. Dacă VAR_X iniţial era 2, vom avea VAR_X=2+1 adică 3). Prin
această metodă la parcurgerea tuturor întrebărilor testului la final vom avea calculat în variabilele
asociate soluţiilor punctele obţinute de fiecare soluţie.

Practic lucrăm ca şi la exemplul de la laboratorul 7 (imprimanta) luând în considerare pentru


fiecare calificator (întrebare) fiecare valoare posibilă (răspuns) şi incrementând variabila
asociată.

Pasul 6 ultima regulă de producţie în care asociem punctele obţinute şi stocate în variabilelel
asociate cu soluţiile propriu zise astfel : soluţia X primeşte VAR_X puncte. La partea de IF a
acestei reguli trebuie să fin însă atenţi să introducem o condiţie care sa fie tot timpul adevarat
astfel ca atribuirea sa se realizeze. Putem foarte uşor să folosim o condişie de forma Daca
VAR_X>-1, condiţie care va fi tot timpul adevărat daca ţinem cont că variabilele asociate le-am
iniţializat cu 0.
 

Exerciţiu: Căutaţi un test de personalitate care să se încadreze în acest tip de acordare a


punctelor şi realizaţi aplicaţia în EXSYS (reviste, google,….)

A doua categorie de teste de personalitate este acela în care la fiecare întrebare se acordă un
anumit punctaj iar punctajul final este încadrat într-un anumit domeniu de valori.

Pentru a rezolva acest tip de problemă cu ajutorul aplicaţiei EXSYS vom parcurge paşii
următori:

Pasul 1 în fereastra de opţiuni se alege modalitatea de acordare a încrederii Yes/No

Pasul 2 Se introduc întrebările şi răspunsurile testului, ca şi în cazul precedent, ca şi


calificatori şi valori . Observaţie !!! Numărul de răspunsuri la fiecare întrebare NU trebuie să fie
egal cu numărul de soluţii pentru că nu se acordă puncte soluţiilor ci se calculează un punctaj
general.

Pasul 3 Definim o variabilă PUNCTAJ în care vom aduna punctele obţinute la fiecare
întrebare. Şi în cazul acestei variabile este valabilă formula recurentă cu observaţia că nu e
obligatoriu ca incrementarea să se faca cu 1: PUNCTAJ=PUNCTAJ + p unde p=puncte obţinute
la întrebarea curentă.
 

Pasul 4 Se crează regulile de producţie în care în funcie de răspunsul ales se recalculează


valoarea variabilei PUNCTAJ. Evident trebuie să cunoaştem valoarea punctelor acordate la
fiecare răspuns.

Pasul 5 în funcţie de numărul de puncte acumulate se stabileşte soluţia cu reguli de


forma:

Numărul de astfel de reguli este egal cu numărul de domenii/soluţii. Dacă de exemplu avem trei
soluţii pe domeniile sol. A între 0 – 10 pct, sol B între 11-25pct , sol C peste 26 pct vom avea
evident 3 reguli:
Daca PUNCTAJ <10 Atunci solutia A

Daca PUNCTAJ >10 si PUNCTAJ <25 atunci solutia B

Daca PUNCTAJ>25 atunci solutia C

Exercitiu: implementaţi un asemena test de personalitate ţn EXSYS

Bibliografie sursă
Ioan Ileana Sisteme expert Manualul studentului

J. Glenn Brookshear Introducere în informatică

Ioan Andone, Alexandru Ţugui Sisteme Inteligente în management contabilitate


finanţe bănci şi marketing

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