Documente Academic
Documente Profesional
Documente Cultură
LUCRARE DE DIPLOM
ARHITECTURI DE SISTEME EXPERT.
APLICAIE N MEDICIN.
Absolvent:
ndrumtor:
OANA FRUNZ
IUNIE 2004
CUPRINS
I. INTRODUCERE..... 4
1.1 Inteligena Artificial traditional4
1.2 Ce sunt Sistemele Expert?.......................................................................6
1.2.1 Prin ce difer un Sistem Expert de un program calsic? ...........7
1.2.2 Prin ce difer un Sistem Expert de un expert uman ? ..............9
1.2.3 Exemple de Sisteme Expert.10
II. CONCEPTE FUNDAMENTALE IN TEORIA SISTEMELOR EXPERT
2.1 Definiia Sistemelor Expert14
2.2 Concepte de baza ale Sistemelor Expert...15
2.3 Arhitectura unui Sistem Expert18
2.4 Sisteme multi-expert...21
2.4.1 Arhitectura Sistemului multi-expert..21
2.4.2 Comunicarea intre modulele de cunoastere.22
2.5 Criterii de evaluare24
III. ORGANIZAREA UNUI SISTEM EXPERT .25
3.1 Baza de cunotine 26
3.1.1 Metode de reprezentare a cunoaterii .........26
3.2 Motorul de inferen ..32
3.3 Agenda 33
3.4 Modul de achiziie al cunoaterii ..34
PREFA
Lucrarea de fa descrie un Sistem Expert, arhitectura acestuia, modul n care acesta face
deducii i alte probleme aferente modului de concepere, realizare a unui astfel de sistem.
Ca suport al problemelor teoretice care vor fi prezentate n aceast lucrare, se va putea gsi
i descrierea unei aplicaii practice de Sistem Expert de diagnoz i tratament numit MEDEXPERT.
Sistemul este capabil s ajute un personal medical la diagnosticarea disfuncionalitilor :
Ulcer Duodenal, Gastrit Acut, Litiaz Biliar. Odat ajuns la o anumit concluzie, pacientul
sufer de o anumit afeciune, aplicaia, este capabil s sugereze i un tratament innd cont de
starea pacientului interogat.
Utilizatorii pot fi att doctori ct i pacieni. Un utilizator doctor are posibilitatea
modificrii, tergerii, adugrii unor cunotine n baza de date pe care sitemul o posed.
Un pacient care ruleaz aplicaia o poate folosi doar pentru a-i verifica starea de sntate
din punct de vedere al disfuncionalitilor mai sus menionate.
innd cont de capacitile pe care MED-EXPERT le are, el poate fi considerat un partener
de ncredere atunci cnd este nevoie de o mn de ajutor n materie de diagnostic i tratament.
I.INTRODUCERE
1.1 Inteligena Artificial Tradiional
Sistemele Expert au fost pentru prima dat introduse impreun cu conceptul de Inteligen
Artificial. Acestea fac parte dintr-o gam de instrumente indinspensabile pentru realizarea de
instrumente automate sau interactive capabile s realizeze sarcini complexe. Sistemele Expert pot fi
considerate programe soft care operaz intr-un sistem sofisticat la fel cum o fac si expertii umani.
Cu alte cuvinte, acestea sunt aplicaii software care imit judecata experilor umani dintr-un
domeniu bine conturat [3].
Un Sistem Expert este un sftuitor computerizat care este capabil s raioneze
(i nu doar s arate o enumerare de date), dar care se ocup de obicei de un spaiu mic de
cunotine, numite de altfel domeniu de cunotine. Cunotina pe care o posed este activ
deoarece ea poate fi folosit pentru a deduce noi informaii din ceea ce este deja cunoscut despre o
problem. Avnd in vedere faptul c, cunotina pe care care o posed un sitem expert tinde s fie
legat de aplicaii specifice, ele nu sunt aa de rspndite ca bazele de date, a cror cunotin poate
fi folosit in diferite aplicaii. Cea mai des intlnit reprezentare de cunotine la Sistemele Expert o
reprezint regulile. Dr. Marvin Minsky definea Inteligena Artificial ca fiind: "Domeniu de studiu
care incearc s construiasc sisteme care dac ar fi ncercate de oameni ar fi considerate
inteligente[4].
nca din anii 1970, o varietate de Sisteme Expert, au fost folosite cu succes in diferite
domenii, cum ar fi cel al medicinei, al chimiei si chiar in domeniul computaional, proiectarea
sistemelor de configuraie pentru calculatoare. Aceste aplicaii au fost privite ca o tehnologie nou
foarte important i guvernele rilor industriale au ntmpinat-o investind in cercetarea acestui
domeniu. Cu toate c proiectele ncrezatoare care s-au lansat la acea vreme nu s-au realizat in
totalitate, o dezvoltare puternic in acest domeniu a avut loc. Sistemele Expert, sunt de departe cea
mai important parte comercial din tehnologiile Inteligenei Artificiale aplicate.
1.2.1
sistem expert
este divizat n reguli. n felul acesta piese elementare de cunoatere pot fi uor adugate,
moficicate ori eliminate. Modularitatea reprezentrii cunoaterii asigur totodat i posibilitatea de
meninere la zi a bazei de cunotine de ctre mai muli experi simultan. Ea poate reprezenta astfel
opera unui colectiv de autori adesea dezvoltndu-se pe o perioad lung de timp, simultan cu
intrarea ei in folosin.
Transparen. Un Sistem Expert poate explica soluia pe care o d la o anumit problem.
Aceasta este de altfel un factor de importana major n asigurarea credibilitii sistemelor expert
puse s furnizeze diagnostice medicale de exemplu. Pentru ca un medic s aib incredere ntr-un
diagnostic furnizat de main, el trebuie s il ineleag. Cu toate acestea, Sistemele Expert de
diagnostic medicinal nu au fost foarte des folosite i asta din principii de etic. Dac un astfel de
sistem ar furniza un diagnostic greit sau un tratament inadecvat pe cine s-ar da in judecat?
Soluii in condiii de incertitudine. Sistemele Expert pot oferi n general soluii
problemelor care se bazeaza pe date nesigure ori incomplete. Dintr-un anumit punct de vedere un
Sistem Expert funcioneaz ca o main care tie s niveleze asperitaile, ori care poate trece cu
uurin peste ele. Adesea un mecanism foarte fin este i foarte pretenios, el putnd funciona pe o
condiie pentru care a fost proiectat. Aceasta este i cazul unui program clasic, pentru care neputina
de a furniza valoarea exact a unui parametru l poate arunca pe o condiie de eroare. Un Sistem
Expert tie s fac fa fie unor cunotinte incomplete ori incerte asupra domeniului de expertiz,
fie unor date de intrare incomplete ori incerte.
1.2.2
Sistemele Expert se deosebesc de specialitii umani n mai multe privine. Un Sistem Expert
nu poate ajunge la concluzii n mod intuitiv. De asemenea el nu poate examina o situaie din diverse
perspective. Ele nu pot recurge pentru a raiona la principiile primale i nu pot trasa analogii. n
mod obinuit ele nu pot inva din experiena. Dar odat cu evoluia tehnologiei, s-ar putea realiza
si Sisteme Expert care s invee, si care s fie capabile sa-i imbunataeasc capacitatea de
cunoatere dinamic. Aceasta ar reprezenta o strns colaborare cu Reelele Neuronale, colaboare
care ar putea da rezulate excepionale i care ar putea fii de un real ajutor.
Tendina general, este de a nlocui expertul uman cu cel artificial deoarece specialistul
uman este mai greu de abordat, este foarte ocupat i nu se poate fi in mai multe locuri, sau mai
muli experi i specialiti sunt necesari, dar acetia nu sunt obinuii s i confrunte punctele de
vedere. De semenea, n cazul sistemelor de gestiune a proceselor, este posibil extindrea expertizei
umane ntr-o manier care s beneficieze de un timp de reacie mai scurt i de o memorie i o
capacitate de invare crescut.
n continuare, se va realiza o comparaie ntre un Sistem expert i un expert uman:
Tabelul 1.1. Comparaie dintre expertul uman si Sistemul Expert
Factorul
Timpul disponibil
Localizare spaial
Sigurana informaiilor
Performana
Viteza de lucru
Costul
Expertul uman
Sistemul Expert
Oricnd
Oriunde, mai ales n medii
De nenlocuit
Variabil
Variabil
Mare
improprii omului
nlocuibil
Consistena permanent
Rapid
Acceptabil
1.2.3
categorii
importante [5]
1. Sisteme expert de diagnostic. Problemele tratate de acestea pot fi recunoscute dup
urmtoarele proprietai;
-domeniu const din dou mulimi finite, disjuncte una coninnd observaii, cealalt
soluii i dintr-o cunoatere complex, adesea incert si incomplet despre relaiile dintre aceste
dou mulimi;
-problema este definit printr-o mulime de observaii, mulime ce poate fi incomplet;
-rezultatul diagnosticului este selecia uneia sau mai multor soluii ale problemei;
-n cazul n care calitatea soluiei poate fi inbunatait prin considerarea unor observaii
suplimentare, una din sarcinile clasificrii o reprezint gsirea acelei submulimi de observaii
suplimentare care ar trebui cerute pentru a le completa pe cele existente.
2. Sisteme expert de construcie: aici soluia nu mai poate fi gasit prin cautarea intr-o
mulime existent. Soluia este acum construit ca o secven de pai ori o configuraie de elemente
intercondiionate (astfel vazut, o problem de diagnostic poate fi considerat un caz special al unei
probleme de construcie). Definirea problemei inseamn precizarea condiiei iniiale ale problemei,
precizarea cerinelor asupra soluiei i a spaiului soluiilor (combinaiile teoretic posibile de obiecte
elementare care respect ori nu cerinele).
3. Sisteme expert de simulare: dac n sistemele expert de diagnostic i construcie soluia
era selectat ori respectiv asamblat, simularea servete numai pentru precizarea efectelor anumitor
10
DENDRAL
Primul sistem expert a aprut n momentul n care NASA a hotart trimiterea unui vehicul pe
Marte, avnd ca scop, printre altele bineneles, cercetarea structurii chimice a solului acestei
planete. Cercettorii de la Stanford au construit n acest scop chimitilor n identificarea structurii
chimice a unor substane n funcie de spectograma de mas.
MYCIN
MYCIN este unul dintre cele mai vechi sisteme exert iar crearea sa a influenat foarte mult
isoria dezvoltrii sistemelor expert. Sistemul, a fost dezvoltat la Stanford n anii 70. Misiunea lui
era diagnosticarea i recomandarea de tratament pentru diferite infecii ale sngelui.
Aplicaia de diagnostic a fost dezvolat in parte pentru a exploara cum fac experii umani
estimri brute (dar importante) bazandu-se doar pe unele informaii pariale. Oricum, problema este
important i din punct de vedere practic: exist muli doctori nceptori sau nespecializati care
trebuie s fac aceste aproximri asupra diagnosticului, deci existena unui sistem expert ar fi foarte
util n acordarea unui tratament ct mai eficient. Dar MYCIN n-a fost niciodat utilizat n practic,
i asta nu din cauza c nu a fost destul de performant sau c ar fi greit mult n diagnosticare, pentru
11
12
13
SISTEMELOR
EXPERT
2.1 Definiia Sistemelor Expert
15
Conceptele de baz ale uniu Sistem Expert sunt: expertiza i experii, transferul expertizei,
regulile de inferen i capacitatea de a explica.
Expertiza este o cunoatere intensiv, specific domeniului problemei, achiziionat prin
instruire, citire sau experien ndelungat. Urmtoarele tipuri de cunotere sunt exemple de ceea ce
se include n expertiz:
Reguli sau euristici despre ce trebuie fcut ntr-o situaie problematic dat,
pentru soluionarea problemei;
Metacunoatere.
Toate aceste tipuri e cunoatere permit experilor s ia decizii mai rapide i mai bune dect
neexperii n soluionarea problemelor complexe. Este nevoie de ani muli de pregtire pentru a
deveni expert.
Expertiza este de obicei asociat cu un nalt grad de inteligen i are asociat o mare
cantitate de cunotine. Experii umani au o caracteristic suplimentar n sensul c inva din
succesele i greelile fcute n trecut, iar cunoaterea o pot memora, organiza i regsi rapid. Ei pot
apela structurile cunoaterii din experiena proprie.
Experii sunt dificil de definit, ei pot fi persoane cu mai multe nivele sau grade de
expertiz. ntrebarea este ct de mult expertiz trebuie s posede o persoan calificat ntr-un
domeniu nainte de a fii considerat un expert?
Expertiza uman incluide o gam larg de activitai ale expertului cum ar fi:
Explicarea soluiei;
16
Restructurarea cunoaterii;
Fragmenatrea regulilor;
Toate acestea indic capacitatea experilor de a transforma datele unei probleme arbitrare
intr-o form care conduce la o soluie rapid. Aceasta este posibil datorit capacitaii de nvare din
experien a unor lucruri noi, de fragmentare a regulilor cunoscute, de determinare a relevanei
cunoaterii i a limitei acesteia in domeniu. Toate aceste activiti trebuie desfaurate eficient (rapid
i cu cost redus) i eficace (cu rezultate de calitate). Pentru a imita un expert uman este necesar s
se construiasc un sistem cu toate aceste caracteristici.
Exist doua motive pentru care se decide construirea unui Sistem Expert : nlocuirea unui
expert i asistarea unui expert n activitatea sa.
Principalele raiuni pentru nlocuirea expertului uman sunt:
Asistarea experilor umani de ctre programe specializate este tot mai des ntlnit in marile
firme i nu numai. Principalele motive pentru care se dezvolt Sistemele expert capabile s asiste
experii n munca lor sunt:
ajut expertul n executarea sarcinilor dificile n scopul unui mai bun control al
complexitii
Transferul expertizei constituie de fapt obiectivul unui Sistem Expert. Transferul are loc de
la expertul uman la calculator i de aici la utilizatorii experi sau nonexperi. Acest proces implica patru
activitai:
17
18
19
20
Expert
uman
Inginer de
cunotine
Modul de achiziie a
cunotinelor
Mecanism
de inferen
Baza de
cunotine
Baza de
fapte
Modul de
explicare
Utilizator
Interfaa utilizator
21
pentru
reprezentarea cunoaterii. Lietal (1995) sugereaz un raionament fuzzy care combin cunotina
experilor i ine cont de independena acestora. Aceast mod de abordare a problemei identific
cazurile de intrare i gsete informaia cea mai potrivit pentru a fi folosit intr-un caz individual.
22
Arhitectura unui Sistem multi-expert are la baz arhitectura unui Sistem Expert, dar are n
plus unele principii care trebuie respectate :
trebuie s conin mai multe module de cunoatere, identice celor din componena unui
Sistem Expert
sistemul trebuie s permit aflarea soluiei la o anumit problem dac aceasta exist
raionamentul folosit trebuie s fie semntor celui uman. Aceasta este i restricia
principal pentru rezolvarea n sistem multiexpertiz a problemelor complexe. Reeaua
de module de cunoatere este legat slab astfel c nici un modul nu poate avea o vedere
general i complet asupra reelei pentru a servi ca supraveghetor.
n cadrul unui Sistem multi-expert exist dou tipuri de comunicaii: ntre sistem i
utilizator i ntre modulele de cunoatere ale sistemului.
23
SISTEMUL MULTI-EXPERT
Utilizator
= modul de cunoatere
= comunicaie
Comunicarea care se realizeaz ntr-un Sistem multi-expert poate fi de mai multe tipuri:
-
24
25
III.
Ideea esenial care st la baza concepiei constructive a Sistemelor Expert, este aceea c un
expert uman i construiete soluia la o problem din piese elementare de cunoatere, familiare
acestuia anterior, i pe care expertul le selecteaz i le aplic ntr-o anumit secven. Pentru a
furniza o soluie coerent la o problem dat, cunoaterea trebuie s fie formalizat, reprezentat
ntr-o form adecvat proceselor de inferen, ca apoi s poat fi manipulat conform unei anumite
metode de rezolvare a problemei. Ca o consecin imediat a celor prezentate mai sus, se pune
problema separrii cunoaterii asupra domeniului, a datelor problemei- baza de cunotine i a
parii
sistemul de control (motorul de inferene), acestea fiind de fapt i modulele principale ale unui
Sistem Expert.
Baza de cunotine
Sistemul de control
26
Aceste dou componente formeaz inima unui Sistem Expert n jurul lor, alte componente
realizeaz funcionalitatea complex a acestuia, cum ar fi:
-
interfaa de comunicare
componenta explicativ
Baza de cunotine, care este componenta sistemului responsabil cu depozitarea de
informaii asupra demeniului de expertiz i a problemei de rezolvat, este la rndul ei format din:
-
baza de fapte
baza de reguli
agenda
Sistemul de control este responsabil cu desfurarea proceselor de inferen. El codific
27
28
prin coninutul lor, rezultatele reprezentrii (fapte, reguli, cadre..) pot fi utilizate n
mecanisme de raionament
n funcie de modelul specific, metodele de reprezentare a cunoaterii se clasific n: metode
A. Regulile de producie
Aceast metod este cea mai folosit metod de reprezentare a cunoaterii Sistemelor
Expert, fiind foarte eficace pentru reprezentarea recomandrilor, directivelor sau strategiilor.
n locul reprezentrii cunotinei ntr-un mod declarativ (ca o serie de lucruri care sunt
adevrate), regulile pot specifica ce ar trebui s fac sau ce se poate include n diferite situaii. Un
sistem bazat pe reguli, conine o serie de reguli IF-THEN, o serie de fapte i un interpretor ce
controleaz aplicarea regulilor.
Exist dou tipuri de sisteme bazate pe reguli: sisteme cu nlnuire nainte, i sisteme cu
nlnuire napoi. n primul model, se ncepe cu o serie de fapte iniiale, i se continu s se
foloseasc regulile care deriveaz noi concluzii din acele fapte. n modelul nlnuirii napoi, se
pornete cu o serie de ipoteze (goals) pe care se ncearc a fi demonstrate, i se tot caut reguli care
29
obiecte (argumente)
30
31
reflect multe idei ale paradigmei reprezentrii cunoaterii cu cadre i se nscrie n rndul
metodelor cu transfer succesorial
suport motenirea
dinamic i motenirea.
32
Componenta de control a unui Sistem Expert mai este numit i motorul de inferen pentru
c, n cursul execuiei la fel ca ntr-un proces inferenial, sistemul este capabil s genereze fapte noi
din cele cunoscute, aplicnd reguli.
Un mecanism elementar de aprindere a regulilor lucreaz conform urmtorului algoritm:
-
faza de filtrare: acum, se determin mulimea tuturor instanelor de reguli filtrate (MIRF)
corespunztoare regulilor din baza de reguli (BR) care pot satisface condiiile pe faptele
din baza de fapte (BF). n cazul n care nici o regul nu a putut fi filtrat atunci motorul se
oprete, n caz contrat se trece la urmtorul pas
faza de selecie: se alege o instan de regul R MIRF. Dac MIRF conine mai mult de
o singur instan, atunci se selecteaz regul urmnd strategia de conflict
manifest n faza de filtare: o regul nu este filtrat mai mult de o singur dat pe un set anume
33
3.3 Agenda
Agenda este structura de date care memoreaz la fiecare moment instanele regulilor.
Aceste instane sunt dispuse ntr-o list, instana de regul aflat pe prima poziie fiind aceea ce va
fi apoi utilizat.
Exist dou criterii care dicteaz ordinea instanelor regulilor din agend. Primul este
prioritatea declarat a regulilor, al doilea strategia de rezoluie a conflictelor. Folosind aceste
34
35
Calitatea i utilitatea unui Sistem Expert depind n mod esenial de cunotinele pe care le
ncorporeaz i utilizeaz. Efortul principal n realizarea unui Sistem Expert este orientat spre
36
analiza preliminar
modelarea conceptual
colectarea cunotinelor
reprezentarea cunoaterii
validarea sistemului
Dou din cele mai cunoscute metode de realizare a sistemelor expert sunt cea propus de
societatea de informatic COGNITECH, si de societatea KADS.
Prima metod, folosesc o metod de realizare prin prototipaj, care cuprinde trei etape:
A. Un studiu de fezabilitate realizat mai nti cu ajutorul unei machete de siteme expert
B. Realizarea prototipuli de test, aceast etap construirea unui prototip pe care se
expertimenteaz diferitele moduri de reprezentare a cunotinelor. n cursul acestei
37
definirea aplicaiei
analiza
proiectarea
implementarea
Realizarea unui Sistem Expert implic mule ore de munc i o anumit sum de bani. Pentru
a evita costurile i eecurile ruinoase, cercetatorii, au dezvoltat o serie de reguli de ghidare care
ne ajut s determinm dac o problem este potrivit pentru ca o problema s fie rezolvat cu
ajutorul unui sistem expert: [12]
38
39
4.3
40
Baza de cunotine
Editor
Motorul de inferene
Trasor
Interfaa utilizator
nvare
Alte module
41
Interfaa
procedeu
Este de remarcat faptul c fiecare modul poate fi dotat cu propria interfa de dialog cu
observaia c pentru sistemele industriale este neaprat nevoie de interfa de procedeu, pentru a
achiziiona n mod automat datele care provin de la captatoare i automate. De exemplu, n
domeniul gestiunii interfeele sunt destinate, de cele mai multe ori, extragerii datelor din bazele de
date i s nscrie n ele noi informaii.
Cel mai celebru dintre sistemele expert din generaia veche este sistemul MYCIN. El a fcut
s apar numeroase aplicaii i a dat natere motorului de elaborare EMZCIN. Acesta conine
celebrul modul de achiziie a cunotinelor, cunoscut sub numele de TEIRESIAS.
Tot n aceeai perioad de dezvoltare, s-a nscut sistemul CASNET, un alt sistem expert
medical, destinat pentru stabilirea diagnosticului i a terapiei glaucomului. Sistemul CASNET a dat
natere sistemului EXPERT.
Un alt reprezentatnt de seam din rndul sistemelor expert este sistemul PROSPECTOR.
Acesta este destinat detectrii zcmintelor de minerale i a fost dezvoltat dnd natere unui sistem
de elaborare numit KAS. Sistemul OPSS a provenit dintr-o familie de limbaje ale inteligenei
artificiale, momentat fiind inclus n sistemul KNOWLEDGE CRAFT. Un sistem destinat analizei
limbajului natural, care a adus multe idei noi care mai trziu au fost reluate este HEARSAZ-III.
42
43
44
45
46
47
procentul pe care l ocup n fiecare din bolile Ulcer Duodenal, Gastrit Acut, Litiaz
Biliar
procentele pe care l ocup ntre aceste boli. Un simptom, are o nsemntate mai mare
pentru o anumit boal iar pentru altul mai mic.
Ca n toate cazurile de aplicaii, existena excepiilor este un lucru ct se poate de natural. i
aici aceast problem apare i trebuie tratat ct mai eficient i mai natural.
Excepiile pot aprea atunci cnd procentele simptomelor difer. Tinnd cont de cunotina
achiziionat de la expertul uman, s-a dovedit c n cazul unor simptome, procentele difer n
funcie de sex, i de rspunsul afirmativ sau negativ pe care l primim de la pacient.
Tinnd cont de informaiile achiziionate, de problemele care apar, am hotart, ca,
cunotina acestui sistem, s fie reprezentat astfel: toat baza de cunotine se poate regsii in baza
de
date
SimptomeBoli,
care
conine
tabelele
Simptom,
ProcentSimptomBoli,
ProcentSimptomBoala, ExcDaNu.
Tabelul Simptom, are urmtoarea structur:
ID (int) identific unic fiecare simptom;
Simptom (text) simptomul propriu-zis;
DA (int) cmpul conine identificatorul urmtorului simptom care va fi interogat de
sistem, dac se rspunde pozitiv la cel curent;
NU (int) cmpul conine identificatorul urmtorului simptom care va fi interogat de
sistem, dac se rspunde negativ la cel curent.
Tabelul Simptom:
48
ID
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Simptom
Aveti dureri abdominale?
Aveti dureri in epigastru?
Aveti dureri in hipocondrul drept?
Durerile sunt vii,ascutite?
Durerile se accentueaza in inspir profund?
Durerea apare noaptea?
Durerea apare dupa masa?
Durerea cedeaza dupa alimentatie sau antiacide?
Durerea cedeaza la caldura sau antispastice?
Durerea se amelioreaza daca va ghemuiti?
Sunteti agitat?
Va este greata?
Ati avut varsaturi bilioasa?
Ati avut varsaturi acide
Ati avut hematemeza sau malena?
Sexul (F>=0|M<0)?
Sunteti fumator (DA>=0|Nu<0)?
Consumati alimente bogate in grasimi?
Aveti un orar de mese regulat?
Sunteti expus la stres?
Urmati tratament aniinflamator (DA>=0|Nu<0)?
In familie aveti antecedente de Ulcer Duodenal
(DA>=0|Nu<0)?
In familie aveti antecedente de Litiaza Biliara
(DA>=0|Nu<0)?
Suferiti de obezitate sau DZ (DA>=0|Nu<0)?
Dimineata, simtiti uneori gust amar sau cefalee?
Colecistul apare destins la palpare?
Exista sensibilitate vie la palparea hipocondrului
drept cu semnul Murphy pozitiv?
Exista sensibilitate vie la palparea epigastrului?
Exista o usoara sensibilitate la palparea epigastrului?
Exista subfrebilitate?
Exista subicter (DA>=0|Nu<0)?
Exista hiperbilirubinemie directa (DA>=0|Nu<0)?
Ecografic, exista litieaza biliara sau malformatii ale
colecistului (DA>=0|Nu<0)?
Exista anemie hipocroma (DA>=0|Nu<0)?
Reactia Gregersen este pozitiva (DA>=0|Nu<0)?
Examenul baritat al tubului digestiv superior releva
modificari specifice pentru Ulcer Duodenal (DA>=0|
Nu<0)?
Examenul baritat al tubului digestiv superior releva
modificari specifice pentru Gastrita Acuta (DA>=0|
Nu<0)?
Endoscopia digestiva superioara releva leziuni
specifice Ulcerului Duodenal (DA>=0|Nu<0)?
Endoscopia digestiva superioara releva leziuni
specifice Gastritei Acute (DA>=0|Nu<0)?
49
DA
NU
2
4
4
5
6
7
8
10
10
11
12
13
15
15
16
17
18
19
20
21
22
23
11
3
5
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
24
25
26
27
30
25
26
27
28
30
30
31
32
33
34
29
30
31
32
33
34
35
36
37
35
36
37
38
38
39
39
LB
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
UD
5
5
5
5
2,5
2,5
0
2,5
1
2,5
3
7
0
1
0
0
2,5
0
0
0
0
2,5
2,5
2,5
10
15
5
2,5
10
10
15
30
0
0
0
GA
10
10
10
10
5
5
5
1
5
2
6
2
14
14
0
4
4
6
5
5
5
0
0
0
0
0
10
10
0
0
0
0
6
14
5
50
5
1
0
0
0
2,5
2,5
1
1
0
3
1
7
7
0
0
0
3
2,5
2,5
0
0
0
0
0
0
5
5
0
0
0
0
3
7
0
0
80
0
0
0
0
25
0
50
EXC
1
2 ExcDaNu
3
4
5
6
7
8
9
10
11
12
13
14
15
16 ExcDaNu
17
18
19
20
21
22
LB
UD
50
0
60
60
60
50
40
0
70
10
80
33
80
0
10
0
0
60
0
0
0
0
51
GA
35
0
30
40
40
50
30
70
20
80
20
33
10
50
60
0
100
40
50
50
30
100
20
0
10
0
0
0
30
30
10
10
0
33
10
50
30
0
0
0
50
50
70
0
100
100
100
100
100
20
10
90
100
100
100
0
0
0
0
0
0
0
0
0
0
0
60
20
10
0
0
0
50
50
100
0
100
0
0
0
0
0
0
20
70
0
0
0
0
50
50
0
100
0
100
52
LB_DA
UD_DA
30
80
GA_DA
35
10
LB_NU
35
10
UD_NU
33
10
GA_NU
33
80
Datele despre pacienii internai care pot s beneficieze se serviciile oferite de aceast
aplicaie sunt prezente n baza de date Pacieni, care conine Tabelul Pacieni i are urmtoarea
structur:
ID (int)
NUME (tex)
- numele pacientului;
ADRESA (text)
- adresa pacientului;
PAROLA (text)
ID
Tabelul
Pacienti:
NUME
1 Pop Marian
ADRESA
str. Mihai
Viteazu nr25
Bucuresti
2 Ion Vasile
str. Crangasi
nr56 ClujNapoca
3 Marian Nadas str. Mihai
Eminescu nr 5
Iasi
4 Maria Ionescu str. Victoriei
nr117 Suceava
5 Lavinia Ciceu str. Abatorului
nr3 ClujNapoca
6 Ioana
str.
Vasilescu
Observatorului
nr45 ClujNapoca
7 Silvica Negura str. Crangasi nr
11 Bucuresti
8 Silviu
str. Bucium
Tampescu
nr88 targoviste
9 Rares Neagu str. Bujor nr33
Zalau
10 Ionut Iliescu
str.
Memorandumu
lui nr7 ClujNapoca
DIAGNOSTIC
USER
Ulcer Duodenal pm25
PAROLA
pm25
iv56
iv56
Liteaza Biliara
mn5
mn5
Gastrita Acuta
mi117
mi117
lc3
lc3
iv45
iv45
sn11
sn11
st88
rn33
rn33
53
Liteaza Biliara ii7
ii7
33
10
NUME (tex)
- numele doctorului;
PAROLA (text)
Tabelul Doctor:
ID
NUME
1 Nicolaie
Ionescu
2 Otilia Gaina
3 Ion Gherman
4 Marian
Vasilescu
5 Maria
Negoiescu
SPECIALIZARE
USER
medic primar
ni28796
PAROLA
ni28796
pediatru
chirurg
neurolog
og38796
ig23786
mv87213
og38796
ig23786
mv87213
dermatolog
mn32449
mn32449
Datele despre medicaia pe care sistemul o ofer pacienilor, sunt reinute n baza de date
Medicaie. Baza de date conine:
Tabelul Boli cu urmtoarea structur:
IDBoala (text) identific unic fiecare boal;
Denumire (text) denumirea boli;
Tabelul Medicamante cu urmtoarea structur:
IDMed (text)
55
rezultatul pe care aplicaia l primete este un numr din intervalul [-5..5], acest rezultat,
va fi ponderat dup urmtorea formul:
Raspuns(r)=(r+5)/10 astfel nct s avem o apreciere ct mai realist asupra situaiei;
formula dup care se vor calcula procentele fiecrei boli n parte, se calculeaz la fiecare
pas, i este:
Pboal= Pboal + ((Procent_boal*Raspuns(r) )* Procent_boli)/100;
innd cont de cele afirmate pn acum, am putea deduce, c, algoritmul dup care lucreaz
56
CAZURI DE UTILIZARE
innd cont de modul n care poate fi utilizat aplicaia MED-Expert, am putea evidenia
urmtoarele cazuri de utilizare:
1. Logarea unui utilizator
Aplicaia permite s fie folosit doar de persoanele care au aceste drepturi, de aceea
primul pas n rularea MED-Expertului o reprezint logarea, operaie a crei interfa este:
57
2.1 Vizualizare Simptome n acest caz de utilizare, un medic, poate sa vizualizeze toate
simptomele pe care MED-Expertul le folosee. Un posibil rezultat al acestei operaii ar
putea arta astfel:
58
2.2 Vizualizare Procente Boala aceast opiune permite unui medic, s vizualizeze
procentele pe care le ocup simptomele n cadrul fiecrei boli.
59
2.3 Vizualizare Procente Boli aceast opiune permite unui medic, s vizualizeze
procentele pe care le ocup simptomele ntre disfuncinalitile tratate de aplicae. n
cazul n care exist expepii, un simptom are procente diferite n unele situaii, acestea
vor fi de asemeni afiate.
60
2.4 Vizualizare Paceni Internai aceast opiune permite unui medic, s vizualizeze
toi pacienii internai n spital n cadrul departamentului aferent.
61
62
63
6. Utilizare MED-Expert
Cel mai important caz de utilizare al aplicaiei, folosirea sistemului expert, care este
capabil s decid daca un anumit pacient sufer de una din disfuncionalitile
analizate. Modul n care se folosete interfaa sistemului, am prezentat-o ntr-un
paragraf anterior, acum vom identifica aceast interfat, impreun cu cea a unei reete.
Reeta, este primit de pacient dup momentul opririi motorului de inferen a
sistemului. n acest moment, sistemul, a ajuns la o decizie final, un diagnostic de o
anumit disfuncionalitate, i ofer un tratament pentru corectarea acesteia.
64
65
DIAGRAMA DE CALSE
AdaugareSimptom
bs : BrookerSimptom
idsimp : ArrayList
Medic
bs : BrookerSimptom
Tabele
caz : int
actualizare()
ModificareSimptom
bs : BrookerSimptom
idsimp : ArrayList
StergereSimptom
bs : BrookerSimptom
idsimp : ArrayList
actualizare()
Simptom
id : int
nextid : int
simptom : string
imagine : string
LB_boli : double
UD_boli : double
GA_boli : double
LB_boala : double
UD_boala : double
GA_boala : double
Med-Expert
Plitbil : double
Pulcerd : double
Pgastra : double
nrSimptome : int
r : int
diag : int
idcurent : int
index : int
ret : Reteta
bs : BrookerSiptom
Reteta
caz : int
boala : string
cazboala : int
Logare
pac : Pacient
doc : Doctor
bs : BrookerSimptom
Doctor
id : int
nume : string
specializare : string
user : string
parola : string
Pacient
id : int
nume : string
diagnostic : string
adresa : string
user : string
parola : string
get()
set()
get()
set()
Brookersimptom
idcurent : int
sim : Simptom
doc : XmlTextReader
idsimp : ArrayList
getNrSimptom() : int
Final(id : int) : int
getIntrebare(id : int) : string
getImagine(idcurent : int) : string
getSimptom(idcurent : int, rasp : int) : Simptom
delSimptom(argname)
addSimptom(id : int, idant : int, ram : int, simp : string, da : int, nu : int)
addProcentBoala(id : int, lb : double, ud : double, ga : double)
addProcentBoli(id : int, ex : string, lbd : double, udd : double, gad : double, lbn : double, udn : double, gan : double)
cautIDDa(id : int)
cautIDNu(id : int)
getCazuri(id : int) : ArrayList
getSimptomModif(id : int) : ArrayList
getProcentboalaM(id : int) : ArrayList
getProcenteBoliM(id : int) : ArrayList
ModSimptom(id : int, simptom : string, da : int, nu : int)
ModProcenteBoala(id : int, lb : double, ud : double, ga : double)
ModprocenteBoli(id : int, lb : double, ud : doble, ga : double, ex : string)
getIDSimptome() : ArrayList
COD SURS
66
Clasa Simptom, conine toate datele necesare i aferente unei entiti Simptom care
intervine n aplicaie. De asemenea conine i metodele aferente de regsire i de iniializare a
datelor membru.
public class Simptom
{
private
private
private
private
private
private
private
private
private
private
int id ;
int nextid;
string simptom;
string imagine;
double LB_boli;
double UD_boli;
double GA_boli;
double LB_boala;
double UD_boala;
double GA_boala;
public Simptom()
{
}
public void setID(int id)
{
this.id=id;
}
public void setNextId(int id)
{
this.nextid=id;
}
public void setSimptom(string simptom)
{
this.simptom=simptom;
}
public void setImagine(string imagine)
{
this.imagine=imagine;
}
public void setLB_boli(double lb1)
{
LB_boli=lb1;
}
public void setUD_boli(double ud1)
{
UD_boli=ud1;
}
public void setGA_boli(double ga1)
{
GA_boli=ga1;
}
public void setLB_boala(double lb2)
{
LB_boala=lb2;
67
}
public void setUD_boala(double ud2)
{
UD_boala=ud2;
}
public void setGA_boala(double ga2)
{
GA_boala=ga2;
}
public int getID()
{
return id;
}
public int getNextId()
{
return nextid;
}
public string getSimptom()
{
return simptom;
}
public string getImagine()
{
return imagine;
}
public double getLB_boli()
{
return LB_boli;
}
public double getUD_boli()
{
return UD_boli;
}
public double getGA_boli()
{
return GA_boli;
}
public double getLB_boala()
{
return LB_boala;
}
public double getUD_boala()
{
return UD_boala;
}
public double getGA_boala()
{
return GA_boala;
}
Clasa Pacient conine toate datele necesare aplicaiei pentru a lucra cu acest tip de
entiate.Metodele acestei clase, ne permit iniialiyarea datelor membru ct i regasirea acestora.
68
69
{
}
public string getIntrebare(int id)
{
}
public string getImagine(int idcurent)
{
}
public
70
sim=new Simptom();
string imag,exceptie="";
try
{
ds.Clear();
da= new OleDbDataAdapter("Select * From Simptom
where ID="+idcurent,db);
da.Fill(ds, "Simp");
da.Dispose();
id=Int32.Parse(ds.Tables["Simp"].Rows[0]["ID"].ToString());
sim.setID(id);
sim.setSimptom((string)ds.Tables["Simp"].Rows[0]["Simptom"]);
if (raspuns>=0)
{
sim.setNextId(Int32.Parse(ds.Tables["Simp"].Rows[0]["DA"].ToStrin
}
else
sim.nextNextId(Int32.Parse(ds.Tables["Simp"].Rows[0]
["NU"]);
imag=getImagine(idcurent);
sim.setImagine(imag);
ds.Clear();
da = new OleDbDataAdapter("Select * From ProcentSimptomBoala where
ID="+idcurent,db);
da.Fill(ds, "SimpBoala");
da.Dispose();
sim.setGA_boala((double)ds.Tables["SimpBoala"].Rows[0]["GA"]);
sim.setLB_boala((double)ds.Tables["SimpBoala"].Rows[0]["LB"]);
sim.setUD_boala((double)ds.Tables["SimpBoala"].Rows[0]["UD"]);
ds.Clear();
da = new OleDbDataAdapter("Select * From ProcentSimptomBoli
where ID="+idcurent , db);
da.Fill(ds, "SimpBoli");
da.Dispose();
try
{
exceptie=(string)ds.Tables["SimpBoli"].Rows[0]["EXC"];
}
catch(Exception e)
{
}
if (exceptie.Equals(""))
{
sim.setGA_boli((double)ds.Tables["SimpBoli"].Rows[0]["GA"]);
sim.setLB_boli((double)ds.Tables["SimpBoli"].Rows[0]["LB"]);
sim.setUD_boli((double)ds.Tables["SimpBoli"].Rows[0]["UD"]);
71
if (exceptie.Equals("ExcDaNu"))
{
ds.Clear();
da = new OleDbDataAdapter("Select * From ExcDaNu
ID="+idcurent , db);
da.Fill(ds, "Exc");
da.Dispose();
if (raspuns>0)
//am raspuns cu
DA
where
{
try
{
sim.setGA_boli((double)ds.Tables["Exc"].Rows[0]
["GA_DA"]);
sim.setLB_boli((double)ds.Tables["Exc"].Rows[0]["LB_DA"]);
sim.setUD_boli((double)ds.Tables["Exc"].Rows[0]["UD_DA"]);
}
catch(Exception excep)
{
}
else
{
//consider raspunsul NU
try
{
sim.setGA_boli((double)ds.Tables["Exc"].Rows[0]["GA_NU"]);
sim.setLB_boli((double)ds.Tables["Exc"].Rows[0]["LB_NU"]);
sim.setUD_boli((double)ds.Tables["Exc"].Rows[0]["UD_NU"]);
}
catch(Exception ecp)
{
}
}
}//exceptia ExcDaNu
}//am exceptie
}
72
}
public void addSimptom( int id, int idant, int ram,string simp, int da,
int nu)
{
}
public void addProcentBoli (int id, string ex, double lbd, double udd,
double gad, double lbn, double udn, double gan)
{
}//addProcentBoli
public void cautIDDa(int id) //procedura, imi seteaza toate id-urile
de simptome care au ca urmator pe ramura DA pe ID
{
}
public void cautIDNU(int id) //procedura imi detremina toate id-urile
de simptome care au ca urmator pe ramura NU pe ID
{
}
public ArrayList getCazuri(int id)
//returneaza id-urile simpt de pe
ambele ramuri ale id-ului curent
{
pe
}//getcazuri
public ArrayList getSimptomModif(int id) //imi ia informatii despre
Simptomul pe care vreau sa il modific
{
return rez; //rez[0]=simptomul; rez[1]=id-ul simptomului daca raspund
cu DA; rez[2]=id-ul simptomului daca raspund cu NU
}//getSimptomModif
public ArrayList getProcenteBoalaM(int id) //imi det procentele pe
care le are Simptomul cu
id-ul id
{
}//getProcenteBoalaM
public ArrayList getProcenteBoliM(int id)
//imi det procentele pe
care le are Simptomul cu
id-ul id
{
}//getProcenteBoliM
73
//imi
{
}
public void ModProcenteBoli(int id, string ex, double lbd, double udd,
double gad, double lbn, double udn, double gan)
{
}//modProcenteBoli
74
VI.CONCLUZII
Oricum le-am numi, sistemele cognitive sau sistemele inteligente, Sistemele Expert
constituie o subramur a tehnologiei Inteligenei Artificiale i s-au remarcat deja n numeroase
aplicaii. Sistemele Expert, generatoarele de Sisteme Expert i chiar generatoarele de sisteme
neuronale sunt deja disponibile pe pia i contribuie din plin la modelarea ntreprinderii viitorului.
nc din 1985 P.Harmon i D.King ntrevedeau n materie de Sisteme Expert dou perioade:
-
a doua perioad, cu ncepere din 1992, va atinge apogeul la nceputul acestui mileniu,
cnd sistemele expert sunt concepute pentru reproducerea raionamentului uman pn la
punctul n care vor concura cu experii umani n materie de inteligen i expertiz
Dar ce ne ofer viitorul imediat n domeniul Sistemelor Expert? Se ntrevd patru direcii de
dezvoltare:
viitorul cel mai promitor aparine sistemelor neuronale, care se inspir din structurile
creierului uman i a cror originalitate ine seama de distribuirea cunoaterii. Sistemele
neuronale vor fi nedisociate de Sistemele Expert, acestea implicndu-se unele pe altele.
Deja se afl n comer generatoare de Sisteme Expert care utilizeaz descrierea
obiectelor, care fac parte integrant din baza de cunotine, dar acestea nu sunt dect
75
n unele situaii, pot fi mai ieftine i mai eficiente dect experii umani;
trateaz incertitudinea ntr-o manier explicit, care spre deosebire de cazul experilor
umani poate fi inspectat i verificat;
nu pot raiona pe baza intuiiei sau bunului sim, deoarece acestea nu sunt uor
reprezentabile;
sunt limitate la un domeniu restrns; cunotine din alte domenii nu pot fi uor integrate
nici nu pot generaliza n mod convingtor;
76
77
VII. BIBLIOGRAFIE
1) http://www.ifi.unizh.ch/groups/ailab/people/bongard/migros/LectMon830.pdf
2) Computaional Intelligence a logical approach David Poole, Alan
Mackworth, Randz Goebel
3)
4) http://www.scism.sbu.ac.uk/~darlink
5) Programarea Bazat pe Reguli - Dan Cristea, Bucureti 2002
6) Sisteme Expert cu Prolog - Constantin Sambotin, Bucureti 1997
7) Sisteme inteligente n management, contabilitate, finane bnci i marketing Ioan
Andone, Alexandru ugui
8) http://carlisle-www.army.mil/usacsl/divisions/std/branches/keg/expert/intro.htm
9) Sisteme Expert Dorin Ioni Crstoiu
10) http://scholar.lib.vt.edu/theses/available/etd-07112013190034/unrestricted/CPG_ETD.pdf
11) http://www.cee.hw.ac.uk/~alison/ai3notes/all.html
12) http://www.openclinical.org/aiinmedicine.html
13) http://www.atariarchives.org/deli/expert_systems.php
78