diff --git a/info4/kapitel-11/PCP.ipynb b/info4/kapitel-11/PCP.ipynb index 9e632f34b1974f31753983ca38a9950373c9d2d0..d1c8b4cb221466a0711ac4f98b3504c36104ff1a 100644 --- a/info4/kapitel-11/PCP.ipynb +++ b/info4/kapitel-11/PCP.ipynb @@ -237,6 +237,52 @@ ":show" ] }, + { + "cell_type": "code", + "execution_count": 169, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "$[Hash,\\mathit{z0},\\mathit{a},\\mathit{b},\\mathit{Hash},\\mathit{a},\\mathit{z0},\\mathit{b},\\mathit{Hash},\\mathit{a},\\mathit{b},\\mathit{z1},\\mathit{Hash},\\mathit{a},\\mathit{b},\\mathit{z2},\\mathit{Hash},\\mathit{a},\\mathit{z2},\\mathit{Hash},\\mathit{z2},\\mathit{Hash},Hash]$" + ], + "text/plain": [ + "[Hash,z0,a,b,Hash,a,z0,b,Hash,a,b,z1,Hash,a,b,z2,Hash,a,z2,Hash,z2,Hash,Hash]" + ] + }, + "execution_count": 169, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x" + ] + }, + { + "cell_type": "code", + "execution_count": 170, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "$[Hash,\\mathit{z0},\\mathit{a},\\mathit{b},\\mathit{Hash},\\mathit{a},\\mathit{z0},\\mathit{b},\\mathit{Hash},\\mathit{a},\\mathit{b},\\mathit{z1},\\mathit{Hash},\\mathit{a},\\mathit{b},\\mathit{z2},\\mathit{Hash},\\mathit{a},\\mathit{z2},\\mathit{Hash},\\mathit{z2},\\mathit{Hash},Hash]$" + ], + "text/plain": [ + "[Hash,z0,a,b,Hash,a,z0,b,Hash,a,b,z1,Hash,a,b,z2,Hash,a,z2,Hash,z2,Hash,Hash]" + ] + }, + "execution_count": 170, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y" + ] + }, { "cell_type": "code", "execution_count": 92, @@ -707,7 +753,7 @@ }, { "cell_type": "code", - "execution_count": 107, + "execution_count": 171, "metadata": {}, "outputs": [ { @@ -716,7 +762,7 @@ "Loaded machine: PostCorrespondence_MC" ] }, - "execution_count": 107, + "execution_count": 171, "metadata": {}, "output_type": "execute_result" } @@ -1074,16 +1120,16 @@ }, { "cell_type": "code", - "execution_count": 119, + "execution_count": 172, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Machine constants set up using operation 11: $setup_constants()" + "Machine constants set up using operation 0: $setup_constants()" ] }, - "execution_count": 119, + "execution_count": 172, "metadata": {}, "output_type": "execute_result" } @@ -1094,16 +1140,16 @@ }, { "cell_type": "code", - "execution_count": 120, + "execution_count": 173, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "Machine initialised using operation 12: $initialise_machine()" + "Machine initialised using operation 1: $initialise_machine()" ] }, - "execution_count": 120, + "execution_count": 173, "metadata": {}, "output_type": "execute_result" } @@ -1114,7 +1160,7 @@ }, { "cell_type": "code", - "execution_count": 121, + "execution_count": 174, "metadata": {}, "outputs": [ { @@ -1129,7 +1175,7 @@ "Schritt(2,[0,1],[0,1,1])" ] }, - "execution_count": 121, + "execution_count": 174, "metadata": {}, "output_type": "execute_result" } @@ -1140,7 +1186,7 @@ }, { "cell_type": "code", - "execution_count": 122, + "execution_count": 175, "metadata": {}, "outputs": [ { @@ -1149,7 +1195,7 @@ "Executed operation: Schritt(2,[0,1],[0,1,1])" ] }, - "execution_count": 122, + "execution_count": 175, "metadata": {}, "output_type": "execute_result" } @@ -1160,7 +1206,116 @@ }, { "cell_type": "code", - "execution_count": 123, + "execution_count": 176, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: Schritt(4,[1,0],[0,0,1])" + ] + }, + "execution_count": 176, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec Schritt i=4" + ] + }, + { + "cell_type": "code", + "execution_count": 177, + "metadata": {}, + "outputs": [ + { + "data": { + "text/markdown": [ + "<table style=\"font-family:monospace\"><tbody>\n", + "<tr>\n", + "<td style=\"padding:0px\"><img alt=\"2\" src=\"images/sm_X.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"6\" src=\"images/sm_empty_box.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"6\" src=\"images/sm_empty_box.gif\"/></td>\n", + "</tr>\n", + "<tr>\n", + "<td style=\"padding:0px\"><img alt=\"3\" src=\"images/sm_Y.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "</tr>\n", + "</tbody></table>" + ], + "text/plain": [ + "<Animation function visualisation>" + ] + }, + "execution_count": 177, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":show" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Jetzt fehlen nur noch 64 Schritte bis zu einer Lösung." + ] + }, + { + "cell_type": "code", + "execution_count": 178, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: Schritt(3,[0,1],[1,0,1])" + ] + }, + "execution_count": 178, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec Schritt i=3" + ] + }, + { + "cell_type": "code", + "execution_count": 179, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: Schritt(4,[1,0],[0,0,1])" + ] + }, + "execution_count": 179, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec Schritt i=4" + ] + }, + { + "cell_type": "code", + "execution_count": 180, "metadata": {}, "outputs": [ { @@ -1169,7 +1324,7 @@ "Executed operation: Schritt(4,[1,0],[0,0,1])" ] }, - "execution_count": 123, + "execution_count": 180, "metadata": {}, "output_type": "execute_result" } @@ -1180,7 +1335,27 @@ }, { "cell_type": "code", - "execution_count": 124, + "execution_count": 181, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Executed operation: Schritt(2,[0,1],[0,1,1])" + ] + }, + "execution_count": 181, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + ":exec Schritt i=2" + ] + }, + { + "cell_type": "code", + "execution_count": 182, "metadata": {}, "outputs": [ { @@ -1193,6 +1368,18 @@ "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"6\" src=\"images/sm_empty_box.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"6\" src=\"images/sm_empty_box.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"6\" src=\"images/sm_empty_box.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"6\" src=\"images/sm_empty_box.gif\"/></td>\n", "<td style=\"padding:0px\"><img alt=\"6\" src=\"images/sm_empty_box.gif\"/></td>\n", "<td style=\"padding:0px\"><img alt=\"6\" src=\"images/sm_empty_box.gif\"/></td>\n", "</tr>\n", @@ -1204,6 +1391,18 @@ "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"0\" src=\"images/sm_0.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", + "<td style=\"padding:0px\"><img alt=\"1\" src=\"images/sm_1.gif\"/></td>\n", "</tr>\n", "</tbody></table>" ], @@ -1211,7 +1410,7 @@ "<Animation function visualisation>" ] }, - "execution_count": 124, + "execution_count": 182, "metadata": {}, "output_type": "execute_result" } @@ -1224,7 +1423,75 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "jetzt fehlen nur noch 64 Schritte bis zu einer Lösung.\n" + "jetzt fehlen nur noch 60 Schritte bis zu der kürzesten Lösung.\n", + "Die gesamte Lösung ist:\n", + "\n", + "Schritt(2,[0,1],[0,1,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(3,[0,1],[1,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(2,[0,1],[0,1,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(2,[0,1],[0,1,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(3,[0,1],[1,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(3,[0,1],[1,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(3,[0,1],[1,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(2,[0,1],[0,1,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(2,[0,1],[0,1,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(3,[0,1],[1,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(3,[0,1],[1,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(2,[0,1],[0,1,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(2,[0,1],[0,1,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(3,[0,1],[1,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(3,[0,1],[1,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(2,[0,1],[0,1,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(2,[0,1],[0,1,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(3,[0,1],[1,0,1])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(3,[0,1],[1,0,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(3,[0,1],[1,0,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(2,[0,1],[0,1,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(4,[1,0],[0,0,1])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(1,[0,0,1],[0])\n", + "Schritt(3,[0,1],[1,0,1])\n" ] }, {