Budowa systemu ekspertowego (Praca dyplomowa)


Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
1 Wstęp ............................................................................................ 3
2 Cel pracy....................................................................................... 4
3 System ekspertowy ..................................................................... 4
3.1 Podział systemów ekspertowych........................................................... 6
3.2 Zalety i wady systemów ekspertowych ................................................. 7
3.3 Struktura budowy systemu ekspertowego ........................................... 8
3.3.1 Baza wiedzy........................................................................................ 9
3.3.2 Baza faktów ..................................................................................... 10
3.3.3 Mechanizm wnioskujÄ…cy ................................................................... 10
3.3.4 Mechanizm wyjaśniający .................................................................. 10
3.3.5 Edytor bazy wiedzy ........................................................................... 11
3.3.6 Interfejs użytkownika ........................................................................ 11
3.4 Etapy tworzenia systemu ekspertowego ............................................ 12
3.5 Reprezentacja wiedzy ........................................................................... 16
3.6 Mechanizm wnioskowania.................................................................... 18
3.6.1 Wnioskowanie wstecz....................................................................... 19
3.6.2 Wnioskowanie w przód ..................................................................... 22
4 Opis narzędzia e2gRuleEngine do budowy systemów
ekspertowych .................................................................................. 24
5 Budowa systemu ekspertowego wspomagajÄ…cego decyzje
medyczne ......................................................................................... 29
6 Testowanie systemu .................................................................. 43
7 Podsumowanie........................................................................... 48
Bibliografia....................................................................................... 48
yródła internetowe .......................................................................... 48
Spis rysunków ................................................................................. 49
Spis tabel ......................................................................................... 49
2
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
1 Wstęp
Sztuczna inteligencja (ang. Artificial intelligence, w skrócie A.I) jest dziedziną
informatyki zajmującą się odwzorowywaniem inteligentnego działania człowieka i
symulowaniem tej aktywności w maszynach oraz programach komputerowych.
Jednym z użytecznych zastosowań A.I są systemy ekspertowe. Do grupy
pionierów zajmujących się tymi systemami należy Edward Albert Feigenbaum.
Według niego definicja systemu ekspertowego brzmi następująco:  Jest to
inteligentny program komputerowy wykorzystujÄ…cy procedury wnioskowania do
rozwiązywania tych problemów, które są na tyle trudne, że normalnie wymagają
znaczącej ekspertyzy specjalistów. Wiedza (niezbędna, by zapewnić odpowiedni
poziom ekspertyzy), wraz z procedurami wnioskowania, może być uważana za
model ekspertyzy, normalnie posiadanej tylko przez najlepszych specjalistów w tej
dziedzinie. Wiedza systemu eksperckiego składa się zazwyczaj z faktów i
heurystyk. Fakty są podstawą bazy wiedzy systemu - informacją, która jest ogólnie
dostępna i powszechnie akceptowana przez specjalistów w danej dziedzinie.
Heurystyki są zwykle bardziej subiektywną (?) informacją, która charakteryzuje
proces oceny i rozwiązywania problemu przez określonego specjalistę.
Przykładami heurystyk są: intuicyjne domysły, przypuszczenia, zdroworozsądkowe
zasady postępowania. Poziom ekspertyzy, oferowany przez dany system
ekspercki, jest przede wszystkim funkcją rozmiaru i jakości bazy wiedzy danego
systemu. [6].
W przypadku medycyny ekspertem posiadajÄ…cym odpowiedniÄ… wiedzÄ™ i
kwalifikacje, która pozawala na zdiagnozowanie pacjenta, jest lekarz. Ze względu
na obszernÄ… wiedzÄ™ zawartÄ… w nauce medycznej lekarze specjalizujÄ… siÄ™ w
różnych dziedzinach takich jak: chirurgia, endokrynologia, kardiologia i wielu
innych. Często w celu wyleczenia chorego potrzebna jest współpraca kilku
ekspertów o różnych specjalizacjach.
Szpitalny odział ratunkowy(skrót SOR) to miejsce gdzie trafiają chorzy w
nagłych przypadkach. W medycynie taki stan określa się jako nagłe zagrożenie
życia lub zdrowia. Chory, u którego wystąpił ten przypadek, jeżeli nie zostanie
wyleczony w jak najkrótszym okresie czasu, może stracić życie lub doznać
trwałego uszczerbku na zdrowiu. Specjalizacje jaką musi posiadać lekarz
dyżurujący w SOR to medycyna ratunkowa. W razie trudniejszego przypadku, w
celu postawienia trafnej diagnozy oraz podjęciu odpowiednich działań, musi
skonsultować się z specjalistami z innych oddziałów, posiadających szerszą
wiedzę z danej dziedziny. W polskich warunkach często nie są oni dostępni w
krótkim czasie. Jednak, że liczy się czas od przyjęcia do postawienia diagnozy
oraz podjęcia skutecznych zabiegów ratujących życie lub zdrowie pacjenta. W
takich przypadkach użyteczny okazuje się system ekspertowy, który zawiera bazę
wiedzy z różnych dziedzin medycyny. Pozwala on w krótkim czasie skorzystać z
wiedzy eksperta z danej specjalizacji. Obniża to koszty oraz czas potrzebny do
zdiagnozowania pacjenta.
Współcześnie do dokumentowania przyjęć pacjentów w szpitalu używa się
aplikacji zbudowanych w oparciu o architekturę klient-serwer. Zapewnia to dużą
elastyczność, znacząco upraszcza wprowadzanie zmian w oprogramowaniu oraz
3
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
pozwala na obsługę kliku klientów jednocześnie. Serwer udostępnia usługi,
łączność między dwoma modułami zapewniona jest przez żądania(ang. Request)
oraz odpowiedzi(ang. Response). Jednym z rodzajów programów działających w
architekturze klient-serwer jest aplikacja internetowa. Po stronie serwera znajduje
się program i baza danych. Użytkownik końcowy komunikuje się z programem za
pomocÄ… przeglÄ…darki internetowej, wprowadza odpowiednie dane do bazy danych
lub je z powrotem uzyskuje. W przypadku SOR użytkownikiem końcowym
odpowiedzialnym za obsługę przyjęć pacjentów jest lekarz i pielęgniarka.
Integracja systemu ekspertowego i aplikacji do obsługi przyjęć pozwala na
zachowanie architektury klient-serwer, ograniczenie kosztów szkoleń oraz
zapewnia bezpieczeństwo po stronie klienta.
2 Cel pracy
Celem pracy jest implementacja systemu ekspertowego w aplikacji służącej do
obsługi przyjęć pacjentów w szpitalnym oddziale ratunkowym. Zadaniem systemu
ekspertowego będzie wspomaganie decyzji medycznych podejmowanych przez
specjalistę medycyny ratunkowej dyżurującego na SOR. System ekspertowy
zostanie skonstruowany za pomocÄ… e2gRuleEngine. Program e2gRuleEngine jest
darmowym narzędziem do budowy systemów ekspertowych i został stworzony w
technologii JAVA aplet(ang. Applet), która pozwala na obsługę programu w oknie
przeglądarki internetowej. Dzięki takiemu rozwiązaniu możliwe jest zintegrowanie
systemu z aplikacją obsługi pacjentów działającą w technologii klient-serwer.
W pracy nie zostanie opisany program obsługujący przyjęcia, gdyż nie jest to
celem pracy. Zostanie użyty do pokazania sposobu wykorzystania
diagnostycznego systemu ekspertowego oraz przetestowania jego działania.
3 System ekspertowy
Z definicji E.A Feigenbaum a wynika, że system ekspertowy to program
komputerowy, którego wbudowane mechanizmy wnioskowania umożliwiają
rozwiązywanie problemów wymagających konsultacji z ekspertem danej dziedziny
wiedzy. Stopień ekspertyzy zależy od jakości oraz wielkości bazy wiedzy. System
ekspertowy posiada charakterystyczne cechy odróżniające go od innych
programów komputerowych. Należą do nich:
·ð Jawna reprezentacja wiedzy w wiÄ™kszoÅ›ci przypadków zrozumiaÅ‚a dla
użytkownika końcowego w postaci reguł, ram lub sieci semantycznych.
·ð Procedury sterowania odseparowane od wiedzy eksperckiej.
·ð Wykorzystanie procesów wnioskowania zamiast jawnie zdefiniowanego
algorytmu.
·ð Możliwość wyjaÅ›nienia metody rozwiÄ…zania okreÅ›lonego problemu.
Systemy ekspertowe znajdują głównie zastosowanie w dziedzinach
niesformalizowanych, gdzie nie istnieją ścisłe algorytmy rozwiązania danego
problemu. Do dziedzin tych należą między innymi:
·ð Medycyna
·ð Geologia
·ð Prawo
·ð Administracja i zarzÄ…dzanie
·ð Rolnictwo
4
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
·ð LeÅ›nictwo
·ð Architektura
·ð Chemia
Okazują się także przydatne przy rozwiązywaniu problemów NP-zupełnych, gdzie
algorytmy obliczeniowe z powodu bardzo długiego czasu działania stają się
zupełnie nie przydatne.
Pierwsze systemy ekspertowe powstały w latach 60. Poniżej zostały
przedstawione niektóre systemy, które znacząco przyczyniły się do rozwoju tej
dziedziny.
·ð Dendral - zbudowany okoÅ‚o 1965 roku w Stanford University przez Bruce
Buchanan a, Edwarda Feigenbaum a oraz Joshua Lederberg a. Był
wykorzystywany do określenia struktury molekularnej nieznanych
chemicznych związków organicznych w oparciu o analizę widm
spektroskopowych. Do budowy systemu Dendral wykorzystano język
programowania Interlisp. Dendral osiągnął wydajność porównywalną z
ekspertami - ludzmi dzięki zastosowaniu algorytmu stworzonego przez
Joshua Lederberg a służącego do semantycznego generowania wszystkich
możliwych struktur cząsteczkowych.[7]
·ð Macscyma  prace nad systemem rozpoczęły siÄ™ w 1968 roku w
Massachusetts Institute of Technology (MIT), rozwój projektu został
zakończony w 1982 roku. Został napisany w języku MACLisp. System
Macscyma służył do rozwiązywania złożonych problemów
algebraicznych.[8]
·ð Mycin  stworzony w latach 70 na uniwersytecie w Stanford system
ekspertowy służący do diagnozowania bakteryjnych chorób krwi,
znalezieniu odpowiedniej terapii i dawkowania leków w zależności od płci,
wieku i wagi chorego. Baza wiedzy opierała się na regułach IF - THEN
stworzonych przez grupę lekarzy. Reguły zawierały także współczynniki
pewności, które pozwalały na określenie stopnia niepewności odpowiedzi.
Działanie programu polegało na odpowiadaniu na pytania zadawane przez
system. Po zadaniu około 50-60 pytań system udzielał odpowiedzi. W
każdym momencie działania programu można było sprawdzić dlaczego
zostało zadane dane pytanie(za pomocą polecenia WHY).[9]
·ð Emycin  projekt powstaÅ‚ w 1981 po usuniÄ™ciu reguÅ‚ z bazy wiedzy systemu
Mycin. Dało to możliwość tworzenia własnych reguł. Emycin był pierwszym
szkieletowym systemem ekspertowym.
·ð Prospector  program byÅ‚ używany do wspomagania zadaÅ„ wykonywanych
przez geologów. Rozwijany od 1974 do 1983 w Stanford Research Institute.
Baza wiedzy składała się z około 1000 reguł. Dzięki programowi udało się
znalezć złoża molibdenu.[10]
·ð Internist/Caduceus  system ekspertowy opracowywany od poÅ‚owy lat 70
na University of Pittsburgh przez Harry Pople'a Jr. (informatyk) i Jacka D.
Myersa (internista). Program wspierał lekarzy w stawianiu diagnozy z
chorób wewnętrznych(interny). Osiągnął 85 % sprawności specjalisty z tej
dziedziny.[11]
5
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
W Polsce tworzeniem systemów ekspertowych zajmuje się firma AITECH.
Założył ją dr Krzysztof Michalik, który w latach 80 brał udział w tworzeniu
projektów PC-Expert i Diagnosta MC14007. W firmie AITECH powstał pierwszy
komercyjny szkielet systemu ekspertowego o nazwie PC-Shell. PC-Shell jest
narzędziem do budowy systemów ekspertowych z różnych dziedzin takich jak:
finanse, bankowość, diagnostyka, marketing, dydaktyka i wielu innych.
3.1 Podział systemów ekspertowych
Od lat 60 do czasów dzisiejszych wraz z rozwojem informatyki wytworzyło się
kilka podziałów systemów ekspertowych. Systemy ekspertowe dzielimy ze
względu na:
·ð Sposób dziaÅ‚ania:
żð Doradcze  to czy użytkownik uzna bÄ…dz nie zaakceptuje wyniku
wyjściowego(wniosek) sztucznej ekspertyzy, zależy tylko od niego.
W przypadku zanegowania odpowiedzi system ekspertowy poszuka
innego rozwiÄ…zania.
żð DziaÅ‚ajÄ…ce autonomicznie(bez kontroli czÅ‚owieka)  Systemy
działające bez ingerencji człowieka tam, gdzie potrzebna jest szybka
reakcja na zmieniajÄ…ce siÄ™ warunki(dane) np. systemu ekspertowe
czasu rzeczywistego sterujące pracą elektrociepłowni.
żð KrytykujÄ…ce  do systemu wprowadzane sÄ… dane wejÅ›ciowe i
wyjściowe. Zadaniem systemu jest przeanalizowanie i pokazanie
krok po kroku w jaki sposób dana konkluzja została osiągnięta.
·ð Dane otrzymywane na wyjÅ›ciu (wnioski systemu):
żð Diagnostyczne  wykorzystywane np. w medycynie, mechanice.
System ocenia bieżący stan na podstawie otrzymanych danych.
żð Prognostyczne(Predykacyjne)  sÅ‚użą do przewidywania przyszÅ‚ego
stanu w oparciu o istniejące dane(bieżący stan). Używane przy
prognozowaniu pogody.
żð Planowania  po osiÄ…gniÄ™ciu wyznaczonego celu planujÄ… dalsze
działanie.
·ð Sposób reprezentacji wiedzy:
żð Logika dwuwartoÅ›ciowa (ang. Boole a)  fakty i wnioski majÄ…
możliwość przyjęcia tylko jednej z dwóch wartości: prawda lub fałsz.
żð Logika wielowartoÅ›ciowa  argumenty faktów i wniosków mogÄ…
przyjmować jedną, kilka lub nie przyjmować żadnej wartości.
żð Logika rozmyta(ang. Fuzzy logic)  jeden z rodzajów logiki
wielowartościowej, gdzie między stanem prawda(0) a fałsz(1) istnieje
jeszcze pewien zbiór wartości.
·ð RealizacjÄ™ projektu systemu ekspertowego:
żð Systemy dedykowane  systemy tworzone zarówno przez inżyniera
wiedzy oraz projektant systemu (definicja w podrozdziale 3.3
 Struktura budowy systemu ekspertowego ). Do zadań inżyniera
