diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..763513e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.ipynb_checkpoints diff --git a/jupyter/Makefile b/jupyter/Makefile new file mode 100644 index 0000000..2e5218c --- /dev/null +++ b/jupyter/Makefile @@ -0,0 +1,2 @@ +all: + jupyter nbconvert --to html "The Art of Memory Loss.ipynb" --config jupyter_nbconvert_config.py diff --git a/jupyter/Untitled.css b/jupyter/The Art of Memory Loss.css similarity index 100% rename from jupyter/Untitled.css rename to jupyter/The Art of Memory Loss.css diff --git a/jupyter/Untitled.html b/jupyter/The Art of Memory Loss.html similarity index 98% rename from jupyter/Untitled.html rename to jupyter/The Art of Memory Loss.html index df830a2..e6c7cbc 100644 --- a/jupyter/Untitled.html +++ b/jupyter/The Art of Memory Loss.html @@ -3,7 +3,7 @@
-Wir können alle Übergangswahrscheinlichkeiten $P(s \to s')$ elegant als Matrix $M$ notieren:
+Wir können alle Übergangswahrscheinlichkeiten $P(s \to s')$ als Matrix $M$ notieren:
$$ M = \begin{pmatrix} m_{LL} & m_{LR} \\ m_{RL} & m_{RR} @@ -15564,6 +15564,259 @@ M = \begin{pmatrix} 1 - p & p \\ q & 1-q \end{pmatrix} $$ +Wir schreiben die Wahrscheinlichkeiten, dass der Frosch zum Zeitpunkt $t$ in $L$ oder $R$ ist, als Vektoren.
+$$ +X_0 = \begin{pmatrix}1 \\ 0\end{pmatrix} +$$ +Ein Zeitschritt $t=0 \to t=1$ verändert die Verteilung gemäß $M$:
+$$ +X_0 = \begin{pmatrix}1 \\ 0\end{pmatrix} \to \begin{pmatrix}1-p \\ p \end{pmatrix} = X_1 +$$ +Den Folgezustand von $X = \begin{pmatrix}L & R\end{pmatrix}$ mit Übergangsmatrix $M$ berechnen wir als
+$$ +\begin{align*} +\begin{pmatrix}L' \\ R'\end{pmatrix}^T &= \begin{pmatrix}L & R\end{pmatrix} \cdot M \\ +&= \begin{pmatrix}L & R\end{pmatrix} \cdot \begin{pmatrix} \color{green}{1 - p} & \color{orange}{p} \\ \color{green}{q} & \color{orange}{1-q} \end{pmatrix} \\ +=& \begin{pmatrix}L \cdot \color{green}{(1 - p)} + R \cdot \color{green}{q} \\ +L \cdot \color{orange}{p} + R \cdot \color{orange}{(1-q)} +\end{pmatrix}^T +\end{align*} +$$ +++ +Man berechnet die neuen Einträge als "Zeile mal Spalte"
+
from sympy import symbols as S, Matrix as Mat
+p, q = S("p q")
+M = Mat([[1-p, p], [q, 1-q]])
+
v1 = Mat([[1, 0]])
+v1 * M
+
v2 = Mat([[1, 1]])
+v2 * M
+
Viele Leute werfen Münzen in den Teich der Frösche. +Wir sollen einen Frosch aussuchen, der der neue Schatzmeister werden soll. +Wie können wir aus den 7 Fröschen fair einen auswählen?
+Bedingungen:
+
+
## Frösche brauchen Zufall
:::info
-Viele Leute werfen Münzen in den Teich der Frösche. Wir sollen einen Frosch aussuchen, der der neue Schatzmeister werden soll. Wie können wir aus den 7 Fröschen **fair** einen auswählen?
+
:::
-**Bedingungen**:
-- Jeder Frosch wird mit $\frac{1}{7}$ ausgewählt
-- Zufall nur durch die Münzen
---
@@ -15668,7 +15918,7 @@ $$
- Cell In[4], line 3
+ Cell In[26], line 3
:::info
^
SyntaxError: invalid syntax
diff --git a/jupyter/.ipynb_checkpoints/Untitled-checkpoint.ipynb b/jupyter/The Art of Memory Loss.ipynb
similarity index 75%
rename from jupyter/.ipynb_checkpoints/Untitled-checkpoint.ipynb
rename to jupyter/The Art of Memory Loss.ipynb
index d485006..c7efaf9 100644
--- a/jupyter/.ipynb_checkpoints/Untitled-checkpoint.ipynb
+++ b/jupyter/The Art of Memory Loss.ipynb
@@ -130,13 +130,7 @@
}
},
"source": [
- "## Frösche Simulieren\n",
- "\n",
- "\n",
- " \n",
- "Wie oft ist der Frosch im Schnitt in $l$, wie oft in $r$?\n",
- "\n",
- ""
+ "## Frösche Simulieren"
]
},
{
@@ -162,25 +156,13 @@
"# Los geht's!"
]
},
- {
- "cell_type": "markdown",
- "id": "68dd379a",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- }
- },
- "source": [
- "## Frösche Simulieren"
- ]
- },
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 5,
"id": "41017b8e",
"metadata": {
"slideshow": {
- "slide_type": "fragment"
+ "slide_type": "subslide"
}
},
"outputs": [
@@ -189,8 +171,8 @@
"output_type": "stream",
"text": [
"100000/100000\n",
- " 0.2473 of the time at 0 (24735 total)\n",
- " 0.7527 of the time at 1 (75265 total)\n"
+ " 0.2495 of the time at 0 (24945 total)\n",
+ " 0.7506 of the time at 1 (75055 total)\n"
]
}
],
@@ -238,7 +220,10 @@
"metadata": {
"slideshow": {
"slide_type": "subslide"
- }
+ },
+ "tags": [
+ "hide_cell"
+ ]
},
"source": [
"## Frösche Analysieren\n",
@@ -258,7 +243,10 @@
"metadata": {
"slideshow": {
"slide_type": "fragment"
- }
+ },
+ "tags": [
+ "hide_cell"
+ ]
},
"source": [
"\n",
@@ -322,7 +310,10 @@
"metadata": {
"slideshow": {
"slide_type": "fragment"
- }
+ },
+ "tags": [
+ "hide_cell"
+ ]
},
"source": [
"\n",
@@ -345,7 +336,10 @@
"metadata": {
"slideshow": {
"slide_type": "subslide"
- }
+ },
+ "tags": [
+ "hide_cell"
+ ]
},
"source": [
"## Frösche Analysieren\n",
@@ -534,7 +528,7 @@
},
{
"cell_type": "markdown",
- "id": "aa49d253",
+ "id": "12dde881",
"metadata": {
"slideshow": {
"slide_type": "subslide"
@@ -556,7 +550,7 @@
},
{
"cell_type": "markdown",
- "id": "49223769",
+ "id": "7ded753c",
"metadata": {
"slideshow": {
"slide_type": "fragment"
@@ -571,15 +565,16 @@
]
},
{
+ "attachments": {},
"cell_type": "markdown",
- "id": "da7c1cee",
+ "id": "0c8c91ad",
"metadata": {
"slideshow": {
"slide_type": "subslide"
}
},
"source": [
- "Wir können alle Übergangswahrscheinlichkeiten $P(s \\to s')$ elegant als Matrix $M$ notieren:\n",
+ "Wir können alle Übergangswahrscheinlichkeiten $P(s \\to s')$ als Matrix $M$ notieren:\n",
"\n",
"$$\n",
"M = \n",
@@ -590,9 +585,245 @@
"$$"
]
},
+ {
+ "cell_type": "markdown",
+ "id": "4287f203",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "fragment"
+ }
+ },
+ "source": [
+ "Wir schreiben die Wahrscheinlichkeiten, dass der Frosch zum Zeitpunkt $t$ in $L$ oder $R$ ist, als Vektoren.\n",
+ "\n",
+ "$$\n",
+ "X_0 = \\begin{pmatrix}1 \\\\ 0\\end{pmatrix}\n",
+ "$$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "25a506f5",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "fragment"
+ }
+ },
+ "source": [
+ "Ein Zeitschritt $t=0 \\to t=1$ verändert die Verteilung gemäß $M$:\n",
+ "\n",
+ "$$\n",
+ "X_0 = \\begin{pmatrix}1 \\\\ 0\\end{pmatrix} \\to \\begin{pmatrix}1-p \\\\ p \\end{pmatrix} = X_1\n",
+ "$$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "0d56b780",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "subslide"
+ }
+ },
+ "source": [
+ "# Matrixmultiplikation"
+ ]
+ },
+ {
+ "attachments": {},
+ "cell_type": "markdown",
+ "id": "5db5186d",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "subslide"
+ }
+ },
+ "source": [
+ "Den Folgezustand von $X = \\begin{pmatrix}L & R\\end{pmatrix}$ mit Übergangsmatrix $M$ berechnen wir als\n",
+ "\n",
+ "$$\n",
+ "\\begin{align*}\n",
+ "\\begin{pmatrix}L' \\\\ R'\\end{pmatrix}^T &= \\begin{pmatrix}L & R\\end{pmatrix} \\cdot M \\\\\n",
+ "&= \\begin{pmatrix}L & R\\end{pmatrix} \\cdot \\begin{pmatrix} \\color{green}{1 - p} & \\color{orange}{p} \\\\ \\color{green}{q} & \\color{orange}{1-q} \\end{pmatrix} \\\\\n",
+ "=& \\begin{pmatrix}L \\cdot \\color{green}{(1 - p)} + R \\cdot \\color{green}{q} \\\\\n",
+ "L \\cdot \\color{orange}{p} + R \\cdot \\color{orange}{(1-q)} \n",
+ "\\end{pmatrix}^T\n",
+ "\\end{align*}\n",
+ "$$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "782d4f7a",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "fragment"
+ }
+ },
+ "source": [
+ "> Man berechnet die neuen Einträge als \"Zeile mal Spalte\""
+ ]
+ },
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 27,
+ "id": "e9f7e2f6",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "skip"
+ }
+ },
+ "outputs": [],
+ "source": [
+ "from sympy import symbols as S, Matrix as Mat\n",
+ "p, q = S(\"p q\")\n",
+ "M = Mat([[1-p, p], [q, 1-q]])"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "daddfd1e",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "subslide"
+ }
+ },
+ "source": [
+ "## Beispiele\n",
+ "\n",
+ "$$\n",
+ "\\begin{pmatrix}1 & 0\\end{pmatrix}\\cdot M = \\begin{pmatrix}1-p & p\\end{pmatrix}\n",
+ "$$"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "c1a6597e",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "fragment"
+ }
+ },
+ "source": [
+ "$$\n",
+ "\\begin{align*}\n",
+ "\\begin{pmatrix}1 \\\\ 1\\end{pmatrix}^T\\cdot M &= \\begin{pmatrix} (1-p) + q \\\\ p + (1-q)\\end{pmatrix}^T \\\\\n",
+ "& = \\begin{pmatrix} (1-p) + q \\\\ p +(1-q)\\end{pmatrix}^T \\\\\n",
+ "\\end{align*}\n",
+ "$$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 29,
+ "id": "aa2e9aca",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "fragment"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left[\\begin{matrix}1 - p & p\\end{matrix}\\right]$"
+ ],
+ "text/plain": [
+ "Matrix([[1 - p, p]])"
+ ]
+ },
+ "execution_count": 29,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "v1 = Mat([[1, 0]])\n",
+ "v1 * M"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "id": "b31deb83",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "fragment"
+ }
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/latex": [
+ "$\\displaystyle \\left[\\begin{matrix}- p + q + 1 & p - q + 1\\end{matrix}\\right]$"
+ ],
+ "text/plain": [
+ "Matrix([[-p + q + 1, p - q + 1]])"
+ ]
+ },
+ "execution_count": 25,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "v2 = Mat([[1, 1]])\n",
+ "v2 * M"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8a0fa546",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "fragment"
+ }
+ },
+ "source": [
+ "# Frösche brauchen Zufall\n",
+ "\n",
+ "\n",
+ "\n",
+ "Viele Leute werfen Münzen in den Teich der Frösche.\n",
+ "Wir sollen einen Frosch aussuchen, der der neue Schatzmeister werden soll. \n",
+ "Wie können wir aus den 7 Fröschen **fair** einen auswählen?\n",
+ " \n",
+ "\n",
+ "\n",
+ "**Bedingungen**:\n",
+ "- Jeder Frosch wird mit $\\frac{1}{7}$ ausgewählt\n",
+ "- Zufall nur durch die Münzen\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "5d3f53ad",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "fragment"
+ }
+ },
+ "outputs": [],
+ "source": []
+ },
+ {
+ "cell_type": "markdown",
+ "id": "9514b1c1",
+ "metadata": {
+ "slideshow": {
+ "slide_type": "fragment"
+ }
+ },
+ "source": [
+ "- die Berechnung von ganzfrüh aus der Tabelle nenen wir Matrixmultiplikation.\n",
+ "- MM captures the idea that \"\n",
+ "- denn, wir können Lineare Algebra machen. $v_0^T\\cdot{}M = v_1$"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
"id": "9d30de72",
"metadata": {
"slideshow": {
@@ -605,7 +836,7 @@
"evalue": "invalid syntax (2451516634.py, line 3)",
"output_type": "error",
"traceback": [
- "\u001b[0;36m Cell \u001b[0;32mIn[4], line 3\u001b[0;36m\u001b[0m\n\u001b[0;31m :::info\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
+ "\u001b[0;36m Cell \u001b[0;32mIn[26], line 3\u001b[0;36m\u001b[0m\n\u001b[0;31m :::info\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
]
}
],
@@ -614,12 +845,9 @@
"## Frösche brauchen Zufall\n",
"\n",
":::info\n",
- "Viele Leute werfen Münzen in den Teich der Frösche. Wir sollen einen Frosch aussuchen, der der neue Schatzmeister werden soll. Wie können wir aus den 7 Fröschen **fair** einen auswählen?\n",
+ "\n",
":::\n",
"\n",
- "**Bedingungen**:\n",
- "- Jeder Frosch wird mit $\\frac{1}{7}$ ausgewählt\n",
- "- Zufall nur durch die Münzen\n",
"\n",
"---\n",
"\n",
diff --git a/jupyter/Untitled.ipynb b/jupyter/Untitled.ipynb
deleted file mode 100644
index 13100fd..0000000
--- a/jupyter/Untitled.ipynb
+++ /dev/null
@@ -1,805 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "5cd9ffa9",
- "metadata": {
- "slideshow": {
- "slide_type": "slide"
- }
- },
- "source": [
- "# The Art of Memory Loss\n",
- "### and the Art of Memory Loss and [...]\n",
- "#### by Dominic Zimmer"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "4cb168bd",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- }
- },
- "source": [
- "\n",
- "“Die Kunst des Gedächtnisverlustes beschäftigt sich damit, trotz großer Vergesslichkeit auf lange Sicht stets die Richtigen Antworten zu wissen.”\n",
- " \n",
- "— *Irgendjemand, Saarbrücken 2023*\n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "5384b59e",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- }
- },
- "source": [
- "\n",
- "
\n",
- "
\n",
- "
\n",
- "
\n",
- "
\n",
- "
\n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "ffc10d60",
- "metadata": {
- "slideshow": {
- "slide_type": "slide"
- }
- },
- "source": [
- "# Frösche, Wetten, Wetter und Wetterfrösche\n",
- "motivierendes bildchen"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "ab8003a9",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- }
- },
- "source": [
- "TODO: 2-state beispiel\n",
- "\n",
- "```mermaid\n",
- "stateDiagram-v2\n",
- " direction lr\n",
- " l --> r: p\n",
- " l --> l: 1-p\n",
- " r --> r: 1-q\n",
- " r --> l: q\n",
- "```"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "43e49851",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- }
- },
- "source": [
- "## Frösche\n",
- "\n",
- "\n",
- " \n",
- "- ein Frosch sitzt auf einer von zwei Seerosen $S = \\{l, r\\}$\n",
- "- mit $p$ hüpft er von $l$ nach $r$\n",
- "- mit $q$ hüpft er von $r$ nach $l$\n",
- "- mit $1-p$ bzw $1-q$ bleibt er sitzen\n",
- "- er beginnt auf $s_0 = l$\n",
- " \n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "25a3f2ca",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- }
- },
- "source": [
- "\n",
- " \n",
- "Wie oft ist der Frosch im Schnitt in $l$, wie oft in $r$?\n",
- "\n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "feb11fcd",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- }
- },
- "source": [
- "## Frösche Simulieren"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "f8a3a4d9",
- "metadata": {
- "hideCode": false,
- "slideshow": {
- "slide_type": "fragment"
- }
- },
- "outputs": [],
- "source": [
- "import numpy as np\n",
- "uniform = np.random.random # Zufall in [0, 1]\n",
- "# Kein numpy? -> from random import random as uniform\n",
- "\n",
- "p = 0.6 # von l nach r\n",
- "q = 0.2 # von r nach l\n",
- "N = 100_000 # Simulationen\n",
- "\n",
- "# Los geht's!"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "id": "41017b8e",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- }
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "100000/100000\n",
- " 0.2495 of the time at 0 (24945 total)\n",
- " 0.7506 of the time at 1 (75055 total)\n"
- ]
- }
- ],
- "source": [
- "visits = [0, 0]\n",
- "cur = 0\n",
- "for i in range(N):\n",
- " if cur == 0:\n",
- " if uniform() < p:\n",
- " cur = 1\n",
- " visits[1] += 1\n",
- " else:\n",
- " visits[0] += 1\n",
- " elif cur == 1:\n",
- " if uniform() < q:\n",
- " cur = 0\n",
- " visits[0] += 1\n",
- " else:\n",
- " visits[1] += 1\n",
- "n = sum(visits)\n",
- "print(f\"{n}/{N}\")\n",
- "print(f\" {visits[0]/n:.4f} of the time at 0 ({visits[0]} total)\")\n",
- "print(f\" {visits[1]/n:.4f} of the time at 1 ({visits[1]} total)\")\n"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "ca2c3139",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- }
- },
- "source": [
- "\n",
- "\n",
- "**Warum** ist der Frosch im Schnitt 25% in $l$ und 75% in $r$?\n",
- "\n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "3840a6f7",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": [
- "hide_cell"
- ]
- },
- "source": [
- "## Frösche Analysieren\n",
- "\n",
- "\n",
- " \n",
- "Die Wahrscheinlichkeiten für Wechsel sind\n",
- " \n",
- "$P(l \\to r) = p$ und $P(r \\to l) = q$\n",
- "\n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "5bf90648",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": [
- "hide_cell"
- ]
- },
- "source": [
- "\n",
- "\n",
- "Wie können wir $P(\\text{Frosch links})$ für große $t$ vorraussagen?\n",
- " \n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "57a24526",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": [
- "hide_cell"
- ]
- },
- "source": [
- "\n",
- "| $t$ | $P(\\text{ Frosch links zu }t)$ | $P(\\text{ Frosch rechts zu }t)$ |\n",
- "| -------- | -------- | -------- |\n",
- "| $0$ | $1$ | $0$ |"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "74e64a9a",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- }
- },
- "source": [
- "## Frösche Analysieren\n",
- "\n",
- "\n",
- " \n",
- "Die Wahrscheinlichkeiten für Wechsel sind $P(l \\to r) = p$ und $P(r \\to l) = q$\n",
- "\n",
- "\n",
- "\n",
- "\n",
- "\n",
- "Wie können wir $P(\\text{Frosch links})$ für große $t$ vorraussagen?\n",
- " \n",
- "\n",
- "\n",
- "| $t$ | $P(\\text{ Frosch links zu }t)$ | $P(\\text{ Frosch rechts zu }t)$ |\n",
- "| -------- | -------- | -------- |\n",
- "| $0$ | $1$ | $0$ |\n",
- "| $1$ | $1-p$ | $p$ |\n",
- "| $2$ | $(1-p)^2 + pq$ | $p(1-p) + p(1-q)$|"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "bce42c67",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- },
- "tags": [
- "hide_cell"
- ]
- },
- "source": [
- "\n",
- "\n",
- "$$\n",
- "\\begin{align*}\n",
- "P_{t+1}(\\text{Frosch links}) &= P_t(\\text{Frosch links}) \\cdot P(l \\to l) \\\\\n",
- "& + P_t(\\text{Frosch rechts}) \\cdot P(r \\to l)\\\\\n",
- "P_{t+1}(\\text{Frosch rechts}) &= P_t(\\text{Frosch rechts}) \\cdot P(r \\to r) \\\\\n",
- "&+ P_t(\\text{Frosch links}) \\cdot P(l \\to r)\n",
- "\\end{align*}\n",
- "$$\n",
- " \n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "d33a0be9",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- },
- "tags": [
- "hide_cell"
- ]
- },
- "source": [
- "## Frösche Analysieren\n",
- "\n",
- "Unser Experiment zeigt für große $t$:\n",
- "$$\n",
- " P_{t-2}(\\text{Frosch links}) \\approx P_{t-1}(\\text{Frosch links}) \\approx P_{t}(\\text{Frosch links}) \\approx \\dots L\n",
- "$$\n",
- "\n",
- "\n",
- "\n",
- "$$\n",
- "\\begin{align*}\n",
- "P_{t+1}(\\text{Frosch links}) &= P_t(\\text{Frosch links}) \\cdot P(l \\to l) \\\\\n",
- "& + P_t(\\text{Frosch rechts}) \\cdot P(r \\to l)\\\\\n",
- "P_{t+1}(\\text{Frosch rechts}) &= P_t(\\text{Frosch rechts}) \\cdot P(r \\to r) \\\\\n",
- "&+ P_t(\\text{Frosch links}) \\cdot P(l \\to r)\n",
- "\\end{align*}\n",
- "$$\n",
- " \n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "85a20830",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- }
- },
- "source": [
- "## Frösche Analysieren\n",
- "\n",
- "Unser Experiment zeigt für große $t$:\n",
- "$$\n",
- " P_{t-2}(\\text{Frosch links}) \\approx P_{t-1}(\\text{Frosch links}) \\approx P_{t}(\\text{Frosch links}) \\approx \\dots L\n",
- "$$\n",
- "\n",
- "\n",
- "$$\n",
- "\\begin{align*}\n",
- "L &= L \\cdot P(l \\to l) + R \\cdot P(r \\to l)\\\\\n",
- "R &= R \\cdot P(r \\to r) + L \\cdot P(l \\to r)\\\\\n",
- "1 &= L + R\n",
- "\\end{align*}\n",
- "$$\n",
- " \n",
- "\n"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "cfa9063c",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- }
- },
- "source": [
- "$$\n",
- "\\begin{align*}\n",
- "L &= \\frac{q}{p+q} = 25\\% \\\\\n",
- "R &= \\frac{p}{p+q} = 75\\%\n",
- "\\end{align*}\n",
- "$$"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "74f18541",
- "metadata": {
- "slideshow": {
- "slide_type": "slide"
- }
- },
- "source": [
- "# Mathematik und Gedächtnisverlust"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "6af0597d",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- }
- },
- "source": [
- "\n",
- " \n",
- "**Definition** *(Gedächtnislosigkeit)*\n",
- "\n",
- "Ein Prozess ist *gedächtnislos*, wenn zu jedem Zeitpunkt seine Entscheidung nur vom aktuellen Zustand abhängt, nicht aber von dem Weg, wie der aktuelle Zustand erreicht wurde.\n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "b4507aa2",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- }
- },
- "source": [
- "\n",
- " \n",
- "**Beobachtung**\n",
- "\n",
- "Das Verhalten der Frösche ist gedächtnislos. Die Aktionen des Frosches und deren Wahrscheinlichkeiten $p$ und $1-p$ (bzw $q$ und $1-q$) hängen nur von der aktuellen Seerose ab. \n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "90451df9",
- "metadata": {
- "slideshow": {
- "slide_type": "slide"
- }
- },
- "source": [
- "# Frösche — Formell"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "40c3b0b5",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- }
- },
- "source": [
- "> Der Frosch kann auf der linken oder rechten Seerose sitzen.\n",
- "\n",
- "Wir modellieren die beiden Seerosen als die zwei Zustände $S = \\{L, R\\}$."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "a034c732",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- }
- },
- "source": [
- "> Zufällig hüpft er zwischen den Seerosen hin und her\n",
- "\n",
- "Die Zufallsvariable $X_t$ beschreibt wo der Frosch zum Zeitpunkt $t$ ist."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "47b022ef",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- }
- },
- "source": [
- "Wir könnten zum Beispiel beobachten, dass\n",
- "\n",
- "$$\n",
- "\\dots \\quad X_3 = L \\quad X_4 = L \\quad X_5 = R \\quad X_6 = L \\quad \\dots\n",
- "$$"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "1bea4ee3",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- }
- },
- "source": [
- "> Am Anfang sitzt der Frosch auf der linken Seerose.\n",
- "\n",
- "Die Wahrscheinlichkeit $P(X_0 = L) = 1$.\n",
- "\n",
- "Analog ergibt sich $P(X_0 = R) = 0$."
- ]
- },
- {
- "cell_type": "markdown",
- "id": "12dde881",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- }
- },
- "source": [
- "> Der Frosch hüpft mit Wahrscheinlichkeit $p$ von links nach rechts\n",
- "\n",
- "Die Übergangswahrscheinlichkeit, dass der Frosch zum Zeitpunkt $t-1$ in $L$, und zum Zeitpunkt $t$ in $R$ ist, ist $p$.\n",
- "\n",
- "$$\n",
- "\\begin{align*}\n",
- "&\\phantom{==}\\color{gray}{P(X_t = R \\mid X_{t-1} = L, X_{t-2} = L)}\\\\ \n",
- "&=\\color{gray}{P(X_t = R \\mid X_{t-1} = L, X_{t-2} = R)}\\\\ \n",
- "&= P(X_t = R \\mid X_{t-1} = L) \\\\&= p\n",
- "\\end{align*}\n",
- "$$"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "7ded753c",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- }
- },
- "source": [
- "Da die Übergangswahrscheinlichkeiten zum Zeitpunkt $t$ nur von $X_t$ abhängen, schreiben wir kurzerhand\n",
- "\n",
- "$$\n",
- "P(X_t = R | X_{t-1} = L) = P(L \\to R) = m_{L R}\n",
- "$$"
- ]
- },
- {
- "attachments": {
- "image.png": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkYAAAEnCAIAAADD/xtZAAAAA3NCSVQICAjb4U/gAAAgAElEQVR4Ae2dZ8AURbaGd6+rrrgGxDUjiJgRcwARs6goKIqIomJOoGJCMaBgQgXBAKKoSDBgVjBiAHMEFUQFs4ARI7qK7t5nt+6eW8xMz/TM9Mx097z8+Ojprq7wVHWdCuec+tO/9E8EREAEREAEUkHgT6kohQohAiIgAiIgAv+SSFMjEAEREAERSAkBibSUVKSKIQIiIAIiIJGmNiACIiACIpASAhJpKalIFUMEREAEREAiTW1ABERABEQgJQQk0lJSkSqGCIiACIiARJragAiIgAiIQEoISKSlpCJVDBEQAREQAYk0tQEREAEREIGUEJBIS0lFqhgiIAIiIAISaWoDIiACIiACKSEgkZaSilQxREAEREAEJNLUBkRABERABFJCQCItJRWpYoiACIiACEikqQ2IgAiIgAikhIBEWkoqUsUQAREQARGQSFMbEAEREAERSAkBibSUVKSKIQIiIAIiIJGmNiACIiACIpASAhJpKalIFUMEREAEREAiTW1ABERABEQgJQQk0lJSkSqGCIiACIiARJragAiIgAiIQEoISKSlpCJVDBEQAREQAYk0tQEREAEREIGUEJBIS0lFqhgiIAIiIAISaWoDIiACIiACKSEgkZaSilQxREAEREAEJNLUBkRABERABFJCQCItJRWpYoiACIiACEikqQ2IgAiIgAikhIBEWkoqUsUQAREQARGQSFMbEAEREAERSAkBibSUVKSKIQIiIAIiIJGmNiACIiACIpASAhJpKalIFUMEREAEREAiTW1ABERABEQgJQQk0lJSkSqGCIiACIiARJragAiIgAiIQEoISKSlpCJVDBEQAREQAYk0tQEREAEREIGUEJBIS0lFqhgiIAIiIAISaWoDIiACIiACKSEgkZaSilQxREAEREAEJNLUBkRABERABFJCQCItJRWpYoiACIiACEikqQ2IgAiIgAikhIBEWkoqUsUQAREQARGQSFMbEAEREAERSAkBibSUVKSKIQIiIAIiIJGmNiACIiACIpASAhJpKalIFUMEREAEREAiTW1ABERABEQgJQQk0qKsyH/+859DhgzZZJNNFl100cUXX/zYY4+NMnbFJQIiIAIikJeARFpePMU8vO6665Zeeuk/LfzvnnvuKSYOhRUBERABESidgERa6ezszbfeeqtp06ZOlrVq1eqGG2749ddfl19+ee7ccccdFkwXIiACIiACFSUgkRYB3q222grp1aJFiw8++MBF99VXXy2yyCLcnDp1agQJKAoREAEREIEQBCTSQkAqFGSHHXa46qqr/FDcQZ41b97cv6lrERABERCBihKQSIse74QJE5Bn/MuQc9GnpBhFQAREQAQ8AhJpHowoLt9+++3FFlsMebb22mtHEZ/iqAGBGTNm3HbbbYMHDz7nnHP69u07Z86cGmRCSYqACBRPQCKteGbBb8yePXvJJZdEni2xxBJz584NDqgnMSLwww8/PPnkkyeddNLmm2/eqFGjP//5z/+eYi/875BDDolRjpUVERCBAAISaQFgir89ZcqUBg0a0BOiGPLSSy8VH4HeqB6BBQsWPPHEE+3atVt22WUXFl6Bv0488cTq5U8piYAIlERAIq0kbAu/9OOPP+69996uL/yf//mfxx57bOHn+hUvAjNnznSLw9nii/vMsLlPPbZv375Lly4bbrihC8b8O17FUG5EQASyCEikZSEJfYNhfps2bZo1a/aXv/zF9Xqrrbba+++/HzoCBawNgQMPPNDVF05eVlxxxZ122okNs3Hjxn333XdkyM3bGjdubJlbaqmlXPgvvvjCbupCBEQghgTqUaT98ssvRx99dL9+/Uqoj3nz5n3yySfuRRu/09/h/urUU0/FIVYJceqVKhO47LLLGIg888wz2ematupZZ51lT5dbbjkn0r7++mu7qQsREIEYEqg7kYYym02q7r777vBVgosQlBjZJ2NJ6tZbb+XF559/vlevXn/729/o79AvCB+VQsaWQNeuXZ30mjRpksvkH3/84azmURvhOrY5V8ZEQAQgUHcirWXLlq7P4i/TrDCNAHHlv7X66qt///339iI6ckTVp08fu6OL5BJg6dg1j3/84x+uFP3793d3WKJMbrmUcxGoEwL1JdLY6HLdk/vLrkn+av7888/btm1rr7D10qNHj4yh+pprrkmAgw46KH9UepoIAn/961+pTTRXXW6nT5/upmjcHDRoUCKKoEyKQD0TqC+R1rlzZyef2PriIv9SEn4afQ3vnXfeOafqxyqrrEJU6623Xj03o3SUna1QZ5S20korUaIvv/zSjlbACXU6yqhSiEC6CdSXSHP62UggFg+dbDNHw9nVjHobqm4M0tdff/2cwsy9gtIjUREmOwbdSRaBadOmuVax2WabMUE3RUfawKeffpqssii3IlCfBOpIpI0ePdp1WMizbbfd1l2jup2n4pFq/MsTgEfdunUjKrq//MH0NP4Exo4d61oFJwSxyOyukWePPvpo/DOvHIqACECgjkSaHWl2yy23oMTvOixUFstsB2iEExVqkNgGlBmVXq8tAVuXdm2DvyjHjho1qra5UuoiIALhCdSLSMOYzG2TsPYInTFjxrhui+laeFg5Q+Kn2EUlv/s5+STlJjZn/tapk2eTJ09OSv6VTxEQAQjUi0jr2LGjEzy4OKLYH374ofvZpEmT8tuB0xBBlUATtfJhVjmGjz/+GAMM1FbdiMe1Cv5us802Bdecq5xVJScCIlCQQF2INMzInCo23RbuP4Bium349CvIqGCAYcOGua6Qi4KBFSA+BFh/zpBk1CN3VI/xqSPlRASKIlAXIm2fffZxIsdfZmzYsKG7+e233zo5VxS4jMDnnXfeGmus8cILL2Tc18/YEmBY4zy/uGbAbqi7WHfddWObZ2VMBEQgP4H0izQkluutGH1jOWs4OBzLdWFXXHHFyy+/bPd1UT8EsM04//zzhwwZcs899xx77LGuPcgRTP00AJU0fQTSL9Kc3Ri9FbbSfv0NGDDAdWFspz311FP+I13XIYEWLVq49oB4q8Piq8gikA4CKRdpL774ouunmKLhDMKvMw45s0c9e/b0H+m6Dgk4QzQm9JwOWofFV5FFIB0EUi7S8GPk5BYmR9kVxq6JeyqPtNlw6urO7NmzXUuQ46u6qncVNn0E0izSLrzwQtdPMQD/9ddfsyvPvEXgTT/7qe7UDwFsCl1T2Xrrreun1CqpCKSPQGpFGuNuOxdt6NChQTWHu2H6MlQigwLofj0Q2GKLLZxIGzhwYD2UV2UUgbQSSKdI+/33380xcevWrfNUHsdiTZ06lfB5wuhR6gnYudV4K059YVVAEUgxgRSKtH79+mFA7QbdHH9VzU4KfxOfffYZMjLFLSaVRWvcuDENBi8wqSydCiUC9UMghSINuyInz9hCe/zxxytal3jA4tTjZs2amRB1SaNlcOmll1Y0aUUeIYHhw4ejxD9x4sQI41RUIiAC1SeQQpEGxOeee+6YY47JcxZa+aBfffVVd561k2E5/5544onlJ6QYREAEREAEQhJIp0gLWfjSgv3000+mTZAtycyvknukuVppkPWWCIiACJRAQCKtOGjPP/98xhojRtwrr7zy8ccf/9BDDzlP/MwRGzRo4EQai5/FJaDQIiACIiACpRKQSCuCHK4g/UkY1yeddBI6k9lRPPLIIzaBu/fee7MD6I4IiIAIiEDkBCTSwiKdM2eOGbohrjbddFNcauV5eckll3RSbYcddsgTTI9EQAREQASiIiCRFookB5H8/e9/t4kX52wVfA1J5sLL21ZBVgogAiIQLQEWkDBhwi4lw7dttKnEMDaJtFCV0qNHD5Nn3bp1C/OOueNi7y1MeIURAREQgUgInHzyydZf1dsqkURa4SaEsbZtoTVv3rzwC/8JwYE1rlWhPxLyFQUTAREQgfIJLL744ibSOOe2/AgTFINEWuHKateunQmnjz76qPAL/wlBSGtVcrgVEpqCiYAIlElg8uTJ1vNwgbO3MiNM1usSaQXqi5VoplmuiRx44IEFQnuPv/rqK2tY33zzjfdElyIgAiJQKQIbb7yx9Txc4BGiUinFMl6JtALVgiaIax+oOzqzswIv/PcxMzNrWO+8885/b+t/ERABEagUgW+//daG4K7/2X777UtL7Icffrj44os5bmn33Xc/6qijKuqMqbQc5nxLIi0nlv+/aUbTHTt2/P+7Ia6QfybSMAAI8YaCiIAIiEBZBA477DDrdtzFkUceWUKMr7/++rLLLpsRFdty48aNKyG2ar4ikZaP9o033miV+t577+ULmvWMQY29iw+trOe6IQIiIAJREuCgY9921vU/CKdi0/j000+djyTU4jbYYINtttlm1VVXtd5sp512irNygERavurebLPNXEWus846+cLlenbNNde4d2lkuZ7rXuwIfPfddxzdMGHChOuuu47R7llnnbXddtvtueee66+/PkfFcgIfns+aNGmCoSFu+9F9Pfzww1mQueuuu8aPH6+JeOyqs/4ydO6557o+x9YekUklYFhttdWIB2d+r7zyir3OtQk2+sM//vjDHsXqQiItsDoYidiQh8NHAsMFPOjSpYtrXksvvXRAEN2uDYFZs2Y99thjY8aM2W+//Ri1bLvttrh6MTsNV2sl/CUG1mowA+rcufMtt9xy2223sRtRmxIq1fojQH+1xBJLuHZrrotatmxZLIm33nrLRTJy5MiMdwcPHky35uRlCTFnxFahnxJpgWCvvfZaV7V0VSWsHHJkmnt98803D0xDDypGYMGCBdhR3H333WeccQZn2u2///7MrlZYYQXfZMdVUOX+8vHTyzDJY4P9vPPOQ0sotmPbitWDIq4SgV69ermWTKuzsXjv3r2DkmddoW/fvq1bt2bhgT5q0qRJLuRll11GPNkOItiTc/FfeeWViyyyCNdnnnlmUOQ1vC+RFgifanZVuMkmmwQGCniAg2P3Ln8RjQGhdLtcAmwevPTSS6wWMis65JBDqDKMCFkVZM3E1l6sIvJfEB7vQW5RkaHoLrvswjJOz549qT7mW/ih5hCG1157bfr06dj9PP300+yz0iMQjBRZkEFYhpnnEWbttddmGnfffffNnz+/3PLrfRH4D4Hvv//exmroKFpTf/PNNzMIMQlD061Ro0YZH8jBBx/sQu699968vtJKK/kv8pVZ+GOPPZZTRwjDcM0PE5NribTAirBZPDsrgYECHjDwca2K4VKct1IDsh+72/T+yJIrrrgCMcPAk9VCDEjxummfmX3DBS9YB+Z7ZmOML/Pss8++6KKL2D/HiLD8MuMIFJ0gBrnssbVv3x45h4ZYnvwg3nB+ffXVV8+cObP81BVDPRPYcccdXUtj/mTTKe589tlnGVgYUfltkka41lprnX/++eaEvW3btgRgCd1e/Pjjj03xm0ennnoqj1hg5+tj+9mCxeRCIi13RWDeYRX/9ddf5w4UcJdNGnt3r732Cgil24EEvvjiC07kQeRgFIhehlvlMKQhL1g54aRW9slYWsG85v777584cSIxB6ZamQeffPIJrtHoZXbbbTekaZAMbty4MQtHc+fOrUwuFGuaCbB+YO2qe/fu9Dn2jaDllFFylg2RYYzq1l133WHDhrE+nxHguOOOc6/vvPPOjCCJjTUPi5CLfv368crYsWO5ZrqW8XrNf0qk5a4C9EFcLWavKed+4b93GdHYQjZNwcY+/32u/3MQYJrCOh5zJnr28AKMz5jlPj7OjTba6LTTTuNLY7DJ540KMguSOZKJwS3aA3vsBxxwANn2uwm7ZguWZUlWh2KQWWUhGQRsTYgxE8c3+rM0mlmxZUCnCRf+1iDtwqn183PIkCHEyfyMpc4nn3yy2PgrHV4iLTdhbC9cXTJLyB0i4O4ee+zhXqTDffDBB3OGosOt87Wmn3/+me1oVDawemEHyz6boItlllmG9RBmXWwD3HzzzWyevfjii7GVWzkrPfsmO3P0PvgryrkJRw+CPdBVV11Vb4eDZIPSnTwEUDuyrwbDIUJOmzatadOm9lmxzZbn9ZyPWC2gWbrBJf0YIpP5nLVScyPCpnLOA5Bzxlm1mxJpuVFTo66h0O3mDrHw3RtuuAEtEjqpTp068SLtgKa2cJB/sSHERgudOI/Yd8l4mvqfLMHheoBjnBo2bAgf+w6zL9iFYm+ANUM69ClTpiRddBWsWVa50UPB1sd6jQwmSHSWT0ePHi3xVhBmXQVgId1WBdGK8suOoq9rRUOHDvXvF3VtVijPPfeciw05V1QM1Q8skZabOVN4V4Vu4Th3IO8ukznCc6wajQyVcdOItSA0LDdzZyG7ThRGKCbmmazmM3Nl2Oh45vzL8kizZs0uuOCCF154IfUCzJpE9gVj3ksuuQSNNVvkycbFWis78wwOrLvJjkd36oQA9iGuhTAYevvtt/1SoxjiHqGU698v7dqN1ImQyV9pMVTtLYm03KhNI/aBBx7IHWLhu64PYmVs4dv/9wudSde8mJ0wk8sZJgU3MbpClrNvjEIwUsoYurL7f+HAtIMZG/p+OqYgZ9WjVILjkjXWWCNo6gZD+hdOh6CJZm/y54xTN9NEwA4Z5stCkSq7aG4tJGP2lh0szB3b+s2ZUJgYqhZGIi03ajO/zzbsyH6BnSHXX++6667ZT9lRc22LMCHnfNmRxPYOBpvXX389alFMHfLMLSg7esDM1Vh6RWm+TuapkdQarJiTde3alfmZNSTX3uwvy0GYNKDtds8990i8RYI95pHgFd2WHFGqyplbN6ZkJpfzafibDDqtpWFLE/7FmoSUSMuN3Xrn2bNn5w7h3UXtx1V5tsTC95K1vNi6kPGKUviS9S6E9IABAzBwMUrW4v0LphetWrVi1REdejbSCketEIUI0JGhAtChQ4c8Fm9gx06WPeBHH300blu2aBYw9Bk4cGChgup5AQKHHnqo+9YY5dDJ5Azteh62rnM+DX/zpptucmnFfyONQkmk5a5Zs7NGIzx3CO8uprWuyu+44w7v9r/1XNnYd4+4KOq4NT+eml9TEFTP8eq05ZZbBk0UKCbWC1hoYoDFvA0nikxea57zFGfg888/Z9fWOah0bSz7LzWC52VWd2OyQ3n55Ze7TN5+++0prppKFw16VtfHHHNMUHJOF5+/QQFC3jd3JOgBhHylhsEk0nLDZw/DNZojjjgidwjvLhuwLrBvhcZ6ES4q3H1GN4k7BZT1KzbGmGOxjE7+7RPKuMA5PauOeJB6+OGHkyuzvcpM5CXWkLhWYdckaPZGDdIaBw0aVFtr7ieeeMK1HyYQMdT/TkTds25v3yMj799++y0o20zWoU3goAAh79tiDNafIV+pYTCJtNzwn3nmmfDfnlOP5K/FhTwwxzNMazivxB7F/GLevHl4P6FztM8mQ4axQM+mDrqduD1kohDz4tRh9j788MNLL72UGjST/4waRLkU/Z133323JnDMnTdLZzXJQHITZZSMMwFbJuEiv6WznY1VjuU+BqDWfoJWOGOFVCItsDrMMUxBH4+u9zevaNifmT0/rYElu8A0YvOAXV/yaXNTa8TuAs0ODMXoB/FeKs2O2FRagYyggEqXh7226TplVCtTJdYtaefYWlRtzoQ1i8sGqeuQuQJVuPBjFkKsBpFnWG0u/DzzFy7lXHi2DDKfhf7Nxq2LhAWA0C/VMqBEWj76ffr0YWqPI/Z8gf71L6dm7Rz2v/HGG0sttZS1PBRt879b26dMs3Bv4078szzbBfbm2IrhblFHotS2mspPHX8rnFRgO8RWxf4FzYCjDGixdJ2R+HEOyrZZU2211VZBYXQ/mwCah/vuuy/bHKzz89kyY5s6dWoe5yCMrVlQoYrZHciOLeQdtEtcI2FsFPKV2gaTSCuXP2vZrspZuXZOrN1PhlEFp3flpl3q+3wbI0aMwI+Jy6r/F/GMbMZRhczFSqUb6/cwyMWHJEdy+5We85q1B3SamJ3jkZKWjEsk9oMjaRXs0boU+UYiiTDWxKPLHOuHWHP6TvHBCMONN944CCNHBh5//PHovpaWC3bHrW2U44WktNRLe0sirTRuC73lZmlW91ywqBJDH9WovTHl4gPws+qu3RoUea7aAtRCBPWj6gTQYqW6UalnkTxo3zS7nXCHzVRO9mFDDmnHQT9oK5SQd6zoXOTI1xJer7dX2Ph0/oly1gg3UWs014sRwsGK36WI4GTOF2HMlYtKIm0htqh1sL6PikRRCy/YAFHl1tqwPyvq9YVyUIEfGCfhog1l7mx9AfqyDTfckK5N9rkVAJ+YKGkhzMBYZGYlELWm7CGate2cF7QiZvYcahq+wGbqhIAM/1YdhmTNP6N7cVWADGNJ0K8p9rryaD+Who49F5dcUlYdKWa9izTOQjvllFPwPMQaCzMV/4uludBu2F1gl7XgCAgnI5wGi4bFTz/9VFrrqcRb2IlTNPNXaaWjaGjE3X333TIdqwT2FMTJDg1quiggMBJilZItGWSPP26ztuRf8AXh0hMvzGEI8HG5dzkiPEz4OgxDr2LTWceKUSnuFs17NSNR5spWBdtvv320lOgf8LjGfgqbdtHGXLnY6lSkMZxhcxXLQX+YYy0j+4KPmcAcI1m5mogwZkZ2WCnRvrMXlFgv4nAWebyNkHZdRcUgiV1Y1hvRU+AMyZz6JnwsnGCHOMzfzBCW7kPbZ5996ophyMIyQ/K/X67ZFcupb8zZ6NZlodoTMv60Bqs7kcZ8C0+MvlKitYYwF0zAw/gTqVVzocfBo4RTc/KLgzIbtkrySlWreklxuijNooAXJNvoba+99lpW8rMJ2OHvNM7sp3V+B7dn/pwYTS7Wk4KYoMTBHNp972ZKFBQ49ffrSKQxx8o5caEpMALitCoOJudg5bPOOov2hJ08xzOiSZH9rSIO4+YKhLEb+2GskfpijGuUo3DWFfIwgdS3dRWwogTYr23fvn3G6r1rkCyX7bfffgTwM8AAyz31fRT4Aer2mkGA/yGffvrpBVFwKLy9cuWVVxYMn+IAdSHSOIXLTqm2iucCSdamTRuW8vPbXWGIyu63P2hiuZIjVOLQLOgX2D22MZqVDjW2o446ynfQFYfcKg+pJ8CSPt1r9pk4yK2MuRrjMNdcsQRPPZbwBcRPrH3F9DOjRo0K+a6530MtIOQrqQyWcpE2Y8YMVvytidgFXxFnLRalyoFcNKtD4mHgWdAEu6IthnO0UU7zV9vJFT+Zq7388ssVTVqRi0AYAhz5xpok87MTTjhh2rRp2a+4nWxMArIf1eed559/3obOwEGBKzwHzsew/o1dhvAvpixkakUalhwsG7pvxmqaC9S3Jk6cWFotsmaNyrvFRuPDV0hpUZX8FjpO7JZhJ2DZcBerrrrqyJEjixLSJedBL4pAJARc943qYySxJT0SuhdTToYMdg7FlsgmavE/e7rYooUPn0KRhkExM7DsNX3WHnFRGB5NzpBY8JjffWQJTadqUoR1m3POOceOl3WSjGIyBC7HLWnOYuqmCFSagHmmiJXzQHfCXP6diAqR4UQLG6eyo19CKrfeeqvFULV+qYR8VvSVtIm08ePHZ28sMV0ragqfnziN3pzU0YAitwXJTh0dyxNPPDHDUJrdMizqghzhZEeiOyJQaQKcqY364kUXXRRGJDAUc/0vG2+VzljB+FnUYajqdx18bpQFfbEwZSkYf8EAfOMmjbAZLRg+ZwCyautSHJKXM0zqb6ZHpH3xxRcoXNlKtGsf7JQycom8FjG4MTMAUnz11VcjT8JFiMRCZdGaqXUBGNVV50urULkUbSoJ4G7NfYAsHrDRy/fIgea4S8ZsBoGBIRr/OE+SQ2LxiG09eG2PXkJLBWvijH7D8sYF66KcXFrp+uJIBJcoOSnnzCYzzcbzQ6XzHM/4UyLS0N0wZwSuZfBR4Wu1cv2+r5iEw+JK1C42rX6haOt0BHfeeWcl0lKcIhAJgfPOOy9jBOaLh+xrXBdGkm5pkXC2HFOx7Fxl32HbIqeZc2npZryFY1WD1q5du4ynRf00s2t2/Yt6MTWBEy/SaGeMR6xBuLaIaj4uqCtdSa1atbKmH+1EjW2GLbbYwiJHmNFSy98IrDQQxS8CEGARjwO6/EU8a8n+Ba0aC+IaOhflUAI7r9lljJ981EzaOMwdfSty6GcY3ekKWcWYx0uSK9Mfglkr4SeoPltjskUaC4AZun+sgFdipTFn48Dg2kQpipQ5w5RwE4/XK664on1LjCI5jKOEePSKCNSWAL5s3n//fUZ7zz77LK4AMPlnZRLTlyeeeAKz69qe+YDxnH28fGtIL1wrZMzDcFbpe1AkGCqFGWEiIWxyqHyrc4Sx6zrIaiR5S1wkCRZp2HDYwrGrRaqTHbUK1QGHcVx22WXY2bDqzalFXbt2ZWzFxoBLmk8iw5K0tGzgLhaXNhbnqaee6lSwSotNb4mACGQTwP+kL8/wEDRlypTsYO4Ozjj8wGwEBoUs+b598uVHbi6EcIdUcn4S/WJSRRqnNPkagEgUzpuvXE2wjOlvaDuRk/EX5ajyM2DrjewFvvjii+VHqBhEQAR8AgMGDPC/3KZNm+Y5GNq9iBWzL9XQefEjLP/aIuec1TJjQyHOla5Dhw5lRpXQ1xMp0jhf1V+pZ7bOjK3SFcBBD40bN/Y/hoxrpoxl5gEPCy5OSvTZZ5+VGZteFwERyCDQr18/f4cML+TsW2eEyfkTD/f2vTPcLO3g05wxm30e8eN7L2eYkDdZ5rVMIoZDvpWyYMkTaXYqnfX+06dPr06tsIxOy2Z50xYKrAG5izIHWehfufEaJ3dUp0RKRQTqhwAq0P4Hy/ZBURrRRxxxhL3OYRdR7Qg89thjFm2ZG3XmBYIVrKiyl7jmkTCRxiK479Vws802K7hoUKEqcb48MjbzGACee+655aSIHxAUrnCOV04kelcERCCDAPogftfBub4ZAdtG8CoAACAASURBVAr+REigRmjiB9vQgq+ECWB+99G3DBM+KMx7771nE1CG3UHBUn8/SSLN98tJw8LpQMhFg4rWIh5CrZW7i7vuuquiKSpyERCBoggwE7Luno8UI5+iXrfA2CfYlgcR4hXdHpV8cdBBB7l+A193JUfCi6b7zUpPOcba5eQhDu8mRqShoGE7n7QAptgcYxEHguQBJ3WuUbq/NKknn3wyJnlTNkSgzgngW9x8/fCFdurUqZxFORaK7GOPZIMAd30uQlTDSq4phtGWqwMOOKDkeFLwYjJEGp6IzUc1NYd7w/jIMxqBb0bmGhYLkrHKYQpaqoogAiUQYF7lq0ZjP1ryftVXX301a9YsnDGamhgTNTbXS8iV/8rKK6/sOo2jjz7avx/+mu7R5o6sXsZh7Sp85iMPmQyR1rNnTxuDYNWPhXXkIMqJEM/FLnv+4gZnZJcTp94VAREok8DPP/+MeZZ1Haw3lmnfzSa3GX65aNF+vP3228vJJ2c3uqjGjBlTWjx4zrQy3nzzzaVFkpq3EiDScCltFcaaXhX09YutXaSXy2GGS0Y0GIuNSuFFQAQiIYA240YbbWRdB7sDeEuIJGZ8LPgzP5LgFFMco5QQOTodLoeorjDZKiEGDpyyMnJCSAkxpOyVuIs0RlX+kmM8xyD4GnetipZtDmm4U7eeQ1P2kag4SSTg69wvv/zyH3zwQYSlwGw0Q6rxveONgWXJolLp06eP6zpQ3i7qRRf4kUcesZUh1h5lzAqWuIs0v13GdgyC32TXLlFgYa3DVhK4OXXq1BJaql4RAREohwBbXM7Ek2+QTp+TOsqJLee7GNu4r97/y7d//fXX5wyf8yYn0fM6EvfLL7/MGSDPTdRe/DKi1ZkncP08irVIY2BlY5AGDRpUzn9jmfV96KGHumbNLI2ojj/+eGvlnFRbZuR6XQREoCgCeJKzvp4vsUxT0aCkcWqMc0j3pfvJcQfXrEFvZd9HgaWEFdGZM2eyjWf9DKdgE0ndnmTtU421SDvmmGOszjjW2c93rK73339/l0+8ipAx1sRtooZInjt3bqxyq8yIQIoJoGmMxar1G0VJl2KxXHjhhZYQK4d2zUVFjZ3xm+XLs+7du7Mnh1kbOx1l6r8USyCG4eMr0hiG2BSN2U+cdeJxz+9aM25yXB3jM9TaN4YsMax4ZUkEUkkA9+X26WFLU9Hz2FC9th01NCH79+/vT9f222+/SAgz/fIN6caNG+englsvrAtM4eDjjz+OJNHkRhJfkcbQw5ombSXOiO24o1VWWcXl03dOg91JnDOvvIlAagj4dtAsmZR5nGYYLKxqWjfFBt7TTz/tu93CM0iYSPKEuf/++xFgJ598sguDWy9LjgsOLMVRiPmgYE8uT1R18iimIo3ps63dYTyIzkWc68Ps0vwzijiCzxrfN998E+f8K28ikAICHDnt+xNHG7AKheLTtsUkd57LqFGjbOpGD9C7d+9yssFmPJG4Uz44OtWfn7G2iadZ6yd5NGHChHLSSse7MRVpuAQ1eXD66afHnPUmm2zicutr7eMX1YrAUCvmRVD2RCDpBHBPZV9c27Ztq1Yczu106SJU5syZQ7qPPvqoyTlG5PgiLy0zrDc6IY1RHTGsu+66VkBcjaAk6bviO/PMM0tLJWVvxVSk+eej44Qm5tCxLnBNjeOXLKuo71v7Yxpn93UhAiIQOQHMn+1zwz6smus6HG5lSducrFevXnYTxcgSdBpBZJsvbqzsZmz4cxg4cCB6kr5jB7bzI0ea0AjjKNL8uTwToPiT5WBc13z9k2RxXmAjNRYh418K5VAEEkoAt432DfIlTp48ucoFsV2Ghg0bWtL+rLFbt252P+QFitNuAZPJn7MTnz9//n333Yc1N365/B07NK5DxlkPweIo0vwt0Djr7lv7MHWjk046yW5yYQ2d/Vv/vq5FQAQiJID6mE2J/JWSCJPIH5WdeUY2XnvtNReYmZl5E0YCvfzyy/kjyXiK5z9XqAwXEwMGDLCxMgGwgs14sc5/xlGkmU48FcbR4/GvIRsxZZwp47uYq9VRpfGnpxyKQDkEvv76a1OaYOeJn+XEVtq7qLOZoZhvkTZ+/HgnlvjLuNbXxS+YEMqT7l26F64Jz16Gv52GYBs8eHDBeOotQBxFmtnkJ0InlUUA1/JoYRlNtn379u4Rf2VwXW+flspbHQK+KlkNF3VM7dmpcljZ0bO3TgCTMrsf5sI/5s3EtosNOXfbbbeFiaTewsROpLFebNPqLbfcMv71wWGkrpFlb/uxV2ytOZIDcONPQzkUgWoS4Gww/DC4rwwBUEPfGRwxYx+703t0HN5++22TRhyMVZTpN15CUJi0aO2CAxoTsXxVzZZgacVOpD3wwANWc0OHDrWMxvNi0qRJTgDT8rLt9rt27Wplueeee+JZBOVKBJJLwHQC+dCGDRtWw4IwFrePfezYsX5OUK+3RyeccIL/qOA1yiCM7J1Q5C/GCcOHDy/4Vj0HiJ1IS5A5F+69bY2UQ0qzm9Epp5xiTfnNN9/MDqA7IiAC5RCwA+XZyqrhFM0VwayeDzvsML9QGETbRM0cDPkBdB0hgdiJtMMPP9zEAO4AIixqtFF99NFHttLN4TI51xM6depkZdFRRtHyV2wi8NJLL9n3Vb7rqfJ5moZz9on2vtPXZ555pvy0FEMQgdiJNJabXTPN2GUNKkCt7qN9xGJjkyZNsPEMysOmm25qnxxHUQQF030REIESCNj3xeJ/9rJ/CRGW+UqLFi3c996yZcuMqHwn7GgtZjzVzwgJxE6k2dQn/uqOrJ7nrwmcc7smzvpk/pB6KgIiUCwBW/aPiWfw7bbbzn3vWO9kl4VMuqcoKxbsOrJf152QBGIn0sxrWQqcSJnHGud1NGSVKJgIiEBBAu+8846TEPw944wzCoavQgA7kYPpY3Zy/fr1swyPHj06O4DuREIgXiINuy6rdY7Ui6SEtYqEE2bNGoEzCWuVDaUrAqkkgEKW9RXTpk2LQxkxsnZZ2mqrrbLzgzMR89CP+67sALoTCYF4iTS8O1oz3XPPPSMpYa0i4SQIK4ucZNeqFpRuWgmst9567vtCTmS4OKhVkVETc1liBTJnHth6dwFYe4xJnnPmM9E34yXSGG2ZGMApQKLJHnDAAVYWzDATXRZlXgTiRqB58+bu+/JPdKptJhmFuywF+cU/7bTTrE/glODa5jatqcdLpOHixaq8WJvEuNWQHaJGidD4j1v2lB8RSC4BvNSbpRdyIiYFMdf7Ge7LLXuo71v/ppUbwxLtRbxEmm9oMmjQoGiLWs3YUNm3T26DDTaoZtJKSwRSTwCvPSYb7IiympfaFmb69u2bMzN0C5btXXfdNWcY3SyTQLxEGucyWJXX0ANpmUx5/YILLrCCHHLIIeVHqBhEQASMgL9R/fDDD9v92l7YESIjR44MyolpdHMWdlAY3S+HQLxEGm46TRJ07ty5nILV9t3dd9/dCjJhwoTaZkapi0DKCFxzzTX2fWHFHJPSHXXUUS5Xjz/+eFCWzIMX5+AEhdH9cgjES6RxqJi11Aw/aeUUssrv+quOMTECrTIBJScCFSXgOwRHTbqiaYWPnPVG133lcehqTrMwWg0fs0KGJxAvkYZiq9lyJddtDOfymWDWinn4tqiQIhCSwOmnn26f2G+//RbyrUoHY/vf5SqPQ1c6BBemQYMGlc5PfcYfL5FGHdj5QMm1RrQT1Gi7nJVTnw1LpRaByhHo0aOHibTKpVJszBwgRa4YlOeRsr5fymLjV/gwBGIn0uwkck5qCFOAuIX5/PPPbaK50korxS17yo8IpIAAru5NpMXHZnnKlCnkqlGjRnkImx9INKLzBNOjkgnETqSZUwAaRxK911988cX2sWnVseR2qRdFIA8B32aZDfg8Iav56PXXX+fbz+/Q1cxVcXpSzbzVT1qxE2n+EaBJPAkad44m0p5//vn6aUkqqQhUjcDVV19tXxn+i6uWbv6E/vjjDxZm8uu1Wf8gkZYfZslPYyfSfJ9YOb1/llzUKrzoFtPdx7bxxhtXIUUlIQJ1SOCiiy4ykXbrrbfGhwD7DvkP115hhRVczvNP5uJTosTlJHYijZVxfHq6WscsMT4L5WGqtmPHjvalnXrqqWFeURgREIFiCbzxxhv2oQ0fPrzY12sYftFFF3U510Z7hWohdiKNcnJSmrXXp556qkIljzza2bNnmzDG6ITDZSJPQhGKgAhA4Pfff7dvLcjtfQxB+SeNaKO9QhUUR5F29913m0hL0EGgBx10kGUbU9AKVZiiFQERgAAa0e5zy69hGCtWI0aMsC7iyCOPjFXeUpOZOIo05jfm85eG+8svv8QfN5YoDRs2tPaKW9X451k5FIHkErDDybCZYYEkEQWxPNNRyE9ehaosjiKNouLq18RDIk6ZOeWUUyzDrVu3rlBtKVoREAFH4NFHH7Uv7rjjjos/FvQhl1hiCZdn1B35Gf88JzGHMRVpH3zwgbXXpZZaKr8SURy4s9lrGX7wwQfjkCXlQQRSTIC1HPNpkAjneVdccYV1ES1btkxx1dS2aDEVaUBp1qyZtYCePXvWFlP+1H3dfZYf8wfWUxEQgUgI2CnSdBRPP/10JHFWLpJVV13VOjT8jFQuoTqPOb4ibfr06TYKQ7spPj4CsluMmU/SZG+55ZbsALojAiIQOYHnnnvOhETMV/t9lTdZpEXeEvwI4yvSyOWGG25oTTa2O2rOC47LJ6KXI+R9vroWARGoHAHTe+TT+/jjjyuXUJkx+6PeWNmGl1muGL4ea5GGqxuzTERmxNNGbZ111om/3I1hy1OWRKB8AjfddJN9fbF1NtS/f3/LJDJYiiHl13ueGGIt0sg3u2jWGhjp5Dm1IU8hK/fok08+sdVRDA/ivDpaOQiKWQRqRQCba9wauC6CD3DGjBm1yklQuvPnz7epJPl85JFHgkLqfiQE4i7Svvvuu8UXX9ykWtxM7tu2bWt522OPPSKpEkUSEwJ4nebou1VWWWWttdbq1KmTjr6LSb1kZKNfv372DaKCkfG05j/btGlj2VtzzTVrnp/UZyDuIo0KmDx5slle0zhuv/32mNTKF198YRlLkL1nTOjFORsLFizgBFrrieyCk4hRxY5zzuswb7iB9bWjb7zxxvhA8LVCsEWbM2dOfPKW1pwkQKSBfp999rFuhZYRk/HyDjvsYLlq0aJF5E1k3rx5X3/9deTRKsKCBLbYYgur2ewLdk+1wlyQYTUDjBs3zqqJ/uGVV16pZupBaaGuYo4oyd4RRxwRFFL3IySQDJHGijkyw1rtYost9tFHH0VIoYSoPv30U9tF42LmzJklRJL9yocffogL/9VXX50vk/ISM1aZl19+udtEhANTw+y3dCdCAkOHDrWWxlEgKB00adLEX/3m6TLLLJMUJ0wRkolzVCeeeKLVGn4Pau6cAR0Q/zTjjTbaKM700pS3ZIg0iDMu9p0oLr/88rNmzaphTWywwQb2CZXZXn/44YeTTjqJbQBEtcWZcbHyyitjTPrMM88kwuNlDeul/KQRYA4+bmsYQ1iEI0eONIdGBODkI60jGZyaX2A8Q33ZV8MKSm2zxM66ZYbhKUPV2uanflJPjEijSujQ/U6/hiPlO++809orawvM2EpuMehM+oYKFq27YJaAU3+2B2TuVjLhYl9082P447cz413myuuvv77V0XLLLYc+W0YY/awVATbd/f6he/futcrJgAEDrJGw0PLkk0/WKid1mG6SRBrVg12z9Tg0mqWXXrr6jnDY3/KFUPv27ctpN1deeaW1fndBAfFZd/bZZ5cjKcvJUp2/a9WB/5qcKLbeemsLw2Q9ZxjdrAmBO+64w6qGi5pINfwp25YEeejcuXNNUNRtogkTadQTWx1+i0EAPPzww9WsPza37LNZdtllyzSVw4GWi41FrcGDB0+dOrWaZVFa2QSscj/77LPsp+6Ov+xMxeHkMyik7leZgH+yPFV59NFHVzMD9957r68Ssu2221YzdaUFgeSJNDKNwVDGdj3t2N/2qFzV4pfLujwuULUqMy3zUyfPb2WSjOp1GzCxJBAUJ+MY6staAmvgQSF1v/oEevfubVXDxX777VedPLz44ov++g0thG3y6iStVIxAIkUauR8/fry/bk7Dbd68+QsvvGAFq8TFVVdd5X8qBx98cPmpoDjn4mQRFQub8iNUDGUSMG8UqJ7micpXeaUGVXd5WFX/0Y477uh/qq1atcJpQ0WzQY9kVqokzT5rpVOsaHGSG3lSRRrEUWdfe+21/YbL+PrSSy+tkAu1q6++2sbvJIpeXCTzQvQLrAjXX399cltSanLORqarEbRM8xfKH5L36tUrf2A9rTKBCy64wL4sLlgfrpyXBnbEfXmGbva7775b5fIqOUcgwSKNAmB9wmq1L2lou0x32KGNtoIHDhzop8LnEeEQzD4GfMF988030eZcsRVLwLdLwytu0OuDBg3ye0x2UKT9GMSqVvf3339/v474hI888sjITdZ69Ojhp4KLmc8//7xWRVa6yRZprv7wOuOrQbrmhWu+SHRnsQNr166d32RZmIp2CObvCzLwf+KJJ9Qua0vALJwYbeSs64suusgf4rjmUWVNhNoiSkrqHN+BjPG/Xyo3kp4BAig/+wdgkQrdjmzwa9s20iDSIMiwqEOHDn7Dddfs0GIhW/IKIevjzPn8aJFnL730UrR1xpzPT4JrHIBFm4RiK4oAliFWI2zZoonq7AJZ08ZGEDVXe+pfcF87akVxrk5gzqjCHY9fU1yzcfDaa6+Vk4HHHnssYzufOL/99tty4tS75RNIiUhzINiLWnHFFTPaLj+Z+uy8886cWhR+tRCzbttTsQgZ7r333nvlQ8+IAXtqS8IuGEtKNTwDVDV/HnrooVYX7sLWh+1+9kRt4sSJ1cyk0gpJgKHGueeem11f+DvmKyt2IPLVV1/ttNNO1gzcxe67716hXfyQZVQwRyBVIo0iubaLs6KMBud+0qYZSnMizAEHHDB69GgWJX766SdrCrgZZRPuoIMO8j1vWTzbbLNNhZxR7bXXXi4VvHxZcu4CD7mMMS2HuqgmgYwN1Iyq4fQ+tMPdTZN2uHqpZg4TndbLL7/MN4hRafiBZpnlRcneP+rFKpRlEjoEZl0FZRI9AObbVt1W+zfffHOZedPrURFIm0hzXGiaqD4GLRBZUw55wUbdiBEjoiKeHc/cuXNdVtm7xl13dq5wWCdvxdncqnCHFUjcFmd0YY0aNbruuutI3bQPWAZwniH33nvvKuQquUmgQYNvAXyi+vvHrO1X01EOqsvZY0f30aHjQz0yxDz++ONZ8kHiPvvss6xPMvlmkocvtIyWwFuoxQZ5mUluNSU65+kUaVYljz/+OPu3ZmmULS3y36EF021VQQuR9cy+ffu6D3vKlCnZh3UhVtE+kKdHq9lqXjD1R6Hg1ltvnTZtmr9IxcTdtR+G+XR8LEYx769mxpKSFr4RTjvtNKRF9tIfAPnK3n777SqXBV1WTMfyf/75n5JtPsmS9+mrXN76SS7lIs0q8sEHHzzmmGMYUvnuavI0WfxB4B3/559/thiqfIENDXnIyCGzgcMPP1yHqFW5LoKSs5Mn2cENClO39xH/11xzDXPcoF0AdCuY92DPx3pgrSghSrECylCJzPjocv7Ezyf7FLXKttLNQ6BeRJqPgLPWcG/ap08fDoDYZJNNmBLRN7E1summm+KD+Pzzz4+Po8WLL77YX6JxXxdD3e222066/n6d1uTahvlyXuz4M2VhR4p18pwaT671Mrnhc0PaFdy4qmadsonepUsXXDdkmwP5Ig3h16lTJx0qVM2qKTatehRpxTKqbfgFCxawwZbzS2NycPLJJ/saLrXNar2lbjrcNT+dq7bkma9gn77ZZpshrnwB4F8zMiPADTfcQHuubW4Lps4HhWDG2pXR7VlnnXXsscced9xxKIBUc8OvYCYVIIiARFoQmXjdx+XBYYcdlm3BRq9BP8IsAXupefPmxSvTqc4NMxLrsjlSOdVlzV04VJY4Ask/aseAuAtaJpYwnK7CImTuKHRXBKImIJEWNdFKxkc3it8Kzr/O6DvcTxYk0YVBWUv+eCpZCf8XNzroVgtojlQhxZgkwfnyOHRmCypoToY+IXYyaAnGf0IWE6TKRoQEJNIihFm9qN58801UjdEWsV7Vv0C2YVqHIglmpDXUcKkejlqkhAqfMa+H+THnpCDJWrRokXMNHBQ8Ouqoo8p0yVGLmlSaqSIgkZbg6mTSxh7GeuutF9TL0NG4xR/2tB955BEZt0VY2SgWOZGGDm2E0cYtKuZk/fr1o43ZxqEJcnfBhi6WXnmOS41biZSfdBOQSEtD/eLUgOMtcMmTR7a5Dghn/2y8EXLs2LFoef34449pKH8tymCaqKk8uxWlvjPOOIMl7qAWhcM2rI+lyF6Lpqc08xGQSMtHJ3HPMARmj2e33XZDizqnWWvGEJufTDLonrAKwIABjwnYFFfBtDxxYDMyjLaOkcQUJONpcn9ykDfr1dkGkVZYjMzYrH3//feTW0blPN0EJNJSW784V8UrGH4I0ZMMKd6s58JH0UorrdStWzf8HL766quxMiGKQ4W98cYbxgqnWXHIUsl5YEKGXT9+vYO2Zikp9lj77rvvjBkzSk5FL4pAdQhIpFWHc41TwdTm/vvvZwC+5557MtAO0lWzbjrjgpkcQo5ODUudt956q8aFiUHy7DAh8qHUsmXLJMp71ItOP/10zELy2EQzDMKbJQ7hqu+tKgY1rCwklYBEWlJrrpx8o1eCJ8kr/vNvxx13xI1skNeiDNnmfqIpgGsxXBnhvbduDb2xlLjvvvuQbeVURNXeRfH1ueee48QcdlLziDHql8pdc8018V6ooyyrVjtKKEICEmkRwkx2VL/99hsnOF922WW9e/fefPPNORwgzGSOMI0bN8aclpNRkZTJRpCi3DPUwDMvDtVYeWa8UnDlGU2Q1q1bX3jhhdIYSlErqMeiSKTVY62HLDOO/7FsYyrGTA65VdDjM+KNA9623357XJmoZwwJOapg2MZNnjwZdx5YF6y11lphhiPskB144IGnnHIKR6hElQ3FIwK1JSCRVlv+SUqdadwDDzxw+eWXY1TLLkvONUm7ybQAxTl32ipHrsjiO9qaRoBBlcMlmE/jksosCox/zgsqBSuODh06jBkzphLns0dbRsUmAiUQkEgrAZpe+TcBTi7F0Jv+MeTZHDg04TARjL5Z3cJaQFs1IZsRhz4/9NBDnB2BAiraKBtvvHEe1cRsSda8efMtt9yS5UfMM+p24zMkagVLAQGJtBRUYu2LgHhDgw4LbvQAC27bWLdLSHbsEHU4t+U4zV122YWDBVDDGzRoEB7QOX8Ee3CWPSdNmnTnnXe+8sorKFuiPY8PFP4xTeFvmkzosHVDtxCVk65du3I6NgeKcngNiqaGK8wFSJmxoQOC6g86rvXgqav2rV85iBMBibQ41UYq8kLXPH78eOQTipQlnycepvv2w+Dkgt0jpi8srNGnI1mxH1999dW5YJrC6lyrVq2YUO66665sHXG4K/PL/v37c4AIh4ZwBCWOVGbNmoV2DDKA/EdbD8yNkL7ozTPZYrsLgX3JJZf06NGD8/nQyCCHKBmGXDn0i8w1Aox3Kd2RRx6JjiJHouCJMdrMKzYRSBYBibRk1Vfycsu6GZMtzJvatGmDvAlysJTRWdf8J9KCrPKPZVVs1dkXRG+Qv8yc8GqIDQOTS7ThmUVxzV9usr/ITS4Iz+wTYcPrxBNVWVxmOCeaFUhkGHtp0sFJ3vegHFeYgERahQEr+iwCWHShYsckieU1zLexguIf0g4ZUFCpMirxEPN4QMFibJMmTfBtNmTIkGHDhn3wwQd4O8tiqRsiIAILEZBIWwiHfsSBwPz589mcY7GOoyPZQsNr5bhx49BuYJGQBcMRI0bgURejq/POOw9NE/zEd+/eHVu6jh07dunShdVFVvPY1UMVhRW5NdZYg+VH5kzMnFgFRWRGOG0qRy4itMhS06ZNMZBAZZFzWygOZaHI2E7EoRaUBxFIIgGJtCTWmvJcFoFvv/0WvZLp06e/8847Dz74IG41hg8fftdddyFU0ElhU+qcc85BM5PTv7CxQ0aiZMhWHFtfqA4yecLqi8NWmjVrxmYhMgnByV/CYJPHI5wlchArs08ueLdv374sEhItx4SOGjUK9RaElrQ2yqo/vSwCwQQk0oLZ6IkIiIAIiECiCEikJaq6lFkREAEREIFgAhJpwWz0RAREQAREIFEEJNISVV3KrAiIgAiIQDABibRgNnoiAiIgAiKQKAISaYmqLmVWBERABEQgmIBEWjAbPREBERABEUgUAYm0RFWXMisCIiACIhBMQCItmI2eiIAIiIAIJIqARFqiqkuZFQEREAERCCYgkRbMRk9EQAREQAQSRUAiLVHVpcyKgAiIgAgEE5BIC2ajJyIgAiIgAokiIJGWqOpSZkVABERABIIJSKQFs9ETERABERCBRBGQSEtUdSmzIiACIiACwQQk0oLZ6IkIiIAIiECiCEikJaq6lFkREAEREIFgAhJpwWz0RAREQAREIFEEJNISVV3KrAiIgAiIQDABibRgNnoiAiIgAiKQKAISaYmqLmVWBERABEQgmIBEWjAbPREBERABEUgUAYm0RFWXMisCIiACIhBMQCItmI2eiIAIiIAIJIqARFqiqkuZFQEREAERCCYgkRbMRk9EQAREQAQSRUAiLVHVpcyKgAiIgAgEE5BIC2ajJyIgAiIgAokiIJGWqOpSZkVABERABIIJSKQFs9ETERABERCBRBGQSEtUdSmzIiACIiACwQQk0oLZ6IkIiIAIiECiCEikJaq6lFkREAEREIFgAhJpwWz0RAREQAREIFEEJNISVV3KrAiIgAiIQDABibRgNnoiAiIgnsh3QwAAAa5JREFUAiKQKAISaYmqLmVWBERABEQgmIBEWjAbPREBERABEUgUAYm0RFWXMisCIiACIhBMQCItmI2eiIAIiIAIJIqARFqiqkuZFQEREAERCCYgkRbMRk9EQAREQAQSRUAiLVHVpcyKgAiIgAgEE5BIC2ajJyIgAiIgAokiIJGWqOpSZkVABERABIIJSKQFs9ETERABERCBRBGQSEtUdSmzIiACIiACwQQk0oLZ6IkIiIAIiECiCEikJaq6lFkREAEREIFgAhJpwWz0RAREQAREIFEEJNISVV3KrAiIgAiIQDABibRgNnoiAiIgAiKQKAISaYmqLmVWBERABEQgmIBEWjAbPREBERABEUgUAYm0RFWXMisCIiACIhBMQCItmI2eiIAIiIAIJIqARFqiqkuZFQEREAERCCYgkRbMRk9EQAREQAQSRUAiLVHVpcyKgAiIgAgEE5BIC2ajJyIgAiIgAokiIJGWqOpSZkVABERABIIJSKQFs9ETERABERCBRBGQSEtUdSmzIiACIiACwQQk0oLZ6IkIiIAIiECiCEikJaq6lFkREAEREIFgAv8Ls3MCrNtnV1IAAAAASUVORK5CYII="
- }
- },
- "cell_type": "markdown",
- "id": "0c8c91ad",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- }
- },
- "source": [
- "Wir können alle Übergangswahrscheinlichkeiten $P(s \\to s')$ elegant als Matrix $M$ notieren:\n",
- "\n",
- "$$\n",
- "M = \n",
- "\\begin{pmatrix} m_{LL} & m_{LR} \\\\ m_{RL} & m_{RR}\n",
- "\\end{pmatrix} = \n",
- "\\begin{pmatrix} 1 - p & p \\\\ q & 1-q\n",
- "\\end{pmatrix}\n",
- "$$\n",
- "\n",
- ""
- ]
- },
- {
- "cell_type": "markdown",
- "id": "bb0c420e",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- }
- },
- "source": [
- "Wir können die Wahrscheinlichkeiten, dass der Frosch zum Zeitpunkt $t$ in $L$ oder $R$ ist, als Vektoren schreiben.\n",
- "\n",
- "$$\n",
- "X_0 = \\begin{pmatrix}1 \\\\ 0\\end{pmatrix}\n",
- "$$"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "0cbd4273",
- "metadata": {
- "slideshow": {
- "slide_type": "fragment"
- }
- },
- "source": [
- "Ein Zeitschritt $t=0 \\to t=1$ verändert die Verteilung gemäß $M$:\n",
- "\n",
- "$$\n",
- "X_0 = \\begin{pmatrix}1 \\\\ 0\\end{pmatrix} \\to \\begin{pmatrix}1-p \\\\ p \\end{pmatrix} = X_1\n",
- "$$"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "e7fd32c7",
- "metadata": {},
- "source": [
- "- die Berechnung von ganzfrüh aus der Tabelle nenen wir Matrixmultiplikation.\n",
- "- MM captures the idea that \"\n",
- "- denn, wir können Lineare Algebra machen. $v_0^T\\cdot{}M = v_1$"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 4,
- "id": "9d30de72",
- "metadata": {
- "slideshow": {
- "slide_type": "subslide"
- }
- },
- "outputs": [
- {
- "ename": "SyntaxError",
- "evalue": "invalid syntax (2451516634.py, line 3)",
- "output_type": "error",
- "traceback": [
- "\u001b[0;36m Cell \u001b[0;32mIn[4], line 3\u001b[0;36m\u001b[0m\n\u001b[0;31m :::info\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
- ]
- }
- ],
- "source": [
- "\n",
- "## Frösche brauchen Zufall\n",
- "\n",
- ":::info\n",
- "Viele Leute werfen Münzen in den Teich der Frösche. Wir sollen einen Frosch aussuchen, der der neue Schatzmeister werden soll. Wie können wir aus den 7 Fröschen **fair** einen auswählen?\n",
- ":::\n",
- "\n",
- "**Bedingungen**:\n",
- "- Jeder Frosch wird mit $\\frac{1}{7}$ ausgewählt\n",
- "- Zufall nur durch die Münzen\n",
- "\n",
- "---\n",
- "\n",
- "## Frösche brauchen Zufall\n",
- "\n",
- "```mermaid\n",
- "stateDiagram-v2\n",
- " state \" \" as 0\n",
- " state \" \" as 1\n",
- " state \" \" as 2\n",
- " state \" \" as 3\n",
- " state \" \" as 4\n",
- " state \" \" as 5\n",
- " state \" \" as 6\n",
- " state \"1\" as 7\n",
- " state \"2\" as 8\n",
- " state \"3\" as 9\n",
- " state \"4\" as 10\n",
- " state \"5\" as 11\n",
- " state \"6\" as 12\n",
- " state \"7\" as 13\n",
- " state \" \" as 14\n",
- " 0 --> 1: 0.5\n",
- " 0 --> 2: 0.5\n",
- " 1 --> 3: 0.5\n",
- " 1 --> 4: 0.5\n",
- " 2 --> 5: 0.5\n",
- " 2 --> 6: 0.5\n",
- " 3 --> 7: 0.5\n",
- " 3 --> 8: 0.5\n",
- " 4 --> 9: 0.5\n",
- " 4 --> 10: 0.5\n",
- " 4 --> 11: 0.5\n",
- " 5 --> 12: 0.5\n",
- " 6 --> 13: 0.5\n",
- " 6 --> 14: 0.5\n",
- " 14 --> 0: 1\n",
- " 7 --> 7: 1\n",
- " 8 --> 8: 1\n",
- " 9 --> 9: 1\n",
- " 10 --> 10: 1\n",
- " 11 --> 11: 1\n",
- " 12 --> 12: 1\n",
- " 13 --> 13: 1\n",
- "```\n",
- "\n",
- "---\n",
- "\n",
- "## Gedächtnisverlust\n",
- "\n",
- "- Der Frosch hüpft mit $p$ nach links und $q$ nach rechts\n",
- "- Die Münze fällt gleichwahrscheinlich auf Kopf oder Zahl\n",
- "\n",
- "\n",
- " \n",
- ":::success\n",
- "Die nächste Aktion hängt nur vom **aktuellen** Zustand ab.\n",
- "Was davor geschah ist irrelevant.\n",
- ":::\n",
- " \n",
- "\n",
- "---\n",
- "\n",
- "## Bissle Mathematik"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "1aa7ccc8",
- "metadata": {
- "hideCode": false,
- "slideshow": {
- "slide_type": "slide"
- }
- },
- "outputs": [],
- "source": [
- "import matplotlib as mpl\n",
- "import matplotlib.pyplot as plt\n",
- "import networkx as nx\n",
- "\n",
- "seed = 13648 # Seed random number generators for reproducibility\n",
- "G = nx.random_k_out_graph(10, 3, 0.5, seed=seed)\n",
- "pos = nx.spring_layout(G, seed=seed)\n",
- "\n",
- "node_sizes = [3 + 10 * i for i in range(len(G))]\n",
- "M = G.number_of_edges()\n",
- "edge_colors = range(2, M + 2)\n",
- "edge_alphas = [(5 + i) / (M + 4) for i in range(M)]\n",
- "cmap = plt.cm.plasma\n",
- "\n",
- "nodes = nx.draw_networkx_nodes(G, pos, node_size=node_sizes, node_color=\"indigo\")\n",
- "edges = nx.draw_networkx_edges(\n",
- " G,\n",
- " pos,\n",
- " node_size=node_sizes,\n",
- " arrowstyle=\"->\",\n",
- " arrowsize=10,\n",
- " edge_color=edge_colors,\n",
- " edge_cmap=cmap,\n",
- " width=2,\n",
- ") \n",
- "# set alpha value for each edge\n",
- "for i in range(M):\n",
- " edges[i].set_alpha(edge_alphas[i])\n",
- "\n",
- "pc = mpl.collections.PatchCollection(edges, cmap=cmap)\n",
- "pc.set_array(edge_colors)\n",
- "\n",
- "ax = plt.gca()\n",
- "ax.set_axis_off()\n",
- "plt.colorbar(pc, ax=ax)\n",
- "plt.show()"
- ]
- }
- ],
- "metadata": {
- "celltoolbar": "Slideshow",
- "kernelspec": {
- "display_name": "Python 3 (ipykernel)",
- "language": "python",
- "name": "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.11.3"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/jupyter/custom/custom.css b/jupyter/custom/custom.css
deleted file mode 120000
index c28a8f1..0000000
--- a/jupyter/custom/custom.css
+++ /dev/null
@@ -1 +0,0 @@
-../bootstrap/css/bootstrap.css
\ No newline at end of file