From bb7681bb5a2c83495b5f6aa29a9814768d168a8d Mon Sep 17 00:00:00 2001 From: Michael Leuschel <leuschel@uni-duesseldorf.de> Date: Fri, 12 Jun 2020 14:54:26 +0200 Subject: [PATCH] erste Version einer Turing Maschine --- info4/kapitel-5/TuringMaschine.ipynb | 1748 ++++++++++++++++++++++++++ 1 file changed, 1748 insertions(+) create mode 100644 info4/kapitel-5/TuringMaschine.ipynb diff --git a/info4/kapitel-5/TuringMaschine.ipynb b/info4/kapitel-5/TuringMaschine.ipynb new file mode 100644 index 0000000..b70358a --- /dev/null +++ b/info4/kapitel-5/TuringMaschine.ipynb @@ -0,0 +1,1748 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Turing Maschine\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Loaded machine: TuringMachine_2" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "::load\n", + "MACHINE TuringMachine_2\n", + "/* B Modell einer 1-band Turing Maschine */\n", + "/* by Michael Leuschel, 2012 */\n", + "/* Akzeptiert die Sprache a^n b^n c^n (siehe Folien 14ff von folien-kapitel-5 */\n", + "SETS\n", + " Alphabet={a,b,c,X,Blank};\n", + " States = {z0,z1,z2,z3,z4,z5,z6};\n", + " Direction = {L,R,N}\n", + "DEFINITIONS\n", + " Σ == {a,b,c};\n", + " Γ == Σ \\/ {X};\n", + " CurSymbol == (Right<-Blank)(1);\n", + " ANIMATION_FUNCTION_DEFAULT == {(1,0,cur)};\n", + " /* ANIMATION_FUNCTION__xx == {(1,1,Left), (1,3,Right)}; */\n", + " ANIMATION_FUNCTION1 == {1} *( (%i.(i:-size(Left)..-1|i+size(Left)+1) ; Left) \\/ Right)\n", + "CONSTANTS Final, δ\n", + "PROPERTIES\n", + " Final <: States &\n", + " δ : (States * Alphabet) <-> (States * Alphabet * Direction) &\n", + "\n", + " δ = { /* Neuer Zyklus */\n", + " (z0,a) |-> (z1,X,R),\n", + " (z0,X) |-> (z0,X,R),\n", + " \n", + " /* ein a getilgt (X), nächstes b suchen */\n", + " (z1,a) |-> (z1,a,R),\n", + " (z1,b) |-> (z2,X,R),\n", + " (z1,X) |-> (z1,X,R),\n", + " \n", + " /* ein a,b getilgt (X), nächstes c suchen */\n", + " (z2,b) |-> (z2,b,R),\n", + " (z2,c) |-> (z3,X,R),\n", + " (z2,X) |-> (z2,X,R),\n", + " \n", + " /* ein a,b,c getilgt (X), rechten Rand suchen */\n", + " (z3,c) |-> (z3,c,R),\n", + " (z3,Blank) |-> (z4,Blank,L),\n", + " \n", + " /* Zurücklaufen und testen ob alle a,b,c getilgt */\n", + " (z4,X) |-> (z4,X,L),\n", + " (z4,Blank) |-> (z6,Blank,R), /* Erfolg ! */\n", + " (z4,c) |-> (z5,c,L), \n", + " \n", + " /* Test nicht erfolgreich; zum linken Rand zurücklaufen und neuer Zyklus */\n", + " (z5,X) |-> (z5,X,L),\n", + " (z5,Blank) |-> (z0,Blank,R),\n", + " (z5,a) |-> (z5,a,L),\n", + " (z5,b) |-> (z5,b,L),\n", + " (z5,c) |-> (z5,c,L)\n", + " } &\n", + " Final = {z6}\n", + "VARIABLES Left,cur,Right\n", + "INVARIANT\n", + " cur : States &\n", + " Left : seq(Alphabet) & Right : seq(Alphabet)\n", + "INITIALISATION Left,cur,Right := [],z0,[a,a,b,b,c,c]\n", + "OPERATIONS\n", + " Accept = PRE cur : Final THEN skip END;\n", + " GoTo(z,S,znew,NewSymbol,Dir) =\n", + " PRE z=cur & S=CurSymbol &\n", + " (z, S) |-> (znew,NewSymbol,Dir) : δ THEN\n", + " ANY tail_Right \n", + " WHERE (Right=[] => tail_Right=[]) & (Right/=[] => tail_Right = tail(Right)) THEN\n", + " cur := znew ||\n", + " IF Dir = N THEN\n", + " Right := NewSymbol -> tail_Right\n", + " ELSIF Dir = R THEN\n", + " Left,Right := Left <- NewSymbol, tail_Right\n", + " ELSIF Left=[] THEN\n", + " Left,Right := [], Blank -> (NewSymbol -> tail_Right)\n", + " ELSE\n", + " Left,Right := front(Left), last(Left) -> (NewSymbol -> tail_Right)\n", + " END\n", + " END\n", + " END\n", + "END\n" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Machine constants set up using operation 0: $setup_constants()" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":constants" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Machine initialised using operation 1: $initialise_machine()" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":init" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "$\\{(\\mathit{z0}\\mapsto \\mathit{a}\\mapsto(\\mathit{z1}\\mapsto \\mathit{X}\\mapsto \\mathit{R})),(\\mathit{z0}\\mapsto \\mathit{X}\\mapsto(\\mathit{z0}\\mapsto \\mathit{X}\\mapsto \\mathit{R})),(\\mathit{z1}\\mapsto \\mathit{a}\\mapsto(\\mathit{z1}\\mapsto \\mathit{a}\\mapsto \\mathit{R})),(\\mathit{z1}\\mapsto \\mathit{b}\\mapsto(\\mathit{z2}\\mapsto \\mathit{X}\\mapsto \\mathit{R})),(\\mathit{z1}\\mapsto \\mathit{X}\\mapsto(\\mathit{z1}\\mapsto \\mathit{X}\\mapsto \\mathit{R})),(\\mathit{z2}\\mapsto \\mathit{b}\\mapsto(\\mathit{z2}\\mapsto \\mathit{b}\\mapsto \\mathit{R})),(\\mathit{z2}\\mapsto \\mathit{c}\\mapsto(\\mathit{z3}\\mapsto \\mathit{X}\\mapsto \\mathit{R})),(\\mathit{z2}\\mapsto \\mathit{X}\\mapsto(\\mathit{z2}\\mapsto \\mathit{X}\\mapsto \\mathit{R})),(\\mathit{z3}\\mapsto \\mathit{c}\\mapsto(\\mathit{z3}\\mapsto \\mathit{c}\\mapsto \\mathit{R})),(\\mathit{z3}\\mapsto \\mathit{Blank}\\mapsto(\\mathit{z4}\\mapsto \\mathit{Blank}\\mapsto \\mathit{L})),(\\mathit{z4}\\mapsto \\mathit{c}\\mapsto(\\mathit{z5}\\mapsto \\mathit{c}\\mapsto \\mathit{L})),(\\mathit{z4}\\mapsto \\mathit{X}\\mapsto(\\mathit{z4}\\mapsto \\mathit{X}\\mapsto \\mathit{L})),(\\mathit{z4}\\mapsto \\mathit{Blank}\\mapsto(\\mathit{z6}\\mapsto \\mathit{Blank}\\mapsto \\mathit{R})),(\\mathit{z5}\\mapsto \\mathit{a}\\mapsto(\\mathit{z5}\\mapsto \\mathit{a}\\mapsto \\mathit{L})),(\\mathit{z5}\\mapsto \\mathit{b}\\mapsto(\\mathit{z5}\\mapsto \\mathit{b}\\mapsto \\mathit{L})),(\\mathit{z5}\\mapsto \\mathit{c}\\mapsto(\\mathit{z5}\\mapsto \\mathit{c}\\mapsto \\mathit{L})),(\\mathit{z5}\\mapsto \\mathit{X}\\mapsto(\\mathit{z5}\\mapsto \\mathit{X}\\mapsto \\mathit{L})),(\\mathit{z5}\\mapsto \\mathit{Blank}\\mapsto(\\mathit{z0}\\mapsto \\mathit{Blank}\\mapsto \\mathit{R}))\\}$" + ], + "text/plain": [ + "{(z0↦a↦(z1↦X↦R)),(z0↦X↦(z0↦X↦R)),(z1↦a↦(z1↦a↦R)),(z1↦b↦(z2↦X↦R)),(z1↦X↦(z1↦X↦R)),(z2↦b↦(z2↦b↦R)),(z2↦c↦(z3↦X↦R)),(z2↦X↦(z2↦X↦R)),(z3↦c↦(z3↦c↦R)),(z3↦Blank↦(z4↦Blank↦L)),(z4↦c↦(z5↦c↦L)),(z4↦X↦(z4↦X↦L)),(z4↦Blank↦(z6↦Blank↦R)),(z5↦a↦(z5↦a↦L)),(z5↦b↦(z5↦b↦L)),(z5↦c↦(z5↦c↦L)),(z5↦X↦(z5↦X↦L)),(z5↦Blank↦(z0↦Blank↦R))}" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "δ" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">z0</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Machine: TuringMachine_2\n", + "Sets: Alphabet, States, Direction\n", + "Constants: Final, δ\n", + "Variables: Left, cur, Right\n", + "Operations: \n", + "GoTo(z0,a,z1,X,R)" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":browse" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z0,a,z1,X,R)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z1</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z1,a,z1,a,R)" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">z1</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z1,b,z2,X,R)" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z2</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z2,b,z2,b,R)" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">z2</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z2,c,z3,X,R)" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z3</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z3,c,z3,c,R)" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">z3</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z3,Blank,z4,Blank,L)" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z4</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z4,c,z5,c,L)" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">z5</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z5,X,z5,X,L)" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z5</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z5,b,z5,b,L)" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">z5</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z5,X,z5,X,L)" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z5</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z5,a,z5,a,L)" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">z5</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z5,X,z5,X,L)" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">z5</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 32, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z5,Blank,z0,Blank,R)" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">z0</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z0,X,z0,X,R)" + ] + }, + "execution_count": 35, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z0</td>\n", + "<td style=\"padding:10px\">a</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z0,a,z1,X,R)" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z1</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 38, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z1,X,z1,X,R)" + ] + }, + "execution_count": 39, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z1</td>\n", + "<td style=\"padding:10px\">b</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 40, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z1,b,z2,X,R)" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z2</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z2,X,z2,X,R)" + ] + }, + "execution_count": 43, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z2</td>\n", + "<td style=\"padding:10px\">c</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 44, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 45, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z2,c,z3,X,R)" + ] + }, + "execution_count": 45, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z3</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z3,Blank,z4,Blank,L)" + ] + }, + "execution_count": 47, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z4</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 48, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z4,X,z4,X,L)" + ] + }, + "execution_count": 49, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z4,X,z4,X,L)" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z4</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z4,X,z4,X,L)" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z4,X,z4,X,L)" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">z4</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 54, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z4,X,z4,X,L)" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">z4</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z4,X,z4,X,L)" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">z4</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 58, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: GoTo(z4,Blank,z6,Blank,R)" + ] + }, + "execution_count": 59, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec GoTo" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "<td style=\"padding:10px\">z6</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">X</td>\n", + "<td style=\"padding:10px\">Blank</td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Machine: TuringMachine_2\n", + "Sets: Alphabet, States, Direction\n", + "Constants: Final, δ\n", + "Variables: Left, cur, Right\n", + "Operations: \n", + "Accept()" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":browse" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: Accept()" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec Accept" + ] + }, + { + "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 +} -- GitLab