wiedzy należy wypełnienie wiedzą eksperta bazy wiedzy, natomiast
funkcją projektanta systemu jest zbudowanie modułów
programu(podrozdział 3.3).
żð Systemy narzÄ™dziowe(tzw. szkieletowe systemy ekspertowe) 
system ekspertowy z pustÄ… bazÄ… wiedzy. Do budowy systemu
wystarczy inżynier wiedzy, którego celem jest zbudowanie bazy
wiedzy po konsultacji z ekspertem.
6
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
·ð PrzetwarzanÄ… informacjÄ™:
żð Systemy z wiedzÄ… pewnÄ…  gdy stwierdzenia w bazie wiedzy sÄ…
pewne np. logika dwuwartościowa.
żð Systemy z wiedzÄ… niepewnÄ…  prawdziwość niektórych stwierdzeÅ„
jest nie pewna np. logika rozmyta.
3.2 Zalety i wady systemów ekspertowych
Systemy ekspertowe jak każdy program komputerowy posiadają wady i zalety,
poniżej zostało wypunktowane ich zestawienie.
Zalety:
·ð Systemy ekspertowe rozwiÄ…zujÄ…ce problemy w czasie rzeczywistym, gdzie
wymagana jest analiza wielu danych w bardzo krótkim czasie działa lepiej
od człowieka, który nie jest w stanie przeanalizować tylu danych
jednocześnie. Systemy takie znajdują zastosowanie np. przy sterowaniu
elektrownią atomową, systemami stacji lub statków kosmicznych.
·ð Możliwe jest zgromadzenie wiedzy kilku ekspertów jednoczeÅ›nie, co
pozawala na ograniczenie kosztów zatrudnienia oraz pozwala
użytkownikowi systemu na efektywniejszą pracę.
·ð System ekspertowy tylko prezentuje swoje rozwiÄ…zania użytkownikowi, to
czy użytkownik skorzysta z rozwiązania zależy tylko od niego.
·ð Czas eksperta może być wykorzystany do rozwiÄ…zania trudniejszych
problemów. Aatwiejsze, często powtarzające się rozwiąże system
ekspertowy bez obecności specjalisty.
·ð Sprawność systemu zależy głównie od jakoÅ›ci i iloÅ›ci wiedzy zapisanej w
bazie wiedzy a nie od metody wnioskowania.
·ð ModuÅ‚owa budowa i oddzielenie bazy wiedzy od reszty systemu pozwala na
wprowadzanie zmian bez naruszania integracji całego systemu
ekspertowego.
Wady:
·ð Zrobienie jakoÅ›ciowo i iloÅ›ciowo dobrej bazy wiedzy wymaga staÅ‚ej
obecności eksperta, czasu oraz nakładów finansowych. Zaprojektowanie
systemu ekspertowego jest opłacalne tylko wtedy, gdy będzie on używany
przez dłuższy okres czasu i dużą grupę osób.
·ð Ograniczenie  dialogu z programem w wyniku używania klawiatury.
·ð System ekspertowy w porównaniu do specjalisty z danej dziedziny nie
potrafi sam rozszerzać swojej wiedzy. Jest całkowicie zależny od
użytkownika.
·ð Nie zawsze wiedza eksperta może być zapisana w sztywnych ramach
reprezentacji wiedzy(reguły, ramy, sieci semantyczne).
·ð UzupeÅ‚nianie faktów i reguÅ‚ w bazie wiedzy może doprowadzić do
powstania błędów, co utrudni lub uniemożliwi poprawne działanie systemu.
7
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Zalety i wady systemów ekspertowych wynikają również z porównania
ekspertyzy sztucznej i naturalnej. Za ekspertyzę naturalną odpowiada człowiek,
specjalista z danej dziedziny natomiast ekspertyza sztuczna jest wynikiem
działania programu komputerowego(systemu ekspertowego). Tabela 1 porównuje
zalety i wady tych dwóch ekspertyz.
Tab. 1. Porównanie ekspertyzy sztucznej z naturalną.
Ekspertyza naturalna Ekspertyza sztuczna
Zalety
·ð twórcza (oparta na wiedzy i ·ð staÅ‚a, nie traci na wartoÅ›ci z
intuicji) upływem czasu
·ð trudna w dokumentacji ·ð Å‚atwa w dokumentacji
·ð adaptacyjna ·ð Å‚atwo dostÄ™pna (nie jest
wymagana obecność eksperta z
·ð wykorzystanie wszystkich
danej dziedziny)
zmysłów
·ð zgodna z bazÄ… wiedzy
·ð szeroki zakres
Wady
·ð utrudniona dokumentacja ·ð wÄ…ski zakres zgodny z faktami i
regułami zawartymi w bazie
·ð z upÅ‚ywem czasu wystÄ™puje
wiedzy
utrata wartości ekspertyzy
·ð przetwarzanie wiedzy w sposób
·ð kosztowna
mechaniczny
·ð nie dajÄ…ca siÄ™ przewidzieć
3.3 Struktura budowy systemu ekspertowego
W celu zrozumienia struktury systemu ekspertowego należy wyjaśnić rolę ludzi,
którzy współdziałają z systemem:
·ð Ekspert z danej dziedziny  wedÅ‚ug definicji zawartej w  Nowym sÅ‚owniku
języka polskiego to  specjalista powołany do wydania orzeczenia lub opinii
w sprawach spornych, wchodzących w zakres jego kompetencji; biegły,
rzeczoznawca. [1]
·ð Inżynier wiedzy  to osoba zajmujÄ…ca siÄ™ kodowaniem wiedzy przekazanej
przez eksperta w formę deklaratywną możliwą do użycia przez system
ekspertowy[12]
·ð Użytkownik  osoba korzystajÄ…ca z systemu ekspertowego z zamiarem
uzyskania porady, którą mógł by uzyskać od eksperta z danej dziedziny.
W przypadku systemów dedykowany, gdy do budowy systemu ekspertowego
nie jest wykorzystywany szkielet(ang. Shell) dochodzi jeszcze jedna ważna rola:
·ð Projektant systemu (inżynier systemu)  informatyk, którego celem jest
zaprojektowanie i zbudowanie modułów systemu ekspertowego.
W zależności od wielkości projektu inżynier wiedzy i inżynier systemu może być
tÄ… samÄ… osobÄ….
8
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Systemy ekspertowe mają ściśle określoną budowę. Jest to wzorzec projektowy
według, którego należy konstruować te systemy.
Rys. 1. Struktura systemu ekspertowego.
Systemów ekspertowych nie należy mylić z systemami z bazą wiedzy. Systemy
z bazą wiedzy nie posiadają modułu wyjaśniającego.
3.3.1 Baza wiedzy
Zawiera wiedzę eksperta przetworzoną przez inżyniera wiedzy i zgromadzoną w
postaci sformalizowanej(reguły, ramy, sieci semantyczne), tak, aby mogła zostać
odczytana przez mechanizm wnioskujący systemu ekspertowego. Ważną zasadą
jest niesprzeczność i spójność przekształconej wiedzy. Nie zachowanie tej zasady
przez inżyniera wiedzy może doprowadzić do utrudnienia bądz całkowitego braku
działania program. Rozróżniamy następujące rodzaje baz wiedzy:
·ð Baza tekstów (ang. Text base)  skÅ‚ada siÄ™ z nieuporzÄ…dkowanych danych.
·ð Baza danych (ang. data base)  struktura zawierajÄ…ca dane uÅ‚ożone w
sposób uporządkowany
·ð Baza reguÅ‚ (ang. Rule base)  jej zawartość stanowi wiedza zapisana w
postaci reguł z wybranej dziedziny
·ð Baza modeli (ang. Model base)  obejmuje modele matematyczne danej
dziedziny.
·ð Baza wiedzy zdroworozsÄ…dkowej (ang. Common sense knowledge base) 
gromadzi reguły potencjalnych i racjonalnych działań człowieka.
Odzwierciedla meta wiedzę systemu, czyli jak przetwarzać wiedzę zawartą
w systemie ekspertowy.
9
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Większości przypadków występuje baza reguł. O to przykład reguły w tym typie
bazy wiedzy: IF rozrusznik nie odpala silnika AND wyczuwasz zapachu benzyny
THEN zbiornik paliwa jest pusty.
Budowa reguły z zaznaczonymi słowami kluczowymi zostanie opisane w
następnym podrozdziale 3.4  Reprezentacja wiedzy ).
3.3.2 Baza faktów
Inaczej pamięć podręczna lub baza danych zmiennych. Baza pomocnicza, w
niej zapisywane są fakty oraz wnioski w trakcie użytkowania przez użytkownika
systemu ekspertowego. Baza faktów umożliwia także działanie mechanizmu
wyjaśniającego.
3.3.3 Mechanizm wnioskujÄ…cy
Stanowi najważniejszą część systemu ekspertowego.  Maszyna wnioskująca
jest modułem, który wykorzystuje odpowiednie sposoby wnioskowania w celu
znalezienia rozwiÄ…zania lub postawienia diagnozy .[2] Metody wnioskowania to
algorytmy pozwalające doprowadzić konsultację do konkluzji na podstawie faktów
i reguł zawartych w bazie wiedzy oraz danych odbieranych przez użytkownika.
3.3.4 Mechanizm wyjaśniający
Udostępnia opcję sprawdzenia w każdym momencie konsultacji dlaczego
została użyta dana reguła lub zadane pytanie. Jest niezwykle przydatny dla
inżyniera wiedzy w trakcie projektowania systemu ekspertowego. Sprawdzając
wyniki wnioskowania za pomocą mechanizmu wnioskowania inżynier może
sprawdzić jak zachowuje się system ekspertowy oraz sprawdzić współdziałanie
faktów i reguł.
Rys. 2. Moduł wyjaśniający programu PC-Shell.
10
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
3.3.5 Edytor bazy wiedzy
Pozwala użytkownikowi na uzupełnianie wiedzy przez wprowadzanie nowych
faktów i reguł do bazy wiedzy systemu ekspertowego. Powinien zawierać
mechanizm sprawdzający poprawność i niezgodność reguł w celu zapewnienia
bezbłędnego działania systemu.
Rys. 3. Edytor e2gRuleWriter do budowy bazy wiedzy dla e2gRuleEngine.
3.3.6 Interfejs użytkownika
Bez tego modułu nie mogłaby istnieć interakcja użytkownika z pozostałymi
częściami systemu ekspertowego oraz bazą wiedzy. Stanowi mechanizm
wejścia/wyjścia. Odbiera dane od użytkownika zwracając rezultaty
przeprowadzonego działania na bazie wiedzy przez mechanizm wnioskujący.
Odpowiada także za obsługę edytora bazy wiedzy.
11
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Rys. 4. Interfejs systemu ekspertowego zbudowanego za pomocą narzędzia
e2gRuleEngine.
3.4 Etapy tworzenia systemu ekspertowego
W procesie budowy systemu ekspertowego zazwyczaj biorą udział trzy grupy
osób: eksperci, inżynierowie wiedzy i użytkownicy. Osoby te współpracują ze
sobą w trakcie trwania różnych okresów tworzenia systemu. Proces ten został
przedstawiony na rysunku numer 5 i składa się z:
·ð Identyfikacji problemu  odbywa siÄ™ przy współpracy eksperta z inżynierem
wiedzy. Polega na zdefiniowaniu celu oraz wymagań konstruowanego
systemu ekspertowego. Problem stawiany przed systemem ekspertowym
powinien charakteryzować się:
żð zawężonÄ… specjalizacjÄ…,
żð musi być dokÅ‚adnie zdefiniowany,
żð do rozwiÄ…zania problemu wykonywane sÄ… operacje na symbolach
(brak jawnego algorytmu rozwiÄ…zania).
Dla ułatwienia identyfikacji powinien zostać stworzony raport zawierający:
żð Cel  definicja zadaÅ„ stawianych przed systemem ekspertowym.
żð RozwiÄ…zanie  okreÅ›la wynik dziaÅ‚ania systemu.
żð WiedzÄ™  zródÅ‚o wiedzy z danej dziedziny (najczęściej jest nim
ekspert). Istnieje prawdopodobieństwo braku dostępności eksperta z
danej dziedziny. W tym przypadku należy określić inne zródła
wiedzy.
żð Zapotrzebowanie  okreÅ›lenie grupy ewentualnych kupujÄ…cych.
żð InfrastrukturÄ™  Å›rodowisko sprzÄ™towe potrzebne do dziaÅ‚ania
systemu.
żð Koszty  ekonomiczne uzasadnienie projektu.
12
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Rys. 5. Etapy tworzenia systemu ekspertowego.
·ð Pozyskiwanie wiedzy  na tym etapie produkcji systemu ekspertowego
inżynier wiedzy dokumentuje wiedzę, po wcześniejszym rozpoznaniu
dziedziny w procesie identyfikacji problemu, przekazanÄ… przez eksperta. W
przypadku niemożliwości uzyskania wiedzy od eksperta można skorzystać
z innych zródeł do, których zaliczamy:
żð literaturÄ™,
żð dokumentacjÄ™,
żð bazy i hurtownie danych,
żð eksperymenty.
Proces pozyskiwania wiedzy składa się z dwóch etapów: nabywania i
dokumentowania wiedzy z danej dziedziny oraz modelowania nabytej
wiedzy. Faza nabywania i dokumentowania polega na:
żð rozbiciu problemów na podproblemy,
żð ustaleniu faktów w postaci obiektów, atrybutów i wartoÅ›ci oraz
udokumentowaniu relacji jakie zachodzą między faktami,
żð znalezieniu rozwiÄ…zania problemu.
13
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Modelowanie nabytej wiedzy to projekt jawnego wzorca, który w dalszym
cyklu projektowania systemu pozwoli na sformalizowanie informacji
nabytych od eksperta w celu przeniesienia ich do bazy wiedzy. W
modelowaniu występują następujące metody:
żð Diagram Obiekt - Atrybut - Wartość(ang. Object - Attribute - Value, w
skrócie OAV)  służy do opisywania rzeczywistych obiektów.
Upraszczają formalizowanie faktów w bazie danych.
Rys. 6. Diagram OAV obiektu Książka.
żð Tabela decyzyjna - Å‚atwa i czytelna metoda zapisywania wiedzy
zarówno dla inżyniera wiedzy jak i eksperta. Zbudowana jest z
wierszy zawierających warunki i czynności. Stanowi jawny i
klarowny zapis warunków, które należy spełnić, aby mogła zostać
wykonana czynność.
Tab. 2. Tablica decyzyjna
Warunki
Okłada Miękka Miękka Miękka Twarda Twarda Twarda
Wielkość Mała Średnia Duża Mała Średnia Duża
Cena Tania Tania Tania Tania Tania Droga
Czynności
Kupić Nie Nie Tak Tak Nie Nie
14
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
żð Drzewa decyzyjne  skÅ‚adajÄ… siÄ™ z wÄ™złów i gaÅ‚Ä™zi. WÄ™zÅ‚y definiujÄ…
podejmowane decyzje lub zmiany stanu rzeczy natomiast gałęzie
określają podjęte akcje. Do jednego węzła prowadzi tylko jedna
gałąz
Rys. 7. Drzewo decyzyjne.
żð Diagram przepÅ‚ywu  zbudowane podobnie jak drzewa decyzyjne, z
tą różnicą, że do jednego węzła może prowadzić wiele gałęzi.
Rys. 8. Diagram przepływu.
15
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
·ð Reprezentacja wiedzy  formalizowanie modelu wiedzy eksperta. Szerszy
opis w podrozdziale 3.5  Reprezentacja wiedzy .
·ð Implementacja systemu  opracowanie gotowego systemu ekspertowego.
Wprowadzenie, przez inżyniera wiedzy, sformalizowanej wiedzy do bazy
wiedzy szkieletowego bÄ…dz dedykowanego systemu ekspertowego.
·ð Testowanie systemu  weryfikacja poprawnoÅ›ci dziaÅ‚ania systemu. W
testach może uczestniczyć użytkownik.
3.5 Reprezentacja wiedzy
Działanie systemu ekspertowego zależy od jakości i ilości informacji zawartych
w bazie wiedzy, która składa się z odpowiednio przetworzonych i
sformalizowanych faktów i heurystyk tak, aby umożliwić wnioskowanie. Fakt to
określenie stanu rzeczy, zjawisko, które zachodzi lub zaszło w rzeczywistości. [1]
Heurystyki natomiast, stanowią sposób rozwiązywania problemów przez
ekspertów biorących pod uwagę zaistniałe fakty. W bazie wiedzy heurystyki
występują pod postacią relacji i procedur. Relacje obejmują zależności między
dwoma lub większą liczbą faktów, z kolei procedury to mechanizmy jakim
podlegają fakty i relacje. Do najczęściej używanych technik reprezentowania
należą:
·ð Sieci semantyczne  to graficzna interpretacja, w postaci grafu, relacji i
asocjacji zachodzących między stwierdzeniami oraz ich składowymi.
Stwierdzenia zapisywane są w postaci trójki: obiekt  atrybut - wartość, które
można przedstawić za pomocą diagramu OAV(rys. 7.). Sieć semantyczna
składa się z węzłów i łuków. Węzły mogą oznaczać obiekty, atrybuty
obiektów lub wartości atrybutów. Natomiast łuki służą do opisywania relacji
jakie zachodzą między węzłami. Sieci semantyczne mogą być także
wykorzystane do reprezentacji wiedzy niepewnej przez dodanie wag do
węzłów i łuków.[3] Zaleta tej techniki reprezentacji to przedstawienie wiedzy
w formie graficznej co przemawia do wyobrazni, jest intuicyjne i efektywne.
Rys. 9. Przykład sieci semantycznej.
16
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
·ð ReguÅ‚y produkcyjne  wiÄ™kszość systemów ekspertowych opartych jest o tÄ™
technikę reprezentacji wiedzy, gdyż posiada wiele zalet takich jak:
żð bardzo zrozumiaÅ‚y zapis,
żð prosta modyfikacja bazy wiedzy przez dodanie nowych lub zmianÄ™
istniejących reguł,
żð uÅ‚atwione rozwiÄ…zanie problemu przez wÅ‚aÅ›ciwy dobór grupy reguÅ‚.
Reguły mają postać:
JEŻELI (Warunek) TO (Konkluzja)
Standardowo w bazie wiedzy zapisywane są w postaci kanonicznej(język
angielski):
IF(Warunek)THEN(Konkluzja)
Konkluzja(wniosek) to następstwo spełnienia(wystąpienia) warunku.
Warunki i wnioski składają się z par atrybut  wartość. Przykład:
IF Zwierzę jest Wróbel THEN Zwierzę ma gniazdo
IF Zwierzę jest Wróbel THEN Zwierzę jest Ptak
IF Zwierzę jest Ptak THEN Zwierzę ma Skrzydła
Możliwe jest łączenie kilku warunków oraz konkluzji za pomocą koniunkcji
oraz alternatywy. Koniunkcja to iloczyn logiczny, którego symbolem jest
AND. W tym wypadku reguły mają postać:
IF Zwierzę jest Ptak THEN Zwierzę ma Pióra AND Zwierzę ma Skrzydła
IF Ptak ma Gniazdo AND Ptak jest Mały THEN Ptak jest Wróbel
IF Ptak ma Gniazdo AND Ptak jest Mały THEN Ptak jest Wróbel
AND Wróbel ma Skrzydła
Alternatywa, inaczej suma logiczna, jest reprezentowana przez symbol OR i
reguły prezentują się następująco:
IF Zwierzę ma Gniazdo OR Zwierzę ma Pióra THEN Zwierzę jest Ptak
IF Zwierzę jest Ptak THEN Zwierzę jest Małe OR Zwierzę jest Średnie
IF Zwierzę ma Gniazdo OR Zwierzę ma Pióra THEN Zwierzę jest Małe OR
ZwierzÄ™ jest Åšrednie
Reguły produkcyjne mogą się zagnieżdżać. Sytuacja taka występuje wtedy,
gdy konkluzja(wniosek) jednej reguły jest warunkiem(przesłanką) innej.
Prowadzi to do podziału warunków na możliwe do zapytania, których
wartość ustalana jest przez odpowiedz użytkownika na zapytanie systemu
ekspertowego oraz warunki wynikające z konkluzji innej reguły. Pozwala to
na ograniczenie zapytań i skrócenie czasu konsultacji.
Baza wiedzy może zawierać wiedzę niepewną, w tym wypadku wzór
reguły wygląda następująco:
JEŻELI (Warunek) TO (Konkluzja)(CF)
17
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Współczynnik pewności ( ang. certainty factors lub confidence factors, w
skrócie CF) to wartość wyrażona w liczbach. Zbiór wartości jakie może
przyjmować, określa szkielet systemu ekspertowego. Do opisania metod
współczynnika zostaną użyte procenty z przedziału <0%,100%>, dla
warunku A współczynnik ten wynosi 60%, warunek B ma 80%.
Metody obliczania współczynnika pewności:
żð Minimum  pod uwagÄ™ brana jest najmniejsza wartość współczynnika
wartości warunków. W tym wypadku CF konkluzji wynosi 60%.
żð Maksimum  CF wynosi tyle, ile najwiÄ™kszy współczynnik warunku.
CF konkluzji ma 80%.
żð Åšrednia  współczynnik pewnoÅ›ci obliczany jest na zasadzie Å›redniej
arytmetycznej współczynników warunków. CF równe jest 70%.
żð Suma probabilistyczna  wzór na obliczanie współczynnika pewnoÅ›ci
wygląda następująco:
CF= A+(B/100)*(100-A)
Po podstawieniu wartości A i B otrzymujemy wynik CF konkluzji, który
jest równy 92%.
żð Iloczyn  Obliczenia polegajÄ… na pomnożeniu dwóch CF przesÅ‚anek
·ð Ramy  to strukturalny opis danych. Rama(rys. 10.) reprezentuje obiekt,
który posiada atrybuty i wartości. Atrybuty, czyli cechy obiektu, zapisywane
są w klatkach (ang. Slot), wartości w fasetach(ang. Facet). Klatki jednego
obiektu nie mogą się powtarzać, fasety w jednej klatce nie mogą mieć tej
samej nazwy.
Rys. 10. Przykładowa rama.
Relacje między ramami określone są przez hierarchię dziedziczenia, czyli
istnieją ramy podstawowe, podrzędne i nadrzędne. Wynik wnioskowania jest
rezultatem przechodzenia przez tÄ™ hierarchiÄ™.
3.6 Mechanizm wnioskowania
Istnieją dwa główne typy metod wnioskowania:
·ð wnioskowanie w tyÅ‚(ang. Backward chaining),
18
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
·ð wnioskowanie w przód (ang. Forward chaining).
Oba mechanizmy zostaną opisane w kolejnych podrozdziałach. Baza wiedzy, na
której zostanie przeprowadzone wnioskowanie będzie składać się z reguł z wiedzą
pewną. W systemie ekspertowym o nazwie AWARIA została zaimplementowana
następująca baza wiedzy:
Tab. 3. Baz wiedzy programu AWARIA.
Numer Treść
reguły reguły
1 Jeżeli światła po włączeniu nie świecą i
rozrusznik po przekręceniu kluczyka nie zaskakuje
to zalecana czynność polega na naładowaniu lub zmianie akumulatora
2 Jeżeli zbiornik paliwa jest pusty
to zalecana czynność polega na napełnieniu baku samochodu paliwem
3 Jeżeli rozrusznik po przekręceniu kluczyka zaskakuje powoli i
moc świecenia świateł jest słaba
to zalecana czynność polega na naładowaniu akumulatora
4 Jeżeli rozrusznik po przekręceniu kluczyka zaskakuje i
zapach paliwa w baku jest obecny
to zalecana czynność polega na odczekaniu 10 minut i ponownemu
uruchomieniu zalanego samochodu
5 Jeżeli rozrusznik po przekręceniu kluczyka zaskakuje i
zapach paliwa w baku jest nie obecny
to zbiornik paliwa jest pusty.
Reguły w trakcie wnioskowania będą zmieniały swój stan. Reguła nie sprawdzona
przez system będzie aktywna, natomiast sprawdzona, której konkluzja nie
zostanie potwierdzona zmieni status na odrzuconą. Gdy wniosek okaże się
prawdziwy reguła stanie się odpalona. Stan przechowywany jest w bazie faktów.
3.6.1 Wnioskowanie wstecz
Wnioskowanie wstecz(ang. hypothesis driver), czyli wnioskowanie dedukcyjne,
to proces polegający na potwierdzeniu prawdziwości hipotezy na podstawie
przesłanek. Hipoteza to cel lub inaczej rozwiązanie problemu stawianego przed
systemem ekspertowym. Przesłanka jest traktowana jako nowa hipoteza w
przypadku, gdy użytkownik nie zna jej wartości lub stanowi konkluzję innej
reguły(zagnieżdżanie reguł). W trakcie działania systemu algorytm wnioskowania
wstecz szuka przesłanek potwierdzających nowe hipotezy dopóki nie zostaną
znalezione wartości przesłanek reguły, której konkluzja stanowi cel. Do
przechowywania celu(ang. Goal) głównego oraz nowych hipotez(ang. Subgoal)
służy stos. Stos(rys. 12 na stronie 22) to struktura danych, w których ostatni
element dołączony do struktury jest pierwszym elementem do zdjęcia ze
stosu(bufor typu LIFO ang. last in, first out). Wnioskowanie wstecz działa dopóki
na stosie nie zostanie główny cel i nie ma więcej reguł aktywnych które mogły by
dołączyć nowe hipotezy.
19
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Rys. 11. Schemat blokowy wnioskowania wstecz.
Użytkownik zamierza znalezć przyczynę awarii samochodu. W tym celu używa
nasz system ekspertowy AWARIA z bazÄ… wiedzy przedstawionÄ… w tabeli 3. Celem
wnioskowania jest znalezienie rozwiązania co zrobić, aby uruchomić samochód.
Moduł wnioskowania umieszcza cel na stosie(zalecana czynność) i sprawdza
pierwszą aktywną regułę, której konkluzja jest celem. Reguła pierwsza zawiera
sprawdzaną hipotezę i nie zagnieżdża się. System oczekuje podania wartości
przesłanek przez użytkownika. Odpowiedzi użytkownika i stos celów przedstawia
tabela numer 4.
Tab. 4 . Rozpoczęcie wnioskowania wstecz.
Fakty
Atrybut Wartość
Światła świecą
Rozrusznik zaskakuje
Cel główny wnioskowania zalecana czynność
Stos celi 1. zalecana czynność
20
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Z odpowiedzi użytkownika wynika, że światła świecą i rozrusznik zaskakuje,
więc reguła pierwsza zmienia stan z aktywnej na odrzuconą. Konkluzja tej reguły
nie spełnia przesłanek. Pod uwagę jest brana następna aktywna reguła
zawierająca cel znajdujący się na szczycie stosu, jest to reguła numer dwa.
System ekspertowy próbuje ustalić jaką wartość ma atrybut zbiornik paliwa.
Użytkownik nie wie czy w zbiorniku znajduje się paliwo, więc algorytm wnioskujący
dodaje nową hipotezę na wierzchołku stosu(tab. 5), a reguła druga nadal
pozostaje aktywna.
Tab. 5. Kolejny etap wnioskowania wstecz.
Fakty
Atrybut Wartość
Światła świecą
Rozrusznik zaskakuje
Zbiornik paliwa nie wiem
Cel główny wnioskowania zalecana czynność
Stos celi 2. zbiornik paliwa
1. zalecana czynność
Na szczycie stosu znajdujÄ™ siÄ™ teraz zbiornik paliwa. System przeszukuje bazÄ™
wiedzy w celu odnalezienia reguł aktywnych, których atrybut wniosku to zbiornik
paliwa. W wyniku tego działania zostaje sprawdzona reguła piąta. Reguła zawiera
dwa warunki. Pierwszy z nich, atrybut rozrusznik, znajduje się już w bazie faktów i
jest prawdziwy, natomiast drugi wymaga odpowiedzi użytkownika. Według
użytkownika zapach paliwa w baku nie jest obecny. Reguła piąta spełniła
przesłanki, więc wartość zbiornika paliwa w bazie faktów zmieniana jest na pusty.
Atrybut zbiornik paliwa ściągany jest ze szczytu stosu.
Tab. 6. Wnioskowanie wstecz po usunięciu ze stosu atrybutu zbiornik paliwa.
Fakty
Atrybut Wartość
Światła świecą
Rozrusznik zaskakuje
Zbiornik paliwa nie wiem
Cel główny wnioskowania zalecana czynność
Stos celi 1. zalecana czynność
Na wierzchołku stosu znowu znajduje się zalecana czynność, więc kolejny raz
zostaje sprawdzona pierwsza reguła aktywna z celem głównym wnioskowania w
konkluzji, jest to ponownie reguła druga. Tym razem jej warunki pasują do faktów
w pamięci podręcznej systemu ekspertowego. Zostaje znaleziona wartość
głównego celu wnioskowania przy pominięciu reguł: czwartej i piątej. Zalecana
czynność polega na napełnieniu baku samochodu paliwem.
Przykład wnioskowania wstecz ukazuje jego zalety. Wnioskowanie dedukcyjne nie
wymaga sprawdzenia wszystkich reguł w bazie wiedzy co powoduje
wygenerowanie mniejszej ilości faktów w wyniku czego oszczędzana jest pamięć
podręczna komputera oraz krótki czas ekspertyzy.
21
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Rys. 12. Schemat działania stosu celi modułu wnioskowania.
3.6.2 Wnioskowanie w przód
Wnioskowanie w przód(ang. Data driven), inaczej wnioskowanie indukcyjne,
rozpoczyna się od sprawdzenia faktów znajdujących się w bazie faktów(pamięci
podręcznej) systemu ekspertowego i porównaniu ich z częścią reguł
odpowiedzialną za warunki(IF). Reguła spełniająca warunki zostaje, przez
mechanizm wnioskujÄ…cy, oznaczona jako prawdziwa, a jej konkluzja jest
dodawana do pamięci podręcznej. W trakcie trwania procesu wnioskowania fakty
mogą być także usuwane z pamięci podręcznej. Nowe fakty są generowane
dopóki nie zostanie znaleziony konkluzja lub nie zostaną wygenerowane nowe
fakty(zbiór reguł aktywnych będzie pusty). Istnieje prawdopodobieństwo
wystąpienia kilku reguł do odpalenia. Wybranie odpowiedniej możliwe jest przez
użycie strategii sterowania wnioskowaniem. Należą do nich:
·ð Strategia Å›wieżoÅ›ci  najpózniej dodana reguÅ‚a do bazy faktów ulega
odpaleniu.
·ð Strategia blokowania  reguÅ‚y już wykorzystane sÄ… usuwane z bazy faktów
co zapobiega powstawaniu pętli wnioskowania.
·ð Strategia specyficznoÅ›ci  wybierana jest reguÅ‚a o najwiÄ™kszej liczbie
warunków.
·ð Strategia pierwszej reguÅ‚y  pierwsza reguÅ‚a, której warunki zostajÄ…
spełnione zmienia stan na odpaloną
·ð Strategia przypadkowoÅ›ci  wybranie reguÅ‚y w sposób losowy. Używana
jako strategia pomocnicza po wykorzystaniu jednej z wcześniej
wymienionych strategii.
22
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Rys. 13. Diagram wnioskowania indukcyjnego.[13]
Użytkownik ponownie zamierza skorzystać z programu AWARIA, tym razem w
systemie zaimplementowane jest wnioskowanie w przód. Aby program rozpoczął
inferencję opartą na tym algorytmie, w pamięci podręcznej systemu muszą
znalezć się fakty. Użytkownik udzielił odpowiedzi na pytania o: światła, rozrusznik,
zbiornik paliwa, moc świecenia świateł, zapach paliwa w baku. Odpowiedzi i cel
wnioskowania przedstawia tabela 4.
Tab. 7. Wnioskowania w przód. Ustalenie faktów przez użytkownika
Fakty
Atrybut Wartość
Światła świecą
Rozrusznik zaskakuje
Zbiornik paliwa nie wiem
Moc świecenia świateł w normie
Zapach paliwa w baku nie obecny
Cel zalecana czynność
23
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
System rozpoczyna wnioskowanie po ustaleniu wartości faktów przez
użytkownika. Warunki reguły pierwszej nie zostały spełnione, aby ją potwierdzić,
gdyż światła samochodu święcą i rozrusznik zaskakuje. Reguła ta jest usuwana ze
zbioru reguł aktywnych. Reguła druga nadal pozostaje oznaczona jako aktywna,
ponieważ użytkownik nie wie czy zbiornik paliwa jest pusty. Fakty zapisane w
pamięci podręcznej także nie spełniły przesłanek reguły trzeciej i czwartej, więc
ich wnioski nie zostały potwierdzone(reguły zostały odrzucone). Warunki ostatniej
reguły zostały osiągnięte. Z konkluzji tej reguły wynika, że zbiornik paliwa jest
pusty, w skutek tego dochodzi do aktualizacji bazy faktów i aktualizacji wartości
atrybutu zbiornik paliwa. Odpalenie tej reguły powoduje jej usunięcie ze zbioru
reguł aktywnych.
Tab. 8. Wnioskowanie w przód. Aktualizacja bazy faktów.
Fakty
Atrybut Wartość
Światła Świecą
Rozrusznik Zaskakuje
Zbiornik paliwa Pusty
Moc świecenia świateł w normie
Zapach paliwa w baku nie obecny
Cel zalecana czynność
Reguła druga, nadal aktywna, ulega ponownemu sprawdzeniu i zostaje odpalona.
Zbiornik paliwa jest pusty, więc zalecana czynność polega na napełnieniu baku
samochodu paliwem. System AWARIA wyświetla za pomocą interfejsu
użytkownika rozwiązanie problemu. W tym wypadku wnioskowanie jest
przerywane, ponieważ cel został osiągnięty i nie ma więcej reguł aktywnych do
sprawdzenia.
Wnioskowanie w przód doskonale sprawdza się systemach pracujących bez
kontroli użytkownika gdzie dane, czyli fakty, zbierane są automatycznie lub gdy
wymagane jest podanie wszystkich informacji przez rozpoczęciem wnioskowania
np. ankieta. Wadą wnioskowania indukcyjnego jest możliwość całkowitego
zapełnienia pamięci operacyjnej komputera przez dodanie znacznej ilości faktów
do pamięci podręcznej systemu ekspertowego.
4 Opis narzędzia e2gRuleEngine do budowy systemów
ekspertowych
Aplet e2gRuleEngine(v8.01) to szkieletowy system ekspertowego dostępny za
darmo na stornie http://expertise2go.com. Budowa własnego systemu
ekspertowego polega na uzupełnienia bazy wiedzy informacjami interesującej nas
dziedziny wiedzy. Baza wiedzy zapisywana jest w osobnym pliku. System
zbudowany w oparciu o e2gRuleEngine może być uruchamiany w trzech różnych
środowiskach:
·ð przez wywoÅ‚anie w przeglÄ…darce strony internetowej, która uruchamia
e2gRuleEngine jako plik odczytywany bezpośrednio z dysku twardego
komputera,
·ð na lokalnym serwerze internetowym np. Apache Web serwer,
24
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
·ð używajÄ…c publicznego serwera internetowego i udostÄ™pniajÄ…c system
ekspertowy szerszemu gronu użytkowników.
Do uruchomienia e2gRuleEngine w na stronie WWW potrzebny jest odpowiedni
kod napisany w języku HTML oraz wirtualna maszyna Javy zainstalowana na
komputerze użytkownika. Kod HMTL wygląda następująco:
height="420">


