{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Theoretische Informatik - Vorlesung 0 - Teil 2 Mengentheorie\n", "\n", "* April 2020\n", "* Michael Leuschel\n", "* Lehrstuhl Softwaretechnik und Programmiersprachen\n", "* Heinrich-Heine Universität Düsseldorf\n", "\n", "Grundlagen der Logik und Mengentheorie sind nicht im Skript.\n", "Hier definieren wir einige Grundlagen und Notationen die im Skript verwendet werden.\n", "Ein gutes Verständnis dieser Grundlagen und Notationen ist für das Verständnis des Skripts, aber auch anderer Teile der Informatik unumgänglich.\n", "\n", "Auswertung der Formeln erfolgt mit dem [Jupyter Kernel](https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel) für [ProB](https://www3.hhu.de/stups/prob)\n", "\n", "\n", "Um dieses Notebook zu starten kann man entweder selber Jupyter und den [ProB Kernel](https://gitlab.cs.uni-duesseldorf.de/general/stups/prob2-jupyter-kernel) installieren.\n", "Man kann aber auch die Notebooks vom Browser aus mit Binder starten (das dauert besonders beim ersten Mal etwas länger):\n", "\n", "[](https://mybinder.org/v2/git/https%3A%2F%2Fgitlab.cs.uni-duesseldorf.de%2Fgeneral%2Fstups%2Fprob-teaching-notebooks/master?filepath=info4%2Fkapitel-0%2FMengentheorie.ipynb)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Mengen\n", " \n", "Fundamentale Idee der Mengentheorie: \n", "\n", "* _\"Unter einer ‚Menge‘ verstehen wir jede Zusammenfassung M von bestimmten wohlunterschiedenen Objekten m unserer Anschauung oder unseres Denkens (welche die ‚Elemente‘ von M genannt werden) zu einem Ganzen.\"_ Georg Cantor (siehe [Textstelle als Bild in Wikipedia](https://de.wikipedia.org/wiki/Datei:Textstelle_mit_der_Mengendefinition_von_Georg_Cantor.png))\n", "* _\"The ability to regard any collection of objects as a single entity (i.e., as a set).\"_ (Keith Devlin. Joy of Sets. Springer-Verlag.)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "In der Regel gibt es eine Domäne an \"Objekten\" mit denen man Mengen bauen kann.\n", "Was genau diese Objekte sind interessiert uns in der Mengentheorie nicht.\n", "\n", "Fundamental sind diese beiden Symbole:\n", "* wenn $a$ ein Objekt ist und $x$ eine Menge, dann \n", " * ist $a \\in x$ wahr, wenn $a$ ein Element von $x$ ist\n", " * ist $a \\not\\in x$ wahr, wenn $a$ **kein** Element von $x$ ist.\n", "\n", "\n", "$\\in$ und $\\not\\in$ sind Prädikate, verbunden durch die Eigenschaft:\n", "* $\\forall(a,x).(a\\not\\in x \\Leftrightarrow \\neg(a \\in x))$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Die leere Menge und Gleichheit\n", "\n", "Eine besondere Menge ist die leere Menge $\\emptyset$.\n", "Sie hat keine Elemente:\n", " * $z = \\emptyset \\Leftrightarrow \\forall(a).(a\\not\\in z)$\n", "\n", "Zwei Mengen $x$ und $y$ sind gleich gdw sie die gleichen Elemente haben:\n", " * $\\forall(x,y).(x=y \\Leftrightarrow \\forall(a).(a\\in x \\Leftrightarrow a \\in y))$" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{FALSE}$" ], "text/plain": [ "FALSE" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "∅ = {1}" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{FALSE}$" ], "text/plain": [ "FALSE" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{1} = {1,2}" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$" ], "text/plain": [ "TRUE" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{1,2} = {2,1}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Notationen für Mengen: endliche Enumeration\n", " \n", "* explizite Auflistung aller Elemente $\\{a_1,\\ldots,a_n\\}$\n", "* die Reihenfolge spielt keine Rolle:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$" ], "text/plain": [ "TRUE" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{2,5,3} = {2,3,5}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Dies ist im Unterschied zu Tupeln und Listen oder Folgen, die oft mit runden und eckigen Klammern geschriben werden:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{FALSE}$" ], "text/plain": [ "FALSE" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(TRUE,5,3) = (TRUE,3,5) // Vergleich von zwei Tripeln" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{FALSE}$" ], "text/plain": [ "FALSE" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "[2,5,3] = [2,3,5] // Vergleich von zwei Folgen/Listen" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "* Elemente können in der Enumeration mehrfach auftauchen:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$" ], "text/plain": [ "TRUE" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{2,5,3,2,5} = {2,3,5}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Vereinigung, Schnitt, Differenz\n", "\n", "Drei wichtige Operationen auf Mengen sind wie folgt.\n", "\n", "Vereinigung von Mengen $\\cup$ :\n", " * $z = x\\cup y \\Leftrightarrow \\forall(a).(a\\in z \\Leftrightarrow (a\\in x \\vee a \\in y))$\n", "\n", "Schnitt von Mengen $\\cap$:\n", "* $z = x\\cap y \\Leftrightarrow \\forall(a).(a\\in z \\Leftrightarrow (a\\in x \\wedge a \\in y))$\n", "\n", "Differenz von Mengen $\\setminus$:\n", "* $z = x \\setminus y \\Leftrightarrow \\forall(a).(a\\in z \\Leftrightarrow (a\\in x \\wedge a \\not\\in y))$\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{2,3,5,7\\}$" ], "text/plain": [ "{2,3,5,7}" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{2,3,5} ∪ {5,7}" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{5\\}$" ], "text/plain": [ "{5}" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{2,3,5}∩{5,7}" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{2,3\\}$" ], "text/plain": [ "{2,3}" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{2,3,5}−{5,7}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Notationen für Mengen: per Prädikat\n", " \n", "Man kann die Elemente einer Menge auch durch ein Prädikat beschreiben:$\\{a \\mid P(a)\\}$.\n", "Es gilt:\n", "* $z = \\{a \\mid P(a)\\} \\Leftrightarrow \\forall(a).(a\\in z \\Leftrightarrow P(a))$\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{2,3,5\\}$" ], "text/plain": [ "{2,3,5}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{a | a>1 & a<6 & a≠4}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Man kann mit dieser Schreibweise auch unendliche Mengen darstellen:" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{\\mathit{a}\\mid \\mathit{a} > 10\\}$" ], "text/plain": [ "{a∣a > 10}" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{a | a>10}" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{2\\}$" ], "text/plain": [ "{2}" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{a | a mod 2 = 0} ∩ {2,3,5}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Man kann mit dieser Schreibweise auch die drei Mengenoperationen definieren:\n", "\n", "* $x \\cup y = \\{a \\mid a\\in x \\vee a\\in y\\}$\n", "* $x \\cap y = \\{a \\mid a\\in x \\wedge a\\in y\\}$\n", "* $x \\setminus y = \\{a \\mid a\\in x \\wedge a\\not\\in y\\}$" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$\n", "\n", "**Solution:**\n", "* $\\mathit{xy} = \\{2,3,5\\}$\n", "* $\\mathit{x} = \\{2,3\\}$\n", "* $\\mathit{y} = \\{2,5\\}$" ], "text/plain": [ "TRUE\n", "\n", "Solution:\n", "\txy = {2,3,5}\n", "\tx = {2,3}\n", "\ty = {2,5}" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = {2,3} & y = {2,5} & xy = {a| a∈x ∨ a∈y}" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$\n", "\n", "**Solution:**\n", "* $\\mathit{xy} = \\{2\\}$\n", "* $\\mathit{x} = \\{2,3\\}$\n", "* $\\mathit{y} = \\{2,5\\}$" ], "text/plain": [ "TRUE\n", "\n", "Solution:\n", "\txy = {2}\n", "\tx = {2,3}\n", "\ty = {2,5}" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = {2,3} & y = {2,5} & xy = {a| a∈x ∧ a∈y}" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$\n", "\n", "**Solution:**\n", "* $\\mathit{xy} = \\{3\\}$\n", "* $\\mathit{x} = \\{2,3\\}$\n", "* $\\mathit{y} = \\{2,5\\}$" ], "text/plain": [ "TRUE\n", "\n", "Solution:\n", "\txy = {3}\n", "\tx = {2,3}\n", "\ty = {2,5}" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x = {2,3} & y = {2,5} & xy = {a| a∈x ∧ a∉y}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Als Kürzel führen wir auch die Notation $a..b$ für $\\{x \\mid x \\geq a \\wedge x \\leq b\\}$ ein." ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,2,3,4,5,6,7,8,9,10\\}$" ], "text/plain": [ "{1,2,3,4,5,6,7,8,9,10}" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1..10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Ein Theorem (Distributivgesetz 1)\n", "\n", "Für alle Mengen $x$, $y$, $z$ gilt:\n", "* $x \\cup (y \\cap z) = (x\\cup y) \\cap (x\\cup z)$\n", "\n", "<img src=\"./img/Venn.svg\" width=\"300\">" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{2,3,44,55\\}$" ], "text/plain": [ "{2,3,44,55}" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{2,3,55}∪({2,44,77}∩{2,44,66})" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{2,3,44,55\\}$" ], "text/plain": [ "{2,3,44,55}" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "({2,3,55}∪{2,44,77})∩({2,3,55}∪{2,44,66})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Beweis von $x \\cup (y \\cap z) = (x\\cup y) \\cap (x\\cup z)$\n", "\n", "Für den Beweis benötigen wir diese Lemmata:\n", "1. $x \\cup y = \\{a \\mid a\\in x \\vee a\\in y\\}$\n", "2. $x \\cap y = \\{a \\mid a\\in x \\wedge a\\in y\\}$\n", "3. $a \\in \\{b \\mid P(b)\\} \\equiv P(a)$\n", "4. $\\phi \\vee (\\psi \\wedge \\rho) \\equiv (\\phi \\vee \\psi) \\wedge (\\phi \\vee \\rho)$\n", "\n", "Hier ist ein Äquivalenzbeweis (siehe vorherige Vorlesung): \n", "1. $m=x \\cup (y \\cap z)$\n", "2. (Lemma 1) $\\Longleftrightarrow$ $m=\\{a \\mid a\\in x \\vee a\\in (y \\cap z)\\}$ \n", "3. (Lemma 2) $\\Longleftrightarrow$ $m=\\{a \\mid a\\in x \\vee a\\in \\{b \\mid b\\in y \\wedge b\\in z\\} \\}$ \n", "4. (Lemma 3) $\\Longleftrightarrow$ $m=\\{a \\mid a\\in x \\vee (a\\in y \\wedge a\\in z) \\}$\n", "5. (Lemma 4) $\\Longleftrightarrow$ $m=\\{a \\mid (a\\in x \\vee a\\in y) \\wedge (a\\in x \\vee a\\in z) \\}$\n", "6. (Lemma 3, $\\Leftarrow$) $\\Longleftrightarrow$ $m=\\{a \\mid a\\in \\{b \\mid b\\in x \\vee b\\in y\\} \\wedge a\\in \\{b \\mid b\\in x \\vee b\\in z\\} \\}$\n", "7. (Lemma 1, $\\Leftarrow$) $\\Longleftrightarrow$ $m=\\{a \\mid a\\in x \\cup y \\wedge a\\in x \\cup z) \\}$\n", "8. (Lemma 2, $\\Leftarrow$) $m=(x\\cup y) \\cap (x\\cup z)$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Gesetze für $\\cap$, $\\cup$ und $\\setminus$\n", "\n", "Für alle Mengen $x$, $y$, $z$ gilt:\n", "* $x \\cup y = y \\cup x$ (Kommutativ 1)\n", "* $x \\cap y = y \\cap x$ (Kommutativ 2)\n", "* $x \\cup (y \\cup z) = (x\\cup y) \\cup z$ (Assoziativ 1)\n", "* $x \\cap (y \\cap z) = (x\\cap y) \\cap z$ (Assoziativ 2)\n", "* $x \\cup (y \\cap z) = (x\\cup y) \\cap (x\\cup z)$ (Distributiv 1, siehe oben)\n", "* $x \\cap (y \\cup z) = (x\\cap y) \\cup (x\\cap z)$ (Distributiv 2)\n", "* $z \\setminus (x \\cup y) = (z\\setminus x) \\cap (z\\setminus y)$ (De Morgan 1)\n", "* $z \\setminus (x \\cap y) = (z\\setminus x) \\cup (z\\setminus y)$ (De Morgan 2)\n", "* $x \\cup \\emptyset = x$ (Leere Menge 1)\n", "* $x \\cap \\emptyset = \\emptyset$ (Leere Menge 2)\n", "* $x \\cap (z \\setminus x) = \\emptyset$ (Leere Menge 3)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,3,7,9\\}$" ], "text/plain": [ "{1,3,7,9}" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(1..10) \\ ({2,4,6,8} ∪ {5,10}) // De Morgan 1 - linke Seite" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,3,5,7,9,10\\}$" ], "text/plain": [ "{1,3,5,7,9,10}" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(1..10) \\ {2,4,6,8}" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,2,3,4,6,7,8,9\\}$" ], "text/plain": [ "{1,2,3,4,6,7,8,9}" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(1..10) \\ {5,10}" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,3,7,9\\}$" ], "text/plain": [ "{1,3,7,9}" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "((1..10) \\ {2,4,6,8}) ∩ ((1..10) \\ {5,10}) // De Morgan 1 - rechte Seite" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Gesetze von De Morgan haben wir auch schon in der Aussagenlogik gesehen.\n", "Auch hier haben diese die Form wo ein Ausdruck \n", "* $Op1( x ~ Op2 ~ y)$\n", "umgewandelt wird in einen Ausdruck\n", "* $Op1(x) ~ Op2' ~ Op1(y)$\n", "wo Op2' der duale Operator von Op2 ist." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Hier ein Beispiel für das letzte Gesetz:" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\emptyset$" ], "text/plain": [ "∅" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{2,4} ∩ (ℤ \\ {2,4})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Teilmenge\n", "\n", "\n", "Eine Menge $x$ ist eine Teilmenge oder Untermenge von $y$ wenn gilt:\n", "* $\\forall a. a\\in x \\Rightarrow a \\in y$\n", "\n", "Wir benutzen diese Schreibweise $x \\subseteq y$.\n", "In diesem Fall ist $y$ auch eine Obermenge von $x$, geschrieben als $y \\supseteq x$.\n", "\n", "Für die echte Teilmenge benutzen wir folgende Schreibweise und Definition:\n", "* $x \\subset y$ $\\Leftrightarrow$ $(x \\subseteq y \\wedge x\\neq y)$." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\newcommand{\\upto}{\\mathbin{.\\mkern1mu.}}\\mathit{TRUE}$\n", "\n", "**Solution:**\n", "* $\\mathit{x} = \\{1,3\\}$\n", "* $\\mathit{y} = (1 \\upto 5)$" ], "text/plain": [ "TRUE\n", "\n", "Solution:\n", "\tx = {1,3}\n", "\ty = (1 ‥ 5)" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x={1,3} ∧ y = 1..5 ∧ ∀a.(a∈x ⇒ a∈y)" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{FALSE}$" ], "text/plain": [ "FALSE" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "x={1,3} ∧ y = 1..5 ∧ ∀a.(a∈y ⇒ a∈x)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$" ], "text/plain": [ "TRUE" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{1,3} ⊂ 1..5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Kardinalität\n", "\n", "Die Anzahl der Elemente einer Menge $x$ schreiben wir als \n", "* $\\mid x\\mid$ oder auch als $card(x)$ (B Schreibweise)." ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$3$" ], "text/plain": [ "3" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card({1,2,3})" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$3$" ], "text/plain": [ "3" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card({1,1,2,3,2})" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$0$" ], "text/plain": [ "0" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card(∅)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Achtung, die Kardinalität kann auch unendlich sein: je nach Formalismus, ist folgender Ausdruck entweder unendlich oder nicht wohl definiert: $\\mid \\{x \\mid x>0\\} \\mid$" ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [ { "ename": "CommandExecutionException", "evalue": ":eval: NOT-WELL-DEFINED: \ncard applied to very large set, cardinality not representable in ProB: closure([x],[integer],b(greater(b(identifier(...),integer,[...]),b(value(...),integer,[...])),pred,[nodeid(pos(...))]))\n\n", "output_type": "error", "traceback": [ "\u001b[1m\u001b[31m:eval: NOT-WELL-DEFINED: \u001b[0m", "\u001b[1m\u001b[31mcard applied to very large set, cardinality not representable in ProB: closure([x],[integer],b(greater(b(identifier(...),integer,[...]),b(value(...),integer,[...])),pred,[nodeid(pos(...))]))\u001b[0m" ] } ], "source": [ "card({x|x>0})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# SEND+MORE=MONEY\n", "\n", "Als Übung und Beispiel versuchen wir nun ein Problem zu lösen.\n", "Es handelt sich um ein klassisches arithmetisches Puzzle wo acht unterschiedliche Ziffern gefunden werden sollen die folgende Gleichung erfüllen:\n", "\n", "| | | | | |\n", "|---|---|---|---|---|\n", "| | S | E | N | D |\n", "| + | M | O | R | E |\n", " |\n", "|= M| O | N | E | Y |\n", "| | | | | |\n", "\n", "Wir können dies nun in Logik, Mengentheorie und Arithmetik modellieren und lösen.\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wir haben acht Ziffern:" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$\n", "\n", "**Solution:**\n", "* $\\mathit{R} = 0$\n", "* $\\mathit{S} = 0$\n", "* $\\mathit{D} = 0$\n", "* $\\mathit{E} = 0$\n", "* $\\mathit{Y} = 0$\n", "* $\\mathit{M} = 0$\n", "* $\\mathit{N} = 0$\n", "* $\\mathit{O} = 0$" ], "text/plain": [ "TRUE\n", "\n", "Solution:\n", "\tR = 0\n", "\tS = 0\n", "\tD = 0\n", "\tE = 0\n", "\tY = 0\n", "\tM = 0\n", "\tN = 0\n", "\tO = 0" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{S,E,N,D,M,O,R,Y} ⊆ 0..9" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "diese Ziffern sind alle unterschiedlich:" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$\n", "\n", "**Solution:**\n", "* $\\mathit{R} = 2$\n", "* $\\mathit{S} = 0$\n", "* $\\mathit{D} = 5$\n", "* $\\mathit{E} = 7$\n", "* $\\mathit{Y} = 1$\n", "* $\\mathit{M} = 4$\n", "* $\\mathit{N} = 6$\n", "* $\\mathit{O} = 3$" ], "text/plain": [ "TRUE\n", "\n", "Solution:\n", "\tR = 2\n", "\tS = 0\n", "\tD = 5\n", "\tE = 7\n", "\tY = 1\n", "\tM = 4\n", "\tN = 6\n", "\tO = 3" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{S,E,N,D,M,O,R,Y} ⊆ 0..9 ∧\n", "card({S,E,N,D,M,O,R,Y}) = 8" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "und wobei die zwei führenden Ziffern S und M ungleich 0 sind:" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$\n", "\n", "**Solution:**\n", "* $\\mathit{R} = 3$\n", "* $\\mathit{S} = 2$\n", "* $\\mathit{D} = 5$\n", "* $\\mathit{E} = 7$\n", "* $\\mathit{Y} = 0$\n", "* $\\mathit{M} = 1$\n", "* $\\mathit{N} = 6$\n", "* $\\mathit{O} = 4$" ], "text/plain": [ "TRUE\n", "\n", "Solution:\n", "\tR = 3\n", "\tS = 2\n", "\tD = 5\n", "\tE = 7\n", "\tY = 0\n", "\tM = 1\n", "\tN = 6\n", "\tO = 4" ] }, "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{S,E,N,D,M,O,R,Y} ⊆ 0..9 ∧ card({S,E,N,D,M,O,R,Y}) = 8 ∧\n", "S ≠ 0 ∧ M ≠ 0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "und wo die Summe von SEND+MORE MONEY ergibt:" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$\n", "\n", "**Solution:**\n", "* $\\mathit{R} = 8$\n", "* $\\mathit{S} = 9$\n", "* $\\mathit{D} = 7$\n", "* $\\mathit{E} = 5$\n", "* $\\mathit{Y} = 2$\n", "* $\\mathit{M} = 1$\n", "* $\\mathit{N} = 6$\n", "* $\\mathit{O} = 0$" ], "text/plain": [ "TRUE\n", "\n", "Solution:\n", "\tR = 8\n", "\tS = 9\n", "\tD = 7\n", "\tE = 5\n", "\tY = 2\n", "\tM = 1\n", "\tN = 6\n", "\tO = 0" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{S,E,N,D,M,O,R,Y} ⊆ 0..9 ∧ card({S,E,N,D,M,O,R,Y}) = 8 ∧ S ≠ 0 & M ≠ 0 ∧\n", " S*1000 + E*100 + N*10 + D +\n", " M*1000 + O*100 + R*10 + E =\n", " M*10000 + O*1000 + N*100 + E*10 + Y" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Aber ist dies die einzige Lösung ? Wir können einfach die Menge aller Lösungen berechnen:" ] }, { "cell_type": "code", "execution_count": 36, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(9\\mapsto 5\\mapsto 6\\mapsto 7\\mapsto 1\\mapsto 0\\mapsto 8\\mapsto 2)\\}$" ], "text/plain": [ "{(9↦5↦6↦7↦1↦0↦8↦2)}" ] }, "execution_count": 36, "metadata": {}, "output_type": "execute_result" } ], "source": [ " {S,E,N,D, M,O,R, Y |\n", " {S,E,N,D, M,O,R, Y} ⊆ 0..9 ∧ S >0 ∧ M >0 ∧ \n", " card({S,E,N,D, M,O,R, Y}) = 8 ∧ \n", " S*1000 + E*100 + N*10 + D +\n", " M*1000 + O*100 + R*10 + E =\n", " M*10000 + O*1000 + N*100 + E*10 + Y }" ] }, { "cell_type": "code", "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "|S|E|N|D|M|O|R|Y|\n", "|---|---|---|---|---|---|---|---|\n", "|$9$|$5$|$6$|$7$|$1$|$0$|$8$|$2$|\n" ], "text/plain": [ "S\tE\tN\tD\tM\tO\tR\tY\n", "9\t5\t6\t7\t1\t0\t8\t2\n" ] }, "execution_count": 37, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":table {S,E,N,D, M,O,R, Y |\n", " {S,E,N,D, M,O,R, Y} ⊆ 0..9 ∧ S >0 ∧ M >0 ∧ \n", " card({S,E,N,D, M,O,R, Y}) = 8 ∧ \n", " S*1000 + E*100 + N*10 + D +\n", " M*1000 + O*100 + R*10 + E =\n", " M*10000 + O*1000 + N*100 + E*10 + Y }" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "| | | | | |\n", "|---|---|---|---|---|\n", "| | S=9 | E=5 | N=6 | D=7 |\n", "| + | M=1 | O=0 | R=8 | E=5 |\n", " |\n", "|= M=1| O=0 | N=6 | E=5 | Y=2 |\n", "| | | | | |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ein anderes arithmetisches Puzzle ist KISS*KISS=PASSION." ] }, { "cell_type": "code", "execution_count": 38, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "|K|I|S|P|A|O|N|\n", "|---|---|---|---|---|---|---|\n", "|$2$|$0$|$3$|$4$|$1$|$8$|$9$|\n" ], "text/plain": [ "K\tI\tS\tP\tA\tO\tN\n", "2\t0\t3\t4\t1\t8\t9\n" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":table {K, I, S, P, A, O, N |\n", " {K,P} ⊆ 1..9 ∧\n", " {I,S,A,O,N} ⊆ 0..9 ∧\n", " (1000*K+100*I+10*S+S) * (1000*K+100*I+10*S+S) \n", " = 1000000*P+100000*A+10000*S+1000*S+100*I+10*O+N &\n", " card({K, I, S, P, A, O, N}) = 7}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Mengen von Mengen\n", "\n", "Mengen können selber auch Mengen beinhalten\n", "Dies sind alles unterschiedliche Mengen:\n", "* $\\{\\{2\\},\\{3,4\\}\\}$\n", "* $\\{\\{2,3\\},\\{4\\}\\}$\n", "* $\\{\\{2,3\\},\\{3,4\\}\\}$\n", "* $\\{\\{2,3,4\\}\\}$\n", "* $\\{2,3,4\\}$ \n", "\n", "Wir haben zum Beispiel:\n", "* $\\mathit{card}(\\{\\{2,3,4\\}\\}) = 1$\n", "* $\\mathit{card}(\\{\\{2\\},\\{3,4\\}\\}) = 2$\n", "* $\\mathit{card}(\\{2,3,4\\}) = 3$\n", "* $\\{2\\} \\in \\{\\{2\\},\\{3,4\\}\\} $\n", "* $\\{2\\} \\not\\in \\{\\{2,3\\},\\{4\\}\\} $" ] }, { "cell_type": "code", "execution_count": 39, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$3$" ], "text/plain": [ "3" ] }, "execution_count": 39, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card({2,3,4})" ] }, { "cell_type": "code", "execution_count": 40, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$1$" ], "text/plain": [ "1" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card({{2,3,4}})" ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$2$" ], "text/plain": [ "2" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card({{2},{3,4}})" ] }, { "cell_type": "code", "execution_count": 42, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$" ], "text/plain": [ "TRUE" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{2} ∈ {{2}, {3,4}}" ] }, { "cell_type": "code", "execution_count": 43, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{FALSE}$" ], "text/plain": [ "FALSE" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{2} ∈ {{2,3}, {4}}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Mengen von Mengen und die leere Menge\n", "\n", "Achtung: man muss die leere Menge von der Menge die die leere Menge beinhaltet unterscheiden:\n", "* $\\emptyset \\neq \\{\\emptyset\\}$" ] }, { "cell_type": "code", "execution_count": 44, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{FALSE}$" ], "text/plain": [ "FALSE" ] }, "execution_count": 44, "metadata": {}, "output_type": "execute_result" } ], "source": [ "∅ = {∅}" ] }, { "cell_type": "code", "execution_count": 45, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$0$" ], "text/plain": [ "0" ] }, "execution_count": 45, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card(∅)" ] }, { "cell_type": "code", "execution_count": 46, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$1$" ], "text/plain": [ "1" ] }, "execution_count": 46, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card({∅})" ] }, { "cell_type": "code", "execution_count": 47, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$" ], "text/plain": [ "TRUE" ] }, "execution_count": 47, "metadata": {}, "output_type": "execute_result" } ], "source": [ "∅ ∈ {∅}" ] }, { "cell_type": "code", "execution_count": 48, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{FALSE}$" ], "text/plain": [ "FALSE" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "∅ ∈ ∅" ] }, { "cell_type": "code", "execution_count": 49, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$" ], "text/plain": [ "TRUE" ] }, "execution_count": 49, "metadata": {}, "output_type": "execute_result" } ], "source": [ "∅ ∉ ∅" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Potenzmenge\n", "Die Menge aller Untermengen einer Menge $A$ schreiben wir als $ℙ(\\mathit{A}) $ oder auch als $2^{A}$." ] }, { "cell_type": "code", "execution_count": 50, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\{\\emptyset,\\{1\\},\\{1,2\\},\\{2\\}\\}$" ], "text/plain": [ "{∅,{1},{1,2},{2}}" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ℙ({1,2})" ] }, { "cell_type": "code", "execution_count": 51, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\{\\emptyset\\}$" ], "text/plain": [ "{∅}" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ℙ(∅)" ] }, { "cell_type": "code", "execution_count": 52, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\{\\emptyset,\\{1\\},\\{1,2\\},\\{1,3\\},\\{2\\},\\{1,2,3\\},\\{2,3\\},\\{3\\}\\}$" ], "text/plain": [ "{∅,{1},{1,2},{1,3},{2},{1,2,3},{2,3},{3}}" ] }, "execution_count": 52, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ℙ(1..3)" ] }, { "cell_type": "code", "execution_count": 53, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "|Elements|\n", "|---|\n", "|$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\emptyset$|\n", "|$\\{1\\}$|\n", "|$\\{1,2\\}$|\n", "|$\\{1,3\\}$|\n", "|$\\{2\\}$|\n", "|$\\{1,2,3\\}$|\n", "|$\\{2,3\\}$|\n", "|$\\{3\\}$|\n" ], "text/plain": [ "Elements\n", "{}\n", "{1}\n", "{1,2}\n", "{1,3}\n", "{2}\n", "{1,2,3}\n", "{2,3}\n", "{3}\n" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":table ℙ(1..3)" ] }, { "cell_type": "code", "execution_count": 54, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "|Elements|\n", "|---|\n", "|$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\emptyset$|\n", "|$\\{\\emptyset\\}$|\n", "|$\\{\\emptyset,\\{1\\}\\}$|\n", "|$\\{\\{1\\}\\}$|\n" ], "text/plain": [ "Elements\n", "{}\n", "{{}}\n", "{{},{1}}\n", "{{1}}\n" ] }, "execution_count": 54, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":table ℙ(ℙ({1}))" ] }, { "cell_type": "code", "execution_count": 55, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$8$" ], "text/plain": [ "8" ] }, "execution_count": 55, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card(ℙ(1..3))" ] }, { "cell_type": "code", "execution_count": 56, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$1024$" ], "text/plain": [ "1024" ] }, "execution_count": 56, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card(ℙ(1..10))" ] }, { "cell_type": "code", "execution_count": 57, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$1267650600228229401496703205376$" ], "text/plain": [ "1267650600228229401496703205376" ] }, "execution_count": 57, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card(ℙ(1..100))" ] }, { "cell_type": "code", "execution_count": 58, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$340282366920938463463374607431768211456$" ], "text/plain": [ "340282366920938463463374607431768211456" ] }, "execution_count": 58, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card(ℙ(ℙ(1..7)))" ] }, { "cell_type": "code", "execution_count": 59, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$115792089237316195423570985008687907853269984665640564039457584007913129639936$" ], "text/plain": [ "115792089237316195423570985008687907853269984665640564039457584007913129639936" ] }, "execution_count": 59, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card(ℙ(ℙ(ℙ(1..3))))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Relationen in der Mengentheorie\n", "* Was ist eine Relation?\n", "* Wie kann man Relationen in Mengentheorie und Logik abbilden?\n", "\n", "* https://en.wikipedia.org/wiki/Finitary\\_relation}:\n", " * _In set theory and logic, a relation is a property that assigns truth values to k-tuples of individuals. Typically, the property describes a possible connection between the components of a k-tuple._\n", "\n", "* k-Tupel: $(1,2)$ (k=2, Paar)\n", "* Eine Relation weist k-Tupeln Wahrheitswerte zu: \n", " * Beispiel: $(1,2) \\mapsto TRUE$, $(2,1) \\mapsto FALSE$.\n", "\n", "## Unäre Relationen\n", "\n", "Eine unäre Relation über $x$ entspricht einfach einer Untermenge von $x$:\n", "* die Menge an Werten für die die Relation wahr ist.\n", "\n", "Beispiele:\n", "* Relation ``Ziffer'' über die ganzen Zahlen ist\n", " * $0 .. 9 \\subseteq$ ℤ\n", "* Relation ``Gt0'' über die ganzen Zahlen ist\n", " * $\\{ \\mathit{x}|\\mathit{x} \\in $ℤ $\\wedge \\mathit{x} > 0\\} \\subseteq$ ℤ.\n", "* Relation ``Gerade'' über die ganzen Zahlen ist\n", " * $\\{ \\mathit{x}|\\mathit{x} \\in $ ℤ $\\wedge \\mathit{x} \\mod 2 = 0\\} \\subseteq$ ℤ.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "## Relationen vs Prädikate\n", "Eine Relation ist die explizite Darstellung eines Prädikats als Menge:\n", " \n", "* Prädikate können mit logischen Junktoren und Quantoren verarbeitet werden:\n", " * $\\exists x. is\\_rich(x)$, $\\forall x.(is\\_poor(x) \\Rightarrow \\neg is\\_rich(x))$\n", " \n", "* Relationen können mit mengentheoretischen Operationen verarbeitet werden:\n", " * $rich \\neq \\emptyset$, $rich \\cap poor = \\emptyset$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Kartesisches Produkt und Paare\n", "\n", "Das kartesische Produkt $x \\times y$ zweier Mengen $x$ und $y$ ist definiert als\n", "* $\\{ (a,b) \\mid a\\in x \\wedge b\\in y\\}$.\n", "\n", "$(a,b)$ steht hier für ein geordnetes Paar,\n", " d.h. $(1 \\mapsto 2) \\neq (2 \\mapsto 1) $. \n", "Wir schreiben manchmal auch $a \\mapsto b$ anstatt $(a,b)$." ] }, { "cell_type": "code", "execution_count": 60, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 4),(1\\mapsto 5),(2\\mapsto 4),(2\\mapsto 5)\\}$" ], "text/plain": [ "{(1↦4),(1↦5),(2↦4),(2↦5)}" ] }, "execution_count": 60, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(1 .. 2) × (4 .. 5)" ] }, { "cell_type": "code", "execution_count": 61, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 4),(2\\mapsto 4)\\}$" ], "text/plain": [ "{(1↦4),(2↦4)}" ] }, "execution_count": 61, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(1 .. 2) × {4}" ] }, { "cell_type": "code", "execution_count": 62, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto \\mathit{FALSE}),(1\\mapsto \\mathit{TRUE}),(2\\mapsto \\mathit{FALSE}),(2\\mapsto \\mathit{TRUE})\\}$" ], "text/plain": [ "{(1↦FALSE),(1↦TRUE),(2↦FALSE),(2↦TRUE)}" ] }, "execution_count": 62, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(1 .. 2) × BOOL" ] }, { "cell_type": "code", "execution_count": 63, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 1),(1\\mapsto 2),(1\\mapsto 3),(2\\mapsto 1),(2\\mapsto 2),(2\\mapsto 3),(3\\mapsto 1),(3\\mapsto 2),(3\\mapsto 3)\\}$" ], "text/plain": [ "{(1↦1),(1↦2),(1↦3),(2↦1),(2↦2),(2↦3),(3↦1),(3↦2),(3↦3)}" ] }, "execution_count": 63, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(1 .. 3) × (1 .. 3)" ] }, { "cell_type": "code", "execution_count": 64, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$100$" ], "text/plain": [ "100" ] }, "execution_count": 64, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card((1..10)×(1..10))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Das Kartesische Produkt ist nicht kommutativ:" ] }, { "cell_type": "code", "execution_count": 65, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(2\\mapsto 3)\\}$" ], "text/plain": [ "{(2↦3)}" ] }, "execution_count": 65, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{2}×{3}" ] }, { "cell_type": "code", "execution_count": 66, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(3\\mapsto 2)\\}$" ], "text/plain": [ "{(3↦2)}" ] }, "execution_count": 66, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{3}×{2}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Es gilt:\n", "* $A \\times B = \\emptyset \\equiv (A = \\emptyset \\vee B=\\emptyset)$.\n", "Das Kartesische Produkt wird auch Kreuzmenge oder Produktmenge genannt." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Binäre Relationen\n", "\n", "Eine binäre Relation über $x$ und $y$ ist eine Untermenge des kartesischen Produkts $x \\times y$ zweier Mengen. Die Mengen $x$ und $y$ können identisch sein.\n", "\n", "Beispiel: die Relation ``kleiner'' über die Ziffern $0..9$:\n" ] }, { "cell_type": "code", "execution_count": 67, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(0\\mapsto 1),(0\\mapsto 2),(0\\mapsto 3),(0\\mapsto 4),(0\\mapsto 5),(0\\mapsto 6),(0\\mapsto 7),(0\\mapsto 8),(0\\mapsto 9),(1\\mapsto 2),(1\\mapsto 3),(1\\mapsto 4),(1\\mapsto 5),(1\\mapsto 6),(1\\mapsto 7),(1\\mapsto 8),(1\\mapsto 9),(2\\mapsto 3),(2\\mapsto 4),(2\\mapsto 5),(2\\mapsto 6),(2\\mapsto 7),(2\\mapsto 8),(2\\mapsto 9),(3\\mapsto 4),(3\\mapsto 5),(3\\mapsto 6),(3\\mapsto 7),(3\\mapsto 8),(3\\mapsto 9),(4\\mapsto 5),(4\\mapsto 6),(4\\mapsto 7),(4\\mapsto 8),(4\\mapsto 9),(5\\mapsto 6),(5\\mapsto 7),(5\\mapsto 8),(5\\mapsto 9),(6\\mapsto 7),(6\\mapsto 8),(6\\mapsto 9),(7\\mapsto 8),(7\\mapsto 9),(8\\mapsto 9)\\}$" ], "text/plain": [ "{(0↦1),(0↦2),(0↦3),(0↦4),(0↦5),(0↦6),(0↦7),(0↦8),(0↦9),(1↦2),(1↦3),(1↦4),(1↦5),(1↦6),(1↦7),(1↦8),(1↦9),(2↦3),(2↦4),(2↦5),(2↦6),(2↦7),(2↦8),(2↦9),(3↦4),(3↦5),(3↦6),(3↦7),(3↦8),(3↦9),(4↦5),(4↦6),(4↦7),(4↦8),(4↦9),(5↦6),(5↦7),(5↦8),(5↦9),(6↦7),(6↦8),(6↦9),(7↦8),(7↦9),(8↦9)}" ] }, "execution_count": 67, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{a,b| (a,b)∈(0..9)×(0..9) ∧ a<b}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Diese Relation ist eine Untermenge von ℤ×ℤ.\n", "Ein anderes Beispiel ist die Relation ``halb'' über die ganzen Zahlen $1..10$:" ] }, { "cell_type": "code", "execution_count": 68, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(2\\mapsto 1),(4\\mapsto 2),(6\\mapsto 3),(8\\mapsto 4),(10\\mapsto 5)\\}$" ], "text/plain": [ "{(2↦1),(4↦2),(6↦3),(8↦4),(10↦5)}" ] }, "execution_count": 68, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{a,b| a∈1..10 ∧ b∈1..10 ∧ b*2=a}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Eine binäre Relation kann auch als gerichteter Graph angesehen werden:" ] }, { "cell_type": "code", "execution_count": 69, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"210pt\" height=\"305pt\"\n", " viewBox=\"0.00 0.00 210.00 305.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 301)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-301 206,-301 206,4 -4,4\"/>\n", "<!-- 10 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>10</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-297 0,-297 0,-261 54,-261 54,-297\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n", "</g>\n", "<!-- 5 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>5</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-210 0,-210 0,-174 54,-174 54,-210\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", "</g>\n", "<!-- 10->5 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>10->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M27,-260.8C27,-249.16 27,-233.55 27,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"30.5,-220.18 27,-210.18 23.5,-220.18 30.5,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"42.5\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">halb</text>\n", "</g>\n", "<!-- 8 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>8</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-297 72,-297 72,-261 126,-261 126,-297\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", "</g>\n", "<!-- 4 -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>4</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-210 72,-210 72,-174 126,-174 126,-210\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", "</g>\n", "<!-- 8->4 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>8->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M99,-260.8C99,-249.16 99,-233.55 99,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.5,-220.18 99,-210.18 95.5,-220.18 102.5,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"114.5\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">halb</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node7\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-123 72,-123 72,-87 126,-87 126,-123\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 4->2 -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>4->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M99,-173.8C99,-162.16 99,-146.55 99,-133.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.5,-133.18 99,-123.18 95.5,-133.18 102.5,-133.18\"/>\n", "<text text-anchor=\"middle\" x=\"114.5\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">halb</text>\n", "</g>\n", "<!-- 6 -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>6</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"198,-297 144,-297 144,-261 198,-261 198,-297\"/>\n", "<text text-anchor=\"middle\" x=\"171\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", "</g>\n", "<!-- 3 -->\n", "<g id=\"node6\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"198,-210 144,-210 144,-174 198,-174 198,-210\"/>\n", "<text text-anchor=\"middle\" x=\"171\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 6->3 -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>6->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M171,-260.8C171,-249.16 171,-233.55 171,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"174.5,-220.18 171,-210.18 167.5,-220.18 174.5,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"186.5\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">halb</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node8\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-36 72,-36 72,0 126,0 126,-36\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 2->1 -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>2->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M99,-86.8C99,-75.16 99,-59.55 99,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.5,-46.18 99,-36.18 95.5,-46.18 102.5,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"114.5\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">halb</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [(\"halb\",{a,b|a:1..10 & b:1..10 & b*2=a})]>" ] }, "execution_count": 69, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"halb\",{a,b| a∈1..10 ∧ b∈1..10 & b*2=a})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Die Typen der Elemente kann abweichen.\n", "Zum Beispiel die Relation ``durch drei teilbar'' über die ganzen Zahlen $1..7$ zum Datentypen $STRING$" ] }, { "cell_type": "code", "execution_count": 70, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto\\text{\"nein\"}),(2\\mapsto\\text{\"nein\"}),(3\\mapsto\\text{\"ja\"}),(4\\mapsto\\text{\"nein\"}),(5\\mapsto\\text{\"nein\"}),(6\\mapsto\\text{\"ja\"}),(7\\mapsto\\text{\"nein\"})\\}$" ], "text/plain": [ "{(1↦\"nein\"),(2↦\"nein\"),(3↦\"ja\"),(4↦\"nein\"),(5↦\"nein\"),(6↦\"ja\"),(7↦\"nein\")}" ] }, "execution_count": 70, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{x,y| x:1..7 ∧ (x mod 3 =0 => y = \"ja\") ∧ (x mod 3 >0 => y= \"nein\")}" ] }, { "cell_type": "code", "execution_count": 71, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"499pt\" height=\"131pt\"\n", " viewBox=\"0.00 0.00 499.00 131.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 127)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-127 495,-127 495,4 -4,4\"/>\n", "<!-- 7 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>7</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-123 0,-123 0,-87 54,-87 54,-123\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", "</g>\n", "<!-- "nein" -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>"nein"</title>\n", "<polygon fill=\"#fff68f\" stroke=\"#fff68f\" points=\"201.5,-36 140.5,-36 140.5,0 201.5,0 201.5,-36\"/>\n", "<text text-anchor=\"middle\" x=\"171\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">"nein"</text>\n", "</g>\n", "<!-- 7->"nein" -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>7->"nein"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M33.8,-86.94C38.95,-76.08 47.01,-62.5 58,-54 78.95,-37.81 107.46,-29.05 130.6,-24.34\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"131.28,-27.77 140.47,-22.51 130,-20.89 131.28,-27.77\"/>\n", "<text text-anchor=\"middle\" x=\"82\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">teilbar</text>\n", "</g>\n", "<!-- 6 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>6</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"414,-123 360,-123 360,-87 414,-87 414,-123\"/>\n", "<text text-anchor=\"middle\" x=\"387\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", "</g>\n", "<!-- "ja" -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>"ja"</title>\n", "<polygon fill=\"#fff68f\" stroke=\"#fff68f\" points=\"450,-36 396,-36 396,0 450,0 450,-36\"/>\n", "<text text-anchor=\"middle\" x=\"423\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">"ja"</text>\n", "</g>\n", "<!-- 6->"ja" -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>6->"ja"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M384.71,-86.66C384.11,-76.72 384.61,-64.22 389,-54 390.49,-50.53 392.5,-47.2 394.79,-44.08\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"397.58,-46.2 401.38,-36.31 392.24,-41.67 397.58,-46.2\"/>\n", "<text text-anchor=\"middle\" x=\"413\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">teilbar</text>\n", "</g>\n", "<!-- 5 -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>5</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-123 72,-123 72,-87 126,-87 126,-123\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", "</g>\n", "<!-- 5->"nein" -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>5->"nein"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M103.07,-86.93C106.17,-76.59 111.25,-63.6 119,-54 122.77,-49.34 127.32,-45.06 132.15,-41.22\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"134.42,-43.89 140.44,-35.17 130.3,-38.23 134.42,-43.89\"/>\n", "<text text-anchor=\"middle\" x=\"143\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">teilbar</text>\n", "</g>\n", "<!-- 4 -->\n", "<g id=\"node6\" class=\"node\">\n", "<title>4</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"198,-123 144,-123 144,-87 198,-87 198,-123\"/>\n", "<text text-anchor=\"middle\" x=\"171\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", "</g>\n", "<!-- 4->"nein" -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>4->"nein"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M171,-86.8C171,-75.16 171,-59.55 171,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"174.5,-46.18 171,-36.18 167.5,-46.18 174.5,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"195\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">teilbar</text>\n", "</g>\n", "<!-- 3 -->\n", "<g id=\"node7\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"486,-123 432,-123 432,-87 486,-87 486,-123\"/>\n", "<text text-anchor=\"middle\" x=\"459\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 3->"ja" -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>3->"ja"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M451.71,-86.8C446.69,-74.93 439.91,-58.93 434.2,-45.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"437.4,-44.02 430.27,-36.18 430.95,-46.75 437.4,-44.02\"/>\n", "<text text-anchor=\"middle\" x=\"467\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">teilbar</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node8\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"270,-123 216,-123 216,-87 270,-87 270,-123\"/>\n", "<text text-anchor=\"middle\" x=\"243\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 2->"nein" -->\n", "<g id=\"edge6\" class=\"edge\">\n", "<title>2->"nein"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M238.11,-86.98C234.54,-76.67 228.94,-63.68 221,-54 217.51,-49.75 213.39,-45.79 209.02,-42.17\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"211.07,-39.33 201,-36.03 206.82,-44.89 211.07,-39.33\"/>\n", "<text text-anchor=\"middle\" x=\"253\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">teilbar</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node9\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"342,-123 288,-123 288,-87 342,-87 342,-123\"/>\n", "<text text-anchor=\"middle\" x=\"315\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 1->"nein" -->\n", "<g id=\"edge7\" class=\"edge\">\n", "<title>1->"nein"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M307.14,-86.97C301.32,-76.11 292.44,-62.54 281,-54 260.8,-38.93 233.91,-30.22 211.77,-25.26\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"212.47,-21.83 201.97,-23.24 211.05,-28.69 212.47,-21.83\"/>\n", "<text text-anchor=\"middle\" x=\"318\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">teilbar</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [(\"teilbar\",{x,y|x:1..7 & (x mod 3=0 => y=\"ja\") & (x mod 3>0 => y=\"nein\")})]>" ] }, "execution_count": 71, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"teilbar\",{x,y| x:1..7 ∧ (x mod 3 =0 => y = \"ja\") ∧ (x mod 3 >0 => y= \"nein\")})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Das Kartesische Produkt stellt die Relation dar, die immer wahr ist (für die angegebenen Basismengen). Als Graph ist dies der [vollständige Graph](https://de.wikipedia.org/wiki/Vollständiger_Graph) über die Basismengen:" ] }, { "cell_type": "code", "execution_count": 72, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Preference changed: DOT_ENGINE = circo\n" ] }, "execution_count": 72, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":pref DOT_ENGINE=circo" ] }, { "cell_type": "code", "execution_count": 73, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"281pt\" height=\"235pt\"\n", " viewBox=\"0.00 0.00 281.39 234.72\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 230.72)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-230.72 277.39,-230.72 277.39,4 -4,4\"/>\n", "<!-- 5 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>5</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"166.1,-36 112.1,-36 112.1,0 166.1,0 166.1,-36\"/>\n", "<text text-anchor=\"middle\" x=\"139.1\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", "</g>\n", "<!-- 5->5 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>5->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M166.34,-24.74C176.13,-24.89 184.1,-22.64 184.1,-18 184.1,-15.17 181.14,-13.23 176.61,-12.18\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"176.62,-8.67 166.34,-11.26 175.99,-15.64 176.62,-8.67\"/>\n", "<text text-anchor=\"middle\" x=\"194.1\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 4 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>4</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"235.39,-131.36 181.39,-131.36 181.39,-95.36 235.39,-95.36 235.39,-131.36\"/>\n", "<text text-anchor=\"middle\" x=\"208.39\" y=\"-109.66\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", "</g>\n", "<!-- 5->4 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>5->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M146.1,-36.33C154.53,-50.75 168.71,-70.94 181.47,-87.06\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"178.95,-89.51 187.97,-95.07 184.38,-85.1 178.95,-89.51\"/>\n", "<text text-anchor=\"middle\" x=\"153.78\" y=\"-65.49\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 3 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-190.3 0,-190.3 0,-154.3 54,-154.3 54,-190.3\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-168.6\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 5->3 -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>5->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M119.85,-36.3C97.09,-63.38 60.16,-114.08 40.31,-145.38\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"37.24,-143.69 34.97,-154.04 43.2,-147.37 37.24,-143.69\"/>\n", "<text text-anchor=\"middle\" x=\"70.08\" y=\"-94.64\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"166.1,-226.72 112.1,-226.72 112.1,-190.72 166.1,-190.72 166.1,-226.72\"/>\n", "<text text-anchor=\"middle\" x=\"139.1\" y=\"-205.02\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 5->2 -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>5->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M134.92,-36.29C131.78,-69.68 131.52,-140.73 134.14,-180.42\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"130.66,-180.79 134.93,-190.49 137.63,-180.24 130.66,-180.79\"/>\n", "<text text-anchor=\"middle\" x=\"124.53\" y=\"-112.15\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-72.42 0,-72.42 0,-36.42 54,-36.42 54,-72.42\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-50.72\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 5->1 -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>5->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M111.88,-20.79C97.34,-24.44 79.24,-30.08 63.49,-35.79\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"62.17,-32.55 54.04,-39.34 64.64,-39.1 62.17,-32.55\"/>\n", "<text text-anchor=\"middle\" x=\"77.69\" y=\"-32.09\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 4->5 -->\n", "<g id=\"edge6\" class=\"edge\">\n", "<title>4->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M201.39,-95.03C192.95,-80.61 178.78,-60.42 166.02,-44.3\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"168.54,-41.85 159.52,-36.29 163.11,-46.26 168.54,-41.85\"/>\n", "<text text-anchor=\"middle\" x=\"173.71\" y=\"-73.47\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 4->4 -->\n", "<g id=\"edge7\" class=\"edge\">\n", "<title>4->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M235.63,-120.1C245.41,-120.25 253.39,-118 253.39,-113.36 253.39,-110.53 250.42,-108.59 245.9,-107.54\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"245.9,-104.03 235.63,-106.62 245.27,-111 245.9,-104.03\"/>\n", "<text text-anchor=\"middle\" x=\"263.39\" y=\"-109.66\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 4->3 -->\n", "<g id=\"edge8\" class=\"edge\">\n", "<title>4->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M181.28,-117.04C149.97,-124.88 98.36,-141.39 63.54,-154.51\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"62.27,-151.25 54.19,-158.11 64.78,-157.78 62.27,-151.25\"/>\n", "<text text-anchor=\"middle\" x=\"132.41\" y=\"-139.58\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 4->2 -->\n", "<g id=\"edge9\" class=\"edge\">\n", "<title>4->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M188,-131.61C176.1,-145.84 161.59,-165.73 151.37,-181.78\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"148.14,-180.35 145.91,-190.71 154.12,-184.01 148.14,-180.35\"/>\n", "<text text-anchor=\"middle\" x=\"159.69\" y=\"-160.5\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 4->1 -->\n", "<g id=\"edge10\" class=\"edge\">\n", "<title>4->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M181.22,-99.18C150.04,-86.87 98.76,-70.07 63.97,-60.68\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"64.74,-57.26 54.18,-58.13 62.97,-64.04 64.74,-57.26\"/>\n", "<text text-anchor=\"middle\" x=\"112.59\" y=\"-68.73\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 3->5 -->\n", "<g id=\"edge11\" class=\"edge\">\n", "<title>3->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M46.25,-154C69.01,-126.92 105.94,-76.22 125.79,-44.92\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"128.86,-46.6 131.14,-36.25 122.91,-42.92 128.86,-46.6\"/>\n", "<text text-anchor=\"middle\" x=\"96.02\" y=\"-103.26\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 3->4 -->\n", "<g id=\"edge12\" class=\"edge\">\n", "<title>3->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.11,-168.61C85.41,-160.77 137.02,-144.27 171.85,-131.15\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"173.12,-134.41 181.19,-127.55 170.6,-127.88 173.12,-134.41\"/>\n", "<text text-anchor=\"middle\" x=\"102.98\" y=\"-153.68\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 3->3 -->\n", "<g id=\"edge13\" class=\"edge\">\n", "<title>3->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.24,-179.04C64.02,-179.18 72,-176.94 72,-172.3 72,-169.47 69.04,-167.53 64.51,-166.48\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"64.51,-162.96 54.24,-165.55 63.89,-169.94 64.51,-162.96\"/>\n", "<text text-anchor=\"middle\" x=\"82\" y=\"-168.6\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 3->2 -->\n", "<g id=\"edge14\" class=\"edge\">\n", "<title>3->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.02,-187.37C68.43,-192.99 86.37,-198.94 102.06,-203.32\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"101.42,-206.77 111.99,-205.96 103.22,-200.01 101.42,-206.77\"/>\n", "<text text-anchor=\"middle\" x=\"68.04\" y=\"-199.15\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 3->1 -->\n", "<g id=\"edge15\" class=\"edge\">\n", "<title>3->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M32.04,-154.14C33.99,-135.16 34.27,-105.11 32.88,-82.96\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"36.35,-82.48 32.06,-72.8 29.37,-83.05 36.35,-82.48\"/>\n", "<text text-anchor=\"middle\" x=\"22.46\" y=\"-122.35\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 2->5 -->\n", "<g id=\"edge16\" class=\"edge\">\n", "<title>2->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M143.28,-190.43C146.42,-157.04 146.69,-85.99 144.07,-46.3\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"147.55,-45.93 143.28,-36.23 140.57,-46.48 147.55,-45.93\"/>\n", "<text text-anchor=\"middle\" x=\"153.68\" y=\"-122.17\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 2->4 -->\n", "<g id=\"edge17\" class=\"edge\">\n", "<title>2->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M159.48,-190.47C171.39,-176.24 185.9,-156.35 196.11,-140.3\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"199.34,-141.73 201.58,-131.37 193.37,-138.08 199.34,-141.73\"/>\n", "<text text-anchor=\"middle\" x=\"187.8\" y=\"-169.19\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 2->3 -->\n", "<g id=\"edge18\" class=\"edge\">\n", "<title>2->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M112.08,-193.65C97.67,-188.02 79.73,-182.08 64.04,-177.69\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"64.68,-174.24 54.12,-175.06 62.88,-181.01 64.68,-174.24\"/>\n", "<text text-anchor=\"middle\" x=\"98.06\" y=\"-189.47\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 2->2 -->\n", "<g id=\"edge19\" class=\"edge\">\n", "<title>2->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M166.34,-215.46C176.13,-215.61 184.1,-213.36 184.1,-208.72 184.1,-205.89 181.14,-203.95 176.61,-202.9\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"176.62,-199.39 166.34,-201.98 175.99,-206.36 176.62,-199.39\"/>\n", "<text text-anchor=\"middle\" x=\"194.1\" y=\"-205.02\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 2->1 -->\n", "<g id=\"edge20\" class=\"edge\">\n", "<title>2->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M131.2,-190.56C114.91,-163.29 77.99,-111.82 52.68,-80.54\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"55.26,-78.16 46.2,-72.66 49.85,-82.61 55.26,-78.16\"/>\n", "<text text-anchor=\"middle\" x=\"81.94\" y=\"-139.35\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 1->5 -->\n", "<g id=\"edge21\" class=\"edge\">\n", "<title>1->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.22,-51.64C68.76,-47.99 86.86,-42.35 102.61,-36.63\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"103.93,-39.88 112.06,-33.08 101.47,-33.33 103.93,-39.88\"/>\n", "<text text-anchor=\"middle\" x=\"68.41\" y=\"-47.94\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 1->4 -->\n", "<g id=\"edge22\" class=\"edge\">\n", "<title>1->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.17,-68.6C85.35,-80.92 136.62,-97.71 171.42,-107.1\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"170.64,-110.52 181.2,-109.66 172.41,-103.75 170.64,-110.52\"/>\n", "<text text-anchor=\"middle\" x=\"122.79\" y=\"-91.65\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 1->3 -->\n", "<g id=\"edge23\" class=\"edge\">\n", "<title>1->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M21.96,-72.58C20.01,-91.56 19.73,-121.61 21.12,-143.76\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"17.65,-144.24 21.94,-153.92 24.63,-143.67 17.65,-144.24\"/>\n", "<text text-anchor=\"middle\" x=\"11.54\" y=\"-96.97\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 1->2 -->\n", "<g id=\"edge24\" class=\"edge\">\n", "<title>1->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M34.91,-72.58C51.2,-99.86 88.11,-151.32 113.42,-182.61\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"110.84,-184.99 119.9,-190.48 116.25,-180.54 110.84,-184.99\"/>\n", "<text text-anchor=\"middle\" x=\"64.16\" y=\"-116.4\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "<!-- 1->1 -->\n", "<g id=\"edge25\" class=\"edge\">\n", "<title>1->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.24,-61.17C64.02,-61.31 72,-59.06 72,-54.42 72,-51.6 69.04,-49.66 64.51,-48.61\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"64.51,-45.09 54.24,-47.68 63.89,-52.06 64.51,-45.09\"/>\n", "<text text-anchor=\"middle\" x=\"82\" y=\"-50.72\" font-family=\"Times,serif\" font-size=\"14.00\">K5</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [(\"K5\",(1..5)*(1..5))]>" ] }, "execution_count": 73, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"K5\",(1..5)×(1..5))" ] }, { "cell_type": "code", "execution_count": 74, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Preference changed: DOT_ENGINE = circo\n" ] }, "execution_count": 74, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":pref DOT_ENGINE=circo" ] }, { "cell_type": "code", "execution_count": 75, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"510pt\" height=\"431pt\"\n", " viewBox=\"0.00 0.00 510.07 431.39\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 427.39)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-427.39 506.07,-427.39 506.07,4 -4,4\"/>\n", "<!-- 10 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>10</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"416.77,-111.82 362.77,-111.82 362.77,-75.82 416.77,-75.82 416.77,-111.82\"/>\n", "<text text-anchor=\"middle\" x=\"389.77\" y=\"-90.12\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n", "</g>\n", "<!-- 10->10 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>10->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M417.01,-100.57C426.8,-100.71 434.77,-98.46 434.77,-93.82 434.77,-91 431.81,-89.06 427.28,-88.01\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"427.29,-84.49 417.01,-87.08 426.66,-91.46 427.29,-84.49\"/>\n", "<text text-anchor=\"middle\" x=\"449.27\" y=\"-90.12\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 9 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>9</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"455.07,-229.7 401.07,-229.7 401.07,-193.7 455.07,-193.7 455.07,-229.7\"/>\n", "<text text-anchor=\"middle\" x=\"428.07\" y=\"-208\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", "</g>\n", "<!-- 10->9 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>10->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M390.54,-111.97C394.63,-131.3 404.27,-162.08 412.96,-184.34\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"409.72,-185.66 416.74,-193.6 416.2,-183.02 409.72,-185.66\"/>\n", "<text text-anchor=\"middle\" x=\"387.25\" y=\"-151.95\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 8 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>8</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"192.57,-38.98 138.57,-38.98 138.57,-2.98 192.57,-2.98 192.57,-38.98\"/>\n", "<text text-anchor=\"middle\" x=\"165.57\" y=\"-17.28\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", "</g>\n", "<!-- 10->8 -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>10->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M362.37,-79.98C322.25,-64.21 247.45,-39.77 202.5,-27.64\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"203.14,-24.18 192.58,-25.03 201.36,-30.95 203.14,-24.18\"/>\n", "<text text-anchor=\"middle\" x=\"267.94\" y=\"-42.61\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 7 -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>7</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"92.3,-111.82 38.3,-111.82 38.3,-75.82 92.3,-75.82 92.3,-111.82\"/>\n", "<text text-anchor=\"middle\" x=\"65.3\" y=\"-90.12\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", "</g>\n", "<!-- 10->7 -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>10->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M362.67,-89.88C304.81,-86.34 169.12,-86.15 102.94,-89.31\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.35,-85.84 92.56,-89.87 102.73,-92.83 102.35,-85.84\"/>\n", "<text text-anchor=\"middle\" x=\"218.3\" y=\"-78.39\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 6 -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>6</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-229.7 0,-229.7 0,-193.7 54,-193.7 54,-229.7\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-208\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", "</g>\n", "<!-- 10->6 -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>10->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M362.54,-98.78C298.2,-115.65 136.81,-167.86 63.83,-195.16\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"62.25,-192.02 54.14,-198.84 64.74,-198.56 62.25,-192.02\"/>\n", "<text text-anchor=\"middle\" x=\"198.69\" y=\"-135.77\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 5 -->\n", "<g id=\"node6\" class=\"node\">\n", "<title>5</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"92.3,-347.57 38.3,-347.57 38.3,-311.57 92.3,-311.57 92.3,-347.57\"/>\n", "<text text-anchor=\"middle\" x=\"65.3\" y=\"-325.87\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", "</g>\n", "<!-- 10->5 -->\n", "<g id=\"edge6\" class=\"edge\">\n", "<title>10->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M362.61,-108.85C301.4,-148.59 153.51,-255.93 92.38,-304.84\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"89.92,-302.33 84.35,-311.34 94.32,-307.77 89.92,-302.33\"/>\n", "<text text-anchor=\"middle\" x=\"241.99\" y=\"-195.65\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 4 -->\n", "<g id=\"node7\" class=\"node\">\n", "<title>4</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"192.57,-420.42 138.57,-420.42 138.57,-384.42 192.57,-384.42 192.57,-420.42\"/>\n", "<text text-anchor=\"middle\" x=\"165.57\" y=\"-398.72\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", "</g>\n", "<!-- 10->4 -->\n", "<g id=\"edge7\" class=\"edge\">\n", "<title>10->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M372.18,-111.98C329.26,-164.01 220.55,-313.44 180.51,-375.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"177.32,-373.72 174.9,-384.04 183.23,-377.48 177.32,-373.72\"/>\n", "<text text-anchor=\"middle\" x=\"261.84\" y=\"-247.41\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 3 -->\n", "<g id=\"node8\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"316.5,-420.42 262.5,-420.42 262.5,-384.42 316.5,-384.42 316.5,-420.42\"/>\n", "<text text-anchor=\"middle\" x=\"289.5\" y=\"-398.72\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 10->3 -->\n", "<g id=\"edge8\" class=\"edge\">\n", "<title>10->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M380.18,-112.05C358.95,-163.9 310.53,-312.36 294.36,-374.52\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"290.92,-373.86 291.89,-384.41 297.71,-375.56 290.92,-373.86\"/>\n", "<text text-anchor=\"middle\" x=\"322.77\" y=\"-247.09\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node9\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"416.77,-347.57 362.77,-347.57 362.77,-311.57 416.77,-311.57 416.77,-347.57\"/>\n", "<text text-anchor=\"middle\" x=\"389.77\" y=\"-325.87\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 10->2 -->\n", "<g id=\"edge9\" class=\"edge\">\n", "<title>10->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M385.96,-111.93C382.32,-152.73 382.06,-252.09 385.19,-301.17\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"381.72,-301.69 385.96,-311.4 388.7,-301.16 381.72,-301.69\"/>\n", "<text text-anchor=\"middle\" x=\"371.08\" y=\"-210.35\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node10\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"316.5,-38.98 262.5,-38.98 262.5,-2.98 316.5,-2.98 316.5,-38.98\"/>\n", "<text text-anchor=\"middle\" x=\"289.5\" y=\"-17.28\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 10->1 -->\n", "<g id=\"edge10\" class=\"edge\">\n", "<title>10->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M374.09,-75.74C361,-64.51 341.91,-50.27 325.17,-39.05\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"326.95,-36.04 316.67,-33.49 323.12,-41.89 326.95,-36.04\"/>\n", "<text text-anchor=\"middle\" x=\"335.13\" y=\"-46.2\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 9->10 -->\n", "<g id=\"edge11\" class=\"edge\">\n", "<title>9->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M427.3,-193.55C423.21,-174.22 413.58,-143.44 404.88,-121.18\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"408.12,-119.86 401.11,-111.92 401.64,-122.5 408.12,-119.86\"/>\n", "<text text-anchor=\"middle\" x=\"430.59\" y=\"-161.16\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 9->9 -->\n", "<g id=\"edge12\" class=\"edge\">\n", "<title>9->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M455.31,-218.44C465.09,-218.58 473.07,-216.34 473.07,-211.7 473.07,-208.87 470.11,-206.93 465.58,-205.88\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"465.59,-202.36 455.31,-204.95 464.96,-209.34 465.59,-202.36\"/>\n", "<text text-anchor=\"middle\" x=\"487.57\" y=\"-208\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 9->8 -->\n", "<g id=\"edge13\" class=\"edge\">\n", "<title>9->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M409.73,-193.62C366.52,-157.8 258.01,-78.62 201.29,-41.17\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"202.93,-38.06 192.65,-35.53 199.11,-43.93 202.93,-38.06\"/>\n", "<text text-anchor=\"middle\" x=\"291.01\" y=\"-121.19\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 9->7 -->\n", "<g id=\"edge14\" class=\"edge\">\n", "<title>9->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M400.79,-198.79C336.38,-173.92 174.89,-121.32 102,-101.32\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.89,-97.94 92.32,-98.72 101.07,-104.7 102.89,-97.94\"/>\n", "<text text-anchor=\"middle\" x=\"236.89\" y=\"-138.86\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 9->6 -->\n", "<g id=\"edge15\" class=\"edge\">\n", "<title>9->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M400.82,-208.08C330.71,-204.08 144.02,-203.91 64.12,-207.58\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"63.83,-204.09 54.03,-208.09 64.19,-211.08 63.83,-204.09\"/>\n", "<text text-anchor=\"middle\" x=\"217.97\" y=\"-211.63\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 9->5 -->\n", "<g id=\"edge16\" class=\"edge\">\n", "<title>9->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M400.84,-216.65C336.5,-233.52 175.11,-285.74 102.13,-313.03\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"100.55,-309.89 92.44,-316.71 103.03,-316.44 100.55,-309.89\"/>\n", "<text text-anchor=\"middle\" x=\"265.99\" y=\"-268.64\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 9->4 -->\n", "<g id=\"edge17\" class=\"edge\">\n", "<title>9->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M400.94,-226.28C350.23,-258.95 241.91,-337.54 191.85,-377.86\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"189.59,-375.19 184.05,-384.22 194.01,-380.61 189.59,-375.19\"/>\n", "<text text-anchor=\"middle\" x=\"281.89\" y=\"-305.87\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 9->3 -->\n", "<g id=\"edge18\" class=\"edge\">\n", "<title>9->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M409.42,-229.88C381.11,-263.67 328.45,-336 303.3,-375.47\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"300.12,-373.96 297.81,-384.29 306.06,-377.65 300.12,-373.96\"/>\n", "<text text-anchor=\"middle\" x=\"341.86\" y=\"-306.48\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 9->2 -->\n", "<g id=\"edge19\" class=\"edge\">\n", "<title>9->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M416.72,-229.82C408.54,-248.93 398.5,-279.25 392.88,-301.46\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"389.44,-300.79 390.57,-311.32 396.26,-302.38 389.44,-300.79\"/>\n", "<text text-anchor=\"middle\" x=\"390.3\" y=\"-269.44\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 9->1 -->\n", "<g id=\"edge20\" class=\"edge\">\n", "<title>9->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M419.69,-193.44C399.07,-159.39 346.44,-86.33 314.67,-47.08\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"317.28,-44.75 308.23,-39.25 311.88,-49.2 317.28,-44.75\"/>\n", "<text text-anchor=\"middle\" x=\"352.68\" y=\"-124.06\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 8->10 -->\n", "<g id=\"edge21\" class=\"edge\">\n", "<title>8->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M192.97,-34.82C233.09,-50.59 307.89,-75.03 352.83,-87.16\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"352.2,-90.62 362.76,-89.77 353.98,-83.84 352.2,-90.62\"/>\n", "<text text-anchor=\"middle\" x=\"258.4\" y=\"-64.79\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 8->9 -->\n", "<g id=\"edge22\" class=\"edge\">\n", "<title>8->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M183.91,-39.05C227.12,-74.87 335.63,-154.05 392.35,-191.5\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"390.7,-194.61 400.99,-197.14 394.53,-188.74 390.7,-194.61\"/>\n", "<text text-anchor=\"middle\" x=\"273.63\" y=\"-104.08\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 8->8 -->\n", "<g id=\"edge23\" class=\"edge\">\n", "<title>8->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M192.81,-27.72C202.59,-27.86 210.57,-25.62 210.57,-20.98 210.57,-18.15 207.6,-16.21 203.08,-15.16\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"203.08,-11.64 192.81,-14.23 202.45,-18.62 203.08,-11.64\"/>\n", "<text text-anchor=\"middle\" x=\"225.07\" y=\"-17.28\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 8->7 -->\n", "<g id=\"edge24\" class=\"edge\">\n", "<title>8->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M138.37,-33.51C122.85,-43.39 103.64,-57.26 88.78,-69.27\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"86.48,-66.63 81.02,-75.71 90.95,-72.01 86.48,-66.63\"/>\n", "<text text-anchor=\"middle\" x=\"99.07\" y=\"-55.19\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 8->6 -->\n", "<g id=\"edge25\" class=\"edge\">\n", "<title>8->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M146.91,-39.16C118.61,-72.95 65.94,-145.28 40.8,-184.75\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"37.62,-183.24 35.3,-193.57 43.56,-186.93 37.62,-183.24\"/>\n", "<text text-anchor=\"middle\" x=\"79.35\" y=\"-115.76\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 8->5 -->\n", "<g id=\"edge26\" class=\"edge\">\n", "<title>8->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M155.98,-39.2C134.75,-91.05 86.33,-239.51 70.15,-301.67\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"66.71,-301.01 67.68,-311.56 73.5,-302.71 66.71,-301.01\"/>\n", "<text text-anchor=\"middle\" x=\"98.57\" y=\"-174.24\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 8->4 -->\n", "<g id=\"edge27\" class=\"edge\">\n", "<title>8->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M162.48,-39.12C157.83,-100.36 157.61,-299.78 161.81,-374.13\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"158.33,-374.41 162.47,-384.16 165.31,-373.96 158.33,-374.41\"/>\n", "<text text-anchor=\"middle\" x=\"147.65\" y=\"-210.42\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 8->3 -->\n", "<g id=\"edge28\" class=\"edge\">\n", "<title>8->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M168.27,-39.04C183.23,-100.3 247.96,-300.38 276.44,-374.49\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"273.29,-376.05 280.21,-384.08 279.81,-373.49 273.29,-376.05\"/>\n", "<text text-anchor=\"middle\" x=\"207.85\" y=\"-195.56\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 8->2 -->\n", "<g id=\"edge29\" class=\"edge\">\n", "<title>8->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M174.7,-39.03C207.21,-91.23 316.46,-242.1 365.62,-303.34\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"363.12,-305.81 372.14,-311.36 368.55,-301.4 363.12,-305.81\"/>\n", "<text text-anchor=\"middle\" x=\"255.66\" y=\"-174.98\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 8->1 -->\n", "<g id=\"edge30\" class=\"edge\">\n", "<title>8->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M192.77,-26.67C210.2,-27.86 233.07,-28.04 252.19,-27.23\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"252.57,-30.71 262.37,-26.67 252.19,-23.72 252.57,-30.71\"/>\n", "<text text-anchor=\"middle\" x=\"207.98\" y=\"-30.75\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 7->10 -->\n", "<g id=\"edge31\" class=\"edge\">\n", "<title>7->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M92.41,-97.77C150.26,-101.31 285.95,-101.5 352.13,-98.34\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"352.72,-101.81 362.51,-97.78 352.34,-94.82 352.72,-101.81\"/>\n", "<text text-anchor=\"middle\" x=\"207.77\" y=\"-101.85\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 7->9 -->\n", "<g id=\"edge32\" class=\"edge\">\n", "<title>7->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M92.58,-106.73C156.98,-131.6 318.48,-184.2 391.37,-204.2\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"390.48,-207.58 401.05,-206.8 392.3,-200.82 390.48,-207.58\"/>\n", "<text text-anchor=\"middle\" x=\"227.47\" y=\"-159.26\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 7->8 -->\n", "<g id=\"edge33\" class=\"edge\">\n", "<title>7->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M92.49,-81.28C108.01,-71.41 127.23,-57.54 142.09,-45.53\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"144.39,-48.17 149.85,-39.09 139.92,-42.79 144.39,-48.17\"/>\n", "<text text-anchor=\"middle\" x=\"131.79\" y=\"-67.21\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 7->7 -->\n", "<g id=\"edge34\" class=\"edge\">\n", "<title>7->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M92.54,-100.57C102.32,-100.71 110.3,-98.46 110.3,-93.82 110.3,-91 107.34,-89.06 102.81,-88.01\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.81,-84.49 92.54,-87.08 102.19,-91.46 102.81,-84.49\"/>\n", "<text text-anchor=\"middle\" x=\"124.8\" y=\"-90.12\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 7->6 -->\n", "<g id=\"edge35\" class=\"edge\">\n", "<title>7->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M53.95,-111.95C45.77,-131.06 35.73,-161.37 30.11,-183.58\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"26.67,-182.91 27.79,-193.45 33.48,-184.51 26.67,-182.91\"/>\n", "<text text-anchor=\"middle\" x=\"27.53\" y=\"-151.57\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 7->5 -->\n", "<g id=\"edge36\" class=\"edge\">\n", "<title>7->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M61.49,-111.93C57.85,-152.73 57.59,-252.09 60.72,-301.17\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"57.25,-301.69 61.49,-311.4 64.23,-301.16 57.25,-301.69\"/>\n", "<text text-anchor=\"middle\" x=\"75.6\" y=\"-195.35\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 7->4 -->\n", "<g id=\"edge37\" class=\"edge\">\n", "<title>7->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M67.69,-111.87C79.98,-163.59 128.05,-312.46 152.18,-374.63\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"149.03,-376.18 155.97,-384.18 155.53,-373.59 149.03,-376.18\"/>\n", "<text text-anchor=\"middle\" x=\"95.44\" y=\"-247.05\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 7->3 -->\n", "<g id=\"edge38\" class=\"edge\">\n", "<title>7->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M74.43,-111.88C106.94,-164.08 216.19,-314.95 265.35,-376.19\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"262.85,-378.66 271.87,-384.21 268.28,-374.25 262.85,-378.66\"/>\n", "<text text-anchor=\"middle\" x=\"155.39\" y=\"-247.83\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 7->2 -->\n", "<g id=\"edge39\" class=\"edge\">\n", "<title>7->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M84.5,-112.17C137.34,-155.5 285.2,-263.23 353.9,-308.82\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"352.38,-312.01 362.66,-314.58 356.23,-306.16 352.38,-312.01\"/>\n", "<text text-anchor=\"middle\" x=\"233.7\" y=\"-214.3\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 7->1 -->\n", "<g id=\"edge40\" class=\"edge\">\n", "<title>7->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M92.41,-89.74C132.58,-79.57 207.97,-55.33 252.98,-38.33\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"254.29,-41.58 262.37,-34.72 251.78,-35.05 254.29,-41.58\"/>\n", "<text text-anchor=\"middle\" x=\"187.19\" y=\"-67.84\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 6->10 -->\n", "<g id=\"edge41\" class=\"edge\">\n", "<title>6->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.23,-206.74C118.57,-189.87 279.96,-137.66 352.94,-110.36\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"354.52,-113.5 362.63,-106.68 352.04,-106.95 354.52,-113.5\"/>\n", "<text text-anchor=\"middle\" x=\"189.09\" y=\"-162.35\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 6->9 -->\n", "<g id=\"edge42\" class=\"edge\">\n", "<title>6->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.25,-215.31C124.36,-219.32 311.05,-219.48 390.95,-215.81\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"391.24,-219.3 401.05,-215.3 390.88,-212.31 391.24,-219.3\"/>\n", "<text text-anchor=\"middle\" x=\"208.1\" y=\"-219.36\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 6->8 -->\n", "<g id=\"edge43\" class=\"edge\">\n", "<title>6->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M45.65,-193.51C73.96,-159.72 126.62,-87.39 151.77,-47.92\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"154.95,-49.44 157.26,-39.1 149.01,-45.74 154.95,-49.44\"/>\n", "<text text-anchor=\"middle\" x=\"113.21\" y=\"-124.51\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 6->7 -->\n", "<g id=\"edge44\" class=\"edge\">\n", "<title>6->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M38.35,-193.57C46.53,-174.46 56.57,-144.15 62.19,-121.94\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"65.63,-122.61 64.51,-112.07 58.82,-121.01 65.63,-122.61\"/>\n", "<text text-anchor=\"middle\" x=\"64.77\" y=\"-161.55\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 6->6 -->\n", "<g id=\"edge45\" class=\"edge\">\n", "<title>6->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.24,-218.44C64.02,-218.58 72,-216.34 72,-211.7 72,-208.87 69.04,-206.93 64.51,-205.88\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"64.51,-202.36 54.24,-204.95 63.89,-209.34 64.51,-202.36\"/>\n", "<text text-anchor=\"middle\" x=\"86.5\" y=\"-208\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 6->5 -->\n", "<g id=\"edge46\" class=\"edge\">\n", "<title>6->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M27.77,-229.84C31.86,-249.17 41.49,-279.95 50.19,-302.21\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"46.95,-303.54 53.96,-311.47 53.43,-300.89 46.95,-303.54\"/>\n", "<text text-anchor=\"middle\" x=\"24.48\" y=\"-269.83\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 6->4 -->\n", "<g id=\"edge47\" class=\"edge\">\n", "<title>6->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M35.38,-229.95C56,-264.01 108.64,-337.06 140.4,-376.31\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"137.79,-378.64 146.84,-384.14 143.19,-374.2 137.79,-378.64\"/>\n", "<text text-anchor=\"middle\" x=\"73.39\" y=\"-291.93\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 6->3 -->\n", "<g id=\"edge48\" class=\"edge\">\n", "<title>6->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M45.34,-229.77C88.55,-265.59 197.06,-344.77 253.78,-382.22\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"252.14,-385.33 262.42,-387.86 255.96,-379.47 252.14,-385.33\"/>\n", "<text text-anchor=\"middle\" x=\"135.06\" y=\"-309.8\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 6->2 -->\n", "<g id=\"edge49\" class=\"edge\">\n", "<title>6->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.28,-224.6C118.69,-249.47 280.18,-302.07 353.07,-322.07\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"352.19,-325.45 362.75,-324.67 354,-318.69 352.19,-325.45\"/>\n", "<text text-anchor=\"middle\" x=\"189.18\" y=\"-277.13\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 6->1 -->\n", "<g id=\"edge50\" class=\"edge\">\n", "<title>6->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.13,-197.11C104.84,-164.44 213.16,-85.85 263.22,-45.53\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"265.48,-48.2 271.02,-39.17 261.06,-42.78 265.48,-48.2\"/>\n", "<text text-anchor=\"middle\" x=\"144.18\" y=\"-125.12\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 5->10 -->\n", "<g id=\"edge51\" class=\"edge\">\n", "<title>5->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M92.46,-314.54C153.67,-274.8 301.56,-167.47 362.69,-118.55\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"365.15,-121.06 370.72,-112.05 360.75,-115.62 365.15,-121.06\"/>\n", "<text text-anchor=\"middle\" x=\"242.08\" y=\"-220.35\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 5->9 -->\n", "<g id=\"edge52\" class=\"edge\">\n", "<title>5->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M92.53,-324.61C156.87,-307.74 318.26,-255.53 391.24,-228.23\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"392.82,-231.37 400.93,-224.55 390.34,-224.83 392.82,-231.37\"/>\n", "<text text-anchor=\"middle\" x=\"227.38\" y=\"-280.22\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 5->8 -->\n", "<g id=\"edge53\" class=\"edge\">\n", "<title>5->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M74.89,-311.34C96.12,-259.49 144.54,-111.03 160.71,-48.87\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"164.15,-49.53 163.18,-38.98 157.36,-47.83 164.15,-49.53\"/>\n", "<text text-anchor=\"middle\" x=\"132.3\" y=\"-183.9\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 5->7 -->\n", "<g id=\"edge54\" class=\"edge\">\n", "<title>5->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M69.11,-311.46C72.75,-270.66 73.01,-171.3 69.88,-122.22\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"73.35,-121.7 69.11,-111.99 66.37,-122.23 73.35,-121.7\"/>\n", "<text text-anchor=\"middle\" x=\"83.99\" y=\"-220.64\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 5->6 -->\n", "<g id=\"edge55\" class=\"edge\">\n", "<title>5->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M64.53,-311.42C60.44,-292.09 50.8,-261.31 42.11,-239.05\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"45.35,-237.73 38.33,-229.79 38.87,-240.37 45.35,-237.73\"/>\n", "<text text-anchor=\"middle\" x=\"67.82\" y=\"-264.04\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 5->5 -->\n", "<g id=\"edge56\" class=\"edge\">\n", "<title>5->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M92.54,-336.31C102.32,-336.46 110.3,-334.21 110.3,-329.57 110.3,-326.74 107.34,-324.8 102.81,-323.75\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.81,-320.24 92.54,-322.82 102.19,-327.21 102.81,-320.24\"/>\n", "<text text-anchor=\"middle\" x=\"124.8\" y=\"-325.87\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 5->4 -->\n", "<g id=\"edge57\" class=\"edge\">\n", "<title>5->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M80.98,-347.65C94.07,-358.88 113.16,-373.12 129.9,-384.34\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"128.12,-387.35 138.4,-389.9 131.95,-381.5 128.12,-387.35\"/>\n", "<text text-anchor=\"middle\" x=\"90.94\" y=\"-369.79\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 5->3 -->\n", "<g id=\"edge58\" class=\"edge\">\n", "<title>5->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M92.7,-343.41C132.82,-359.18 207.62,-383.62 252.57,-395.76\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"251.93,-399.21 262.49,-398.36 253.71,-392.44 251.93,-399.21\"/>\n", "<text text-anchor=\"middle\" x=\"158.13\" y=\"-373.38\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 5->2 -->\n", "<g id=\"edge59\" class=\"edge\">\n", "<title>5->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M92.41,-333.51C150.26,-337.05 285.95,-337.24 352.13,-334.08\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"352.72,-337.55 362.51,-333.52 352.34,-330.56 352.72,-337.55\"/>\n", "<text text-anchor=\"middle\" x=\"207.77\" y=\"-337.6\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 5->1 -->\n", "<g id=\"edge60\" class=\"edge\">\n", "<title>5->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M82.89,-311.41C125.81,-259.39 234.52,-109.95 274.56,-48.15\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"277.75,-49.67 280.17,-39.36 271.84,-45.91 277.75,-49.67\"/>\n", "<text text-anchor=\"middle\" x=\"164.23\" y=\"-183.58\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 4->10 -->\n", "<g id=\"edge61\" class=\"edge\">\n", "<title>4->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M183.16,-384.26C226.08,-332.23 334.78,-182.8 374.83,-121\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"378.02,-122.52 380.44,-112.2 372.11,-118.76 378.02,-122.52\"/>\n", "<text text-anchor=\"middle\" x=\"293.49\" y=\"-241.43\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 4->9 -->\n", "<g id=\"edge62\" class=\"edge\">\n", "<title>4->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M192.7,-387.83C243.41,-355.16 351.73,-276.57 401.79,-236.25\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"404.05,-238.93 409.58,-229.89 399.62,-233.5 404.05,-238.93\"/>\n", "<text text-anchor=\"middle\" x=\"311.74\" y=\"-315.84\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 4->8 -->\n", "<g id=\"edge63\" class=\"edge\">\n", "<title>4->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M168.66,-384.27C173.3,-323.03 173.53,-123.61 169.32,-49.26\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"172.81,-48.98 168.67,-39.23 165.82,-49.43 172.81,-48.98\"/>\n", "<text text-anchor=\"middle\" x=\"176.24\" y=\"-205.57\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 4->7 -->\n", "<g id=\"edge64\" class=\"edge\">\n", "<title>4->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M163.17,-384.36C150.89,-332.65 102.81,-183.78 78.69,-121.61\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"81.84,-120.06 74.89,-112.06 75.33,-122.65 81.84,-120.06\"/>\n", "<text text-anchor=\"middle\" x=\"128.18\" y=\"-241.79\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 4->6 -->\n", "<g id=\"edge65\" class=\"edge\">\n", "<title>4->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M157.18,-384.16C136.57,-350.11 83.93,-277.05 52.17,-237.8\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"54.78,-235.47 45.73,-229.97 49.37,-239.92 54.78,-235.47\"/>\n", "<text text-anchor=\"middle\" x=\"104.68\" y=\"-299.78\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 4->5 -->\n", "<g id=\"edge66\" class=\"edge\">\n", "<title>4->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M149.89,-384.34C136.79,-373.11 117.71,-358.86 100.96,-347.64\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.75,-344.63 92.46,-342.09 98.92,-350.49 102.75,-344.63\"/>\n", "<text text-anchor=\"middle\" x=\"110.92\" y=\"-354.79\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 4->4 -->\n", "<g id=\"edge67\" class=\"edge\">\n", "<title>4->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M192.81,-409.16C202.59,-409.3 210.57,-407.06 210.57,-402.42 210.57,-399.59 207.6,-397.65 203.08,-396.6\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"203.08,-393.08 192.81,-395.67 202.45,-400.06 203.08,-393.08\"/>\n", "<text text-anchor=\"middle\" x=\"225.07\" y=\"-398.72\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 4->3 -->\n", "<g id=\"edge68\" class=\"edge\">\n", "<title>4->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M192.77,-408.12C210.2,-409.3 233.07,-409.48 252.19,-408.67\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"252.57,-412.15 262.37,-408.11 252.19,-405.16 252.57,-412.15\"/>\n", "<text text-anchor=\"middle\" x=\"207.98\" y=\"-412.19\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 4->2 -->\n", "<g id=\"edge69\" class=\"edge\">\n", "<title>4->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M192.67,-398.33C232.85,-388.16 308.24,-363.92 353.25,-346.93\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"354.56,-350.17 362.64,-343.31 352.05,-343.64 354.56,-350.17\"/>\n", "<text text-anchor=\"middle\" x=\"258.46\" y=\"-361.43\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 4->1 -->\n", "<g id=\"edge70\" class=\"edge\">\n", "<title>4->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M174.81,-384.22C199.58,-322.86 264.57,-123.39 284.22,-49.15\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"287.69,-49.69 286.78,-39.13 280.91,-47.95 287.69,-49.69\"/>\n", "<text text-anchor=\"middle\" x=\"244.02\" y=\"-205.48\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 3->10 -->\n", "<g id=\"edge71\" class=\"edge\">\n", "<title>3->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M299.09,-384.19C320.33,-332.34 368.74,-183.88 384.92,-121.72\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"388.36,-122.38 387.39,-111.83 381.57,-120.68 388.36,-122.38\"/>\n", "<text text-anchor=\"middle\" x=\"356.5\" y=\"-256.75\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 3->9 -->\n", "<g id=\"edge72\" class=\"edge\">\n", "<title>3->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M308.16,-384.23C336.46,-350.44 389.13,-278.11 414.28,-238.64\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"417.45,-240.16 419.77,-229.82 411.51,-236.46 417.45,-240.16\"/>\n", "<text text-anchor=\"middle\" x=\"375.72\" y=\"-300.23\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 3->8 -->\n", "<g id=\"edge73\" class=\"edge\">\n", "<title>3->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M286.8,-384.35C271.84,-323.09 207.11,-123.01 178.63,-48.9\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"181.78,-47.34 174.86,-39.31 175.26,-49.9 181.78,-47.34\"/>\n", "<text text-anchor=\"middle\" x=\"218.22\" y=\"-220.43\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 3->7 -->\n", "<g id=\"edge74\" class=\"edge\">\n", "<title>3->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M280.37,-384.36C247.86,-332.16 138.61,-181.29 89.45,-120.05\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"91.95,-117.58 82.93,-112.03 86.52,-121.99 91.95,-117.58\"/>\n", "<text text-anchor=\"middle\" x=\"199.41\" y=\"-256.01\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 3->6 -->\n", "<g id=\"edge75\" class=\"edge\">\n", "<title>3->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M271.16,-384.34C227.95,-348.52 119.44,-269.34 62.72,-231.89\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"64.37,-228.78 54.08,-226.25 60.54,-234.65 64.37,-228.78\"/>\n", "<text text-anchor=\"middle\" x=\"181.44\" y=\"-311.92\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 3->5 -->\n", "<g id=\"edge76\" class=\"edge\">\n", "<title>3->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M262.11,-388.57C221.98,-372.8 147.18,-348.36 102.24,-336.23\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.87,-332.77 92.31,-333.62 101.09,-339.55 102.87,-332.77\"/>\n", "<text text-anchor=\"middle\" x=\"167.67\" y=\"-351.2\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 3->4 -->\n", "<g id=\"edge77\" class=\"edge\">\n", "<title>3->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M262.31,-396.72C244.87,-395.53 222,-395.35 202.88,-396.16\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"202.5,-392.68 192.7,-396.72 202.88,-399.67 202.5,-392.68\"/>\n", "<text text-anchor=\"middle\" x=\"247.09\" y=\"-385.24\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 3->3 -->\n", "<g id=\"edge78\" class=\"edge\">\n", "<title>3->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M316.74,-409.16C326.53,-409.3 334.5,-407.06 334.5,-402.42 334.5,-399.59 331.54,-397.65 327.01,-396.6\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"327.02,-393.08 316.74,-395.67 326.39,-400.06 327.02,-393.08\"/>\n", "<text text-anchor=\"middle\" x=\"349\" y=\"-398.72\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 3->2 -->\n", "<g id=\"edge79\" class=\"edge\">\n", "<title>3->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M316.7,-389.88C332.22,-380 351.44,-366.13 366.3,-354.12\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"368.59,-356.76 374.05,-347.68 364.12,-351.38 368.59,-356.76\"/>\n", "<text text-anchor=\"middle\" x=\"356\" y=\"-375.8\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 3->1 -->\n", "<g id=\"edge80\" class=\"edge\">\n", "<title>3->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M292.59,-384.27C297.24,-323.03 297.46,-123.61 293.26,-49.26\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"296.74,-48.98 292.6,-39.23 289.76,-49.43 296.74,-48.98\"/>\n", "<text text-anchor=\"middle\" x=\"278.42\" y=\"-220.57\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 2->10 -->\n", "<g id=\"edge81\" class=\"edge\">\n", "<title>2->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M393.58,-311.46C397.22,-270.66 397.48,-171.3 394.35,-122.22\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"397.82,-121.7 393.59,-111.99 390.84,-122.23 397.82,-121.7\"/>\n", "<text text-anchor=\"middle\" x=\"379.47\" y=\"-220.64\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 2->9 -->\n", "<g id=\"edge82\" class=\"edge\">\n", "<title>2->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M401.12,-311.44C409.3,-292.33 419.34,-262.02 424.96,-239.81\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"428.4,-240.48 427.28,-229.94 421.59,-238.88 428.4,-240.48\"/>\n", "<text text-anchor=\"middle\" x=\"427.54\" y=\"-279.42\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 2->8 -->\n", "<g id=\"edge83\" class=\"edge\">\n", "<title>2->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M380.64,-311.51C348.13,-259.31 238.88,-108.44 189.72,-47.2\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"192.22,-44.73 183.2,-39.18 186.79,-49.15 192.22,-44.73\"/>\n", "<text text-anchor=\"middle\" x=\"299.68\" y=\"-183.16\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 2->7 -->\n", "<g id=\"edge84\" class=\"edge\">\n", "<title>2->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M370.57,-311.22C317.73,-267.9 169.87,-160.16 101.17,-114.57\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.69,-111.38 92.41,-108.82 98.84,-117.23 102.69,-111.38\"/>\n", "<text text-anchor=\"middle\" x=\"221.37\" y=\"-201.69\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 2->6 -->\n", "<g id=\"edge85\" class=\"edge\">\n", "<title>2->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M362.49,-316.66C298.09,-291.79 136.59,-239.19 63.7,-219.19\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"64.59,-215.81 54.02,-216.59 62.77,-222.57 64.59,-215.81\"/>\n", "<text text-anchor=\"middle\" x=\"227.6\" y=\"-256.73\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 2->5 -->\n", "<g id=\"edge86\" class=\"edge\">\n", "<title>2->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M362.67,-325.62C304.81,-322.08 169.12,-321.89 102.94,-325.05\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.35,-321.58 92.56,-325.61 102.73,-328.57 102.35,-321.58\"/>\n", "<text text-anchor=\"middle\" x=\"218.3\" y=\"-314.14\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 2->4 -->\n", "<g id=\"edge87\" class=\"edge\">\n", "<title>2->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M362.66,-333.65C322.49,-343.82 247.1,-368.06 202.09,-385.06\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"200.78,-381.81 192.7,-388.67 203.29,-388.35 200.78,-381.81\"/>\n", "<text text-anchor=\"middle\" x=\"296.88\" y=\"-363.15\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 2->3 -->\n", "<g id=\"edge88\" class=\"edge\">\n", "<title>2->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M362.58,-342.11C347.06,-351.98 327.84,-365.85 312.98,-377.86\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"310.68,-375.22 305.22,-384.3 315.15,-380.6 310.68,-375.22\"/>\n", "<text text-anchor=\"middle\" x=\"345.03\" y=\"-348.78\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 2->2 -->\n", "<g id=\"edge89\" class=\"edge\">\n", "<title>2->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M417.01,-336.31C426.8,-336.46 434.77,-334.21 434.77,-329.57 434.77,-326.74 431.81,-324.8 427.28,-323.75\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"427.29,-320.24 417.01,-322.82 426.66,-327.21 427.29,-320.24\"/>\n", "<text text-anchor=\"middle\" x=\"449.27\" y=\"-325.87\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 2->1 -->\n", "<g id=\"edge90\" class=\"edge\">\n", "<title>2->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M387.38,-311.52C375.09,-259.8 327.02,-110.93 302.89,-48.76\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"306.04,-47.21 299.1,-39.21 299.54,-49.8 306.04,-47.21\"/>\n", "<text text-anchor=\"middle\" x=\"330.64\" y=\"-183.94\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 1->10 -->\n", "<g id=\"edge91\" class=\"edge\">\n", "<title>1->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M305.18,-39.06C318.28,-50.29 337.36,-64.53 354.11,-75.75\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"352.32,-78.76 362.61,-81.31 356.16,-72.9 352.32,-78.76\"/>\n", "<text text-anchor=\"middle\" x=\"315.15\" y=\"-61.2\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 1->9 -->\n", "<g id=\"edge92\" class=\"edge\">\n", "<title>1->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M297.89,-39.23C318.5,-73.29 371.14,-146.34 402.9,-185.59\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"400.29,-187.92 409.34,-193.42 405.7,-183.48 400.29,-187.92\"/>\n", "<text text-anchor=\"middle\" x=\"335.89\" y=\"-101.21\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 1->8 -->\n", "<g id=\"edge93\" class=\"edge\">\n", "<title>1->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M262.31,-15.28C244.87,-14.09 222,-13.91 202.88,-14.72\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"202.5,-11.24 192.7,-15.28 202.88,-18.23 202.5,-11.24\"/>\n", "<text text-anchor=\"middle\" x=\"247.09\" y=\"-3.8\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 1->7 -->\n", "<g id=\"edge94\" class=\"edge\">\n", "<title>1->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M262.4,-25.06C222.22,-35.23 146.83,-59.47 101.83,-76.46\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"100.51,-73.22 92.44,-80.08 103.03,-79.75 100.51,-73.22\"/>\n", "<text text-anchor=\"middle\" x=\"167.61\" y=\"-54.56\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 1->6 -->\n", "<g id=\"edge95\" class=\"edge\">\n", "<title>1->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M262.37,-35.56C211.66,-68.23 103.34,-146.82 53.28,-187.14\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"51.02,-184.47 45.49,-193.5 55.45,-189.89 51.02,-184.47\"/>\n", "<text text-anchor=\"middle\" x=\"172.33\" y=\"-100.15\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 1->5 -->\n", "<g id=\"edge96\" class=\"edge\">\n", "<title>1->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M271.91,-39.13C229,-91.16 120.29,-240.59 80.24,-302.39\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"77.05,-300.87 74.63,-311.19 82.96,-304.63 77.05,-300.87\"/>\n", "<text text-anchor=\"middle\" x=\"161.58\" y=\"-159.56\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 1->4 -->\n", "<g id=\"edge97\" class=\"edge\">\n", "<title>1->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M280.26,-39.17C255.49,-100.53 190.5,-300 170.85,-374.25\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"167.38,-373.71 168.29,-384.26 174.16,-375.44 167.38,-373.71\"/>\n", "<text text-anchor=\"middle\" x=\"211.06\" y=\"-195.51\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 1->3 -->\n", "<g id=\"edge98\" class=\"edge\">\n", "<title>1->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M286.41,-39.12C281.77,-100.36 281.55,-299.78 285.75,-374.13\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"282.26,-374.41 286.41,-384.16 289.25,-373.96 282.26,-374.41\"/>\n", "<text text-anchor=\"middle\" x=\"271.58\" y=\"-195.42\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 1->2 -->\n", "<g id=\"edge99\" class=\"edge\">\n", "<title>1->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M291.9,-39.03C304.18,-90.74 352.26,-239.61 376.38,-301.78\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"373.23,-303.33 380.18,-311.33 379.74,-300.74 373.23,-303.33\"/>\n", "<text text-anchor=\"middle\" x=\"319.64\" y=\"-159.2\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "<!-- 1->1 -->\n", "<g id=\"edge100\" class=\"edge\">\n", "<title>1->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M316.74,-27.72C326.53,-27.86 334.5,-25.62 334.5,-20.98 334.5,-18.15 331.54,-16.21 327.01,-15.16\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"327.02,-11.64 316.74,-14.23 326.39,-18.62 327.02,-11.64\"/>\n", "<text text-anchor=\"middle\" x=\"349\" y=\"-17.28\" font-family=\"Times,serif\" font-size=\"14.00\">K10</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [(\"K10\",(1..10)*(1..10))]>" ] }, "execution_count": 75, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"K10\",(1..10)×(1..10))" ] }, { "cell_type": "code", "execution_count": 76, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"911pt\" height=\"846pt\"\n", " viewBox=\"0.00 0.00 911.14 846.14\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 842.14)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-842.14 907.14,-842.14 907.14,4 -4,4\"/>\n", "<!-- 20 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>20</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"836.51,-313.13 782.51,-313.13 782.51,-277.13 836.51,-277.13 836.51,-313.13\"/>\n", "<text text-anchor=\"middle\" x=\"809.51\" y=\"-291.43\" font-family=\"Times,serif\" font-size=\"14.00\">20</text>\n", "</g>\n", "<!-- 20->20 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>20->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M836.75,-301.88C846.54,-302.02 854.51,-299.77 854.51,-295.13 854.51,-292.3 851.55,-290.37 847.02,-289.31\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"847.03,-285.8 836.75,-288.39 846.4,-292.77 847.03,-285.8\"/>\n", "<text text-anchor=\"middle\" x=\"869.01\" y=\"-291.43\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>19</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"856.14,-437.07 802.14,-437.07 802.14,-401.07 856.14,-401.07 856.14,-437.07\"/>\n", "<text text-anchor=\"middle\" x=\"829.14\" y=\"-415.37\" font-family=\"Times,serif\" font-size=\"14.00\">19</text>\n", "</g>\n", "<!-- 20->19 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>20->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M807.47,-313.39C808.55,-333.83 813.51,-367.2 818.8,-390.98\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"815.43,-391.92 821.16,-400.83 822.24,-390.29 815.43,-391.92\"/>\n", "<text text-anchor=\"middle\" x=\"798.64\" y=\"-355.98\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>18</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"690.81,-112.6 636.81,-112.6 636.81,-76.6 690.81,-76.6 690.81,-112.6\"/>\n", "<text text-anchor=\"middle\" x=\"663.81\" y=\"-90.9\" font-family=\"Times,serif\" font-size=\"14.00\">18</text>\n", "</g>\n", "<!-- 20->18 -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>20->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M800.97,-276.78C779.19,-240.93 722.11,-161.79 688.76,-120.59\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"691.28,-118.14 682.23,-112.64 685.88,-122.58 691.28,-118.14\"/>\n", "<text text-anchor=\"middle\" x=\"730.37\" y=\"-202.48\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17 -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>17</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"579.01,-55.63 525.01,-55.63 525.01,-19.63 579.01,-19.63 579.01,-55.63\"/>\n", "<text text-anchor=\"middle\" x=\"552.01\" y=\"-33.93\" font-family=\"Times,serif\" font-size=\"14.00\">17</text>\n", "</g>\n", "<!-- 20->17 -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>20->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M796.23,-276.97C756.75,-231.77 640.09,-114.65 583.45,-62.83\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"585.63,-60.08 575.87,-55.96 580.94,-65.27 585.63,-60.08\"/>\n", "<text text-anchor=\"middle\" x=\"675.34\" y=\"-173.7\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16 -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>16</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"455.07,-36 401.07,-36 401.07,0 455.07,0 455.07,-36\"/>\n", "<text text-anchor=\"middle\" x=\"428.07\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">16</text>\n", "</g>\n", "<!-- 20->16 -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>20->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M790.14,-276.95C729.46,-227.52 542.82,-91.63 463.87,-39.03\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"465.51,-35.92 455.24,-33.33 461.65,-41.76 465.51,-35.92\"/>\n", "<text text-anchor=\"middle\" x=\"612.5\" y=\"-161.79\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15 -->\n", "<g id=\"node6\" class=\"node\">\n", "<title>15</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"331.13,-55.63 277.13,-55.63 277.13,-19.63 331.13,-19.63 331.13,-55.63\"/>\n", "<text text-anchor=\"middle\" x=\"304.13\" y=\"-33.93\" font-family=\"Times,serif\" font-size=\"14.00\">15</text>\n", "</g>\n", "<!-- 20->15 -->\n", "<g id=\"edge6\" class=\"edge\">\n", "<title>20->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.41,-277.58C697.52,-229.33 436.9,-96.43 340.48,-52.07\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"341.69,-48.78 331.14,-47.82 338.79,-55.15 341.69,-48.78\"/>\n", "<text text-anchor=\"middle\" x=\"546.94\" y=\"-153.63\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14 -->\n", "<g id=\"node7\" class=\"node\">\n", "<title>14</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"219.33,-112.6 165.33,-112.6 165.33,-76.6 219.33,-76.6 219.33,-112.6\"/>\n", "<text text-anchor=\"middle\" x=\"192.33\" y=\"-90.9\" font-family=\"Times,serif\" font-size=\"14.00\">14</text>\n", "</g>\n", "<!-- 20->14 -->\n", "<g id=\"edge7\" class=\"edge\">\n", "<title>20->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.33,-283.11C683.43,-245.89 342.78,-135.09 229.37,-103.08\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"230,-99.62 219.43,-100.32 228.13,-106.37 230,-99.62\"/>\n", "<text text-anchor=\"middle\" x=\"491.35\" y=\"-181.9\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13 -->\n", "<g id=\"node8\" class=\"node\">\n", "<title>13</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"130.6,-201.33 76.6,-201.33 76.6,-165.33 130.6,-165.33 130.6,-201.33\"/>\n", "<text text-anchor=\"middle\" x=\"103.6\" y=\"-179.63\" font-family=\"Times,serif\" font-size=\"14.00\">13</text>\n", "</g>\n", "<!-- 20->13 -->\n", "<g id=\"edge8\" class=\"edge\">\n", "<title>20->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.28,-287.95C673.1,-265.51 266.92,-201.04 141.04,-185.99\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"141.09,-182.48 130.76,-184.8 140.29,-189.43 141.09,-182.48\"/>\n", "<text text-anchor=\"middle\" x=\"447.16\" y=\"-225.77\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12 -->\n", "<g id=\"node9\" class=\"node\">\n", "<title>12</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"73.63,-313.13 19.63,-313.13 19.63,-277.13 73.63,-277.13 73.63,-313.13\"/>\n", "<text text-anchor=\"middle\" x=\"46.63\" y=\"-291.43\" font-family=\"Times,serif\" font-size=\"14.00\">12</text>\n", "</g>\n", "<!-- 20->12 -->\n", "<g id=\"edge9\" class=\"edge\">\n", "<title>20->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.36,-292.42C666.97,-287.18 217.12,-287.04 83.96,-292\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"83.7,-288.51 73.85,-292.42 83.99,-295.5 83.7,-288.51\"/>\n", "<text text-anchor=\"middle\" x=\"418.66\" y=\"-281.01\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11 -->\n", "<g id=\"node10\" class=\"node\">\n", "<title>11</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-437.07 0,-437.07 0,-401.07 54,-401.07 54,-437.07\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-415.37\" font-family=\"Times,serif\" font-size=\"14.00\">11</text>\n", "</g>\n", "<!-- 20->11 -->\n", "<g id=\"edge10\" class=\"edge\">\n", "<title>20->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.16,-296.76C664.25,-310.08 199.36,-383.57 64.1,-410.05\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"63.33,-406.64 54.21,-412.02 64.7,-413.5 63.33,-406.64\"/>\n", "<text text-anchor=\"middle\" x=\"408.63\" y=\"-342.21\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10 -->\n", "<g id=\"node11\" class=\"node\">\n", "<title>10</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"73.63,-561.01 19.63,-561.01 19.63,-525.01 73.63,-525.01 73.63,-561.01\"/>\n", "<text text-anchor=\"middle\" x=\"46.63\" y=\"-539.31\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n", "</g>\n", "<!-- 20->10 -->\n", "<g id=\"edge11\" class=\"edge\">\n", "<title>20->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.43,-301.12C667.04,-333.07 216.43,-479.31 83.64,-527.67\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"82.1,-524.5 73.92,-531.24 84.52,-531.07 82.1,-524.5\"/>\n", "<text text-anchor=\"middle\" x=\"447.53\" y=\"-403.2\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9 -->\n", "<g id=\"node12\" class=\"node\">\n", "<title>9</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"130.6,-672.81 76.6,-672.81 76.6,-636.81 130.6,-636.81 130.6,-672.81\"/>\n", "<text text-anchor=\"middle\" x=\"103.6\" y=\"-651.11\" font-family=\"Times,serif\" font-size=\"14.00\">9</text>\n", "</g>\n", "<!-- 20->9 -->\n", "<g id=\"edge12\" class=\"edge\">\n", "<title>20->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.3,-305.91C672.7,-355.96 263.74,-564.15 139.56,-632.85\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"137.82,-629.82 130.78,-637.74 141.22,-635.93 137.82,-629.82\"/>\n", "<text text-anchor=\"middle\" x=\"446.43\" y=\"-458.18\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8 -->\n", "<g id=\"node13\" class=\"node\">\n", "<title>8</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"219.33,-761.54 165.33,-761.54 165.33,-725.54 219.33,-725.54 219.33,-761.54\"/>\n", "<text text-anchor=\"middle\" x=\"192.33\" y=\"-739.84\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", "</g>\n", "<!-- 20->8 -->\n", "<g id=\"edge13\" class=\"edge\">\n", "<title>20->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.47,-311.21C681.09,-378.6 324.52,-637.57 220.8,-718.98\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"218.33,-716.47 212.66,-725.42 222.67,-721.96 218.33,-716.47\"/>\n", "<text text-anchor=\"middle\" x=\"487.13\" y=\"-503.9\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7 -->\n", "<g id=\"node14\" class=\"node\">\n", "<title>7</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"331.13,-818.51 277.13,-818.51 277.13,-782.51 331.13,-782.51 331.13,-818.51\"/>\n", "<text text-anchor=\"middle\" x=\"304.13\" y=\"-796.81\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", "</g>\n", "<!-- 20->7 -->\n", "<g id=\"edge14\" class=\"edge\">\n", "<title>20->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M787.37,-313.24C703.64,-389.72 407.6,-685.66 325.39,-774.94\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"322.69,-772.7 318.54,-782.44 327.87,-777.41 322.69,-772.7\"/>\n", "<text text-anchor=\"middle\" x=\"541.88\" y=\"-547.89\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6 -->\n", "<g id=\"node15\" class=\"node\">\n", "<title>6</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"455.07,-838.14 401.07,-838.14 401.07,-802.14 455.07,-802.14 455.07,-838.14\"/>\n", "<text text-anchor=\"middle\" x=\"428.07\" y=\"-816.44\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", "</g>\n", "<!-- 20->6 -->\n", "<g id=\"edge15\" class=\"edge\">\n", "<title>20->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M792.76,-313.43C729.31,-391.96 505.3,-700.12 443.73,-793.33\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"440.66,-791.62 438.13,-801.91 446.53,-795.45 440.66,-791.62\"/>\n", "<text text-anchor=\"middle\" x=\"603.75\" y=\"-557.18\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5 -->\n", "<g id=\"node16\" class=\"node\">\n", "<title>5</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"579.01,-818.51 525.01,-818.51 525.01,-782.51 579.01,-782.51 579.01,-818.51\"/>\n", "<text text-anchor=\"middle\" x=\"552.01\" y=\"-796.81\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", "</g>\n", "<!-- 20->5 -->\n", "<g id=\"edge16\" class=\"edge\">\n", "<title>20->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M797.07,-313.36C752.55,-389.45 603.47,-681.77 562.38,-773.1\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"559.07,-771.94 558.23,-782.5 565.47,-774.77 559.07,-771.94\"/>\n", "<text text-anchor=\"middle\" x=\"665.23\" y=\"-547.03\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4 -->\n", "<g id=\"node17\" class=\"node\">\n", "<title>4</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"690.81,-761.54 636.81,-761.54 636.81,-725.54 690.81,-725.54 690.81,-761.54\"/>\n", "<text text-anchor=\"middle\" x=\"663.81\" y=\"-739.84\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", "</g>\n", "<!-- 20->4 -->\n", "<g id=\"edge17\" class=\"edge\">\n", "<title>20->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M800.55,-313.21C772.87,-382.5 691.82,-631.4 669.31,-715.54\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"665.87,-714.84 666.75,-725.4 672.65,-716.6 665.87,-714.84\"/>\n", "<text text-anchor=\"middle\" x=\"720.43\" y=\"-518.17\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3 -->\n", "<g id=\"node18\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"779.54,-672.81 725.54,-672.81 725.54,-636.81 779.54,-636.81 779.54,-672.81\"/>\n", "<text text-anchor=\"middle\" x=\"752.54\" y=\"-651.11\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 20->3 -->\n", "<g id=\"edge18\" class=\"edge\">\n", "<title>20->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M803.34,-313.46C789.5,-372.15 760.22,-555.72 753.16,-626.55\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"749.67,-626.26 752.26,-636.53 756.65,-626.89 749.67,-626.26\"/>\n", "<text text-anchor=\"middle\" x=\"763.75\" y=\"-473.8\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node19\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"836.51,-561.01 782.51,-561.01 782.51,-525.01 836.51,-525.01 836.51,-561.01\"/>\n", "<text text-anchor=\"middle\" x=\"809.51\" y=\"-539.31\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 20->2 -->\n", "<g id=\"edge19\" class=\"edge\">\n", "<title>20->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M805.77,-313.36C802.02,-356.16 801.78,-463.32 805.02,-514.68\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"801.54,-515.04 805.77,-524.75 808.52,-514.52 801.54,-515.04\"/>\n", "<text text-anchor=\"middle\" x=\"790.9\" y=\"-402.82\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node20\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"779.54,-201.33 725.54,-201.33 725.54,-165.33 779.54,-165.33 779.54,-201.33\"/>\n", "<text text-anchor=\"middle\" x=\"752.54\" y=\"-179.63\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 20->1 -->\n", "<g id=\"edge20\" class=\"edge\">\n", "<title>20->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M805.72,-276.89C798.71,-258.73 784.87,-230.73 772.94,-210.07\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"775.92,-208.24 767.8,-201.44 769.91,-211.82 775.92,-208.24\"/>\n", "<text text-anchor=\"middle\" x=\"774.83\" y=\"-247.28\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->20 -->\n", "<g id=\"edge21\" class=\"edge\">\n", "<title>19->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M831.18,-400.81C830.11,-380.37 825.14,-347 819.85,-323.23\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"823.22,-322.29 817.49,-313.38 816.42,-323.92 823.22,-322.29\"/>\n", "<text text-anchor=\"middle\" x=\"840.02\" y=\"-365.82\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->19 -->\n", "<g id=\"edge22\" class=\"edge\">\n", "<title>19->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M856.38,-425.81C866.16,-425.96 874.14,-423.71 874.14,-419.07 874.14,-416.24 871.18,-414.3 866.65,-413.25\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"866.66,-409.74 856.38,-412.33 866.03,-416.71 866.66,-409.74\"/>\n", "<text text-anchor=\"middle\" x=\"888.64\" y=\"-415.37\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->18 -->\n", "<g id=\"edge23\" class=\"edge\">\n", "<title>19->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M823.36,-400.62C800.5,-346.04 719,-185.48 682.01,-121.41\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"684.96,-119.53 676.89,-112.68 678.93,-123.08 684.96,-119.53\"/>\n", "<text text-anchor=\"middle\" x=\"738.18\" y=\"-264.81\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->17 -->\n", "<g id=\"edge24\" class=\"edge\">\n", "<title>19->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M819.62,-400.94C780.58,-339.08 633.76,-136.54 575.7,-63.84\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"578.08,-61.22 569.07,-55.64 572.64,-65.62 578.08,-61.22\"/>\n", "<text text-anchor=\"middle\" x=\"683.16\" y=\"-236.19\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->16 -->\n", "<g id=\"edge25\" class=\"edge\">\n", "<title>19->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M814.95,-400.82C757.14,-336.08 539.45,-118.03 458.53,-43.3\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"460.43,-40.29 450.69,-36.12 455.7,-45.45 460.43,-40.29\"/>\n", "<text text-anchor=\"middle\" x=\"622.24\" y=\"-225.86\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->15 -->\n", "<g id=\"edge26\" class=\"edge\">\n", "<title>19->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M809.28,-401.07C730.71,-337.89 441.39,-127.44 339.71,-59.13\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"341.57,-56.17 331.31,-53.53 337.69,-61.99 341.57,-56.17\"/>\n", "<text text-anchor=\"middle\" x=\"560\" y=\"-233.9\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->14 -->\n", "<g id=\"edge27\" class=\"edge\">\n", "<title>19->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M801.91,-401.81C700.43,-344.62 344.41,-163.12 228.84,-109.5\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"230.22,-106.29 219.67,-105.29 227.3,-112.65 230.22,-106.29\"/>\n", "<text text-anchor=\"middle\" x=\"500.87\" y=\"-244.46\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->13 -->\n", "<g id=\"edge28\" class=\"edge\">\n", "<title>19->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M802.01,-407.3C690.64,-365.71 268.48,-228.42 140.55,-192.02\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"141.39,-188.62 130.82,-189.29 139.5,-195.36 141.39,-188.62\"/>\n", "<text text-anchor=\"middle\" x=\"456.78\" y=\"-288.46\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->12 -->\n", "<g id=\"edge29\" class=\"edge\">\n", "<title>19->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M801.72,-411.98C683.78,-387.98 219.67,-314.35 84.04,-297.94\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"84.09,-294.42 73.76,-296.74 83.28,-301.38 84.09,-294.42\"/>\n", "<text text-anchor=\"middle\" x=\"457.38\" y=\"-343.76\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->11 -->\n", "<g id=\"edge30\" class=\"edge\">\n", "<title>19->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M801.99,-416.42C682.37,-411.09 202.14,-410.96 64.21,-416.01\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"63.99,-412.52 54.14,-416.42 64.27,-419.51 63.99,-412.52\"/>\n", "<text text-anchor=\"middle\" x=\"418.6\" y=\"-420.02\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->10 -->\n", "<g id=\"edge31\" class=\"edge\">\n", "<title>19->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M801.79,-420.7C683.88,-434.02 218.99,-507.5 83.73,-533.99\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"82.96,-530.57 73.84,-535.96 84.33,-537.44 82.96,-530.57\"/>\n", "<text text-anchor=\"middle\" x=\"428.26\" y=\"-481.14\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->9 -->\n", "<g id=\"edge32\" class=\"edge\">\n", "<title>19->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M802.05,-425C690.74,-455.71 268.64,-592.69 140.62,-639.39\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"139.05,-636.24 130.88,-642.98 141.47,-642.81 139.05,-636.24\"/>\n", "<text text-anchor=\"middle\" x=\"456.83\" y=\"-521\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->8 -->\n", "<g id=\"edge33\" class=\"edge\">\n", "<title>19->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M802.08,-429.63C700.7,-475.69 343.48,-657.51 228.35,-721.37\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"226.56,-718.36 219.54,-726.3 229.98,-724.47 226.56,-718.36\"/>\n", "<text text-anchor=\"middle\" x=\"500.72\" y=\"-564.3\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->7 -->\n", "<g id=\"edge34\" class=\"edge\">\n", "<title>19->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M801.99,-434.95C711.89,-494.52 423.64,-703.84 332.2,-775.97\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"329.88,-773.35 324.23,-782.32 334.23,-778.83 329.88,-773.35\"/>\n", "<text text-anchor=\"middle\" x=\"552.6\" y=\"-594.26\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->6 -->\n", "<g id=\"edge35\" class=\"edge\">\n", "<title>19->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M806.45,-437.26C735.37,-501.72 518.25,-718.74 449.27,-794.14\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"446.45,-792.04 442.33,-801.81 451.64,-796.74 446.45,-792.04\"/>\n", "<text text-anchor=\"middle\" x=\"613.36\" y=\"-619.5\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->5 -->\n", "<g id=\"edge36\" class=\"edge\">\n", "<title>19->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M812.02,-437.15C761.64,-498.69 615.33,-699.87 567.33,-773.37\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"564.19,-771.77 561.72,-782.08 570.08,-775.56 564.19,-771.77\"/>\n", "<text text-anchor=\"middle\" x=\"675.17\" y=\"-609.06\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->4 -->\n", "<g id=\"edge37\" class=\"edge\">\n", "<title>19->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M815.97,-437.31C783.64,-491.41 702.18,-650.97 673.62,-715.76\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"670.24,-714.75 669.5,-725.32 676.67,-717.52 670.24,-714.75\"/>\n", "<text text-anchor=\"middle\" x=\"730.29\" y=\"-580.34\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->3 -->\n", "<g id=\"edge38\" class=\"edge\">\n", "<title>19->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M819.15,-437.15C802.09,-478.05 769.49,-577.79 756.96,-626.77\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"753.51,-626.14 754.54,-636.69 760.31,-627.8 753.51,-626.14\"/>\n", "<text text-anchor=\"middle\" x=\"773.55\" y=\"-520.76\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->2 -->\n", "<g id=\"edge39\" class=\"edge\">\n", "<title>19->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M821.21,-437.11C815.91,-457.46 810.39,-490.81 808.21,-514.65\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"804.71,-514.62 807.46,-524.85 811.69,-515.13 804.71,-514.62\"/>\n", "<text text-anchor=\"middle\" x=\"800.21\" y=\"-479.68\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 19->1 -->\n", "<g id=\"edge40\" class=\"edge\">\n", "<title>19->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M827.15,-400.97C817.74,-359.92 785.46,-259.6 766.33,-210.83\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"769.56,-209.48 762.58,-201.52 763.07,-212.1 769.56,-209.48\"/>\n", "<text text-anchor=\"middle\" x=\"782.24\" y=\"-309.7\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->20 -->\n", "<g id=\"edge41\" class=\"edge\">\n", "<title>18->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M672.35,-112.95C694.14,-148.8 751.21,-227.94 784.56,-269.14\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"782.04,-271.59 791.1,-277.09 787.45,-267.15 782.04,-271.59\"/>\n", "<text text-anchor=\"middle\" x=\"713.96\" y=\"-179.85\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->19 -->\n", "<g id=\"edge42\" class=\"edge\">\n", "<title>18->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M669.6,-113.05C692.45,-167.62 773.96,-328.19 810.95,-392.26\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"807.99,-394.13 816.07,-400.99 814.03,-390.59 807.99,-394.13\"/>\n", "<text text-anchor=\"middle\" x=\"725.77\" y=\"-241.45\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->18 -->\n", "<g id=\"edge43\" class=\"edge\">\n", "<title>18->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M691.05,-101.34C700.84,-101.49 708.81,-99.24 708.81,-94.6 708.81,-91.77 705.85,-89.83 701.32,-88.78\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"701.33,-85.27 691.05,-87.85 700.7,-92.24 701.33,-85.27\"/>\n", "<text text-anchor=\"middle\" x=\"723.31\" y=\"-90.9\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->17 -->\n", "<g id=\"edge44\" class=\"edge\">\n", "<title>18->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M641.06,-76.54C625.92,-67.55 605.72,-57.08 588.39,-49.16\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"589.66,-45.89 579.1,-45.04 586.82,-52.29 589.66,-45.89\"/>\n", "<text text-anchor=\"middle\" x=\"600.22\" y=\"-51.65\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->16 -->\n", "<g id=\"edge45\" class=\"edge\">\n", "<title>18->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.79,-81C594.52,-64.37 512.68,-37.64 465,-24.76\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"465.65,-21.31 455.08,-22.15 463.87,-28.08 465.65,-21.31\"/>\n", "<text text-anchor=\"middle\" x=\"536.4\" y=\"-56.68\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->15 -->\n", "<g id=\"edge46\" class=\"edge\">\n", "<title>18->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.78,-86.46C573.24,-72.6 414.3,-47.26 341.55,-39.21\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"341.77,-35.72 331.46,-38.16 341.04,-42.68 341.77,-35.72\"/>\n", "<text text-anchor=\"middle\" x=\"474.66\" y=\"-51.64\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->14 -->\n", "<g id=\"edge47\" class=\"edge\">\n", "<title>18->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.77,-91.24C556.87,-86.89 321.73,-86.72 229.78,-90.73\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"229.37,-87.25 219.55,-91.23 229.71,-94.24 229.37,-87.25\"/>\n", "<text text-anchor=\"middle\" x=\"418.78\" y=\"-79.79\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->13 -->\n", "<g id=\"edge48\" class=\"edge\">\n", "<title>18->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.69,-95.77C544.94,-105.54 246.11,-152.69 140.77,-173.8\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"140,-170.38 130.9,-175.81 141.4,-177.24 140,-170.38\"/>\n", "<text text-anchor=\"middle\" x=\"374.23\" y=\"-123.58\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->12 -->\n", "<g id=\"edge49\" class=\"edge\">\n", "<title>18->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.78,-100.3C538.05,-127.22 196.89,-237.88 83.55,-279.5\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"82.08,-276.31 73.92,-283.07 84.52,-282.87 82.08,-276.31\"/>\n", "<text text-anchor=\"middle\" x=\"345.67\" y=\"-178.7\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->11 -->\n", "<g id=\"edge50\" class=\"edge\">\n", "<title>18->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.76,-105.16C535.37,-151.22 178.15,-333.04 63.03,-396.9\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"61.24,-393.89 54.21,-401.82 64.65,-400 61.24,-393.89\"/>\n", "<text text-anchor=\"middle\" x=\"335.39\" y=\"-239.83\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->10 -->\n", "<g id=\"edge51\" class=\"edge\">\n", "<title>18->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.77,-110.67C535.39,-178.07 178.82,-437.03 75.1,-518.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"72.63,-515.94 66.96,-524.89 76.98,-521.43 72.63,-515.94\"/>\n", "<text text-anchor=\"middle\" x=\"341.43\" y=\"-303.36\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->9 -->\n", "<g id=\"edge52\" class=\"edge\">\n", "<title>18->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M641.96,-112.62C552.32,-194.74 214.08,-532.88 125.1,-629.17\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"122.37,-626.97 118.2,-636.71 127.53,-631.7 122.37,-626.97\"/>\n", "<text text-anchor=\"middle\" x=\"369.03\" y=\"-374.7\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->8 -->\n", "<g id=\"edge53\" class=\"edge\">\n", "<title>18->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M647.4,-112.89C574.32,-204.06 280.22,-608.69 208.21,-716.89\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"205.25,-715.03 202.68,-725.3 211.1,-718.88 205.25,-715.03\"/>\n", "<text text-anchor=\"middle\" x=\"413.31\" y=\"-403.69\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->7 -->\n", "<g id=\"edge54\" class=\"edge\">\n", "<title>18->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M651.87,-112.76C596.54,-208.84 367.77,-657.56 314.93,-773.26\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"311.68,-771.95 310.76,-782.51 318.06,-774.82 311.68,-771.95\"/>\n", "<text text-anchor=\"middle\" x=\"468.9\" y=\"-431.81\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->6 -->\n", "<g id=\"edge55\" class=\"edge\">\n", "<title>18->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M655.39,-112.9C617.55,-210.86 467.25,-672.98 434.27,-792.09\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"430.84,-791.35 431.61,-801.92 437.6,-793.18 430.84,-791.35\"/>\n", "<text text-anchor=\"middle\" x=\"530.33\" y=\"-456.3\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->5 -->\n", "<g id=\"edge56\" class=\"edge\">\n", "<title>18->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M658.55,-112.75C637.61,-208.58 566.64,-655.66 553.58,-772.51\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"550.1,-772.16 552.53,-782.47 557.06,-772.89 550.1,-772.16\"/>\n", "<text text-anchor=\"middle\" x=\"591.57\" y=\"-446.43\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->4 -->\n", "<g id=\"edge57\" class=\"edge\">\n", "<title>18->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M661.39,-112.63C655.81,-202.77 655.63,-604.52 660.84,-715.22\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"657.35,-715.49 661.38,-725.29 664.34,-715.12 657.35,-715.49\"/>\n", "<text text-anchor=\"middle\" x=\"646.62\" y=\"-417.73\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->3 -->\n", "<g id=\"edge58\" class=\"edge\">\n", "<title>18->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M664.08,-112.69C671.56,-194.19 724.14,-527.51 744.88,-626.79\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"741.48,-627.65 747.02,-636.68 748.33,-626.17 741.48,-627.65\"/>\n", "<text text-anchor=\"middle\" x=\"689.98\" y=\"-373.54\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->2 -->\n", "<g id=\"edge59\" class=\"edge\">\n", "<title>18->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M666.76,-112.77C684.11,-182.37 765.01,-432.09 796.91,-515.6\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"793.66,-516.89 800.56,-524.94 800.18,-514.35 793.66,-516.89\"/>\n", "<text text-anchor=\"middle\" x=\"717.34\" y=\"-317.99\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 18->1 -->\n", "<g id=\"edge60\" class=\"edge\">\n", "<title>18->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M674.81,-112.9C685.81,-126.1 703.08,-143.94 718.58,-158.41\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"716.27,-161.04 726.01,-165.2 720.99,-155.87 716.27,-161.04\"/>\n", "<text text-anchor=\"middle\" x=\"682.19\" y=\"-139.46\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->20 -->\n", "<g id=\"edge61\" class=\"edge\">\n", "<title>17->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M565.29,-55.79C604.77,-100.99 721.43,-218.11 778.07,-269.94\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"775.88,-272.68 785.65,-276.8 780.58,-267.49 775.88,-272.68\"/>\n", "<text text-anchor=\"middle\" x=\"657.18\" y=\"-151.66\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->19 -->\n", "<g id=\"edge62\" class=\"edge\">\n", "<title>17->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M561.53,-55.76C600.57,-117.62 747.39,-320.16 805.45,-392.86\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"803.07,-395.48 812.07,-401.06 808.51,-391.08 803.07,-395.48\"/>\n", "<text text-anchor=\"middle\" x=\"668.99\" y=\"-213.11\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->18 -->\n", "<g id=\"edge63\" class=\"edge\">\n", "<title>17->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M574.76,-55.69C589.91,-64.67 610.1,-75.14 627.44,-83.07\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"626.17,-86.34 636.73,-87.19 629,-79.94 626.17,-86.34\"/>\n", "<text text-anchor=\"middle\" x=\"586.6\" y=\"-73.18\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->17 -->\n", "<g id=\"edge64\" class=\"edge\">\n", "<title>17->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M579.25,-44.37C589.03,-44.52 597.01,-42.27 597.01,-37.63 597.01,-34.8 594.05,-32.86 589.52,-31.81\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"589.52,-28.3 579.25,-30.89 588.89,-35.27 589.52,-28.3\"/>\n", "<text text-anchor=\"middle\" x=\"611.51\" y=\"-33.93\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->16 -->\n", "<g id=\"edge65\" class=\"edge\">\n", "<title>17->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M524.79,-27.49C507.37,-23.57 484.54,-19.8 465.44,-17.63\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"465.57,-14.13 455.27,-16.6 464.87,-21.09 465.57,-14.13\"/>\n", "<text text-anchor=\"middle\" x=\"509.61\" y=\"-26.36\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->15 -->\n", "<g id=\"edge66\" class=\"edge\">\n", "<title>17->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M524.53,-33.2C479.93,-30.31 391.72,-30.12 341.47,-32.64\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"341.14,-29.15 331.35,-33.21 341.54,-36.14 341.14,-29.15\"/>\n", "<text text-anchor=\"middle\" x=\"447.5\" y=\"-36.72\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->14 -->\n", "<g id=\"edge67\" class=\"edge\">\n", "<title>17->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M524.98,-38.13C461.45,-44.34 302.55,-69.3 229.78,-84.26\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"228.75,-80.9 219.69,-86.39 230.2,-87.75 228.75,-80.9\"/>\n", "<text text-anchor=\"middle\" x=\"362.88\" y=\"-49.99\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->13 -->\n", "<g id=\"edge68\" class=\"edge\">\n", "<title>17->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M524.92,-42.88C447.91,-63.39 227.73,-134.72 140.15,-167.29\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"138.76,-164.07 130.63,-170.87 141.23,-170.62 138.76,-164.07\"/>\n", "<text text-anchor=\"middle\" x=\"318.04\" y=\"-93.88\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->12 -->\n", "<g id=\"edge69\" class=\"edge\">\n", "<title>17->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M524.8,-47.91C439.73,-86.16 178.85,-218.87 82.69,-272.54\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"80.91,-269.52 73.91,-277.48 84.34,-275.62 80.91,-269.52\"/>\n", "<text text-anchor=\"middle\" x=\"289.25\" y=\"-149.03\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->11 -->\n", "<g id=\"edge70\" class=\"edge\">\n", "<title>17->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M524.86,-53.51C434.76,-113.08 146.51,-322.4 55.07,-394.53\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"52.74,-391.91 47.1,-400.88 57.1,-397.39 52.74,-391.91\"/>\n", "<text text-anchor=\"middle\" x=\"275.46\" y=\"-212.82\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->10 -->\n", "<g id=\"edge71\" class=\"edge\">\n", "<title>17->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M529.87,-55.74C446.14,-132.21 150.1,-428.16 67.89,-517.43\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"65.19,-515.19 61.04,-524.94 70.36,-519.91 65.19,-515.19\"/>\n", "<text text-anchor=\"middle\" x=\"284.38\" y=\"-290.38\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->9 -->\n", "<g id=\"edge72\" class=\"edge\">\n", "<title>17->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M535.5,-55.94C464.74,-144.06 188.71,-523.83 119.38,-628.21\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"116.42,-626.34 113.85,-636.62 122.27,-630.18 116.42,-626.34\"/>\n", "<text text-anchor=\"middle\" x=\"312.94\" y=\"-345.88\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->8 -->\n", "<g id=\"edge73\" class=\"edge\">\n", "<title>17->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M540.06,-55.79C484.73,-151.87 255.97,-600.59 203.12,-716.29\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"199.87,-714.98 198.96,-725.54 206.25,-717.86 199.87,-714.98\"/>\n", "<text text-anchor=\"middle\" x=\"357.09\" y=\"-389.84\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->7 -->\n", "<g id=\"edge74\" class=\"edge\">\n", "<title>17->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M543.7,-55.78C504.79,-156.77 344.65,-649.16 310.39,-772.48\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"306.96,-771.73 307.72,-782.3 313.72,-773.57 306.96,-771.73\"/>\n", "<text text-anchor=\"middle\" x=\"441.54\" y=\"-417.93\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->6 -->\n", "<g id=\"edge75\" class=\"edge\">\n", "<title>17->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M546.84,-55.85C524.63,-158.72 444.02,-666.7 429.77,-792.11\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"426.29,-791.77 428.7,-802.08 433.25,-792.52 426.29,-791.77\"/>\n", "<text text-anchor=\"middle\" x=\"502.81\" y=\"-427.78\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->5 -->\n", "<g id=\"edge76\" class=\"edge\">\n", "<title>17->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M549.76,-55.74C543.94,-156.49 543.76,-647.97 549.24,-772.03\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"545.75,-772.42 549.75,-782.24 552.74,-772.07 545.75,-772.42\"/>\n", "<text text-anchor=\"middle\" x=\"535\" y=\"-417.68\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->4 -->\n", "<g id=\"edge77\" class=\"edge\">\n", "<title>17->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M552.54,-55.79C561.93,-151.66 632.55,-598.73 656.48,-715.55\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"653.09,-716.45 658.58,-725.51 659.94,-715 653.09,-716.45\"/>\n", "<text text-anchor=\"middle\" x=\"590.01\" y=\"-389.47\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->3 -->\n", "<g id=\"edge78\" class=\"edge\">\n", "<title>17->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M555.36,-55.86C578.02,-143.48 700.53,-521.21 740.33,-627.12\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"737.18,-628.69 744.03,-636.78 743.72,-626.19 737.18,-628.69\"/>\n", "<text text-anchor=\"middle\" x=\"633.35\" y=\"-345.29\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->2 -->\n", "<g id=\"edge79\" class=\"edge\">\n", "<title>17->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M558.23,-55.64C590.98,-131.47 740.13,-424.71 791.92,-515.85\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"789.02,-517.83 797.05,-524.75 795.09,-514.33 789.02,-517.83\"/>\n", "<text text-anchor=\"middle\" x=\"660.58\" y=\"-289.54\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 17->1 -->\n", "<g id=\"edge80\" class=\"edge\">\n", "<title>17->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M569.83,-55.86C602.82,-83.52 673.74,-135.4 716.91,-163.79\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"715.12,-166.8 725.42,-169.31 718.93,-160.93 715.12,-166.8\"/>\n", "<text text-anchor=\"middle\" x=\"628.87\" y=\"-113.63\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->20 -->\n", "<g id=\"edge81\" class=\"edge\">\n", "<title>16->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M447.44,-36.18C508.13,-85.61 694.76,-221.5 773.71,-274.1\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"772.07,-277.21 782.34,-279.8 775.93,-271.37 772.07,-277.21\"/>\n", "<text text-anchor=\"middle\" x=\"596.08\" y=\"-143.94\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->19 -->\n", "<g id=\"edge82\" class=\"edge\">\n", "<title>16->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M442.26,-36.25C500.07,-100.99 717.76,-319.05 798.68,-393.77\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"796.78,-396.78 806.52,-400.95 801.51,-391.62 796.78,-396.78\"/>\n", "<text text-anchor=\"middle\" x=\"605.97\" y=\"-203.81\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->18 -->\n", "<g id=\"edge83\" class=\"edge\">\n", "<title>16->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M455.09,-31.6C497.37,-48.22 579.2,-74.95 626.88,-87.84\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"626.24,-91.29 636.8,-90.45 628.02,-84.52 626.24,-91.29\"/>\n", "<text text-anchor=\"middle\" x=\"555.49\" y=\"-63.52\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->17 -->\n", "<g id=\"edge84\" class=\"edge\">\n", "<title>16->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M455.29,-28.14C472.71,-32.06 495.53,-35.83 514.64,-38\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"514.51,-41.5 524.81,-39.03 515.21,-34.54 514.51,-41.5\"/>\n", "<text text-anchor=\"middle\" x=\"499.46\" y=\"-36.87\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->16 -->\n", "<g id=\"edge85\" class=\"edge\">\n", "<title>16->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M455.31,-24.74C465.09,-24.89 473.07,-22.64 473.07,-18 473.07,-15.17 470.11,-13.23 465.58,-12.18\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"465.59,-8.67 455.31,-11.26 464.96,-15.64 465.59,-8.67\"/>\n", "<text text-anchor=\"middle\" x=\"487.57\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->15 -->\n", "<g id=\"edge86\" class=\"edge\">\n", "<title>16->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M400.9,-16.6C383.37,-18.13 360.33,-21.57 341.13,-25.41\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"340.26,-22.02 331.2,-27.52 341.71,-28.87 340.26,-22.02\"/>\n", "<text text-anchor=\"middle\" x=\"356.52\" y=\"-9.8\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->14 -->\n", "<g id=\"edge87\" class=\"edge\">\n", "<title>16->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M401.03,-22.16C358.7,-32.9 276.75,-59.27 229.1,-77.25\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"227.56,-74.09 219.48,-80.95 230.07,-80.62 227.56,-74.09\"/>\n", "<text text-anchor=\"middle\" x=\"329.57\" y=\"-53.5\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->13 -->\n", "<g id=\"edge88\" class=\"edge\">\n", "<title>16->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M400.86,-27.55C342.28,-53.31 204.35,-123.34 139.04,-160.21\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"137.27,-157.19 130.32,-165.18 140.74,-163.27 137.27,-157.19\"/>\n", "<text text-anchor=\"middle\" x=\"284.45\" y=\"-97.68\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->12 -->\n", "<g id=\"edge89\" class=\"edge\">\n", "<title>16->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M400.95,-33.3C330.81,-79.11 144.29,-214.52 73.94,-270.56\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"71.55,-268 65.95,-276.99 75.94,-273.45 71.55,-268\"/>\n", "<text text-anchor=\"middle\" x=\"222.95\" y=\"-140.73\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->11 -->\n", "<g id=\"edge90\" class=\"edge\">\n", "<title>16->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M405.38,-36.19C334.3,-100.65 117.18,-317.67 48.2,-393.07\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"45.38,-390.97 41.26,-400.74 50.57,-395.67 45.38,-390.97\"/>\n", "<text text-anchor=\"middle\" x=\"212.29\" y=\"-218.43\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->10 -->\n", "<g id=\"edge91\" class=\"edge\">\n", "<title>16->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M411.32,-36.3C347.87,-114.83 123.86,-422.99 62.29,-516.2\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"59.22,-514.49 56.69,-524.78 65.09,-518.31 59.22,-514.49\"/>\n", "<text text-anchor=\"middle\" x=\"222.31\" y=\"-280.05\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->9 -->\n", "<g id=\"edge92\" class=\"edge\">\n", "<title>16->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M415.93,-36.26C364.06,-125.93 163.46,-519.37 114.35,-627.34\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"111.09,-626.04 110.2,-636.6 117.48,-628.9 111.09,-626.04\"/>\n", "<text text-anchor=\"middle\" x=\"250.64\" y=\"-335.6\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->8 -->\n", "<g id=\"edge93\" class=\"edge\">\n", "<title>16->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M419.64,-36.3C381.81,-134.27 231.51,-596.39 198.52,-715.49\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"195.1,-714.75 195.86,-725.32 201.85,-716.58 195.1,-714.75\"/>\n", "<text text-anchor=\"middle\" x=\"294.58\" y=\"-379.7\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->7 -->\n", "<g id=\"edge94\" class=\"edge\">\n", "<title>16->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M422.91,-36.22C400.69,-139.09 320.09,-647.07 305.84,-772.48\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"302.35,-772.14 304.76,-782.45 309.31,-772.89 302.35,-772.14\"/>\n", "<text text-anchor=\"middle\" x=\"349.87\" y=\"-408.15\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->6 -->\n", "<g id=\"edge95\" class=\"edge\">\n", "<title>16->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M425.86,-36.26C419.98,-140.84 419.81,-663.54 425.36,-791.73\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"421.88,-792.09 425.86,-801.91 428.87,-791.75 421.88,-792.09\"/>\n", "<text text-anchor=\"middle\" x=\"411.11\" y=\"-417.79\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->5 -->\n", "<g id=\"edge96\" class=\"edge\">\n", "<title>16->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M428.71,-36.16C439.03,-138.87 519.31,-646.83 544.78,-772.4\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"541.39,-773.31 546.86,-782.39 548.25,-771.88 541.39,-773.31\"/>\n", "<text text-anchor=\"middle\" x=\"501.25\" y=\"-408.08\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->4 -->\n", "<g id=\"edge97\" class=\"edge\">\n", "<title>16->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M431.62,-36.28C457.39,-134.27 607.6,-597.18 651.81,-715.8\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"648.59,-717.17 655.4,-725.28 655.13,-714.69 648.59,-717.17\"/>\n", "<text text-anchor=\"middle\" x=\"527.22\" y=\"-379.84\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->3 -->\n", "<g id=\"edge98\" class=\"edge\">\n", "<title>16->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M434.63,-36.11C473.95,-125.64 674.89,-520.47 735.42,-627.81\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"732.51,-629.78 740.51,-636.73 738.59,-626.31 732.51,-629.78\"/>\n", "<text text-anchor=\"middle\" x=\"570.52\" y=\"-335.76\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->2 -->\n", "<g id=\"edge99\" class=\"edge\">\n", "<title>16->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M438.04,-36.09C488.37,-114.44 713.12,-424.17 786.42,-516.77\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"783.85,-519.16 792.83,-524.79 789.32,-514.79 783.85,-519.16\"/>\n", "<text text-anchor=\"middle\" x=\"597.73\" y=\"-280.23\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 16->1 -->\n", "<g id=\"edge100\" class=\"edge\">\n", "<title>16->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M454.75,-36.12C512.7,-69.59 650.03,-139.69 715.99,-169.6\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"714.63,-172.82 725.18,-173.71 717.48,-166.43 714.63,-172.82\"/>\n", "<text text-anchor=\"middle\" x=\"570.87\" y=\"-106.66\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->20 -->\n", "<g id=\"edge101\" class=\"edge\">\n", "<title>15->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M331.24,-55.19C416.12,-103.43 676.74,-236.33 773.17,-280.69\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"771.96,-283.98 782.51,-284.94 774.85,-277.61 771.96,-283.98\"/>\n", "<text text-anchor=\"middle\" x=\"537.7\" y=\"-171.74\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->19 -->\n", "<g id=\"edge102\" class=\"edge\">\n", "<title>15->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M323.99,-55.63C402.56,-118.81 691.88,-329.27 793.56,-397.57\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"791.7,-400.53 801.96,-403.17 795.58,-394.71 791.7,-400.53\"/>\n", "<text text-anchor=\"middle\" x=\"544.28\" y=\"-215.4\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->18 -->\n", "<g id=\"edge103\" class=\"edge\">\n", "<title>15->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M331.16,-45.77C394.7,-59.63 553.65,-84.97 626.4,-93.01\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"626.18,-96.51 636.49,-94.07 626.91,-89.55 626.18,-96.51\"/>\n", "<text text-anchor=\"middle\" x=\"464.28\" y=\"-73.19\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->17 -->\n", "<g id=\"edge104\" class=\"edge\">\n", "<title>15->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M331.61,-42.06C376.21,-44.95 464.42,-45.14 514.67,-42.62\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"515,-46.11 524.79,-42.05 514.61,-39.12 515,-46.11\"/>\n", "<text text-anchor=\"middle\" x=\"408.64\" y=\"-46.14\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->16 -->\n", "<g id=\"edge105\" class=\"edge\">\n", "<title>15->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M331.3,-39.03C348.84,-37.5 371.88,-34.06 391.08,-30.22\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"391.95,-33.61 401,-28.11 390.49,-26.76 391.95,-33.61\"/>\n", "<text text-anchor=\"middle\" x=\"346.69\" y=\"-23.42\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->15 -->\n", "<g id=\"edge106\" class=\"edge\">\n", "<title>15->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M331.37,-44.37C341.16,-44.52 349.13,-42.27 349.13,-37.63 349.13,-34.8 346.17,-32.86 341.64,-31.81\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"341.65,-28.3 331.37,-30.89 341.02,-35.27 341.65,-28.3\"/>\n", "<text text-anchor=\"middle\" x=\"363.63\" y=\"-33.93\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->14 -->\n", "<g id=\"edge107\" class=\"edge\">\n", "<title>15->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M277.01,-45.05C261.08,-51.87 240.89,-61.93 224.2,-71.28\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"222.27,-68.36 215.35,-76.38 225.76,-74.43 222.27,-68.36\"/>\n", "<text text-anchor=\"middle\" x=\"236.11\" y=\"-61.97\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->13 -->\n", "<g id=\"edge108\" class=\"edge\">\n", "<title>15->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M276.83,-51.76C237.97,-76.59 167.38,-127.77 129.38,-158.55\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"126.84,-156.1 121.34,-165.16 131.28,-161.51 126.84,-156.1\"/>\n", "<text text-anchor=\"middle\" x=\"217.6\" y=\"-108.95\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->12 -->\n", "<g id=\"edge109\" class=\"edge\">\n", "<title>15->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M280.29,-55.94C229.88,-101.07 113.63,-217.25 66.7,-269.33\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"63.81,-267.31 59.79,-277.12 69.04,-271.96 63.81,-267.31\"/>\n", "<text text-anchor=\"middle\" x=\"159\" y=\"-151.43\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->11 -->\n", "<g id=\"edge110\" class=\"edge\">\n", "<title>15->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M287.01,-55.71C236.63,-117.25 90.33,-318.43 42.32,-391.93\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"39.18,-390.33 36.71,-400.64 45.07,-394.12 39.18,-390.33\"/>\n", "<text text-anchor=\"middle\" x=\"150.17\" y=\"-227.62\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->10 -->\n", "<g id=\"edge111\" class=\"edge\">\n", "<title>15->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M291.69,-55.85C247.17,-131.95 98.09,-424.26 57.01,-515.6\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"53.69,-514.44 52.85,-525 60.1,-517.27 53.69,-514.44\"/>\n", "<text text-anchor=\"middle\" x=\"159.85\" y=\"-289.53\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->9 -->\n", "<g id=\"edge112\" class=\"edge\">\n", "<title>15->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M295.62,-55.66C261.54,-142.82 138.64,-520.58 109.54,-626.89\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"106.15,-626.02 106.95,-636.59 112.91,-627.83 106.15,-626.02\"/>\n", "<text text-anchor=\"middle\" x=\"188.08\" y=\"-345.07\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->8 -->\n", "<g id=\"edge113\" class=\"edge\">\n", "<title>15->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M298.87,-55.78C277.93,-151.61 206.96,-598.7 193.9,-715.54\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"190.42,-715.19 192.85,-725.5 197.38,-715.92 190.42,-715.19\"/>\n", "<text text-anchor=\"middle\" x=\"231.88\" y=\"-389.46\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->7 -->\n", "<g id=\"edge114\" class=\"edge\">\n", "<title>15->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M301.88,-55.74C296.06,-156.49 295.89,-647.97 301.36,-772.03\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"297.88,-772.42 301.87,-782.24 304.87,-772.07 297.88,-772.42\"/>\n", "<text text-anchor=\"middle\" x=\"287.12\" y=\"-417.68\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->6 -->\n", "<g id=\"edge115\" class=\"edge\">\n", "<title>15->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M304.77,-55.79C315.1,-158.5 395.37,-666.46 420.84,-792.03\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"417.46,-792.94 422.93,-802.02 424.31,-791.51 417.46,-792.94\"/>\n", "<text text-anchor=\"middle\" x=\"348.31\" y=\"-427.71\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->5 -->\n", "<g id=\"edge116\" class=\"edge\">\n", "<title>15->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M307.68,-55.68C334.28,-156.51 494.34,-649.74 540.05,-772.71\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"536.82,-774.07 543.63,-782.18 543.37,-771.59 536.82,-774.07\"/>\n", "<text text-anchor=\"middle\" x=\"438.36\" y=\"-402.99\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->4 -->\n", "<g id=\"edge117\" class=\"edge\">\n", "<title>15->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M310.82,-55.76C353.32,-151.87 582.11,-601.33 646.86,-716.58\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"643.95,-718.53 651.93,-725.49 650.03,-715.07 643.95,-718.53\"/>\n", "<text text-anchor=\"middle\" x=\"464.34\" y=\"-374.97\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->3 -->\n", "<g id=\"edge118\" class=\"edge\">\n", "<title>15->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M314.42,-55.87C371.54,-144 648.17,-525.09 729.87,-628.74\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"727.32,-631.16 736.29,-636.81 732.8,-626.81 727.32,-631.16\"/>\n", "<text text-anchor=\"middle\" x=\"507.64\" y=\"-346.1\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->2 -->\n", "<g id=\"edge119\" class=\"edge\">\n", "<title>15->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M318.54,-55.7C387.59,-132.26 684.13,-429.12 779.73,-517.87\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"777.59,-520.65 787.31,-524.85 782.33,-515.5 777.59,-520.65\"/>\n", "<text text-anchor=\"middle\" x=\"534.64\" y=\"-290.59\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 15->1 -->\n", "<g id=\"edge120\" class=\"edge\">\n", "<title>15->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M331.44,-50.19C408.57,-79.67 628.05,-151.11 715.72,-175.43\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"714.93,-178.84 725.5,-178.09 716.77,-172.08 714.93,-178.84\"/>\n", "<text text-anchor=\"middle\" x=\"509.08\" y=\"-116.61\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->20 -->\n", "<g id=\"edge121\" class=\"edge\">\n", "<title>14->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.51,-106.62C318.41,-143.84 659.06,-254.65 772.47,-286.65\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"771.84,-290.11 782.41,-289.41 773.71,-283.36 771.84,-290.11\"/>\n", "<text text-anchor=\"middle\" x=\"481.49\" y=\"-200.44\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->19 -->\n", "<g id=\"edge122\" class=\"edge\">\n", "<title>14->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.56,-111.85C321.03,-169.04 677.06,-350.55 792.63,-404.17\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"791.25,-407.38 801.8,-408.38 794.17,-401.02 791.25,-407.38\"/>\n", "<text text-anchor=\"middle\" x=\"491.59\" y=\"-261.81\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->18 -->\n", "<g id=\"edge123\" class=\"edge\">\n", "<title>14->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.37,-97.95C299.27,-102.3 534.41,-102.47 626.36,-98.46\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"626.77,-101.95 636.59,-97.96 626.43,-94.95 626.77,-101.95\"/>\n", "<text text-anchor=\"middle\" x=\"408.36\" y=\"-102.01\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->17 -->\n", "<g id=\"edge124\" class=\"edge\">\n", "<title>14->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.36,-94.1C282.89,-87.89 441.78,-62.93 514.55,-47.97\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"515.58,-51.33 524.64,-45.84 514.13,-44.48 515.58,-51.33\"/>\n", "<text text-anchor=\"middle\" x=\"352.46\" y=\"-74.84\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->16 -->\n", "<g id=\"edge125\" class=\"edge\">\n", "<title>14->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.36,-90.44C261.69,-79.7 343.64,-53.33 391.3,-35.35\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"392.84,-38.51 400.92,-31.65 390.33,-31.97 392.84,-38.51\"/>\n", "<text text-anchor=\"middle\" x=\"290.83\" y=\"-66.7\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->15 -->\n", "<g id=\"edge126\" class=\"edge\">\n", "<title>14->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.45,-87.17C235.38,-80.36 255.57,-70.29 272.26,-60.94\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"274.19,-63.87 281.11,-55.85 270.7,-57.8 274.19,-63.87\"/>\n", "<text text-anchor=\"middle\" x=\"260.35\" y=\"-77.86\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->14 -->\n", "<g id=\"edge127\" class=\"edge\">\n", "<title>14->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.57,-101.34C229.35,-101.49 237.33,-99.24 237.33,-94.6 237.33,-91.77 234.37,-89.83 229.84,-88.78\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"229.84,-85.27 219.57,-87.85 229.21,-92.24 229.84,-85.27\"/>\n", "<text text-anchor=\"middle\" x=\"251.83\" y=\"-90.9\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->13 -->\n", "<g id=\"edge128\" class=\"edge\">\n", "<title>14->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M165.73,-112.78C151.27,-125.7 133.87,-143.14 121.1,-157.48\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"118.42,-155.23 114.54,-165.09 123.72,-159.81 118.42,-155.23\"/>\n", "<text text-anchor=\"middle\" x=\"128.92\" y=\"-138.93\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->12 -->\n", "<g id=\"edge129\" class=\"edge\">\n", "<title>14->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M173.8,-112.77C144.07,-148.31 86.87,-226.88 60.42,-268.37\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"57.29,-266.77 54.97,-277.11 63.23,-270.47 57.29,-266.77\"/>\n", "<text text-anchor=\"middle\" x=\"131.61\" y=\"-194.37\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->11 -->\n", "<g id=\"edge130\" class=\"edge\">\n", "<title>14->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M179.16,-112.84C146.82,-166.94 65.36,-326.5 36.8,-391.29\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"33.43,-390.28 32.69,-400.84 39.86,-393.04 33.43,-390.28\"/>\n", "<text text-anchor=\"middle\" x=\"93.48\" y=\"-255.87\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->10 -->\n", "<g id=\"edge131\" class=\"edge\">\n", "<title>14->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M183.37,-112.67C155.68,-181.97 74.64,-430.87 52.13,-515\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"48.69,-514.31 49.57,-524.87 55.47,-516.07 48.69,-514.31\"/>\n", "<text text-anchor=\"middle\" x=\"103.25\" y=\"-317.64\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->9 -->\n", "<g id=\"edge132\" class=\"edge\">\n", "<title>14->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M186.78,-112.83C168.47,-194.43 115.69,-526.55 104.91,-626.33\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"101.4,-626.25 103.88,-636.55 108.37,-626.95 101.4,-626.25\"/>\n", "<text text-anchor=\"middle\" x=\"131.34\" y=\"-373.38\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->8 -->\n", "<g id=\"edge133\" class=\"edge\">\n", "<title>14->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M189.91,-112.63C184.32,-202.77 184.14,-604.52 189.35,-715.22\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"185.86,-715.49 189.89,-725.29 192.85,-715.12 185.86,-715.49\"/>\n", "<text text-anchor=\"middle\" x=\"175.13\" y=\"-417.73\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->7 -->\n", "<g id=\"edge134\" class=\"edge\">\n", "<title>14->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M192.86,-112.76C202.25,-208.63 272.87,-655.7 296.8,-772.52\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"293.41,-773.42 298.9,-782.48 300.26,-771.97 293.41,-773.42\"/>\n", "<text text-anchor=\"middle\" x=\"230.33\" y=\"-446.44\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->6 -->\n", "<g id=\"edge135\" class=\"edge\">\n", "<title>14->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M195.88,-112.88C221.64,-210.86 371.85,-673.77 416.07,-792.4\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"412.84,-793.77 419.66,-801.88 419.39,-791.29 412.84,-793.77\"/>\n", "<text text-anchor=\"middle\" x=\"291.47\" y=\"-456.44\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->5 -->\n", "<g id=\"edge136\" class=\"edge\">\n", "<title>14->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M199.02,-112.73C241.51,-208.84 470.31,-658.3 535.06,-773.55\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"532.14,-775.49 540.12,-782.46 538.23,-772.04 532.14,-775.49\"/>\n", "<text text-anchor=\"middle\" x=\"352.54\" y=\"-446.94\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->4 -->\n", "<g id=\"edge137\" class=\"edge\">\n", "<title>14->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M202.57,-112.66C261.55,-203.5 556.31,-609.54 641.07,-717.27\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"638.52,-719.7 647.48,-725.35 644.01,-715.34 638.52,-719.7\"/>\n", "<text text-anchor=\"middle\" x=\"407.32\" y=\"-403.77\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->3 -->\n", "<g id=\"edge138\" class=\"edge\">\n", "<title>14->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M207.03,-112.82C281.91,-195.42 620.18,-533.99 722.91,-629.61\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"720.74,-632.36 730.46,-636.58 725.49,-627.22 720.74,-632.36\"/>\n", "<text text-anchor=\"middle\" x=\"479.47\" y=\"-360.01\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->2 -->\n", "<g id=\"edge139\" class=\"edge\">\n", "<title>14->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M212.7,-112.75C302.05,-184.08 659.43,-443.96 774,-521.26\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"772.2,-524.27 782.45,-526.93 776.1,-518.45 772.2,-524.27\"/>\n", "<text text-anchor=\"middle\" x=\"478.85\" y=\"-320.81\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 14->1 -->\n", "<g id=\"edge140\" class=\"edge\">\n", "<title>14->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.62,-102.11C311.52,-121.38 609.89,-168.78 715.27,-181.03\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"715.1,-184.53 725.43,-182.16 715.88,-177.57 715.1,-184.53\"/>\n", "<text text-anchor=\"middle\" x=\"452.94\" y=\"-145.37\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->20 -->\n", "<g id=\"edge141\" class=\"edge\">\n", "<title>13->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.83,-190.51C240.01,-212.95 646.19,-277.42 772.07,-292.47\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"772.02,-295.98 782.35,-293.66 772.82,-289.03 772.02,-295.98\"/>\n", "<text text-anchor=\"middle\" x=\"436.95\" y=\"-245.29\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->19 -->\n", "<g id=\"edge142\" class=\"edge\">\n", "<title>13->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.73,-195.1C242.1,-236.69 664.26,-373.97 792.19,-410.37\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"791.35,-413.77 801.92,-413.11 793.24,-407.03 791.35,-413.77\"/>\n", "<text text-anchor=\"middle\" x=\"446.96\" y=\"-306.54\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->18 -->\n", "<g id=\"edge143\" class=\"edge\">\n", "<title>13->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.72,-182.16C222.48,-172.39 521.3,-125.23 626.65,-104.13\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"627.42,-107.54 636.51,-102.11 626.01,-100.69 627.42,-107.54\"/>\n", "<text text-anchor=\"middle\" x=\"364.18\" y=\"-146.94\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->17 -->\n", "<g id=\"edge144\" class=\"edge\">\n", "<title>13->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.69,-178.07C207.7,-157.57 427.88,-86.23 515.45,-53.67\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"516.85,-56.89 524.97,-50.08 514.38,-50.34 516.85,-56.89\"/>\n", "<text text-anchor=\"middle\" x=\"308.57\" y=\"-119.67\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->16 -->\n", "<g id=\"edge145\" class=\"edge\">\n", "<title>13->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.8,-173.78C189.39,-148.01 327.32,-77.98 392.63,-41.12\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"394.4,-44.14 401.35,-36.14 390.93,-38.06 394.4,-44.14\"/>\n", "<text text-anchor=\"middle\" x=\"247.22\" y=\"-111.25\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->15 -->\n", "<g id=\"edge146\" class=\"edge\">\n", "<title>13->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.9,-169.19C169.76,-144.36 240.35,-93.19 278.36,-62.41\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"280.89,-64.85 286.39,-55.8 276.45,-59.45 280.89,-64.85\"/>\n", "<text text-anchor=\"middle\" x=\"190.13\" y=\"-119.6\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->14 -->\n", "<g id=\"edge147\" class=\"edge\">\n", "<title>13->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.2,-165.15C144.65,-152.22 162.06,-134.79 174.82,-120.44\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"177.5,-122.69 181.38,-112.83 172.2,-118.12 177.5,-122.69\"/>\n", "<text text-anchor=\"middle\" x=\"159.76\" y=\"-131.59\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->13 -->\n", "<g id=\"edge148\" class=\"edge\">\n", "<title>13->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.84,-190.07C140.62,-190.22 148.6,-187.97 148.6,-183.33 148.6,-180.5 145.64,-178.56 141.11,-177.51\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"141.11,-174 130.84,-176.58 140.48,-180.97 141.11,-174\"/>\n", "<text text-anchor=\"middle\" x=\"163.1\" y=\"-179.63\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->12 -->\n", "<g id=\"edge149\" class=\"edge\">\n", "<title>13->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M88.37,-201.4C77.35,-219.26 63.2,-246.75 54.33,-267.37\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"50.99,-266.29 50.43,-276.87 57.46,-268.95 50.99,-266.29\"/>\n", "<text text-anchor=\"middle\" x=\"56.85\" y=\"-238.19\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->11 -->\n", "<g id=\"edge150\" class=\"edge\">\n", "<title>13->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M93.61,-201.41C76.55,-242.31 43.94,-342.05 31.41,-391.03\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"27.96,-390.4 28.99,-400.94 34.76,-392.06 27.96,-390.4\"/>\n", "<text text-anchor=\"middle\" x=\"77.01\" y=\"-300.02\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->10 -->\n", "<g id=\"edge151\" class=\"edge\">\n", "<title>13->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M97.43,-201.65C83.58,-260.35 54.31,-443.91 47.25,-514.74\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"43.76,-514.45 46.34,-524.73 50.73,-515.08 43.76,-514.45\"/>\n", "<text text-anchor=\"middle\" x=\"57.84\" y=\"-362\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->9 -->\n", "<g id=\"edge152\" class=\"edge\">\n", "<title>13->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M100.78,-201.52C95.74,-273.57 95.54,-539.22 100.18,-626.69\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"96.69,-626.9 100.79,-636.67 103.68,-626.48 96.69,-626.9\"/>\n", "<text text-anchor=\"middle\" x=\"114.98\" y=\"-402.9\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->8 -->\n", "<g id=\"edge153\" class=\"edge\">\n", "<title>13->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M103.86,-201.42C111.34,-282.92 163.93,-616.24 184.66,-715.52\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"181.27,-716.38 186.8,-725.41 188.11,-714.9 181.27,-716.38\"/>\n", "<text text-anchor=\"middle\" x=\"129.76\" y=\"-462.27\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->7 -->\n", "<g id=\"edge154\" class=\"edge\">\n", "<title>13->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M106.95,-201.56C129.61,-289.17 252.12,-666.91 291.92,-772.82\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"288.77,-774.38 295.61,-782.47 295.31,-771.88 288.77,-774.38\"/>\n", "<text text-anchor=\"middle\" x=\"184.94\" y=\"-490.99\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->6 -->\n", "<g id=\"edge155\" class=\"edge\">\n", "<title>13->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M110.16,-201.44C149.47,-290.96 350.42,-685.8 410.95,-793.14\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"408.04,-795.11 416.03,-802.06 414.12,-791.64 408.04,-795.11\"/>\n", "<text text-anchor=\"middle\" x=\"246.05\" y=\"-501.09\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->5 -->\n", "<g id=\"edge156\" class=\"edge\">\n", "<title>13->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M113.88,-201.57C171.01,-289.69 447.63,-670.79 529.33,-774.44\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"526.79,-776.86 535.75,-782.51 532.27,-772.5 526.79,-776.86\"/>\n", "<text text-anchor=\"middle\" x=\"307.11\" y=\"-491.8\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->4 -->\n", "<g id=\"edge157\" class=\"edge\">\n", "<title>13->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M118.3,-201.55C193.18,-284.15 531.45,-622.72 634.19,-718.34\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"632.01,-721.09 641.73,-725.31 636.76,-715.95 632.01,-721.09\"/>\n", "<text text-anchor=\"middle\" x=\"361.74\" y=\"-463.74\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->3 -->\n", "<g id=\"edge158\" class=\"edge\">\n", "<title>13->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M124,-201.43C216.7,-275.29 598.23,-552.72 717.07,-633\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"715.23,-635.99 725.49,-638.66 719.13,-630.18 715.23,-635.99\"/>\n", "<text text-anchor=\"middle\" x=\"406.04\" y=\"-421.02\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->2 -->\n", "<g id=\"edge159\" class=\"edge\">\n", "<title>13->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.84,-200.43C240.4,-261.96 648.74,-470.12 773.25,-528.06\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"771.85,-531.27 782.4,-532.28 774.78,-524.91 771.85,-531.27\"/>\n", "<text text-anchor=\"middle\" x=\"437.55\" y=\"-368.05\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 13->1 -->\n", "<g id=\"edge160\" class=\"edge\">\n", "<title>13->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.66,-186.24C233.11,-191.2 597.39,-191.35 715.37,-186.68\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"715.53,-190.18 725.37,-186.25 715.23,-183.19 715.53,-190.18\"/>\n", "<text text-anchor=\"middle\" x=\"408.52\" y=\"-190.26\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->20 -->\n", "<g id=\"edge161\" class=\"edge\">\n", "<title>12->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.78,-297.84C189.17,-303.09 639.02,-303.23 772.18,-298.26\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"772.44,-301.75 782.29,-297.85 772.15,-294.76 772.44,-301.75\"/>\n", "<text text-anchor=\"middle\" x=\"408.48\" y=\"-301.85\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->19 -->\n", "<g id=\"edge162\" class=\"edge\">\n", "<title>12->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M74.06,-302.22C191.99,-326.23 656.1,-399.86 791.73,-416.26\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"791.68,-419.78 802.02,-417.47 792.49,-412.83 791.68,-419.78\"/>\n", "<text text-anchor=\"middle\" x=\"418.39\" y=\"-363.04\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->18 -->\n", "<g id=\"edge163\" class=\"edge\">\n", "<title>12->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.66,-289.43C172.39,-262.51 513.55,-151.85 626.89,-110.23\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"628.36,-113.42 636.52,-106.66 625.93,-106.86 628.36,-113.42\"/>\n", "<text text-anchor=\"middle\" x=\"335.78\" y=\"-203.63\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->17 -->\n", "<g id=\"edge164\" class=\"edge\">\n", "<title>12->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.83,-284.85C158.91,-246.61 419.79,-113.9 515.95,-60.23\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"517.73,-63.24 524.73,-55.29 514.3,-57.14 517.73,-63.24\"/>\n", "<text text-anchor=\"middle\" x=\"280.39\" y=\"-176.34\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->16 -->\n", "<g id=\"edge165\" class=\"edge\">\n", "<title>12->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.75,-279.83C143.89,-234.02 330.41,-98.61 400.76,-42.57\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"403.15,-45.14 408.75,-36.14 398.76,-39.68 403.15,-45.14\"/>\n", "<text text-anchor=\"middle\" x=\"222.75\" y=\"-165\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->15 -->\n", "<g id=\"edge166\" class=\"edge\">\n", "<title>12->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M70.47,-276.83C120.88,-231.7 237.14,-115.51 284.06,-63.43\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"286.95,-65.45 290.98,-55.65 281.72,-60.8 286.95,-65.45\"/>\n", "<text text-anchor=\"middle\" x=\"191.76\" y=\"-173.93\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->14 -->\n", "<g id=\"edge167\" class=\"edge\">\n", "<title>12->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M65.16,-276.96C94.89,-241.42 152.08,-162.85 178.54,-121.37\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"181.67,-122.96 183.99,-112.62 175.73,-119.26 181.67,-122.96\"/>\n", "<text text-anchor=\"middle\" x=\"107.35\" y=\"-202.96\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->13 -->\n", "<g id=\"edge168\" class=\"edge\">\n", "<title>12->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M61.86,-277.06C72.88,-259.2 87.03,-231.71 95.9,-211.09\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"99.24,-212.17 99.8,-201.59 92.76,-209.51 99.24,-212.17\"/>\n", "<text text-anchor=\"middle\" x=\"93.38\" y=\"-232.87\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->12 -->\n", "<g id=\"edge169\" class=\"edge\">\n", "<title>12->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.87,-301.88C83.65,-302.02 91.63,-299.77 91.63,-295.13 91.63,-292.3 88.67,-290.37 84.14,-289.31\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"84.14,-285.8 73.87,-288.39 83.52,-292.77 84.14,-285.8\"/>\n", "<text text-anchor=\"middle\" x=\"106.13\" y=\"-291.43\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->11 -->\n", "<g id=\"edge170\" class=\"edge\">\n", "<title>12->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M38.7,-313.17C33.4,-333.52 27.88,-366.87 25.7,-390.71\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"22.2,-390.68 24.95,-400.91 29.18,-391.2 22.2,-390.68\"/>\n", "<text text-anchor=\"middle\" x=\"17.7\" y=\"-355.74\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->10 -->\n", "<g id=\"edge171\" class=\"edge\">\n", "<title>12->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M42.89,-313.36C39.14,-356.16 38.89,-463.32 42.14,-514.68\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"38.66,-515.04 42.89,-524.75 45.64,-514.52 38.66,-515.04\"/>\n", "<text text-anchor=\"middle\" x=\"57.02\" y=\"-402.82\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->9 -->\n", "<g id=\"edge172\" class=\"edge\">\n", "<title>12->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M46.33,-313.21C50.96,-371.61 79.82,-555.48 95.17,-626.46\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"91.82,-627.48 97.43,-636.47 98.65,-625.95 91.82,-627.48\"/>\n", "<text text-anchor=\"middle\" x=\"56.25\" y=\"-473.64\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->8 -->\n", "<g id=\"edge173\" class=\"edge\">\n", "<title>12->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M49.58,-313.31C66.93,-382.9 147.82,-632.63 179.73,-716.14\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"176.48,-717.43 183.37,-725.47 183,-714.88 176.48,-717.43\"/>\n", "<text text-anchor=\"middle\" x=\"100.15\" y=\"-518.52\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->7 -->\n", "<g id=\"edge174\" class=\"edge\">\n", "<title>12->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M52.85,-313.14C85.6,-388.97 234.75,-682.21 286.54,-773.35\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"283.64,-775.33 291.67,-782.25 289.71,-771.84 283.64,-775.33\"/>\n", "<text text-anchor=\"middle\" x=\"155.2\" y=\"-547.05\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->6 -->\n", "<g id=\"edge175\" class=\"edge\">\n", "<title>12->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M56.6,-313.22C106.93,-391.57 331.68,-701.3 404.98,-793.9\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"402.41,-796.3 411.39,-801.92 407.88,-791.93 402.41,-796.3\"/>\n", "<text text-anchor=\"middle\" x=\"216.29\" y=\"-557.36\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->5 -->\n", "<g id=\"edge176\" class=\"edge\">\n", "<title>12->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M61.04,-313.21C130.09,-389.76 426.62,-686.62 522.23,-775.37\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"520.08,-778.15 529.81,-782.35 524.83,-773 520.08,-778.15\"/>\n", "<text text-anchor=\"middle\" x=\"277.14\" y=\"-548.09\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->4 -->\n", "<g id=\"edge177\" class=\"edge\">\n", "<title>12->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M67,-313.29C156.35,-384.61 513.73,-644.5 628.31,-721.8\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"626.5,-724.8 636.76,-727.46 630.4,-718.99 626.5,-724.8\"/>\n", "<text text-anchor=\"middle\" x=\"333.15\" y=\"-521.34\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->3 -->\n", "<g id=\"edge178\" class=\"edge\">\n", "<title>12->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.87,-312.24C183.44,-373.76 591.77,-581.92 716.29,-639.87\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"714.88,-643.07 725.43,-644.08 717.82,-636.72 714.88,-643.07\"/>\n", "<text text-anchor=\"middle\" x=\"380.58\" y=\"-479.85\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->2 -->\n", "<g id=\"edge179\" class=\"edge\">\n", "<title>12->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.84,-306.87C189.46,-349.93 640.13,-496.47 772.67,-534.27\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"771.79,-537.66 782.37,-537 773.69,-530.92 771.79,-537.66\"/>\n", "<text text-anchor=\"middle\" x=\"437.75\" y=\"-424.37\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 12->1 -->\n", "<g id=\"edge180\" class=\"edge\">\n", "<title>12->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.88,-293.65C183.19,-281.51 590.06,-217.23 715.49,-192.48\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"716.27,-195.9 725.39,-190.49 714.89,-189.03 716.27,-195.9\"/>\n", "<text text-anchor=\"middle\" x=\"380.18\" y=\"-246.86\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->20 -->\n", "<g id=\"edge181\" class=\"edge\">\n", "<title>11->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.35,-417.44C172.26,-404.12 637.15,-330.64 772.41,-304.15\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"773.18,-307.57 782.3,-302.18 771.81,-300.7 773.18,-307.57\"/>\n", "<text text-anchor=\"middle\" x=\"427.88\" y=\"-349.6\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->19 -->\n", "<g id=\"edge182\" class=\"edge\">\n", "<title>11->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.15,-421.72C173.77,-427.05 654.01,-427.18 791.93,-422.13\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"792.15,-425.62 802,-421.72 791.87,-418.63 792.15,-425.62\"/>\n", "<text text-anchor=\"middle\" x=\"408.54\" y=\"-425.72\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->18 -->\n", "<g id=\"edge183\" class=\"edge\">\n", "<title>11->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.06,-408.51C155.44,-362.45 512.66,-180.63 627.79,-116.77\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"629.58,-119.78 636.6,-111.84 626.16,-113.67 629.58,-119.78\"/>\n", "<text text-anchor=\"middle\" x=\"326.42\" y=\"-266.44\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->17 -->\n", "<g id=\"edge184\" class=\"edge\">\n", "<title>11->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.15,-403.19C144.25,-343.62 432.5,-134.3 523.94,-62.17\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"526.27,-64.79 531.91,-55.82 521.91,-59.31 526.27,-64.79\"/>\n", "<text text-anchor=\"middle\" x=\"274.54\" y=\"-236.48\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->16 -->\n", "<g id=\"edge185\" class=\"edge\">\n", "<title>11->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M49.69,-400.88C120.77,-336.43 337.89,-119.4 406.87,-44\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"409.69,-46.1 413.81,-36.33 404.5,-41.4 409.69,-46.1\"/>\n", "<text text-anchor=\"middle\" x=\"242.78\" y=\"-226.24\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->15 -->\n", "<g id=\"edge186\" class=\"edge\">\n", "<title>11->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M44.12,-401C94.5,-339.45 240.81,-138.27 288.81,-64.77\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"291.95,-66.37 294.42,-56.06 286.06,-62.58 291.95,-66.37\"/>\n", "<text text-anchor=\"middle\" x=\"180.97\" y=\"-236.68\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->14 -->\n", "<g id=\"edge187\" class=\"edge\">\n", "<title>11->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M40.17,-400.83C72.5,-346.73 153.96,-187.17 182.53,-122.38\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"185.9,-123.39 186.64,-112.82 179.47,-120.62 185.9,-123.39\"/>\n", "<text text-anchor=\"middle\" x=\"125.85\" y=\"-265.4\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->13 -->\n", "<g id=\"edge188\" class=\"edge\">\n", "<title>11->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M36.99,-400.99C54.05,-360.09 86.65,-260.35 99.18,-211.37\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.63,-212 101.6,-201.45 95.83,-210.34 102.63,-212\"/>\n", "<text text-anchor=\"middle\" x=\"53.59\" y=\"-309.98\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->12 -->\n", "<g id=\"edge189\" class=\"edge\">\n", "<title>11->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M34.93,-401.03C40.23,-380.68 45.75,-347.33 47.93,-323.49\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"51.43,-323.52 48.68,-313.29 44.45,-323.01 51.43,-323.52\"/>\n", "<text text-anchor=\"middle\" x=\"26.93\" y=\"-366.06\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->11 -->\n", "<g id=\"edge190\" class=\"edge\">\n", "<title>11->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.24,-425.81C64.02,-425.96 72,-423.71 72,-419.07 72,-416.24 69.04,-414.3 64.51,-413.25\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"64.51,-409.74 54.24,-412.33 63.89,-416.71 64.51,-409.74\"/>\n", "<text text-anchor=\"middle\" x=\"86.5\" y=\"-415.37\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->10 -->\n", "<g id=\"edge191\" class=\"edge\">\n", "<title>11->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M24.96,-437.33C26.04,-457.77 31,-491.14 36.29,-514.91\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"32.92,-515.85 38.65,-524.76 39.72,-514.22 32.92,-515.85\"/>\n", "<text text-anchor=\"middle\" x=\"16.12\" y=\"-479.92\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->9 -->\n", "<g id=\"edge192\" class=\"edge\">\n", "<title>11->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M28.99,-437.17C38.4,-478.22 70.68,-578.54 89.81,-627.31\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"86.58,-628.66 93.56,-636.62 93.07,-626.04 86.58,-628.66\"/>\n", "<text text-anchor=\"middle\" x=\"66.65\" y=\"-521.04\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->8 -->\n", "<g id=\"edge193\" class=\"edge\">\n", "<title>11->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M32.78,-437.52C55.64,-492.1 137.14,-652.66 174.13,-716.73\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"171.18,-718.61 179.26,-725.46 177.21,-715.06 171.18,-718.61\"/>\n", "<text text-anchor=\"middle\" x=\"88.96\" y=\"-580.93\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->7 -->\n", "<g id=\"edge194\" class=\"edge\">\n", "<title>11->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M36.52,-437.2C75.56,-499.06 222.38,-701.6 280.44,-774.3\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"278.06,-776.92 287.07,-782.5 283.51,-772.52 278.06,-776.92\"/>\n", "<text text-anchor=\"middle\" x=\"143.98\" y=\"-609.55\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->6 -->\n", "<g id=\"edge195\" class=\"edge\">\n", "<title>11->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M41.19,-437.32C99,-502.06 316.69,-720.12 397.61,-794.84\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"395.71,-797.85 405.45,-802.02 400.44,-792.69 395.71,-797.85\"/>\n", "<text text-anchor=\"middle\" x=\"204.9\" y=\"-619.88\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->5 -->\n", "<g id=\"edge196\" class=\"edge\">\n", "<title>11->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M46.86,-437.08C125.43,-500.25 414.75,-710.71 516.43,-779.01\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"514.57,-781.97 524.83,-784.61 518.45,-776.15 514.57,-781.97\"/>\n", "<text text-anchor=\"middle\" x=\"267.14\" y=\"-611.84\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->4 -->\n", "<g id=\"edge197\" class=\"edge\">\n", "<title>11->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.23,-436.33C155.71,-493.52 511.73,-675.02 627.3,-728.64\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"625.92,-731.86 636.47,-732.85 628.84,-725.5 625.92,-731.86\"/>\n", "<text text-anchor=\"middle\" x=\"326.27\" y=\"-586.28\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->3 -->\n", "<g id=\"edge198\" class=\"edge\">\n", "<title>11->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.13,-430.84C165.5,-472.43 587.67,-609.72 715.59,-646.12\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"714.75,-649.52 725.32,-648.85 716.64,-642.78 714.75,-649.52\"/>\n", "<text text-anchor=\"middle\" x=\"370.36\" y=\"-542.28\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->2 -->\n", "<g id=\"edge199\" class=\"edge\">\n", "<title>11->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.43,-426.16C172.36,-450.16 636.47,-523.8 772.1,-540.2\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"772.05,-543.72 782.39,-541.41 772.86,-536.77 772.05,-543.72\"/>\n", "<text text-anchor=\"middle\" x=\"398.76\" y=\"-471.98\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 11->1 -->\n", "<g id=\"edge200\" class=\"edge\">\n", "<title>11->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.1,-413.14C165.4,-382.43 587.5,-245.45 715.52,-198.75\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"717.09,-201.9 725.26,-195.16 714.67,-195.33 717.09,-201.9\"/>\n", "<text text-anchor=\"middle\" x=\"370.31\" y=\"-294.74\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->20 -->\n", "<g id=\"edge201\" class=\"edge\">\n", "<title>10->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.72,-537.02C189.1,-505.07 639.71,-358.83 772.5,-310.48\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"774.04,-313.64 782.22,-306.9 771.63,-307.07 774.04,-313.64\"/>\n", "<text text-anchor=\"middle\" x=\"437.61\" y=\"-427.55\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->19 -->\n", "<g id=\"edge202\" class=\"edge\">\n", "<title>10->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.98,-541.38C191.89,-528.06 656.78,-454.58 792.04,-428.09\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"792.81,-431.5 801.93,-426.12 791.44,-424.64 792.81,-431.5\"/>\n", "<text text-anchor=\"middle\" x=\"447.51\" y=\"-473.53\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->18 -->\n", "<g id=\"edge203\" class=\"edge\">\n", "<title>10->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.68,-526.93C175.05,-459.54 531.62,-200.57 635.34,-119.16\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"637.81,-121.67 643.48,-112.72 633.47,-116.18 637.81,-121.67\"/>\n", "<text text-anchor=\"middle\" x=\"340.01\" y=\"-326.85\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->17 -->\n", "<g id=\"edge204\" class=\"edge\">\n", "<title>10->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M68.77,-524.9C152.5,-448.43 448.54,-152.48 530.75,-63.2\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"533.45,-65.45 537.6,-55.7 528.27,-60.73 533.45,-65.45\"/>\n", "<text text-anchor=\"middle\" x=\"314.26\" y=\"-282.85\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->16 -->\n", "<g id=\"edge205\" class=\"edge\">\n", "<title>10->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M63.38,-524.71C126.83,-446.18 350.84,-138.02 412.41,-44.81\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"415.48,-46.52 418.01,-36.23 409.61,-42.69 415.48,-46.52\"/>\n", "<text text-anchor=\"middle\" x=\"252.39\" y=\"-288.56\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->15 -->\n", "<g id=\"edge206\" class=\"edge\">\n", "<title>10->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M59.07,-524.78C103.59,-448.69 252.67,-156.38 293.76,-65.04\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"297.07,-66.2 297.91,-55.64 290.67,-63.37 297.07,-66.2\"/>\n", "<text text-anchor=\"middle\" x=\"190.91\" y=\"-298.71\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->14 -->\n", "<g id=\"edge207\" class=\"edge\">\n", "<title>10->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M55.59,-524.93C83.28,-455.64 164.32,-206.74 186.83,-122.6\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"190.27,-123.3 189.39,-112.74 183.49,-121.54 190.27,-123.3\"/>\n", "<text text-anchor=\"middle\" x=\"135.71\" y=\"-327.57\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->13 -->\n", "<g id=\"edge208\" class=\"edge\">\n", "<title>10->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M52.8,-524.68C66.65,-465.99 95.92,-282.42 102.98,-211.59\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"106.47,-211.89 103.89,-201.61 99.5,-211.25 106.47,-211.89\"/>\n", "<text text-anchor=\"middle\" x=\"92.39\" y=\"-371.94\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->12 -->\n", "<g id=\"edge209\" class=\"edge\">\n", "<title>10->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M50.37,-524.78C54.12,-481.99 54.37,-374.83 51.12,-323.46\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"54.6,-323.1 50.37,-313.39 47.62,-323.62 54.6,-323.1\"/>\n", "<text text-anchor=\"middle\" x=\"65.24\" y=\"-427.92\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->11 -->\n", "<g id=\"edge210\" class=\"edge\">\n", "<title>10->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M48.67,-524.75C47.59,-504.31 42.63,-470.94 37.34,-447.17\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"40.71,-446.23 34.98,-437.31 33.91,-447.85 40.71,-446.23\"/>\n", "<text text-anchor=\"middle\" x=\"57.51\" y=\"-489.76\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->10 -->\n", "<g id=\"edge211\" class=\"edge\">\n", "<title>10->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.87,-549.75C83.65,-549.9 91.63,-547.65 91.63,-543.01 91.63,-540.18 88.67,-538.24 84.14,-537.19\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"84.14,-533.68 73.87,-536.26 83.52,-540.65 84.14,-533.68\"/>\n", "<text text-anchor=\"middle\" x=\"106.13\" y=\"-539.31\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->9 -->\n", "<g id=\"edge212\" class=\"edge\">\n", "<title>10->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M50.43,-561.25C57.43,-579.41 71.27,-607.41 83.2,-628.07\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"80.22,-629.9 88.35,-636.7 86.24,-626.32 80.22,-629.9\"/>\n", "<text text-anchor=\"middle\" x=\"52.31\" y=\"-598.46\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->8 -->\n", "<g id=\"edge213\" class=\"edge\">\n", "<title>10->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M55.17,-561.36C76.95,-597.21 134.03,-676.35 167.38,-717.56\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"164.86,-720 173.91,-725.51 170.27,-715.56 164.86,-720\"/>\n", "<text text-anchor=\"middle\" x=\"125.77\" y=\"-628.26\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->7 -->\n", "<g id=\"edge214\" class=\"edge\">\n", "<title>10->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M59.91,-561.17C99.39,-606.37 216.05,-723.49 272.69,-775.32\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"270.51,-778.06 280.27,-782.18 275.21,-772.87 270.51,-778.06\"/>\n", "<text text-anchor=\"middle\" x=\"151.8\" y=\"-672.04\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->6 -->\n", "<g id=\"edge215\" class=\"edge\">\n", "<title>10->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M66,-561.19C126.68,-610.62 313.32,-746.51 392.27,-799.11\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"390.63,-802.22 400.9,-804.81 394.49,-796.38 390.63,-802.22\"/>\n", "<text text-anchor=\"middle\" x=\"214.64\" y=\"-683.95\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->5 -->\n", "<g id=\"edge216\" class=\"edge\">\n", "<title>10->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.73,-560.56C158.62,-608.81 419.24,-741.71 515.66,-786.07\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"514.45,-789.36 525,-790.32 517.35,-782.99 514.45,-789.36\"/>\n", "<text text-anchor=\"middle\" x=\"280.2\" y=\"-677.12\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->4 -->\n", "<g id=\"edge217\" class=\"edge\">\n", "<title>10->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.82,-555.03C172.71,-592.25 513.36,-703.06 626.77,-735.06\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"626.14,-738.52 636.71,-737.82 628.01,-731.78 626.14,-738.52\"/>\n", "<text text-anchor=\"middle\" x=\"335.79\" y=\"-648.85\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->3 -->\n", "<g id=\"edge218\" class=\"edge\">\n", "<title>10->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.86,-550.19C183.04,-572.63 589.22,-637.1 715.1,-652.15\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"715.05,-655.66 725.38,-653.34 715.85,-648.71 715.05,-655.66\"/>\n", "<text text-anchor=\"middle\" x=\"379.98\" y=\"-604.97\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->2 -->\n", "<g id=\"edge219\" class=\"edge\">\n", "<title>10->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.78,-545.72C189.17,-550.96 639.02,-551.1 772.18,-546.14\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"772.44,-549.63 782.29,-545.72 772.15,-542.64 772.44,-549.63\"/>\n", "<text text-anchor=\"middle\" x=\"408.48\" y=\"-549.73\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 10->1 -->\n", "<g id=\"edge220\" class=\"edge\">\n", "<title>10->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M73.84,-532.23C183.44,-482.18 592.4,-273.99 716.58,-205.29\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"718.33,-208.33 725.36,-200.4 714.92,-202.21 718.33,-208.33\"/>\n", "<text text-anchor=\"middle\" x=\"380.71\" y=\"-357.56\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->20 -->\n", "<g id=\"edge221\" class=\"edge\">\n", "<title>9->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.81,-644.04C240.41,-593.99 649.37,-385.79 773.55,-317.1\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"775.29,-320.13 782.33,-312.21 771.89,-314.02 775.29,-320.13\"/>\n", "<text text-anchor=\"middle\" x=\"466.68\" y=\"-484.37\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->19 -->\n", "<g id=\"edge222\" class=\"edge\">\n", "<title>9->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.69,-648.88C242,-618.17 664.1,-481.2 792.12,-434.49\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"793.69,-437.64 801.86,-430.9 791.27,-431.08 793.69,-437.64\"/>\n", "<text text-anchor=\"middle\" x=\"446.91\" y=\"-545.49\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->18 -->\n", "<g id=\"edge223\" class=\"edge\">\n", "<title>9->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M125.45,-636.79C215.09,-554.67 553.33,-216.53 642.31,-120.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"645.04,-122.44 649.21,-112.7 639.88,-117.71 645.04,-122.44\"/>\n", "<text text-anchor=\"middle\" x=\"398.38\" y=\"-382.32\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->17 -->\n", "<g id=\"edge224\" class=\"edge\">\n", "<title>9->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M120.1,-636.5C190.86,-548.38 466.9,-168.62 536.23,-64.23\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"539.19,-66.1 541.75,-55.82 533.34,-62.26 539.19,-66.1\"/>\n", "<text text-anchor=\"middle\" x=\"342.67\" y=\"-354.17\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->16 -->\n", "<g id=\"edge225\" class=\"edge\">\n", "<title>9->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M115.74,-636.55C167.61,-546.88 368.21,-153.44 417.32,-45.47\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"420.57,-46.77 421.47,-36.21 414.19,-43.91 420.57,-46.77\"/>\n", "<text text-anchor=\"middle\" x=\"281.03\" y=\"-344.81\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->15 -->\n", "<g id=\"edge226\" class=\"edge\">\n", "<title>9->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M112.11,-636.79C146.19,-549.62 269.09,-171.86 298.19,-65.55\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"301.58,-66.42 300.78,-55.86 294.82,-64.62 301.58,-66.42\"/>\n", "<text text-anchor=\"middle\" x=\"219.65\" y=\"-354.97\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->14 -->\n", "<g id=\"edge227\" class=\"edge\">\n", "<title>9->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M109.15,-636.59C127.45,-554.98 180.23,-222.86 191.01,-123.08\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"194.52,-123.16 192.05,-112.86 187.56,-122.46 194.52,-123.16\"/>\n", "<text text-anchor=\"middle\" x=\"164.58\" y=\"-383.63\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->13 -->\n", "<g id=\"edge228\" class=\"edge\">\n", "<title>9->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M106.41,-636.62C111.45,-564.57 111.65,-298.92 107.01,-211.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"110.51,-211.24 106.41,-201.47 103.52,-211.66 110.51,-211.24\"/>\n", "<text text-anchor=\"middle\" x=\"121.21\" y=\"-427.84\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->12 -->\n", "<g id=\"edge229\" class=\"edge\">\n", "<title>9->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M103.9,-636.73C99.27,-578.33 70.4,-394.47 55.05,-323.48\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"58.41,-322.46 52.8,-313.47 51.58,-324 58.41,-322.46\"/>\n", "<text text-anchor=\"middle\" x=\"93.98\" y=\"-483.91\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->11 -->\n", "<g id=\"edge230\" class=\"edge\">\n", "<title>9->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M101.61,-636.72C92.19,-595.66 59.92,-495.35 40.79,-446.57\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"44.02,-445.23 37.03,-437.26 37.53,-447.85 44.02,-445.23\"/>\n", "<text text-anchor=\"middle\" x=\"85.7\" y=\"-545.44\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->10 -->\n", "<g id=\"edge231\" class=\"edge\">\n", "<title>9->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M99.8,-636.57C92.8,-618.41 78.95,-590.41 67.02,-569.75\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"70.01,-567.92 61.88,-561.12 63.99,-571.5 70.01,-567.92\"/>\n", "<text text-anchor=\"middle\" x=\"97.91\" y=\"-606.96\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->9 -->\n", "<g id=\"edge232\" class=\"edge\">\n", "<title>9->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.84,-661.56C140.62,-661.7 148.6,-659.45 148.6,-654.81 148.6,-651.99 145.64,-650.05 141.11,-649\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"141.11,-645.48 130.84,-648.07 140.48,-652.45 141.11,-645.48\"/>\n", "<text text-anchor=\"middle\" x=\"163.1\" y=\"-651.11\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->8 -->\n", "<g id=\"edge233\" class=\"edge\">\n", "<title>9->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M114.6,-673.12C125.6,-686.31 142.86,-704.16 158.36,-718.62\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"156.05,-721.26 165.79,-725.42 160.77,-716.09 156.05,-721.26\"/>\n", "<text text-anchor=\"middle\" x=\"121.98\" y=\"-699.67\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->7 -->\n", "<g id=\"edge234\" class=\"edge\">\n", "<title>9->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M121.42,-673.04C154.41,-700.7 225.33,-752.59 268.5,-780.97\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"266.71,-783.99 277.01,-786.49 270.52,-778.11 266.71,-783.99\"/>\n", "<text text-anchor=\"middle\" x=\"209.46\" y=\"-715.81\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->6 -->\n", "<g id=\"edge235\" class=\"edge\">\n", "<title>9->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.28,-672.93C188.23,-706.4 325.56,-776.5 391.52,-806.41\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"390.15,-809.64 400.71,-810.52 393.01,-803.25 390.15,-809.64\"/>\n", "<text text-anchor=\"middle\" x=\"275.4\" y=\"-728.47\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->5 -->\n", "<g id=\"edge236\" class=\"edge\">\n", "<title>9->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.9,-667.37C208.03,-696.85 427.52,-768.29 515.19,-792.61\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"514.4,-796.02 524.96,-795.27 516.23,-789.27 514.4,-796.02\"/>\n", "<text text-anchor=\"middle\" x=\"308.55\" y=\"-733.79\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->4 -->\n", "<g id=\"edge237\" class=\"edge\">\n", "<title>9->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.89,-662.32C222.79,-681.6 521.16,-728.99 626.54,-741.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"626.37,-744.74 636.7,-742.38 627.15,-737.79 626.37,-744.74\"/>\n", "<text text-anchor=\"middle\" x=\"364.21\" y=\"-705.58\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->3 -->\n", "<g id=\"edge238\" class=\"edge\">\n", "<title>9->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.66,-657.73C233.11,-662.69 597.39,-662.84 715.37,-658.17\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"715.53,-661.67 725.37,-657.73 715.23,-654.67 715.53,-661.67\"/>\n", "<text text-anchor=\"middle\" x=\"408.52\" y=\"-661.75\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->2 -->\n", "<g id=\"edge239\" class=\"edge\">\n", "<title>9->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.85,-653.33C240.16,-641.2 647.03,-576.91 772.46,-552.17\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"773.24,-555.58 782.36,-550.17 771.86,-548.72 773.24,-555.58\"/>\n", "<text text-anchor=\"middle\" x=\"437.15\" y=\"-606.55\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 9->1 -->\n", "<g id=\"edge240\" class=\"edge\">\n", "<title>9->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M130.7,-638.62C235.94,-568.52 616.57,-292.07 724.1,-207.78\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"726.55,-210.3 732.23,-201.36 722.21,-204.81 726.55,-210.3\"/>\n", "<text text-anchor=\"middle\" x=\"441.9\" y=\"-412\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->20 -->\n", "<g id=\"edge241\" class=\"edge\">\n", "<title>8->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.37,-727.47C320.75,-660.07 677.32,-401.11 781.04,-319.69\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"783.51,-322.2 789.18,-313.25 779.16,-316.71 783.51,-322.2\"/>\n", "<text text-anchor=\"middle\" x=\"514.71\" y=\"-527.38\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->19 -->\n", "<g id=\"edge242\" class=\"edge\">\n", "<title>8->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.38,-732.98C320.77,-686.92 677.99,-505.1 793.12,-441.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"794.9,-444.25 801.93,-436.32 791.49,-438.14 794.9,-444.25\"/>\n", "<text text-anchor=\"middle\" x=\"491.75\" y=\"-590.91\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->18 -->\n", "<g id=\"edge243\" class=\"edge\">\n", "<title>8->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M208.74,-725.25C281.82,-634.09 575.92,-229.45 647.93,-121.25\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"650.89,-123.11 653.46,-112.84 645.04,-119.27 650.89,-123.11\"/>\n", "<text text-anchor=\"middle\" x=\"413.83\" y=\"-427.05\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->17 -->\n", "<g id=\"edge244\" class=\"edge\">\n", "<title>8->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M204.27,-725.39C259.6,-629.3 488.37,-180.59 541.21,-64.88\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"544.46,-66.19 545.38,-55.63 538.08,-63.32 544.46,-66.19\"/>\n", "<text text-anchor=\"middle\" x=\"387.24\" y=\"-398.94\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->16 -->\n", "<g id=\"edge245\" class=\"edge\">\n", "<title>8->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M200.75,-725.24C238.59,-627.28 388.89,-165.16 421.88,-46.05\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"425.3,-46.79 424.54,-36.22 418.54,-44.96 425.3,-46.79\"/>\n", "<text text-anchor=\"middle\" x=\"325.81\" y=\"-389.44\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->15 -->\n", "<g id=\"edge246\" class=\"edge\">\n", "<title>8->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M197.59,-725.39C218.53,-629.56 289.5,-182.48 302.56,-65.63\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"306.04,-65.98 303.61,-55.67 299.08,-65.25 306.04,-65.98\"/>\n", "<text text-anchor=\"middle\" x=\"264.58\" y=\"-399.31\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->14 -->\n", "<g id=\"edge247\" class=\"edge\">\n", "<title>8->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M194.75,-725.51C200.33,-635.37 200.51,-233.62 195.3,-122.92\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"198.79,-122.65 194.76,-112.85 191.8,-123.02 198.79,-122.65\"/>\n", "<text text-anchor=\"middle\" x=\"209.52\" y=\"-428.01\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->13 -->\n", "<g id=\"edge248\" class=\"edge\">\n", "<title>8->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M192.06,-725.45C184.58,-643.95 132,-310.64 111.26,-211.36\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"114.66,-210.49 109.13,-201.46 107.81,-211.97 114.66,-210.49\"/>\n", "<text text-anchor=\"middle\" x=\"166.16\" y=\"-472.2\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->12 -->\n", "<g id=\"edge249\" class=\"edge\">\n", "<title>8->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M189.38,-725.37C172.03,-655.77 91.13,-406.05 59.23,-322.54\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"62.48,-321.25 55.59,-313.2 55.96,-323.79 62.48,-321.25\"/>\n", "<text text-anchor=\"middle\" x=\"138.8\" y=\"-527.76\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->11 -->\n", "<g id=\"edge250\" class=\"edge\">\n", "<title>8->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M186.54,-725.09C163.69,-670.52 82.18,-509.95 45.19,-445.88\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"48.15,-444.01 40.07,-437.15 42.11,-447.55 48.15,-444.01\"/>\n", "<text text-anchor=\"middle\" x=\"130.37\" y=\"-589.29\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->10 -->\n", "<g id=\"edge251\" class=\"edge\">\n", "<title>8->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M183.79,-725.19C162,-689.34 104.93,-610.2 71.58,-569\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"74.1,-566.55 65.04,-561.05 68.69,-570.99 74.1,-566.55\"/>\n", "<text text-anchor=\"middle\" x=\"142.18\" y=\"-635.89\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->9 -->\n", "<g id=\"edge252\" class=\"edge\">\n", "<title>8->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M181.33,-725.24C170.33,-712.04 153.07,-694.2 137.57,-679.73\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"139.87,-677.1 130.13,-672.94 135.15,-682.27 139.87,-677.1\"/>\n", "<text text-anchor=\"middle\" x=\"173.95\" y=\"-706.29\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->8 -->\n", "<g id=\"edge253\" class=\"edge\">\n", "<title>8->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.57,-750.29C229.35,-750.43 237.33,-748.18 237.33,-743.54 237.33,-740.72 234.37,-738.78 229.84,-737.73\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"229.84,-734.21 219.57,-736.8 229.21,-741.18 229.84,-734.21\"/>\n", "<text text-anchor=\"middle\" x=\"251.83\" y=\"-739.84\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->7 -->\n", "<g id=\"edge254\" class=\"edge\">\n", "<title>8->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M215.08,-761.6C230.23,-770.59 250.42,-781.06 267.76,-788.99\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"266.48,-792.25 277.04,-793.1 269.32,-785.85 266.48,-792.25\"/>\n", "<text text-anchor=\"middle\" x=\"226.92\" y=\"-779.09\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->6 -->\n", "<g id=\"edge255\" class=\"edge\">\n", "<title>8->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.35,-757.14C261.62,-773.77 343.46,-800.5 391.14,-813.39\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"390.5,-816.83 401.06,-815.99 392.27,-810.06 390.5,-816.83\"/>\n", "<text text-anchor=\"middle\" x=\"319.74\" y=\"-774.06\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->5 -->\n", "<g id=\"edge256\" class=\"edge\">\n", "<title>8->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.36,-751.68C282.9,-765.55 441.84,-790.88 514.59,-798.93\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"514.37,-802.42 524.68,-799.99 515.1,-795.46 514.37,-802.42\"/>\n", "<text text-anchor=\"middle\" x=\"352.48\" y=\"-779.1\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->4 -->\n", "<g id=\"edge257\" class=\"edge\">\n", "<title>8->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.37,-746.9C299.27,-751.25 534.41,-751.42 626.36,-747.41\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"626.77,-750.89 636.59,-746.91 626.43,-743.9 626.77,-750.89\"/>\n", "<text text-anchor=\"middle\" x=\"408.36\" y=\"-750.95\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->3 -->\n", "<g id=\"edge258\" class=\"edge\">\n", "<title>8->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.45,-742.38C311.2,-732.61 610.03,-685.45 715.37,-664.35\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"716.15,-667.76 725.24,-662.33 714.74,-660.9 716.15,-667.76\"/>\n", "<text text-anchor=\"middle\" x=\"452.91\" y=\"-707.16\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->2 -->\n", "<g id=\"edge259\" class=\"edge\">\n", "<title>8->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M219.36,-737.84C318.09,-710.92 659.25,-600.26 772.59,-558.65\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"774.06,-561.83 782.22,-555.07 771.62,-555.27 774.06,-561.83\"/>\n", "<text text-anchor=\"middle\" x=\"481.47\" y=\"-652.04\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 8->1 -->\n", "<g id=\"edge260\" class=\"edge\">\n", "<title>8->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M214.18,-725.52C303.82,-643.4 642.06,-305.26 731.04,-208.97\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"733.77,-211.17 737.94,-201.43 728.61,-206.44 733.77,-211.17\"/>\n", "<text text-anchor=\"middle\" x=\"487.11\" y=\"-456.04\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->20 -->\n", "<g id=\"edge261\" class=\"edge\">\n", "<title>7->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M326.27,-782.41C410,-705.93 706.05,-409.98 788.26,-320.71\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"790.95,-322.95 795.1,-313.2 785.78,-318.23 790.95,-322.95\"/>\n", "<text text-anchor=\"middle\" x=\"571.76\" y=\"-555.36\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->19 -->\n", "<g id=\"edge262\" class=\"edge\">\n", "<title>7->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M331.28,-784.63C421.38,-725.06 709.63,-515.74 801.07,-443.61\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"803.4,-446.23 809.05,-437.27 799.04,-440.75 803.4,-446.23\"/>\n", "<text text-anchor=\"middle\" x=\"551.68\" y=\"-617.92\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->18 -->\n", "<g id=\"edge263\" class=\"edge\">\n", "<title>7->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M316.08,-782.35C371.41,-686.27 600.17,-237.55 653.02,-121.85\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"656.27,-123.16 657.18,-112.6 649.89,-120.28 656.27,-123.16\"/>\n", "<text text-anchor=\"middle\" x=\"499.05\" y=\"-440.9\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->17 -->\n", "<g id=\"edge264\" class=\"edge\">\n", "<title>7->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M312.44,-782.36C351.35,-681.37 511.49,-188.98 545.75,-65.67\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"549.18,-66.41 548.42,-55.84 542.42,-64.57 549.18,-66.41\"/>\n", "<text text-anchor=\"middle\" x=\"443.6\" y=\"-427.81\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->16 -->\n", "<g id=\"edge265\" class=\"edge\">\n", "<title>7->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M309.3,-782.29C331.51,-679.42 412.12,-171.44 426.37,-46.03\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"429.85,-46.37 427.44,-36.06 422.89,-45.62 429.85,-46.37\"/>\n", "<text text-anchor=\"middle\" x=\"382.33\" y=\"-417.96\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->15 -->\n", "<g id=\"edge266\" class=\"edge\">\n", "<title>7->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M306.38,-782.41C312.2,-681.65 312.38,-190.17 306.9,-66.11\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"310.39,-65.72 306.39,-55.9 303.4,-66.07 310.39,-65.72\"/>\n", "<text text-anchor=\"middle\" x=\"321.14\" y=\"-413.06\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->14 -->\n", "<g id=\"edge267\" class=\"edge\">\n", "<title>7->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M303.6,-782.35C294.21,-686.48 223.59,-239.41 199.66,-122.59\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"203.05,-121.69 197.56,-112.63 196.2,-123.14 203.05,-121.69\"/>\n", "<text text-anchor=\"middle\" x=\"266.13\" y=\"-441.27\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->13 -->\n", "<g id=\"edge268\" class=\"edge\">\n", "<title>7->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M300.78,-782.28C278.12,-694.66 155.61,-316.93 115.81,-211.02\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"118.96,-209.45 112.12,-201.36 112.42,-211.96 118.96,-209.45\"/>\n", "<text text-anchor=\"middle\" x=\"222.79\" y=\"-485.45\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->12 -->\n", "<g id=\"edge269\" class=\"edge\">\n", "<title>7->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M297.91,-782.5C265.16,-706.68 116.01,-413.43 64.22,-322.29\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"67.12,-320.31 59.1,-313.39 61.05,-323.81 67.12,-320.31\"/>\n", "<text text-anchor=\"middle\" x=\"195.56\" y=\"-541.2\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->11 -->\n", "<g id=\"edge270\" class=\"edge\">\n", "<title>7->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M294.61,-782.39C255.57,-720.52 108.75,-517.98 50.69,-445.29\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"53.07,-442.66 44.07,-437.08 47.63,-447.06 53.07,-442.66\"/>\n", "<text text-anchor=\"middle\" x=\"187.15\" y=\"-602.64\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->10 -->\n", "<g id=\"edge271\" class=\"edge\">\n", "<title>7->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M290.85,-782.35C251.37,-737.15 134.71,-620.03 78.07,-568.2\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"80.26,-565.46 70.5,-561.34 75.56,-570.65 80.26,-565.46\"/>\n", "<text text-anchor=\"middle\" x=\"198.96\" y=\"-664.08\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->9 -->\n", "<g id=\"edge272\" class=\"edge\">\n", "<title>7->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M286.31,-782.28C253.32,-754.62 182.4,-702.74 139.23,-674.35\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"141.02,-671.34 130.72,-668.83 137.21,-677.21 141.02,-671.34\"/>\n", "<text text-anchor=\"middle\" x=\"227.27\" y=\"-717.12\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->8 -->\n", "<g id=\"edge273\" class=\"edge\">\n", "<title>7->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M281.38,-782.45C266.23,-773.47 246.04,-763 228.7,-755.07\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"229.98,-751.8 219.42,-750.95 227.14,-758.2 229.98,-751.8\"/>\n", "<text text-anchor=\"middle\" x=\"240.54\" y=\"-757.56\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->7 -->\n", "<g id=\"edge274\" class=\"edge\">\n", "<title>7->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M331.37,-807.25C341.16,-807.4 349.13,-805.15 349.13,-800.51 349.13,-797.68 346.17,-795.74 341.64,-794.69\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"341.65,-791.18 331.37,-793.77 341.02,-798.15 341.65,-791.18\"/>\n", "<text text-anchor=\"middle\" x=\"363.63\" y=\"-796.81\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->6 -->\n", "<g id=\"edge275\" class=\"edge\">\n", "<title>7->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M331.36,-810.66C348.77,-814.57 371.6,-818.34 390.7,-820.51\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"390.57,-824.01 400.87,-821.54 391.28,-817.05 390.57,-824.01\"/>\n", "<text text-anchor=\"middle\" x=\"346.53\" y=\"-819.38\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->5 -->\n", "<g id=\"edge276\" class=\"edge\">\n", "<title>7->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M331.61,-804.94C376.21,-807.83 464.42,-808.02 514.67,-805.5\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"515,-808.99 524.79,-804.93 514.61,-802 515,-808.99\"/>\n", "<text text-anchor=\"middle\" x=\"408.64\" y=\"-794.02\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->4 -->\n", "<g id=\"edge277\" class=\"edge\">\n", "<title>7->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M331.17,-800.01C394.69,-793.8 553.59,-768.84 626.36,-753.88\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"627.39,-757.24 636.45,-751.75 625.94,-750.4 627.39,-757.24\"/>\n", "<text text-anchor=\"middle\" x=\"464.26\" y=\"-780.75\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->3 -->\n", "<g id=\"edge278\" class=\"edge\">\n", "<title>7->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M331.22,-795.26C408.23,-774.75 628.41,-703.42 715.99,-670.86\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"717.38,-674.07 725.51,-667.27 714.91,-667.52 717.38,-674.07\"/>\n", "<text text-anchor=\"middle\" x=\"509.11\" y=\"-736.86\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->2 -->\n", "<g id=\"edge279\" class=\"edge\">\n", "<title>7->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M331.34,-790.23C416.41,-751.99 677.3,-619.27 773.45,-565.6\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"775.24,-568.62 782.23,-560.66 771.8,-562.52 775.24,-568.62\"/>\n", "<text text-anchor=\"middle\" x=\"537.9\" y=\"-681.72\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 7->1 -->\n", "<g id=\"edge280\" class=\"edge\">\n", "<title>7->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M320.64,-782.2C391.4,-694.08 667.43,-314.31 736.76,-209.93\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"739.72,-211.8 742.29,-201.52 733.87,-207.96 739.72,-211.8\"/>\n", "<text text-anchor=\"middle\" x=\"543.2\" y=\"-499.86\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->20 -->\n", "<g id=\"edge281\" class=\"edge\">\n", "<title>6->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M444.82,-801.84C508.27,-723.31 732.28,-415.15 793.85,-321.95\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"796.92,-323.65 799.45,-313.37 791.06,-319.83 796.92,-323.65\"/>\n", "<text text-anchor=\"middle\" x=\"633.83\" y=\"-565.69\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->19 -->\n", "<g id=\"edge282\" class=\"edge\">\n", "<title>6->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M450.76,-801.95C521.84,-737.5 738.96,-520.47 807.94,-445.07\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"810.76,-447.17 814.88,-437.4 805.57,-442.47 810.76,-447.17\"/>\n", "<text text-anchor=\"middle\" x=\"643.85\" y=\"-627.31\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->18 -->\n", "<g id=\"edge283\" class=\"edge\">\n", "<title>6->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M436.5,-801.84C474.33,-703.87 624.63,-241.75 657.62,-122.65\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"661.04,-123.39 660.28,-112.82 654.29,-121.56 661.04,-123.39\"/>\n", "<text text-anchor=\"middle\" x=\"561.56\" y=\"-466.04\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->17 -->\n", "<g id=\"edge284\" class=\"edge\">\n", "<title>6->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M433.24,-801.92C455.45,-699.05 536.05,-191.07 550.3,-65.66\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"553.79,-66 551.38,-55.69 546.83,-65.25 553.79,-66\"/>\n", "<text text-anchor=\"middle\" x=\"477.27\" y=\"-422.59\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->16 -->\n", "<g id=\"edge285\" class=\"edge\">\n", "<title>6->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M430.28,-801.88C436.16,-697.31 436.33,-174.6 430.78,-46.42\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"434.26,-46.05 430.28,-36.23 427.27,-46.39 434.26,-46.05\"/>\n", "<text text-anchor=\"middle\" x=\"445.03\" y=\"-427.95\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->15 -->\n", "<g id=\"edge286\" class=\"edge\">\n", "<title>6->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M427.43,-801.98C417.11,-699.27 336.84,-191.31 311.36,-65.74\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"314.75,-64.83 309.28,-55.75 307.89,-66.26 314.75,-64.83\"/>\n", "<text text-anchor=\"middle\" x=\"383.9\" y=\"-437.66\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->14 -->\n", "<g id=\"edge287\" class=\"edge\">\n", "<title>6->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M424.52,-801.86C398.75,-703.88 248.54,-240.96 204.33,-122.34\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"207.55,-120.97 200.74,-112.86 201.01,-123.45 207.55,-120.97\"/>\n", "<text text-anchor=\"middle\" x=\"328.92\" y=\"-465.9\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->13 -->\n", "<g id=\"edge288\" class=\"edge\">\n", "<title>6->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M421.51,-802.03C382.2,-712.5 181.25,-317.67 120.72,-210.33\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"123.63,-208.36 115.63,-201.41 117.55,-211.83 123.63,-208.36\"/>\n", "<text text-anchor=\"middle\" x=\"285.62\" y=\"-509.98\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->12 -->\n", "<g id=\"edge289\" class=\"edge\">\n", "<title>6->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M418.1,-802.05C367.77,-723.7 143.02,-413.97 69.72,-321.37\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"72.29,-318.98 63.31,-313.35 66.82,-323.35 72.29,-318.98\"/>\n", "<text text-anchor=\"middle\" x=\"258.41\" y=\"-565.51\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->11 -->\n", "<g id=\"edge290\" class=\"edge\">\n", "<title>6->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M413.88,-801.89C356.07,-737.15 138.38,-519.1 57.46,-444.37\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"59.36,-441.36 49.62,-437.19 54.63,-446.53 59.36,-441.36\"/>\n", "<text text-anchor=\"middle\" x=\"250.17\" y=\"-626.93\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->10 -->\n", "<g id=\"edge291\" class=\"edge\">\n", "<title>6->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M408.7,-801.96C348.02,-752.53 161.38,-616.64 82.43,-564.04\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"84.07,-560.93 73.8,-558.34 80.21,-566.77 84.07,-560.93\"/>\n", "<text text-anchor=\"middle\" x=\"245.56\" y=\"-671.8\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->9 -->\n", "<g id=\"edge292\" class=\"edge\">\n", "<title>6->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M401.39,-802.02C343.44,-768.55 206.11,-698.46 140.15,-668.54\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"141.52,-665.32 130.96,-664.43 138.66,-671.71 141.52,-665.32\"/>\n", "<text text-anchor=\"middle\" x=\"256.27\" y=\"-724.08\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->8 -->\n", "<g id=\"edge293\" class=\"edge\">\n", "<title>6->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M401.05,-806.54C358.77,-789.92 276.94,-763.19 229.26,-750.3\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"229.9,-746.85 219.34,-747.69 228.12,-753.62 229.9,-746.85\"/>\n", "<text text-anchor=\"middle\" x=\"300.65\" y=\"-767.22\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->7 -->\n", "<g id=\"edge294\" class=\"edge\">\n", "<title>6->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M400.85,-810C383.43,-806.08 360.61,-802.31 341.5,-800.14\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"341.63,-796.64 331.33,-799.11 340.93,-803.6 341.63,-796.64\"/>\n", "<text text-anchor=\"middle\" x=\"385.68\" y=\"-808.87\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->6 -->\n", "<g id=\"edge295\" class=\"edge\">\n", "<title>6->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M455.31,-826.88C465.09,-827.03 473.07,-824.78 473.07,-820.14 473.07,-817.31 470.11,-815.37 465.58,-814.32\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"465.59,-810.81 455.31,-813.4 464.96,-817.78 465.59,-810.81\"/>\n", "<text text-anchor=\"middle\" x=\"487.57\" y=\"-816.44\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->5 -->\n", "<g id=\"edge296\" class=\"edge\">\n", "<title>6->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M455.24,-821.54C472.77,-820.01 495.81,-816.58 515.01,-812.73\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"515.88,-816.12 524.94,-810.62 514.43,-809.27 515.88,-816.12\"/>\n", "<text text-anchor=\"middle\" x=\"470.62\" y=\"-805.94\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->4 -->\n", "<g id=\"edge297\" class=\"edge\">\n", "<title>6->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M455.11,-815.98C497.44,-805.24 579.39,-778.87 627.04,-760.9\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"628.58,-764.05 636.66,-757.2 626.07,-757.52 628.58,-764.05\"/>\n", "<text text-anchor=\"middle\" x=\"526.57\" y=\"-777.24\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->3 -->\n", "<g id=\"edge298\" class=\"edge\">\n", "<title>6->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M455.28,-810.59C513.86,-784.83 651.79,-714.8 717.1,-677.93\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"718.87,-680.95 725.82,-672.96 715.4,-674.87 718.87,-680.95\"/>\n", "<text text-anchor=\"middle\" x=\"571.69\" y=\"-748.06\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->2 -->\n", "<g id=\"edge299\" class=\"edge\">\n", "<title>6->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M455.19,-804.84C525.33,-759.03 711.85,-623.62 782.2,-567.58\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"784.59,-570.14 790.19,-561.15 780.2,-564.69 784.59,-570.14\"/>\n", "<text text-anchor=\"middle\" x=\"604.19\" y=\"-690.01\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 6->1 -->\n", "<g id=\"edge300\" class=\"edge\">\n", "<title>6->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M440.21,-801.88C492.08,-712.21 692.68,-318.77 741.79,-210.8\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"745.05,-212.1 745.94,-201.54 738.66,-209.24 745.05,-212.1\"/>\n", "<text text-anchor=\"middle\" x=\"576.5\" y=\"-510.14\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->20 -->\n", "<g id=\"edge301\" class=\"edge\">\n", "<title>5->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M564.45,-782.29C608.97,-706.19 758.05,-413.88 799.13,-322.54\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"802.45,-323.7 803.29,-313.14 796.05,-320.87 802.45,-323.7\"/>\n", "<text text-anchor=\"middle\" x=\"696.29\" y=\"-556.21\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->19 -->\n", "<g id=\"edge302\" class=\"edge\">\n", "<title>5->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M569.13,-782.44C619.51,-720.89 765.81,-519.71 813.82,-446.21\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"816.96,-447.81 819.43,-437.5 811.07,-444.02 816.96,-447.81\"/>\n", "<text text-anchor=\"middle\" x=\"705.97\" y=\"-618.12\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->18 -->\n", "<g id=\"edge303\" class=\"edge\">\n", "<title>5->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M557.27,-782.36C578.21,-686.53 649.18,-239.44 662.24,-122.6\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"665.72,-122.95 663.29,-112.64 658.76,-122.22 665.72,-122.95\"/>\n", "<text text-anchor=\"middle\" x=\"624.26\" y=\"-456.28\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->17 -->\n", "<g id=\"edge304\" class=\"edge\">\n", "<title>5->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M554.26,-782.41C560.08,-681.65 560.25,-190.17 554.78,-66.11\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"558.26,-65.72 554.27,-55.9 551.27,-66.07 558.26,-65.72\"/>\n", "<text text-anchor=\"middle\" x=\"569.02\" y=\"-428.06\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->16 -->\n", "<g id=\"edge305\" class=\"edge\">\n", "<title>5->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M551.37,-782.35C541.04,-679.64 460.77,-171.68 435.3,-46.11\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"438.68,-45.2 433.21,-36.12 431.83,-46.63 438.68,-45.2\"/>\n", "<text text-anchor=\"middle\" x=\"478.83\" y=\"-403.03\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->15 -->\n", "<g id=\"edge306\" class=\"edge\">\n", "<title>5->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M548.46,-782.46C521.86,-681.63 361.8,-188.4 316.09,-65.43\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"319.32,-64.08 312.51,-55.96 312.77,-66.55 319.32,-64.08\"/>\n", "<text text-anchor=\"middle\" x=\"446.78\" y=\"-412.75\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->14 -->\n", "<g id=\"edge307\" class=\"edge\">\n", "<title>5->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M545.32,-782.38C502.82,-686.27 274.03,-236.81 209.28,-121.56\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"212.2,-119.61 204.21,-112.65 206.11,-123.07 212.2,-119.61\"/>\n", "<text text-anchor=\"middle\" x=\"391.8\" y=\"-455.77\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->13 -->\n", "<g id=\"edge308\" class=\"edge\">\n", "<title>5->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M541.72,-782.27C484.6,-694.15 207.97,-313.05 126.27,-209.4\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"128.82,-206.98 119.85,-201.33 123.34,-211.33 128.82,-206.98\"/>\n", "<text text-anchor=\"middle\" x=\"348.5\" y=\"-499.64\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->12 -->\n", "<g id=\"edge309\" class=\"edge\">\n", "<title>5->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M537.6,-782.44C468.55,-705.89 172.02,-409.03 76.41,-320.27\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"78.55,-317.49 68.83,-313.29 73.81,-322.64 78.55,-317.49\"/>\n", "<text text-anchor=\"middle\" x=\"321.5\" y=\"-555.16\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->11 -->\n", "<g id=\"edge310\" class=\"edge\">\n", "<title>5->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M532.15,-782.51C453.58,-719.33 164.26,-508.88 62.58,-440.57\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"64.44,-437.61 54.18,-434.97 60.56,-443.43 64.44,-437.61\"/>\n", "<text text-anchor=\"middle\" x=\"311.87\" y=\"-615.34\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->10 -->\n", "<g id=\"edge311\" class=\"edge\">\n", "<title>5->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M524.9,-782.95C440.02,-734.71 179.4,-601.81 82.97,-557.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"84.18,-554.16 73.63,-553.2 81.29,-560.53 84.18,-554.16\"/>\n", "<text text-anchor=\"middle\" x=\"289.44\" y=\"-659\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->9 -->\n", "<g id=\"edge312\" class=\"edge\">\n", "<title>5->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M524.7,-787.95C447.57,-758.47 228.09,-687.03 140.42,-662.72\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"141.21,-659.3 130.64,-660.05 139.37,-666.06 141.21,-659.3\"/>\n", "<text text-anchor=\"middle\" x=\"318.06\" y=\"-714.13\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->8 -->\n", "<g id=\"edge313\" class=\"edge\">\n", "<title>5->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M524.98,-792.37C461.44,-778.51 302.49,-753.17 229.74,-745.13\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"229.96,-741.63 219.65,-744.07 229.23,-748.59 229.96,-741.63\"/>\n", "<text text-anchor=\"middle\" x=\"362.86\" y=\"-757.55\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->7 -->\n", "<g id=\"edge314\" class=\"edge\">\n", "<title>5->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M524.53,-796.08C479.93,-793.19 391.72,-793 341.47,-795.52\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"341.14,-792.03 331.35,-796.1 341.54,-799.02 341.14,-792.03\"/>\n", "<text text-anchor=\"middle\" x=\"433\" y=\"-784.6\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->6 -->\n", "<g id=\"edge315\" class=\"edge\">\n", "<title>5->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M524.84,-799.11C507.3,-800.64 484.26,-804.08 465.07,-807.92\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"464.19,-804.53 455.14,-810.03 465.65,-811.38 464.19,-804.53\"/>\n", "<text text-anchor=\"middle\" x=\"509.45\" y=\"-792.32\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->5 -->\n", "<g id=\"edge316\" class=\"edge\">\n", "<title>5->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M579.25,-807.25C589.03,-807.4 597.01,-805.15 597.01,-800.51 597.01,-797.68 594.05,-795.74 589.52,-794.69\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"589.52,-791.18 579.25,-793.77 588.89,-798.15 589.52,-791.18\"/>\n", "<text text-anchor=\"middle\" x=\"611.51\" y=\"-796.81\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->4 -->\n", "<g id=\"edge317\" class=\"edge\">\n", "<title>5->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M579.13,-793.09C595.06,-786.27 615.25,-776.21 631.94,-766.86\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"633.87,-769.78 640.79,-761.76 630.38,-763.71 633.87,-769.78\"/>\n", "<text text-anchor=\"middle\" x=\"591.03\" y=\"-768.77\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->3 -->\n", "<g id=\"edge318\" class=\"edge\">\n", "<title>5->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M579.31,-786.38C618.17,-761.55 688.76,-710.37 726.77,-679.59\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"729.3,-682.04 734.8,-672.98 724.86,-676.63 729.3,-682.04\"/>\n", "<text text-anchor=\"middle\" x=\"638.54\" y=\"-721.79\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->2 -->\n", "<g id=\"edge319\" class=\"edge\">\n", "<title>5->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M575.85,-782.2C626.26,-737.07 742.51,-620.89 789.44,-568.81\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"792.33,-570.83 796.35,-561.02 787.1,-566.18 792.33,-570.83\"/>\n", "<text text-anchor=\"middle\" x=\"668.14\" y=\"-679.31\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 5->1 -->\n", "<g id=\"edge320\" class=\"edge\">\n", "<title>5->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M560.52,-782.48C594.6,-695.32 717.5,-317.56 746.6,-211.25\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"749.99,-212.12 749.19,-201.55 743.23,-210.31 749.99,-212.12\"/>\n", "<text text-anchor=\"middle\" x=\"639.06\" y=\"-500.67\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->20 -->\n", "<g id=\"edge321\" class=\"edge\">\n", "<title>4->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M672.77,-725.47C700.46,-656.17 781.5,-407.27 804.01,-323.14\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"807.45,-323.83 806.57,-313.27 800.67,-322.07 807.45,-323.83\"/>\n", "<text text-anchor=\"middle\" x=\"745.64\" y=\"-513.1\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->19 -->\n", "<g id=\"edge322\" class=\"edge\">\n", "<title>4->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M676.98,-725.3C709.32,-671.2 790.78,-511.64 819.34,-446.85\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"822.71,-447.86 823.45,-437.3 816.28,-445.1 822.71,-447.86\"/>\n", "<text text-anchor=\"middle\" x=\"762.66\" y=\"-589.88\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->18 -->\n", "<g id=\"edge323\" class=\"edge\">\n", "<title>4->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M666.24,-725.51C671.82,-635.37 672,-233.62 666.79,-122.92\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"670.28,-122.65 666.25,-112.85 663.29,-123.02 670.28,-122.65\"/>\n", "<text text-anchor=\"middle\" x=\"681.01\" y=\"-428.01\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->17 -->\n", "<g id=\"edge324\" class=\"edge\">\n", "<title>4->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M663.28,-725.38C653.89,-629.51 583.27,-182.44 559.35,-65.62\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"562.73,-64.73 557.24,-55.66 555.88,-66.17 562.73,-64.73\"/>\n", "<text text-anchor=\"middle\" x=\"625.81\" y=\"-399.3\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->16 -->\n", "<g id=\"edge325\" class=\"edge\">\n", "<title>4->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M660.26,-725.27C634.5,-627.28 484.29,-164.37 440.07,-45.74\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"443.3,-44.38 436.48,-36.26 436.75,-46.86 443.3,-44.38\"/>\n", "<text text-anchor=\"middle\" x=\"564.67\" y=\"-374.3\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->15 -->\n", "<g id=\"edge326\" class=\"edge\">\n", "<title>4->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M657.13,-725.41C614.63,-629.3 385.84,-179.84 321.08,-64.59\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"324,-62.65 316.02,-55.68 317.92,-66.1 324,-62.65\"/>\n", "<text text-anchor=\"middle\" x=\"496.35\" y=\"-383.8\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->14 -->\n", "<g id=\"edge327\" class=\"edge\">\n", "<title>4->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M653.58,-725.48C594.59,-634.64 299.83,-228.6 215.07,-120.87\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"217.62,-118.45 208.66,-112.79 212.13,-122.8 217.62,-118.45\"/>\n", "<text text-anchor=\"middle\" x=\"419.82\" y=\"-411.97\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->13 -->\n", "<g id=\"edge328\" class=\"edge\">\n", "<title>4->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M649.11,-725.32C574.23,-642.72 235.97,-304.15 133.23,-208.53\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"135.4,-205.78 125.68,-201.56 130.65,-210.92 135.4,-205.78\"/>\n", "<text text-anchor=\"middle\" x=\"405.67\" y=\"-455.73\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->12 -->\n", "<g id=\"edge329\" class=\"edge\">\n", "<title>4->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M643.44,-725.39C554.09,-654.06 196.71,-394.18 82.14,-316.88\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"83.94,-313.87 73.69,-311.21 80.05,-319.69 83.94,-313.87\"/>\n", "<text text-anchor=\"middle\" x=\"377.29\" y=\"-524.93\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->11 -->\n", "<g id=\"edge330\" class=\"edge\">\n", "<title>4->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.58,-726.29C535.11,-669.1 179.08,-487.59 63.51,-433.98\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"64.89,-430.76 54.34,-429.76 61.97,-437.12 64.89,-430.76\"/>\n", "<text text-anchor=\"middle\" x=\"364.55\" y=\"-583.93\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->10 -->\n", "<g id=\"edge331\" class=\"edge\">\n", "<title>4->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.63,-731.52C537.73,-694.3 197.08,-583.5 83.68,-551.49\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"84.31,-548.03 73.73,-548.73 82.43,-554.78 84.31,-548.03\"/>\n", "<text text-anchor=\"middle\" x=\"345.65\" y=\"-630.31\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->9 -->\n", "<g id=\"edge332\" class=\"edge\">\n", "<title>4->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.53,-736.03C544.62,-716.76 246.25,-669.36 140.87,-657.12\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"141.04,-653.61 130.72,-655.98 140.27,-660.57 141.04,-653.61\"/>\n", "<text text-anchor=\"middle\" x=\"374.2\" y=\"-685.37\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->8 -->\n", "<g id=\"edge333\" class=\"edge\">\n", "<title>4->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.77,-740.19C556.87,-735.84 321.73,-735.67 229.78,-739.68\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"229.37,-736.2 219.55,-740.18 229.71,-743.19 229.37,-736.2\"/>\n", "<text text-anchor=\"middle\" x=\"418.78\" y=\"-728.73\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->7 -->\n", "<g id=\"edge334\" class=\"edge\">\n", "<title>4->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.78,-744.04C573.25,-750.26 414.36,-775.21 341.59,-790.17\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"340.56,-786.81 331.5,-792.3 342.01,-793.66 340.56,-786.81\"/>\n", "<text text-anchor=\"middle\" x=\"474.69\" y=\"-755.91\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->6 -->\n", "<g id=\"edge335\" class=\"edge\">\n", "<title>4->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.78,-747.7C594.45,-758.44 512.5,-784.81 464.84,-802.79\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"463.3,-799.63 455.22,-806.49 465.81,-806.17 463.3,-799.63\"/>\n", "<text text-anchor=\"middle\" x=\"558.06\" y=\"-764.04\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->5 -->\n", "<g id=\"edge336\" class=\"edge\">\n", "<title>4->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M636.69,-750.97C620.76,-757.78 600.57,-767.85 583.89,-777.2\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"581.95,-774.27 575.03,-782.29 585.44,-780.34 581.95,-774.27\"/>\n", "<text text-anchor=\"middle\" x=\"624.79\" y=\"-767.88\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->4 -->\n", "<g id=\"edge337\" class=\"edge\">\n", "<title>4->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M691.05,-750.29C700.84,-750.43 708.81,-748.18 708.81,-743.54 708.81,-740.72 705.85,-738.78 701.32,-737.73\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"701.33,-734.21 691.05,-736.8 700.7,-741.18 701.33,-734.21\"/>\n", "<text text-anchor=\"middle\" x=\"723.31\" y=\"-739.84\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->3 -->\n", "<g id=\"edge338\" class=\"edge\">\n", "<title>4->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M690.41,-725.36C704.87,-712.44 722.27,-695 735.04,-680.66\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"737.72,-682.91 741.6,-673.05 732.42,-678.33 737.72,-682.91\"/>\n", "<text text-anchor=\"middle\" x=\"698.23\" y=\"-706.81\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->2 -->\n", "<g id=\"edge339\" class=\"edge\">\n", "<title>4->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M682.34,-725.37C712.07,-689.83 769.27,-611.26 795.72,-569.78\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"798.85,-571.37 801.17,-561.03 792.91,-567.67 798.85,-571.37\"/>\n", "<text text-anchor=\"middle\" x=\"724.53\" y=\"-636.37\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 4->1 -->\n", "<g id=\"edge340\" class=\"edge\">\n", "<title>4->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M669.36,-725.32C687.67,-643.71 740.45,-311.59 751.23,-211.81\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"754.74,-211.89 752.26,-201.59 747.77,-211.19 754.74,-211.89\"/>\n", "<text text-anchor=\"middle\" x=\"695.8\" y=\"-472.36\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->20 -->\n", "<g id=\"edge341\" class=\"edge\">\n", "<title>3->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M758.71,-636.49C772.56,-577.8 801.83,-394.23 808.89,-323.4\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"812.38,-323.69 809.8,-313.42 805.41,-323.06 812.38,-323.69\"/>\n", "<text text-anchor=\"middle\" x=\"798.3\" y=\"-468.74\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->19 -->\n", "<g id=\"edge342\" class=\"edge\">\n", "<title>3->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M762.53,-636.73C779.59,-595.84 812.2,-496.09 824.73,-447.11\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"828.18,-447.74 827.15,-437.2 821.38,-446.08 828.18,-447.74\"/>\n", "<text text-anchor=\"middle\" x=\"779.13\" y=\"-545.72\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->18 -->\n", "<g id=\"edge343\" class=\"edge\">\n", "<title>3->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M752.28,-636.72C744.8,-555.22 692.21,-221.91 671.48,-122.63\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"674.87,-121.77 669.34,-112.73 668.03,-123.24 674.87,-121.77\"/>\n", "<text text-anchor=\"middle\" x=\"726.38\" y=\"-383.47\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->17 -->\n", "<g id=\"edge344\" class=\"edge\">\n", "<title>3->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M749.19,-636.58C726.54,-548.97 604.02,-171.23 564.22,-65.32\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"567.37,-63.76 560.53,-55.67 560.83,-66.26 567.37,-63.76\"/>\n", "<text text-anchor=\"middle\" x=\"671.2\" y=\"-354.75\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->16 -->\n", "<g id=\"edge345\" class=\"edge\">\n", "<title>3->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M745.98,-636.7C706.67,-547.18 505.72,-152.34 445.2,-45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"448.1,-43.03 440.11,-36.08 442.02,-46.5 448.1,-43.03\"/>\n", "<text text-anchor=\"middle\" x=\"610.09\" y=\"-329.65\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->15 -->\n", "<g id=\"edge346\" class=\"edge\">\n", "<title>3->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M742.26,-636.57C685.14,-548.45 408.51,-167.35 326.81,-63.7\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"329.35,-61.28 320.39,-55.63 323.87,-65.64 329.35,-61.28\"/>\n", "<text text-anchor=\"middle\" x=\"549.03\" y=\"-353.94\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->14 -->\n", "<g id=\"edge347\" class=\"edge\">\n", "<title>3->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M737.84,-636.59C662.96,-553.99 324.69,-215.42 221.96,-119.8\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"224.13,-117.05 214.41,-112.83 219.38,-122.19 224.13,-117.05\"/>\n", "<text text-anchor=\"middle\" x=\"494.4\" y=\"-367\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->13 -->\n", "<g id=\"edge348\" class=\"edge\">\n", "<title>3->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M732.14,-636.71C639.44,-562.85 257.91,-285.42 139.07,-205.14\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"140.91,-202.15 130.65,-199.49 137.01,-207.96 140.91,-202.15\"/>\n", "<text text-anchor=\"middle\" x=\"450.11\" y=\"-409.72\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->12 -->\n", "<g id=\"edge349\" class=\"edge\">\n", "<title>3->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.3,-637.71C615.74,-576.18 207.4,-368.02 82.89,-310.08\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"84.29,-306.87 73.74,-305.86 81.36,-313.23 84.29,-306.87\"/>\n", "<text text-anchor=\"middle\" x=\"418.59\" y=\"-477.69\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->11 -->\n", "<g id=\"edge350\" class=\"edge\">\n", "<title>3->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.42,-643.04C614.04,-601.45 191.88,-464.17 63.95,-427.77\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"64.79,-424.37 54.22,-425.04 62.9,-431.11 64.79,-424.37\"/>\n", "<text text-anchor=\"middle\" x=\"409.18\" y=\"-524.2\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->10 -->\n", "<g id=\"edge351\" class=\"edge\">\n", "<title>3->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.31,-647.63C616.14,-625.19 209.95,-560.72 84.07,-545.67\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"84.13,-542.16 73.79,-544.49 83.32,-549.11 84.13,-542.16\"/>\n", "<text text-anchor=\"middle\" x=\"419.19\" y=\"-585.45\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->9 -->\n", "<g id=\"edge352\" class=\"edge\">\n", "<title>3->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.49,-651.9C623.03,-646.94 258.75,-646.79 140.77,-651.46\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"140.61,-647.96 130.77,-651.89 140.91,-654.96 140.61,-647.96\"/>\n", "<text text-anchor=\"middle\" x=\"418.63\" y=\"-640.48\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->8 -->\n", "<g id=\"edge353\" class=\"edge\">\n", "<title>3->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.42,-655.98C633.67,-665.75 334.84,-712.91 229.5,-734.01\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"228.73,-730.6 219.63,-736.03 230.13,-737.45 228.73,-730.6\"/>\n", "<text text-anchor=\"middle\" x=\"462.96\" y=\"-683.8\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->7 -->\n", "<g id=\"edge354\" class=\"edge\">\n", "<title>3->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.45,-660.07C648.44,-680.57 428.26,-751.91 340.69,-784.47\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"339.29,-781.26 331.17,-788.06 341.76,-787.81 339.29,-781.26\"/>\n", "<text text-anchor=\"middle\" x=\"518.57\" y=\"-711.07\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->6 -->\n", "<g id=\"edge355\" class=\"edge\">\n", "<title>3->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.34,-664.36C666.75,-690.13 528.83,-760.16 463.51,-797.02\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"461.75,-794 454.79,-802 465.21,-800.08 461.75,-794\"/>\n", "<text text-anchor=\"middle\" x=\"579.93\" y=\"-719.49\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->5 -->\n", "<g id=\"edge356\" class=\"edge\">\n", "<title>3->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.24,-668.95C686.38,-693.78 615.79,-744.95 577.79,-775.73\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"575.25,-773.29 569.75,-782.34 579.7,-778.69 575.25,-773.29\"/>\n", "<text text-anchor=\"middle\" x=\"666.01\" y=\"-711.14\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->4 -->\n", "<g id=\"edge357\" class=\"edge\">\n", "<title>3->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.94,-672.99C711.49,-685.92 694.08,-703.35 681.32,-717.7\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"678.64,-715.45 674.76,-725.31 683.94,-720.02 678.64,-715.45\"/>\n", "<text text-anchor=\"middle\" x=\"718.13\" y=\"-684.15\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->3 -->\n", "<g id=\"edge358\" class=\"edge\">\n", "<title>3->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M779.78,-661.56C789.57,-661.7 797.54,-659.45 797.54,-654.81 797.54,-651.99 794.58,-650.05 790.05,-649\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"790.06,-645.48 779.78,-648.07 789.43,-652.45 790.06,-645.48\"/>\n", "<text text-anchor=\"middle\" x=\"812.04\" y=\"-651.11\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->2 -->\n", "<g id=\"edge359\" class=\"edge\">\n", "<title>3->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M767.77,-636.74C778.79,-618.88 792.94,-591.39 801.82,-570.77\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"805.15,-571.85 805.71,-561.27 798.68,-569.19 805.15,-571.85\"/>\n", "<text text-anchor=\"middle\" x=\"770.29\" y=\"-607.55\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 3->1 -->\n", "<g id=\"edge360\" class=\"edge\">\n", "<title>3->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M755.36,-636.62C760.4,-564.57 760.6,-298.92 755.96,-211.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"759.45,-211.24 755.35,-201.47 752.46,-211.66 759.45,-211.24\"/>\n", "<text text-anchor=\"middle\" x=\"741.16\" y=\"-427.84\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->20 -->\n", "<g id=\"edge361\" class=\"edge\">\n", "<title>2->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M813.25,-524.78C817,-481.99 817.25,-374.83 814,-323.46\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"817.48,-323.1 813.25,-313.39 810.5,-323.62 817.48,-323.1\"/>\n", "<text text-anchor=\"middle\" x=\"799.12\" y=\"-427.92\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->19 -->\n", "<g id=\"edge362\" class=\"edge\">\n", "<title>2->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M817.44,-524.97C822.74,-504.62 828.26,-471.27 830.44,-447.43\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"833.95,-447.46 831.19,-437.23 826.96,-446.94 833.95,-447.46\"/>\n", "<text text-anchor=\"middle\" x=\"838.44\" y=\"-490\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->18 -->\n", "<g id=\"edge363\" class=\"edge\">\n", "<title>2->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M806.56,-524.84C789.21,-455.24 708.32,-205.51 676.41,-122\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"679.66,-120.71 672.77,-112.67 673.14,-123.26 679.66,-120.71\"/>\n", "<text text-anchor=\"middle\" x=\"755.99\" y=\"-327.22\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->17 -->\n", "<g id=\"edge364\" class=\"edge\">\n", "<title>2->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M803.29,-525C770.54,-449.17 621.39,-155.93 569.6,-64.79\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"572.5,-62.81 564.47,-55.89 566.43,-66.3 572.5,-62.81\"/>\n", "<text text-anchor=\"middle\" x=\"700.94\" y=\"-298.69\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->16 -->\n", "<g id=\"edge365\" class=\"edge\">\n", "<title>2->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M799.54,-524.92C749.21,-446.57 524.46,-136.84 451.16,-44.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"453.73,-41.84 444.75,-36.22 448.26,-46.21 453.73,-41.84\"/>\n", "<text text-anchor=\"middle\" x=\"639.85\" y=\"-273.38\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->15 -->\n", "<g id=\"edge366\" class=\"edge\">\n", "<title>2->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M795.1,-524.94C726.05,-448.38 429.52,-151.52 333.91,-62.77\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"336.06,-59.99 326.33,-55.79 331.31,-65.14 336.06,-59.99\"/>\n", "<text text-anchor=\"middle\" x=\"579\" y=\"-297.65\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->14 -->\n", "<g id=\"edge367\" class=\"edge\">\n", "<title>2->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M789.14,-524.85C699.79,-453.53 342.41,-193.64 227.84,-116.34\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"229.64,-113.34 219.38,-110.68 225.74,-119.15 229.64,-113.34\"/>\n", "<text text-anchor=\"middle\" x=\"522.99\" y=\"-324.4\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->13 -->\n", "<g id=\"edge368\" class=\"edge\">\n", "<title>2->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.27,-525.9C672.71,-464.38 264.37,-256.22 139.85,-198.28\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"141.26,-195.07 130.71,-194.06 138.33,-201.42 141.26,-195.07\"/>\n", "<text text-anchor=\"middle\" x=\"468.31\" y=\"-350.89\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->12 -->\n", "<g id=\"edge369\" class=\"edge\">\n", "<title>2->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.31,-531.27C666.68,-488.22 216.01,-341.67 83.47,-303.87\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"84.35,-300.48 73.78,-301.14 82.45,-307.22 84.35,-300.48\"/>\n", "<text text-anchor=\"middle\" x=\"418.39\" y=\"-406.37\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->11 -->\n", "<g id=\"edge370\" class=\"edge\">\n", "<title>2->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.09,-535.92C664.15,-511.92 200.04,-438.28 64.41,-421.88\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"64.47,-418.36 54.13,-420.67 63.65,-425.31 64.47,-418.36\"/>\n", "<text text-anchor=\"middle\" x=\"437.75\" y=\"-467.7\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->10 -->\n", "<g id=\"edge371\" class=\"edge\">\n", "<title>2->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.36,-540.3C666.97,-535.06 217.12,-534.92 83.96,-539.88\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"83.7,-536.39 73.85,-540.29 83.99,-543.38 83.7,-536.39\"/>\n", "<text text-anchor=\"middle\" x=\"440.41\" y=\"-528.89\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->9 -->\n", "<g id=\"edge372\" class=\"edge\">\n", "<title>2->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.26,-544.5C672.95,-556.63 266.08,-620.91 140.65,-645.66\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"139.87,-642.24 130.75,-647.65 141.25,-649.11 139.87,-642.24\"/>\n", "<text text-anchor=\"middle\" x=\"461.46\" y=\"-583.88\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->8 -->\n", "<g id=\"edge373\" class=\"edge\">\n", "<title>2->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.48,-548.71C683.75,-575.63 342.59,-686.29 229.25,-727.91\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"227.78,-724.72 219.62,-731.48 230.22,-731.28 227.78,-724.72\"/>\n", "<text text-anchor=\"middle\" x=\"491.36\" y=\"-627.11\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->7 -->\n", "<g id=\"edge374\" class=\"edge\">\n", "<title>2->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.31,-553.29C697.23,-591.53 436.35,-724.24 340.19,-777.91\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"338.41,-774.9 331.41,-782.86 341.84,-781 338.41,-774.9\"/>\n", "<text text-anchor=\"middle\" x=\"546.75\" y=\"-654.4\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->6 -->\n", "<g id=\"edge375\" class=\"edge\">\n", "<title>2->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M782.39,-558.31C712.25,-604.12 525.73,-739.53 455.38,-795.57\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"452.99,-793 447.4,-802 457.38,-798.46 452.99,-793\"/>\n", "<text text-anchor=\"middle\" x=\"604.39\" y=\"-665.74\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->5 -->\n", "<g id=\"edge376\" class=\"edge\">\n", "<title>2->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M785.67,-561.31C735.26,-606.45 619,-722.63 572.08,-774.71\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"569.19,-772.69 565.16,-782.49 574.42,-777.34 569.19,-772.69\"/>\n", "<text text-anchor=\"middle\" x=\"664.38\" y=\"-656.81\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->4 -->\n", "<g id=\"edge377\" class=\"edge\">\n", "<title>2->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M790.98,-561.18C761.25,-596.72 704.06,-675.29 677.61,-716.78\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"674.48,-715.18 672.16,-725.52 680.42,-718.88 674.48,-715.18\"/>\n", "<text text-anchor=\"middle\" x=\"748.79\" y=\"-627.78\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->3 -->\n", "<g id=\"edge378\" class=\"edge\">\n", "<title>2->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M794.28,-561.08C783.26,-578.94 769.11,-606.43 760.24,-627.06\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"756.9,-625.97 756.34,-636.55 763.38,-628.63 756.9,-625.97\"/>\n", "<text text-anchor=\"middle\" x=\"791.76\" y=\"-582.87\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->2 -->\n", "<g id=\"edge379\" class=\"edge\">\n", "<title>2->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M836.75,-549.75C846.54,-549.9 854.51,-547.65 854.51,-543.01 854.51,-540.18 851.55,-538.24 847.02,-537.19\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"847.03,-533.68 836.75,-536.26 846.4,-540.65 847.03,-533.68\"/>\n", "<text text-anchor=\"middle\" x=\"869.01\" y=\"-539.31\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 2->1 -->\n", "<g id=\"edge380\" class=\"edge\">\n", "<title>2->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M809.82,-524.93C805.18,-466.53 776.32,-282.66 760.97,-211.68\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"764.32,-210.66 758.71,-201.67 757.5,-212.19 764.32,-210.66\"/>\n", "<text text-anchor=\"middle\" x=\"770.89\" y=\"-372.1\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->20 -->\n", "<g id=\"edge381\" class=\"edge\">\n", "<title>1->20</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M756.34,-201.57C763.35,-219.73 777.19,-247.73 789.12,-268.39\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"786.13,-270.22 794.26,-277.02 792.15,-266.64 786.13,-270.22\"/>\n", "<text text-anchor=\"middle\" x=\"758.23\" y=\"-223.78\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->19 -->\n", "<g id=\"edge382\" class=\"edge\">\n", "<title>1->19</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M754.53,-201.43C763.95,-242.48 796.22,-342.79 815.35,-391.57\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"812.12,-392.91 819.11,-400.88 818.61,-390.29 812.12,-392.91\"/>\n", "<text text-anchor=\"middle\" x=\"770.44\" y=\"-285.3\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->18 -->\n", "<g id=\"edge383\" class=\"edge\">\n", "<title>1->18</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M741.54,-165.02C730.54,-151.83 713.28,-133.98 697.78,-119.52\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"700.09,-116.89 690.35,-112.72 695.37,-122.05 700.09,-116.89\"/>\n", "<text text-anchor=\"middle\" x=\"734.16\" y=\"-146.07\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->17 -->\n", "<g id=\"edge384\" class=\"edge\">\n", "<title>1->17</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M734.72,-165.1C701.73,-137.44 630.81,-85.56 587.64,-57.17\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"589.43,-54.16 579.13,-51.65 585.62,-60.03 589.43,-54.16\"/>\n", "<text text-anchor=\"middle\" x=\"675.68\" y=\"-114.93\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->16 -->\n", "<g id=\"edge385\" class=\"edge\">\n", "<title>1->16</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.86,-165.21C667.91,-131.74 530.58,-61.64 464.63,-31.73\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"465.99,-28.5 455.43,-27.62 463.13,-34.89 465.99,-28.5\"/>\n", "<text text-anchor=\"middle\" x=\"609.74\" y=\"-87.27\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->15 -->\n", "<g id=\"edge386\" class=\"edge\">\n", "<title>1->15</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.24,-170.77C648.11,-141.29 428.62,-69.85 340.95,-45.53\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"341.74,-42.12 331.18,-42.87 339.91,-48.87 341.74,-42.12\"/>\n", "<text text-anchor=\"middle\" x=\"518.59\" y=\"-96.95\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->14 -->\n", "<g id=\"edge387\" class=\"edge\">\n", "<title>1->14</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.25,-175.82C633.35,-156.54 334.98,-109.15 229.6,-96.9\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"229.77,-93.4 219.45,-95.76 228.99,-100.35 229.77,-93.4\"/>\n", "<text text-anchor=\"middle\" x=\"462.93\" y=\"-125.16\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->13 -->\n", "<g id=\"edge388\" class=\"edge\">\n", "<title>1->13</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.49,-180.41C623.03,-175.45 258.75,-175.3 140.77,-179.97\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"140.61,-176.48 130.77,-180.41 140.91,-183.47 140.61,-176.48\"/>\n", "<text text-anchor=\"middle\" x=\"418.63\" y=\"-168.99\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->12 -->\n", "<g id=\"edge389\" class=\"edge\">\n", "<title>1->12</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.3,-184.81C615.98,-196.95 209.11,-261.23 83.68,-285.98\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"82.9,-282.56 73.79,-287.97 84.28,-289.43 82.9,-282.56\"/>\n", "<text text-anchor=\"middle\" x=\"389.99\" y=\"-224.2\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->11 -->\n", "<g id=\"edge390\" class=\"edge\">\n", "<title>1->11</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.45,-189.26C614.14,-219.97 192.04,-356.95 64.02,-403.65\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"62.45,-400.5 54.28,-407.24 64.87,-407.07 62.45,-400.5\"/>\n", "<text text-anchor=\"middle\" x=\"387.48\" y=\"-285.25\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->10 -->\n", "<g id=\"edge391\" class=\"edge\">\n", "<title>1->10</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.33,-194.1C615.73,-244.16 206.77,-452.35 82.59,-521.04\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"80.85,-518.01 73.81,-525.93 84.25,-524.12 80.85,-518.01\"/>\n", "<text text-anchor=\"middle\" x=\"389.46\" y=\"-346.37\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->9 -->\n", "<g id=\"edge392\" class=\"edge\">\n", "<title>1->9</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M725.44,-199.52C620.2,-269.62 239.57,-546.07 132.04,-630.37\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"129.59,-627.84 123.91,-636.78 133.93,-633.33 129.59,-627.84\"/>\n", "<text text-anchor=\"middle\" x=\"443.24\" y=\"-403.74\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->8 -->\n", "<g id=\"edge393\" class=\"edge\">\n", "<title>1->8</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M730.69,-201.35C641.05,-283.47 302.81,-621.61 213.83,-717.9\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"211.1,-715.7 206.93,-725.44 216.26,-720.43 211.1,-715.7\"/>\n", "<text text-anchor=\"middle\" x=\"457.76\" y=\"-448.43\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->7 -->\n", "<g id=\"edge394\" class=\"edge\">\n", "<title>1->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M736.04,-201.64C665.28,-289.76 389.24,-669.52 319.91,-773.91\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"316.95,-772.04 314.39,-782.32 322.8,-775.88 316.95,-772.04\"/>\n", "<text text-anchor=\"middle\" x=\"513.47\" y=\"-476.57\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->6 -->\n", "<g id=\"edge395\" class=\"edge\">\n", "<title>1->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M740.4,-201.59C688.53,-291.26 487.93,-684.7 438.82,-792.67\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"435.57,-791.37 434.67,-801.93 441.96,-794.23 435.57,-791.37\"/>\n", "<text text-anchor=\"middle\" x=\"575.11\" y=\"-485.93\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->5 -->\n", "<g id=\"edge396\" class=\"edge\">\n", "<title>1->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M744.03,-201.35C709.95,-288.52 587.05,-666.28 557.95,-772.59\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"554.56,-771.72 555.36,-782.28 561.32,-773.53 554.56,-771.72\"/>\n", "<text text-anchor=\"middle\" x=\"636.49\" y=\"-475.77\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->4 -->\n", "<g id=\"edge397\" class=\"edge\">\n", "<title>1->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M746.99,-201.56C728.69,-283.16 675.91,-615.28 665.13,-715.06\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"661.62,-714.98 664.1,-725.28 668.58,-715.68 661.62,-714.98\"/>\n", "<text text-anchor=\"middle\" x=\"691.56\" y=\"-447.11\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->3 -->\n", "<g id=\"edge398\" class=\"edge\">\n", "<title>1->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M749.73,-201.52C744.69,-273.57 744.49,-539.22 749.13,-626.69\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"745.63,-626.9 749.73,-636.67 752.62,-626.48 745.63,-626.9\"/>\n", "<text text-anchor=\"middle\" x=\"734.93\" y=\"-402.9\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->2 -->\n", "<g id=\"edge399\" class=\"edge\">\n", "<title>1->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M752.24,-201.41C756.87,-259.81 785.74,-443.67 801.09,-514.66\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"797.73,-515.68 803.34,-524.67 804.56,-514.14 797.73,-515.68\"/>\n", "<text text-anchor=\"middle\" x=\"762.16\" y=\"-346.83\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "<!-- 1->1 -->\n", "<g id=\"edge400\" class=\"edge\">\n", "<title>1->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M779.78,-190.07C789.57,-190.22 797.54,-187.97 797.54,-183.33 797.54,-180.5 794.58,-178.56 790.05,-177.51\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"790.06,-174 779.78,-176.58 789.43,-180.97 790.06,-174\"/>\n", "<text text-anchor=\"middle\" x=\"812.04\" y=\"-179.63\" font-family=\"Times,serif\" font-size=\"14.00\">K20</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [(\"K20\",(1..20)*(1..20))]>" ] }, "execution_count": 76, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"K20\",(1..20)×(1..20))" ] }, { "cell_type": "code", "execution_count": 77, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Preference changed: DOT_ENGINE = dot\n" ] }, "execution_count": 77, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":pref DOT_ENGINE=dot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Definitions- und Wertebereich\n", "\n", "Definitionsbereich (Domain in Englisch):\n", "* $dom(r) = \\{a \\mid \\exists b.((a,b)\\in r)\\}$\n", "\n", "Wertebereich (Bildmenge, Range in Englisch):\n", "* $ran(r) = \\{b \\mid \\exists a.((a,b)\\in r)\\}$\n", " " ] }, { "cell_type": "code", "execution_count": 78, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(2\\mapsto 1),(4\\mapsto 2),(6\\mapsto 3),(8\\mapsto 4),(10\\mapsto 5)\\}$" ], "text/plain": [ "{(2↦1),(4↦2),(6↦3),(8↦4),(10↦5)}" ] }, "execution_count": 78, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":let h {a,b| a∈1..10 ∧ b∈1..10 & b*2=a}" ] }, { "cell_type": "code", "execution_count": 79, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{2,4,6,8,10\\}$" ], "text/plain": [ "{2,4,6,8,10}" ] }, "execution_count": 79, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{a| ∃b.((a,b)∈h)}" ] }, { "cell_type": "code", "execution_count": 80, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,2,3,4,5\\}$" ], "text/plain": [ "{1,2,3,4,5}" ] }, "execution_count": 80, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{b| ∃a.((a,b)∈h)}" ] }, { "cell_type": "code", "execution_count": 81, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{2,4,6,8,10\\}$" ], "text/plain": [ "{2,4,6,8,10}" ] }, "execution_count": 81, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dom(h)" ] }, { "cell_type": "code", "execution_count": 82, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(2\\mapsto 1),(4\\mapsto 2),(6\\mapsto 3),(8\\mapsto 4),(10\\mapsto 5)\\}$" ], "text/plain": [ "{(2↦1),(4↦2),(6↦3),(8↦4),(10↦5)}" ] }, "execution_count": 82, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":let h {a,b| a∈1..10 ∧ b∈1..10 & b*2=a}" ] }, { "cell_type": "code", "execution_count": 83, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"206pt\" height=\"305pt\"\n", " viewBox=\"0.00 0.00 206.00 305.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 301)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-301 202,-301 202,4 -4,4\"/>\n", "<!-- 10 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>10</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-297 0,-297 0,-261 54,-261 54,-297\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n", "</g>\n", "<!-- 5 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>5</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-210 0,-210 0,-174 54,-174 54,-210\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", "</g>\n", "<!-- 10->5 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>10->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M27,-260.8C27,-249.16 27,-233.55 27,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"30.5,-220.18 27,-210.18 23.5,-220.18 30.5,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"32\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "<!-- 8 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>8</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-297 72,-297 72,-261 126,-261 126,-297\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", "</g>\n", "<!-- 4 -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>4</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-210 72,-210 72,-174 126,-174 126,-210\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", "</g>\n", "<!-- 8->4 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>8->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M99,-260.8C99,-249.16 99,-233.55 99,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.5,-220.18 99,-210.18 95.5,-220.18 102.5,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"104\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node7\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-123 72,-123 72,-87 126,-87 126,-123\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 4->2 -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>4->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M99,-173.8C99,-162.16 99,-146.55 99,-133.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.5,-133.18 99,-123.18 95.5,-133.18 102.5,-133.18\"/>\n", "<text text-anchor=\"middle\" x=\"104\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "<!-- 6 -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>6</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"198,-297 144,-297 144,-261 198,-261 198,-297\"/>\n", "<text text-anchor=\"middle\" x=\"171\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", "</g>\n", "<!-- 3 -->\n", "<g id=\"node6\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"198,-210 144,-210 144,-174 198,-174 198,-210\"/>\n", "<text text-anchor=\"middle\" x=\"171\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 6->3 -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>6->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M171,-260.8C171,-249.16 171,-233.55 171,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"174.5,-220.18 171,-210.18 167.5,-220.18 174.5,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"176\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node8\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-36 72,-36 72,0 126,0 126,-36\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 2->1 -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>2->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M99,-86.8C99,-75.16 99,-59.55 99,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.5,-46.18 99,-36.18 95.5,-46.18 102.5,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"104\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [hh={(2,1),(4,2),(6,3),(8,4),(10,5)}(\"h\",h)]>" ] }, "execution_count": 83, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"h\",h)" ] }, { "cell_type": "code", "execution_count": 84, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto\\text{\"nein\"}),(2\\mapsto\\text{\"nein\"}),(3\\mapsto\\text{\"ja\"}),(4\\mapsto\\text{\"nein\"}),(5\\mapsto\\text{\"nein\"}),(6\\mapsto\\text{\"ja\"}),(7\\mapsto\\text{\"nein\"})\\}$" ], "text/plain": [ "{(1↦\"nein\"),(2↦\"nein\"),(3↦\"ja\"),(4↦\"nein\"),(5↦\"nein\"),(6↦\"ja\"),(7↦\"nein\")}" ] }, "execution_count": 84, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":let d {x,y| x:1..7 ∧ (x mod 3 =0 => y = \"ja\") ∧ (x mod 3 >0 => y= \"nein\")}" ] }, { "cell_type": "code", "execution_count": 85, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,2,3,4,5,6,7\\}$" ], "text/plain": [ "{1,2,3,4,5,6,7}" ] }, "execution_count": 85, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dom(d)" ] }, { "cell_type": "code", "execution_count": 86, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{\\text{\"ja\"},\\text{\"nein\"}\\}$" ], "text/plain": [ "{\"ja\",\"nein\"}" ] }, "execution_count": 86, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ran(d)" ] }, { "cell_type": "code", "execution_count": 87, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"494pt\" height=\"131pt\"\n", " viewBox=\"0.00 0.00 494.00 131.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 127)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-127 490,-127 490,4 -4,4\"/>\n", "<!-- 7 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>7</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-123 0,-123 0,-87 54,-87 54,-123\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", "</g>\n", "<!-- "nein" -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>"nein"</title>\n", "<polygon fill=\"#fff68f\" stroke=\"#fff68f\" points=\"201.5,-36 140.5,-36 140.5,0 201.5,0 201.5,-36\"/>\n", "<text text-anchor=\"middle\" x=\"171\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">"nein"</text>\n", "</g>\n", "<!-- 7->"nein" -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>7->"nein"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.09,-88.01C76.43,-74.82 108.4,-55.95 133.25,-41.28\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"135.23,-44.18 142.06,-36.08 131.67,-38.15 135.23,-44.18\"/>\n", "<text text-anchor=\"middle\" x=\"113\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d</text>\n", "</g>\n", "<!-- 6 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>6</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"414,-123 360,-123 360,-87 414,-87 414,-123\"/>\n", "<text text-anchor=\"middle\" x=\"387\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", "</g>\n", "<!-- "ja" -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>"ja"</title>\n", "<polygon fill=\"#fff68f\" stroke=\"#fff68f\" points=\"450,-36 396,-36 396,0 450,0 450,-36\"/>\n", "<text text-anchor=\"middle\" x=\"423\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">"ja"</text>\n", "</g>\n", "<!-- 6->"ja" -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>6->"ja"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M394.29,-86.8C399.31,-74.93 406.09,-58.93 411.8,-45.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"415.05,-46.75 415.73,-36.18 408.6,-44.02 415.05,-46.75\"/>\n", "<text text-anchor=\"middle\" x=\"412\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d</text>\n", "</g>\n", "<!-- 5 -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>5</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-123 72,-123 72,-87 126,-87 126,-123\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", "</g>\n", "<!-- 5->"nein" -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>5->"nein"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M113.57,-86.8C124.01,-74.47 138.24,-57.68 149.92,-43.89\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"152.66,-46.07 156.45,-36.18 147.32,-41.54 152.66,-46.07\"/>\n", "<text text-anchor=\"middle\" x=\"145\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d</text>\n", "</g>\n", "<!-- 4 -->\n", "<g id=\"node6\" class=\"node\">\n", "<title>4</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"198,-123 144,-123 144,-87 198,-87 198,-123\"/>\n", "<text text-anchor=\"middle\" x=\"171\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", "</g>\n", "<!-- 4->"nein" -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>4->"nein"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M171,-86.8C171,-75.16 171,-59.55 171,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"174.5,-46.18 171,-36.18 167.5,-46.18 174.5,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"176\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d</text>\n", "</g>\n", "<!-- 3 -->\n", "<g id=\"node7\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"486,-123 432,-123 432,-87 486,-87 486,-123\"/>\n", "<text text-anchor=\"middle\" x=\"459\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 3->"ja" -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>3->"ja"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M451.71,-86.8C446.69,-74.93 439.91,-58.93 434.2,-45.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"437.4,-44.02 430.27,-36.18 430.95,-46.75 437.4,-44.02\"/>\n", "<text text-anchor=\"middle\" x=\"448\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node8\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"270,-123 216,-123 216,-87 270,-87 270,-123\"/>\n", "<text text-anchor=\"middle\" x=\"243\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 2->"nein" -->\n", "<g id=\"edge6\" class=\"edge\">\n", "<title>2->"nein"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M228.43,-86.8C217.99,-74.47 203.76,-57.68 192.08,-43.89\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"194.68,-41.54 185.55,-36.18 189.34,-46.07 194.68,-41.54\"/>\n", "<text text-anchor=\"middle\" x=\"217\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node9\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"342,-123 288,-123 288,-87 342,-87 342,-123\"/>\n", "<text text-anchor=\"middle\" x=\"315\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 1->"nein" -->\n", "<g id=\"edge7\" class=\"edge\">\n", "<title>1->"nein"</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M287.91,-88.01C265.57,-74.82 233.6,-55.95 208.75,-41.28\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"210.33,-38.15 199.94,-36.08 206.77,-44.18 210.33,-38.15\"/>\n", "<text text-anchor=\"middle\" x=\"257\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [dhd={(1,\"nein\"),(2,\"nein\"),(3,\"ja\"),(4,\"nein\"),(5,\"nein\"),(6,\"ja\"),(7,\"nein\")} & h={(2,1),(4,2),(6,3),(8,4),(10,5)}(\"d\",d)]>" ] }, "execution_count": 87, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"d\",d)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Relationales Abbild und Umkehrrelation\n", " \n", "Abbild:\n", " * $r[A] = \\{b \\mid \\exists a.((a,b)\\in r \\wedge a\\in A)\\}$\n", "\n", "Umkehrrelation:\n", " * $r^{-1} = \\{(b,a) \\mid (a,b)\\in r \\}$\n", "\n", "Im Notebook muss für die Umkehrrelation leider Tilde (~) verwendet werden: " ] }, { "cell_type": "code", "execution_count": 88, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{4,5\\}$" ], "text/plain": [ "{4,5}" ] }, "execution_count": 88, "metadata": {}, "output_type": "execute_result" } ], "source": [ "h[8..10]" ] }, { "cell_type": "code", "execution_count": 89, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{\\text{\"ja\"}\\}$" ], "text/plain": [ "{\"ja\"}" ] }, "execution_count": 89, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d[{3,6}]" ] }, { "cell_type": "code", "execution_count": 90, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\emptyset$" ], "text/plain": [ "∅" ] }, "execution_count": 90, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d[{0}]" ] }, { "cell_type": "code", "execution_count": 91, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(\\text{\"ja\"}\\mapsto 3),(\\text{\"ja\"}\\mapsto 6),(\\text{\"nein\"}\\mapsto 1),(\\text{\"nein\"}\\mapsto 2),(\\text{\"nein\"}\\mapsto 4),(\\text{\"nein\"}\\mapsto 5),(\\text{\"nein\"}\\mapsto 7)\\}$" ], "text/plain": [ "{(\"ja\"↦3),(\"ja\"↦6),(\"nein\"↦1),(\"nein\"↦2),(\"nein\"↦4),(\"nein\"↦5),(\"nein\"↦7)}" ] }, "execution_count": 91, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d~" ] }, { "cell_type": "code", "execution_count": 92, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"494pt\" height=\"131pt\"\n", " viewBox=\"0.00 0.00 494.00 131.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 127)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-127 490,-127 490,4 -4,4\"/>\n", "<!-- "nein" -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>"nein"</title>\n", "<polygon fill=\"#fff68f\" stroke=\"#fff68f\" points=\"201.5,-123 140.5,-123 140.5,-87 201.5,-87 201.5,-123\"/>\n", "<text text-anchor=\"middle\" x=\"171\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">"nein"</text>\n", "</g>\n", "<!-- 7 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>7</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-36 0,-36 0,0 54,0 54,-36\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">7</text>\n", "</g>\n", "<!-- "nein"->7 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>"nein"->7</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M140.48,-88.49C129.22,-82.59 116.42,-75.67 105,-69 90.42,-60.48 74.68,-50.54 61.18,-41.77\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"62.95,-38.75 52.67,-36.21 59.12,-44.61 62.95,-38.75\"/>\n", "<text text-anchor=\"middle\" x=\"116\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d~</text>\n", "</g>\n", "<!-- 5 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>5</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-36 72,-36 72,0 126,0 126,-36\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", "</g>\n", "<!-- "nein"->5 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>"nein"->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M156.43,-86.8C145.99,-74.47 131.76,-57.68 120.08,-43.89\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"122.68,-41.54 113.55,-36.18 117.34,-46.07 122.68,-41.54\"/>\n", "<text text-anchor=\"middle\" x=\"151\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d~</text>\n", "</g>\n", "<!-- 4 -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>4</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"198,-36 144,-36 144,0 198,0 198,-36\"/>\n", "<text text-anchor=\"middle\" x=\"171\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", "</g>\n", "<!-- "nein"->4 -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>"nein"->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M171,-86.8C171,-75.16 171,-59.55 171,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"174.5,-46.18 171,-36.18 167.5,-46.18 174.5,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"182\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d~</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"270,-36 216,-36 216,0 270,0 270,-36\"/>\n", "<text text-anchor=\"middle\" x=\"243\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- "nein"->2 -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>"nein"->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M185.57,-86.8C196.01,-74.47 210.24,-57.68 221.92,-43.89\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"224.66,-46.07 228.45,-36.18 219.32,-41.54 224.66,-46.07\"/>\n", "<text text-anchor=\"middle\" x=\"223\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d~</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node6\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"342,-36 288,-36 288,0 342,0 342,-36\"/>\n", "<text text-anchor=\"middle\" x=\"315\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- "nein"->1 -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>"nein"->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M201.68,-88.74C213.2,-82.82 226.33,-75.82 238,-69 252.56,-60.49 268.24,-50.48 281.63,-41.65\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"283.67,-44.5 290.06,-36.05 279.79,-38.67 283.67,-44.5\"/>\n", "<text text-anchor=\"middle\" x=\"273\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d~</text>\n", "</g>\n", "<!-- "ja" -->\n", "<g id=\"node7\" class=\"node\">\n", "<title>"ja"</title>\n", "<polygon fill=\"#fff68f\" stroke=\"#fff68f\" points=\"450,-123 396,-123 396,-87 450,-87 450,-123\"/>\n", "<text text-anchor=\"middle\" x=\"423\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">"ja"</text>\n", "</g>\n", "<!-- 6 -->\n", "<g id=\"node8\" class=\"node\">\n", "<title>6</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"414,-36 360,-36 360,0 414,0 414,-36\"/>\n", "<text text-anchor=\"middle\" x=\"387\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", "</g>\n", "<!-- "ja"->6 -->\n", "<g id=\"edge6\" class=\"edge\">\n", "<title>"ja"->6</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M415.71,-86.8C410.69,-74.93 403.91,-58.93 398.2,-45.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"401.4,-44.02 394.27,-36.18 394.95,-46.75 401.4,-44.02\"/>\n", "<text text-anchor=\"middle\" x=\"419\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d~</text>\n", "</g>\n", "<!-- 3 -->\n", "<g id=\"node9\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"486,-36 432,-36 432,0 486,0 486,-36\"/>\n", "<text text-anchor=\"middle\" x=\"459\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- "ja"->3 -->\n", "<g id=\"edge7\" class=\"edge\">\n", "<title>"ja"->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M430.29,-86.8C435.31,-74.93 442.09,-58.93 447.8,-45.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"451.05,-46.75 451.73,-36.18 444.6,-44.02 451.05,-46.75\"/>\n", "<text text-anchor=\"middle\" x=\"454\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">d~</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [dhd={(1,\"nein\"),(2,\"nein\"),(3,\"ja\"),(4,\"nein\"),(5,\"nein\"),(6,\"ja\"),(7,\"nein\")} & h={(2,1),(4,2),(6,3),(8,4),(10,5)}(\"d~\",d~)]>" ] }, "execution_count": 92, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"d~\",d~)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Man kann natürlich auch beide Operatoren verknüpfen, zum Beispiel um herauszufinden welche Zahlen durch 3 teilbar sind:" ] }, { "cell_type": "code", "execution_count": 93, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{3,6\\}$" ], "text/plain": [ "{3,6}" ] }, "execution_count": 93, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d~[{\"ja\"}]" ] }, { "cell_type": "code", "execution_count": 94, "metadata": {}, "outputs": [], "source": [ ":unlet d" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Binäre Relationen - Verknüpfung\n", " \n", "Wir können Relationen $r_1$ und $r_2$ mit dem Operator ``;'' verknüpfen:\n", "* $(r_1 ; r_2)$ = $\\{(a,c) \\mid \\exists b. ( (a,b)\\in r_1 \\wedge (b,c)\\in r_2)\\}$.\n", "\n" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 4),(1\\mapsto 8)\\}$" ], "text/plain": [ "{(1↦4),(1↦8)}" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "({1↦2, 2↦3} ; {2↦4, 2↦8})" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "Man kann eine Relation auch mit sich selber verknüpfen wenn Werte- und Definitionsbereich kompatibel sind.\n", "Zum Beispiel $h^2 = (h;h)$:" ] }, { "cell_type": "code", "execution_count": 96, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(4\\mapsto 1),(8\\mapsto 2)\\}$" ], "text/plain": [ "{(4↦1),(8↦2)}" ] }, "execution_count": 96, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(h ; h)" ] }, { "cell_type": "code", "execution_count": 97, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"269pt\" height=\"305pt\"\n", " viewBox=\"0.00 0.00 269.00 305.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 301)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-301 265,-301 265,4 -4,4\"/>\n", "<!-- 8 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>8</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"78,-297 24,-297 24,-261 78,-261 78,-297\"/>\n", "<text text-anchor=\"middle\" x=\"51\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-123 0,-123 0,-87 54,-87 54,-123\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 8->2 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>8->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M46.18,-260.82C42.54,-247.15 37.71,-227.5 35,-210 30.98,-184.09 28.95,-154.23 27.94,-133.17\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"31.43,-132.86 27.5,-123.03 24.44,-133.17 31.43,-132.86\"/>\n", "<text text-anchor=\"middle\" x=\"44.5\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">hh</text>\n", "</g>\n", "<!-- 4 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>4</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"117,-210 63,-210 63,-174 117,-174 117,-210\"/>\n", "<text text-anchor=\"middle\" x=\"90\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", "</g>\n", "<!-- 8->4 -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>8->4</title>\n", "<path fill=\"none\" stroke=\"sienna\" d=\"M58.89,-260.8C64.34,-248.93 71.68,-232.93 77.86,-219.45\"/>\n", "<polygon fill=\"sienna\" stroke=\"sienna\" points=\"81.13,-220.72 82.12,-210.18 74.77,-217.8 81.13,-220.72\"/>\n", "<text text-anchor=\"middle\" x=\"78\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"85,-36 31,-36 31,0 85,0 85,-36\"/>\n", "<text text-anchor=\"middle\" x=\"58\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 2->1 -->\n", "<g id=\"edge7\" class=\"edge\">\n", "<title>2->1</title>\n", "<path fill=\"none\" stroke=\"sienna\" d=\"M33.27,-86.8C37.56,-75.05 43.32,-59.24 48.21,-45.84\"/>\n", "<polygon fill=\"sienna\" stroke=\"sienna\" points=\"51.6,-46.77 51.74,-36.18 45.02,-44.37 51.6,-46.77\"/>\n", "<text text-anchor=\"middle\" x=\"50\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "<!-- 4->2 -->\n", "<g id=\"edge6\" class=\"edge\">\n", "<title>4->2</title>\n", "<path fill=\"none\" stroke=\"sienna\" d=\"M77.25,-173.8C68.2,-161.59 55.9,-144.99 45.74,-131.28\"/>\n", "<polygon fill=\"sienna\" stroke=\"sienna\" points=\"48.5,-129.13 39.73,-123.18 42.87,-133.29 48.5,-129.13\"/>\n", "<text text-anchor=\"middle\" x=\"68\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "<!-- 4->1 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>4->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M86.81,-173.88C81.26,-144 69.74,-82.11 63.07,-46.27\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"66.44,-45.24 61.17,-36.05 59.56,-46.52 66.44,-45.24\"/>\n", "<text text-anchor=\"middle\" x=\"87.5\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">hh</text>\n", "</g>\n", "<!-- 10 -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>10</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"189,-297 135,-297 135,-261 189,-261 189,-297\"/>\n", "<text text-anchor=\"middle\" x=\"162\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n", "</g>\n", "<!-- 5 -->\n", "<g id=\"node6\" class=\"node\">\n", "<title>5</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"189,-210 135,-210 135,-174 189,-174 189,-210\"/>\n", "<text text-anchor=\"middle\" x=\"162\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", "</g>\n", "<!-- 10->5 -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>10->5</title>\n", "<path fill=\"none\" stroke=\"sienna\" d=\"M162,-260.8C162,-249.16 162,-233.55 162,-220.24\"/>\n", "<polygon fill=\"sienna\" stroke=\"sienna\" points=\"165.5,-220.18 162,-210.18 158.5,-220.18 165.5,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"167\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "<!-- 6 -->\n", "<g id=\"node7\" class=\"node\">\n", "<title>6</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"261,-297 207,-297 207,-261 261,-261 261,-297\"/>\n", "<text text-anchor=\"middle\" x=\"234\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", "</g>\n", "<!-- 3 -->\n", "<g id=\"node8\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"261,-210 207,-210 207,-174 261,-174 261,-210\"/>\n", "<text text-anchor=\"middle\" x=\"234\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 6->3 -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>6->3</title>\n", "<path fill=\"none\" stroke=\"sienna\" d=\"M234,-260.8C234,-249.16 234,-233.55 234,-220.24\"/>\n", "<polygon fill=\"sienna\" stroke=\"sienna\" points=\"237.5,-220.18 234,-210.18 230.5,-220.18 237.5,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"239\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [hh={(2,1),(4,2),(6,3),(8,4),(10,5)}(\"h\",h)]>" ] }, "execution_count": 97, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"h\",h,\"hh\",(h;h))" ] }, { "cell_type": "code", "execution_count": 98, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"134pt\" height=\"131pt\"\n", " viewBox=\"0.00 0.00 134.00 131.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 127)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-127 130,-127 130,4 -4,4\"/>\n", "<!-- 8 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>8</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-123 0,-123 0,-87 54,-87 54,-123\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-36 0,-36 0,0 54,0 54,-36\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 8->2 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>8->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M27,-86.8C27,-75.16 27,-59.55 27,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"30.5,-46.18 27,-36.18 23.5,-46.18 30.5,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"36.5\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">hh</text>\n", "</g>\n", "<!-- 4 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>4</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-123 72,-123 72,-87 126,-87 126,-123\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-36 72,-36 72,0 126,0 126,-36\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 4->1 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>4->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M99,-86.8C99,-75.16 99,-59.55 99,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.5,-46.18 99,-36.18 95.5,-46.18 102.5,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"108.5\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">hh</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [hh={(2,1),(4,2),(6,3),(8,4),(10,5)}(\"hh\",(h;h))]>" ] }, "execution_count": 98, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"hh\",(h;h))" ] }, { "cell_type": "code", "execution_count": 99, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"206pt\" height=\"305pt\"\n", " viewBox=\"0.00 0.00 206.00 305.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 301)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-301 202,-301 202,4 -4,4\"/>\n", "<!-- 10 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>10</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-297 0,-297 0,-261 54,-261 54,-297\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n", "</g>\n", "<!-- 5 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>5</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-210 0,-210 0,-174 54,-174 54,-210\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", "</g>\n", "<!-- 10->5 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>10->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M27,-260.8C27,-249.16 27,-233.55 27,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"30.5,-220.18 27,-210.18 23.5,-220.18 30.5,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"32\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "<!-- 8 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>8</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-297 72,-297 72,-261 126,-261 126,-297\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", "</g>\n", "<!-- 4 -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>4</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-210 72,-210 72,-174 126,-174 126,-210\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", "</g>\n", "<!-- 8->4 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>8->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M99,-260.8C99,-249.16 99,-233.55 99,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.5,-220.18 99,-210.18 95.5,-220.18 102.5,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"104\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node7\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-123 72,-123 72,-87 126,-87 126,-123\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 4->2 -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>4->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M99,-173.8C99,-162.16 99,-146.55 99,-133.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.5,-133.18 99,-123.18 95.5,-133.18 102.5,-133.18\"/>\n", "<text text-anchor=\"middle\" x=\"104\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "<!-- 6 -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>6</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"198,-297 144,-297 144,-261 198,-261 198,-297\"/>\n", "<text text-anchor=\"middle\" x=\"171\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", "</g>\n", "<!-- 3 -->\n", "<g id=\"node6\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"198,-210 144,-210 144,-174 198,-174 198,-210\"/>\n", "<text text-anchor=\"middle\" x=\"171\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 6->3 -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>6->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M171,-260.8C171,-249.16 171,-233.55 171,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"174.5,-220.18 171,-210.18 167.5,-220.18 174.5,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"176\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node8\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-36 72,-36 72,0 126,0 126,-36\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 2->1 -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>2->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M99,-86.8C99,-75.16 99,-59.55 99,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"102.5,-46.18 99,-36.18 95.5,-46.18 102.5,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"104\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">h</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [hh={(2,1),(4,2),(6,3),(8,4),(10,5)}(\"h\",h)]>" ] }, "execution_count": 99, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"h\",(h))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Transitive Hülle\n", " \n", "Gegeben eine Relation $r$ von $A$ nach $A$\n", "* $r^1 = r$\n", "* $r^k = (r^{k-1} ; r) = (r ; r^{k-1})$\n", "\n", "* $r^+$ = $\\bigcup_{i\\geq 1} r^i$" ] }, { "cell_type": "code", "execution_count": 100, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(4\\mapsto 1),(8\\mapsto 2)\\}$" ], "text/plain": [ "{(4↦1),(8↦2)}" ] }, "execution_count": 100, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(h;h)" ] }, { "cell_type": "code", "execution_count": 101, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(8\\mapsto 1)\\}$" ], "text/plain": [ "{(8↦1)}" ] }, "execution_count": 101, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(h;h;h)" ] }, { "cell_type": "code", "execution_count": 102, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\emptyset$" ], "text/plain": [ "∅" ] }, "execution_count": 102, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(h;h;h;h)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Die transitive Hülle wird in B als ```closure1``` geschrieben:" ] }, { "cell_type": "code", "execution_count": 103, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(2\\mapsto 1),(4\\mapsto 1),(4\\mapsto 2),(6\\mapsto 3),(8\\mapsto 1),(8\\mapsto 2),(8\\mapsto 4),(10\\mapsto 5)\\}$" ], "text/plain": [ "{(2↦1),(4↦1),(4↦2),(6↦3),(8↦1),(8↦2),(8↦4),(10↦5)}" ] }, "execution_count": 103, "metadata": {}, "output_type": "execute_result" } ], "source": [ "closure1(h)" ] }, { "cell_type": "code", "execution_count": 104, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"303pt\" height=\"305pt\"\n", " viewBox=\"0.00 0.00 303.00 305.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 301)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-301 299,-301 299,4 -4,4\"/>\n", "<!-- 10 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>10</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-297 0,-297 0,-261 54,-261 54,-297\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">10</text>\n", "</g>\n", "<!-- 5 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>5</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-210 0,-210 0,-174 54,-174 54,-210\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">5</text>\n", "</g>\n", "<!-- 10->5 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>10->5</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M27,-260.8C27,-249.16 27,-233.55 27,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"30.5,-220.18 27,-210.18 23.5,-220.18 30.5,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"38\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">h+</text>\n", "</g>\n", "<!-- 8 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>8</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"189,-297 135,-297 135,-261 189,-261 189,-297\"/>\n", "<text text-anchor=\"middle\" x=\"162\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">8</text>\n", "</g>\n", "<!-- 4 -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>4</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-210 72,-210 72,-174 126,-174 126,-210\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">4</text>\n", "</g>\n", "<!-- 8->4 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>8->4</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M142.19,-260.83C136.58,-255.44 130.73,-249.26 126,-243 120.59,-235.84 115.61,-227.45 111.44,-219.61\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"114.44,-217.78 106.79,-210.45 108.2,-220.95 114.44,-217.78\"/>\n", "<text text-anchor=\"middle\" x=\"137\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">h+</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"185,-123 131,-123 131,-87 185,-87 185,-123\"/>\n", "<text text-anchor=\"middle\" x=\"158\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 8->2 -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>8->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M161.6,-260.88C160.91,-231 159.47,-169.11 158.63,-133.27\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"162.13,-132.97 158.4,-123.05 155.13,-133.13 162.13,-132.97\"/>\n", "<text text-anchor=\"middle\" x=\"172\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">h+</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node6\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"185,-36 131,-36 131,0 185,0 185,-36\"/>\n", "<text text-anchor=\"middle\" x=\"158\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 8->1 -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>8->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M168.37,-260.92C170.49,-255.22 172.85,-248.84 175,-243 180.38,-228.35 183.68,-225.25 187,-210 198.66,-156.5 202.03,-141.16 194,-87 191.75,-71.84 190.89,-67.69 184,-54 182.38,-50.79 180.48,-47.57 178.44,-44.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"181.11,-42.18 172.48,-36.03 175.4,-46.22 181.11,-42.18\"/>\n", "<text text-anchor=\"middle\" x=\"209\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">h+</text>\n", "</g>\n", "<!-- 4->2 -->\n", "<g id=\"edge6\" class=\"edge\">\n", "<title>4->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M107.01,-173.72C111.93,-163.79 118.68,-151.29 126,-141 128.47,-137.53 131.25,-134.03 134.11,-130.66\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"136.81,-132.89 140.83,-123.09 131.57,-128.24 136.81,-132.89\"/>\n", "<text text-anchor=\"middle\" x=\"137\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">h+</text>\n", "</g>\n", "<!-- 4->1 -->\n", "<g id=\"edge7\" class=\"edge\">\n", "<title>4->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M95.68,-173.78C92.37,-152.61 89.18,-115.92 100,-87 106.15,-70.55 118.21,-55.35 129.74,-43.51\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"132.47,-45.73 137.17,-36.24 127.58,-40.73 132.47,-45.73\"/>\n", "<text text-anchor=\"middle\" x=\"111\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">h+</text>\n", "</g>\n", "<!-- 2->1 -->\n", "<g id=\"edge8\" class=\"edge\">\n", "<title>2->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M158,-86.8C158,-75.16 158,-59.55 158,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"161.5,-46.18 158,-36.18 154.5,-46.18 161.5,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"169\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">h+</text>\n", "</g>\n", "<!-- 6 -->\n", "<g id=\"node7\" class=\"node\">\n", "<title>6</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"295,-297 241,-297 241,-261 295,-261 295,-297\"/>\n", "<text text-anchor=\"middle\" x=\"268\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">6</text>\n", "</g>\n", "<!-- 3 -->\n", "<g id=\"node8\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"295,-210 241,-210 241,-174 295,-174 295,-210\"/>\n", "<text text-anchor=\"middle\" x=\"268\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 6->3 -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>6->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M268,-260.8C268,-249.16 268,-233.55 268,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"271.5,-220.18 268,-210.18 264.5,-220.18 271.5,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"279\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">h+</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [hh={(2,1),(4,2),(6,3),(8,4),(10,5)}(\"h+\",closure1(h))]>" ] }, "execution_count": 104, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"h+\",closure1(h))" ] }, { "cell_type": "code", "execution_count": 105, "metadata": {}, "outputs": [], "source": [ ":unlet h" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Ein weiteres Beispiel ist folgende abgeänderte strikte Untermengenrelation $\\subset$ für $ℙ(1 .. 3) $:" ] }, { "cell_type": "code", "execution_count": 106, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\{(\\emptyset\\mapsto\\{1\\}),(\\emptyset\\mapsto\\{2\\}),(\\emptyset\\mapsto\\{3\\}),(\\{1\\}\\mapsto\\{1,2\\}),(\\{1\\}\\mapsto\\{1,3\\}),(\\{1,2\\}\\mapsto\\{1,2,3\\}),(\\{1,3\\}\\mapsto\\{1,2,3\\}),(\\{2\\}\\mapsto\\{1,2\\}),(\\{2\\}\\mapsto\\{2,3\\}),(\\{2,3\\}\\mapsto\\{1,2,3\\}),(\\{3\\}\\mapsto\\{1,3\\}),(\\{3\\}\\mapsto\\{2,3\\})\\}$" ], "text/plain": [ "{(∅↦{1}),(∅↦{2}),(∅↦{3}),({1}↦{1,2}),({1}↦{1,3}),({1,2}↦{1,2,3}),({1,3}↦{1,2,3}),({2}↦{1,2}),({2}↦{2,3}),({2,3}↦{1,2,3}),({3}↦{1,3}),({3}↦{2,3})}" ] }, "execution_count": 106, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":let sub1 {x,y|y:ℙ(1..3) & x ⊂ y & card(x)+1=card(y)}" ] }, { "cell_type": "code", "execution_count": 107, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Preference changed: DOT_DECOMPOSE_NODES = false\n" ] }, "execution_count": 107, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":pref DOT_DECOMPOSE_NODES=false" ] }, { "cell_type": "code", "execution_count": 108, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"315pt\" height=\"305pt\"\n", " viewBox=\"0.00 0.00 315.17 305.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 301)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-301 311.17,-301 311.17,4 -4,4\"/>\n", "<!-- \\{3\\} -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>\\{3\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"87.17,-210 33.17,-210 33.17,-174 87.17,-174 87.17,-210\"/>\n", "<text text-anchor=\"middle\" x=\"60.17\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">{3}</text>\n", "</g>\n", "<!-- \\{2,3\\} -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>\\{2,3\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"175.67,-123 118.67,-123 118.67,-87 175.67,-87 175.67,-123\"/>\n", "<text text-anchor=\"middle\" x=\"147.17\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3}</text>\n", "</g>\n", "<!-- \\{3\\}->\\{2,3\\} -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>\\{3\\}->\\{2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M58.53,-173.62C58.47,-163.17 60.11,-150.16 67.17,-141 78.24,-126.64 88.33,-130 108.99,-123\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"110.49,-126.17 118.53,-119.28 107.94,-119.65 110.49,-126.17\"/>\n", "<text text-anchor=\"middle\" x=\"84.67\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,3\\} -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>\\{1,3\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"100.67,-123 43.67,-123 43.67,-87 100.67,-87 100.67,-123\"/>\n", "<text text-anchor=\"middle\" x=\"72.17\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n", "</g>\n", "<!-- \\{3\\}->\\{1,3\\} -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>\\{3\\}->\\{1,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M32.85,-180.68C13.62,-171.72 -7.02,-157.6 3.17,-141 10.1,-129.71 21.94,-121.92 33.86,-116.62\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"35.34,-119.8 43.36,-112.88 32.77,-113.29 35.34,-119.8\"/>\n", "<text text-anchor=\"middle\" x=\"20.67\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,2,3\\} -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>\\{1,2,3\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"182.67,-36 111.67,-36 111.67,0 182.67,0 182.67,-36\"/>\n", "<text text-anchor=\"middle\" x=\"147.17\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3}</text>\n", "</g>\n", "<!-- \\{2,3\\}->\\{1,2,3\\} -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>\\{2,3\\}->\\{1,2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M147.17,-86.8C147.17,-75.16 147.17,-59.55 147.17,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"150.67,-46.18 147.17,-36.18 143.67,-46.18 150.67,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"164.67\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,3\\}->\\{1,2,3\\} -->\n", "<g id=\"edge6\" class=\"edge\">\n", "<title>\\{1,3\\}->\\{1,2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M83.31,-86.64C90.02,-76.69 99.02,-64.19 108.17,-54 111.49,-50.3 115.17,-46.59 118.9,-43.04\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"121.54,-45.36 126.55,-36.02 116.81,-40.2 121.54,-45.36\"/>\n", "<text text-anchor=\"middle\" x=\"125.67\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{2\\} -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>\\{2\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"261.17,-210 207.17,-210 207.17,-174 261.17,-174 261.17,-210\"/>\n", "<text text-anchor=\"middle\" x=\"234.17\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">{2}</text>\n", "</g>\n", "<!-- \\{2\\}->\\{2,3\\} -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>\\{2\\}->\\{2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M229.66,-173.64C226.25,-163.2 220.66,-150.2 212.17,-141 207.77,-136.24 196.69,-129.77 184.9,-123.69\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"186.35,-120.5 175.84,-119.15 183.22,-126.76 186.35,-120.5\"/>\n", "<text text-anchor=\"middle\" x=\"239.67\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,2\\} -->\n", "<g id=\"node6\" class=\"node\">\n", "<title>\\{1,2\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"250.67,-123 193.67,-123 193.67,-87 250.67,-87 250.67,-123\"/>\n", "<text text-anchor=\"middle\" x=\"222.17\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2}</text>\n", "</g>\n", "<!-- \\{2\\}->\\{1,2\\} -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>\\{2\\}->\\{1,2\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M258.3,-173.8C268.19,-164.53 276.08,-152.63 270.17,-141 267.41,-135.58 263.38,-130.8 258.81,-126.66\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"260.75,-123.73 250.73,-120.27 256.41,-129.22 260.75,-123.73\"/>\n", "<text text-anchor=\"middle\" x=\"289.67\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,2\\}->\\{1,2,3\\} -->\n", "<g id=\"edge7\" class=\"edge\">\n", "<title>\\{1,2\\}->\\{1,2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M211.03,-86.64C204.32,-76.69 195.32,-64.19 186.17,-54 182.85,-50.3 179.17,-46.59 175.44,-43.04\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"177.53,-40.2 167.79,-36.02 172.79,-45.36 177.53,-40.2\"/>\n", "<text text-anchor=\"middle\" x=\"214.67\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1\\} -->\n", "<g id=\"node7\" class=\"node\">\n", "<title>\\{1\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"178.17,-210 124.17,-210 124.17,-174 178.17,-174 178.17,-210\"/>\n", "<text text-anchor=\"middle\" x=\"151.17\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", "</g>\n", "<!-- \\{1\\}->\\{1,3\\} -->\n", "<g id=\"edge8\" class=\"edge\">\n", "<title>\\{1\\}->\\{1,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M135.18,-173.8C123.62,-161.36 107.83,-144.36 94.94,-130.5\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"97.5,-128.12 88.13,-123.18 92.38,-132.88 97.5,-128.12\"/>\n", "<text text-anchor=\"middle\" x=\"133.67\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1\\}->\\{1,2\\} -->\n", "<g id=\"edge9\" class=\"edge\">\n", "<title>\\{1\\}->\\{1,2\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M157.95,-173.69C162.45,-163.51 169.03,-150.77 177.17,-141 180.49,-137.02 184.34,-133.19 188.35,-129.64\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"190.72,-132.22 196.2,-123.15 186.26,-126.83 190.72,-132.22\"/>\n", "<text text-anchor=\"middle\" x=\"194.67\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{\\} -->\n", "<g id=\"node8\" class=\"node\">\n", "<title>\\{\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"178.17,-297 124.17,-297 124.17,-261 178.17,-261 178.17,-297\"/>\n", "<text text-anchor=\"middle\" x=\"151.17\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", "</g>\n", "<!-- \\{\\}->\\{3\\} -->\n", "<g id=\"edge10\" class=\"edge\">\n", "<title>\\{\\}->\\{3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M131.61,-260.68C125.36,-255.09 118.44,-248.82 112.17,-243 103.32,-234.78 93.75,-225.65 85.27,-217.47\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"87.46,-214.72 77.83,-210.28 82.59,-219.75 87.46,-214.72\"/>\n", "<text text-anchor=\"middle\" x=\"129.67\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{\\}->\\{2\\} -->\n", "<g id=\"edge11\" class=\"edge\">\n", "<title>\\{\\}->\\{2\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M171.03,-260.99C177.3,-255.41 184.15,-249.08 190.17,-243 197.98,-235.11 206.12,-226.11 213.25,-217.94\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"216.11,-219.97 219.98,-210.11 210.8,-215.41 216.11,-219.97\"/>\n", "<text text-anchor=\"middle\" x=\"220.67\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{\\}->\\{1\\} -->\n", "<g id=\"edge12\" class=\"edge\">\n", "<title>\\{\\}->\\{1\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M151.17,-260.8C151.17,-249.16 151.17,-233.55 151.17,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"154.67,-220.18 151.17,-210.18 147.67,-220.18 154.67,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"168.67\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [sub1sub1={({},{1}),({},{2}),({},{3}),({1},{1,2}),({1},{1,3}),({1,2},{1,2,3}),({1,3},{1,2,3}),({2},{1,2}),({2},{2,3}),({2,3},{1,2,3}),({3},{1,3}),({3},{2,3})}(\"sub1\",sub1)]>" ] }, "execution_count": 108, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"sub1\",sub1)" ] }, { "cell_type": "code", "execution_count": 109, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"531pt\" height=\"305pt\"\n", " viewBox=\"0.00 0.00 531.00 305.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 301)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-301 527,-301 527,4 -4,4\"/>\n", "<!-- \\{3\\} -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>\\{3\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"210,-210 156,-210 156,-174 210,-174 210,-210\"/>\n", "<text text-anchor=\"middle\" x=\"183\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">{3}</text>\n", "</g>\n", "<!-- \\{2,3\\} -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>\\{2,3\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"127.5,-123 70.5,-123 70.5,-87 127.5,-87 127.5,-123\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3}</text>\n", "</g>\n", "<!-- \\{3\\}->\\{2,3\\} -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>\\{3\\}->\\{2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M155.73,-179.03C144.85,-173.26 132.84,-165.5 124,-156 117.73,-149.26 112.67,-140.65 108.79,-132.48\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"111.97,-131.01 104.77,-123.23 105.55,-133.79 111.97,-131.01\"/>\n", "<text text-anchor=\"middle\" x=\"141.5\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,2,3\\} -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>\\{1,2,3\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"291.5,-36 220.5,-36 220.5,0 291.5,0 291.5,-36\"/>\n", "<text text-anchor=\"middle\" x=\"256\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3}</text>\n", "</g>\n", "<!-- \\{3\\}->\\{1,2,3\\} -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>\\{3\\}->\\{1,2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M179,-173.95C174.87,-152.63 170.61,-115.48 183,-87 190.74,-69.21 205.68,-53.97 220.04,-42.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"222.54,-44.95 228.37,-36.11 218.3,-39.38 222.54,-44.95\"/>\n", "<text text-anchor=\"middle\" x=\"200.5\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,3\\} -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>\\{1,3\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"404.5,-123 347.5,-123 347.5,-87 404.5,-87 404.5,-123\"/>\n", "<text text-anchor=\"middle\" x=\"376\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n", "</g>\n", "<!-- \\{3\\}->\\{1,3\\} -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>\\{3\\}->\\{1,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M210.07,-181.27C217.75,-178.7 226.15,-176.08 234,-174 273.86,-163.46 288.53,-175.24 325,-156 331.55,-152.55 343.09,-141.43 353.54,-130.56\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"356.2,-132.84 360.52,-123.16 351.11,-128.03 356.2,-132.84\"/>\n", "<text text-anchor=\"middle\" x=\"360.5\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{2,3\\}->\\{1,2,3\\} -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>\\{2,3\\}->\\{1,2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M103.58,-86.83C107.35,-75.92 113.76,-62.33 124,-54 148.29,-34.23 182.67,-25.54 210.25,-21.76\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"210.94,-25.21 220.46,-20.54 210.11,-18.26 210.94,-25.21\"/>\n", "<text text-anchor=\"middle\" x=\"141.5\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,3\\}->\\{1,2,3\\} -->\n", "<g id=\"edge8\" class=\"edge\">\n", "<title>\\{1,3\\}->\\{1,2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M351.72,-86.8C333.5,-73.9 308.38,-56.1 288.44,-41.98\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"290.43,-39.1 280.25,-36.18 286.38,-44.81 290.43,-39.1\"/>\n", "<text text-anchor=\"middle\" x=\"341.5\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{2\\} -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>\\{2\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"54,-210 0,-210 0,-174 54,-174 54,-210\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">{2}</text>\n", "</g>\n", "<!-- \\{2\\}->\\{2,3\\} -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>\\{2\\}->\\{2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M28.6,-173.84C30.3,-163.47 33.79,-150.47 41,-141 46.43,-133.87 53.76,-127.88 61.38,-122.99\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"63.5,-125.81 70.37,-117.75 59.97,-119.76 63.5,-125.81\"/>\n", "<text text-anchor=\"middle\" x=\"58.5\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{2\\}->\\{1,2,3\\} -->\n", "<g id=\"edge6\" class=\"edge\">\n", "<title>\\{2\\}->\\{1,2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M21.33,-173.83C15.16,-151.7 8.36,-113 26,-87 46.72,-56.46 149,-35.62 209.97,-25.68\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"210.79,-29.09 220.12,-24.06 209.69,-22.18 210.79,-29.09\"/>\n", "<text text-anchor=\"middle\" x=\"43.5\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,2\\} -->\n", "<g id=\"node6\" class=\"node\">\n", "<title>\\{1,2\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"284.5,-123 227.5,-123 227.5,-87 284.5,-87 284.5,-123\"/>\n", "<text text-anchor=\"middle\" x=\"256\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2}</text>\n", "</g>\n", "<!-- \\{2\\}->\\{1,2\\} -->\n", "<g id=\"edge7\" class=\"edge\">\n", "<title>\\{2\\}->\\{1,2\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.06,-178.86C58.66,-177.07 63.42,-175.37 68,-174 109.18,-161.71 122.49,-170.34 163,-156 182.83,-148.98 203.57,-138.21 220.42,-128.46\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"222.52,-131.28 229.35,-123.17 218.96,-125.25 222.52,-131.28\"/>\n", "<text text-anchor=\"middle\" x=\"212.5\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,2\\}->\\{1,2,3\\} -->\n", "<g id=\"edge9\" class=\"edge\">\n", "<title>\\{1,2\\}->\\{1,2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M256,-86.8C256,-75.16 256,-59.55 256,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"259.5,-46.18 256,-36.18 252.5,-46.18 259.5,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"273.5\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1\\} -->\n", "<g id=\"node7\" class=\"node\">\n", "<title>\\{1\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"393,-210 339,-210 339,-174 393,-174 393,-210\"/>\n", "<text text-anchor=\"middle\" x=\"366\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", "</g>\n", "<!-- \\{1\\}->\\{1,2,3\\} -->\n", "<g id=\"edge10\" class=\"edge\">\n", "<title>\\{1\\}->\\{1,2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M393.19,-181.3C404.53,-175.76 416.54,-167.55 423,-156 431.54,-140.74 432.06,-114.52 414,-87 389.36,-49.46 339.16,-32.56 301.92,-25\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"302.27,-21.51 291.79,-23.11 300.98,-28.39 302.27,-21.51\"/>\n", "<text text-anchor=\"middle\" x=\"445.5\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1\\}->\\{1,3\\} -->\n", "<g id=\"edge11\" class=\"edge\">\n", "<title>\\{1\\}->\\{1,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M376.28,-173.77C379.02,-168.28 381.61,-162.06 383,-156 384.68,-148.68 384.46,-140.67 383.41,-133.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"386.82,-132.42 381.5,-123.26 379.94,-133.74 386.82,-132.42\"/>\n", "<text text-anchor=\"middle\" x=\"401.5\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1\\}->\\{1,2\\} -->\n", "<g id=\"edge12\" class=\"edge\">\n", "<title>\\{1\\}->\\{1,2\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M338.64,-182.51C323.19,-176.77 304.19,-168.02 290,-156 282.03,-149.25 275.12,-140.2 269.65,-131.66\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"272.64,-129.82 264.49,-123.05 266.63,-133.43 272.64,-129.82\"/>\n", "<text text-anchor=\"middle\" x=\"307.5\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{\\} -->\n", "<g id=\"node8\" class=\"node\">\n", "<title>\\{\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"283,-297 229,-297 229,-261 283,-261 283,-297\"/>\n", "<text text-anchor=\"middle\" x=\"256\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", "</g>\n", "<!-- \\{\\}->\\{3\\} -->\n", "<g id=\"edge13\" class=\"edge\">\n", "<title>\\{\\}->\\{3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M228.8,-262.2C221.08,-256.81 213.12,-250.28 207,-243 201.27,-236.19 196.55,-227.78 192.86,-219.81\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"196.01,-218.27 188.87,-210.45 189.57,-221.02 196.01,-218.27\"/>\n", "<text text-anchor=\"middle\" x=\"224.5\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{\\}->\\{2,3\\} -->\n", "<g id=\"edge14\" class=\"edge\">\n", "<title>\\{\\}->\\{2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M228.96,-273.34C195.64,-266.07 139.98,-248.62 112,-210 95.96,-187.87 94.27,-155.9 95.61,-133.26\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"99.1,-133.54 96.43,-123.28 92.12,-132.96 99.1,-133.54\"/>\n", "<text text-anchor=\"middle\" x=\"129.5\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{\\}->\\{1,2,3\\} -->\n", "<g id=\"edge15\" class=\"edge\">\n", "<title>\\{\\}->\\{1,2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M283.15,-278.74C329.94,-278.34 424.61,-269.75 465,-210 495.62,-164.7 495.45,-133.69 467,-87 449.6,-58.46 358.68,-37.34 302.02,-26.72\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"302.33,-23.22 291.86,-24.86 301.07,-30.1 302.33,-23.22\"/>\n", "<text text-anchor=\"middle\" x=\"505.5\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{\\}->\\{1,3\\} -->\n", "<g id=\"edge17\" class=\"edge\">\n", "<title>\\{\\}->\\{1,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M283.09,-273.23C316.56,-265.84 372.64,-248.27 402,-210 421.51,-184.57 437.38,-169.65 423,-141 420.49,-136 416.89,-131.53 412.78,-127.6\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"414.89,-124.8 404.97,-121.1 410.42,-130.19 414.89,-124.8\"/>\n", "<text text-anchor=\"middle\" x=\"443.5\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{\\}->\\{2\\} -->\n", "<g id=\"edge16\" class=\"edge\">\n", "<title>\\{\\}->\\{2\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M228.69,-277.12C177.15,-274.9 68.28,-267.39 41,-243 34.5,-237.19 30.92,-228.64 28.97,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"32.41,-219.57 27.32,-210.27 25.5,-220.71 32.41,-219.57\"/>\n", "<text text-anchor=\"middle\" x=\"58.5\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{\\}->\\{1,2\\} -->\n", "<g id=\"edge18\" class=\"edge\">\n", "<title>\\{\\}->\\{1,2\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M256,-260.88C256,-231 256,-169.11 256,-133.27\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"259.5,-133.05 256,-123.05 252.5,-133.05 259.5,-133.05\"/>\n", "<text text-anchor=\"middle\" x=\"273.5\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{\\}->\\{1\\} -->\n", "<g id=\"edge19\" class=\"edge\">\n", "<title>\\{\\}->\\{1\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M278.26,-260.8C294.81,-248.01 317.58,-230.42 335.77,-216.36\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"338,-219.06 343.77,-210.18 333.72,-213.52 338,-219.06\"/>\n", "<text text-anchor=\"middle\" x=\"335.5\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [sub1sub1={({},{1}),({},{2}),({},{3}),({1},{1,2}),({1},{1,3}),({1,2},{1,2,3}),({1,3},{1,2,3}),({2},{1,2}),({2},{2,3}),({2,3},{1,2,3}),({3},{1,3}),({3},{2,3})}(\"sub1\",closure1(sub1))]>" ] }, "execution_count": 109, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"sub1\",closure1(sub1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Transitive und Reflexive Hülle\n", " \n", "Gegeben eine Relation $r$ von $A$ nach $A$\n", "* $r^0 = \\{(a,a) \\mid a\\in A\\}$\n", "* $r^1 = r$\n", "* $r^k = (r^{k-1} ; r) = (r ; r^{k-1})$\n", "* $r^*$ = $\\bigcup_{i\\geq 0} r^i$\n" ] }, { "cell_type": "code", "execution_count": 110, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,2,3\\}$" ], "text/plain": [ "{1,2,3}" ] }, "execution_count": 110, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":let A {1,2,3}" ] }, { "cell_type": "code", "execution_count": 111, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 2),(2\\mapsto 3)\\}$" ], "text/plain": [ "{(1↦2),(2↦3)}" ] }, "execution_count": 111, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":let r {(1,2), (2,3)}" ] }, { "cell_type": "code", "execution_count": 112, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"62pt\" height=\"218pt\"\n", " viewBox=\"0.00 0.00 62.00 218.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 214)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-214 58,-214 58,4 -4,4\"/>\n", "<!-- 2 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-123 0,-123 0,-87 54,-87 54,-123\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 3 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-36 0,-36 0,0 54,0 54,-36\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 2->3 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>2->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M27,-86.8C27,-75.16 27,-59.55 27,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"30.5,-46.18 27,-36.18 23.5,-46.18 30.5,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"30.5\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">r</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-210 0,-210 0,-174 54,-174 54,-210\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 1->2 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>1->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M27,-173.8C27,-162.16 27,-146.55 27,-133.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"30.5,-133.18 27,-123.18 23.5,-133.18 30.5,-133.18\"/>\n", "<text text-anchor=\"middle\" x=\"30.5\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">r</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [Arsub1A={1,2,3} & r={(1,2),(2,3)} & sub1={({},{1}),({},{2}),({},{3}),({1},{1,2}),({1},{1,3}),({1,2},{1,2,3}),({1,3},{1,2,3}),({2},{1,2}),({2},{2,3}),({2,3},{1,2,3}),({3},{1,3}),({3},{2,3})}(\"r\",r)]>" ] }, "execution_count": 112, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"r\",r)" ] }, { "cell_type": "code", "execution_count": 113, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 3)\\}$" ], "text/plain": [ "{(1↦3)}" ] }, "execution_count": 113, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(r;r)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In B kann man $r^0$ auch als die Identitätsrelation über A beschreiben:" ] }, { "cell_type": "code", "execution_count": 114, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 1),(2\\mapsto 2),(3\\mapsto 3)\\}$" ], "text/plain": [ "{(1↦1),(2↦2),(3↦3)}" ] }, "execution_count": 114, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Die transitive und reflexive Hülle ist hier:" ] }, { "cell_type": "code", "execution_count": 115, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 1),(1\\mapsto 2),(1\\mapsto 3),(2\\mapsto 2),(2\\mapsto 3),(3\\mapsto 3)\\}$" ], "text/plain": [ "{(1↦1),(1↦2),(1↦3),(2↦2),(2↦3),(3↦3)}" ] }, "execution_count": 115, "metadata": {}, "output_type": "execute_result" } ], "source": [ "id(A) \\/ r \\/ (r;r) \\/ (r;r;r) \\/ (r;r;r;r)" ] }, { "cell_type": "code", "execution_count": 116, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"137pt\" height=\"218pt\"\n", " viewBox=\"0.00 0.00 137.00 218.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 214)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-214 133,-214 133,4 -4,4\"/>\n", "<!-- 3 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"61,-36 7,-36 7,0 61,0 61,-36\"/>\n", "<text text-anchor=\"middle\" x=\"34\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 3->3 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>3->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M61.24,-25.87C71.02,-26.04 79,-23.41 79,-18 79,-14.7 76.04,-12.44 71.51,-11.21\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"71.55,-7.7 61.24,-10.13 70.82,-14.66 71.55,-7.7\"/>\n", "<text text-anchor=\"middle\" x=\"86\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">r*</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"97,-123 43,-123 43,-87 97,-87 97,-123\"/>\n", "<text text-anchor=\"middle\" x=\"70\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 2->3 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>2->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M62.71,-86.8C57.69,-74.93 50.91,-58.93 45.2,-45.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"48.4,-44.02 41.27,-36.18 41.95,-46.75 48.4,-44.02\"/>\n", "<text text-anchor=\"middle\" x=\"61\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">r*</text>\n", "</g>\n", "<!-- 2->2 -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>2->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M97.24,-112.87C107.02,-113.04 115,-110.41 115,-105 115,-101.7 112.04,-99.44 107.51,-98.21\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"107.55,-94.7 97.24,-97.13 106.82,-101.66 107.55,-94.7\"/>\n", "<text text-anchor=\"middle\" x=\"122\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">r*</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-210 0,-210 0,-174 54,-174 54,-210\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 1->3 -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>1->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M24.05,-173.67C20.94,-153 16.9,-117.43 20,-87 21.39,-73.32 24.32,-58.33 27.15,-45.92\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"30.55,-46.72 29.45,-36.18 23.74,-45.1 30.55,-46.72\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">r*</text>\n", "</g>\n", "<!-- 1->2 -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>1->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M35.7,-173.8C41.7,-161.93 49.8,-145.93 56.62,-132.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"59.92,-133.68 61.31,-123.18 53.67,-130.52 59.92,-133.68\"/>\n", "<text text-anchor=\"middle\" x=\"58\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">r*</text>\n", "</g>\n", "<!-- 1->1 -->\n", "<g id=\"edge6\" class=\"edge\">\n", "<title>1->1</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M54.24,-199.87C64.02,-200.04 72,-197.41 72,-192 72,-188.7 69.04,-186.44 64.51,-185.21\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"64.55,-181.7 54.24,-184.13 63.82,-188.66 64.55,-181.7\"/>\n", "<text text-anchor=\"middle\" x=\"79\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">r*</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [Arsub1A={1,2,3} & r={(1,2),(2,3)} & sub1={({},{1}),({},{2}),({},{3}),({1},{1,2}),({1},{1,3}),({1,2},{1,2,3}),({1,3},{1,2,3}),({2},{1,2}),({2},{2,3}),({2,3},{1,2,3}),({3},{1,3}),({3},{2,3})}(\"r*\",id(A)\\/r\\/(r;r)\\/((r;r);r)\\/(((r;r);r);r))]>" ] }, "execution_count": 116, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"r*\",id(A) \\/ r \\/ (r;r) \\/ (r;r;r) \\/ (r;r;r;r))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Als Vergleich dazu sieht die transitive Hülle so aus:" ] }, { "cell_type": "code", "execution_count": 117, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 2),(1\\mapsto 3),(2\\mapsto 3)\\}$" ], "text/plain": [ "{(1↦2),(1↦3),(2↦3)}" ] }, "execution_count": 117, "metadata": {}, "output_type": "execute_result" } ], "source": [ "closure1(r)" ] }, { "cell_type": "code", "execution_count": 118, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"97pt\" height=\"218pt\"\n", " viewBox=\"0.00 0.00 97.00 218.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 214)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-214 93,-214 93,4 -4,4\"/>\n", "<!-- 2 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-123 0,-123 0,-87 54,-87 54,-123\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 3 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"86,-36 32,-36 32,0 86,0 86,-36\"/>\n", "<text text-anchor=\"middle\" x=\"59\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 2->3 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>2->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M33.48,-86.8C37.9,-75.05 43.85,-59.24 48.89,-45.84\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"52.29,-46.77 52.53,-36.18 45.74,-44.3 52.29,-46.77\"/>\n", "<text text-anchor=\"middle\" x=\"53.5\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">r+</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"86,-210 32,-210 32,-174 86,-174 86,-210\"/>\n", "<text text-anchor=\"middle\" x=\"59\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 1->2 -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>1->2</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M52.52,-173.8C48.1,-162.05 42.15,-146.24 37.11,-132.84\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"40.26,-131.3 33.47,-123.18 33.71,-133.77 40.26,-131.3\"/>\n", "<text text-anchor=\"middle\" x=\"53.5\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">r+</text>\n", "</g>\n", "<!-- 1->3 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>1->3</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M63.77,-173.69C65.09,-168.09 66.34,-161.82 67,-156 72.08,-110.95 72.08,-99.05 67,-54 66.71,-51.45 66.31,-48.82 65.84,-46.2\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"69.25,-45.38 63.77,-36.31 62.39,-46.82 69.25,-45.38\"/>\n", "<text text-anchor=\"middle\" x=\"79.5\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">r+</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [Arsub1A={1,2,3} & r={(1,2),(2,3)} & sub1={({},{1}),({},{2}),({},{3}),({1},{1,2}),({1},{1,3}),({1,2},{1,2,3}),({1,3},{1,2,3}),({2},{1,2}),({2},{2,3}),({2,3},{1,2,3}),({3},{1,3}),({3},{2,3})}(\"r+\",closure1(r))]>" ] }, "execution_count": 118, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"r+\",closure1(r))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Man kann die transitive Hülle natürlich mit den anderen Operatoren verknüpfen, zum Beispiel um auszurechnen von welchen Knoten aus man den Knoten 3 erreichen kann:" ] }, { "cell_type": "code", "execution_count": 119, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,2\\}$" ], "text/plain": [ "{1,2}" ] }, "execution_count": 119, "metadata": {}, "output_type": "execute_result" } ], "source": [ "closure1(r)~[{3}]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Anmerkung: die reflexive und transitive Hülle in B wird als ```closure``` geschrieben, ist bei Relationen über Zahlen immer unendlich." ] }, { "cell_type": "code", "execution_count": 120, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$/*@symbolic*/ \\{\\mathit{z\\_},\\mathit{z\\_\\_}\\mid \\mathit{z\\_} \\mapsto \\mathit{z\\_\\_} \\in \\{(1\\mapsto 2),(1\\mapsto 3),(2\\mapsto 3)\\} \\lor \\mathit{z\\_} = \\mathit{z\\_\\_}\\}$" ], "text/plain": [ "/*@symbolic*/ {z_,z__∣z_ ↦ z__ ∈ {(1↦2),(1↦3),(2↦3)} ∨ z_ = z__}" ] }, "execution_count": 120, "metadata": {}, "output_type": "execute_result" } ], "source": [ "closure(r)" ] }, { "cell_type": "code", "execution_count": 121, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,2,3\\}$" ], "text/plain": [ "{1,2,3}" ] }, "execution_count": 121, "metadata": {}, "output_type": "execute_result" } ], "source": [ "closure(r)~[{3}]" ] }, { "cell_type": "code", "execution_count": 122, "metadata": {}, "outputs": [], "source": [ ":unlet r" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Funktionen\n", " \n", "Was unterscheidet Funktionen von Relationen?\n", "Wie kann man Funktionen in Mengentheorie und Logik darstellen?\n", "\n", "Eine Funktion kann als Menge an Paaren angesehen werden.\n", "Zum Beispiel ist die Inkrementfunktion (+1) eine unendliche Mengen an Paaren.\n", "Die linke Komponente des Paares ist die Eingabe der Funktion, die rechte Komponente die Ausgabe.\n", "Eingeschränkt auf den Bereich 1..10 sieht dies Funktion so aus:" ] }, { "cell_type": "code", "execution_count": 123, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 2),(2\\mapsto 3),(3\\mapsto 4),(4\\mapsto 5),(5\\mapsto 6),(6\\mapsto 7),(7\\mapsto 8),(8\\mapsto 9),(9\\mapsto 10),(10\\mapsto 11)\\}$" ], "text/plain": [ "{(1↦2),(2↦3),(3↦4),(4↦5),(5↦6),(6↦7),(7↦8),(8↦9),(9↦10),(10↦11)}" ] }, "execution_count": 123, "metadata": {}, "output_type": "execute_result" } ], "source": [ "{x,y|x:1..10 & y=x+1}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Eine Funktion kann also als Menge von Paaren dargestellt werden. Es sind aber nicht alle Mengen an Paaren auch Funktionen. Zum Beispiel, unsere Relation sub1 von oben ist keine Funktion:" ] }, { "cell_type": "code", "execution_count": 124, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"315pt\" height=\"305pt\"\n", " viewBox=\"0.00 0.00 315.17 305.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 301)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-301 311.17,-301 311.17,4 -4,4\"/>\n", "<!-- \\{3\\} -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>\\{3\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"87.17,-210 33.17,-210 33.17,-174 87.17,-174 87.17,-210\"/>\n", "<text text-anchor=\"middle\" x=\"60.17\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">{3}</text>\n", "</g>\n", "<!-- \\{2,3\\} -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>\\{2,3\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"175.67,-123 118.67,-123 118.67,-87 175.67,-87 175.67,-123\"/>\n", "<text text-anchor=\"middle\" x=\"147.17\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">{2,3}</text>\n", "</g>\n", "<!-- \\{3\\}->\\{2,3\\} -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>\\{3\\}->\\{2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M58.53,-173.62C58.47,-163.17 60.11,-150.16 67.17,-141 78.24,-126.64 88.33,-130 108.99,-123\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"110.49,-126.17 118.53,-119.28 107.94,-119.65 110.49,-126.17\"/>\n", "<text text-anchor=\"middle\" x=\"84.67\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,3\\} -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>\\{1,3\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"100.67,-123 43.67,-123 43.67,-87 100.67,-87 100.67,-123\"/>\n", "<text text-anchor=\"middle\" x=\"72.17\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1,3}</text>\n", "</g>\n", "<!-- \\{3\\}->\\{1,3\\} -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>\\{3\\}->\\{1,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M32.85,-180.68C13.62,-171.72 -7.02,-157.6 3.17,-141 10.1,-129.71 21.94,-121.92 33.86,-116.62\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"35.34,-119.8 43.36,-112.88 32.77,-113.29 35.34,-119.8\"/>\n", "<text text-anchor=\"middle\" x=\"20.67\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,2,3\\} -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>\\{1,2,3\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"182.67,-36 111.67,-36 111.67,0 182.67,0 182.67,-36\"/>\n", "<text text-anchor=\"middle\" x=\"147.17\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2,3}</text>\n", "</g>\n", "<!-- \\{2,3\\}->\\{1,2,3\\} -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>\\{2,3\\}->\\{1,2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M147.17,-86.8C147.17,-75.16 147.17,-59.55 147.17,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"150.67,-46.18 147.17,-36.18 143.67,-46.18 150.67,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"164.67\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,3\\}->\\{1,2,3\\} -->\n", "<g id=\"edge6\" class=\"edge\">\n", "<title>\\{1,3\\}->\\{1,2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M83.31,-86.64C90.02,-76.69 99.02,-64.19 108.17,-54 111.49,-50.3 115.17,-46.59 118.9,-43.04\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"121.54,-45.36 126.55,-36.02 116.81,-40.2 121.54,-45.36\"/>\n", "<text text-anchor=\"middle\" x=\"125.67\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{2\\} -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>\\{2\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"261.17,-210 207.17,-210 207.17,-174 261.17,-174 261.17,-210\"/>\n", "<text text-anchor=\"middle\" x=\"234.17\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">{2}</text>\n", "</g>\n", "<!-- \\{2\\}->\\{2,3\\} -->\n", "<g id=\"edge4\" class=\"edge\">\n", "<title>\\{2\\}->\\{2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M229.66,-173.64C226.25,-163.2 220.66,-150.2 212.17,-141 207.77,-136.24 196.69,-129.77 184.9,-123.69\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"186.35,-120.5 175.84,-119.15 183.22,-126.76 186.35,-120.5\"/>\n", "<text text-anchor=\"middle\" x=\"239.67\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,2\\} -->\n", "<g id=\"node6\" class=\"node\">\n", "<title>\\{1,2\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"250.67,-123 193.67,-123 193.67,-87 250.67,-87 250.67,-123\"/>\n", "<text text-anchor=\"middle\" x=\"222.17\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1,2}</text>\n", "</g>\n", "<!-- \\{2\\}->\\{1,2\\} -->\n", "<g id=\"edge5\" class=\"edge\">\n", "<title>\\{2\\}->\\{1,2\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M258.3,-173.8C268.19,-164.53 276.08,-152.63 270.17,-141 267.41,-135.58 263.38,-130.8 258.81,-126.66\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"260.75,-123.73 250.73,-120.27 256.41,-129.22 260.75,-123.73\"/>\n", "<text text-anchor=\"middle\" x=\"289.67\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1,2\\}->\\{1,2,3\\} -->\n", "<g id=\"edge7\" class=\"edge\">\n", "<title>\\{1,2\\}->\\{1,2,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M211.03,-86.64C204.32,-76.69 195.32,-64.19 186.17,-54 182.85,-50.3 179.17,-46.59 175.44,-43.04\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"177.53,-40.2 167.79,-36.02 172.79,-45.36 177.53,-40.2\"/>\n", "<text text-anchor=\"middle\" x=\"214.67\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1\\} -->\n", "<g id=\"node7\" class=\"node\">\n", "<title>\\{1\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"178.17,-210 124.17,-210 124.17,-174 178.17,-174 178.17,-210\"/>\n", "<text text-anchor=\"middle\" x=\"151.17\" y=\"-188.3\" font-family=\"Times,serif\" font-size=\"14.00\">{1}</text>\n", "</g>\n", "<!-- \\{1\\}->\\{1,3\\} -->\n", "<g id=\"edge8\" class=\"edge\">\n", "<title>\\{1\\}->\\{1,3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M135.18,-173.8C123.62,-161.36 107.83,-144.36 94.94,-130.5\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"97.5,-128.12 88.13,-123.18 92.38,-132.88 97.5,-128.12\"/>\n", "<text text-anchor=\"middle\" x=\"133.67\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{1\\}->\\{1,2\\} -->\n", "<g id=\"edge9\" class=\"edge\">\n", "<title>\\{1\\}->\\{1,2\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M157.95,-173.69C162.45,-163.51 169.03,-150.77 177.17,-141 180.49,-137.02 184.34,-133.19 188.35,-129.64\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"190.72,-132.22 196.2,-123.15 186.26,-126.83 190.72,-132.22\"/>\n", "<text text-anchor=\"middle\" x=\"194.67\" y=\"-144.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{\\} -->\n", "<g id=\"node8\" class=\"node\">\n", "<title>\\{\\}</title>\n", "<polygon fill=\"#cae1ff\" stroke=\"#cae1ff\" points=\"178.17,-297 124.17,-297 124.17,-261 178.17,-261 178.17,-297\"/>\n", "<text text-anchor=\"middle\" x=\"151.17\" y=\"-275.3\" font-family=\"Times,serif\" font-size=\"14.00\">{}</text>\n", "</g>\n", "<!-- \\{\\}->\\{3\\} -->\n", "<g id=\"edge10\" class=\"edge\">\n", "<title>\\{\\}->\\{3\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M131.61,-260.68C125.36,-255.09 118.44,-248.82 112.17,-243 103.32,-234.78 93.75,-225.65 85.27,-217.47\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"87.46,-214.72 77.83,-210.28 82.59,-219.75 87.46,-214.72\"/>\n", "<text text-anchor=\"middle\" x=\"129.67\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{\\}->\\{2\\} -->\n", "<g id=\"edge11\" class=\"edge\">\n", "<title>\\{\\}->\\{2\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M171.03,-260.99C177.3,-255.41 184.15,-249.08 190.17,-243 197.98,-235.11 206.12,-226.11 213.25,-217.94\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"216.11,-219.97 219.98,-210.11 210.8,-215.41 216.11,-219.97\"/>\n", "<text text-anchor=\"middle\" x=\"220.67\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "<!-- \\{\\}->\\{1\\} -->\n", "<g id=\"edge12\" class=\"edge\">\n", "<title>\\{\\}->\\{1\\}</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M151.17,-260.8C151.17,-249.16 151.17,-233.55 151.17,-220.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"154.67,-220.18 151.17,-210.18 147.67,-220.18 154.67,-220.18\"/>\n", "<text text-anchor=\"middle\" x=\"168.67\" y=\"-231.8\" font-family=\"Times,serif\" font-size=\"14.00\">sub1</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [Asub1A={1,2,3} & sub1={({},{1}),({},{2}),({},{3}),({1},{1,2}),({1},{1,3}),({1,2},{1,2,3}),({1,3},{1,2,3}),({2},{1,2}),({2},{2,3}),({2,3},{1,2,3}),({3},{1,3}),({3},{2,3})}(\"sub1\",sub1)]>" ] }, "execution_count": 124, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"sub1\",sub1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Die Eingabe ```{1}``` hat zwei mögliche Ausgaben (Nachfolger): ```{1,3}``` und ```{1,2}```. Die Eingabe $\\emptyset$ hat drei mögliche Ausgaben:" ] }, { "cell_type": "code", "execution_count": 125, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\{(\\emptyset\\mapsto\\{1\\}),(\\emptyset\\mapsto\\{2\\}),(\\emptyset\\mapsto\\{3\\}),(\\{1\\}\\mapsto\\{1,2\\}),(\\{1\\}\\mapsto\\{1,3\\}),(\\{1,2\\}\\mapsto\\{1,2,3\\}),(\\{1,3\\}\\mapsto\\{1,2,3\\}),(\\{2\\}\\mapsto\\{1,2\\}),(\\{2\\}\\mapsto\\{2,3\\}),(\\{2,3\\}\\mapsto\\{1,2,3\\}),(\\{3\\}\\mapsto\\{1,3\\}),(\\{3\\}\\mapsto\\{2,3\\})\\}$" ], "text/plain": [ "{(∅↦{1}),(∅↦{2}),(∅↦{3}),({1}↦{1,2}),({1}↦{1,3}),({1,2}↦{1,2,3}),({1,3}↦{1,2,3}),({2}↦{1,2}),({2}↦{2,3}),({2,3}↦{1,2,3}),({3}↦{1,3}),({3}↦{2,3})}" ] }, "execution_count": 125, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sub1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Eine (totale) Funktion $F$ von $A$ nach $B$ ist \n", "* eine Relation von $A$ nach $B$ (also eine Untermenge von $A\\times B$),so dass\n", " * $\\forall a.( a\\in A \\Rightarrow \\exists b.( (a,b) \\in F))$\n", " * $\\forall (a,b,c).(((a,b)\\in F \\wedge (a,c)\\in F) \\Rightarrow b=c)$\n", " \n", " Wir schreiben dann $F \\in A \\rightarrow B$." ] }, { "cell_type": "code", "execution_count": 126, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{FALSE}$" ], "text/plain": [ "FALSE" ] }, "execution_count": 126, "metadata": {}, "output_type": "execute_result" } ], "source": [ "∀(a,b,c).((a,b)∈sub1 & (a,c)∈sub1 ⇒ b=c)" ] }, { "cell_type": "code", "execution_count": 127, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{FALSE}$" ], "text/plain": [ "FALSE" ] }, "execution_count": 127, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sub1 ∈ ℙ(1..3) --> ℙ(1..3)" ] }, { "cell_type": "code", "execution_count": 128, "metadata": {}, "outputs": [], "source": [ ":unlet sub1" ] }, { "cell_type": "code", "execution_count": 129, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 2),(2\\mapsto 3),(3\\mapsto 4),(4\\mapsto 5),(5\\mapsto 6),(6\\mapsto 7),(7\\mapsto 8),(8\\mapsto 9),(9\\mapsto 10),(10\\mapsto 11)\\}$" ], "text/plain": [ "{(1↦2),(2↦3),(3↦4),(4↦5),(5↦6),(6↦7),(7↦8),(8↦9),(9↦10),(10↦11)}" ] }, "execution_count": 129, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":let i10 {x,y|x:1..10 & y=x+1}" ] }, { "cell_type": "code", "execution_count": 130, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$\n", "\n", "**Solution:**\n", "* $\\mathit{A} = \\{1,2,3\\}$\n", "* $\\mathit{i10} = \\{(1\\mapsto 2),(2\\mapsto 3),(3\\mapsto 4),(4\\mapsto 5),(5\\mapsto 6),(6\\mapsto 7),(7\\mapsto 8),(8\\mapsto 9),(9\\mapsto 10),(10\\mapsto 11)\\}$" ], "text/plain": [ "TRUE\n", "\n", "Solution:\n", "\tA = {1,2,3}\n", "\ti10 = {(1↦2),(2↦3),(3↦4),(4↦5),(5↦6),(6↦7),(7↦8),(8↦9),(9↦10),(10↦11)}" ] }, "execution_count": 130, "metadata": {}, "output_type": "execute_result" } ], "source": [ "∀(a,b,c).((a,b)∈i10 & (a,c)∈i10 ⇒ b=c)" ] }, { "cell_type": "code", "execution_count": 131, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$\n", "\n", "**Solution:**\n", "* $\\mathit{A} = \\{1,2,3\\}$\n", "* $\\mathit{i10} = \\{(1\\mapsto 2),(2\\mapsto 3),(3\\mapsto 4),(4\\mapsto 5),(5\\mapsto 6),(6\\mapsto 7),(7\\mapsto 8),(8\\mapsto 9),(9\\mapsto 10),(10\\mapsto 11)\\}$" ], "text/plain": [ "TRUE\n", "\n", "Solution:\n", "\tA = {1,2,3}\n", "\ti10 = {(1↦2),(2↦3),(3↦4),(4↦5),(5↦6),(6↦7),(7↦8),(8↦9),(9↦10),(10↦11)}" ] }, "execution_count": 131, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i10 ∈ 1..10 --> 2..11" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Anmerkung: es wird nicht geprüft ob der komplette Wertebereich abgedeckt wird:" ] }, { "cell_type": "code", "execution_count": 132, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$\n", "\n", "**Solution:**\n", "* $\\mathit{A} = \\{1,2,3\\}$\n", "* $\\mathit{i10} = \\{(1\\mapsto 2),(2\\mapsto 3),(3\\mapsto 4),(4\\mapsto 5),(5\\mapsto 6),(6\\mapsto 7),(7\\mapsto 8),(8\\mapsto 9),(9\\mapsto 10),(10\\mapsto 11)\\}$" ], "text/plain": [ "TRUE\n", "\n", "Solution:\n", "\tA = {1,2,3}\n", "\ti10 = {(1↦2),(2↦3),(3↦4),(4↦5),(5↦6),(6↦7),(7↦8),(8↦9),(9↦10),(10↦11)}" ] }, "execution_count": 132, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i10 ∈ 1..10 --> 0..100" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Es wird aber wohl geprüft ob der Definitionsbereich komplett abgedeckt wird:" ] }, { "cell_type": "code", "execution_count": 133, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{FALSE}$" ], "text/plain": [ "FALSE" ] }, "execution_count": 133, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i10 ∈ 2..10 --> 0..100" ] }, { "cell_type": "code", "execution_count": 134, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{FALSE}$" ], "text/plain": [ "FALSE" ] }, "execution_count": 134, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i10 ∈ 0..10 --> 0..100" ] }, { "cell_type": "code", "execution_count": 135, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,2,3,4,5,6,7,8,9,10\\}$" ], "text/plain": [ "{1,2,3,4,5,6,7,8,9,10}" ] }, "execution_count": 135, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dom(i10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Was kann man mit Funktionen machen? Da Funktionen *nur* besondere Relationen sind, und Relationen *nur* besondere Mengen sind, kann man alle Mengen und Relationsoperatoren anwenden:" ] }, { "cell_type": "code", "execution_count": 136, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$\n", "\n", "**Solution:**\n", "* $\\mathit{A} = \\{1,2,3\\}$\n", "* $\\mathit{i10} = \\{(1\\mapsto 2),(2\\mapsto 3),(3\\mapsto 4),(4\\mapsto 5),(5\\mapsto 6),(6\\mapsto 7),(7\\mapsto 8),(8\\mapsto 9),(9\\mapsto 10),(10\\mapsto 11)\\}$\n", "* $\\mathit{z} = 5$" ], "text/plain": [ "TRUE\n", "\n", "Solution:\n", "\tA = {1,2,3}\n", "\ti10 = {(1↦2),(2↦3),(3↦4),(4↦5),(5↦6),(6↦7),(7↦8),(8↦9),(9↦10),(10↦11)}\n", "\tz = 5" ] }, "execution_count": 136, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(4,z) ∈ i10" ] }, { "cell_type": "code", "execution_count": 137, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,2,3,4,5,6,7,8,9,10\\}$" ], "text/plain": [ "{1,2,3,4,5,6,7,8,9,10}" ] }, "execution_count": 137, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dom(i10)" ] }, { "cell_type": "code", "execution_count": 138, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{2,3,4,5,6,7,8,9,10,11\\}$" ], "text/plain": [ "{2,3,4,5,6,7,8,9,10,11}" ] }, "execution_count": 138, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ran(i10)" ] }, { "cell_type": "code", "execution_count": 139, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{5,6\\}$" ], "text/plain": [ "{5,6}" ] }, "execution_count": 139, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i10[{4,5}]" ] }, { "cell_type": "code", "execution_count": 140, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{5\\}$" ], "text/plain": [ "{5}" ] }, "execution_count": 140, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i10[{4}]" ] }, { "cell_type": "code", "execution_count": 141, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{3\\}$" ], "text/plain": [ "{3}" ] }, "execution_count": 141, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i10~[{4}]" ] }, { "cell_type": "code", "execution_count": 142, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{6\\}$" ], "text/plain": [ "{6}" ] }, "execution_count": 142, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(i10 ; i10)[{4}]" ] }, { "cell_type": "code", "execution_count": 143, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{5,6,7,8,9,10,11\\}$" ], "text/plain": [ "{5,6,7,8,9,10,11}" ] }, "execution_count": 143, "metadata": {}, "output_type": "execute_result" } ], "source": [ "closure1(i10)[{4}]" ] }, { "cell_type": "code", "execution_count": 144, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,2,3\\}$" ], "text/plain": [ "{1,2,3}" ] }, "execution_count": 144, "metadata": {}, "output_type": "execute_result" } ], "source": [ "closure1(i10~)[{4}]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Anmerkung: um den Wert einer Funktion $F$ für eine Eingabe $x$ zu berechnen, kann man das relationale Bild $F[\\{x\\}]$ verwenden. Aber: das Ergebnis ist eine Menge! Man kann also nicht direkt zB arithmetische Operatoren anwenden. Dafür wird eine neue Operation für Funktionen eingeführt: die **Funktionsanwendung**: ```F(x)```." ] }, { "cell_type": "code", "execution_count": 145, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$5$" ], "text/plain": [ "5" ] }, "execution_count": 145, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i10(4)" ] }, { "cell_type": "code", "execution_count": 146, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$10$" ], "text/plain": [ "10" ] }, "execution_count": 146, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i10(4) + i10(4)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Es ist ein Fehler eine Funktion ausserhalb des Definitionsbereiches anzuwenden. Beim relationalen Bild ist dies erlaubt und man bekommt dort die leere Menge als Ausgabe." ] }, { "cell_type": "code", "execution_count": 147, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\emptyset$" ], "text/plain": [ "∅" ] }, "execution_count": 147, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i10[{100}]" ] }, { "cell_type": "code", "execution_count": 148, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 2),(2\\mapsto 3),(3\\mapsto 4),(4\\mapsto 5),(5\\mapsto 6),(6\\mapsto 7),(7\\mapsto 8),(8\\mapsto 9),(9\\mapsto 10),(10\\mapsto 11)\\}$" ], "text/plain": [ "{(1↦2),(2↦3),(3↦4),(4↦5),(5↦6),(6↦7),(7↦8),(8↦9),(9↦10),(10↦11)}" ] }, "execution_count": 148, "metadata": {}, "output_type": "execute_result" } ], "source": [ "i10" ] }, { "cell_type": "code", "execution_count": 149, "metadata": {}, "outputs": [ { "ename": "CommandExecutionException", "evalue": ":eval: NOT-WELL-DEFINED: \nfunction applied outside of domain (#7): Function argument: 100, function value: {}\n ### Line: 2, Column: 0 until 8\n\n", "output_type": "error", "traceback": [ "\u001b[1m\u001b[31m:eval: NOT-WELL-DEFINED: \u001b[0m", "\u001b[1m\u001b[31mfunction applied outside of domain (#7): Function argument: 100, function value: {}\u001b[0m", "\u001b[1m\u001b[31m ### Line: 2, Column: 0 until 8\u001b[0m" ] } ], "source": [ "i10(100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Alle möglichen Funktionen über einen Definitionsbereich ergeben wieder eine Menge:" ] }, { "cell_type": "code", "execution_count": 150, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{\\{(1\\mapsto 1),(2\\mapsto 1)\\},\\{(1\\mapsto 1),(2\\mapsto 2)\\},\\{(1\\mapsto 2),(2\\mapsto 1)\\},\\{(1\\mapsto 2),(2\\mapsto 2)\\}\\}$" ], "text/plain": [ "{{(1↦1),(2↦1)},{(1↦1),(2↦2)},{(1↦2),(2↦1)},{(1↦2),(2↦2)}}" ] }, "execution_count": 150, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1..2 --> 1..2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Es gibt auch noch andere Arten an Funktionen:\n", "* partielle Funktionen, +->\n", "* injektive (umkehrbare) Funktionen >->\n", "* surjektive Funktionen die den Wertebereich komplett abdecken -->>\n", "* injektive und surjektive Funktionen >->>, auch Bijektionen gennant\n", "\n", "(Die Pfeilsymbole sind sehr spezifisch für die B Sprache. Wir werden diese nicht im Skript verwenden.)" ] }, { "cell_type": "code", "execution_count": 151, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\{\\emptyset,\\{(1\\mapsto 1)\\},\\{(1\\mapsto 1),(2\\mapsto 1)\\},\\{(1\\mapsto 1),(2\\mapsto 2)\\},\\{(1\\mapsto 2)\\},\\{(1\\mapsto 2),(2\\mapsto 1)\\},\\{(1\\mapsto 2),(2\\mapsto 2)\\},\\{(2\\mapsto 1)\\},\\{(2\\mapsto 2)\\}\\}$" ], "text/plain": [ "{∅,{(1↦1)},{(1↦1),(2↦1)},{(1↦1),(2↦2)},{(1↦2)},{(1↦2),(2↦1)},{(1↦2),(2↦2)},{(2↦1)},{(2↦2)}}" ] }, "execution_count": 151, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1..2 +-> 1..2" ] }, { "cell_type": "code", "execution_count": 152, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\mathit{TRUE}$\n", "\n", "**Solution:**\n", "* $\\mathit{A} = \\{1,2,3\\}$\n", "* $\\mathit{i10} = \\{(1\\mapsto 2),(2\\mapsto 3),(3\\mapsto 4),(4\\mapsto 5),(5\\mapsto 6),(6\\mapsto 7),(7\\mapsto 8),(8\\mapsto 9),(9\\mapsto 10),(10\\mapsto 11)\\}$" ], "text/plain": [ "TRUE\n", "\n", "Solution:\n", "\tA = {1,2,3}\n", "\ti10 = {(1↦2),(2↦3),(3↦4),(4↦5),(5↦6),(6↦7),(7↦8),(8↦9),(9↦10),(10↦11)}" ] }, "execution_count": 152, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(1..2 --> 1..2) <: (1..2 +-> 1..2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Folgende fünf Funktionen sind partiell und nicht total:" ] }, { "cell_type": "code", "execution_count": 153, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\renewcommand{\\emptyset}{\\mathord\\varnothing}\\{\\emptyset,\\{(1\\mapsto 1)\\},\\{(1\\mapsto 2)\\},\\{(2\\mapsto 1)\\},\\{(2\\mapsto 2)\\}\\}$" ], "text/plain": [ "{∅,{(1↦1)},{(1↦2)},{(2↦1)},{(2↦2)}}" ] }, "execution_count": 153, "metadata": {}, "output_type": "execute_result" } ], "source": [ "(1..2 +-> 1..2) \\ (1..2 --> 1..2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Das sind die totalen umkehrbaren Funktionen:" ] }, { "cell_type": "code", "execution_count": 154, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{\\{(1\\mapsto 1),(2\\mapsto 2)\\},\\{(1\\mapsto 2),(2\\mapsto 1)\\}\\}$" ], "text/plain": [ "{{(1↦1),(2↦2)},{(1↦2),(2↦1)}}" ] }, "execution_count": 154, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1..2 >-> 1..2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In diesem Falle sind diese identisch zu den surjektiven Funktionen und den Bijektionen:" ] }, { "cell_type": "code", "execution_count": 155, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{\\{(1\\mapsto 1),(2\\mapsto 2)\\},\\{(1\\mapsto 2),(2\\mapsto 1)\\}\\}$" ], "text/plain": [ "{{(1↦1),(2↦2)},{(1↦2),(2↦1)}}" ] }, "execution_count": 155, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1..2 -->> 1..2" ] }, { "cell_type": "code", "execution_count": 156, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{\\{(1\\mapsto 1),(2\\mapsto 2)\\},\\{(1\\mapsto 2),(2\\mapsto 1)\\}\\}$" ], "text/plain": [ "{{(1↦1),(2↦2)},{(1↦2),(2↦1)}}" ] }, "execution_count": 156, "metadata": {}, "output_type": "execute_result" } ], "source": [ "1..2 >->> 1..2" ] }, { "cell_type": "code", "execution_count": 157, "metadata": {}, "outputs": [], "source": [ ":unlet i10" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Endliche Folgen\n", " \n", "Es gibt verschiedene Schreibweisen für endliche Folgen.\n", "Zum Beispiel $[1,2]$ ist eine Folge bestehend aus der Zahl 1 gefolgt von der Zahl 2.\n", "\n", "(Anmerkung: Im Skript werden wir eine andere Schreibweise verwenden. Zum Beispiel, $ab$ ist die\n", "Folge bestehen aus dem Symbol $a$ gefolgt von $b$.\n", "Diese Schreibweise ist zwar kompakter, aber nicht immer eindeutig und nicht für eine maschinelle Verarbeitung geeeignet.)\n", "\n", "Was unterscheidet Folgen von Mengen?\n", "Wie kann man Folgen in Mengentheorie und Logik darstellen?\n", "\n", " \n", "## Endliche Folgen vs Mengen\n", " \n", "Die Reihenfolge der Elemente ist wichtig:\n", " * $[1,2] \\neq [2,1] $, während\n", " * $\\{1,2\\} = \\{2,1\\} $\n", "\n", "Elemente können mehrfach auftauchen:\n", " * $[1,1] \\neq [1] $, während\n", " * $\\{1,1\\} = \\{1\\} $\n", "\n", "Wie kann man Folgen in Mengentheorie und Logik darstellen?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Endliche Folgen mathematisch gesehen\n", " \n", "Eine (endliche) Folge $G$ von $A$ Elementen der Länge $n$ ist \n", "* eine (totale) Funktion von $1..n$ nach $A$.\n", "\n", "Da eine totale Funktion eine Menge an Paare ist, haben wir zum Beispiel:" ] }, { "cell_type": "code", "execution_count": 158, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 22),(2\\mapsto 22),(3\\mapsto 33)\\}$" ], "text/plain": [ "{(1↦22),(2↦22),(3↦33)}" ] }, "execution_count": 158, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":let G [22,22,33]" ] }, { "cell_type": "code", "execution_count": 159, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{(1\\mapsto 22),(2\\mapsto 22),(3\\mapsto 33)\\}$" ], "text/plain": [ "{(1↦22),(2↦22),(3↦33)}" ] }, "execution_count": 159, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G" ] }, { "cell_type": "code", "execution_count": 160, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n", "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n", " \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n", "<!-- Generated by graphviz version 2.44.1 (0)\n", " -->\n", "<!-- Title: state Pages: 1 -->\n", "<svg width=\"206pt\" height=\"131pt\"\n", " viewBox=\"0.00 0.00 206.00 131.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n", "<g id=\"graph0\" class=\"graph\" transform=\"scale(1 1) rotate(0) translate(4 127)\">\n", "<title>state</title>\n", "<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-127 202,-127 202,4 -4,4\"/>\n", "<!-- 3 -->\n", "<g id=\"node1\" class=\"node\">\n", "<title>3</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-123 0,-123 0,-87 54,-87 54,-123\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">3</text>\n", "</g>\n", "<!-- 33 -->\n", "<g id=\"node2\" class=\"node\">\n", "<title>33</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"54,-36 0,-36 0,0 54,0 54,-36\"/>\n", "<text text-anchor=\"middle\" x=\"27\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">33</text>\n", "</g>\n", "<!-- 3->33 -->\n", "<g id=\"edge1\" class=\"edge\">\n", "<title>3->33</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M27,-86.8C27,-75.16 27,-59.55 27,-46.24\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"30.5,-46.18 27,-36.18 23.5,-46.18 30.5,-46.18\"/>\n", "<text text-anchor=\"middle\" x=\"33\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">G</text>\n", "</g>\n", "<!-- 2 -->\n", "<g id=\"node3\" class=\"node\">\n", "<title>2</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"126,-123 72,-123 72,-87 126,-87 126,-123\"/>\n", "<text text-anchor=\"middle\" x=\"99\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">2</text>\n", "</g>\n", "<!-- 22 -->\n", "<g id=\"node4\" class=\"node\">\n", "<title>22</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"162,-36 108,-36 108,0 162,0 162,-36\"/>\n", "<text text-anchor=\"middle\" x=\"135\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\">22</text>\n", "</g>\n", "<!-- 2->22 -->\n", "<g id=\"edge2\" class=\"edge\">\n", "<title>2->22</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M106.29,-86.8C111.31,-74.93 118.09,-58.93 123.8,-45.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"127.05,-46.75 127.73,-36.18 120.6,-44.02 127.05,-46.75\"/>\n", "<text text-anchor=\"middle\" x=\"125\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">G</text>\n", "</g>\n", "<!-- 1 -->\n", "<g id=\"node5\" class=\"node\">\n", "<title>1</title>\n", "<polygon fill=\"#cdba96\" stroke=\"#cdba96\" points=\"198,-123 144,-123 144,-87 198,-87 198,-123\"/>\n", "<text text-anchor=\"middle\" x=\"171\" y=\"-101.3\" font-family=\"Times,serif\" font-size=\"14.00\">1</text>\n", "</g>\n", "<!-- 1->22 -->\n", "<g id=\"edge3\" class=\"edge\">\n", "<title>1->22</title>\n", "<path fill=\"none\" stroke=\"firebrick\" d=\"M163.71,-86.8C158.69,-74.93 151.91,-58.93 146.2,-45.45\"/>\n", "<polygon fill=\"firebrick\" stroke=\"firebrick\" points=\"149.4,-44.02 142.27,-36.18 142.95,-46.75 149.4,-44.02\"/>\n", "<text text-anchor=\"middle\" x=\"161\" y=\"-57.8\" font-family=\"Times,serif\" font-size=\"14.00\">G</text>\n", "</g>\n", "</g>\n", "</svg>" ], "text/plain": [ "<Dot visualization: expr_as_graph [AGA={1,2,3} & G={(1,22),(2,22),(3,33)}(\"G\",G)]>" ] }, "execution_count": 160, "metadata": {}, "output_type": "execute_result" } ], "source": [ ":dot expr_as_graph (\"G\",G)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Es gilt also\n", "* $G = [22,22,33] = \\{(1\\mapsto 22),(2\\mapsto 22),(3\\mapsto 33)\\}$\n", " \n", "Wir schreiben $\\mathit{G} \\in \\mathit{seq}$(ℤ)\n", " oder aber auch $G \\in ℤ^*$ (mehr dazu später im Skript)\n", " \n", "Das n-te Element einer Folge $G$ ist einfach $G(n)$:" ] }, { "cell_type": "code", "execution_count": 161, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$22$" ], "text/plain": [ "22" ] }, "execution_count": 161, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G(2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Die Länge einer Folge (```size``` in B) ist einfach die Kardinalität der unterliegenden Relation:" ] }, { "cell_type": "code", "execution_count": 162, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$3$" ], "text/plain": [ "3" ] }, "execution_count": 162, "metadata": {}, "output_type": "execute_result" } ], "source": [ "size(G)" ] }, { "cell_type": "code", "execution_count": 163, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$3$" ], "text/plain": [ "3" ] }, "execution_count": 163, "metadata": {}, "output_type": "execute_result" } ], "source": [ "card(G)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wir können alle anderen Menge und Relationsoperatoren auf Folgen anwenden:" ] }, { "cell_type": "code", "execution_count": 164, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,2,3\\}$" ], "text/plain": [ "{1,2,3}" ] }, "execution_count": 164, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dom(G)" ] }, { "cell_type": "code", "execution_count": 165, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{22,33\\}$" ], "text/plain": [ "{22,33}" ] }, "execution_count": 165, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ran(G)" ] }, { "cell_type": "code", "execution_count": 166, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "$\\{1,2\\}$" ], "text/plain": [ "{1,2}" ] }, "execution_count": 166, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G~[{22}]" ] }, { "cell_type": "code", "execution_count": 167, "metadata": {}, "outputs": [], "source": [ ":unlet G" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Zusammenfassung Mengentheorie\n", " \n", "* Mengen, Notationen (per Prädikat)\n", "* Potenzmenge, Menge von Mengen, $\\phi \\neq \\{ \\phi\\}$\n", "* kartesisches Produkt, Relationen als Menge von Paaren/Tupeln\n", "* Definitionsbereich, Wertebereich, Abbild, Umkehrrelation\n", "* Transitive Hülle\n", "* Funktionen\n", "* Endliche Folgen als Funktion von $ℤ$ nach Wertebereich" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Lernziele von Kapitel 0\n", "* logische Formeln verstehen und schreiben können\n", "* logische Beweise verstehen: Wahrheitstabelle, Widerspruch, Deduktiver Beweis, Äuivalenzbeweis\n", "* Mengenausdrücke verstehen und nach Logik übbersetzen können\n", "* Problemstellungen nach Logik und Mengentheorie übersetzen können\n", "* Relationen, Funktionen und Folgen in Mengendarstellung bearbeiten können" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "ProB 2", "language": "prob", "name": "prob2" }, "language_info": { "codemirror_mode": "prob2_jupyter_repl", "file_extension": ".prob", "mimetype": "text/x-prob2-jupyter-repl", "name": "prob" } }, "nbformat": 4, "nbformat_minor": 2 }