systemy ekspertowe w internecie – projekt

Transkrypt

systemy ekspertowe w internecie – projekt
systemy ekspertowe, regułowe bazy wiedzy,
struktura bazy wiedzy, wnioskowanie.
Agnieszka NOWAK*
SYSTEMY EKSPERTOWE W INTERNECIE – PROJEKT
WIELOPLATFORMOWEGO MODUŁU WNIOSKOWANIA
WSTECZ DLA SYSTEMU Z REGUŁOWĄ REPREZENTACJĄ
WIEDZY
Praca przedstawia wieloplatformowy moduł wnioskowania wstecz, którego zadaniem jest realizacja
procesu dowodzenia prawdziwości hipotezy głównej przy wykorzystaniu róŜnych strategii sterowania
wnioskowaniem dla systemów z regułową reprezentacją wiedzy. Uniwersalność modułu polega na
realizacji wieloplatformowej, będącej wielkim marzeniem projektantów, którzy piszą programy dla
kilku róŜnych systemów komputerowych. Java to język programowania będący uniwersalnym kodem
dla wszystkich platform systemowych – reklamowany przez swego producenta za pomocą hasła:
„wystarczy raz zapisać kod, a program moŜna uruchomić wszędzie”. Z tego względu praca porusza
podstawowe aspekty decydujące o popularności Javy.
1. WSTĘP
Potrzebie jak najszybszego i najszerszego pod względem zasięgu
rozpowszechnienia systemów ekspertowych wychodzi dzisiaj na przeciw Internet
a konkretnie – moŜliwe do umieszczenia w WWW zdobywające coraz większą
popularność – aplikacje internetowe. Powodem tego, Ŝe aplikacje i serwisy coraz
częściej publikowane są na stronach internetowych jest fakt, iŜ aplikacji tego typu nie
trzeba kupować, ściągać i instalować na swoim komputerze lecz wystarczy wejść na
odpowiednią stronę i uruchomić odpowiedni program. Takie rozwiązanie daje
moŜliwość dostępu komercyjnego – wejście przez hasło, abonament na „korzystanie”.
Systemy ekspertowe dobrze nadają się do publikowania w Internecie. Dzieje się
tak dlatego, Ŝe WWW zapewnia ograniczony zakres dialogu i przewidywalny
*
Uniwersytet Śląski, Instytut Informatyki, 41-200 Sosnowiec, ul. Będzińska 39, [email protected]
scenariusz jego przebiegu. Opracowanie i oprogramowanie bazy wiedzy jest procesem
niezwykle trudnym, pracochłonnym i wymaga wiele wiedzy dziedzinowej. Często
twórcy nie reprezentują instytucji komercyjnych i nie sprzedają swoich produktów na
zasadach rynkowych. Dzięki temu powstają strony internetowe, na których moŜna się
konsultować z wybranym systemem.
JednakŜe owa dostępność i niezwykła uŜyteczność wymaga realizacji
wieloplatformowej. Z definicji Internet jest siecią sieci, składającą się z rozmaitych
platform sprzętowych i programowych. Wszystkie one korzystają z tych samych
protokołów i dzięki temu mogą się bez przeszkód porozumiewać. Aby dodać element
programowania do Internetu, który przeniknąłby do WWW, nie moŜna uŜyć
klasycznych języków programowania takich jak C czy C++. Po pierwsze ze względu
na problem bezpieczeństwa oraz fakt, Ŝe programy napisane w językach C czy C++
skompilowane dla platformy Windows nie zadziałają np. na systemie Solaris. Tym,
czego potrzebujemy w WWW, jest język interpretowany. Idealnym rozwiązaniem
wydaje się Java – dająca moŜliwość tworzenia aplikacji internetowych, poprzez:
niezaleŜność platformową, bezpieczeństwo oraz międzynarodowy zestaw znaków –
unicode. [1]
Celem niniejszego referatu jest przedstawienie modułu wnioskowania
umoŜliwiającego osadzenie na stronach WWW własnych systemów ekspertowych.
Powstał on jako wynik prac nad opisywaną wcześniej koncepcją niezaleŜnego
platformowo modułu wnioskowania zrealizowanego w języku Java. Ów
wieloplatformowy moduł wnioskowania dla inteligentnych aplikacji internetowych,
udostępniony jest w wersji testowej na stronie WWW pod adresem:
http://www.inference.engine.prv.pl/. [6]
2. KONCEPCJA MODUŁU
W procesie implementacji modułu Infer v 2.0 wzięto pod uwagę realizację
następujących zadań:
wieloplatformowość,
dostępność „on-line” 24 h/dobę,
dostęp do róŜnych baz wiedzy zapisanych w tym samym formacie ale
dotyczących róŜnych dziedzin, tak aby to uŜytkownik decydował o tym której
bazie wiedzy uŜywał,
elastyczne strategie sterowania wnioskowaniem, które decydowałyby o tym, która
spośród wszystkich moŜliwych do uaktywnienia w danym momencie reguł,
zostanie „odpalona”,
wyjaśnienia z dogodną prezentacją graficzną.
To interpretator reguł, będący elementem składowym kaŜdej maszyny
wnioskującej – szuka reguł, których konkluzje dają się zunifikować z celem
wnioskowania. W module Infer v 2.0 zaimplementowane zostały trzy strategie
sterowania wnioskowaniem:
strategia pierwsza reguła na liście (ang. textual order) – pobiera pierwszą regułę
na liście spośród wszystkich moŜliwych do uaktywnienia w danym momencie,
strategia świeŜości (ang. recency) – pobiera ostatnią regułę na liście (ostatnio
dodaną do bazy wiedzy),
strategia specyficzności (ang. specificity) – pobiera regułę o największej liczbie
warunków.[7]
WaŜne jest równieŜ to, aby system ekspertowy oprócz w pełni poprawnej realizacji
procesu samego dowodzenia celu wspartego róŜnymi dodatkowymi opcjami
dostosowanymi do indywidualnych upodobań uŜytkowników, zawierał takŜe moduł
objaśniający proces rozumowania maszyny wnioskującej oraz graficzną prezentację
wyników wnioskowania. Takie załoŜenia zostały zaimplementowane w omawianym
module. [6]
3. AKTUALNA POSTAĆ SYSTEMU
Moduł Infer v2.0 został osadzony na stronie internetowej poświęconej tematyce
sztucznej inteligencji i systemów ekspertowych, znajdującej się pod adresem:
http://www.inference.engine.prv.pl/. Okno główne programu ma postać
odpowiadającą rysunkowi nr 1.
Rys. 1. Okno główne programu
Fig. 1.The main window of application
Moduł wnioskowania Infer v 2.0 realizuje następujące funkcje:
wybór bazy wiedzy – obecnie dostępne są dwie bazy wiedzy: „medycyna.txt” oraz
„grzyby.txt”, zapisane w tym samym formacie,
podgląd bazy wiedzy: atrybutów i ich wartości oraz reguł,
plan wnioskowania – umoŜliwiający uŜytkownikowi sprawdzenie jeszcze przed
rozpoczęciem procesu wnioskowania, czy wybrany przez niego cel wnioskowania
da się udowodnić na podstawie wiedzy zawartej w danej bazie wiedzy,
ustawienia dotyczące strategii sterowania wnioskowaniem – realizacja strategii
kolejności, świeŜości i specyficzności,
realizacja mechanizmu nawrotów (ang. backtracking) - mechanizm ten dotyczy
reguł, których przesłanki (części warunkowe) zawierają zmienne, pod które
moŜna w procesie wnioskowania podstawiać róŜne wartości (wszystkie wartości
danego atrybutu) i dowodzić ich prawdziwość, [2]
tryb pracy krokowej i ciągłej z moŜliwością wielokrotnego przełączania się
między nimi,
wybór celu wnioskowania z moŜliwością niepełnego wyboru (np. choroba=X),
moŜliwość przerwania wnioskowania na Ŝyczenie uŜytkownika,
realizacja modułu objaśniającego – przedstawiającego uŜytkownikowi powód
zadania przez system pytania o wartość danego atrybutu i jak ta odpowiedź moŜe
wpłynąć na proces wnioskowania prowadzonego przez system,
graficzna prezentacja wyników oraz statystyka wnioskowania, mające na celu
przedłoŜenie uŜytkownikowi szczegółowego raportu z przeprowadzonego
procesu dowodzenia prawdziwości hipotezy głównej,
podgląd faktów wygenerowanych w trakcie wnioskowania, z moŜliwością
usunięcia wszystkich faktów lub tylko wybranych,
wnioskowanie na faktach z poprzedniego wnioskowania.
Po wybraniu BW następuje wypełnienie odpowiednich struktur danych: listy
atrybutów, listy wartości, listy faktów (początkowo pustej) oraz listy reguł. Na ekranie
pojawi się okno Struktura Bazy Wiedzy z pięcioma zakładkami:
Atrybuty i wartości atrybutów – gdzie uŜytkownik wybierając dany atrybut ma
moŜliwość podglądu zbioru wartości tego atrybutu,
Reguły,
Plik bazy wiedzy – podgląd oryginalnego pliku bazy wiedzy,
Drzewo umoŜliwiające przegląd struktur BW, gdzie wybierając atrybut moŜna
uzyskać informacje o liczbie jego wartości, przeglądnąć te wartości, oraz o liczbie
reguł, w których atrybut ten występuje w konkluzji reguły. Z kolei wybierając
wartość atrybutu moŜna się dowiedzieć, którego atrybutu ona dotyczy i czy
występuje w konkluzji jakiejś reguły i jeŜeli tak to w ilu,
Fakty - moŜliwy jest przegląd faktów powstałych w procesie wnioskowania oraz
ich usuwanie.
Schemat blokowy systemu Infer v2.0 przedstawia rysunek nr 2.
Rys. 2. Struktura modułu Infer v 2.0
Fig. 2. Structure of Infer v 2.0 module
3.1. ALGORYTM WNIOSKOWANIA W SYSTEMIE INFER v 2.0
Dowodzenie poprawności hipotezy głównej realizowane jest w systemie Infer v 2.0
dwuetapowo: najpierw przeszukiwana jest lista faktów, w drugiej kolejności zaś
analizowane są konkluzje reguł przez interpretator reguł. Pseudokod algorytmu
wnioskowania wstecz zaimplementowany w omawianym module przedstawiono
poniŜej.
1.
2.
3.
4.
Przeszukaj listę faktów. Porównuj kaŜdy element tej listy z celem
wnioskowania.
•
Jeśli cel jest faktem to koniec wnioskowania. Idź do punktu
4.
•
W przeciwnym przypadku – krok 2.
Przeszukaj konkluzje wszystkich reguł w bazie wiedzy. Spośród
wszystkich moŜliwych do uaktywnienia reguł w danym momencie wybierz
jedną
regułę
kierując
się
wybraną
strategią
sterowania
wnioskowaniem. Wybierając reguły do uaktywnienia kieruj się wybraną
przez uŜytkownika strategią doboru reguł.
•
Dla kaŜdego warunku odpalonej reguły przeprowadź proces
wnioskowania tak samo jak dla celu głównego.
•
JeŜeli wszystkie przesłanki reguły są prawdziwe to cała
reguła jest prawdziwa. – krok 3
•
W przeciwnym przypadku – szukaj innych reguł.
Zapytaj uŜytkownika o kontynuowanie wnioskowania.
•
JeŜeli uŜytkownik zechce dalej wnioskować to wróć do kroku 2.
•
W przeciwnym przypadku – idź do kroku 4.
Koniec wnioskowania.
Na szczególną uwagę zasługuje fakt, Ŝe w sytuacji, gdy cel wnioskowania nie był
faktem w bazie wiedzy, ale znaleziono regułę, której konkluzją jest ten cel, to aby go
udowodnić naleŜy uruchomić proces wnioskowania dla kaŜdego warunku takiej
reguły.[4] Istotne jest wówczas to, Ŝe jeśli któryś z warunków nie jest ani faktem w
bazie ani nie daje się go zunifikować z konkluzją Ŝadnej reguły, wówczas system
zapyta uŜytkownika o wartość analizowanego warunku (atrybutu). Odpowiedź
uŜytkownika pozwala pomyślnie dokończyć proces wnioskowania i zostaje ona
dodana do listy faktów. [5][6]
3.2. WYNIKI WNIOSKOWANIA
Po kaŜdym udowodnieniu (bądź nie) hipotezy głównej, uŜytkownik zostanie
poinformowany o pomyślnym (lub niepomyślnym) przeprowadzeniu wnioskowania
i jednocześnie zapytany o chęć kontynuacji wnioskowania. MoŜliwość realizacji
wielokrotnego procesu dowodzenia poprawności celu wnioskowania powoduje, Ŝe dla
prawidłowej interpretacji osiągniętych wyników niezbędny jest moduł objaśniający
w trakcie pracy systemu drogę prowadzonego przez niego wnioskowania oraz
graficzna prezentacja wyników. Drogę wnioskowania moŜna przeglądać równieŜ
w formie drzewa przedstawiającego po kolei wszystkie kroki maszyny wnioskującej
wraz z regułami, w oparciu o które następowało wnioskowanie.
4. WYBRANE ASPEKTY IMPLEMENTACJI MODUŁU WIELOPLATOFORMOWOŚĆ
Przede wszystkim uruchamianie programów w WWW wymaga niezaleŜności
sprzętowej. WWW jest otwarte dla kaŜdego przez standardowy protokół, który moŜe
być zrealizowany na kaŜdej platformie. Powodem dobrego działania apletów Javy
w WWW jest to, Ŝe interpretator Javy jest obecnie częścią przeglądarki WWW.
Z chwilą ładowania programu w Javie przeglądarka przekazuje go do interpretatora,
aby go wykonał. Java to język bezpieczny, poniewaŜ gdy program w Javie jest
ładowany z WWW, jest umieszczany w ograniczonym obszarze pamięci. Interpretator
przegląda wszystkie bajty kodu pośredniego i sprawdza, czy spełniają one wymagania
języka. W WWW potrzebujemy języka interpretowanego. Silny język interpretowany
moŜe być jednak wolny. Jeśli interpretator będzie musiał tłumaczyć źródła przy
kaŜdym wykonaniu, program będzie działał wolno. Java rozwiązuje ten problem przez
kompilację kodu źródłowego do postaci kodu maszynowego, jednak nie jakiegoś
konkretnego procesora. Wynikiem kompilacji nie jest kod maszynowy, lecz kod
pośredni (ang. byte code). Kompilator produkuje strumień bajtów zawierających kody
operacji i parametry dla teoretycznej maszyny. Maszyna ta zwana jest naturalnie
Wirtualną Maszyną Javy (JVM; ang. Java Virtual Machine).[3]
JVM moŜe być przedstawiona w kaŜdej reprezentacji. Gdy zostanie zrealizowana
programowo, stanie się pośrednikiem między konkretną maszyną a programem
w Javie, który chcemy uruchomić. JVM interpretuje skompilowany kod Javy
i wykonuje Nasz program.[1]
5. PODSUMOWANIE
Omówiony w pracy moduł Infer v2.0, zrealizowany w formie apletu (programu
uruchamianego z poziomu przeglądarki WWW) umoŜliwia realizację
wieloplatformowych, systemów ekspertowych, realizujących proces wnioskowania
wstecz. W pracy omówiono główne funkcje systemu: przegląd bazy wiedzy, proces
wnioskowania wstecz z realizacją róŜnych strategii sterowania praca ciągła i krokowa
z moŜliwością przełączania się między nimi w trakcie działania programu, realizacja
mechanizmu nawrotów, funkcja – plan wnioskowania, rozbudowany moduł
objaśniający oraz graficzna prezentacja wyników wnioskowania.
Omówiony w pracy, prototypowy moduł wnioskowania stanowi interesującą
alternatywę dla wielu drogich i platformowo zaleŜnych narzędzi do budowania
systemów ekspertowych. Odbywa się to bez konieczności zakupu, instalacji
i dystrybucji nośnika, dzięki czemu moduł moŜe być uruchomiony na róŜnych typach
komputerów i pod kontrolą wielu systemów operacyjnych bez Ŝadnych modyfikacji.
Aktualnie trwają prace nad rozwojem modułu ukierunkowane na realizację
róŜnych technik wnioskowania oraz efektywne strategie dobory reguł.
LITERATURA
[1] BOONE B., Java TM dla programistów C I C++., Warszawa, WNT, 1998
[2] CHOLEWA W., PEDRYCZ W., Systemy doradcze, skrypt P.Śl. nr 1447, Gliwice, 1985
[3] ECKELL B., Thinking in Java, Helion, Gliwice, 2000
[4] JACOBSON P., Introduction to Expert Systems, University of Edinburgh, 1985
[5] NOWAK A., Realizacja modułu wnioskowania wstecz dla regułowej reprezentacji wiedzy, Praca
licencjacka, Uniwersytet Śląski, Sosnowiec, 2000
[6] NOWAK A., Wieloplatoformowy moduł wnioskowania dla inteligentnych aplikacji
internetowych, Praca magisterska, Uniwersytet Śląski, Sosnowiec, 2002
[7] REICHGELT H., Knowledge Representation : An AI Perspective, Ablex Publishing Corporation
in New Jersey, 1991
EXPERT SYSTEM IN INTERNET - THE PROJECT OF THE
MULTIPLATFORMED INFERENCE ENGINE MODULE INFER v 2.0 FOR
THE RULE BASED KNOWLEDGE SYSTEMS
This paper describes the inference engine module, which has to prove the goal with using the various
types of strategy inference. The paper presents how is the module Infer v 2.0 is working. The second part
includes an multiplatform aspects of the Java programming language, which was used to implemented
this system.

Podobne dokumenty