Znaczniki .. pozwalają uruchomić szkielet systemu
ekspertowego w oknie przeglądarki. Pierwszy wymaga podania atrybutów,
którymi są:
·ð code  należy podać nazwÄ™ skompilowanej klasy apletu z rozszerzeniem
.class,
·ð archive  atrybut wymagany w przypadku e2gRuleEngine, gdyż klasy
appletu spakowane sÄ… w archiwum .jar,
·ð width  w której podajemy szerokość wyÅ›wietlanego apletu,
·ð height  okreÅ›la wysokość apletu.
Archiwum e2gRuleEngine musi zostać wywołane z jednym parametrem o nazwie
KBURL, którego wartość określa ścieżkę do bazy wiedzy zapisanej w osobnym
pliku o rozszerzeniu .kb. Pozwoli to na odnalezienie bazy wiedzy przez
mechanizm wnioskujący. Opis innych parametrów można znalezć na stronie
http://expertise2go.com/e2g3g/e2g3gdoc/e2gref.htm.
Baza wiedzy systemu ekspertowego czytelna dla modułu wnioskującego
e2gRuleEngine musi być zapisana w postaci reguł produkcyjnych(podrozdział 3.4
 Reprezentacja wiedzy ), mających odpowiedni dla narzędzia format. Przesłanki i
