Zacznijmy od najprostszej sytuacji. Rozważmy skończony zbiór , który będziemy nazywali przestrzenią stanów. Czasem wygodnie przyjąć, że . Jest to tylko umowne ponumerowanie stanów.
(i) Ciąg zmiennych losowych o wartościach w nazywamy łańcuchem Markowa, jeśli dla każdego i dla każdego ciągu punktów przestrzeni ,
(o ile tylko , czyli prawdopodobieństwo warunkowe w tym wzorze ma sens).
(ii) Łańcuch Markowa nazywamy jednorodnym, jeśli dla dowolnych stanów i i każdego możemy napisać
to znaczy prawdopodobieństwo warunkowe w powyższym wzorze zależy tylko od i , ale nie zależy od .
Jeśli , to mówimy, że łańcuch w chwili znajduje się w stanie . Warunek (i) w Definicji 7.1 znaczy tyle, że przyszła ewolucja łańcucha zależy od stanu obecnego, ale nie zależy od przeszłości. Łańcuch jest jednorodny, jeśli prawo ewolucji łańcucha nie zmienia się w czasie. W dalszym ciągu rozpatrywać będziemy głównie łańcuchy jednorodne. Macierz
nazywamy macierzą (prawdopodobieństw) przejścia łańcucha. Jest to macierz stochastyczna, to znaczy dla dowolnych stanów oraz dla każdego . Jeśli , to wektor wierszowy
nazywamy rozkładem początkowym łańcucha (oczywiście, ). Jest jasne, że
(7.1) |
Ten wzór określa jednoznacznie łączny rozkład prawdopodobieństwa zmiennych i może być przyjęty za definicję jednorodnego łańcucha Markowa. W tym sensie możemy utożsamić łańcuch z parą : łączny rozkład prawdopodobieństwa jest wyznaczony przez podanie rozkładu początkowego i macierzy przejścia.
Opiszemy teraz bardzo ogólną konstrukcję, która jest podstawą algorytmów generujących łańcuchy Markowa. Wyobraźmy sobie, jak zwykle, że mamy do dyspozycji ciąg ,,liczb losowych”, produkowanych przez komputerowy generator, czyli z teoretycznego punktu widzenia ciąg niezależnych zmiennych losowych o jednakowym rozkładzie, . Niech i będą takimi funkcjami, że
(7.2) |
Jeśli określimy rekurencyjnie w następujący sposób:
(7.3) |
to jest jasne, że tak otrzymany ciąg zmiennych losowych jest łańcuchem Markowa z rozkładem początkowym i macierzą przejścia .
Na zakończenie tego podrozdziału zróbmy kilka prostych uwag.
Wszystko, co w tym podrozdziale zostało powiedziane można niemal mechanicznie uogólnić na przypadek nieskończonej ale przeliczalnej przestrzeni .
Można sobie wyobrażać, że dla ustalonego , zbiór jest odcinkiem długości , ale nie musimy tego żądać. Nie jest istotne, że zmienne mają rozkład . Moglibyśmy założyć, że są określone na dość dowolnej przestrzeni . Istotne jest, że te zmienne są niezależne, mają jednakowy rozkład i zachodzi wzór (7.2). W praktyce bardzo często do zrealizowania jednego ,,kroku” łańcucha Markowa generujemy więcej niż jedną ,,liczbę losową”.
Przypadek ciągłej lub raczej ogólnej przestrzeni stanów jest w istocie równie prosty, tylko oznaczenia trzeba trochę zmienić i sumy zamienić na całki. Dla prostoty przyjmijmy, że . Poniżej sformułujemy definicję w taki sposób, żeby podkreślić analogię do przypadku dyskretnego i pominiemy subtelności teoretyczne. Zwróćmy tylko uwagę, że prawdopodobieństwo warunkowe nie może tu być zdefiniowane tak elementarnie jak w Definicji 7.1, bo zdarzenie warunkujące może mieć prawdopodobieństwo zero.
(i) Ciąg zmiennych losowych o wartościach w nazywamy łańcuchem Markowa, jeśli dla każdego , dla każdego ciągu punktów przestrzeni oraz dowolnego (borelowskiego ) zbioru ,
(dla prawie wszystkich punktów ).
(ii) Łańcuch Markowa nazywamy jednorodnym, jeśli dla dowolnego zbioru i każdego możemy napisać
(dla prawie wszystkich punktów ).
Funkcja , której argumentami są punkt i zbiór , jest nazywana jądrem przejścia. Ważne dla nas jest to, że dla ustalonego , jądro rozważane jako funkcja zbioru jest rozkładem prawdopodobieństwa. W wielu przykładach jest to rozkład zadany przez gęstość,
Wtedy odpowiednikiem wzoru (7.1) jest następujący wzór na łączną gęstość:
(7.4) |
gdzie jest gęstością rozkładu początkowego, zaś jest gęstością warunkową. Sformułowaliśmy Definicję 7.2 nieco ogólniej głównie dlatego, że w symulacjach ważną rolę odgrywają łańcuchy dla których prawdopodobieństwo przejścia nie ma gęstości. Przykładem może być łańcuch, który z niezerowym prawdopodobieństwem potrafi ,,stać w miejscu”, to znaczy , i ma prawdopodobieństwo przejścia postaci, powiedzmy
Łańcuch Markowa na ogólnej przestrzeni stanów można rekurencyjnie generować w sposób opisany wzorem (7.3), to znaczy i dla ciągu i.i.d. z rozkładu . Niech oznacza rozkład początkowy. Funkcje i muszą spełniać warunki
(7.5) |
Rozważmy proces stochastyczny , czyli rodzinę zmiennych losowych o wartościach w skończonej przestrzeni stanów , indeksowaną przez parameter , który interpretujemy jako ciągły czas. Pojedyncze stany oznaczamy przez lub podobnie. Załóżmy, że trajektorie są prawostronnie ciągłymi funkcjami mającymi lewostronne granice (prawie na pewno).
(i) Mówimy, że jest procesem Markowa, jeśli dla dowolnych oraz ,
(ii) Proces Markowa nazywamy jednorodnym, jeśli dla dowolnych stanów i i każdego i możemy napisać
to znaczy prawdopodobieństwo warunkowe w powyższym wzorze zależy tylko od , i , ale nie zależy od .
Sens założenia (i) jest taki sam jak w Definicji 7.1. Żądamy mianowicie, żeby zmienna byłą warunowo niezależna od zmiennych pod warunkiem zdarzenia . Oczywiście, jest prawdopodobieństwem przejścia w ciągu czasu . Rozkład początkowy oznaczymy przez . Ponieważ jest skończona, może być przedstawiony jako wektor a jako macierz.
Odpowiednikiem macierzy przejścia jest macierz intensywności przejść zdefiniowana następująco.
gdzie jest macierzą identycznościową. Można udowodnić, że granice istnieją. Tak więc i przy . Innymi słowy, jest rzeczywiście ,,intensywnością skoków z do ” (na jednostkę czasu). Mamy wzór analogiczny do (6.3):
Zauważmy, że mamy . Wspomnijmy jeszcze mimochodem, że macierze przejścia wyrażają się przez macierz intensywności przy pomocy ,,macierzowej funkcji wykładniczej”: . Dla uproszczenia notacji, niech oznacza “intensywność wszystkich skoków ze stanu ”.
Z tego co zostało powiedziane łatwo się domyślić, że generowanie procesu Markowa można zorganizować podobnie jak dla procesu Poissona, poprzez czasy skoków. Niech będą kolejnymi momentami skoków,
Jeśli , to czas oczekiwania na następny skok, zależy tylko od i ma rozkład wykładniczy z parametrem . W szczególności, mamy . Jeśli obserwujemy proces w momentach skoków, czyli skupimy uwagę na ciągu to otrzymujemy łańcuch Markowa z czasem dyskretnym, nazywany czasem ,,szkieletem”. Jego prawdopodobieństwa przejścia są takie:
(7.6) |
Oczywiście, cała trajektoria procesu jest w pełni wyznaczona przez momenty skoków i kolejne stany łańcucha szkieletowego chain . Po prostu, dla . Następujący algorytm formalizuje opisany powyżej sposób generacji.
Gen ; |
; |
for to do |
begin |
Gen ; |
; |
Gen ; { dane wzorem powyżej } |
end |
Czasami warto zmodyfikować algorytm w następujący sposób. Generowanie procesu Markowa można rozbić na dwie fazy: najpierw wygenerować ,,potencjalne czasy skoków” a następnie symulować ,,szkielet”, który będzie skakał wyłącznie w poprzednio otrzymanych momentach (ale nie koniecznie we wszystkich spośród nich). Opiszemy dokładniej tę konstrukcję, która bazuje na własnościach procesu Poissona. Wyobraźmy sobie najpierw, że dla każdego stanu symulujemy niezależnie jednorodny proces Poissona o punktach skoku przy czym ten proces ma intensywność . Jeśli teraz, w drugiej fazie , to za następny moment skoku wybierzemy najbliższy punkt procesu na prawo od , czyli . Z własności procesu Poissona (patrz Stwierdzenie 6.2 i jego dowód) wynika, że zmienna ma rozkład wykładniczy z parametrem i metoda jest poprawna. Naprawdę nie ma nawet potrzeby generowania wszystkich procesów Poissona . Warto posłużyć się metodą przerzedzania i najpierw wygenerować jeden proces o dostatecznie dużej intensywności a następnie ,,w miarę potrzeby” go przerzedzać. Niech będzie procesem Poissona o intensywności i oznaczmy jego punkty skoków przez . Jeśli w drugiej fazie algorytmu mamy w pewnym momencie , to zaczynamy przerzedzać proces w taki sposób, aby otrzymać proces o intensywności . Dla każdego punktu , powinniśmy rzucić monetą i z prawdopodobieństwem ten punkt usunąć. Ale jeśli usuniemy punkt to znaczy, że w tym punkcie nie ma skoku, czyli . Jeśli punkt zostawimy, to wykonujemy skok, losując kolejny stan z prawdopodobieństwem . W rezultacie, stan jest wylosowany z rozkładu prawdopodobieństwa
(7.7) |
Niech będzie ,,nadmiarowym szkieletem” procesu. Jest to łańcuch Markowa, który (w odróżnieniu od ,,cieńszego szkieletu” ) może w jednym kroku pozostać w tym samym stanie i ma prawdopodobieństwa przejścia .
Odpowiada temu następujący dwufazowy algorytm.
Faza I
Gen { proces Poissona } |
Faza II
Gen ; |
for to do Gen ; { dane wzorem powyżej } |
Algorytm jest bardzo podobny do metody wynalezionej przez Gillespie'go do symulowania wielowymiarowych procesów urodzin i śmierci (głównie w zastosowaniach do chemii). Te procesy mają najczęściej przestrzeń stanów postaci ; stanem układu jest układ liczb , gdzie jest liczbą osobników (na przykład cząstek) typu . Przestrzeń jest nieskończona, ale większa część rozważań przenosi się bez trudu. Pojawia się tylko problem w ostatnim algorytmie jeśli , czego nie można wykluczyć. Zeby sobie z tym poradzić, można wziąć dostatecznie duże, żeby ,,na ogół” wystarczało, a w mało prawdopodobnym przypadku zawitania do stanu z przerzucać się na pierwszy, jednofazowy algorym.
Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.
strona główna | webmaster | o portalu | pomoc
© Wydział Matematyki, Informatyki i Mechaniki UW, 2009-2010. Niniejsze materiały są udostępnione bezpłatnie na licencji Creative Commons Uznanie autorstwa-Użycie niekomercyjne-Bez utworów zależnych 3.0 Polska.
Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.
Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.