Rachunek prawdopodobieństwa i statystyka/Ćwiczenia 10: Łańcuchy Markowa

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Ćwiczenia i Zadania

Ćwiczenie

Opiszemy symulację spaceru losowego za pomocą programu Maple.

Poniższa procedura rysuje położenie cząsteczki w zależności od czasu, podczas spaceru losowego o zadanych parametrach. Funkcja empirical[q,r,p] generuje rozkład, według którego losuje się liczby 1, 2 i 3 z prawdopodobieństwami q, r i p.

{active}{1d}{Spacer := proc(N,p,q,sa,sb,M)}{}

{active}{1d}{local A, B, r, PA, PC, PB, stan, krok, droga:}{}

{active}{1d}{A := -N: B := N: r := 1 - p - q: }{}

{active}{1d}{PA := empirical[0.,sa,1-sa]: PC := empirical[q,r,p]: PB := empirical[1-sb,sb,0.]:}{}

{active}{1d}{stan := 0: droga := stan: }{}

{active}{1d}{from 1 to M do if (A < stan and stan < B) then krok := random[PC](1) - 2 elif stan = A then krok := random[PA](1) - 2 elif stan = B then krok := random[PB](1) - 2 fi: stan := stan + krok: droga := droga,stan od:}{}

{active}{1d}{plots[pointplot]([seq([i,droga[i+1]], i = 0..nops([droga])-1)],axes=BOXED): end:}{}

Rysunek ze strony {ryssl} został utworzony poleceniem:

{active}{1d}{Spacer(3,0.5,0.5,0.8,0.8,20);}{}

Wygenerujemy teraz cztery ścieżki w spacerze losowym o 300 krokach. Bariery ustawiamy w punktach 10 i 10 oraz przyjmujemy następujące parametry:

p=0.5,q=0.45,r=0.05,sa=sb=0.8.

Teraz wykonujemy cztery razy polecenie:

{active}{1d}{Spacer(10,0.45,0.5,0.8,0.8,300);}{}

otrzymując następujące wyniki:

<flash>file=Rp.1.102.swf|width=350|height=350</flash>

<flash>file=Rp.1.103.swf|width=350|height=350</flash>

<flash>file=Rp.1.104.swf|width=350|height=350</flash>

<flash>file=Rp.1.105.swf|width=350|height=350</flash>

Ćwiczenie

Przyjrzymy się jeszcze raz przykładowi Uzupelnic markov3| przy założeniu, że d2.

Niech 𝐏d oznacza macierz przejścia naszego łańcucha Markowa. Ustalmy stan i=(i1,,id)d. Zauważmy, że przejście w n krokach ze stanu i z powrotem do tego stanu podczas d-wymiarowego spaceru losowego, jest równoważne przejściom ze stanów ij do ij w n krokach podczas niezależnych od siebie jednowymiarowych spacerów losowych. Właśnie korzystając z tej niezależności, dostajemy:

𝐏dn(i)=𝐏dn(i,i)=𝐏n(i1,i1)𝐏n(id,id)=(𝐏n(0,0))d.

Korzystając z powyższego wzoru oraz z twierdzenia Uzupelnic 101|, można obliczyć prawdopodobieństwa 𝐏dn(i) oraz prawdopodobieństwa powrotu w czasie skończonym Fnd(i) dla d=2,3,4,5,6. Warto w tym przypadku znowu skorzystać z programu Maple. Okazuje się, że:

[:]𝐏2n(i), F2(0)=1,
[:]𝐏3n(i)0.3932039296, F3(0)0.2822299888,
[:]𝐏4n(i)0.1186363871, F4(0)0.1060544682,
[:]𝐏5n(i)0.04682554981, F5(0)0.04473099631,
[:]𝐏6n(i)0.02046077706, F6(0)0.02005052768.

Powyższe wyniki można interpretować w sposób następujący: w przypadku jedno i dwuwymiarowym nie można się podczas spaceru zgubić, natomiast jest to możliwe w wyższych wymiarach, przy czym im wymiar większy, tym prawdopodobieństwo powrotu jest mniejsze.

