Wydział Informatyki i Nauki o Materiałach Uniwersytet Śląski Systemy ekspertowe PC-Shell Sprawozdanie z bazy wiedzy Zbigniew Kędzior Informatyka inżynierska Studia niestacjonarne Trzeci rok Grupa A
1. Opis systemu. System został stworzony w celu pomocy rowerzyście wyboru odpowiedniego dla jego potrzeb typu roweru. Zadaniem systemu jest, po zadaniu rowerzyście pytań dotyczących jego jazdy i wymagań sprzętowych, dopasowanie jednego z kilku podstawowych typów rowerów. Po przenalizowaniu faktów, system wskazuje rowerzyście jakim typem roweru powinien się zainteresować. W przypadku rowerzysty, który ma szczególne wymagania lub jego odpowiedzi nie są jednoznaczne i nie prowadzą do wyboru konkretnego typu roweru, system proponuje konsultację ze sprzedawcą. 2. Baza wiedzy. knowledge base wybor_typu_roweru //początek bazy wiedzy facets //fasety - wykaz wszystkich atrybutów używanych w bazie wiedzy single yes; //deklaruje że w bw może wystąpić tylko jeden fakt zawierający atrybut jazda: //deklaracja atrybutu wartości atrybutu trudna: query " Wybierz miejsce w którym jeździsz:" val oneof { "góry", "miasto", "asfalt", "skatepark", "inne" }; query "Czy lubisz jeździć po trudnych terenach i niebezpiecznych?" amortyzatory: query "Czy rower ma mieć amortyzatory?" hamulce: query "Czy rower ma mieć hamulce tarczowe?" szybkosc: query "Czy lubisz szybką jazdę?" sciezki: query "Czy w twoim mieście są ścieżki rowerowe?" //definicja pytania o wartość atrybutu //deklaracja zbioru teren: query "Czy również lubisz jeździć po terenie?" rower: ask no; //system nie może stawiać pytania dotyczące danego atrybutu end; //koniec bloku opisu faset
rules //początek bloku reguł rower = "górski" if jazda = "góry", trudna = "nie"; rower = "górski z amortyzatorami" if jazda = "góry", trudna = "tak", amortyzatory = "tak", hamulce = "nie"; //deklaracja reguły składającej się z konkluzji oraz części warunkowej rower = "górski z hamulcami tarczowymi" if jazda = "góry", trudna = "tak", amortyzatory = "nie", hamulce = "tak"; rower = "górski z amortyzatorami i hamulcami tarczowymi" if jazda = "góry", trudna = "tak", amortyzatory = "tak", hamulce = "tak"; rower = "miejski" if jazda = "miasto", szybkosc = "nie", sciezki = "tak"; rower = "miejski z przerzutkami" if jazda = "miasto", szybkosc = "tak", sciezki = "tak"; rower = "miejski z oponami terenowymi" if jazda = "miasto", szybkosc = "nie", sciezki = "nie"; rower = "miejski z przerzutkami i oponami terenowymi" if jazda = "miasto", szybkosc = "tak", sciezki = "nie"; rower = "Wybierz rower szosowy" if jazda = " asfalt"; rower = "BMX" if jazda = "skatepark", teren = "nie";
rower = "BMX z oponami terenowymi" if jazda = "skatepark", teren = "tak"; rower = "skonsultuj się ze sprzedawcą" if (jazda = "inne") //reguła "zabezpieczająca" (jazda = "góry", trudna = "tak", amortyzatory = "nie", hamulce = "nie"); end; //koniec bloku reguł control //początek programu PC-Shell run; //uruchomienie programu vignette("wybór typu roweru", "Baza wiedzy\n\nautor:\n Zbigniew Kędzior","Wersja 1.0"); setappwintitle("system wspomagający wybór typu roweru"); menu "Menu" //tworzy menu z podpunktami 1. "Wybór typu roweru" 2. "Wyjście" case 1: //wykonanie pierwszego podpunktu menu goal("rower=rower"); delnewfacts; //inicjacja wnioskowania wstecz w celu potwierdzenia hipotezy //usunięcie nowych faktów z bazy wiedzy end; end; case 2: //wykonanie drugiego podpunktu menu exit; //wyjście end; //zamknięcie menu //zamknięcie programu //zamknięcie bazy wiedzy Baza wiedzy rower.bw składa się składa się z następujących bloków: Blok faset zawiera wszystkie atrybuty używane w systemie wraz z deklaracją zbioru wartości dla każdego atrybutu. Blok reguł zawiera deklarację reguł składających się z konkluzji oraz części warunkowej. Program PC-Shell zawiera informację o autorze bazy wiedzy oraz instrukcje odpowiedzialne za działanie programu.
3. Dokumentacja użytkownika. Po otwarciu bazy wiedzy pojawia się okno informacyjne: Pokazuje ono nazwę bazy wiedzy, informację o autorze oraz inne informacje zamieszczone przez autora. Po kliknięciu OK uruchamia się system, a u góry pojawia się rozwijane menu z dwoma pozycjami: Wybór typu roweru i Wyjście. Po wybraniu pierwszej pozycji pojawia się okienko z pierwszym pytaniem: Pierwsze pytanie ma na celu określić ogólny typ roweru. W następnych pytaniach, będzie określane jego wyposarzenie. Po wybraniu odpowiedzi miasto, system zadaje kolejne pytanie:
System pyta się użytkownika o szybką jazdę. Aby dowiedzieć się dlaczego system zadał takie pytanie, można kliknąć przycisk Dlaczego? : System uaktywnił regułę 5, jeżeli na pytanie byłaby odpowiedź nie, a w następnym pytaniu o ścieżki rowerowe tak, to system zaproponował by zakup zwykłego roweru miejskiego. Jednak użytkownik lubi szybką jazdę, klika tak i pojawia się kolejne pytanie:
System pyta o ścieżki rowerowe, a użytkownik wybiera nie i na koniec pojawia się okienko z rozwiązaniem: System zaproponował rower miejski z przerzutkami i oponami terenowymi, co zgadza się z oczekiwaniami użytkownika. Lubi on szybką jazdę po mieście, więc będzie musiał zmieniać przełożenie. W jego mieście nie ma ścieżek rowerowych, więc do jazdy po nierównościach i dziurach odpowiednie są opony terenowe. Aby dowiedzieć się jak system doszedł do tej konkluzji można kliknąć Jak? :
Z okienka, które się pojawiło wynika, że na podstawie trzech faktów system skorzystał z reguły 8. Dany system ekspertowy został tak zbudowany, że na podstawie odpowiedzi na pierwsze i dalsze pytania proponuje on użytkownikowi różne typy rowerów w zależności od jego zapotrzebowania. Jednak w przypadku wyboru innego miejsca niż "góry", "miasto", "asfalt" lub "skatepark", system proponuje konsultację ze sprzedawcą, co pokazuje poniższe okienko: System nie posiada informacji o rowerach nadających się go jazdy w innych miejscach, więc nie może udzielić porady. Jednak nic nie stoi na przeszkodzie aby w przyszłości go rozbudować. System proponuje również konsultację ze sprzedawcą wtedy, gdy użytkownik wybiera jazdę po górach, terenach trudnych i niebezpiecznych, ale nie chce roweru wyposażonego w amortyzatory i hamulce tarczowe, a więc jazda po takim terenie mogłaby się dla niego źle skończyć. Tutaj rola sprzedawcy polega na uświadomieniu użytkownika o niebezpieczeństwie, z czym system sobie nie radzi. Ponieważ uświadomienie i przekonanie człowieka o niebezpieczeństwie w przypadku niewłaściwego wyboru jest zależne od niego samego i dla każdego trzeba użyć innych argumentów, więc tylko sprzedawca może sobie z tym poradzić.
4. Wnioski, zalety i wady PC-Shell W narzędziu tym bardzo łatwo i szybko można zbudować system, który wspomaga decyzję na podstawie faktów i reguł. Jednak jest potrzebna duża ilości faktów i dobrze dobrane reguły, aby system działał sprawnie i wyciągał właściwe wnioski. W tym celu niezbędna jest wiedza specjalistów z danej dziedziny, więc jest ona trudna do zdobycia i kosztowna. Jednak mając dostęp do takiej wiedzy, można w oparciu o nią zbudować sprawny system. Działanie systemu polega na zadawaniu pytań użytkownikowi, szukaniu faktów, uaktywnianiu reguł i wyciąganiu wniosków. Odpowiedź użytkownika może nie zawsze być właściwa, bo np. nie zrozumie dobrze pytania. Tylko człowiek potrafi zadać to samo pytanie w inny sposób i na bieżąco analizować poprawność udzielonej odpowiedzi. Na pewno zbudowany system ekspertowy z bazą wiedzy dobrze nadaje się do wyciągania wniosków w dziedzinie, w której błędny wniosek nie jest szkodliwy. Moim zdaniem w ważnych dziedzinach końcową decyzje powinien podejmować specjalista, a system może mu posłużyć w celu pomocy, zmniejszenia ilości jego pracy i wstępnej konsultacji z użytkownikami.