Lista zadań 2

Transkrypt

Lista zadań 2
Wstęp do sieci bayesowskich — Zadania lista 2 — Sieci
decyzyjne
Piersa Jarosław
2009-03-17
Zadanie 1 Plik umbrella.dne.
Z pewnym prawdopodobieństwem dziś będzie padał deszcz. Prognoza pogody zazwyczaj
poprawnie przewiduje ulewę, ale może się dowolnie źle pomylić (patrz system Lorenza).
Na podstawie prognozy pogody (bo faktycznej pogody znać nie może) pan Iksiński rano
podejmuje decyzję czy zabrać ze sobą parasol. Oczywiście najlepiej jest gdy nie pada i
parasol został w domu — Pan Iksiński ocenia taką wytuację wysoko +100. Jeżeli pada to
dobrze jest mieć parasol przy sobie +80. Jeżeli nie pada, a Pan Iksiński zabrał parasol to
musi go nosić ze sobą cały dzień, co nie jest wygodne +10. Jeżeli pada, a parasol został w
domu to Pan Iksiński przemoknie 0.
Skonstruuj (lub przeanalizuj gotową) sieć bayesowską z wykorzystaniem węzła decyzyjnego (decision node, action node) do podjęcia decyzji czy zabrać parasol i węzła wypłaty
(utility node) do liczenia „zysku” jaką przyniesie decyzja.
Pan Igerkowski jest zapalonym podróżnikiem i ma inne priorytety. Oczywiście lubi gdy
nie pada i nie nosi parasolki (+100), ale perspektywa zmoknięcia nie przeraża go (+20 jeżeli
zmoknie) aż tak bardzo jak dodatkowy balast (+0 jeżeli nosi parasol i nie pada). Jeżeli pada
i ma parasol ocenia sytuację na +40. Jak się zmieniły oczekiwane wartości decyzji?
Zadanie 2
Skonstruuj sieć wspomagającą decyzje lekarza (rys. 1). Węzły:
• Zimno — czy panuje zimowa pogoda (ma wpływ na osłabienie organizmu)
• Papierosy — czy pacjent pali papierosy (co może być alternatywną przyczyną kaszlu)
• Grypa — czy pacjent ma grypę
• Angina — czy pacjent ma anginę
• Kaszel — czy pacjent ma kaszel
• CzyLeczyć — Węzeł decyzyjny - czy należy pojąć leczenie?
• Wypłata — węzeł utylitarny określający trafność decyzji
Wybierz „intuicyjnie poprawne” prawdopodobieństwa warunkowe.
Dodaj do sieci dodatkowy węzeł JakWysokoPacjentCeniSwojeZdrowie. Jeżeli nisko to
stosowanie leczenia będzie mniej opłacalne. Jak zmieniają się optymalne decyzje?
Zadanie 3 Plik Car Buyer Neapolitan.dne.
Pan Iksiński zamierza kupić używany samochód. Jeżeli będzie on sprawny sporo zaoszczędzi, jeżeli okaże się złomem straci na naprawach więcej niż był wart. Ma możliwość
wykonać dwa testy pojazdu. Wiązą się one z dodatkową opłatą, ale dają szansę oceny czy
samochód jest sprawny czy też nie. Zbuduj sieć bayesowską pomagającą dokonać właściwego
wyboru. Węzły decyzyjne będą odpowiadały za to czy robić testy (nie, jeden, oba) oraz czy
dokonać zakupu (tak, nie). Węzły wypłaty będą szacowały zysk z danej decyzji.
1
Rysunek 1: Przykładowa sieć do zadania 2.
Zadanie 4 Przebuduj sieci do zadań Monty Halla z poprzedniej listy tak by wykorzystywały węzły decyzyjne i utylitarne
Zadanie programistyczne Zaimplementuj algorytm ważonego próbkowania logicznego.
Program powinien działać na sieci bayesowskiej ustalonej na stałe, wczytanej z pliku
konfiguracyjnego, wylosowanej, wyklikanej w edytorze sieci etc. Wymagana jest możliwość
edycji tabel prawdopodobieństw warunkowych (np. poprzez plik konfiguracyjny albo specjalne okno w programie) oraz możliwość wprowadzenia wiedzy E do sieci (poprzez wiedzę
rozumiemy możliwość ustalenia przyjętego stanu dla każdego węzła w każdym niepełnym
podzbiorze węzłów sieci).
Dla określonego przez użytkownika węzła A (lub dla każdego węzła), który nie zawiera
wiedzy E, program wyświetli rozkład prawdopodobieństwa stanów przyjmowanych przez A
pod waunkiem wiedzy E tj.
∀i P(A = ai |E)
Mile widziane są dodatkowe opcje np. edytor sieci, tryb „piaskownicy”, połączenie z poprzednim zadaniem, praktyczne zastosowanie (np. wirtualny lekarz pytający się o symptomy
i wystawiający diagnozę) itp.
Punktacja — 1 punkt.
Język programowania — dowolny, ale proszę nie korzystać z gotowych bibliotek dla sieci
bayesowskich.
Termin oddawania — 2009.04.21.
Algorytm Dane: sieć bayesowska, wiedza E, węzeł sieci X ∈
/ E. Wynik: Pozkład prawdopodobieństwa P(X = xi |E)
1. Powtarzaj dla j = 1..m razy:
• Przypisz wagaj := 1;
2
• Umieść w liściach losowe wartości zgdnie z prawdopodobieństwami apriori. Jeżeli
w liściu jest wiedza przypisz wartość wiedzy bez losowania i przemnóż wage przez
prawdopodobieństwo, że liść przyjmie dany stan (wynikający z wiedzy)
• Rekurencyjnie wylosuj wartości węzłów dla kolejnych pokoleń. Jeżeli w danym
węźle jest wiedza to przypisz wartość wynikającą z wiedzy bez losowania i przemnóż wagej przez prawdopodobieńswo, że węzeł przyjmnie stan wynikający z
wiedzy pod warunkiem wartości przyjętych przez jego rodziców (ustaleni w poprzednich krokach). Można odczytać z tabeli prawdopodobieństw warunkowych.
• Zapamiętaj wyniki razem z wagą (aj1 , ..., ajn , wagaj ).
2. Dla danego węzła X, który nie zawiera wiedzy E prawdopodobieństwo, że X przyjmuje
stan xi jest średnią ważoną przypadków, w których wartość węzła X została przyjęta
jako xi z wagą w
Pm
j
j=1 1ajk =xi · waga
Pm
P(X = xi |E) =
j
j=1 waga
jeżeli ak opisuje stan węzła X.
UWAGA: jeżeli wiedza jest sprzeczna to mianownik będzie zerowy.
3

Podobne dokumenty