Proces Decyzyjny Markowa, równania Bellmana
Wstęp
Proces decyzyjny Markowa (MDP – Markov Decision Process) opisuje zbiór stanów (s), akcji (a), które można podjąć w danym stanie oraz skutków podjęcia danych akcji (T(s,a,s')) oraz kar bądź nagród (R) wynikłych z wejścia (lub utrzymania) w danym stanie
s - stan,
a - akcja, którą można wykonać w danym stanie, R(s) - koszt bycia w stanie s,
T(s, a, s') = P(s'|s, a) - prawdopodobieństwo przejścia w stan s' ze stanu s, przy wybraniu akcji a.
Pola, które nie posiadają akcji, nazywa się końcowymi lub terminalnymi.
Prosty przykład
Przykładem niech będzie zachowanie hazardzisty. Posiada on początkowo 2zł i będzie grał dopóki zbankrutuje, albo będzie miał 3zł. Podczas grania może on wykonać dwie akcje: może on obstawić 1 lub 2 złote (oczywiście, aby obstawić musi takie pieniądze wcześniej posiadać). Jeśli obstawi on 1zł wtedy prawdopodobieństwo pozyskania 1zł to 30%, natomiast straty 1zł to 70%. Jeżeli
natomiast obstawi 2 złote, wtedy prawdopodobieństwo pozyskania 1zł to 60% a straty 2zł to 40%.
Dla tej sytuacji:
s = {s
0, s
1, s
2, s
3} - to stany posiadania, odpowiednio 0, 1, 2, 3 złotych, a
1, a
2- to akcje obstawiania, odpowiednio 1 albo 2 złotych,
T(s
1, a
1, s
0) = 0,7; T(s
1, a
1, s
2) = 0,3;
T(s
2, a
1, s
1) = 0,7; T(s
2, a
1, s
3) = 0,3; T(s
2, a
2, s
0) = 0,4; T(s
2, a
2, s
3) = 0,6;
Stanami (polami) końcowymi są s
0i s
3.
Użycie MDP
Głównym zastosowaniem MDP jest pomoc w wyborze odpowiedniej akcji w danym stanie tak, aby przejść z aktualnego stanu do stanu bardziej korzystnego biorąc pod uwagę nie tylko wartość docelowego stanu ale również możliwość kolejnych zmian stanów. Aby umożliwić takie działanie
s0 s1 s2 s3
a1 a1
a2 0,4 0,6
0,7
0,7
0,3 0,3
należy zdefiniować R(s) równy kosztowi bądź nagrodzie za bycie w danym stanie.
Równania Ballmana
Do ustalania optymalnej polityki wyboru akcji w każdym ze stanów posłużyć mogą równania Ballmana:
π( s)=argmax
a∑
s '
P (s '
|s , a)V (s ')=argmax
a∑
s '
T (s , a , s ')V (s') , V (s)=R(s)+γ max
a∑
s'
P(s '
|s , a)V (s ')=R(s)+γ ∑
s '
T (s , π(s), s ')V (s ') , gdzie:
π( s) - to najlepsza akcja dla stanu (pola) s, V (s) - to potencjał (wartość) stanu s,
γ - to współczynnik określający „horyzont patrzenia”, mieszczący się w zbiorze (0; 1).
Powyższe wzory określają sposób wyliczenia optymalnej polityki wyboru akcji (jeśli to możliwe), oraz określają wartość poszczególnego stanu.
Algorytm ustalania optymalnej polityki wyboru akcji
Zgodnie z twierdzeniem Ballmana po skończonej liczbie kroków wartość V się ustabilizuje, a na jej podstawie będzie można wskazać wybór których akcji w każdym ze stanów jest najbardziej
optymalny. Algorytm wygląda następująco
1. Wyznacz s, a, T, R, określ γ (na przykład 0,5).
2. Określ początkowy stan V jako równy R.
3. Wykonaj pętlę zadaną liczbę razy (na przykład 1000).
3.1. V
stary= V.
3.2. Wykonaj pętlę dla każdego „normalnego” stanu s (nie będącego przeszkodą i stanem końcowym), kolejność nie jest istotna.
3.2.1. Wybierz najlepszą akcję (π (s)) dla stanu s, π(s)=argmax
a∑
s '
T (s , a , s ')V
stary( s ') . 3.2.2. Określ potencjał (V (s)) dla stanu s, V (s)=R(s)+γ ∑
s '
T (s , π(s), s ')V
stary( s ') . 3.3. Jeśli V
staryjest bardzo zbliżony do V, wtedy przerwij pętlę (na przykład maksymalny moduł z różnic między V
starya V jest mniejszy niż 10
-4).
Zadania do wykonania
Dana jest siatka dwuwymiarowa, na której podano R, oraz określono, które z pól są przeszkodami, a które z nich są niedostępne. Należy obliczyć potencjał dla każdego z pól (poza przeszkodami i polami końcowymi) oraz pokazać go wraz z polityką ruchu (wybór akcji dla każdego z pól), należy przyjąć γ=0,5
Plik mapy zawiera:
szerokość_mapy wysokość_mapy
określenie_typu_każdego_z_pól (0=przeszkoda, 1=normalne pole, 2=pole końcowe)
wartość_R_każdego_z_pól
Po tym niektóre mapy mogą w ramach ułatwienia zawierać dane odnośnie T dla kolejnych pól, nie należy z tego korzystać, ta część występuje jedynie w celu weryfikacji. Pola są rozpatrywane od lewej do prawej od góry do dołu, najpierw jest liczba akcji dla tego pola, następnie jest tabela z T dla tego pola (wysokość tabeli to liczba akcji, a szerokość to liczba stanów, wartości to
prawdopodobieństwa).
Możliwe akcje
Określono, że dla każdego pola (poza przeszkodami i polami końcowymi) można wykonać 4 akcje:
próba ruchu do góry, w prawo, w dół, w lewo. W czasie danej akcji prawdopodobieństwo ruchu w wybranym kierunku wynosi 80%, natomiast ruch w kierunku obróconym o 90stopni w stosunku do kierunku wybranego po 10% (dla obrotu zgodnie i przeciwnie do wskazówek zegara po 10%). Jeśli na dane pole sąsiednie nie da się wejść (przeszkoda lub brzeg siatki), wtedy przyjmuje się, że dana akcja nie przynosi rezultatu (brak zmiany stanu).
Przykład możliwości ruchu
Dane pole znajduje się na górze siatki, a po lewej stronie ma przeszkodę.
aktualna pozycja
Dla takiego przykładu dla danych akcji:
- próba ruchu do góry - prawdopodobieństwo zostania na tym polu to (80+10)%, prawdopodobieństwo przemieszczenia się w prawo to 10%;
- próba ruchu w prawo - prawdopodobieństwo pozostania na tym polu to 10%, ruchu w prawo to 80%, prawdopodobieństwo ruchu w dół to 10%;
- próba ruchu w dół - prawdopodobieństwo ruchu w prawo to 10%, prawdopodobieństwo ruchu w dół to 80%, prawdopodobieństwo zostania na tym polu to 10%;
- próba ruchu w lewo - prawdopodobieństwo ruchu w dół to 10%, prawdopodobieństwo braku ruchu to (80+10)%.
Przykład pierwszy
Plik mapy to:
4 3
1 1 1 2 1 0 1 2 1 1 1 1 -1 -1 -1 100 -1 0 -1 -80 -1 -1 -1 -1 4
0.9 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.8 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.1 0.0 0.0 0.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.9 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 4
0.1 0.8 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.8 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.8 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4
0.0 0.1 0.8 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.8 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.1 0.0 0.0 0.8 0.0 0.0 0.0 0.0 0.0 0.0 0.8 0.1 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0
4
0.8 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.8 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.8 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.8 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0
4
0.0 0.0 0.8 0.0 0.0 0.0 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.8 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.1 0.0 0.0 0.8 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.8 0.0 0.0 0.0 0.1 0.0 0
4
0.0 0.0 0.0 0.0 0.8 0.0 0.0 0.0 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.1 0.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.9 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.9 0.0 0.0 0.0 4
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.8 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.8 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.8 0.2 0.0 0.0 4
0.0 0.0 0.0 0.0 0.0 0.0 0.8 0.0 0.0 0.1 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.1 0.8 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.8 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.8 0.1 0.0 4 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.8 0.0 0.0 0.1 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.0 0.9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.9 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.1 0.0 0.0 0.8 0.1
Prawidłowe rozwiązanie dla γ=0,5 to:
Mapa potencjałów:
6.37 17.42 41.69 100.00 1.72 0.00 12.29 -80.00 -0.29 0.61 3.87 -1.46 Polityka ruchu:
2 2 2 0 1 0 1 0 1 2 1 3
Prawidłowe rozwiązanie dla γ=0,1 to:
Mapa potencjałów:
-1.05 -0.44 7.06 100.00 -1.10 0.00 -1.02 -80.00 -1.11 -1.11 -1.10 -1.11 Polityka ruchu:
2 2 2 0
1 0 4 0
1 2 1 3
Przykład drugi „gorąca podłoga”
Plik mapy to:
4 3
1 1 1 2 1 0 1 2 1 1 1 1 -50 -50 -50 100 -50 0 -50 -80 -50 -50 -50 -50