757 lines
18 KiB
Plaintext
757 lines
18 KiB
Plaintext
{
|
|
"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": [
|
|
"<div class=\"alert alert-info\">\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",
|
|
"</div>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "5384b59e",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"<div class=\"img-row\">\n",
|
|
"<img src=\"https://cdn-icons-png.flaticon.com/256/2491/2491325.png\" />\n",
|
|
"<img src=\"https://cdn-icons-png.flaticon.com/512/3997/3997691.png\"/>\n",
|
|
"<img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/5/53/Google_%22G%22_Logo.svg/2008px-Google_%22G%22_Logo.svg.png\" />\n",
|
|
"<img src=\"https://upload.wikimedia.org/wikipedia/commons/thumb/0/04/ChatGPT_logo.svg/1024px-ChatGPT_logo.svg.png\" />\n",
|
|
"<img src=\"https://static.vecteezy.com/system/resources/previews/023/636/525/original/3d-rendering-radiation-icons-sign-caution-danger-symbol-free-png.png\" />\n",
|
|
"<img src=\"https://thegraphicsfairy.com/wp-content/uploads/2016/07/Frog-Drawing-Green-3-GraphicsFairy.jpg\" />\n",
|
|
"</div>"
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
"<div class=\"alert alert-info\">\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",
|
|
"</div>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "25a3f2ca",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"<div class=\"alert alert-success\">\n",
|
|
" \n",
|
|
"Wie oft ist der Frosch im Schnitt in $l$, wie oft in $r$?\n",
|
|
"\n",
|
|
"</div>"
|
|
]
|
|
},
|
|
{
|
|
"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": [
|
|
"<div class=\"alert alert-warning\">\n",
|
|
"\n",
|
|
"**Warum** ist der Frosch im Schnitt 25% in $l$ und 75% in $r$?\n",
|
|
"\n",
|
|
"</div>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "3840a6f7",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
},
|
|
"tags": [
|
|
"hide_cell"
|
|
]
|
|
},
|
|
"source": [
|
|
"## Frösche Analysieren\n",
|
|
"\n",
|
|
"<div class=\"alert alert-info\">\n",
|
|
" \n",
|
|
"Die Wahrscheinlichkeiten für Wechsel sind\n",
|
|
" \n",
|
|
"$P(l \\to r) = p$ und $P(r \\to l) = q$\n",
|
|
"\n",
|
|
"</div>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "5bf90648",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
},
|
|
"tags": [
|
|
"hide_cell"
|
|
]
|
|
},
|
|
"source": [
|
|
"<div class=\"alert alert-success\">\n",
|
|
"\n",
|
|
"Wie können wir $P(\\text{Frosch links})$ für große $t$ vorraussagen?\n",
|
|
" \n",
|
|
"</div>"
|
|
]
|
|
},
|
|
{
|
|
"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$ | <span>$1$</span> | <span>$0$</span> |"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "74e64a9a",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "subslide"
|
|
}
|
|
},
|
|
"source": [
|
|
"## Frösche Analysieren\n",
|
|
"\n",
|
|
"<div class=\"alert alert-info\">\n",
|
|
" \n",
|
|
"Die Wahrscheinlichkeiten für Wechsel sind $P(l \\to r) = p$ und $P(r \\to l) = q$\n",
|
|
"\n",
|
|
"</div>\n",
|
|
"\n",
|
|
"<div class=\"alert alert-success\">\n",
|
|
"\n",
|
|
"Wie können wir $P(\\text{Frosch links})$ für große $t$ vorraussagen?\n",
|
|
" \n",
|
|
"</div>\n",
|
|
"\n",
|
|
"| $t$ | $P(\\text{ Frosch links zu }t)$ | $P(\\text{ Frosch rechts zu }t)$ |\n",
|
|
"| -------- | -------- | -------- |\n",
|
|
"| $0$ | <span>$1$</span> | <span>$0$</span> |\n",
|
|
"| <span>$1$</span> | <span>$1-p$</span> | <span>$p$</span> |\n",
|
|
"| <span>$2$</span> | <span>$(1-p)^2 + pq$</span> | <span>$p(1-p) + p(1-q)$</span>|"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "bce42c67",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
},
|
|
"tags": [
|
|
"hide_cell"
|
|
]
|
|
},
|
|
"source": [
|
|
"<div class=\"alert alert-info\">\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",
|
|
"</div>"
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
"<div class=\"alert alert-info\">\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",
|
|
"</div>"
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
"<div class=\"alert alert-info\">\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",
|
|
"</div>\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": [
|
|
"<div class=\"alert alert-info\">\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",
|
|
"</div>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "b4507aa2",
|
|
"metadata": {
|
|
"slideshow": {
|
|
"slide_type": "fragment"
|
|
}
|
|
},
|
|
"source": [
|
|
"<div class=\"alert alert-success\">\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",
|
|
"</div>"
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
"$$"
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
"$$"
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
"<div>\n",
|
|
" \n",
|
|
":::success\n",
|
|
"Die nächste Aktion hängt nur vom **aktuellen** Zustand ab.\n",
|
|
"Was davor geschah ist irrelevant.\n",
|
|
":::\n",
|
|
"</div> <!-- .element: class=\"fragment\" data-fragment-index=\"0\" -->\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": "Edit Metadata",
|
|
"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
|
|
}
|