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
query " Wybierz miejsce w którym jeździsz:" //definicja pytania o wartość atrybutu
val oneof { "góry", "miasto", "asfalt", "skatepark", "inne" }; //deklaracja zbioru wartości atrybutu
trudna:
query "Czy lubisz jeździć po trudnych terenach i niebezpiecznych?"
val oneof { "tak", "nie" };
amortyzatory:
query "Czy rower ma mieć amortyzatory?"
val oneof { "tak", "nie" };
hamulce:
query "Czy rower ma mieć hamulce tarczowe?"
val oneof { "tak", "nie" };
szybkosc:
query "Czy lubisz szybką jazdę?"
val oneof { "tak", "nie" };
sciezki:
query "Czy w twoim mieście są ścieżki rowerowe?"
val oneof { "tak", "nie" };
teren:
query "Czy również lubisz jeździć po terenie?"
val oneof { "tak", "nie" };
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 //deklaracja reguły składającej się z konkluzji oraz części warunk owej
jazda = "góry", trudna = "nie";
rower = "górski z amortyzatorami" if jazda = "góry",
trudna = "tak", amortyzatory = "tak", hamulce = "nie";
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 //reguła "zabezpieczająca"
(jazda = "inne")
|
(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"); //inicjacja wnioskowania wstecz w celu potwier dzenia hipotezy
delNewFacts; //usunięcie nowych faktów z bazy wiedzy
case 2: //wykonanie drugiego podpunktu menu
exit; //wyjście
end; //zamknięcie menu
end; //zamknięcie programu
end; //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.