konkluzje zapisywane są w postaci pary: atrybut  wartość. Wartości atrybutów
mogą stanowić jeden z trzech różnych typów:
·ð Tekstowy zawarty miÄ™dzy cudzysÅ‚owami.
·ð Numeryczny(ang. Numeric), która może być liczbÄ… caÅ‚kowitÄ… lub
rzeczywistÄ….
·ð Logiczny (ang. Boolean) przyjmujÄ…cy wartość TRUE albo FALSE.
Typ atrybutu jest inicjowany, gdy po raz pierwszy zostanie użyty w regule w trakcie
wnioskowania. Próba zmiany typu atrybutu po jego wcześniejszy ustaleniu
zakończy się błędem. Analogiczny błąd wystąpi przypadku pierwszego
wystąpienia atrybutu stwierdzeniach PROMPT i GOAL, które zostaną omówione
w dalszej części tego rozdziału.
W bazie wiedzy występują takie elementy jak: puste linie, jednoliniowe
komentarze, reguły, zapytania, stwierdzenia wyznaczające cel wnioskowania i
wartości domyślne atrybutów. Jednoliniowe komentarze podobnie jak puste linie
(linie tekstu zaczynającego się od słowa REM) są ignorowane przez moduł
wnioskujący. Reguły składają się z kilku elementów, każdy element występuje w
nowej linii. Pierwsza linia reguły rozpoczyna się od stwierdzenia RULE, po którym
występuje nazwa reguły zamknięta w kwadratowych nawiasach. Początek
następnej linii stanowi przesłanka reguły, której początkiem jest słowo IF. Po nim
występuje atrybut zawarty w nawiasach kwadratowych połączony z wartością za
pomocą jednego z operatorów opisanych w tabeli. Jeżeli występuje więcej niż
jedna przesłanka, to muszą być one połączone przez ten sam logiczny operator,
25
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
AND(iloczyn logiczny) lub OR(suma logiczna). Każda przesłanka składająca się z
atrybutu, operatora i wartości musi znajdować się w oddzielnej linii. W przypadku
większej liczby warunków ten sam operator logiczny znajduje się na końcu każdej
przesłanki oprócz ostatniej. Linia występująca po ostatniej przesłance musi
zaczynać się od słowa THEN. Słowo to inicjuje część reguły odpowiedzialną za
konkluzję. Po THEN musi wystąpić nazwa atrybutu w kwadratowych nawisach z
przypisaną wartością za pomocą znaku równości(=), inne operatory z tabeli numer
9 traktowane są jako błąd. Do powiązania większej ilości wniosków służy operator
AND. Suma logiczna(OR) powoduje wystąpienie błędu i zakończenie działania
programu. Linia konkluzji, która nie jest zakończona słowem AND kończy ciało
reguły. Opcjonalnie można dołączyć do reguły współczynnik pewności(CF) przez
dodanie znaku @ i liczby z przedziału od 1 do 100 po wartości atrybutu konkluzji.
Tab. 9. Operatory przypisania wartości atrybutu.
Operator Znaczenie operatora Przykład
= równy [zbiornik paliwa] =  pusty
zbiornik paliwa jest pusty
< mniejszy [cena] < 120
cena jest mniejsze niż 120
<= mniejszy lub równy [cena] <= 50
cena jest mniejsza niż lub równa 50
> większy [cena] > 150
cena jest większa niż 50
>= większa lub równa [cena] >= 80
cena jest większa lub równa 80
! nie równa [zbiornik paliwa] !  pusty
zbiornik paliwa nie jest pusty
<> nie równa(od v8.0) [zbiornik paliwa] <>  pusty
zbiornik paliwa nie jest pusty
!= nie równa(od v8.0) [zbiornik paliwa] !=  pusty
zbiornik paliwa nie jest pusty
: równy jednej wartości z [objawy] : ból, gorączka
(tylko typ tekstowy) jednym z objawów jest ból lub gorączka
!: nierówny żadnej [objawy] : ból, gorączka
wartości z żadnym z objawów nie jest ból lub gorączka
(tylko typ tekstowy)
Reguła skonstruowana według wyżej wymienionych informacji powinna wyglądać
w sposób następujący:
RULE [Zawał serca z wstrząsem kardiogennym?]
If [Ból w klatce zawałowy] = true and
[STEMI] = false and
[NSTEMI] = true and
[Troponiny] > 0.03 and
[Ocena psycho-ruchowa] = "splÄ…tany" and
[Wypełnienie tętna] = "nitkowate" and
[Napięcie tętna] = "miękkie" and
[Temperatura skóry] = "obniżona" and
26
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
[Niedociśnienie] = true and
[Zaburzenia oddawania moczu] = true and
[Oddech] = "szybki i głęboki"
Then [Rozpoznania towarzyszÄ…ce] = "WstrzÄ…s kardiogenny" @ 95 and
[Rozpoznanie] = "Zawał serca typu NonSTEMI" @ 95
Stwierdzenie PROMPT(zapytanie) umożliwia ustawianie wartości przesłanek
przez użytkownika za pomocą interfejsu systemu ekspertowego i w bazie wiedzy
występują po regułach. Pierwsza linia stwierdzenia zaczyna się od słowa
PROMPT, po którym musi wystąpić nazwa atrybutu przesłanki, zapisana w
nawiasach kwadratowych i typ zapytania(Tab. 9). Fraza CF znajdujÄ…ca siÄ™ w tej
samej linii po typie zapytania daje możliwość podawania przez użytkownika
współczynnika pewności. Treść zapytania, zamkniętą w cudzysłowu, deklaruje się
w następnej linii.
Tab. 10. Typy zapytań e2gRuleEngine
Typ zapytania Opis
MultChoice Przyciski radiowe (ang. Radio button)
dla typu tekstowego, możliwe jest tylko
wybór jednej odpowiedzi.
Choice Rozwijana lista(ang. drop-down list) dla
typu tekstowego z sadami
analogicznymi do MultChoice
ForcedChoice MultChoice bez opcji  I don't
know/would rather not answer".
AllChoice Umożliwia zaznaczeniu kilku
odpowiedzi(ang. Check box) dla
wartości tekstowych.
YesNo Przyciski radiowe z wartościami
logicznymi true/false(typ boolean)
Numeric Pole tekstowe przyjmujące wartości
numeryczne
Następne linie stanowią możliwe odpowiedzi. Dla MultChoice, Choice, AllChoice,
ForcedChoice są wartości zawarte między cudzysłowem. Numeric wymaga, aby w
dwóch osobnych liniach podać wartość minimalną i maksymalną w cudzyslowiu.
Nie należy wpisywać żadnych wartości, jeżeli rodzaj zapytania to YesNo. We
wszystkich typach oprócz Numeric i ForcedChoice istnieje możliwość wyboru
odpowiedzi, która nie ustala wartości warunku(opcja  I don't know/would rather not
answer"). Jest on traktowany przez moduł wnioskujący jako nieznany. W bazie
wiedzy zapytanie AllChoice wygląda następująco:
PROMPT [Czynniki łagodzące ból w klatce] AllChoice CF
"Jakie są czynniki łagodzące ból w klatce?"
"Nitrogliceryna"
"Środki przeciwbólowe"
"Zaprzestanie wysiłku"
"Pozycja siedzÄ…ca"
"Pozycja siedzÄ…ca i pochylenie do przodu"
"Brak czynników"
27
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
W bazie wiedzy musi wystąpić przynajmniej jedno stwierdzenie deklarujące cel
wnioskowania. Rozpoczyna się słowem GOAL, po którym następuje para
nawiasów kwadratowych ze znajdującym się między nimi atrybutem konkluzji
jednej z reguł. Deklaracja celu lub celów wnioskowania w bazie musi wystąpić po
regułach i może być zapisany przed lub po zapytaniach(PROMPT). Poprawnie
zapisanie celu:
GOAL [Rozpoznanie]
Oprócz wyżej wymienionych komponentów w bazie wiedzy można
zadeklarować wartość domyślną dla każdej przesłanki, maksymalną liczbę
odpowiedzi branych pod uwagę przy zapytaniu typu AllChoice i minimalną wartość
współczynnika pewności dla wszystkich rodzajów zapytań, aby odpowiedz mogła
zostać wzięta pod uwagę jako fakt. Zapis wartości domyślnych wygląda
następująco:
DEFAULT [Wypełnienie tętna] =  W normie
Maksymalną liczbę odpowiedzi można zadeklarować na dwa sposoby:
MAXVALS [Czynniki łagodzące ból w klatce] 4
MAXVALS [Czynniki łagodzące ból w klatce] = 4
Do ustawienia minimalnego współczynnika pewności(CF) służy zapis:
MINCF X
Gdzie X jest dowolną liczbą z zakresu od 0 do 100. Domyślnie wartość minimalna
CF wynosi 80. Gdy w regule występują dwie przesłanki, współczynnik pewności
obliczany jest na podstawie iloczynu, natomiast w przypadku ustalenia wartości
atrybutu z kilku zródeł(zapytanie i kilka zagnieżdżonych reguł) do kalkulacji
używana jest suma probabilistyczna(podrozdział 3.5  Reprezentacja wiedzy ).
W trakcie sprawdzania poprawności utworzonej bazy wiedzy przydatne jest
używanie modułu wyjaśniającego oraz dodanie parametru o nazwie  DEBUG z
ustawioną wartością TRUE. Parametr ten tworzy okno służące do odnajdywania i
usuwania usterek. Za pomocą funkcji Trace is ON/OFF możliwe jest śledzenie
procesu inferencji. Display KB dump wyświetla aktualny status przesłanek i reguł
w trakcie wnioskowania. Stan przesłanki składa się z jej nazwy, wartości, typu
zamkniętego w nawiasach okrągłych(S dla typu tekstowego, N dla liczbowego i B
jako wartość logiczna), współczynnika pewności warunku oraz wskaznik, czy
przesłanka jest prawdziwa bądz nie. Reguły prezentowane są w całości wraz z
dołączonym statusem. Status reguły może być nieznany(U), odpalony(F), gdy
przesłanki reguły okażą się prawdziwe lub fałszywy(X), w przypadku
niemożliwości dowiedzenia prawdziwości reguły. Opcja Analyze KB pozwala
sprawdzić poprawność bazy wiedzy, czy nie wystąpiły w niej błędy
typograficzne(tzw. literówki) i logiczne. Po naciśnięciu tego przycisku widoczne są
dwie sekcje:
·ð ATTRIBUTE USAGE  wyÅ›wietla wszystkie atrybuty w kolejnoÅ›ci
alfabetycznej z zaznaczeniem, które zapytanie lub reguła wyznacza jego
wartość i w jakiej regule dany atrybut został użyty.
28
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
·ð VALUE USAGE  pokazuje wartoÅ›ci typu tekstowego, także uÅ‚ożone w
szeregu alfabetycznym. Po wartości, zamkniętej między cudzysłowami
,znajduje się długość ciągu tekstowego. Widoczne jest także miejsce
występowania danej wartości(przesłanka reguły, konkluzja reguły,
zapytanie) oraz powiÄ…zanym z niÄ… atrybutem.
Rys. 14. Okno odnajdywania i usuwania usterek e2gRuleEngine.
Podstawowym językiem apletu e2gRuleEngine jest język angielski. W sytuacji,
gdy trzeba zaimplementować system ekspertowy w innym języku, przydatne
okazuje się stwierdzenie TRANSLATE, po którym następuje nazwa atrybutu, jaki
chcemy przetłumaczyć oraz jego wartość zamknięta w cudzysłowie. Do
poprawnego działania programu z bazą wiedzy w innym języku niż angielski
potrzebne jest dopisanie parametru apletu o nazwie KBENCODING. Parametr ten
określa jakiego kodowania tekstu użyto do utworzenia bazy wiedzy i umożliwia jej
poprawne odczytanie modułowi wnioskującemu oraz wyjaśniającemu. Nazwy
atrybutów dla TRANSLATE znajdują się na stronie
http://expertise2go.com/e2g3g/e2g3gdoc/e2gref.htm.
Wszystkie możliwe funkcje szkieletowego systemu ekspertowego
e2gRuleEngine, także te, które nie zostały opisane w pracy znajdują się na stronie
wymienionej na początku bieżącego rozdziału.
5 Budowa systemu ekspertowego wspomagajÄ…cego decyzje
medyczne
Konstrukcja systemu ekspertowego zostanie przedstawiona krok po kroku
według etapów opisanych w podrozdziale 3.4 o tytule  Etapy tworzenia systemu
ekspertowego . Schemat budowy systemu ekspertowego wspierajÄ…cego decyzje
medyczne zostanie pokazany na przykładzie jednej choroby, zawału serca typu
STEMI z towarzyszÄ…cym wstrzÄ…sem kardiogennym. Choroba ta znajduje siÄ™ w
29
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
bazie wiedzy o nazwie kardiolog.kb, a powyższy schemat posłużył do budowy
wszystkich baz wiedzy znajdujÄ…cych siÄ™ w systemie.
Pierwszą fazą budowy systemu była identyfikacja problemu. W pierwszym
etapie należy określić cel, zadania systemu ekspertowego oraz potencjalne zródło
wiedzy, które posłuży do budowy bazy wiedzy systemu. W celu identyfikacji
problemu zostanie utworzony raport, który zapoczątkuje proces tworzenia systemu
ekspertowego. W raporcie znajdują się następujące elementy:
·ð Cel  zbudować system ekspertowy wspomagajÄ…cy decyzje medyczne
lekarza dyżurującego w szpitalnym oddziale ratunkowy(w skrócie SOR).
·ð RozwiÄ…zanie  w systemie zostanÄ… zaimplementowane cztery bazy wiedzy
odpowiadające wiedzy czterech specjalistów z następujących dziedzin
medycyny:
żð Kardiologa  choroby ukÅ‚adu sercowo  naczyniowego.
żð Neurolog  choroby obwodowego i oÅ›rodkowego ukÅ‚adu nerwowego.
żð Chirurgia ogólna  choroby leczone operacyjnie.
żð Pulmonologia  choroby ukÅ‚adu oddechowego.
Zadaniem programu będzie odnalezienie rozpoznania głównego choroby i
rozpoznania towarzyszącego chorobie, jeżeli wystąpiło oraz zalecenie
odpowiedniego postępowania na podstawie faktów. W przypadku tego
systemu fakty to objawy jakie zostanÄ… zidentyfikowane w trakcie konsultacji
lekarza SOR z pacjentem oraz te, które zostały wywnioskowane z reguł
zagnieżdżonych w trakcie inferencji. Dane(fakty) będą wprowadzane na
zasadzie dialogu systemu z użytkownikiem, którym będzie powyższy
dyżurny medyk. Do budowy systemu zostanie wykorzystany szkieletowy
system ekspertowy e2gRuleEngine.
·ð Wiedza  z powodu braku ekspertów wiedza musiaÅ‚a zostać uzyskana z
innych zródeł. yródłem tym była literatura o tematyce medyczne. Pierwszą
z nich jest książka o tytule  Griffith 5 minut konsultacji klinicznej [4], która
jest zbiorem chorób, ich objawów i metod leczenia, druga o nazwie
 Medycyna ratunkowa dokładnie opisuje przypadki chorób możliwych do
wystąpienia u pacjentów zgłaszających się do Szpitalnego Oddziału
Ratunkowego.
·ð Zapotrzebowanie  nie dotyczy systemu ekspertowego budowanego do
pracy dyplomowej.
·ð Infrastruktura  system ekspertowy musi być zintegrowany z aplikacjÄ…
obsługi przyjęć pacjentów do SOR, która działa w architekturze klient 
serwer z interfejsem użytkownika typu cienki klient. Cienki klient to
komputer bÄ…dz terminal komputerowy z zainstalowanym oprogramowaniem
klienckim do obsługi aplikacji znajdującej się na serwerze. W przypadku
aplikacji obsługi przyjęć pacjentów do SOR interfejs użytkownika
uruchamiany jest w oknie przeglądarki internetowej. Jak już zostało
wspomniane, narzędzie e2gRule jest napisane w technologii Java aplet,
która umożliwia uruchomienie tego programu za pomocą przeglądarki
internetowej, a cały kod zródłowy apletu znajduje się na serwerze.
Narzędzie to doskonale nadaje się do budowy systemu ekspertowego
współdziałającego z aplikacją klient - serwer. Do działania obu programów
jest wymagany serwer i średniej klasy komputer PC z zainstalowaną
wirtualną maszyną Javy do obsługi apletu. Na serwerze musi być
zainstalowane oprogramowanie Apache Web do obsługi aplikacji
internetowych z możliwością obsługi skryptowego języka programowania
30
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
PHP w wersji co najmniej 5.1 i systemem zarzÄ…dzania relacyjnymi bazami
danych MySQL 5.1.
·ð Koszty  narzÄ™dzie e2gRuleEngine jest bezpÅ‚atne podobnie jak wymienione
we wcześniejszym punkcie oprogramowanie Apache Web, PHP oraz
MySQL, więc implementacja obu programów(systemu ekspertowego i
aplikacji obsługi przyjęć pacjentów do SOR) nie wiąże się kosztami.
Po udanej identyfikacji problemu następuje faza pozyskiwania wiedzy, która
składa się z dwóch etapów. Pierwszy z nich to nabywanie i dokumentacja wiedzy,
drugi polega na modelowaniu zdobytej wiedzy. Już wiemy z poprzedniej fazy
budowy systemu ekspertowego, że rozwiązaniem problemu będzie skierowanie
celu wnioskowania programu na rozpoznanie choroby z jaką trafił pacjent do SOR,
możliwego rozpoznania towarzyszącego chorobie i zalecenia co do postępowania
lekarza(użytkownika systemu). Do udokumentowania mamy stan chorobowy:
zawał serca typu STEMI z towarzyszącym mu wstrząsem kardiogennym. W
każdej chorobie występuje zbiór charakterystycznych objawów, więc
dokumentacjÄ™ wiedzy rozpoczynamy od ich ustalenia. Dla czytelniejszego zapisu
podzielimy objawy na podmiotowe(subiektywne) i przedmiotowe(obiektywne), w
trakcie tworzenia bazy wiedzy podział ten nie będzie brany pod uwagę.
Podmiotowe to te odczuwane przez pacjenta zebrane przez lekarza w czasie
wywiadu(rozmowy z pacjentem), natomiast przedmiotowe ustalane sÄ… w trakcie
badania pacjenta np. kolor skóry, sprawdzenie częstości bicia serca itp. Objawy
podmiotowe zawału serca typu STEMI to:
·ð Ból zlokalizowany w klatce piersiowej zamostkowo, rozlany(trudny do
zlokalizowania).
·ð Ból ma charakter Å›ciskania, ucisku, nagÅ‚ego bólu, tÄ™pego ucisku.
·ð Trwa dÅ‚użej niż 20 minut.
·ð Brak jest czynników nasilajÄ…cych oraz Å‚agodzÄ…cych ból(np. lek
nitrogliceryna).
Do objawów przedmiotowych zaliczamy:
·ð Podwyższone troponiny(wynik wiÄ™kszy niż 0.03 ug/l)
·ð Uniesienia odcinka ST w badaniu EKG w co najmniej dwóch kolejnych
odprowadzeniach. Uniesienie to w oprowadzeniach przedsercowych(V1-
V6) musi być większe niż lub równe 0,1 mV lub w
kończynowych(I,II,III,aVF,aVR,aVL) większe niż 0,2 mV.
W przypadku rozległego zawału serca może towarzyszyć mu wstrząs
kardiogenny, którego objawy przedmiotowe charakteryzują się:
·ð Zaburzeniami Å›wiadomoÅ›ci, pacjent jest splÄ…tany.
·ð NapiÄ™cie tÄ™tna jest miÄ™kkie.
·ð WypeÅ‚nienie tÄ™tna jest maÅ‚e lub nitkowate.
·ð Oddech pacjenta jest szybki i gÅ‚Ä™boki.
·ð WystÄ™pujÄ… zaburzenia oddawania moczu(anuria lub oliguria).
·ð Z powodu dysfunkcji obwodowego ukÅ‚adu krwionoÅ›nego skóra pacjenta jest
zimna.
·ð NiedociÅ›nienie tÄ™tnicze.
We wstrząsie kardiogennym nie występują charakterystyczne objawy podmiotowe,
więc nie zostały wzięte pod uwagę w dokumentowaniu wiedzy.
Po udokumentowaniu powyższej wiedzy należy rozbić dany problem(zawał
serca z towarzyszÄ…cym mu wstrzÄ…sem kardiogennym) na podproblemy i
31
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
wyodrębnić z nich obiekty, atrybuty i wartości. Po dekompozycji otrzymujemy
następujące podproblemy:
·ð Ból w klatce wystÄ™pujÄ…cy przy zawale serca.
·ð Uniesienie odcinka ST.
·ð Zaburzenia oddawania moczu.
·ð NiedociÅ›nienie tÄ™tnicze
Ból u pacjenta może wystąpić w różnych miejscach, więc dokonujemy rozbicia
podproblemu bólu w klatce zapisując obiekt o nazwie ból, którego atrybut to:
·ð Lokalizacja bólu, a jej wartoÅ›ci, to miejsca, gdzie pacjent może odczuwać
ból: głowa, żuchwa, szyja, ramiona, klatka piersiowa, nadbrzusze, brzuch,
plecy, lewa kończyna górna, prawa kończyna górna, lewa kończyna dolna,
prawa kończyna dolna lub pacjent może nie zgłaszać dolegliwości
bólowych.
W ten sposób uzyskujemy następną trójkę obiekt  atrybut  wartość. Następnie
możemy wrócić do problemu znajdującego się wyżej w hierarchii, jest to ból w
klatce występujący przy zawale serca. Dla klarownego i krótkiego zapisu
nazwiemy ten obiekt Ból zawałowy. Składa się on z następujący atrybutów i
wartości:
·ð Subiektywne odczuwanie bólu w klatce piersiowej(ból opisywany przez
pacjenta) z wartościami: ucisk, ściskanie, nagły ból, tępy ucisk.
·ð Charakter bólu w klatce, który przyjmuje nastÄ™pujÄ…ce wartoÅ›ci: rozlany.
·ð Umiejscowienie bólu w klatce piersiowej: zamostkowo.
·ð Czas trwania bólu w klatce: dÅ‚użej niż 20 minut.
·ð Czynniki nasilajÄ…ce ból w klatce piersiowej: nie wystÄ™pujÄ….
·ð Czynniki Å‚agodzÄ…ce ból w klatce piersiowej: nie wystÄ™pujÄ….
Po określeniu obiektów z danej dziedziny wiedzy(medycyna) można przystąpić do
jawnej reprezentacji wiedzy, czyli jej modelowaniu. W normalnych warunkach etap
ten zostałby przeprowadzony po zdefiniowaniu większości obiektów, aczkolwiek
dla klarowności zapisu faza ta zostanie przedstawiona po zdefiniowaniu każdego
obiektu dotyczącego zawału oraz wstrząsu kardiogennego. Modelowanie będzie
przyjmować postać tabel decyzyjnych, ponieważ można łatwo sformalizować je w
postaci reguł produkcyjnych, z których będą składały się bazy wiedzy systemu
ekspertowego wspomagajÄ…cego decyzje medyczne. Tabela decyzyjna 10
przedstawia zbiór wartości, jakie muszą zostać spełnione, aby konkluzje zostały
uznane za prawdziwe w przypadku bólu w klatce oraz bólu zawałowego.
32
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Tab. 11. Tabela decyzyjna bólu w klatce i bólu o charakterze zawałowym.
Warunki
Lokalizacja bólu Klatka
piersiowa
Ból w klatce występuje występuje występuje
zawałowy
Subiektywne ucisk ściskanie nagły ból tępy ucisk
odczuwanie bólu
w klatce
piersiowej
Charakter bólu w rozlany rozlany rozlany Rozlany
klatce piersiowej
Umiejscowienie za za za za
bólu w klatce mostkowo mostkowo mostkowo mostkowo
piersiowej
Czas trwania bólu dłużej niż dłużej niż dłużej niż dłużej niż
w klatce 20 minut 20 minut 20 minut 20 minut
Czynniki nie nie nie nie
nasilające ból w
występują występują występują występują
klatce piersiowej
Czynniki nie nie nie nie
łagodzące ból w
występują występują występują występują
klatce piersiowej
Konkluzje
Ból w klatce występuje
(true)
Ból w klatce występuje występuje występuje występuje
zawałowy (true) (true) (true) (true)
Następnym w kolejności podproblemem było uniesienie odcina ST. Jest to
objaw zawału serca typu STEMI, z tego powodu następny obiekt będzie nosił
nazwę STEMI. Obiekt ten będzie składał się z atrybutów i wartości:
·ð Uniesienia odcinka ST: wystÄ™puje(true).
·ð Liczba uniesieÅ„ ST wiÄ™ksza niż dwa kolejne odprowadzenia: prawda(true).
·ð Wysokość uniesienia odprowadzeÅ„ koÅ„czynowych (I,II,III,aVF,aVR,aVL):
>= 0,1 mV.
·ð Wysokość uniesienia odprowadzeÅ„ przedsercowych(V1-V6): > 0,2 mV.
Jawna reprezentacja powyższego obiektu została przedstawiona w tabeli 11(Str.
34).
Zaburzenia oddawania moczu to kolejny obiekt z, którego można wydzielić nowy
podbroblem Stan oddawania moczu z atrybutami: anuria, oliguria i dobowe
oddawnie moczu w normie. Atrybuty te muszą zostać wydzielone ponownie jako
nowe obiekty, gdyż to czy występują, zależy od ilości oddawanego moczu w ciągu
doby(atrybut obiektu anuria, oliguria, dobowe oddawanie moczu w normie)
przyjmującej różne wartości dla każdego z tych atrybutów. Model zaburzeń
oddawania moczu ukazuje tabela 12(Str. 34).
33
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Tab. 12. Tabela decyzyjna obiektu STEMI.
Warunki
Uniesienia odcinka występuje(true) występuje(true) występuje(true)
ST
Liczba uniesień ST prawda(true) prawda(true) prawda(true)
większa niż dwa
kolejne
odprowadzenia
Wysokość >= 0,1 mV >= 0,1 mV
uniesienia
odprowadzeń
kończynowych
(I,II,III,aVF,aVR,aVL)
Wysokość > 0,2 mV > 0,2 mV
uniesienia
odprowadzeń
przedsercowych(V1-
V6)
Konkluzje
STEMI występuje(true) występuje(true) występuje(true)
Tab. 13. Tabela decyzyjna obiektów zaburzenia oddawania moczu, stan
oddawania moczu, anuria, oliguria, dobowe oddawanie moczu w normie.
Warunki
Ilość < 500 ml < 100 >= 500 ml na dobę
oddawanego na dobÄ™ ml na
moczu w dobÄ™
ciÄ…gu doby
Stan oliguria Anuria
oddawania
moczu
Konkluzje
Stan oliguria anuria dobowe
oddawania oddawanie moczu
moczu w normie
Zaburzenia występuje występuje
oddawania (true) (true)
moczu
Ostatnim z wydzielonych podproblemów wstrząsu kardiogennego jest
niedociśnienie tętnicze. Niedociśnienie tętnicze(tabela decyzyjna Str. 35) jest
rozpoznaniem stanu ciśnienia tętniczego pacjenta składającego się z ciśnienia
skurczowego oraz rozkurczowego, a ich wartości dla hipotensji(niedociśnienia) są
następujące:
·ð CiÅ›nienie skurczowe < 90 MmHg(ciÅ›nienie sÅ‚upa rtÄ™ci).
·ð CiÅ›nienie rozkurczowe < 50 MmHg.
W trakcie przekształcania obiektów na tabele decyzyjne dochodzi do zmiany tróki
obiekt  atrybut  wartość na parę składającą się z atrybutu i wartości, co ułatwi
pózniejszą formalizację wiedzy w postaci reguł.
34
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Tab. 14. Tabela decyzyjna Niedociśnienia tętniczego
Warunki
Ciśnienie skurczowe < 90 MmHg
Ciśnienie rozkurczowe < 50 MmHg
Konkluzje
Niedociśnienie tętnicze występuje(true)
Po przeanalizowaniu wszystkich podproblemów możemy w końcu wrócić do
problemów głównych, jakimi są zawał serca typu STEMI oraz wstrząsu
karodiogennego. Po usunięciu nieistotnego podziału na objawy podmiotowe i
przedmiotowe atrybuty i wartości zawału serca typu STEMI prezentują się
następująco:
·ð Ból w klatce zawaÅ‚owy: wystÄ™puje(true).
·ð STEMI : wystÄ™puje(true).
·ð Troponiny: > 0.03 ug/l.
Przesłanki wstrząsu kardiogenngo także uległy zmianie:
·ð Stan Å›wiadomoÅ›ci: splÄ…tany.
·ð WypeÅ‚nienie tÄ™tna: maÅ‚e lub nitkowate.
·ð NapiÄ™cie tÄ™tna: miÄ™kkie.
·ð Charakterystyka oddechu pacjenta: szybki i gÅ‚Ä™boki.
·ð Zaburzenia oddawania moczu: wystÄ™pujÄ…(true).
·ð Temperatura skóry: obniżona.
·ð NiedociÅ›nienie tÄ™tnicze: wystÄ™puje(true).
Jak zostało już wcześniej wspomniane celem wnioskowania systemu
ekspertowego jest znalezienie rozpoznania, możliwego rozpoznania
towarzyszącego oraz zalecenia postępowania. Rozpoznanie to nic innego jak
zawał serca typu STEMI, rozpoznaniem towarzyszącym zawałowi serca jest
wstrząs kardiogenny. Obie choroby w powyższy sposób zostaną opisane w tabeli
decyzyjnej problemu głównego(tabela numer 14 Str.35) wraz z zaleceniem. Jawna
reprezentacja tych dwóch przypadków kończy przykład ukazania etapu nabywania
wiedzy. Z przykładu wynika, że jest to trudny proces wymagający ciągłej
współpracy z ekspertem bądz przeszukiwania i analizowania innych zródeł. Etap
ten może zostać ułatwiony przez automatyzację pozyskiwania wiedz,
automatyzacja wymaga jednak opracowania specjalistycznego oprogramowania
przez inżyniera wiedzy co nie należy do najłatwiejszych zadań.
35
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Tab. 15. Jawna reprezentacja wiedzy o Zawale serca typu STEMI i wstrzÄ…sie
kardiogennym.
Warunki
Ból w klatce zawałowy występuje(true) występuje(true)
STEMI występuje(true) występuje(true)
Troponiny 0.03 ug/l 0.03 ug/l
Stan świadomości splątany splątany
Wypełnienie tętna małe nitkowate
Napięcie tętna miękkie miękkie
Charakterystyka szybki i głęboki szybki i głęboki
oddechu pacjenta
Zaburzenia oddawania występują(true) występują(true)
moczu
Temperatura skóry obniżona obniżona
Niedociśnienie tętnicze występuje(true) występuje(true)
Konkluzje
Rozpoznanie zawał serca typu STEMI zawał serca typu STEMI
Rozpoznanie wstrzÄ…s kardiogenny wstrzÄ…s kardiogenny
towarzyszÄ…ce
Zalecenia Pilna angioplastyka Pilna angioplastyka
wieńcowa wieńcowa
Przechodzimy do następnej fazy, którą według schematu etapów tworzenia
systemu ekspertowego(rys. 5. Str. 13) jest reprezentacja wiedzy. Do budowy bazy
wiedzy zostanie użyta technika reguł produkcyjnych z współczynnikiem
pewności(CF) w konkluzji wynoszącym 95%, które zostaną utworzone na
podstawie tabel decyzyjnych z poprzedniego etapu procesu projektowania
systemu ekspertowego. Na podstawie powyższych tabel decyzyjnych została
stworzona poniższa baza wiedzy:
1. Jeżeli lokalizacją bólu jest klatka piersiowa to u pacjenta występuje ból w
klatce z 95% pewnością.
2. Jeżeli u pacjenta występuje ból w klatce piersiowej i subiektywnym
odczuwaniem bólu przez pacjenta jest ucisk lub ściskanie lub nagły ból lub
tępy ucisk i charakter bólu w klatce piersiowej jest rozlany i ból w klatce
piersiowej umiejscowiony jest za mostkowo i czas trwania bólu w klatce
piersiowej jest dłuży niż 20 minut i czynniki łagodzące ból w klatce
piersiowej nie występują i czynniki łagodzące ból w klatce piersiowej nie
występują to ból w klatce piersiowej ma charakter zawałowy 95%
pewnością.
3. Jeżeli uniesienia odcinka ST występują i liczba uniesień ST większa niż
dwa kolejne odprowadzenia występuje i wysokość uniesienia odprowadzeń
kończynowych (I,II,III,aVF,aVR,aVL) jest większa lub równa 0,1 mV i
wysokość uniesienia odprowadzeń przedsercowych(V1-V6) jest większa niż
0,2 mV to STEMI występuje z 95% pewnością.
4. Jeżeli uniesienia odcinka ST występują i liczba uniesień ST większa niż
dwa kolejne odprowadzenia występuje i wysokość uniesienia odprowadzeń
kończynowych (I,II,III,aVF,aVR,aVL) jest większa lub równa 0,1 mV to
STEMI występuje z 95% pewnością.
5. Jeżeli uniesienia odcinka ST występują i liczba uniesień ST większa niż
dwa kolejne odprowadzenia występuje i wysokość uniesienia odprowadzeń
36
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
przedsercowych(V1-V6) jest większa niż 0,2 mV to STEMI występuje z 95%
pewnością.
6. Jeżeli ilość oddawanego moczu w ciągu doby jest mniejsza niż 500 ml/dobę
to stanem oddawania moczu jest oliguria z 95% pewnością.
7. Jeżeli ilość oddawanego moczu w ciągu doby jest mniejsza niż 100 ml/dobę
to stanem oddawania moczu jest anuria z 95% pewnością.
8. Jeżeli ilość oddawanego moczu w ciągu doby jest większa niż lub równa
500 ml/dobÄ™ to stanem oddawania moczu jest dobowe oddawanie moczu w
normie z 95% pewnością.
9. Jeżeli stanem oddawania moczu jest anuria lub oliguria to zaburzenia
oddawania moczu występują z 95% pewnością.
10. Jeżeli ciśnienie skurczowe jest mniejsze niż 90 MmHg i ciśnienie
rozkurczowe jest mniejsze niż 50 MmHg to niedociśnienie tętnicze
występuje z 95% pewnością.
11. Jeżeli ból w klatce zawałowy występuje i STEMI występuje i troponiny są
wyższe niż 0,03 ug/l i stanem świadomości pacjenta jest splątanie i
wypełnienie tętna jest małe lub nitkowate i napięcie tętna jest miękkie i
charakterystyka oddechu pacjenta jest szybka i głęboka i zaburzenia
oddawania moczu występują i temperatura skóry jest obniżona i
niedociśnienie tętnicze występuje to rozpoznaniem jest zawał serca typu
STEMI z 95% pewnością i rozpoznaniem towarzyszącym jest wstrząs
kardiogenny z 95% pewnością i zalecane czynności to pilna angioplastyka
wieńcowa.
Niektóre nazwy atrybutów zostały zmienione, aby reguły były bardziej czytelne.
Tak utworzoną bazę wiedzy może w końcu sformalizować według zasad z
rozdziału 4  Opis narzędzia e2gRuleEngine do budowy systemów ekspertowych
w etapie implementacji wiedzy. Baza wiedzy może zostać umieszczona na
serwerze bezpośrednio lub za pośrednictwem edytora administratora aplikacji
obsługi przyjęć pacjentów do szpitalnego oddziału ratunkowego. Reguły w bazie
e2gRuleEnigne ułożone są w innej kolejności, dlatego mają inne numery niż w
etapie reprezentacji wiedzy oraz niektóre z nich musiały zostać podzielone na
kilka reguł(w e2gRuleEnigne mogą być stosowane tylko te same operatory
logiczne). Powyżej przedstawione reguły w bazie wiedzy kardiolog wyglądają
następująco:
RULE [nr 29]
If [Lokalizacja bólu] : "klatka piersiowa"
Then [Ból w klatce] = true
RULE [nr 31]
If [Ból w klatce] = true and
[Subiektywne odczuwanie bólu w klatce] = "ucisk" and
[Charakter bólu w klatce piersiowej] = "rozlany" and
[Umiejscowienie bólu w klatce piersiowej] = "za mostkowo" and
[Czas trwania bólu w klatce] = "dłużej niż 20 minut" and
[Czynniki nasilające ból w klatce piersiowej] : "nie występują" and
[Czynniki łagodzące ból w klatce piersiowej] : "nie występują"
Then [Ból w klatce zawałowy] = true
37
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
RULE [nr 32]
If [Ból w klatce] = true and
[Subiektywne odczuwanie bólu w klatce] = "ściskanie" and
[Charakter bólu w klatce piersiowej] = "rozlany" and
[Umiejscowienie bólu w klatce piersiowej] = "za mostkowo" and
[Czas trwania bólu w klatce] = "dłużej niż 20 minut" and
[Czynniki nasilające ból w klatce piersiowej] : "nie występują" and
[Czynniki łagodzące ból w klatce piersiowej] : "nie występują"
Then [Ból w klatce zawałowy] = true
RULE [nr 33]
If [Ból w klatce] = true and
[Subiektywne odczuwanie bólu w klatce] = "nagły ból" and
[Charakter bólu w klatce piersiowej] = "rozlany" and
[Umiejscowienie bólu w klatce piersiowej] = "za mostkowo" and
[Czas trwania bólu w klatce] = "dłużej niż 20 minut" and
[Czynniki nasilające ból w klatce piersiowej] : "nie występują" and
[Czynniki łagodzące ból w klatce piersiowej] : "nie występują"
Then [Ból w klatce zawałowy] = true
RULE [nr 34]
If [Ból w klatce] = true and
[Subiektywne odczuwanie bólu w klatce] = "tępy ucisk" and
[Charakter bólu w klatce piersiowej] = "rozlany" and
[Umiejscowienie bólu w klatce piersiowej] = "za mostkowo" and
[Czas trwania bólu w klatce] = "dłużej niż 20 minut" and
[Czynniki nasilające ból w klatce piersiowej] : "nie występują" and
[Czynniki łagodzące ból w klatce piersiowej] : "nie występują"
Then [Ból w klatce zawałowy] = true
RULE [nr 35]
If [Uniesienia odcinka ST] = true and
[Liczba uniesień ST większa niż dwa kolejne odprowadzenia] = true and
[Wysokość uniesienia odprowadzeń kończynowych (I,II,III,aVF,aVR,aVL)] >= 0.1
and
[Wysokość uniesienia odprowadzeń przedsercowych(V1-V6)] > 0.2
Then [STEMI] = true and
[NSTEMI] = false
RULE [nr 36]
If [Uniesienia odcinka ST] = true and
[Liczba uniesień ST większa niż dwa kolejne odprowadzenia] = true and
[Wysokość uniesienia odprowadzeń przedsercowych(V1-V6)] > 0.2
Then [STEMI] = true and
[NSTEMI] = false
RULE [nr 37]
If [Uniesienia odcinka ST] = true and
[Liczba uniesień ST większa niż dwa kolejne odprowadzenia] = true and
[Wysokość uniesienia odprowadzeń kończynowych (I,II,III,aVF,aVR,aVL)] >= 0.1
38
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Then [STEMI] = true and
[NSTEMI] = false
RULE [nr 69]
If [Ilość oddawanego moczu w ciągu doby] < 500
Then [Stan oddawania moczu] = "oliguria"
RULE [nr 70]
If [Ilość oddawanego moczu w ciągu doby] < 100
Then [Stan oddawania moczu] = "anuria"
RULE [nr 71]
If [Ilość oddawanego moczu w ciągu doby] >= 500
Then [Stan oddawania moczu] = "dobowe oddawanie moczu w normie"
RULE [nr 72]
If [Stan oddawania moczu] = "oliguria" or
[Stan oddawania moczu] = "anuria"
Then [Zaburzenia oddawania moczu] = true
RULE [nr 73]
If [Stan oddawania moczu] = "oddawanie moczu w normie"
Then [Zaburzenia oddawania moczu] = false
RULE [nr 74]
If [Ciśnienie skurczowe] < 90 and
[Ciśnienie rozkurczowe] < 50
Then [Niedociśnienie] = true
RULE [nr 1]
If [Ból w klatce zawałowy] = true and
[NSTEMI] = true and
[Troponiny] > 0.03 and
[Stan świadomości] = "splątany" and
[Wypełnienie tętna] = "małe" and
[Napięcie tętna] = "miękkie" and
[Temperatura skóry] = "obniżona" and
[Niedociśnienie] = true and
[Zaburzenia oddawania moczu] = true and
[Chrakterstyka oddechu pacjenta] = "szybki i głęboki"
Then [Rozpoznanie] = "Zawał serca typu NonSTEMI" @ 95 and
[Rozpoznania towarzyszÄ…ce] = "WstrzÄ…s kardiogenny" @ 95 and
[Zalecenia] = "Pilna angioplastyka wieńcowa"
Aby fakty, które nie są konkluzjami innych reguł, mogły przyjąć określone wartości
w bazie wiedzy, muszą wystąpić zapytania z ustawioną maksymalną liczbą
odpowiedzi dla typu AllChoice. Zapytania prezentują się następująco:
PROMPT [Stan świadomości] MultChoice CF
"Jaki jest stan świadomości pacjenta?"
39
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
"splÄ…tany"
"senny"
"w normie"
"pobudzony"
"agresywny"
PROMPT [Lokalizacja bólu] AllChoice CF
"Gdzie pacjent lokalizuje ból?"
"głowa"
"żuchwa"
"szyja"
"ramiona"
"klatka piersiowa"
"nadbrzusze"
"brzuch"
"plecy"
"lewa kończyna górna"
"prawa kończyna górna"
"prawa kończyna dolna"
"lewa kończyna dolna"
"Pacjent nie zgłasza dolegliwość bólowych"
PROMPT [Subiektywne odczuwanie bólu w klatce] MultChoice CF
"Jaki jest charakter bólu w klatce?"
"ucisk"
"ciężkość"
"pieczenie"
"ściskanie"
"rozdzieranie"
"kłucie"
"nagły ból"
"tępy ucisk"
"przeszywajÄ…cy"
PROMPT [Charakter bólu w klatce piersiowej] MultChoice CF
"Jaki jest charakter bólu?"
"miejscowy"
"rozlany"
PROMPT [Umiejscowienie bólu w klatce piersiowej] MultChoice CF
"Jakie jest umiejscowienie bólu w klatce piersiowej"
"lewa strona klatki piersiowej"
"prawa strona klatki piersiowej"
"za mostkowo"
"przednia ściana klatki"
PROMPT [Czas trwania bólu w klatce] MultChoice CF
"Jaki jest czas trwania bólu?"
"krócej niż 3 minuty"
"od 3 do 15 minut"
40
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
"dłużej niż 20 minut"
"wiele godzin"
"dłużej niż kilka dni"
PROMPT [Uniesienia odcinka ST] YesNo CF
"Czy występuje uniesienie odcinka ST w wyniku badania EKG?"
PROMPT [Liczba uniesień ST większa niż dwa kolejne odprowadzenia] YesNo CF
"Czy uniesienia ST znajdują się w co najmniej dwóch odprowadzeniach?"
PROMPT [Wysokość uniesienia odprowadzeń kończynowych
(I,II,III,aVF,aVR,aVL)] Numeric CF
"O ile mV uniesione są odprowadzenia kończynowe (I,II,III,aVF,aVR,aVL. Zakres
0.0-3.0 mV)?"
"0.0"
"3.0"
PROMPT [Wysokość uniesienia odprowadzeń przedsercowych(V1-V6)] Numeric
CF
"O ile mV uniesione sÄ… odprowadzenia przedsercowe(V1-V6)?"
"0.0"
"3.0"
PROMPT [Troponiny] Numeric CF
"Jaki jest wynik badania troponiny cTN(0.00 - 30.00 ug/l)?"
"0.0"
"20.0"
PROMPT [Czynniki nasilające ból w klatce piersiowej] AllChoice CF
"Jakie czynniki wpływają na nasilenie bólu w klatce?"
"wysiłek fizyczny"
"zimno"
"zmęczenie poposiłkowe"
"stres"
"połykanie"
"intensywne wymioty"
"skręcenie tułowia"
"głęboki wdech"
"kaszel"
"pozycja leżąca"
"nadciśnienie tętnicze"
"nie występują"
PROMPT [Czynniki łagodzące ból w klatce piersiowej] AllChoice CF
"Jakie są czynniki łagodzące ból w klatce?"
"nitrogliceryna"
"środki przeciwbólowe"
"zaprzestanie wysiłku"
"pozycja siedzÄ…ca"
"pozycja siedzÄ…ca i pochylenie do przodu"
41
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
"nie występują"
PROMPT [Wypełnienie tętna] MultChoice CF
"Jakie jest wypełnienie tętnicy promieniowej w trakcie badania tętna?"
"duże"
"małe"
"nitkowate"
PROMPT [Napięcie tętna] MultChoice CF
"Jakie jest napięcie tętna?"
"twarde"
"miękkie"
PROMPT [Temperatura skóry] MultChoice CF
"Jaka jest temperatura skóry?"
"w normie"
"obniżona"
"podwyższona"
PROMPT [Ilość oddawanego moczu w ciągu doby] Numeric CF
"Ile moczu oddaje pacjent w ciÄ…gu doby"
"0.0"
"1000.0"
PROMPT [Charakterystyka oddechu pacjenta] MultChoice CF
"Jak opiszesz oddech pacjenta?"
"szybki i głęboki"
"szybki i płytki"
"wolny i głęboki"
"wolny i płytki"
PROMPT [Ciśnienie skurczowe] Numeric CF
"Jakie jest ciśnienie skurczowe(0-270 MmHg)?"
"0.0"
"270.0"
PROMPT [Ciśnienie rozkurczowe] Numeric CF
"Jakie jest ciśnienie rozkurczowe(0-170 MmHg)?"
"0.0"
"160.0"
MAXVALS [Lokalizacja bólu] 11
MAXVALS [Czynniki nasilające ból w klatce piersiowej] 4
MAXVALS [Czynniki łagodzące ból w klatce piersiowej] 5
W bazie musi również wystąpić deklaracja celu lub celów:
GOAL [Rozpoznanie]
GOAL [Rozpoznania towarzyszÄ…ce]
GOAL [Zalecenia]
42
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Przydatne okazuje się także ustawienie minimalnego współczynnika pewności dla
odpowiedzi użytkownika. Jeżeli użytkownik ustawi współczynnik poniżej tego
minimum odpowiedz nie będzie traktowana jako fakt i nie zostanie dołączona do
pamięci podręcznej. System ekspertowy wspomagający decyzje medyczne będzie
akceptował odpowiedzi jako fakty przy minimalnym CF wynoszącym 80%:
MINCF 80
Do uruchomienia systemu ekspertowego w aplikacji obsługi przyjęć posłuży
poniższy kod będący funkcją PHP:
function showApplet($param){
echo'

height="420">











';
}
Parametr $param służy do wczytania wybranej bazy wiedzy. Po
zaimplementowaniu wiedzy do naszego systemu ekspertowego możemy
przystąpić do następnego etapu, którym jest testowanie systemu. Czynność ta
zostanie opisana w następnym rozdziale.
6 Testowanie systemu
Testowanie aplikacji, podobnie jak budowa systemu ekspertowego, jest
czynnością wymagającą czasu oraz dużej ilości dokumentacji, dlatego w bieżącym
rozdziale zostanie opisany jeden z przeprowadzonych testów współdziałania i
poprawności działania obu aplikacji, programu do obsługi przyjęć pacjentów do
oddziału SOR i systemu ekspertowego wspomagającego decyzje medyczne.
Środowiskiem testowym dla interfejsu użytkownika po stronie klienta będzie laptop
o parametrach znajdujÄ…cych siÄ™ w tabeli 15.
43
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Tab. 16. Parametry laptopa użytego do testów systemu.
Podzespoły Parametry
Processor Intel® Core"! 2 Duo T7500
Taktowanie rdzenia procesora 2.2 GHz
Ilość pamięci RAM 2 gb
Typ pamięci RAM So-dimm ddr2 (667 MHz)
Pojemność dysku twardego 250 GB
Obrót napędu 5,400 Obr./min
Karta graficzna ATI Mobility"! Radeon® HD2600
Ekran LCD 15,4 
System operacyjny MS Windows 7 Professional
PrzeglÄ…darka internetowa Opera 11.01
Kody zródłowe obu aplikacji zostaną umieszczone na serwerze udostępnionym
przez firmÄ™ hostingowi 1&1 Internet Sp. z o.o.
Aby uruchomić interfejs aplikacji wpisujemy w oknie przeglądarki adres URL i
wchodzimy w moduł dla pielęgniarki. Przyjmujemy nowego pacjenta.
Rys. 15. Przyjęcie pacjenta.
Następnie loguje się lekarz i używamy przycisku Konsultacje, aby wyświetlić
tabelę z pacjentami, których historia wymaga uzupełnienia lub trzeba skorzystać z
systemu ekspertowego wspomagającego decyzje medyczne, ponieważ żaden
specjalista z innych oddziałów nie jest dostępny. Pacjent trafił na oddział z
następującymi objawami:
·ð Objawy podmiotowe:
żð Ból zlokalizowany w klatce piersiowej za mostkowo.
żð Ból jest rozlany, a pacjent odczuwa ucisk w klatce piersiowej.
żð Z wywiadu wynika, że ból trwa dÅ‚użej niż 20 minut i żadne czynniki
go nie Å‚agodzÄ…, ani nie nasilajÄ….
44
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
·ð Objawy przedmiotowe:
żð W EKG wystÄ™puje uniesienie odcinka ST w dwóch kolejnych
odprowadzeniach kończynowych, wynosi 0,4 mV.
żð Badanie krwi wykazaÅ‚o podwyższone troponiny(0.7 ug/l).
żð TÄ™tno pacjenta jest miÄ™kkie i nitkowate, jego oddech szybki i gÅ‚Ä™boki,
skóra wilgotna.
żð CiÅ›nienie skurczowe wynosi 80 MmHg a rozkurczowe 45 MmHg.
żð Pacjent jest splÄ…tany z trudem odpowiada na zadawane pytania.
żð Temperatura skóry jest obniżona.
żð Pacjent oddaÅ‚ mocz w ciÄ…gu doby o objÄ™toÅ›ci przybliżonej półtora
szklanki wody(około 300 ml).
O wynikach badań krwi lekarz został poinformowany telefonicznie, gdyż moduł
laboratoryjny pozwalający wprowadzać wyniki pacjenta nie został jeszcze
zaimplementowany.
Rys. 16. Panel konsultacyjny.
Lekarz uruchamia system ekspertowy przyciskiem Konsultacja i inicjuje
działanie systemu ekspertowego. Wybiera odpowiednią bazę wiedzy(kardiolog) i
rozpoczyna konsultacjÄ™ z systemem.
45
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Rys. 17. Interfejs systemu ekspertowego z rozpoczętą konsultacją.
Po zakończeniu  dialogu lekarza z systemem ekspertowym i podaniu przez
niego wszystkich objawów pacjenta wyświetla się wynik konsultacji.
Rys. 18. Wniosek systemu ekspertowego.
System rozpoznał chorobę pacjenta, którą jest zawał serca typu STEMI z
towarzyszącym mu wstrząsem kardiogennym i zalecił odpowiednie postępowanie.
Po naciśnięciu przycisku wytłumacz wyświetla się cały proces, w jaki sposób
system doszedł do rozwiązania(na podstawie jakich faktów i reguł został
osiągnięty cel wnioskowania). Test został zakończony powodzeniem.
46
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Rys. 19. Moduł wyjaśniający systemu ekspertowego.
Aplikacja obsługi przyjęć pacjentów do SOR została wyposażona w prosty edytor
bazy wiedzy. Po zalogowaniu się do modułu administratora uzyskujemy możliwość
edycji baz wiedzy zapisanych na serwerze.
Rys. 20. Edytor bazy wiedzy.
47
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
7 Podsumowanie
Systemy ekspertowe stanowiÄ… ciÄ…gle rozwijajÄ…cÄ… siÄ™ dziedzinÄ™ sztucznej
inteligencji. Niestety te zwiÄ…zane z medycynÄ…, z bazÄ… wiedzy rozwijanÄ… przez kilka
lat, nie osiągnęły 100% sprawności doświadczonego eksperta. Powyżej
zaprojektowany i zaimplementowany system ekspertowym jest tylko przykładem w
jaki sposób systemy te mogą zostać wykorzystane w medycynie i jak za pomocą
darmowych narzędzi można stworzyć programy, które w przyszłości mogą okazać
się użyteczne i dochodowe.
Cel pracy został osiągnięty. System ekspertowy wspomagający decyzje
medyczne został zbudowany i zintegrowany z aplikacją obsługującą przyjęcia
pacjentów do szpitalnego oddziału ratunkowego. Wykorzystanie narzędzia
e2gRuleEngine pozwoliło na łatwe zbudowanie systemu ekspertowego bez
ponoszenia kosztów. Aplet e2gRuleEngine jest ciągle rozwijany, połączenie tego
apletu z aplikacją zbudowaną w oparciu architekturę klient  serwer ułatwia
wymianę jego starszej wersji na nowszą z poprawionymi błędami i dodatkowymi
funkcjami bez naruszenia reszty systemu. Dodatkowo aplikacja obsługi przyjęć
pacjentów została wyposażona w edytor baz wiedzy, którego nie posiada
e2gRuleEngine.
Jednakże medyczne systemy ekspertowe powinny być raczej wykorzystywane
do diagnozowania, niegroznych powszechnie występujących schorzeń, które
można wyleczyć w domu bez wizyty u lekarza. Pozwoli to zaoszczędzić, czas,
pieniądze. Tam, gdzie liczy się czas, gdzie trzeba szybko i skutecznie udzielić
pomocy w stanie zagrożenia życia i zdrowia, systemy ekspertowe wspomagające
decyzje medyczne nie sprawdzi się z powodu ograniczeń, jakie narzuca interfejs
użytkownika systemu. Do szybkiej i wygodnej komunikacji w powyższym
przypadku wymagana byłaby komunikacja werbalna systemu z człowiekiem.
Właśnie w tym kierunku powinien podążać rozwój systemów ekspertowych po to,
by zatrzeć różnicę między ekspertem-człowiekiem a ekspertem  programem.
Bibliografia
[1] Red. Sobol E.: Nowy słownik języka polskiego. Wydawnictwo Naukowe PWN.
Warszawa 2002
[2] Red. Owoc. L: Elementy systemów ekspertowych cz I. Wydawnictwo Akademii
ekonomicznej im. Oskara Langego we Wrocławiu. Wrocław 2006
[3] Korbicz J., Kościelny J., Kowalczuk Z., Cholewa W.: Diagnostyka procesów.
Modele. Metody sztucznej inteligencji. Zastosowania., Wydawnictwo Naukowo-
techniczne, Warszawa 2007
[4] Dambro M. R.: Griffith 5 minut konsultacji klinicznej, Wydawnictwo Medyczne
Urban & Partner, Wrocław 2006
[5] Pousada L., Osborn H.H., Levy D.B.:Medycyna ratunkowa, Wydawnictwo
Medyczne Urban & Partner, Wrocław 1999
yródła internetowe
[6] www.fizyka.umk.pl/~duch/cog-book/AI/AI7a.pdf
[7] http://pl.wikipedia.org/wiki/Dendral
[8] http://en.wikipedia.org/wiki/Macsyma
[9] http://pl.wikipedia.org/wiki/Mycin
[10] http://pl.wikipedia.org/wiki/Prospector
48
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
[11] http://en.wikipedia.org/wiki/CADUCEUS_(expert_system)
[12] http://www.amzi.com/ExpertSystemsInProlog/index.htm
[13] http://aragorn.pb.bialystok.pl/~radev/ai/sosn/zimiewicz.htm
Spis rysunków
Rys. 1. Struktura systemu ekspertowego. ................................................................................... 9
Rys. 2. Moduł wyjaśniający programu PC-Shell. ..................................................................... 10
Rys. 3. Edytor e2gRuleWriter do budowy bazy wiedzy dla e2gRuleEngine. ....................... 11
Rys. 4. Interfejs systemu ekspertowego zbudowanego za pomocą narzędzia
e2gRuleEngine. ............................................................................................................................. 12
Rys. 5. Etapy tworzenia systemu ekspertowego. ..................................................................... 13
Rys. 6. Diagram OAV obiektu Książka. ..................................................................................... 14
Rys. 7. Drzewo decyzyjne. ........................................................................................................... 15
Rys. 8. Diagram przepływu. ......................................................................................................... 15
Rys. 9. Przykład sieci semantycznej. ......................................................................................... 16
Rys. 10. Przykładowa rama. ........................................................................................................ 18
Rys. 11. Schemat blokowy wnioskowania wstecz. .................................................................. 20
Rys. 12. Schemat działania stosu celi modułu wnioskowania. .............................................. 22
Rys. 13. Diagram wnioskowania indukcyjnego.[13] ................................................................. 23
Rys. 14. Okno odnajdywania i usuwania usterek e2gRuleEngine. ....................................... 29
Rys. 15. Przyjęcie pacjenta.......................................................................................................... 44
Rys. 16. Panel konsultacyjny. ...................................................................................................... 45
Rys. 17. Interfejs systemu ekspertowego z rozpoczętą konsultacją. .................................... 46
Rys. 18. Wniosek systemu ekspertowego. ................................................................................ 46
Rys. 19. Moduł wyjaśniający systemu ekspertowego. ............................................................. 47
Rys. 20. Edytor bazy wiedzy........................................................................................................ 47
Spis tabel
Tab. 1. Porównanie ekspertyzy sztucznej z naturalną. ............................................................. 8
49
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011
Budowa systemu ekspertowego wspomagajÄ…cego decyzje medyczne
Tab. 2. Tablica decyzyjna............................................................................................................. 14
Tab. 3. Baz wiedzy programu AWARIA. .................................................................................... 19
Tab. 4 . Rozpoczęcie wnioskowania wstecz. ............................................................................ 20
Tab. 5. Kolejny etap wnioskowania wstecz. .............................................................................. 21
Tab. 6. Wnioskowanie wstecz po usunięciu ze stosu atrybutu zbiornik paliwa. .................. 21
Tab. 7. Wnioskowania w przód. Ustalenie faktów przez użytkownika .................................. 23
Tab. 8. Wnioskowanie w przód. Aktualizacja bazy faktów. ..................................................... 24
Tab. 9. Operatory przypisania wartości atrybutu. ..................................................................... 26
Tab. 10. Typy zapytań e2gRuleEngine ...................................................................................... 27
Tab. 11. Tabela decyzyjna bólu w klatce i bólu a charakterze zawałowym. ........................ 33
Tab. 12. Tabela decyzyjna obiektu STEMI................................................................................ 34
Tab. 13. Tabela decyzyjna obiektów zaburzenia oddawania moczu, stan oddawania
moczu, anuria, oliguria, dobowe oddawanie moczu w normie. .............................................. 34
Tab. 14. Tabela decyzyjna Niedociśnienia tętniczego ............................................................. 35
Tab. 15. Jawna reprezentacja wiedzy o Zawle serca typu STEMI i wstrzÄ…sie
kardiogennym................................................................................................................................. 36
Tab. 16. Parametry laptopa użytego do testów systemu. ....................................................... 44
50
Konrad Strzelec  Inżynierska praca dyplomowa  WSTT w Świdnicy 2011


Wyszukiwarka

Podobne podstrony:
Bezpieczeństwo systemňw komputerowych praca dyplomowa
Elektrownia wiatrowa w systemie energetycznym Pomiary, zjawiska, ocena [PRACA DYPLOMOWA MAGISTERSKA
przykladowa praca dyplomowa dla grupy
7176525 Praca Dyplomowa Kontrukcje Drewniane
Jak napisac prace dyplomowa (praca dyplomowa, praca magisterska) (2)
systemy ekspertowe projekt Arkusz1
Systemy Ekspertowe w eksploatacji maszyn i urz dze
praca dyplomowa inz
Praca Dyplomowa Przegląd włókien naturalnych
Kreatywna praca dyplomowa Jak stworzyc fascynujacy tekst
Audyt wewnętrzny i kontrola finansowa (praca dyplomowa)
praca dyplomowa
Praca Dyplomowa Sklep Internetowy(1)

więcej podobnych podstron