Uniwersytet Śląski Wydział Informatyki i Nauki o Materiałach Informatyka Inżynierska (niestacjonarna) Systemy ekspertowe Sprawozdanie z PC-Shella Damian Nizioski autor sprawozdania Michał Jamrozy autor bazy wiedzy grupa A
1. Wprowadzenie Baza wiedzy las opisuje proces wyboru gatunku drzewa. Użytkownik chce zasadzid las na swojej prywatnej działce i pyta eksperta o odpowiedni gatunek drzewa. 2. Opis bazy wiedzy Baza wiedzy składa się z 6 atrybutów i ich wartości oraz z 14 reguł prostych. knowledge base lasprywatny facets // zbiór deklaracji wybranych atrybutów single yes; // Deklaracja globalna single yes oznacza, ze w bazie moze wystapic tylko // jeden fakt zawierajacy atrybut, do ktorego odnosi sie ta faseta rodzaj: query "Wybierz rodzaj drzewa:" // umozliwia zdefiniowanie uzytkownikowi tresci zapytania val oneof { "lisciaste", "iglaste" }; // okresla zbior dopuszczalnych wartosci danego atrybutu // moze zostac wybrana tylko jedna z podanych wartosci wysokosc: query "Wybierz wysokosc drzewa:" val oneof { "ponizej 20 m", "od 20 m do 30 m", "od 30 m do 40 m", "powyzej 40 m" }; wystepowanie: query "Wybierz miejsce wystepowania:" val oneof { "w gorach", "cala Polska", "punktowo w calej Polsce", "poludniowa i zachodnia czesc Polski" }; dlugosczycia: query "Wybierz dlugosc zycia:" val oneof { "ponizej 200 lat", "od 200 do 300 lat", "od 300 do 500 lat", "powyzej 500 lat" }; owoce: query "Wybierz typ owocu:" val oneof { "jadalne", "niejadalne", "brak" }; zastosowanie: query "Jakie posiada zastosowanie?" val oneof { "w przemysle meblarskim", "drzewo ozdobne", "w obrobce", "w przemysle papierniczym" }; drzewo: ask no; // Określa czy system może stawiad pytania dotyczące danego atrybutu end; rules // blok regul //Opis przykladowej reguly: //numer reguly: [nie wymagany] //konkluzja = wartosc if(jesli) 01: drzewo = "Buk zwyczajny" if
wysokosc = "od 30 m do 40 m", wystepowanie = "poludniowa i zachodnia czesc Polski", dlugosczycia = "od 200 do 300 lat", owoce = "jadalne", zastosowanie = "w przemysle meblarskim" ; 02: drzewo = "Sosna limba" if rodzaj = "iglaste", wystepowanie = "w gorach", dlugosczycia = "od 300 do 500 lat", owoce = "brak", zastosowanie = "w przemysle meblarskim" ; 03: drzewo = "Dab czerwony" if dlugosczycia = "od 300 do 500 lat", owoce = "jadalne", zastosowanie = "w przemysle meblarskim" ; 04: drzewo = "Cis pospolity" if rodzaj = "iglaste", wystepowanie = "punktowo w calej Polsce", dlugosczycia = "powyzej 500 lat", owoce = "brak", zastosowanie = "w obrobce" ; 05: drzewo = "Wierzba biala" if dlugosczycia = "ponizej 200 lat", owoce = "niejadalne", zastosowanie = "w przemysle meblarskim" ; 06: drzewo = "Modrzew europejski" if rodzaj = "iglaste", wysokosc = "powyzej 40 m", dlugosczycia = "powyzej 500 lat", owoce = "brak", zastosowanie = "w przemysle meblarskim" ; 07: drzewo = "Klon zwyczajny" if dlugosczycia = "ponizej 200 lat", owoce = "jadalne", zastosowanie = "w obrobce" ;
08: drzewo = "Swierk pospolity" if rodzaj = "iglaste", wysokosc = "powyzej 40 m", wystepowanie = "w gorach", dlugosczycia = "od 200 do 300 lat", owoce = "brak", zastosowanie = "drzewo ozdobne" ; 09: drzewo = "Brzoza brodawkowata" if dlugosczycia = "ponizej 200 lat", owoce = "jadalne", zastosowanie = "w przemysle papierniczym" ; 10: drzewo = "Jodla pospolita" if rodzaj = "iglaste", wysokosc = "powyzej 40 m", wystepowanie = "poludniowa i zachodnia czesc Polski", dlugosczycia = "powyzej 500 lat", owoce = "brak", zastosowanie = "drzewo ozdobne" ; 11: drzewo = "Jesion wyniosły" if wysokosc = "od 30 m do 40 m", dlugosczycia = "od 200 do 300 lat", owoce = "niejadalne", zastosowanie = "drzewo ozdobne"; 12: drzewo = "Daglezja zielona" if rodzaj = "iglaste", wysokosc = "powyzej 40 m", wystepowanie = "punktowo w calej Polsce", dlugosczycia = "powyzej 500 lat", owoce = "brak", zastosowanie = "w przemysle meblarskim" ; 13: drzewo = "Lipa drobnolistna" if dlugosczycia = "powyzej 500 lat", owoce = "jadalne", zastosowanie = "w obrobce" ; 14: drzewo = "Topola osika" if dlugosczycia = "ponizej 200 lat",
owoce = "niejadalne", zastosowanie = "w przemysle papierniczym" ; end; 15: drzewo = "Jablon domowa" if wysokosc = "ponizej 20 m", wystepowanie = "poludniowa i zachodnia czesc Polski", dlugosczycia = "ponizej 200 lat", owoce = "jadalne", zastosowanie = "drzewo ozdobne" ; control // blok sterowania char S1, S2, S3; run; // uruchomienie programu // tworzenie winiety i okna programu S1 := "Wybor gatunku drzewa"; S2 := "Demonstracyjny system doradczy wspomagajacy wybor gatunku drzewa."; S3 := "Copyright (C) 2014 Damian Nizinski i Michal Jamrozy"; vignette( S1, S2, S3 ); setappwintitle("przeglad gatunkow drzew"); // umożliwia automatyczne wprowadzenie do bazy wiedzy faktów będących konkluzjami wnioskowania uruchomionego za // pomocą instrukcji goal addsolution( yes ); int Odp; //zadeklarowanie zmiennej typu int Odp:=1; // przpisanie wartosci do zmiennej menu "Menu" 1. "Wybor gatunku drzewa" 2. "Exit" case 1: jest potwierdzenie danego celu przeprowadzid wybieranie case 2: while (Odp==1) exit; begin goal("drzewo=drzewo"); // inicjuje proces wnioskowania wstecz, którego zadaniem //umozliwienie kontynuacji lub zaniechania pewnych dzialan confirmbox( 0, 0, "Kontynuacja","Chcesz kontynuowac wybor", Odp ); delnewfacts; // usunięcie wszystkich nowych faktów, aby można jeszce raz end; end; end; end;
3. Dokumentacja użytkownika Załóżmy, że chcemy wybrad drzewo Lipa drobnolistna. W tym celu należy przejśd przez następującą drogę wnioskowania: Uruchamiamy program PC-Shell oraz naszą bazę wiedzy. Pojawia się okno, jak pokazano na rys. 1, z informacja mi wstępnymi. Rys. 1. Strona tytułowa bazy wiedzy. Wybieramy z menu, jak pokazano na rys. 2, opcje Wybór gatunku drzewa w celu rozpoczęcia komunikacji między użytkownikiem, a wirtualnym ekspertem. Rys. 2. Menu początkowe.
Komputerowy ekspert pyta użytkownika o rodzaj drzewa. Użytkownik odpowiada: drzewo liściaste i zatwierdza swój wybór, jak pokazano na rys. 3. Rys. 3. Wybór rodzaju drzewa. Już od pierwszego pytania użytkownik może sprawdzid proces decyzyjny systemu doradczego, jak pokazano na rys. 4. Na początku system bierze pod uwagę pierwszą regułę i sprawdza czy pasuje do odpowiedzi pytającego. Jeśli nie, to przechodzi do następnej reguły. Tak samo postępując z pozostałymi. Rys. 4. Okno wyjaśnienia.
Wirtualny ekspert pyta użytkownika o wysokośd drzewa. Użytkownik wskazuje na przedział od 20 do 30 metrów i zatwierdza swój wybór, jak pokazano na rys. 5. Rys. 5. Wybór wysokości drzewa. Wirtualny ekspert pyta użytkownika o miejsca występowania drzewa. Użytkownik odpowiada: cała Polska i zatwierdza swój wybór, jak pokazano na rys. 6. Rys. 6. Wybór miejsca występowania drzewa.
Wirtualny ekspert pyta użytkownika o długośd życia drzewa. Użytkownik odpowiada: powyżej 500 lat i zatwierdza swój wybór, jak pokazano na rys. 7. Rys. 7. Wybór miejsca występowania drzewa. Komputerowy ekspert pyta użytkownika o typ owocu. Użytkownik wskazuje na jadalne i zatwierdza swój wybór, jak pokazano na rys. 8. Rys. 8. Wybór typu owocu.
Komputerowy ekspert pyta użytkownika o zastosowania drzewa. Użytkownik odpowiada: w obróbce i zatwierdza swój wybór, jak pokazano na rys. 9. Rys. 9. Wybór zastosowania drzewa. System doradczy na podstawie odpowiedzi użytkownika osiągnął cel, do którego zmierzaliśmy, czyli Lipa drobnolistna, jak pokazano na rys. 10. Rys. 10. Rozwiązanie problemu.
Używając przycisku Jak? wirtualny ekspert przybliża użytkownikowi sposób wygenerowania rozwiązania postawionego problemu, jak pokazano na rys. 11. Rys. 11. Sposób dotarcia do celu. Jedną z form prezentacji tego typu wyjaśnieo jest przedstawienie tak zwanego drzewa wnioskowania, w którym rolę poszczególnych węzłów pełnią reguły oraz fakty uwzględnione przez system w procesie wnioskowania, jak pokazano na rys. 12 i rys. 13. Rys. 12. Wyjaśnienie ogólne. Rys. 13. Wyjaśnienie szczegółowe. W systemie PC-Shell możliwe są dwa sposoby graficznej prezentacji wyjaśnieo typu Jak? : ogólny, w którym przedstawiane są wyłącznie reguły oraz fakty, które doprowadziły do ich uzgodnienia szczegółowy, obejmujący, oprócz reguł i faktów, również warunki wchodzące w skład poszczególnych reguł wnioskowania.
4. Wnioski System PC-Shell jest polskim narzędziem o dużych możliwościach. Jest wyposażony we własny język reprezentacji wiedzy. Może byd łatwo integrowany z innymi aplikacjami. Do wad systemu PC-Shella można zaliczyd jego zaawansowany wiek i niezbyt przyjazny użytkownikowi interfejs.