Ćwiczenie

Rozważymy pewien spacer losowy z barierami i zbadamy numerycznie zachowanie się kolejnych potęg macierzy przejścia.

Tym razem bariery ustawiamy w punktach 2 oraz 2, zaś parametrami określającymi spacer są:

p=0.5,q=0.3,r=0.2,sa=0.9,sb=0.1.

Macierz przejścia ma wówczas postać:

Parser nie mógł rozpoznać (nieznana funkcja „\noalign”): {\displaystyle \displaystyle \mathbf{P} = \left[ \begin{array} {ccccc} 0.9& 0.1& 0.0& 0.0& 0.0 \\\noalign{\medskip} 0.3& 0.2& 0.5& 0.0& 0.0\\\noalign{\medskip} 0.0& 0.3& 0.2& 0.5& 0.0\\\noalign{\medskip} 0.0& 0.0& 0.3& 0.2& 0.5 \\\noalign{\medskip} 0.0& 0.0& 0.0& 0.9& 0.1\end{array} \right], }

zatem:

Parser nie mógł rozpoznać (nieznana funkcja „\noalign”): {\displaystyle \displaystyle \mathbf{P}^{10} \approx \left[ \begin{array} {ccccc} 0.545& 0.115& 0.122& 0.145& 0.0731 \\\noalign{\medskip} 0.346& 0.103& 0.159& 0.252& 0.140 \\\noalign{\medskip} 0.219& 0.0956& 0.181& 0.325& 0.180 \\\noalign{\medskip} 0.157& 0.0906& 0.195& 0.353& 0.205 \\\noalign{\medskip} 0.142& 0.0909& 0.194& 0.368& 0.205\end{array} \right]. }

Widzimy więc, na przykład, że prawdopodobieństwo przejścia w 10 krokach z lewej bariery do niej samej wynosi około 55, prawdopodobieństwo przejścia z lewej do prawej bariery -- około 7, zaś z punktu 0 do niego samego -- około 18.

Ćwiczenie

Zobaczymy, jak funkcjonuje twierdzenie ergodyczne w przypadku spaceru losowego opisanego w ćwiczeniu Uzupelnic cslnum|.

Macierze 𝐏30 i 𝐏50 wyglądają następująco:

Parser nie mógł rozpoznać (nieznana funkcja „\noalign”): {\displaystyle \displaystyle \mathbf{P}^{30} \approx \left[ \begin{array} {ccccc} 0.345& 0.103& 0.159& 0.254& 0.140 \\\noalign{\medskip} 0.309& 0.101& 0.165& 0.274& 0.152 \\\noalign{\medskip} 0.286& 0.0992& 0.170& 0.286& 0.159 \\\noalign{\medskip} 0.274& 0.0985& 0.172& 0.293& 0.163 \\\noalign{\medskip} 0.271& 0.0983& 0.172& 0.294& 0.164\end{array} \right], }
Parser nie mógł rozpoznać (nieznana funkcja „\noalign”): {\displaystyle \displaystyle \mathbf{P}^{50} \approx \left[ \begin{array} {ccccc} 0.309& 0.101& 0.165& 0.274& 0.152 \\\noalign{\medskip} 0.302& 0.100& 0.167& 0.277& 0.154 \\\noalign{\medskip} 0.298& 0.100& 0.167& 0.280& 0.155 \\\noalign{\medskip} 0.296& 0.0998& 0.168& 0.281& 0.156 \\\noalign{\medskip} 0.295& 0.0998& 0.168& 0.281& 0.156\end{array} \right]. }

Widzimy, że (tak jak przewiduje twierdzenie) wiersze powyższych macierzy stają się do siebie coraz bardziej podobne.

Znajdziemy teraz rozkład stacjonarny, rozwiązując odpowiedni układ równań postaci Ax=b. Wyznaczamy najpierw A oraz b tak, aby układ ten był równoważny układowi występującemu w twierdzeniu ergodycznym (twierdzenie Uzupelnic markovp54|). Otrzymujemy:

Parser nie mógł rozpoznać (nieznana funkcja „\noalign”): {\displaystyle \displaystyle A = \left[ \begin{array} {ccccc} - 0.1& 0.3&0&0&0\\\noalign{\medskip} 0.1&- 0.8& 0.3&0&0\\\noalign{\medskip}0& 0.5&- 0.8& 0.3&0 \\\noalign{\medskip}0&0& 0.5&- 0.8& 0.9\\\noalign{\medskip}0&0&0& 0.5& - 0.9\\\noalign{\medskip}1&1&1&1&1\end{array} \right], \ \ b = \left[ \begin{array} {c} 0\\\noalign{\medskip}0\\\noalign{\medskip}0\\\noalign{\medskip}0\\\noalign{\medskip}0\\\noalign{\medskip}1 \end{array} \right]. }

Łatwo obliczyć (można, oczywiście, skorzystać z programu Maple), że przybliżonym rozwiązaniem naszego układu równań jest następujący wektor π:

π[0.300370.100120.166870.278120.15451].

Widzimy, że rzeczywiście rozkład stacjonarny niewiele różni się od wierszy macierzy P50.

Ćwiczenie

Znajdziemy rozkłady i wartości oczekiwane zmiennych losowych Xn (dla niektórych wartości n), oznaczających kapitał Antoniego z przykładu Uzupelnic markov17|. Przyjmiemy następujące założenia:

A=8,B=5,p=0.2,q=0.4,

które oznaczają, że Antoni ma większy kapitał, ale Bolesław jest lepszym graczem.

Przypominamy, że mamy tutaj 14 stanów:

E={0,1,,13}.

Stan "0" oznacza definitywną ruinę Adama, zaś stan "13" -- jego całkowitą wygraną, natomiast gra startuje ze stanu "8".

Konstruujemy macierz przejścia 𝐏:

Parser nie mógł rozpoznać (nieznana funkcja „\noalign”): {\displaystyle \displaystyle \mathbf{P} = \left[ \begin{array} {cccccccccccccc} 1&0&0&0&0&0&0&0&0&0&0&0&0&0 \\\noalign{\medskip} 0.4& 0.4& 0.2&0&0&0&0&0&0&0&0&0&0&0 \\\noalign{\medskip}0& 0.4& 0.4& 0.2&0&0&0&0&0&0&0&0&0&0 \\\noalign{\medskip}0&0& 0.4& 0.4& 0.2&0&0&0&0&0&0&0&0&0 \\\noalign{\medskip}0&0&0& 0.4& 0.4& 0.2&0&0&0&0&0&0&0&0 \\\noalign{\medskip}0&0&0&0& 0.4& 0.4& 0.2&0&0&0&0&0&0&0 \\\noalign{\medskip}0&0&0&0&0& 0.4& 0.4& 0.2&0&0&0&0&0&0 \\\noalign{\medskip}0&0&0&0&0&0& 0.4& 0.4& 0.2&0&0&0&0&0 \\\noalign{\medskip}0&0&0&0&0&0&0& 0.4& 0.4& 0.2&0&0&0&0 \\\noalign{\medskip}0&0&0&0&0&0&0&0& 0.4& 0.4& 0.2&0&0&0 \\\noalign{\medskip}0&0&0&0&0&0&0&0&0& 0.4& 0.4& 0.2&0&0 \\\noalign{\medskip}0&0&0&0&0&0&0&0&0&0& 0.4& 0.4& 0.2&0 \\\noalign{\medskip}0&0&0&0&0&0&0&0&0&0&0& 0.4& 0.4& 0.2 \\\noalign{\medskip}0&0&0&0&0&0&0&0&0&0&0&0&0&1\end{array} \right] }

i zadajemy rozkład początkowy:

𝐩=[00000000100000],

Można teraz łatwo obliczać kolejne rozkłady korzystając z wzoru (Uzupelnic eq:101|) -- tak wyglądają, obliczone przy pomocy programu Maple, rozkłady po zakończeniu piątej, dwudziestej i dwusetnej gry:

𝐩5[0000.01020.05120.1280.2050.2300.1890.1150.05120.01600.003200.00032],𝐩20[0.1760.06200.09540.1130.1180.1120.09730.07760.05680.03780.02250.01140.004220.0165],𝐩200[0.9690.00001170.00001600.00001610.00001420.00001140.8541050.6041050.4021050.2501050.1431050.7071060.2571060.0311],

natomiast ich nadzieje matematyczne wynoszą:

𝔼(X5)7.00000,𝔼(X20)4.157931285,𝔼(X200)0.4050783639.

Tak więc po 200 grach mamy prawie 97 pewności, że Adam będzie bankrutem (jest też niewielka nadzieja, że wygra). Jednakże jest niezwykle mało prawdopodobne, że gra w ogóle będzie się toczyć (formalnie toczy się przez cały czas, tylko pozostaje w jednym ze stanów pochłaniających: "0" lub " 13").

Powyższą sytuację ilustruje także następująca animacja rozkładów prawdopodobieństwa zmiennych losowych X1,,X200:

. . .

Ćwiczenie

Napisz i uruchom program, który dla zadanej macierzy przejścia i zadanego rozkładu prawdopodobieństwa: (a) symuluje łańcuch Markowa, (b) wyznacza kolejne rozkłady prawdopodobieństwa tego łańcucha.

Ćwiczenie

Rozważmy spacer losowy po okręgu. Załóżmy, że cząsteczka może się znajdować w punktach odpowiadającym kątom k2πn, gdzie n jest ustaloną liczbą naturalną, natomiast k=0,,n1. Cząsteczka porusza się zgodnie z ruchem wskazówek zegara z prawdopodobieństwem p, przeciwnie do ruchu wskazówek zegara -- z prawdopodobieństwem q i nie zmienia położenia z prawdopodobieństwem r (p+q+r=1). Wskaż macierz przejścia odpowiedniego łańcucha Markowa.

Ćwiczenie

Znajdź macierz przejścia oraz rozkład początkowy łańcucha Markowa, który jest modelem zagadnienia opisanego w zadaniu Uzupelnic prz43|.

Ćwiczenie

Niech ξ0,,ξn będą niezależnymi zmiennymi losowymi, przyjmującymi jedynie wartości całkowite. Załóżmy, że zmienna ξ0 ma rozkład q0, natomiast zmienne ξ1,,ξn mają wspólny rozkład q. Określmy:

X0=ξ0  oraz  Xn+1=Xn+ξn+1 dla  n=0,1,2,

Sprawdź, że zmienne losowe Xn tworzą łańcuch Markowa.

Ćwiczenie

Niech 𝐏 będzie macierzą przejścia pewnego łańcucha Markowa. Wykaż, że dla wszystkich potęg k zachodzi warunek:

jE𝐏k(i,j)=1 dla każdego iE.

Ćwiczenie

Niech zmienne losowe Xn, n=0,1,2,, tworzą łańcuch Markowa. Pokaż, że zmienne X0,Xk,X2k,, gdzie k>1 jest ustaloną liczbą, także tworzą łańcuch Markowa.

Ćwiczenie

Napisz procedury, które symulują łańcuchy Markowa z przykładu Uzupelnic markov10| oraz z zadań Uzupelnic markov11| i Uzupelnic markov12|.

Ćwiczenie

Pokaż, że dla ergodycznego łańcucha Markowa oraz dla dowolnego rozkładu początkowego 𝐩, rozkłady wektorów losowych Xn są zbieżne do rozkładu stacjonarnego π, to znaczy:

limn𝐩n(i)=π(i) dla każdego iE.

Ćwiczenie

Znajdź rozkłady stacjonarne (o ile istnieją) dla łańcuchów Markowa z przykładu Uzupelnic markov10| oraz zadań Uzupelnic markov11| i Uzupelnic markov12|.

Ćwiczenie

Podaj przykład nieredukowalnego łańcucha Markowa o skończonej liczbie stanów, który nie jest ergodyczny.

Ćwiczenie

Wykaż, że ergodyczny łańcuch Markowa jest powracający.