Sprawozdanie dla ``poranneSniadanie.bw`
Transkrypt
Sprawozdanie dla ``poranneSniadanie.bw`
Dariusz Roterman Grupa IO2 Rok II Informatyka Inżynierska Systemy ekspertowe Sprawozdanie 1 z PC-Shell’a Baza Wiedzy: Wybór śniadania 1. Opis systemu System został stworzony w celu pomocy w wyborze śniadania. Rano kiedy ogranicza nas czas a następny autobus odjeżdża za 20 min nie ma czasu na zastanawianie się nad tym co zrobid sobie na śniadanie. System pozwoli zaoszczędzid na czasie niezdecydowanym osobom i wybrad odpowiednie dla nich śniadanie. 2.Baza wiedzy knowledge base poranneSniadanie facets single yes; czystudent: query "Czy jestes studentem:" val oneof { "tak", "nie" }; lubizdrowo: query "Czy lubisz jesc zdrowo:" val oneof { "tak", "nie" }; dieta: query "Jaka stosujesz diete:" val oneof { "odchudzam sie", "chce przytyc","chce pozostac przy aktualnej wadze" }; smak: query "Jakie wolisz sniadanie:" val oneof { "na slono", "na slodko", "na ostro"}; tolerancjalaktozy: query "Czy tolerujesz laktoze:" val oneof { "tak" , "nie"}; sniadanie: ask no; // Określa czy system może stawiad pytania dotyczące danego atrybutu end; rules 01: sniadanie = "owsianka" if czystudent="nie", lubizdrowo = "tak", (dieta = "chce pozostac przy aktualnej wadze"|dieta = "chce przytyc"), smak = "na slodko", tolerancjalaktozy = "tak"; 02: sniadanie = "salatka" if czystudent="nie", dieta = "odchudzam sie"; 03: sniadanie = "kanapki z wedlina" if czystudent="nie", dieta = "chce pozostac przy aktualnej wadze", smak = "na slono"; 04: sniadanie = "hamburger" if czystudent="nie", lubizdrowo = "nie", dieta = "chce przytyc", smak = "na slono"; 05: sniadanie = "platki sniadaniowe z mlekiem" if czystudent="nie", dieta = "chce pozostac przy aktualnej wadze", smak = "na slodko", tolerancjalaktozy = "tak"; 06: sniadanie = "ostry kebab" if czystudent="nie", lubizdrowo = "nie", dieta = "chce przytyc", smak = "na ostro"; 07: sniadanie = "kanapki z chlebem" if czystudent="tak"; end; control run; char S1, S2, S3; S1 := "Wybor sniadania"; S2 := "System doradczy wspomagajacy wybor sniadania"; S3 := "Roterman Dariusz"; vignette( S1, S2, S3 ); setAppWinTitle("Przeglad sniadan"); addSolution( yes ); int Odp; Odp:=1; menu "Menu" 1. "Wybor sniadania" 2. "Exit" case 1: while (Odp==1) begin goal("sniadanie=Sniadanie"); confirmBox( 0, 0, "Kontynuacja","Chcesz ponownie wybrad", Odp ); delNewFacts; end; case 2: exit; end; end; end; Baza wiedzy zawiera: Blok fasets w którym znajdują się atrybuty, wraz z deklaracją zbioru wartości dla każdego atrybutu, oraz pytao skierowanych do użytkownika, które mają określid te wartości. Blok rulet określający reguły składające się z konkluzji oraz części warunkowej. Blok control odpowiadający za interfejs użytkownika oraz wszczęcie wnioskowania, w tym przypadku funkcja goal (wnioskowanie w tył) Przykład Załóżmy, że nasz użytkownik nie jest studentem, lubi odżywiad się zdrowo, pasuje mu aktualna waga, preferuje słodkie śniadania oraz toleruje laktozę. Proces wnioskowania w narzędziu PC-shell oparty na naszej bazie wiedzy będzie wyglądał następująco: Na początku pokazany zostanie ekran informacyjny, po kliknieciu OK należy wybrad opcje „wybór sniadania” z menu, wtedy aplikacja przejdzie do zadawania użytkownikowi pytao. Pierwsze pytanie jakie zada system dotyczy tego czy użytkownik jest studentem, zgodnie z zamierzeniami klikamy nie. Warto nadmienid iż jeżeli na to pytanie odpowiemy tak system od razu wywnioskuje, że naszym śniadaniem powinny byd kanapki z chlebem (eksperci twierdzą że to doskonały posiłek dla studenta). Następnie zostajemy zapytani o to czy lubimy jeśd zdrowo, odpowiadamy, że tak W tym momencie zapytani o stosowaną przez nas dietę wybieramy, że chcemy zostad przy aktualnej wadze. Warto wspomnied, że równie dobrze moglibyśmy odpowiedzied na to pytanie „chce przytyd”, a wynik wnioskowania byłby taki sam Zapytani o to jakie wolimy śniadanie wybieramy na słodko Ostatnie pytanie ma na celu wyeliminowanie posilkow mlecznych z propozycji. Odpowiadamy iż tolerujemy laktoze System jako śniadanie zaoferował zgodnie z preferencjami użytkownika owsianke. Wnioski PC-Shell jest przyjaznym narzędziem wykorzystywanym przy tworzeniu systemów exportowych. Umożliwia odczyt baz wiedzy w formacie tekstowym narzucając dosyd prostą składnie, dodatkowo poszczególne źródła mogą znajdowad się w osobnych plikach, co jest przydatne przy rozbudowanych bazach. Bardzo przydatną opcją jest możliwośd śledzenia wnioskowania poprzez zadawanie pytao „jak” oraz „dlaczego”.