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”.

Podobne dokumenty