Documente Academic
Documente Profesional
Documente Cultură
LUCRARE DE DIPLOMĂ
Absolventă: Îndrumător:
OANA FRUNZĂ Lect. Gabriela Şerban
IUNIE 2004
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
CUPRINS
I. INTRODUCERE…………………………………………………………..... 4
2
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
3
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
PREFAŢĂ
Lucrarea de faţă descrie un Sistem Expert, arhitectura acestuia, modul în care acesta face
deducţii ş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 găsi
şi descrierea unei aplicaţii practice de Sistem Expert de diagnoză şi tratament numită MED-
EXPERT.
Sistemul este capabil să ajute un personal medical la diagnosticarea disfuncţionalităţilor :
Ulcer Duodenal, Gastrită Acută, Litiază Biliară. Odată ajunsă la o anumită concluzie, pacientul
suferă de o anumită afecţiune, aplicaţia, este capabilă să sugereze şi un tratament ţinând cont de
starea pacientului interogat.
Utilizatorii pot fi atât doctori cât şi pacienţi. Un utilizator doctor are posibilitatea
modificării, ştergerii, adăugării unor cunoştinţe în baza de date pe care sitemul o posedă.
Un pacient care rulează aplicaţia o poate folosi doar pentru a-şi verifica starea de sănătate
din punct de vedere al disfuncţionalităţilor mai sus menţionate.
Ţinând cont de capacităţile pe care MED-EXPERT le are, el poate fi considerat un partener
de încredere atunci când este nevoie de o « mână de ajutor » în materie de diagnostic şi tratament.
4
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
I.INTRODUCERE
5
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
individului inteligent este omul, dar am putea considera ca model de inteligenţă si o colonie de
furnici pentru că ele, privite in ansamblu sunt net mai inteligente decât fiecare individ al speciei
privit separat. Colonia este cea care poate să descopere hrană şi să o exploateze foarte eficient şi tot
ea este in masură să se adapteze la noi schimbări. La fel cum şi o companie poate sa dezvolte, sa
comercializeze şi distribuie produse ceea ce necesită o colecţie de aptitudini mult mai mari decât
cea a unui singur individ.
Societatea, vazută ca un agent poate fi considerată ca cel mai inteligent agent cunoscut
vreodată. Exemplele pe care le luăm şi care vrem să le transpunem intr-o lume ”artificială” sau
”sintetică”, sunt atât de natura biologică cât şi de natură organizaţională.
Instructiv, am putea considera o analogie intre dezvolatrea maşinilor de zbor în ultimele
secole şi dezvolarea maşinilor care gândesc in ultimele decenii. Spre deosebire de maşinile de zbor,
care doar imită acţiune pe care o fac unele animale, cercetările din Inteligenţa Computaţională,
incercă sa creeze maşini care sunt inteligente şi care nu mimeaza organizaţia umană. Aceasta duce
la o anumită asemănare intre intrebarea: ”Pot calculatoarele intradevăr să gândească?” şi
intrebarea: ”Pot avioanale să zboare?” [2].
Rădăcinile Inteligenţei Artificiale şi conceptul de maşini inteligente pot fi găsite în
mitologia Greaca. Primul sistem inzestrat cu un raţionament, a fost realizat in secolul 5 B.C. de
catre Aristotel care a inventat logica silogistă. Descoperirile şi realizarile în acest domeniu au
continuat şi inca continuă, dar merită să fie menţionată realizarea maşinii Turing din secolul 20,
instrument care ar putea fi folosit la verificarea inteligenţei unei maşini. Cercetarile si realizările din
zilele noastre, au făcut posibile conceperea unor sisteme înzestarte cu capacitaţi foarte apropiate de
cele umane, roboţii. Acest domeniu de cunoaştere şi cercetare, a devenit astazi foarte raspândit şi in
ştiinţele sociale incluzând studii economice, militare şi de previziune.
Logica, sistemele de reguli, lingvistica, şi conceptul de raţionament sunt ideile care stau la
baza Inteligenţei Artificiale tradiţionale, la rădăcina căreia se află limbajele de programare Lisp si
Prolog.
6
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
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 aplicaţii software care imită judecata experţilor umani dintr-un
domeniu bine conturat [3].
Un Sistem Expert este un ”sfătuitor computerizat” care este capabil să raţioneze
(şi nu doar să arate o enumerare de date), dar care se ocupă de obicei de un spaţiu mic de
cunoştinţe, numite de altfel ”domeniu de cunoştinţe”. Cunoştinţa pe care o posedă este activă
deoarece ea poate fi folosită pentru a deduce noi informaţii din ceea ce este deja cunoscut despre o
problemă. Având in vedere faptul că, cunoştinţa pe care care o posedă un sitem expert tinde să fie
legată de aplicaţii specifice, ele nu sunt aşa de răspândite ca bazele de date, a căror cunoştinţă poate
fi folosită in diferite aplicaţii. Cea mai des intâlnită reprezentare de cunoştinţe la Sistemele Expert o
reprezintă regulile. Dr. Marvin Minsky definea Inteligenţa 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 computaţional, proiectarea
sistemelor de configuraţie pentru calculatoare. Aceste aplicaţii au fost privite ca o tehnologie nouă
foarte importantă şi guvernele ţărilor industriale au întâmpinat-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 Inteligenţei Artificiale aplicate.
7
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Modularitate. Cunoaşterea care stă la baza puterii de raţionament a unui sistem expert
este divizată în reguli. În felul acesta piese elementare de cunoaştere pot fi uşor adăugate,
moficicate ori eliminate. Modularitatea reprezentării cunoaşterii asigură totodată şi posibilitatea de
menţinere la zi a bazei de cunoştinţe de către mai mulţi experţi simultan. Ea poate reprezenta astfel
opera unui colectiv de autori adesea dezvoltându-se pe o perioadă lungă de timp, simultan cu
intrarea ei in folosinţă.
Transparenţă. Un Sistem Expert poate explica soluţia pe care o dă la o anumită problemă.
Aceasta este de altfel un factor de importanţa majoră în asigurarea credibilităţii sistemelor expert
puse să furnizeze diagnostice medicale de exemplu. Pentru ca un medic să aibă incredere într-un
diagnostic furnizat de maşină, el trebuie să il inţeleagă. 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 greşit sau un tratament inadecvat pe cine s-ar da in judecată?
Soluţii in condiţii de incertitudine. Sistemele Expert pot oferi în general soluţii
problemelor care se bazeaza pe date nesigure ori incomplete. Dintr-un anumit punct de vedere un
Sistem Expert funcţionează ca o maşină care ştie să niveleze asperitaţile, ori care poate trece cu
uşurinţă peste ele. Adesea un mecanism foarte fin este şi foarte pretenţios, el putând funcţiona pe o
condiţie pentru care a fost proiectat. Aceasta este şi cazul unui program clasic, pentru care neputinţa
de a furniza valoarea exactă a unui parametru îl poate arunca pe o condiţie de eroare. Un Sistem
Expert ştie să facă faţă fie unor cunoştinte incomplete ori incerte asupra domeniului de expertiză,
fie unor date de intrare incomplete ori incerte.
8
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Sistemele Expert se deosebesc de specialiştii umani în mai multe privinţe. Un Sistem Expert
nu poate ajunge la concluzii în mod intuitiv. De asemenea el nu poate examina o situaţie din diverse
perspective. Ele nu pot recurge pentru a raţiona la principiile primale şi nu pot trasa analogii. În
mod obişnuit ele nu pot invăţa din experienţa. Dar odată cu evoluţia tehnologiei, s-ar putea realiza
si Sisteme Expert care să inveţe, si care să fie capabile sa-şi imbunataţească capacitatea de
cunoaştere dinamic. Aceasta ar reprezenta o strânsă colaborare cu Reţelele Neuronale, colaboare
care ar putea da rezulate excepţionale şi care ar putea fii de un real ajutor.
Tendinţa 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
mulţi experţi şi specialişti sunt necesari, dar aceştia nu sunt obişnuiţi 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 reacţie mai scurt şi de o memorie şi o
capacitate de invăţare crescută.
În continuare, se va realiza o comparaţie între un Sistem expert şi un expert uman:
9
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
În funcţie de domeniul lor de aplicaţie, sistemele expert pot fi imparţite în trei categorii
importante [5]
1. Sisteme expert de diagnostic. Problemele tratate de acestea pot fi recunoscute după
următoarele proprietaţi;
-domeniu constă din două mulţimi finite, disjuncte – una conţinând observaţii, cealaltă
soluţii – şi dintr-o cunoaştere complexă, adesea incertă si incompletă despre relaţiile dintre aceste
două mulţimi;
-problema este definită printr-o mulţime de observaţii, mulţime ce poate fi incompletă;
-rezultatul diagnosticului este selecţia uneia sau mai multor soluţii ale problemei;
-în cazul în care calitatea soluţiei poate fi inbunataţită prin considerarea unor observaţii
suplimentare, una din sarcinile clasificării o reprezintă găsirea acelei submulţimi de observaţii
suplimentare care ar trebui cerute pentru a le completa pe cele existente.
2. Sisteme expert de construcţie: aici soluţia nu mai poate fi gasită prin cautarea intr-o
mulţime existentă. Soluţia este acum construită ca o secvenţă de paşi ori o configuraţie de elemente
intercondiţionate (astfel vazută, o problemă de diagnostic poate fi considerată un caz special al unei
probleme de construcţie). Definirea problemei inseamnă precizarea condiţiei iniţiale ale problemei,
precizarea cerinţelor asupra soluţiei şi a spaţiului soluţiilor (combinaţiile teoretic posibile de obiecte
elementare care respectă ori nu cerinţele).
10
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
DENDRAL
Primul sistem expert a apărut în momentul în care NASA a hotarât trimiterea unui vehicul pe
Marte, având ca scop, printre altele binenţeles, cercetarea structurii chimice a solului acestei
planete. Cercetătorii de la Stanford au construit în acest scop chimiştilor în identificarea structurii
chimice a unor substanţe în funcţie de spectograma de masă.
MYCIN
MYCIN este unul dintre cele mai vechi sisteme exert iar crearea sa a influenţat foarte mult
isoria dezvoltării sistemelor expert. Sistemul, a fost dezvoltat la Stanford în anii ’70. Misiunea lui
era diagnosticarea şi recomandarea de tratament pentru diferite infecţii ale sângelui.
Aplicaţia de diagnostic a fost dezvolată in parte pentru a exploara cum fac experţii umani
estimări brute (dar importante) bazandu-se doar pe unele informaţii parţiale. Oricum, problema este
importantă şi din punct de vedere practic: există mulţi doctori începători sau nespecializati care
trebuie să facă aceste aproximări asupra diagnosticului, deci existenţa unui sistem expert ar fi foarte
utilă în acordarea unui tratament cât mai eficient. Dar MYCIN n-a fost niciodată utilizat în practică,
11
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
şi asta nu din cauza că nu a fost destul de performant sau că ar fi greşit mult în diagnosticare, pentru
că, din contra, testele au întrecut cu mult aşteptările membrilor catedrei de medicină de la Stanford.
A fost mai mult din cauze etice şi legale legate de folosirea calculatoarelor în medicină: dacă se
pune un diagnostic greşit, pe cine dăm in judecată?
MYCIN avea cunoştinţa reprezentată prin seturi de reguli IF-THEN cu diferite grade de
certitudine.
IF infecţia este primar-bacteriană
AND locul de unde s-a prelevat cultura este unul steril
AND poarta de intare suspectată este tractul gastronintestinal
THEN avem evidenţa de grad 0.7 că infecţia este bacteroidă.
Scris in Lisp, cu regulile reprezentate formal, MYCIN este un sitem direcţionat de scop,
folosind strategia de raţionament înapoi.
Aplicaţia raţioneaza, pe baza răspunsurilor pe care le primeşte la anumite întrebări şi pe
baza cunoştinţei pe care o posedă. Există trei stadii principale ale dialogului. La început, se adună
datele iniţiale despre caz pentru ca sistemul să producă o diagnoză largă. Apoi, se pun întrebări mai
specifice pentru a testa ipoteze specifice. În finalul acestei faze se propune un diagnostic. Al treilea
stadiu cuprinde întrebări pentru determinarea unui tratament, având in vedere diagnosticul găsit şi
informaţii despre pacient. Acesta se încheie evident cu propunerea unui tratament. În orice moment
utilizatorul poate întreba de ce i se adreseaza o anumită întrebare sau cum s-a ajuns la concluzie, iar
când se propune tratamentul poate solicita tratament alternativ dacă primul nu este satisfacător.
Cu toate că a fost un proiect de pionerat în domeniul Sistemelor Expert, MYCIN a avut şi
câteva probleme care au fost rezolvate mai târziu prin folosirea unor taxonomii explicite a bolilor
(reprezentată ca un sistem de cadre) pentru a reprezenta adevăruri despre diferite tipuri de boli. În
acest fel, s-a rezolvat problema amestecării regulior cu domeniu de cunoştinţe.
S-au dezvoltat multe sisteme pornind de la MYCIN. De exemplu, EMYCIN a fost primul
shell de sistem exert dezvoltat din MYCIN. Un nou sistem expert numit PUFF a fost dezvoltat
pornind de la MYCIN, dar specializat pe boli de inimă. Sistemul numit NEOMYCIN a fost
dezvoltat pentru a instrui doctori, cărora li se prezintă cazuri diverse, li se verifică concluziile şi li
se explică unde au greşit.
Sistemele Expert, au fost şi sunt folosite şi în alte domenii decât cel de diagnostic medicinal.
Domeniul ecconomic şi financiar-contabil, utilizează unele dine cele mai cunoscute aplicaţii expert.
12
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
13
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
14
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Definiţiile date de alţi autori, sunt foarte asemănătoare. Sistemele expert sunt sisteme de
programare bazate pe tehnicile Inteligenţei Artificiale, care înmagazinează cunoştinţele experţilor
umani dintr-un domeniu bine definit şi apoi le folosesc, pentru rezolvarea problemelor din acest
domeniu ; Un sistem computerizat capabil să ofere sfaturi într-un domeniu particular de
cunoştinţe, în virtutea faptului că conţine cunoştinţe oferite de un expert uman în acest domeniu.
Definiţia tradiţională a unui program este :
Algoritm + Structuri de date= Program
In Sistemele Expert, definiţia se schimbă astfel:
Motor de inferenţă + Baza de cunoştinţe = Sistem Expert [8]
Cu toate că au fost date diferite definiţii despre Sistemele expert, unele caracteristici
comune, se pot stabili. Unele idei care conturează noţiunea de Sistem Expert sunt :
Din punct de vedere conceptual Sistemele expert vizează reconstituirea raţionamentului
uman pe baza expertizei obţinute de la experţi ;
Sistemele Expert dispun de cunoştinţe şi de capacitatea de a desfăşura activitaţi
intelectuale umane;
Sistemele Expert sunt organizate pentru achiziţia şi exploatarea cunoaşterii dintr-un
domeniu particular numit domeniul problemei;
Sistemele Expert dispun de metode de invocare a cunoaşterii şi exprimarea expertizei,
comportându-se ca un « asistent inteligent » ;
Ca nivel de realizare informatică, Sistemele Expert se bazează pe principiul separării
cunoaşterii (bazei de cunoştinţe) de programul care o tratează (motorul de inferenţă) ;
Sistemele Expert sunt capabile să memoreze cunoaşterea, să stabilească legături între
cunoştinţe şi situaţii pe baza faptelor şi prelucrării cunoaşterii incerte.
Sistemele Expert incearcă să reproducă raţionamentul experţilor umani asupra cunoştinţelor
puse la dispoziţia lor într-o anumită manieră, ajungând să le modifice şi chiar să ofere explicaţii
asupra unor raţionamente făcute.
15
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Conceptele de bază ale uniu Sistem Expert sunt: expertiza şi experţii, transferul expertizei,
regulile de inferenţă şi capacitatea de a explica.
Expertiza este o cunoaştere intensivă, specifică domeniului problemei, achiziţionată prin
instruire, citire sau experienţă îndelungată. Următoarele tipuri de cunoştere sunt exemple de ceea ce
se include în expertiză:
Fapte despre domeniul problemei;
Teorii din domeniul problemei;
Reguli şi proceduri privind domeniul problemei;
Reguli sau euristici despre ce trebuie făcut într-o situaţie problematică dată,
pentru soluţionarea problemei;
Startegii globale despre soluţionarea tipurilor de probleme;
Metacunoaştere.
Toate aceste tipuri e cunoaştere permit experţilor să ia decizii mai rapide şi mai bune decât
neexperţii în soluţionarea problemelor complexe. Este nevoie de ani mulţi de pregătire pentru a
deveni expert.
Expertiza este de obicei asociată cu un înalt grad de inteligenţă şi are asociată o mare
cantitate de cunoştinţe. Experţii umani au o caracteristică suplimentară în sensul că invaţă din
succesele şi greşelile făcute în trecut, iar cunoaşterea o pot memora, organiza şi regăsi rapid. Ei pot
apela structurile cunoaşterii din experienţa proprie.
Experţii sunt dificil de definit, ei pot fi persoane cu mai multe nivele sau grade de
expertiză. Întrebarea este căt 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 activitaţi ale expertului cum ar fi:
Recunoaşterea şi formularea problemei;
Rezolvarea problemei cu exactitate şi rapiditate;
Explicarea soluţiei;
Învăţarea din experienţă;
16
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Restructurarea cunoaşterii;
Fragmenatrea regulilor;
Toate acestea indică capacitatea experţilor de a transforma datele unei probleme arbitrare
intr-o formă care conduce la o soluţie rapidă. Aceasta este posibil datorită capacitaţii de învăţare din
experienţă a unor lucruri noi, de fragmentare a regulilor cunoscute, de determinare a relevanţei
cunoaşterii şi a limitei acesteia in domeniu. Toate aceste activităţi trebuie desfaşurate 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 raţiuni pentru înlocuirea expertului uman sunt:
a face expertiza posibilă în orice moment
automatizarea unei sarcini rutine care necesită un expert
expertul este foarte scump
expertiza este cerută in medii de lucru periculoase pentru sănătatea omului
Asistarea experţilor umani de către programe specializate este tot mai des întâlnită in marile
firme şi nu numai. Principalele motive pentru care se dezvoltă Sistemele expert capabile să asiste
experţii în munca lor sunt:
ajută expertul în executarea sarcinilor de rutină în scopul îmbunătaţirii productivităţii
sale
ajută expertul în executarea sarcinilor dificile în scopul unui mai bun control al
complexităţii
punerea la dispoziţia expertului a informaţiei dificil de procurat la momentul oportun
Transferul expertizei constituie de fapt obiectivul unui Sistem Expert. Transferul are loc de
la expertul uman la calculator şi de aici la utilizatorii experţi sau nonexperţi. Acest proces implica patru
activitaţi:
achiziţia cunoaşterii de la experţi sau/şi din alte surse
reprezentarea cunoaşterii în calculator
inferenţierea pe baza cunoaşterii stocate
transferul cunoaşterii către utilizator
17
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
18
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
19
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Expert
uman
Inginer de
cunoştinţe
Modul de achiziţie a
cunoştinţelor
Mecanism
de inferenţă
Baza de
cunoştinţe
Baza de Modul de
fapte explicare
20
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Sistemele multi-expert sunt o abordare mai recentă şi mai promiţătoare care tinde să
depăşească Sistemele Expert. Ele reprezintă programe folosite pentru rezolvarea unor probleme
foarte complexe care includ opinii diferite legate de acceasi problemă, cunoştinţe care au fost
achiziţionate prin diferite expertize. Un Sistem Expert bazat pe un sistem multiplu are unele
avantaje, cum ar fi:
1) posibilitatea de a împarţii experienţa, cunoştinţa si resursele;
2) o mai mare credibilitate ;
3) o raţionare mai buna datorită observaţiilor facute de alţi agenţi constituenţi. [11]
Există două scheme de dezvoltare a sistemelor multi-expert. Prima este cea în care sistemul
este alcătuit din mai multe subsisteme (agenţi ) care abordează diferite părţi ale problemei.
Problema care trebuie rezolvată la astfel de sisteme, o reprezintă coordonarea şi cooperarea
subsistemelor. A doua schemă este caracterizată de o singură bază de cunoştinţe conţinând
informaţii de la mai multi experţi .
Hanachi (1996) a propus o tehnică specifică de dezvolatre a Sistemelor Expert. Această
tehnică presupune existenţa a două baze de date una activă şi una deductivă care se comportă ca un
sistem informaţional cooperativ. Acest sistem, menţine informaţii despre dezvolatrea proiectului si
un set de reguli care coordonează şi controlează diferite activitaţi.
Rezolvarea şi încorporarea opiniilor conflictuale reprezintă o problemă majoră pentru
reprezentarea cunoaşterii. Lietal (1995) sugerează un raţionament fuzzy care combină cunoştinţa
experţilor şi ţine cont de independenţa acestora. Aceast mod de abordare a problemei « identifică »
cazurile de intrare şi găseşte informaţia cea mai potrivită pentru a fi folosită intr-un caz individual.
21
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Cercetătorii constată azi o evoluţie către interacţiuni frecvente şi complexe între cei mai diverşi
specialişti dintr-un domeniu restrâns, în scopul exercitării unei activităţi de nivel înalt.
Arhitectura unui Sistem multi-expert are la bază arhitectura unui Sistem Expert, dar are în
plus unele principii care trebuie respectate :
trebuie să conţină mai multe module de cunoaştere, identice celor din componenţa unui
Sistem Expert
trebuie facută o separare între motoarele de inferenţă şi modulele de cunoaştere
pe intervalul unei expertize modularitatea cunoaşterii trebuie să rămână validă,
adaugarea, modificare sau ştergerea unui modul de cunoaştere nu va trebui să afecteze
direct alte module din sistem
sistemul trebuie să permită aflarea soluţiei la o anumită problemă dacă aceasta există
raţionamentul folosit trebuie să fie semănător celui uman. Aceasta este şi restricţia
principală pentru rezolvarea în sistem multiexpertiză a problemelor complexe. Reţeaua
de module de cunoaştere este legată slab astfel că nici un modul nu poate avea o vedere
generală şi completă asupra reţelei pentru a servi ca supraveghetor.
În cadrul unui Sistem multi-expert există două tipuri de comunicaţii: între sistem şi
utilizator şi între modulele de cunoaştere ale sistemului.
22
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Primul tip de comunicare se face prin intermediu Interfeţei utilizator, asemeni Sistemelor
Expert clasice.
Cel de-al doilea tip de comunicare este ilustrat in Figura 2.2 reprezentată mai jos
SISTEMUL MULTI-EXPERT
Utilizator
= modul de cunoaştere
= comunicaţie
Comunicarea care se realizează într-un Sistem multi-expert poate fi de mai multe tipuri:
- comunicarea prin partajarea informaţiei
- comunicarea prin trimiterea de mesaje
- comunicarea prin cunoaşterea declarativă
Comunicarea prin partajarea informaţiei se caracterizează prin existenţa unei structuri
de date partajată în care iniţial se află datele problemei, care se modifică pe parcursul execuţiei
programului, în final obţinându-se rezultatul problemei. Acest mod ce comnunicare este cel mai des
folosit, utilizându-se în comunicarea între module.
23
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Comunicarea prin trimiterea de mesaje constă în schimbul unor mesaje între modulele de
cunoaştere conform unui protocol dinainte stabilit. Mesajul are ataşata marca emiţătorului, mesajul
propriu-zis, si receptorul sau receptorii căruia îi este adresat. Transmiterea mesajului se poate face
direct, numai la unul sau la mai mulţi receptori identificaţi anterior, sau prin difuziune ceea ce
înseamnă că, mesajul este transmis tuturor modulelor în acelaşi timp.
Comunicarea prin cunoaşterea declarativă se bazează pe faptul că, numele receptorilor şi
conţinutul mesajelor reprezintă conţinutul unui modul de cunoaştere particular numit modulul de
cunoaştere declarativă (MCD).
Cunoaşterea declarativă a acestui modul permite constiutuirea bazei de fapte iniţiale pentru
modulul de cunoaştere activat. După soluţionarea problemei într-un modul informaţiile comunicate
de către MCD îi vor fi returnate cu eventualele modificări.
Avantajul paralelismului pe care acest mod de comunicare îl oferă, este umbrit de fapul că,
modulul principal controlează rezoluţia iar celelalte module de cunoaştere nu sunt total
independente.
24
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Eficacitatea are în vedere timpii de rezoluţie care în cazul partajării cunoaşterii între mai
mule module este mai mare.
Claritatea este dată tot de modularitate, sistemul este vizibil iar cantitatea de informaţii
necesară unei decizii momentane se reduce.
Adecvarea la domeniul aplicativ al problemei este luat în considerare, deoarece experţii
acordă mai multă incredere în sisteme ce reflectă propria lor abstractizare şi conceptualizare.
Costurile de concepere sunt mai reduse datorită modularităţii care oferă posibilitatea
achiziţiei cunoaşterii în paralel de la toţi experţii, precum şi validarea globală a prototipului.
Ideea esenţială care stă la baza concepţiei constructive a Sistemelor Expert, este aceea că un
expert uman îşi construieşte soluţia la o problemă din piese elementare de cunoaştere, familiare
acestuia anterior, şi pe care expertul le selectează şi le aplică într-o anumită secvenţă. Pentru a
furniza o soluţie coerentă la o problemă dată, cunoaşterea 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 separării cunoaşterii asupra domeniului, a datelor problemei- baza de cunoştinţe – şi a
parţii responsabile cu organizarea proceselor inferenţiale care să implice aceste cunoştinţe –
sistemul de control (motorul de inferenţe), acestea fiind de fapt şi modulele principale ale unui
Sistem Expert.
25
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Aceste două componente formează inima unui Sistem Expert în jurul lor, alte componente
realizează funcţionalitatea complexă a acestuia, cum ar fi:
- interfaţa de comunicare
- componenta de achiziţie a cunoştinţelor
- componenta explicativă
Baza de cunoştinţe, care este componenta sistemului responsabilă cu depozitarea de
informaţii asupra demeniului de expertiză şi a problemei de rezolvat, este la rândul ei formată din:
- baza de fapte
- baza de reguli
- agenda
Sistemul de control este responsabil cu desfăşurarea proceselor de inferenţă. El codifică
una sau mai multe startegii de aplicare a regulilor.
26
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
27
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Mecanismele de inferenţă se referă la prelucrările cele mai adecvate ale cunoaşterii din
domeniu în scopul derivării unor piese noi de cunoaştere, cele mai relevante pentru soluţionarea
problemelor.
Cu toate, că se cunosc mai multe metode de reprezentare a cunoaşterii, unele elemente
comune, se găsesc:
- admit utilizarea mai multor limbaje de programare existente sau a generatoarelor de
Sisteme Expert, iar rezultatul este memorat;
- prin conţinutul lor, rezultatele reprezentării (fapte, reguli, cadre..) pot fi utilizate în
mecanisme de raţionament
În funcţie de modelul specific, metodele de reprezentare a cunoaşterii se clasifică în: metode
declarative şi metode procedurale.
Metodele declarative, sunt acelea, care folosesc aserţiunile şi faptele, iar metodele
procedurale sunt folosite la reprezentarea acţiunilor sau procedurilor.
Reţelele semantice, cadrele/obiectele structurate şi logica predicatelor, este specifică
metodei declarative, iar regulile şi procedurile celei procedurale. Însă, acestea, nu sunt singurele
mai există scenariile, listele, tabelele de decizie, arborii decizionali, restricţiile, reţele neuronale.
A. Regulile de producţie
Această metodă este cea mai folosită metodă de reprezentare a cunoaşterii Sistemelor
Expert, fiind foarte eficace pentru reprezentarea recomandărilor, directivelor sau strategiilor.
În locul reprezentării cunoştinţei într-un mod declarativ (ca o serie de lucruri care sunt
adevărate), regulile pot specifica ce ar trebui să facă sau ce se poate include în diferite situaţii. Un
sistem bazat pe reguli, conţine 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 înlănţuire înainte, şi sisteme cu
înlănţuire înapoi. În primul model, se începe cu o serie de fapte iniţiale, şi se continuă să se
folosească regulile care derivează noi concluzii din acele fapte. În modelul înlănţuirii înapoi, se
porneşte cu o serie de ipoteze (goals) pe care se încearcă a fi demonstrate, şi se tot caută reguli care
28
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
ar permite să deducă acele presupuneri. Primul model, este numit şi data-driven iar al doilea goal-
driven.
Reprezentarea exactă a cunoaşterii dintr-un domeniu particular necesită un număr mare de
reguli, ca să poată fi surprinse toate detaliile. Numărul regulilor este direct proporţional cu
complexitatea cunoaşterii.
Tipologia regulilor are în vedere marea varietate a formelor cunoaşterii de reprezentat asfel:
reguli de cauzalitate, de recomandare, directivă, strategice, euristice. Regulile pot fi clasificate în
funcţie de natura funcţiei informatizate cu Sisteme Expert, asfel: reguli pentru probleme de
interpretare, de diagnostic, de planificare, de proiectare.
Pe lângă autonomia ridicată pe care o conferă acest mod de reprezentare, regulile pot fi
privite ca piese de cunoaştere independente, ele reprezintă şi o modalitate eficientă de procesare a
cunoaşterii.
Cauzele care produc diminuarea performanţelor sistemelor bazate pe reguli se pot elimina
prin măsuri de organizare a bazei de fapte, a bazei de reguli şi prin introducerea unor măsuri de
accelerare a procesului inferenţial.
Una din cele mai importante metode de reprezentare, care ne permite să reprezentăm fapte
complexe despre lume, şi să derivăm noi fapte intr-un mod care ne garantează că, dacă faptele
iniţiale sunt adevărate, actunci si concluziile sunt la fel. Logica predicatelor de ordinul întâi (cea
mai folosită), are o sintaxă bine definită, reguli şi semantici de inferenţă.
Propoziţiile cu valoare de adevăr, numite şi aserţiuni, se referă, la obiecte, concepte,
evenimente din domeniul problemei, sunt reprezentate cu tehnici specifice predicatelor de ordinul I,
calculul acestora, permiţând descrierea atributelor obiectelor, conceptelor, evenimentelor.
Calculul predicatelor este preferat de folosit, datorită structurii sale şi puterii de inferenţiere.
El este adecvat pentru unele probleme, dar suferă pentru că propoziţiile nu pot fi fragmentate în
părţi, ci trebuie tratate ca un întreg, dar cu toate acestea, ele pot fi vazute ca două părţi de bază:
- obiecte (argumente)
- predicate (aserţiuni despre atributele obiectelor)
29
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Aceste reţele, au la bază un model cu structură dereţea, considerat din punct de vedere
conceptual ca mijloc important de reprezentare a cunoaşterii graful.
Reţeaua este un graf orientat în care cunoaşterea este reprezentată prin asocierea la noduri şi
arce a semnificaţiei sau semanticilor. Astfel, se ajunge la interpretarea în termeni de obiecte/entităţi
şi relaţii a domeniului problemei.
Cel mai întâlnit este modelul în care nodurile sunt asociate obiectelor din domeniu, iar
arcele sunt asociate legăturilor sau relaţiilor dintre obiecte. Două noduri care sunt legate printr-un
arc, înseamnă că sunt în legătură directă.
Caracteristica de bază a unei reţele semantice constă în aceea că oferă un formalism de
reprezentare a cunoaşterii împreună cu o structură de regăsire a cunoaşterii. În acest mod de
reprezentare, raţionamentul înseamnă căutarea unei căi dintre nodurile grafului folosind
cunoaşterea disponibilă din domeniu.
Aceste grafuri, pot fi de cauzalitate sau de dependenţă, fiind foarte utile pentru formalizarea
cunoaşterii în Sistemele Expert.
În reţelele de cauzalitate, semnificaţiile asociate nodurilor şi arcelor pot să difere în funcţie
de problema de soluţionat, ele oferind o adecvare foarte bună la achiziţia cunoaşterii cauzale
incomplete şi o imbunataţire a înţelegerii şi explicaţiilor pe care trebuie să le ofere Sistemul Expert.
Asfel că, în cazul unei informaţii incomplete, ea poate fi completată foarte uşor, prin introducerea
unui nou nod în graf.
În cazul grafurilor de dependenţă semnificaţia nodurilor este dată de obiecte, stări
psihologice, propoziţii, aserţiuni, iar legăturile reprezintă relaţiile dintre două obiecte şi pot fi: de
timp, de spaţiu, de posesie, de acţiune, de atribuire, de presupunere, de colecţie.
Metoda tripletelor obiect-atribut-valoare (OAV) au la bază metoda reţelelor semantice.
Această reprezentare este foarte convenabilă pentru listarea cunoaşterii în formă tabelară şi mai ales
pentru translatarea tabelelor prin reguli de inducţie în programare inteligente.
30
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Tot mai mulţi specialişti prezintă metoda obiectelor structurate ca o metodă bazată pe cadre
deoarece, în esenţă, reprezentarea cunoaşterii prin cadre face referinţe la programarea orientată
obiecte în construirea bazei de cunoştinţe. Metoda obiectelor structurate este din ce în ce mai
utilizată în Sistemele Expert deoarece:
- reflectă multe idei ale paradigmei reprezentării cunoaşterii cu cadre şi se înscrie în rândul
metodelor cu transfer succesorial
- cunoaşterea declarativă se menţine separată de cunoaşterea procedurală
- toată cunoaşterea este concentrată într-o singură structură numită obiect
- suportă moştenirea
- este modularizată prin mecanisme de transmitere a mesajelor şi încapsulare
- unele limbaje, suportă vizualizarea a obiectelor ( C++, Java...)
Conceptele acestei metode sunt: obiect, încapsulare, transmiterea mesajelor, legarea
dinamică şi moştenirea.
31
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Abordările care urmăresc modul în care lucrează creierul uman se concretizează în aşa-
numitele reţele neuronale şi maşini care învaţă. Maşinile care învaţă se referă la tehnologii
ultramoderne capabile să realizeze învăţarea din experienţă. Cercetările au scos la iveală mai multe
asemenea metode, precum şi algoritmi speciali, toate în faza de laborator: reţele neuronale, învăţare
inductivă, raţionament bazat pe cazuri, algoritmi genetici, metode statistice folosite în achiziţia
cunoaşterii şi soluţionarea problemelor, învăţatrea bazată pe explicaţii.
Componenta de control a unui Sistem Expert mai este numită şi motorul de inferenţă pentru
că, în cursul execuţiei la fel ca într-un proces inferenţial, sistemul este capabil să genereze fapte noi
din cele cunoscute, aplicând reguli.
Un mecanism elementar de aprindere a regulilor lucrează conform următorului algoritm:
- faza de filtrare: acum, se determină mulţimea tuturor instanţelor de reguli filtrate (MIRF)
corespunzătoare regulilor din baza de reguli (BR) care pot satisface condiţiile pe faptele
din baza de fapte (BF). În cazul în care nici o regulă nu a putut fi filtrată atunci motorul se
opreşte, în caz contrat se trece la următorul pas
- faza de selecţie: se alege o instanţă de regulă R € MIRF. Dacă MIRF conţine mai mult de
o singură instanţă, atunci se selectează regulă urmând strategia de conflict
- faza de execuţie: se execută partea de acţiuni a regulii R, cu rezultatul asupra bazei de
fapte. Se revine apoi la faza de filtrare. La unele Sisteme Expert, mai apare o subfază a
fazei de filtrare numită faza de restricţie, aici se aleg o serie de reguli care a prioro merită
să particile la acest ciclu inferenţial.
Motoarele de inferenţă implementează o proprietate numită refractibililatea, care se
manifestă în faza de filtare: o regulă nu este filtrată mai mult de o singură dată pe un set anume
32
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
de fapte. Fără această proprietate, sistemele expert ar fi antrenate în bucle triviale ce ar apărea ori
de câte ori acţiunile părţii drepte ale unei reguli nu ar produce modificări în bază.
Faza de selecţie, se mai poate numi, şi strategia de control a unui Sistem Expert, deoarece,
ea este legătura de trecere de la o stare la alta în procesul de raţionament, pentru rezolvarea
problemelor. Ea determină cum o căutare să fie direcţionată în scopul atingerii stării finale. Cele
mai folosite strategii de control, sunt cele înainte (forward-chaining) şi înapoi (backward-chaining).
Strategia de control înainte este bazată pe fapte, deoarece, se porneşte de la un set de fapte
iniţiale şi se caută ”înainte ” până se ajunge la scop. Regulile, sunt folosite ”spre înainte”, ele
generând fapte noi, şi tot asa pană când se ajunge la starea scop, sau până când nu mai sunt reguli
care pot fi utilizate.
Strategia de control înapoi, se mai numeşte şi strategia bazată pe scop. În acest caz, ne
depalasăm înapoi, de la scop înspre faptele iniţiale cunoscute. Prima dată, se caută in baza de fapte
dacă scopul se gaseşte acolo în cazul în care nu se găseşte, se caută dacă nu se află printre
concluziile unei reguli. Dacă se găseşte, ea se numeşte stare de scop, apoi se verifică daca
premizele acestei noi stări, se află în baza de fapte. Dacă nu există, atunci acestea devin noi scopuri
şi se continuă procesul până se găseşte o premiză care nu este suportată de nici o regulă. Această
metodă este similară cu demonstrarea ipotezelor de către experţii umani.
Strategia de control mixă combină cele două strategii pentru ca în timpul căutării prin baza
de cunoştinţe să înlăture inconveninetele acestora, reţinând numai cele care ar putea fi folosite cu
succes.
Metaregulile se referă la reguli care conţin starea procesului deductive şi modifică dinamic
ordinea priorităţii regulilor de declanşare.
3.3 Agenda
Agenda este structura de date care memorează la fiecare moment instanţele regulilor.
Aceste instanţe sunt dispuse într-o listă, instanţa de regulă aflată pe prima poziţie fiind aceea ce va
fi apoi utilizată.
Există două criterii care dictează ordinea instanţelor regulilor din agendă. Primul este
prioritatea declarată a regulilor, al doilea strategia de rezoluţie a conflictelor. Folosind aceste
33
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
doua criterii, insantele sunt ordonate în agendă în mod descrescător priorităţilor declarate, iar cele
cu priorităţi egale în ordinea dată de strategia de rezoluţie a conflictelor.
Unele dintre cunoştinţele conţinute într-un Sistem Expert au un caracter euristic. Din acest
motiv soluţia furnizată de sistem nu este în mod necesar optimă. Este chiar posibil ca această soluţie să
nu fie nici măcar corectă. Rezultă de aici necesitatea ca Sistemul Expert să îşi explice modul în care a
ajuns la o anumită concluzie. De acest lucru se ocupă modulul de explicaţii, care permite trasarea
drumului urmat în raţionament de către sistemul rezolutiv şi emiterea justificărilor pentru soluţiile
obţinute, evidenţiindu-se în acest mod cauza greşelilor sau motivul eşecului. El ajută expertul să
verifice consistenţa bazei de cunoştinţe.
34
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Calitatea şi utilitatea unui Sistem Expert depind în mod esenţial de cunoştinţele pe care le
încorporează şi utilizează. Efortul principal în realizarea unui Sistem Expert este orientat spre
35
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
36
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Realizarea unui Sistem Expert implică mule ore de muncă şi o anumită sumă de bani. Pentru
a evita costurile şi eşecurile ruşinoase, cercetaătorii, au dezvoltat o serie de reguli de ghidare care
ne ajută să determinăm dacă o problemă este potrivită pentru ca o problema să fie rezolvată cu
ajutorul unui sistem expert: [12]
37
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Trebuie să fie clar că doar o clasă destul de redusă de probleme sunt potrivite pentru
sistemele expert. Cu toate acestea, dată o anumită problemă sistemele expert pot aduce beneficii
enorme. Sisteme au fost dezvoltate spre exemplu pentru a folosi la analiza unor mostre de petrol, la
38
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
configurarea unui sistem de calculator. Ambele siteme sunt (sau au fost) folosite scutind sume
enorme de bani.
39
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Fiecare dintre aceste module trebuie să poată comunica cu utilizatorul, deci există interfeţe
care permit dialogul cu acestea. O arhitectură simplă a unui generator de sisteme expert este
prezentată schematic în Figura 4.1
Baza de cunoştinţe
Alte module
40
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Interfaţa
procedeu
Este de remarcat faptul că fiecare modul poate fi dotat cu propria interfaţă de dialog cu
observaţia că pentru sistemele industriale este neapărat nevoie de interfaţă de procedeu, pentru a
achiziţiona în mod automat datele care provin de la captatoare şi automate. De exemplu, în
domeniul gestiunii interfeţele sunt destinate, de cele mai multe ori, extragerii datelor din bazele de
date şi să înscrie în ele noi informaţii.
Cel mai celebru dintre sistemele expert din generaţia veche este sistemul MYCIN. El a făcut
să apară numeroase aplicaţii şi a dat naştere motorului de elaborare EMZCIN. Acesta conţine
celebrul modul de achiziţie a cunoştinţelor, cunoscut sub numele de TEIRESIAS.
Tot în aceeaşi perioadă de dezvoltare, s-a născut sistemul CASNET, un alt sistem expert
medical, destinat pentru stabilirea diagnosticului şi a terapiei glaucomului. Sistemul CASNET a dat
naştere sistemului EXPERT.
Un alt reprezentatnt de seamă din rândul sistemelor expert este sistemul PROSPECTOR.
Acesta este destinat detectării zăcămintelor de minerale şi a fost dezvoltat dând naştere unui sistem
de elaborare numit KAS. Sistemul OPSS a provenit dintr-o familie de limbaje ale inteligenţei
artificiale, momentat fiind inclus în sistemul KNOWLEDGE CRAFT. Un sistem destinat analizei
limbajului natural, care a adus multe idei noi care mai târziu au fost reluate este HEARSAZ-III.
41
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
42
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Sistemele AIM au ca scop sprijinirea personalului medical în cursul normal de probleme care
apar, asistând la sarcinile care se bazează pe manipularea de date şi cunoştinţe. Un sistem inteligent,
ar putea alerta un medic, atunci când acesta detectează o contraindicaţie la un tratament planificat,
sau atunci cănd detectează modificări în starea unui pacient.
Sistemele Expert, sunt cele mai comune tipuri de sisteme AIM folosite în medicină. Ele
conţin cunoştinţă medicală, de obicei despre un anumit câmp de studiu, şi sunt capabile să raţioneze
cu date de la pacienţi individuali, pentru a deduce unele concluzii. Cu toate că există multe metode
de reprezentare a cunoştinţei cea mai utilizată e cea care foloseşte un set de reguli.
Medicina, a pus bazele unei dorinţe de dezvoltare a unor maşini capabile să înveţe dând
posibilitate oamenilor de ştiinţă să dezvolte sisteme complexe capabile să facă acest lucru. Cu toate,
că, au fost şi sunt încă folosite un număr destul de mare de sisteme expert în medicină, în prezent,
sistemele capabile să înveţe sunt încă folosite în mod experimental. Cu toate acestea sunt multe
situaţii în care ele pot aduce un real suport.
43
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
adăugării de noi cunoştinţe care să poată fi utilizate, ar face ca munca unui doctor, să fie mai
eficentă şi mai accesibilă.
Sistemul MED-EXPERT, este un Sistem Expert de diagnostic medical care oferă şi
tratament pentru pacienţii care suferă de Ulcer Duodenal, Litiază Biliară şi Coliculi Biliari.
Toate aceste boli au unele simptome comune, dar şi unele care le poat departaja oferind
posibilitatea uneori ajungerii la un diagnostic înainte de desfăşurarea unor examene paraclinice (de
laborator). Asfel că, baza de cunoştinţe va fi folosită pentru toate aceste trei boli fără o delimitare
rigidă.
Modul în care raţionează sistemul ajută personalul medical să determine dacă pacientul
suferă de o anumită boală şi nu numai. MED-EXPERT este capabil să determine şi procentele în
care celelalte disfuncţionalităţi, apar la un anumit pacient.
Sistemul nu se opreşte doar la diagnosticare, el fiind capabil să ofere şi un tratament pentru
un anumit diagnostic găsit.
MED-EXPERT, poate fi utilizat atăt de medicii care au conturi de acces, căt şi de pacienţii
internaţi la un anumit spital.
Pacienţii, posedând un cont dat la internare, au acces doar de folosire a acestui sistem, fiind
capabili să-şi verifice singuri starea de sănătate din punctul de vedere al problemelor medicale mai
sus menţionate
Medicii, care au acces de utilizare a sistemului, pot folosi acestă aplicaţie, atât ca un
program de diagnosticare medicală, căt şi avănd posibilitatea adăugării, modificării bazei de
cunoştinţe pe care acesta o posedă.
44
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
În cazul în care datele nu sunt introduse corect, aplicaţia nu va rula şi va afişa un mesaj de
atenţionare.
Logarea cu succes, va duce la posibilitatea folosirii MED-EXPERT-ului, de către
utilizatorul avizat fie medic fie pacient.
Dacă utilizatorul este medic, atunci pe ecran va apărea o fereastră care oferă posibilitatea
alegerii unor opţiuni de utilizare a aplicaţiei.
Un medic, va putea să vizualizeze baza de cunoştinţe a sistemului (simptomele, procentele
pe care acestea le ocupă atât în boală cât şi între boli), va putea şterge un anumit simptom care este
identificat printr-o anumită cheie (ID), va putea modifica unele date din baza de cunoştinţe, sau va
putea adăuga o noua entitate de cunoaştere, un simptom. Medicul mai poate vizualiza lista cu
pacienţi ai spitalului, şi lista cu pacienţii diagnosticaţi.
De asemenea, acesta va putea rula sistemul de diagnoză şi tratament. La alegerea acestei
opţiuni, va apărea pe ecran o fereastră care va ajuta medicul să facă o diagnoză a unui anumit
pacient.
Aceeasi fereastră, va apărea şi în cazul logării unui pacient, el nebenficiind de apariţia
ferestrei cu opţiuni de modificare a bazei de cunoştinţe ale sistemului.
Această fereastră, reprezintă Interfaţa Utilizator a sistemului, interfată prin care
utilizatorul interacţionează cu aplicaţia, şi care face posibilă culegerea de date de la pacient/doctor,
necesare raţionamentului.
Pe fereastră, se va putea vedea o imagine semnificativă fiecărui simptom care este interogat,
simptomul, o casuţă, în care se poate introduce răspunsul pacientului/medicului şi un buton, care
trebuie să fie folosit după ce s-a răspuns la întrebarea care apare pe ecran.
Butonul, nu va mai putea fi folosit atunci când se ajunge la un diagnostic, el va fi inactiv, iar
pe ecran, va mai apărea o fereastră, în care se va confirma diagnosticul şi tratamentul.
Răspunsurile valide care pot fi primite de sistem, sunt în intervalul [-5...5], o valoare mai
mare sau egală cu 0, va fi înregistrată de sistem, cu semnificaţia DA, iar o valoare mai mică decât 0
cu semnificaţia de NU.
În funcţie de răspunsurile pe care sistemul le primeşte de la pacient, acesta îşi va « croi »
drumul spre scopul final şi va pune doar întrebările corespunzătoare.
Fereastra aplicaţiei MED-EXPERT oferă posibilitatea rulării ei ori de câte ori doreşte
utilizatorul.
45
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
46
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
- 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 însemnătate mai mare
pentru o anumită boală iar pentru altul mai mică.
Ca în toate cazurile de aplicaţii, existenţa excepţiilor este un lucru cât se poate de natural. Şi
aici această problemă apare şi trebuie tratată cât mai eficient şi mai natural.
Excepţiile pot apărea atunci când procentele simptomelor diferă. Tinând cont de cunoştinţa
achiziţionată de la expertul uman, s-a dovedit că în cazul unor simptome, procentele diferă în
funcţie de sex, şi de răspunsul afirmativ sau negativ pe care îl primim de la pacient.
Tinând cont de informaţiile achiziţionate, de problemele care apar, am hotarât, ca,
cunoştinţa acestui sistem, să fie reprezentată astfel: toată baza de cunoştinţe se poate regăsii in baza
de date SimptomeBoli, care conţine tabelele Simptom, ProcentSimptomBoli,
ProcentSimptomBoala, ExcDaNu.
Tabelul Simptom:
47
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
ID Simptom DA NU
1 Aveti dureri abdominale? 2 11
2 Aveti dureri in epigastru? 4 3
3 Aveti dureri in hipocondrul drept? 4 5
4 Durerile sunt vii,ascutite? 5 5
5 Durerile se accentueaza in inspir profund? 6 6
6 Durerea apare noaptea? 7 7
7 Durerea apare dupa masa? 8 8
8 Durerea cedeaza dupa alimentatie sau antiacide? 10 9
9 Durerea cedeaza la caldura sau antispastice? 10 10
10 Durerea se amelioreaza daca va ghemuiti? 11 11
11 Sunteti agitat? 12 12
12 Va este greata? 13 13
13 Ati avut varsaturi bilioasa? 15 14
14 Ati avut varsaturi acide 15 15
15 Ati avut hematemeza sau malena? 16 16
16 Sexul (F>=0|M<0)? 17 17
17 Sunteti fumator (DA>=0|Nu<0)? 18 18
18 Consumati alimente bogate in grasimi? 19 19
19 Aveti un orar de mese regulat? 20 20
20 Sunteti expus la stres? 21 21
21 Urmati tratament aniinflamator (DA>=0|Nu<0)? 22 22
22 In familie aveti antecedente de Ulcer Duodenal 23 23
(DA>=0|Nu<0)?
23 In familie aveti antecedente de Litiaza Biliara 24 24
(DA>=0|Nu<0)?
24 Suferiti de obezitate sau DZ (DA>=0|Nu<0)? 25 25
25 Dimineata, simtiti uneori gust amar sau cefalee? 26 26
26 Colecistul apare destins la palpare? 27 27
27 Exista sensibilitate vie la palparea hipocondrului 30 28
drept cu semnul Murphy pozitiv?
28 Exista sensibilitate vie la palparea epigastrului? 30 29
29 Exista o usoara sensibilitate la palparea epigastrului? 30 30
30 Exista subfrebilitate? 31 31
31 Exista subicter (DA>=0|Nu<0)? 32 32
32 Exista hiperbilirubinemie directa (DA>=0|Nu<0)? 33 33
33 Ecografic, exista litieaza biliara sau malformatii ale 34 34
colecistului (DA>=0|Nu<0)?
34 Exista anemie hipocroma (DA>=0|Nu<0)? 35 35
35 Reactia Gregersen este pozitiva (DA>=0|Nu<0)? 36 36
36 Examenul baritat al tubului digestiv superior releva 37 37
modificari specifice pentru Ulcer Duodenal (DA>=0|
Nu<0)?
37 Examenul baritat al tubului digestiv superior releva 38 38
modificari specifice pentru Gastrita Acuta (DA>=0|
Nu<0)?
38 Endoscopia digestiva superioara releva leziuni 39 39
specifice Ulcerului Duodenal (DA>=0|Nu<0)?
39 Endoscopia digestiva superioara releva leziuni 0 0
specifice Gastritei Acute (DA>=0|Nu<0)?
48
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Tabelul ProcentSimptomBoală:
ID LB UD GA
2 5 10 5
3 5 10 1
4 5 10 0
5 5 10 0
6 2,5 5 0
7 2,5 5 2,5
8 0 5 2,5
9 2,5 1 1
10 1 5 1
11 2,5 2 0
12 3 6 3
13 7 2 1
14 0 14 7
15 1 14 7
16 0 0 0
17 0 4 0
18 2,5 4 0
19 0 6 3
20 0 5 2,5
21 0 5 2,5
22 0 5 0
23 2,5 0 0
24 2,5 0 0
25 2,5 0 0
26 10 0 0
27 15 0 0
28 5 10 5
29 2,5 10 5
30 10 0 0
31 10 0 0
32 15 0 0
33 30 0 0
34 0 6 3
35 0 14 7
36 0 5 0
49
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
37 0 0 25
38 80 0 0
39 0 0 50
Tabelul ProcentSimptomBoli:
ID EXC LB UD GA
1 50 35 20
2 ExcDaNu 0 0 0
3 60 30 10
4 60 40 0
5 60 40 0
6 50 50 0
7 40 30 30
8 0 70 30
9 70 20 10
10 10 80 10
11 80 20 0
12 33 33 33
13 80 10 10
14 0 50 50
15 10 60 30
16 ExcDaNu 0 0 0
17 0 100 0
18 60 40 0
19 0 50 50
20 0 50 50
21 0 30 70
22 0 100 0
50
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
23 100 0 0
24 100 0 0
25 100 0 0
26 100 0 0
27 100 0 0
28 20 60 20
29 10 20 70
30 90 10 0
31 100 0 0
32 100 0 0
33 100 0 0
34 0 50 50
35 0 50 50
36 0 100 0
37 0 0 100
38 0 100 0
39 0 0 100
51
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Tabelul ExcDaNu:
Datele despre pacienţii internaţi care pot să beneficieze se serviciile oferite de această
aplicaţie sunt prezente în baza de date Pacienţi, care conţine Tabelul Pacienţi şi are următoarea
structură:
ID (int) - numărul de identificare al fiecărui pacient;
NUME (tex) - numele pacientului;
ADRESA (text) - adresa pacientului;
DIAGNOSTIC (text) - diagnosticul care este pus de către medic (aplicaţia
MED-EXPERT) ;
USER (text) - numele de User pe care îl primeşte pacientul la internare şi cu
care poate să se logeze pentru a folosi MED-EXPERT-ul;
PAROLA (text) - parola User pe care o primeşte pacientul la internare şi cu
care poate să se logeze pentru a folosi MED-EXPERT-ul;
ID NUME ADRESA DIAGNOSTIC USER PAROLA
1 Pop Marian str. Mihai Ulcer Duodenal pm25 pm25
Viteazu nr25
Tabelul Bucuresti
2 Ion Vasile str. Crangasi iv56 iv56
Pacienti: nr56 Cluj-
Napoca
3 Marian Nadas str. Mihai Liteaza Biliara mn5 mn5
Eminescu nr 5
Iasi
4 Maria Ionescu str. Victoriei Gastrita Acuta mi117 mi117
nr117 Suceava
5 Lavinia Ciceu str. Abatorului lc3 lc3
nr3 Cluj-
Napoca
6 Ioana str. iv45 iv45
Vasilescu Observatorului
nr45 Cluj-
Napoca
7 Silvica Negura str. Crangasi nr sn11 sn11
11 Bucuresti
8 Silviu str. Bucium Ulcer Duodenal st88 st88
Tampescu nr88 targoviste
9 Rares Neagu str. Bujor nr33 rn33 rn33
Zalau
10 Ionut Iliescu str. 52
Liteaza Biliara ii7 ii7
Memorandumu
lui nr7 Cluj-
Napoca
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Datele despre doctorii care lucrează în spital şi care pot să beneficieze de serviciile oferite
de această aplicaţie sunt prezente în baza de date Doctori, care conţine Tabelul Doctor şi are
următoarea structură:
ID (int) - numărul de identificare al fiecărui doctor;
NUME (tex) - numele doctorului;
SPECIALIZARE(text) - specializarea fiecărui medic;
USER (text) - numele de User pe care îl primeşte medicul şi cu care poate
să se logeze pentru a folosi MED-EXPERT;
PAROLA (text) - parola User pe care o primeşte medicul şi cu
care poate să se logeze pentru a folosi MED-EXPERT-ul;
Tabelul Doctor:
ID NUME SPECIALIZARE USER PAROLA
1 Nicolaie medic primar ni28796 ni28796
Ionescu
2 Otilia Gaina pediatru og38796 og38796
3 Ion Gherman chirurg ig23786 ig23786
4 Marian neurolog mv87213 mv87213
Vasilescu
5 Maria dermatolog mn32449 mn32449
Negoiescu
Datele despre medicaţia pe care sistemul o oferă pacienţilor, sunt reşinute în baza de date
Medicaţie. Baza de date conţine:
Tabelul Boli cu următoarea structură:
IDBoala (text) – identifică unic fiecare boală;
Denumire (text) – denumirea boli;
Tabelul Medicamante cu următoarea structură:
IDMed (text) – identifică unic fiecare medicament;
Denumire (text) – denumirea medicamentului;
Dozaj (text) - dozalul care trebuie administrat;
53
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
54
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
relative la bolile investigate. Acest moment, oferă utilizatorului aplicaţiei şi o reţetă ţinând cont de
rezulatele la care s-au ajuns.
După cum am mai afirmat, această concluzie, de prezenţă a unei boli, se poate deduce, doar
din interogarea unor simptome care nu necesită analize paraclinice. Daca motorul de inferenţe, nu a
putut deduce că o anumită afecţiune apare până în momentul în care sunt interogate rezultatele de
la analizele paraclinice, odată evaluate aceste analize, se poate deduce clar situaţia pacientului.
Procentele finale ale afecţiunilor, care ne ajută la evaluarea stării pacientului, sunt calculate
în timpul derulării algoritmului după care lucrează motorul de inferenţă, şi tine seama de rezultatele
primite de la bolnav asfel:
- rezultatul pe care aplicaţia îl primeşte este un număr din intervalul [-5..5], acest rezultat,
va fi ponderat după următorea formulă:
Raspuns(r)=(r+5)/10 astfel încât să avem o apreciere cât mai realistă asupra situaţiei;
- formula după care se vor calcula procentele fiecărei boli în parte, se calculează la fiecare
pas, şi este:
Pboală= Pboală + ((Procent_boală*Raspuns(r) )* Procent_boli)/100;
Ţinând cont de cele afirmate până acum, am putea deduce, că, algoritmul după care lucrează
motorul de inferenţă este:
Algoritm MED-EXPERT:
Cât timp ((not_diagnostic) sau (not_sfărşit_simptome)) execută
Pentru fiecare boală execută
Calculează Pboală;
Sfpentru
Determină id_simptom_următor;
SfCattimp
Prescrie Reţetă;
SfMED-EXPERT
Urmând acest mod de deducţie cu înlănţuire înainte, tinând cont de toate excepţiile care ar
putea apărea şi de datele din baza de fapte (cele care ţin de fiecare pacient în parte), sistemul MED-
Expert, este capabil să diagnosticheze şi să ofere un tratament pentru persoanele suferinde de
disfuncţionalităţile amintite anterior.
55
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
CAZURI DE UTILIZARE
Ţinând cont de modul în care poate fi utilizată aplicaţia MED-Expert, am putea evidenţia
următoarele cazuri de utilizare:
1. Logarea unui utilizator
Aplicaţia permite să fie folosită doar de persoanele care au aceste drepturi, de aceea
primul pas în rularea MED-Expertului o reprezintă logarea, operaţie a cărei interfaţă este:
56
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
2. Vizualizări informaţii
Această operaţie, este permisă numai utilizatorilor de tip medic, la fel ca şi toate
operaţiile asupra bazelor de date pe care aplicatia le gestionează. Toate aceste operaţii pe
care un medic le poate face, se pot selecta din fereastra:
2.1 Vizualizare Simptome – în acest caz de utilizare, un medic, poate sa vizualizeze toate
simptomele pe care MED-Expertul le foloseţe. Un posibil rezultat al acestei operaţii ar
putea arăta astfel:
57
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
2.2 Vizualizare Procente Boala – această opţiune permite unui medic, să vizualizeze
procentele pe care le ocupă simptomele în cadrul fiecărei boli.
58
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
2.3 Vizualizare Procente Boli – această opţiune permite unui medic, să vizualizeze
procentele pe care le ocupă simptomele între disfuncţinalităţile tratate de aplicaţe. În
cazul în care există expepţii, un simptom are procente diferite în unele situaţii, acestea
vor fi de asemeni afişate.
59
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
2.4 Vizualizare Pacenţi Internaţi – această opţiune permite unui medic, să vizualizeze
toţi pacienţii internaţi în spital în cadrul departamentului aferent.
60
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
61
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
62
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
6. Utilizare MED-Expert
Cel mai important caz de utilizare al aplicaţiei, folosirea sistemului expert, care este
capabil să decidă daca un anumit pacient suferă de una din disfuncţionalităţile
analizate. Modul în care se foloseşte interfaţa sistemului, am prezentat-o într-un
paragraf anterior, acum vom identifica această interfată, impreună cu cea a unei reţete.
Reţeta, 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ă disfuncţionalitate, şi oferă un tratament pentru corectarea acesteia.
63
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
64
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
DIAGRAMA DE CALSE
AdaugareSimptom
Medic
bs : BrookerSimptom
idsimp : ArrayList bs : BrookerSimptom Tabele
caz : int
actualizare()
ModificareSimptom
bs : BrookerSimptom
StergereSimptom
idsimp : ArrayList
bs : BrookerSimptom
actualizare() idsimp : ArrayList
Med-Expert
Simptom Plitbil : double
id : int Pulcerd : double Reteta
nextid : int Pgastra : double
caz : int
simptom : string nrSimptome : int
boala : string
imagine : string r : int
cazboala : int
LB_boli : double diag : int
UD_boli : double idcurent : int
GA_boli : double index : int Logare
LB_boala : double ret : Reteta pac : Pacient
UD_boala : double bs : BrookerSiptom doc : Doctor
GA_boala : double bs : BrookerSimptom Pacient
Diagnostic(index : int) : int id : int
Raspuns(ras : int) : double nume : string
diagnostic : string
adresa : string
user : string
Doctor parola : string
id : int
nume : string get()
specializare : string set()
user : string
parola : string
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Ă
65
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
Clasa Simptom, conţine toate datele necesare şi aferente unei entităţi Simptom care
intervine în aplicaţie. De asemenea conţine şi metodele aferente de regăsire şi de iniţializare a
datelor membru.
private int id ;
private int nextid;
private string simptom;
private string imagine;
private double LB_boli;
private double UD_boli;
private double GA_boli;
private double LB_boala;
private double UD_boala;
private 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;
66
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
}
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 conţine toate datele necesare aplicaţiei pentru a lucra cu acest tip de
entiate.Metodele acestei clase, ne permit iniţialiyarea datelor membru căt şi regasirea acestora.
67
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
68
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
public BrookerSimptom()
{
}
69
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
{
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"]);
70
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
}
else
{
if (exceptie.Equals("ExcDaNu"))
{
ds.Clear();
da = new OleDbDataAdapter("Select * From ExcDaNu where
ID="+idcurent , db);
da.Fill(ds, "Exc");
da.Dispose();
if (raspuns>0) //am raspuns cu
DA
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
}
catch (Exception ex)
{
}
return sim;
}//getSimptom
71
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
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
}//getcazuri
}//getProcenteBoalaM
}//getProcenteBoliM
72
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
public void ModSimptom(int id,string simptom, int da, int nu) //imi
modific Simptomul cu Id-ul id
{
}
public void ModProcenteBoli(int id, string ex, double lbd, double udd,
double gad, double lbn, double udn, double gan)
{
}//modProcenteBoli
73
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
VI.CONCLUZII
Oricum le-am numi, sistemele cognitive sau sistemele inteligente, Sistemele Expert
constituie o subramură a tehnologiei Inteligenţei Artificiale şi s-au remarcat deja în numeroase
aplicaţii. 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:
- prima perioadă până la începutul anilor ’90, caracterizată de aplicarea sistemelor expert de
mărimee medie la soluţionarea unor probleme specifice. Ele au format gustul pentru
această tehnologie şi un număr mare de cognicieni;
- a doua perioadă, cu începere din 1992, va atinge apogeul la începutul acestui mileniu,
când sistemele expert sunt concepute pentru reproducerea raţionamentului uman până la
punctul în care vor concura cu experţii umani în materie de inteligenţă şi expertiză
Dar ce ne oferă viitorul imediat în domeniul Sistemelor Expert? Se întrevăd patru direcţii de
dezvoltare:
dezvoltarea masivă de generatoare de Sisteme Expert şi sisteme neuronale, cu care se
vor putea concepe, de către experţi, noi aplicaţii în cele mai diferite domenii.
Cogniticienii vor avea şi ei un rol crescut deoarece se vor concentra mai puţin asupra
domeniilor aplicative;
dezvoltarea unor metode mai noi, mai performante de achiziţie şi reprezentare a
cunoaşterii, care vor deveni tot mai disponibile şi accesibile. Acesta este sectorul cel mai
interesant pentru cogniticianul viitorului;
viitorul cel mai promiţător aparţine sistemelor neuronale, care se inspiră din structurile
creierului uman şi a căror originalitate ţine seama de distribuirea cunoaşterii. Sistemele
neuronale vor fi nedisociate de Sistemele Expert, acestea implicându-se unele pe altele.
Deja se află în comerţ generatoare de Sisteme Expert care utilizează descrierea
obiectelor, care fac parte integrantă din baza de cunoştinţe, dar acestea nu sunt decât
74
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
nişte precursori întrucât se va ajunge la sisteme inteligente care depăşesc multe dintre
generatoarele de Sisteme Expert actuale în sensul că:
o software-ul integrabil în sistemele neuronale va fi disponibil într-un viitor apropiat
ca instrumente hibride de concepere a sistemelor care asociază tehnici orientate
obiect celor din programarea clasică, tehnici fuzzy etc.
Ţinând cont de prezentarea făcută sistemelor informatice bazate pe cunoştinţe, şi în
particular a Sistemelor Expert, putem menţiona câteva avantaje ale acestora:
sunt colecţii de informaţii valoroase;
sunt indinspensabile în lipsa expertizei umane;
în unele situaţii, pot fi mai ieftine şi mai eficiente decât experţii umani;
pot fi mai rapide decât experţii umani;
dacă sunt flexibile, pot fi actualizate cu uşurinţă;
pot fi folosite pentru instruirea de noi experţi umani;
la cerere, pot explica premisele şi linia de raţionament;
tratează incertitudinea într-o manieră explicită, care spre deosebire de cazul experţilor
umani poate fi inspectată şi verificată;
Cu toate acestea, unele limite ale acestor sisteme există:
nu pot raţiona pe baza intuiţiei sau bunului simţ, deoarece acestea nu sunt uşor
reprezentabile;
sunt limitate la un domeniu restrâns; cunoştinţe din alte domenii nu pot fi uşor integrate
nici nu pot generaliza în mod convingător;
procesul de învăţtare nu este automat; pentru actualizările cunoştinţelor este nevoie de
intervenţia umană;
în prezent, nu pot raţiona pe baza teoriilor sau analizelor;
cunoştinţele înmagazinate în baza de cunoştinţe depind foarte mult de expertul uman
care le exprimă şi actualizează.
Sistemele Expert, sunt un element cheie în aşa numita a 5-a generaţie de calculatoare.
Aceste maşini, nu îţi vor spune doar ceea ce vrei să ştii, ci şi cum să găseşti ceva, fără ca să fie
nevoie să cunoşti un limbaj de programare.
75
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
76
ARHITECTURI DE SISTEME EXPERT.APLICAŢII ÎN MEDICINĂ.
VII. BIBLIOGRAFIE
1) http://www.ifi.unizh.ch/groups/ailab/people/bongard/migros/LectMon830.pdf
2) ”Computaţional 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, Bucureşti 2002
6) ”Sisteme Expert cu Prolog” - Constantin Sambotin, Bucureşti 1997
7) ”Sisteme inteligente în management, contabilitate, finanţe bănci ş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ţă Cârstoiu
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
77