diff --git a/Przewodnik_studenta_lab/05LRAP_przewodnik.ipynb b/Przewodnik_studenta_lab/05LRAP_przewodnik.ipynb new file mode 100644 index 0000000..4be0c32 --- /dev/null +++ b/Przewodnik_studenta_lab/05LRAP_przewodnik.ipynb @@ -0,0 +1,927 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "577706", + "metadata": { + "collapsed": false + }, + "source": [ + "# Łańcuchy Markowa" + ] + }, + { + "cell_type": "markdown", + "id": "e1f50d", + "metadata": { + "collapsed": false + }, + "source": [ + "Łańcuchy Markowa stanowią przykład procesu stochastycznego, w którym rozważamy ciąg zmiennych losowych $X_0, X_1, X_2, \\ldots$ przyjmujących wartości w określonym zbiorze stanów $S$, przy czym to w jakim stanie znajdzie się zmienna losowa $X_{i+1}$ zależy tylko i wyłącznie od tego, w jakim stanie znalazła się zmienna losowa $X_i$. Formalna definicja łańcucha Markowa brzmi następująco.\n", + "\n", + "**Definicja (Łańcuch Markowa)**\n", + "\n", + "**Łańcuchem Markowa** nazywamy ciąg zmiennych losowych $X_0, X_1, X_2,\\dots$ taki, że dla dowolnych wartości $i_0,i_1,\\dots, i_t$ zachodzi\n", + "$$\\mathbb{P}(X_t=i_t|X_{t-1}=i_{t-1}, X_{t-2}=i_{t-2},\\dots, X_0=i_0)=\\mathbb{P}(X_t=i_t|X_{t-1}=i_{t-1}).$$\n", + "\n", + "Na tym kursie interesować nas będą tylko i wyłącznie **jednorodne** łańcuchy Markowa, tzn. takie, w których zbiorem wartości każdej zmiennej losowej jest zbiór stanów $S=\\{1,2,\\ldots,s\\}$ oraz dla każdego $t=1,2,\\ldots$ zachodzi\n", + "$$\\mathbb{P}(X_t=j|X_{t-1}=i)=\\mathbb{P}(X_1=j|X_{0}=i).$$\n", + "\n", + "Wówczas taki łańcuch możemy wyrazić za pomocą macierzy przechowującej powyższe wartości.\n", + "\n", + "**Definicja (macierz przejścia)**\n", + "\n", + "**Macierzą przejścia** (jednorodnego) łańcucha Markowa nazywamy macierz kwadratową $\\Pi=[p_{ij}]$, której wiersze i kolumny indeksowane są stanami łańcucha oraz taką, gdzie \n", + "$$ p_{ij}=\\mathbb{P}(X_1=j|X_{0}=i)$$\n", + "oznacza prawdopodobieństwo przejścia ze stanu $i$ do stanu $j$." + ] + }, + { + "cell_type": "markdown", + "id": "f7174b", + "metadata": { + "collapsed": false + }, + "source": [ + "**Przykład 1**\n", + "\n", + "Rozważmy łańcuch Markowa $X_0, X_1, X_2, \\ldots$ o dwóch stanach $0$ i $1$. Załóżmy, że w każdym kolejnym kroku prawdopodobieństwo przejścia do stanu przeciwnego jest dwa razy większe od prawdopodobieństwa pozostania w tym samym stanie. Zatem macierzą przejścia tego łańcucha jest macierz\n", + "$$\\Pi= \\left[\n", + " \\begin{array}{cc}\n", + " \\frac13 & \\frac23 \\\\\n", + " \\frac23 & \\frac13 \\\\\n", + " \\end{array}\n", + " \\right].$$\n", + " \n", + "Jeżeli napiszemy program, który będzie wypisywał po kolei w jakim stanie znajdzie się nasz łańcuch w kolejnych krokach, to otrzymamy losowy ciąg binarny. Przyjmijmy, że nasz łańcuch Markowa startuje od bitu $0$. " + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "a2daca", + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "01000100010101101100100011010100101010011000101110100100101101010101011010010110010010101001010100010" + ] + } + ], + "source": [ + "import random\n", + "\n", + "# definiujemy funkcję, ktora z prawdop. 1/3 zwraca ten sam bit, a z prawdop. 2/3 bit przeciwny\n", + "def random_bit(i):\n", + " if i==1:\n", + " return 0 if random.random() < (2/3) else 1\n", + " else:\n", + " return 1 if random.random() < (2/3) else 0\n", + "\n", + "bit = 0\n", + "print(bit, end=\"\")\n", + "for _ in range(100):\n", + " bit = random_bit(bit)\n", + " print(bit, end=\"\")" + ] + }, + { + "cell_type": "markdown", + "id": "52261f", + "metadata": { + "collapsed": false + }, + "source": [ + "**Definicja (rozkład początkowy)**\n", + "\n", + "Dla łańcucha Markowa $(X_i)_{i=0}^\\infty$ rozkład prawdopodobieństwa zmiennej losowej $X_0$ nazywać będziemy **rozkładem początkowym** tego łańcucha, natomiast rozkład zmiennej losowej $X_k$ nazywać będziem rozkładem po $k$ krokach. Powyższe rozkłady oznaczać będziemy odpowiednio za pomocą symboli $\\bar{\\rho}^0$ i $\\bar{\\rho}^k$.\n", + "\n", + "**Twierdzenie (rozkład po $k$ krokach)**\n", + "\n", + "Niech $(X_i)_{i=0}^\\infty$ będzie łańcuchem Markowa o macierzy przejścia $\\Pi$. Wtedy dla każdego $k, t=0,1,\\dots$, zachodzi\n", + "$$ \\bar{\\rho}^{t+1}=\\bar{\\rho}^{t}\\Pi=\\bar{\\rho}^0\\Pi^{t+1},$$\n", + "a także \n", + "$$\\bar{\\rho}^{t+k}=\\bar{\\rho}^t\\Pi^{k}.$$" + ] + }, + { + "cell_type": "markdown", + "id": "5b94a7", + "metadata": { + "collapsed": false + }, + "source": [ + "**Przykład 2 (Problem ruiny gracza)**\n", + "\n", + "Rozważmy łańcuch Markowa o macierzy przejścia\n", + "$$ \\Pi= \\left[\n", + " \\begin{array}{cccc}\n", + " 1 & 0 & 0 & 0 \\\\\n", + " p & 0 & 1-p & 0\\\\\n", + " 0 & p &0 & 1-p \\\\\n", + " 0 & 0 & 0 & 1\n", + " \\end{array}\n", + " \\right]\\,, $$\n", + "dla pewnego $p\\in(0,1)$. Załóżmy, że $p=\\frac13$ a rozkładem początkowym jest wektor $\\left(0, \\frac12, \\frac12, 0\\right)$. Zobaczmy, jak wyglądają rozkłady po $k$ krokach dla $k=1,2,\\ldots, 30$. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "2710af", + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rozkład po 1 krokach: [0.16666667 0.16666667 0.33333333 0.33333333]\n", + "Rozkład po 2 krokach: [0.22222222 0.11111111 0.11111111 0.55555556]\n", + "Rozkład po 3 krokach: [0.25925926 0.03703704 0.07407407 0.62962963]\n", + "Rozkład po 4 krokach: [0.27160494 0.02469136 0.02469136 0.67901235]\n", + "Rozkład po 5 krokach: [0.27983539 0.00823045 0.01646091 0.69547325]\n", + "Rozkład po 6 krokach: [0.28257888 0.00548697 0.00548697 0.70644719]\n", + "Rozkład po 7 krokach: [0.28440786 0.00182899 0.00365798 0.71010517]\n", + "Rozkład po 8 krokach: [0.28501753 0.00121933 0.00121933 0.71254382]\n", + "Rozkład po 9 krokach: [2.85423970e-01 4.06442107e-04 8.12884215e-04 7.13356704e-01]\n", + "Rozkład po 10 krokach: [2.85559451e-01 2.70961405e-04 2.70961405e-04 7.13898627e-01]\n", + "Rozkład po 11 krokach: [2.85649771e-01 9.03204683e-05 1.80640937e-04 7.14079268e-01]\n", + "Rozkład po 12 krokach: [2.85679878e-01 6.02136455e-05 6.02136455e-05 7.14199695e-01]\n", + "Rozkład po 13 krokach: [2.85699949e-01 2.00712152e-05 4.01424304e-05 7.14239837e-01]\n", + "Rozkład po 14 krokach: [2.85706640e-01 1.33808101e-05 1.33808101e-05 7.14266599e-01]\n", + "Rozkład po 15 krokach: [2.85711100e-01 4.46027004e-06 8.92054008e-06 7.14275519e-01]\n", + "Rozkład po 16 krokach: [2.85712587e-01 2.97351336e-06 2.97351336e-06 7.14281466e-01]\n", + "Rozkład po 17 krokach: [2.85713578e-01 9.91171120e-07 1.98234224e-06 7.14283449e-01]\n", + "Rozkład po 18 krokach: [2.85713908e-01 6.60780747e-07 6.60780747e-07 7.14284770e-01]\n", + "Rozkład po 19 krokach: [2.85714128e-01 2.20260249e-07 4.40520498e-07 7.14285211e-01]\n", + "Rozkład po 20 krokach: [2.85714202e-01 1.46840166e-07 1.46840166e-07 7.14285505e-01]\n", + "Rozkład po 21 krokach: [2.85714251e-01 4.89467220e-08 9.78934440e-08 7.14285602e-01]\n", + "Rozkład po 22 krokach: [2.85714267e-01 3.26311480e-08 3.26311480e-08 7.14285668e-01]\n", + "Rozkład po 23 krokach: [2.85714278e-01 1.08770493e-08 2.17540987e-08 7.14285689e-01]\n", + "Rozkład po 24 krokach: [2.85714282e-01 7.25136622e-09 7.25136622e-09 7.14285704e-01]\n", + "Rozkład po 25 krokach: [2.85714284e-01 2.41712207e-09 4.83424415e-09 7.14285709e-01]\n", + "Rozkład po 26 krokach: [2.85714285e-01 1.61141472e-09 1.61141472e-09 7.14285712e-01]\n", + "Rozkład po 27 krokach: [2.85714285e-01 5.37138238e-10 1.07427648e-09 7.14285713e-01]\n", + "Rozkład po 28 krokach: [2.85714286e-01 3.58092159e-10 3.58092159e-10 7.14285714e-01]\n", + "Rozkład po 29 krokach: [2.85714286e-01 1.19364053e-10 2.38728106e-10 7.14285714e-01]\n", + "Rozkład po 30 krokach: [2.85714286e-01 7.95760353e-11 7.95760353e-11 7.14285714e-01]\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "\n", + "# Definiujemy macierz Pi\n", + "Pi = np.array([[1, 0, 0, 0],\n", + " [1/3, 0, 2/3, 0],\n", + " [0, 1/3, 0, 2/3],\n", + " [0, 0, 0, 1]])\n", + "\n", + "# Definiujemy rozkład początkowy\n", + "rho_0 = np.array([0, 1/2, 1/2, 0])\n", + "\n", + "rho_k = rho_0\n", + "for k in range(30):\n", + " rho_k = rho_k.dot(Pi)\n", + " print(\"Rozkład po\", k+1, \"krokach:\", rho_k)" + ] + }, + { + "cell_type": "markdown", + "id": "4e096b", + "metadata": { + "collapsed": false + }, + "source": [ + "Jak widać nasz rozkład zaczyna się stabilizować, przy czym dwie środkowe wartości zbiegają do $0$, a dwie skrajne odpowiednio do $0.285714286$ i $0.714285714$ (w przybliżeniu). " + ] + }, + { + "cell_type": "markdown", + "id": "998b80", + "metadata": { + "collapsed": false + }, + "source": [ + "**Definicja (rozkład stacjonarny)**\n", + "\n", + "Wektor $\\bar\\pi=(\\pi_1,\\dots,\\pi_s)$ nazywamy **rozkładem stacjonarnym** łańcucha Markowa o macierzy przejścia $\\Pi=[p_{ij}]$, jeśli spełnia poniższe warunki:\n", + " - $\\sum_{i}\\pi_i=1$,\n", + " - $\\pi_i\\ge 0$ dla każdego $i=1,2,\\dots,s$,\n", + " - $\\bar \\pi \\Pi=\\bar \\pi$.\n", + " \n", + "Dwa pierwsze warunki mówią nam, że wektor $\\bar\\pi$ jest rozkładem prawdopodobieństwa na stanach. Z kolei trzeci warunek mówi, że rozkład ten nie zmienia się po wykonaniu jednego kroku łańcucha Markowa (co można rozumieć jako swego rodzaju stan równowagi). \n", + "\n", + "Rozkład, który otrzymaliśmy w powyższym przykładzie jest właśnie rozkładem stacjonarnym. W ogólnym przypadku, aby wyznaczyć rozkład stacjonarny należy rozwiązać odpowiedni układ równań wynikający z pierwszego i trzeciego warunku definicji. Natomiast można też to zrobić numerycznie przeprowadzając podobną symulację jak powyżej. Jeśli nasz łańcuch ma dokładnie jeden rozkład stacjonarny, powinniśmy być w stanie wyznaczyć go startując od dowolnego rozkładu początkowego. Jeśli rozkładów stacjonarnych jest więcej, wówczas wybór rozkładu początkowego będzie miał znaczenie dla dalszej analizy." + ] + }, + { + "cell_type": "markdown", + "id": "b70f17", + "metadata": { + "collapsed": false + }, + "source": [ + "## Biblioteka PyDTMC\n", + "\n", + "Przydatną biblioteką do obsługi łańcuchów Markowa w Pythonie jest PyDTMC. Zanim ją zainstalujemy powinniśmy upewnić się, że mamy zainstalowane pakiety Matplotlib, NetworkX, NumPy i SciPy. Zainstalujmy też pakiety Graphviz i pydot potrzebne do graficznego przedstawienia łańcuchów Markowa." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "d06eb0", + "metadata": { + "collapsed": true, + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Defaulting to user installation because normal site-packages is not writeable\r\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: pydtmc in /home/user/.local/lib/python3.10/site-packages (8.7.0)\r\n", + "Requirement already satisfied: matplotlib<=3.7.3 in /home/user/.local/lib/python3.10/site-packages (from pydtmc) (3.7.3)\r\n", + "Requirement already satisfied: networkx in /usr/local/lib/python3.10/dist-packages (from pydtmc) (3.1)\r\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from pydtmc) (1.23.5)\r\n", + "Requirement already satisfied: scipy in /usr/local/lib/python3.10/dist-packages (from pydtmc) (1.11.4)\r\n", + "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<=3.7.3->pydtmc) (1.2.1)\r\n", + "Requirement already satisfied: cycler>=0.10 in /usr/lib/python3/dist-packages (from matplotlib<=3.7.3->pydtmc) (0.11.0)\r\n", + "Requirement already satisfied: fonttools>=4.22.0 in /usr/lib/python3/dist-packages (from matplotlib<=3.7.3->pydtmc) (4.29.1)\r\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/lib/python3/dist-packages (from matplotlib<=3.7.3->pydtmc) (1.3.2)\r\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib<=3.7.3->pydtmc) (23.2)\r\n", + "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib<=3.7.3->pydtmc) (10.4.0)\r\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib<=3.7.3->pydtmc) (3.0.9)\r\n", + "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib<=3.7.3->pydtmc) (2.8.2)\r\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib<=3.7.3->pydtmc) (1.16.0)\r\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Defaulting to user installation because normal site-packages is not writeable\r\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: graphviz in /usr/local/lib/python3.10/dist-packages (0.8.4)\r\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Defaulting to user installation because normal site-packages is not writeable\r\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: pydot in /usr/lib/python3/dist-packages (1.4.2)\r\n" + ] + } + ], + "source": [ + "!pip install pydtmc\n", + "!pip install graphviz\n", + "!pip install pydot" + ] + }, + { + "cell_type": "markdown", + "id": "29fd51", + "metadata": { + "collapsed": false + }, + "source": [ + "Łańcuch Markowa w PyDTMC definiujemy dzięki funkcji `MarkovChain`, która jako argumenty przyjmuje macierz przejścia oraz listę stanów.\n", + "\n", + "**Przykład 3 (Problem ruiny gracza jeszcze raz)**\n", + "\n", + "Zdefiniujmy ponownie łańcuch Markowa dla problemu ruiny gracza z parametrem $p=1/3$. Zobaczmy, jakie informacje na temat tego łańcucha jesteśmy w stanie uzyskać dzięki zastosowaniu biblioteki PyDTMC." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "807da5", + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "DISCRETE-TIME MARKOV CHAIN\n", + " SIZE: 4\n", + " RANK: 4\n", + " CLASSES: 3\n", + " > RECURRENT: 2\n", + " > TRANSIENT: 1\n", + " ERGODIC: NO\n", + " > APERIODIC: YES\n", + " > IRREDUCIBLE: NO\n", + " ABSORBING: YES\n", + " MONOTONE: YES\n", + " REGULAR: NO\n", + " REVERSIBLE: NO\n", + " SYMMETRIC: NO\n", + "\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl0AAAJECAYAAAAsW5F4AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAFxGAABcRgEUlENBAABDLUlEQVR4nO3deZyN9f//8eeZjTFjDINhTJbse2TfZcm+ExFKor5t31SfVEghUvlokYpsScg+lUkosmXfZV+yDDOMGYxZr98fvuaX7Oac93XOeNxvt3P7fJxznet6zaE8uq7rXJfDsiwBAADAtbzsHgAAAOB+QHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQBAAAYQHQB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8m3ntvMzg1PY/i9MHjx48MjIg8OLbiY5OVmdO3dWcnKy5s6de9MbPEdFRSkmJkbly5dPf65ChQratWvXbbeRkJCg77//XomJiTc9fHcrNWvWlCStXr36psvcy3y5cuVK//+LFy9WrVq1FBgYeMtZRo0apf3792vKlCm3ndvOzwwAAKLLzTz//PNav369Fi5cqNDQ0JsuFx0dLUkKCgpKfy4oKOi2t+jZv3+/smXLphdffFFjx45Vzpw573rGXLlyqVq1alq4cKHT57tq/Pjx6t+//22XK1GihPr27avBgwfr4sWLt1zWzs8MAACiy418+OGHmjBhgqZPn64KFSrcctncuXNLunLR1Kvi4uKUJ0+eW76vWLFiSkpK0k8//aSXX35ZU6dOvadZ27dvrwULFiglJcWp80nSsWPHdP78+dt+Ble98847unDhgsaMGXPL5ez+zAAA9zeiy038/PPPeuONN/TBBx+oTZs2t10+NDRUISEh2rFjR/pz27ZtU5kyZW77Xl9fX1WpUkWdO3fWDz/8cE/zdujQQTExMVq1apXT5/vqq6/Ut2/fO54lT548eu211zRq1CidOnXqpsvZ/ZkBAO5zGTghDE6yc+dOK0eOHFbv3r3v6n3/+c9/rLp161onT560li1bdt038Tp27GgNHz7csizLOnPmjFWuXDnrr7/+spKSkqwdO3ZYJUuWtF577bV7nrtMmTLWSy+95JT5rkpOTrbKlSt30y8Q3MylS5esBx54wHr22WdvuZzdnxkyxPaTYHnw4MEjI4+MvBlOcObMGevBBx+06tSpc0+h0bNnTytbtmxWWFiY9c0331zzeocOHaxhw4al/3rmzJlWlSpVLH9/fyssLMzq37+/dfHixXuefciQIVa+fPmsxMREp8xnWZY1e/Zsa8CAAfc0z8SJEy0fHx9r7969N13G7s8MGWL7vzB58ODBIyMPh2VZ97yTzJl73O5HSUlJatq0qY4ePap169bd0flO7uTEiRMqXLiwvvnmG/Xo0cPucZSamqry5curUqVKmj59ut3jwPnsucs7ADgJ0WUTy7LUq1cvLViwQKtWrVK5cuXsHumedOvWTXv37rX1tkD/NGvWLHXr1k2bNm1SxYoV7R4HzkV0AfBoRJdNhg8friFDhmjBggVq2bKl3ePcs9WrV6t27dpavXp1+vW77GRZlh5++GEV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", + "text/plain": [ + "
" + ] + }, + "execution_count": 3, + "metadata": { + "image/png": { + "height": 290, + "width": 302 + }, + "needs_background": "light" + }, + "output_type": "execute_result" + } + ], + "source": [ + "import pydtmc\n", + "p = [[1, 0, 0, 0], [1/3, 0, 2/3, 0], [0, 1/3, 0, 2/3], [0, 0, 0, 1]]\n", + "mc = pydtmc.MarkovChain(p, ['A', 'B', 'C', 'D'])\n", + "print(mc)\n", + "pydtmc.plot_graph(mc, dpi=300)" + ] + }, + { + "cell_type": "markdown", + "id": "64f17c", + "metadata": { + "collapsed": false + }, + "source": [ + "Niektóre z wyżej wymienionych parametrów/własności zostały zdefiniowane na wykładzie, pozostałe wyjaśnimy za chwilę. Zacznijmy od tego, że stany łańcucha możemy podzielić na **klasy**, które składają się ze wzajemnie **komunikujących się** stanów, czyli takich, dla których istnieje dodatnie prawdopodobieństwo przejścia z jednego w drugi i vice versa. Własność komunikowania się zadaje relację równoważności na zbiorze stanów, a powyżej wspomniane klasy są to po prostu klasy równoważności tej relacji.\n", + "\n", + "Stany możemy podzielić na dwa typy:\n", + " - **rekurencyjne** (*ang. recurrent*) czyli takie, dla których prawdopodobieństwo powrotu do tego stanu wynosi $1$, oraz\n", + " - **chwilowe** (*ang. transient*), czyli takie, dla których to prawdopodobieństwo jest mniejsze od $1$.\n", + " \n", + "Stany znajdujące się w tej samej klasie są oczywiście tego samego typu.\n", + " \n", + "Przypomnijmy, że łańcuch Markowa nazywamy **nierozkładalnym** (*ang. irreducible*), jeśli z każdego jego stanu jesteśmy w stanie z dodatnim prawdopodobieństwem przejść do każdego innego w skończonej liczbie kroków. Przez **okres** stanu $j$ rozumiemy liczbę $d(j) = NWD\\{t \\ge 1 : p^{(t)}_{jj} > 0\\}$, gdzie $p^{(t)}_{jj}$ oznacza prawdopodobieństwo przejścia ze stanu $j$ z powrotem do stanu $j$ w dokładnie $t$ krokach. Stan $j$ nazywamy **okresowym**, jeśli $d(j) > 1$, w przeciwnym wypadku mówimy, że stan $j$ jest **nieokresowy**. Łańcuch Markowa jest **nieokresowy** (*ang. aperiodic*), jeśli wszystkie jego stany są nieokresowe. Ponadto, łańcuch który jest jednocześnie nierozkładalny i nieokresowy nazywamy **ergodycznym**.\n", + "\n", + "**Ciekawostka:** Pojęcie ergodyczności jest bardzo ważne w matematyce i fizyce. Opisuje ono procesy, w których rozważamy pewną cząstkę poruszającą się w pewnym systemie. Ergodyczność takiego procesu mówi nam, że cząstka porusza się po tym systemie w sposób jednostajny i losowy. Co za tym idzie, możemy przewidywać własności takiego procesu na podstawie trajektorii (drogi) cząstki lub też na podstawie odpowiednio dużej liczby próbek losowych opisujących zachowanie tego systemu. \n", + "\n", + "Stanem **pochłaniającym** (*ang. absorbing*) nazywamy stan, z którego nie da się wyjść, innymi słowy jest to taki stan $j$, dla którego $p_{jj}=1$. Łańcuch Markowa jest **regularny** (*ang. regular*), jeśli jego macierz przejścia podniesiona do pewnej potęgi (całkowitej dodatniej) ma tylko dodatnie wyrazy. Łańcuch Markowa nazywamy **odwracalnym** (*ang. reversible*), jeśli łańcuch Markowa odpowiadający procesowi odwrotnemu do wyjściowego łańcucha jest tym samym łańcuchem. Natomiast **symetryczny** (*ang. symmetric*) łańcuch Markowa to taki, dla którego macierz przejścia jest symetryczna." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "574726", + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Stany rekurencyjne: ['A', 'D']\n", + "Stany chwilowe: ['B', 'C']\n", + "Rozkłady stacjonarne: [array([1., 0., 0., 0.]), array([0., 0., 0., 1.])]\n" + ] + } + ], + "source": [ + "print(\"Stany rekurencyjne:\", mc.recurrent_states)\n", + "print(\"Stany chwilowe:\", mc.transient_states)\n", + "print(\"Rozkłady stacjonarne:\", mc.pi)" + ] + }, + { + "cell_type": "markdown", + "id": "057654", + "metadata": { + "collapsed": false + }, + "source": [ + "Co możemy teraz powiedzieć o łańcuchu z naszego przykładu? Jest to łańcuch, który posiada trzy klasy:\n", + " - $\\mathcal{C}_1 = \\{A\\}$, \n", + " - $\\mathcal{C}_2 = \\{B, C\\}$, \n", + " - $\\mathcal{C}_3 = \\{D\\}$.\n", + " \n", + "Klasy $\\mathcal{C}_1$ i $\\mathcal{C}_3$ zawierają stany rekurencyjne. Co więcej są to też stany pochłaniające. Klasa $\\mathcal{C}_2$ zawiera stany chwilowe. Na powyższej grafice każda klasa jest reprezentowana przez osobny kolor. Ponadto, stany rekurencyjne narysowane są w kształcie elipsy, a stany chwilowe w kształcie prostokąta.\n", + "Możemy też stwierdzić, że nasz łańcuch jest łańcuchem nieokresowym, ale nie jest nierozkładalny, a zatem nie może też być ergodyczny. \n", + "\n", + "Jak wiemy z wykładu każdy stan pochłaniający generuje nam rozkład stacjonarny, który jest równy $1$ na tym stanie i $0$ na pozostałych stanach. W przypadku rozważanego łańcucha Markowa dostajemy dzięki temu dwa rozkłady stacjonarne: $(1, 0, 0, 0)$ i $(0, 0, 0, 1)$. Wiemy ponadto, że każda kombinacja wypukła rozkładów stacjonarnych jest też rozkładem stacjonarnym, a zatem otrzymujemy tak naprawdę nieskończenie wiele takich rozkładów, każdy postaci $(p, 0, 0, 1-p)$ dla $p\\in[0,1]$.\n", + "\n", + "Biblioteka PyDTMC umożliwia nam również symulację naszego łańcucha, czyli przykładowe poruszanie się cząstki pomiędzy stanami zgodnie z rozkładem zadanym macierzą przejścia (ale w przypadku łańcuchów ze stanami pochłaniającymi taka symulacja nie zawsze jest ciekawa, bo jak tylko cząstka wpadnie do stanu pochłaniającego, nigdy go nie opuszcza)." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "9f8db0", + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['B', 'C', 'B', 'C', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D', 'D']\n" + ] + } + ], + "source": [ + "print(mc.simulate(20, seed=30))" + ] + }, + { + "cell_type": "markdown", + "id": "063eee", + "metadata": { + "collapsed": false + }, + "source": [ + "Możemy też przedstawić taką symulację graficznie." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "e8888f", + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "execution_count": 12, + "metadata": { + "image/png": { + "height": 518, + "width": 892 + }, + "needs_background": "light" + }, + "output_type": "execute_result" + } + ], + "source": [ + "pydtmc.plot_sequence(mc,20,seed=30,plot_type='matrix',dpi=75)" + ] + }, + { + "cell_type": "markdown", + "id": "0bf3e8", + "metadata": { + "collapsed": false + }, + "source": [ + "**Przykład 4**\n", + "\n", + "Rozważmy teraz łańcuch zadany macierzą przejścia\n", + "$$ \\Pi= \\left[\n", + " \\begin{array}{cccc}\n", + " 1/3 & 1/3 & 1/3 & 0 \\\\\n", + " 1/3 & 0 & 1/3 & 1/3\\\\\n", + " 0 & 1/2 &0 & 1/2 \\\\\n", + " 1/2 & 0 & 0 & 1/2\n", + " \\end{array}\n", + " \\right]\\,, $$" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "be28b8", + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "DISCRETE-TIME MARKOV CHAIN\n", + " SIZE: 4\n", + " RANK: 4\n", + " CLASSES: 1\n", + " > RECURRENT: 1\n", + " > TRANSIENT: 0\n", + " ERGODIC: YES\n", + " > APERIODIC: YES\n", + " > IRREDUCIBLE: YES\n", + " ABSORBING: NO\n", + " MONOTONE: NO\n", + " REGULAR: YES\n", + " REVERSIBLE: NO\n", + " SYMMETRIC: NO\n", + "\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAe8AAAL6CAYAAAAfet54AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAFxGAABcRgEUlENBAAB9a0lEQVR4nO3dd1hU17oG8HeGXgSUJogKiooo9h57JUZFiWLsMbEmMZocNbFFSSwxlpgYjb3FXoOFaCyIFYkFAVER7NJR+gADM/cPjtxwRGkzs2cz7+95eO51Zs9aH8Tjy1p77bUkSqUSREREJB5SoQsgIiKismF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZhjcREZHIMLyJiIhEhuFNREQkMgxvIiIikWF4ExERiQzDm4iISGQY3kRERCLD8CYiIhIZ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", + "text/plain": [ + "
" + ] + }, + "execution_count": 43, + "metadata": { + "image/png": { + "height": 381, + "width": 247 + }, + "needs_background": "light" + }, + "output_type": "execute_result" + } + ], + "source": [ + "p2 = [[1/3, 1/3, 1/3, 0], [1/3, 0, 1/3, 1/3], [0, 1/2, 0, 1/2], [1/2, 0, 0, 1/2]]\n", + "mc2 = pydtmc.MarkovChain(p2, ['A', 'B', 'C', 'D'])\n", + "print(mc2)\n", + "pydtmc.plot_graph(mc2, dpi=300)" + ] + }, + { + "cell_type": "markdown", + "id": "408b93", + "metadata": { + "collapsed": false + }, + "source": [ + "Tym razem jest to łańcuch ergodyczny, a zatem nieokresowy i nierozkładalny. Wszystkie jego stany należą do jednej klasy, bo z każdego stanu jesteśmy w stanie przejść do każdego innego w skończonej liczbie kroków z dodatnim prawdopodobieństwem." + ] + }, + { + "cell_type": "markdown", + "id": "10850f", + "metadata": { + "collapsed": false + }, + "source": [ + "## Błądzenie klasyczne na grafie\n", + "\n", + "Jednym z ważniejszych przykładów łańcuchów Markowa jest **błądzenie klasyczne cząsteczki na grafie** zwane też czasem **spacerem losowym na grafie** (*ang. random walk*) . W tym eksperymencie losowym cząsteczka przemieszcza się z jednego wierzchołka grafu na drugi, za każdym razem wybierając sąsiada wierzchołka, w którym się aktualnie znajduje w sposób jednostajny, tzn. każdego z sąsiadów wybiera z równym prawdopodobieństwem. Zbiorem stanów tego łańcucha jest zbiór wierzchołków, a macierz przejścia zależna jest tylko i wyłącznie od stopni poszczególnych wierzchołków. Z wykładu wiemy, że takie własności jak nierozkładalność czy nieokresowość w przypadków błądzenia losowego na grafie zależą tylko i wyłącznie od struktury grafu, a dokładniej:\n", + " - łańcuch jest nierozkładalny, jeśli graf po którym błądzimy jest spójny,\n", + " - łańcuch jest nieokresowy, jeśli graf po którym błądzimy nie jest grafem dwudzielnym.\n", + " \n", + "Co więcej, jednym z rozkładów stacjonarnych błądzenia klasycznego na $n$-wierzchołkowym grafie $G$ jest na pewno znormalizowany wektor zadany przez ciąg stopni, czyli wektor\n", + "$$\\left(\\frac{d(v_1)}{2e(G)}, \\frac{d(v_2)}{e(G)}, \\ldots, \\frac{d(v_n)}{2e(G)} \\right),$$\n", + "gdzie $d(v)$ oznacza stopień wierzchołka $v$, a $e(G)$ to liczba krawędzi grafu $G$. W tym wypadku normalizacja polega na podzieleniu wektora ciągu stopni przez podwojoną liczbę krawędzi tak, aby suma wyrazów w wektorze była równa $1$ (bo oczywiście z kursu Matematyki dyskretnej pamiętamy, że $\\sum_{v\\in V(G)} d(v) = 2e(G)$).\n", + "\n", + "**Przykład 5 (błądzenie na cyklu $C_6$)**\n", + "\n", + "Rozważmy błądzenie losowe na cyklu na sześciu wierzchołkach. Macierz przejścia dla tego błądzenia wygląda następująco\n", + "$$ \\Pi= \\left[\n", + " \\begin{array}{cccccc}\n", + " 0 & \\frac12 & 0 & 0 & 0 & \\frac12 \\\\\n", + " \\frac12 & 0 & \\frac12 & 0 & 0 & 0 \\\\\n", + " 0 & \\frac12 & 0 & \\frac12 & 0 & 0 \\\\\n", + " 0 & 0 & \\frac12 & 0 & \\frac12 & 0 \\\\\n", + " 0 & 0 & 0 & \\frac12 & 0 & \\frac12 \\\\\n", + " \\frac12 & 0 & 0 & 0 & \\frac12 & 0\n", + " \\end{array}\n", + " \\right]\\,. $$\n", + " \n", + "Przyjmijmy, że błądzenie losowe rozpoczynamy w wierzchołku nr $1$, co możemy zasymulować przyjmując jako rozkład początkowy rozkład $\\bar{\\rho}^0 = (1, 0, 0, 0, 0, 0, 0)$.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "id": "b217f0", + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "DISCRETE-TIME MARKOV CHAIN\n", + " SIZE: 6\n", + " RANK: 6\n", + " CLASSES: 1\n", + " > RECURRENT: 1\n", + " > TRANSIENT: 0\n", + " ERGODIC: NO\n", + " > APERIODIC: NO (2)\n", + " > IRREDUCIBLE: YES\n", + " ABSORBING: NO\n", + " MONOTONE: NO\n", + " REGULAR: NO\n", + " REVERSIBLE: YES\n", + " SYMMETRIC: YES\n", + "\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAiAAAARkCAYAAABLkK9cAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/OQEPoAAAACXBIWXMAAFxGAABcRgEUlENBAACh8klEQVR4nOzdd3hU1fr28XvSQ0ICBAi9916lSK8qJTTpAoIUj+0cOYLloKBYsFcEFVCkiAUIAtJ7BwVCQkd6SSBAIKQn8/7BD14pAcSZtZOZ7+e65jqwZ1jPsxMPuVl77bVtdrtdAAAAJnlY3QAAAHA/BBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACAcQQQAABgHAEEAAAYRwABAADGEUAAAIBxBBAAAGAcAQQAABhHAAEAAMYRQAAAgHEEEAAAYBwBBAAAGEcAAQAAxhFAAACA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q686fPzbzX5IUkZGhjZs2ODwegAAZDduOQPy7bffau3atdq8ebPDdxnNbPbjmgsXLujYsWMqVqyYQ+sCAJCduN0MyPnz5zVy5Eg99dRTql27tsPHz2z24xqbzcY6EACA23O7APLCCy/I09NTY8aMcfjYBw4cuOXOl5t5e3try5YtDq8NAEB24laXYLZu3aopU6Zo5syZypUrl8PHHzt2rDIyMuTt7S0PDw+lpqbecikmJSWFDckAAG7PrQLIiy++qHr16jntSaGvvPKKevbsqSNHjujw4cM6dOiQVq5cqdTUVMXHx1//3I4dO5Senn7HSzUAALgytwkgCxYs0IoVK7Ru3TrZbM55Sni5cuVUrly567/fvXu3KleurJ07d6pkyZI6fPjw9XASFxenPHnyOKUPAACyOrcIIBkZGXrppZfUuXNnPfjgg8bq7t27Vx4eHipTpoxy5MihatWqqVq1asbqAwCQVblFAJk9e7aioqL0448/Gq27b98+FStWTDly5DBaFwCArM4t7oIZN26cunbtqgoVKhitu2/fPpUvX95oTQAAsgOXDyBLlizRtm3bNGLECOO19+3bZzz0AACQHbh8ABk3bpzatGmjOnXqGK+9f/9+ZkAAALgNl14Dsn//fq1cuVILFiwwXjsmJkbnz58ngAAAcBsuPQMyadIkFS5cWG3atDFee+/evZJEAAEA4DZcNoCkpaXp+++/16BBgyzZ8Gvfvn3KmTOnChUqZLw2AABZncsGkN9++03R0dF6/PHHLal/7Q4YZ216BgBAduayAWTu3LmqX7++ihcvfsPxxMRE9e/fXwEBASpSpIimTJlyx3GGDRsmm812wyspKemu9TO7BddUfQAAsjKXDCAZGRlauHCh2rdvf8t7Y8aM0aFDh3Tw4EFNnTpVzzzzjHbt2nXH8RITE2W326+//Pz87trD7t27b3sLrqn6AABkZS4ZQP744w+dOXNG7dq1u+F4RkaGvvnmG40aNUoFCxZUixYtFBYWpq+//tqh9S9duqTDhw+rRo0altQHACCrc8kAsnHjRuXOnVtVq1a94Xh0dLRiY2NvOF6tWjXt3r37juMNGTJEwcHBKlOmjL744ou71t+xY4fsdvstAcRUfQAAsjqXDCDbt29XrVq1blkAeu7cOUlSUFDQ9WNBQUE6e/ZspmN5eHiocePGOn78uCZNmqSX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", + "text/plain": [ + "
" + ] + }, + "execution_count": 27, + "metadata": { + "image/png": { + "height": 562, + "width": 272 + }, + "needs_background": "light" + }, + "output_type": "execute_result" + } + ], + "source": [ + "p3 = [[0, 0.5, 0, 0, 0, 0.5], [0.5, 0, 0.5, 0, 0, 0], [0, 0.5, 0, 0.5, 0, 0], [0, 0, 0.5, 0, 0.5, 0], [0, 0, 0, 0.5, 0, 0.5], [0.5, 0, 0, 0, 0.5, 0]]\n", + "c6_rw = pydtmc.MarkovChain(p3, ['v1', 'v2', 'v3', 'v4', 'v5', 'v6'])\n", + "print(c6_rw)\n", + "pydtmc.plot_graph(c6_rw, dpi=300)" + ] + }, + { + "cell_type": "markdown", + "id": "c841e4", + "metadata": { + "collapsed": false + }, + "source": [ + "Co możemy powiedzieć o tym łańcuchu Markowa? Jest on na pewno łańcuchem okresowym, a okres tego łańcucha wynosi $2$." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "id": "f23ef3", + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Okres łańcucha: 2\n" + ] + } + ], + "source": [ + "print(\"Okres łańcucha:\", c6_rw.period)" + ] + }, + { + "cell_type": "markdown", + "id": "2852ef", + "metadata": { + "collapsed": false + }, + "source": [ + "Spróbujemy teraz wyznaczyć jego rozkład stacjonarny poprzez wyznaczenie rozkładu po $k$ krokach startując od rozkładu początkowego $\\bar{\\rho}^0 = (1, 0, 0, 0, 0, 0, 0)$." + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "id": "1e3268", + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rozkład po 1 krokach: [0. 0.5 0. 0. 0. 0.5]\n", + "Rozkład po 2 krokach: [0.5 0. 0.25 0. 0.25 0. ]\n", + "Rozkład po 3 krokach: [0. 0.375 0. 0.25 0. 0.375]\n", + "Rozkład po 4 krokach: [0.375 0. 0.3125 0. 0.3125 0. ]\n", + "Rozkład po 5 krokach: [0. 0.34375 0. 0.3125 0. 0.34375]\n", + "Rozkład po 6 krokach: [0.34375 0. 0.328125 0. 0.328125 0. ]\n", + "Rozkład po 7 krokach: [0. 0.3359375 0. 0.328125 0. 0.3359375]\n", + "Rozkład po 8 krokach: [0.3359375 0. 0.33203125 0. 0.33203125 0. ]\n", + "Rozkład po 9 krokach: [0. 0.33398438 0. 0.33203125 0. 0.33398438]\n", + "Rozkład po 10 krokach: [0.33398438 0. 0.33300781 0. 0.33300781 0. ]\n", + "Rozkład po 11 krokach: [0. 0.33349609 0. 0.33300781 0. 0.33349609]\n", + "Rozkład po 12 krokach: [0.33349609 0. 0.33325195 0. 0.33325195 0. ]\n", + "Rozkład po 13 krokach: [0. 0.33337402 0. 0.33325195 0. 0.33337402]\n", + "Rozkład po 14 krokach: [0.33337402 0. 0.33331299 0. 0.33331299 0. ]\n", + "Rozkład po 15 krokach: [0. 0.33334351 0. 0.33331299 0. 0.33334351]\n", + "Rozkład po 16 krokach: [0.33334351 0. 0.33332825 0. 0.33332825 0. ]\n", + "Rozkład po 17 krokach: [0. 0.33333588 0. 0.33332825 0. 0.33333588]\n", + "Rozkład po 18 krokach: [0.33333588 0. 0.33333206 0. 0.33333206 0. ]\n", + "Rozkład po 19 krokach: [0. 0.33333397 0. 0.33333206 0. 0.33333397]\n", + "Rozkład po 20 krokach: [0.33333397 0. 0.33333302 0. 0.33333302 0. ]\n", + "Rozkład po 21 krokach: [0. 0.33333349 0. 0.33333302 0. 0.33333349]\n", + "Rozkład po 22 krokach: [0.33333349 0. 0.33333325 0. 0.33333325 0. ]\n", + "Rozkład po 23 krokach: [0. 0.33333337 0. 0.33333325 0. 0.33333337]\n", + "Rozkład po 24 krokach: [0.33333337 0. 0.33333331 0. 0.33333331 0. ]\n", + "Rozkład po 25 krokach: [0. 0.33333334 0. 0.33333331 0. 0.33333334]\n", + "Rozkład po 26 krokach: [0.33333334 0. 0.33333333 0. 0.33333333 0. ]\n", + "Rozkład po 27 krokach: [0. 0.33333334 0. 0.33333333 0. 0.33333334]\n", + "Rozkład po 28 krokach: [0.33333334 0. 0.33333333 0. 0.33333333 0. ]\n", + "Rozkład po 29 krokach: [0. 0.33333333 0. 0.33333333 0. 0.33333333]\n", + "Rozkład po 30 krokach: [0.33333333 0. 0.33333333 0. 0.33333333 0. ]\n" + ] + } + ], + "source": [ + "rho_0 = np.array([1, 0, 0, 0, 0, 0])\n", + "\n", + "rho_k = rho_0\n", + "for k in range(30):\n", + " rho_k = rho_k.dot(p3)\n", + " print(\"Rozkład po\", k+1, \"krokach:\", rho_k)" + ] + }, + { + "cell_type": "markdown", + "id": "f22163", + "metadata": { + "collapsed": false + }, + "source": [ + "Jak widać w tym przypadku rozkład po $k$ krokach nie stabilizuje się, natomiast możemy zaobserwować cykliczne zachowanie, gdzie na przemian rozkład jest skupiony na wierzchołkach $v_1, v_3, v_5$ i $v_2, v_4, v_6$. Wynika to z okresowości naszego łańcucha. Co się stanie jeśli wystartujemy z innego rozkładu stacjonarnego?" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "id": "5a0562", + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rozkład po 1 krokach: [0.25 0.25 0.25 0. 0. 0.25]\n", + "Rozkład po 2 krokach: [0.25 0.25 0.125 0.125 0.125 0.125]\n", + "Rozkład po 3 krokach: [0.1875 0.1875 0.1875 0.125 0.125 0.1875]\n", + "Rozkład po 4 krokach: [0.1875 0.1875 0.15625 0.15625 0.15625 0.15625]\n", + "Rozkład po 5 krokach: [0.171875 0.171875 0.171875 0.15625 0.15625 0.171875]\n", + "Rozkład po 6 krokach: [0.171875 0.171875 0.1640625 0.1640625 0.1640625 0.1640625]\n", + "Rozkład po 7 krokach: [0.16796875 0.16796875 0.16796875 0.1640625 0.1640625 0.16796875]\n", + "Rozkład po 8 krokach: [0.16796875 0.16796875 0.16601562 0.16601562 0.16601562 0.16601562]\n", + "Rozkład po 9 krokach: [0.16699219 0.16699219 0.16699219 0.16601562 0.16601562 0.16699219]\n", + "Rozkład po 10 krokach: [0.16699219 0.16699219 0.16650391 0.16650391 0.16650391 0.16650391]\n", + "Rozkład po 11 krokach: [0.16674805 0.16674805 0.16674805 0.16650391 0.16650391 0.16674805]\n", + "Rozkład po 12 krokach: [0.16674805 0.16674805 0.16662598 0.16662598 0.16662598 0.16662598]\n", + "Rozkład po 13 krokach: [0.16668701 0.16668701 0.16668701 0.16662598 0.16662598 0.16668701]\n", + "Rozkład po 14 krokach: [0.16668701 0.16668701 0.16665649 0.16665649 0.16665649 0.16665649]\n", + "Rozkład po 15 krokach: [0.16667175 0.16667175 0.16667175 0.16665649 0.16665649 0.16667175]\n", + "Rozkład po 16 krokach: [0.16667175 0.16667175 0.16666412 0.16666412 0.16666412 0.16666412]\n", + "Rozkład po 17 krokach: [0.16666794 0.16666794 0.16666794 0.16666412 0.16666412 0.16666794]\n", + "Rozkład po 18 krokach: [0.16666794 0.16666794 0.16666603 0.16666603 0.16666603 0.16666603]\n", + "Rozkład po 19 krokach: [0.16666698 0.16666698 0.16666698 0.16666603 0.16666603 0.16666698]\n", + "Rozkład po 20 krokach: [0.16666698 0.16666698 0.16666651 0.16666651 0.16666651 0.16666651]\n", + "Rozkład po 21 krokach: [0.16666675 0.16666675 0.16666675 0.16666651 0.16666651 0.16666675]\n", + "Rozkład po 22 krokach: [0.16666675 0.16666675 0.16666663 0.16666663 0.16666663 0.16666663]\n", + "Rozkład po 23 krokach: [0.16666669 0.16666669 0.16666669 0.16666663 0.16666663 0.16666669]\n", + "Rozkład po 24 krokach: [0.16666669 0.16666669 0.16666666 0.16666666 0.16666666 0.16666666]\n", + "Rozkład po 25 krokach: [0.16666667 0.16666667 0.16666667 0.16666666 0.16666666 0.16666667]\n", + "Rozkład po 26 krokach: [0.16666667 0.16666667 0.16666666 0.16666666 0.16666666 0.16666666]\n", + "Rozkład po 27 krokach: [0.16666667 0.16666667 0.16666667 0.16666666 0.16666666 0.16666667]\n", + "Rozkład po 28 krokach: [0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667]\n", + "Rozkład po 29 krokach: [0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667]\n", + "Rozkład po 30 krokach: [0.16666667 0.16666667 0.16666667 0.16666667 0.16666667 0.16666667]\n" + ] + } + ], + "source": [ + "rho_0 = np.array([1/2, 1/2, 0, 0, 0, 0])\n", + "\n", + "rho_k = rho_0\n", + "for k in range(30):\n", + " rho_k = rho_k.dot(p3)\n", + " print(\"Rozkład po\", k+1, \"krokach:\", rho_k)" + ] + }, + { + "cell_type": "markdown", + "id": "820c8c", + "metadata": { + "collapsed": false + }, + "source": [ + "Tym razem dość szybko dochodzimy do rozkładu stacjonarnego $\\left(\\frac16, \\frac16, \\frac16, \\frac16, \\frac16, \\frac16\\right)$, który jest dokładnie rozkładem otrzymanym z ciągu stopni. Zobaczmy jeszcze jakie rozkłady stacjonarne wyznaczy nam polecenie z PyDTMC." + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "id": "3e528d", + "metadata": { + "collapsed": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Rozkłady stacjonarne dla błądzenia klasycznego na cyklu C6: [array([0.16666667, 0.16666667, 0.16666667, 0.16666667, 0.16666667,\n", + " 0.16666667])]\n" + ] + } + ], + "source": [ + "print(\"Rozkłady stacjonarne dla błądzenia klasycznego na cyklu C6:\", c6_rw.pi)" + ] + }, + { + "cell_type": "markdown", + "id": "1b9ede", + "metadata": { + "collapsed": false + }, + "source": [ + "## Bibliografia\n", + "\n", + "Dokumentację dotyczącą omawianego pakietu można znaleźć na stronie [PyDTMC](https://pydtmc.readthedocs.io/)." + ] + } + ], + "metadata": { + "kernelspec": { + "argv": [ + "/usr/bin/python3", + "-m", + "ipykernel", + "--HistoryManager.enabled=False", + "--matplotlib=inline", + "-c", + "%config InlineBackend.figure_formats = set(['retina'])\nimport matplotlib; matplotlib.rcParams['figure.figsize'] = (12, 7)", + "-f", + "{connection_file}" + ], + "display_name": "Python 3 (system-wide)", + "env": { + }, + "language": "python", + "metadata": { + "cocalc": { + "description": "Python 3 programming language", + "priority": 100, + "url": "https://www.python.org/" + } + }, + "name": "python3", + "resource_dir": "/ext/jupyter/kernels/python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} \ No newline at end of file