By default only propositions appearing in the strategy are treated. By handing over propositions explicitly one can force their appearance in the aig circuit. * spot/twaalgos/aiger.cc: Here * spot/twaalgos/aiger.hh: New doc * tests/python/games.ipynb: New test
4402 lines
326 KiB
Text
4402 lines
326 KiB
Text
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"import spot\n",
|
|
"from buddy import bddtrue\n",
|
|
"spot.setup()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Support for games\n",
|
|
"\n",
|
|
"The support for games is currently quite rudimentary, as Spot currently only uses those games in `ltlsynt`.\n",
|
|
"\n",
|
|
"In essence, agame is just an ω-automaton with a property named `state-player` that stores the player owning each state. The players are named 0 and 1. The player owning a state can decide what the next transition from this state should be. The goal for player 1 is to force the play to be infinite and to satisfy the acceptance condition of the automaton, while the goal for player 0 is to prevent it by either forcing a finite play, or forcing an infinite play that does not satisfy the acceptance condition.\n",
|
|
"\n",
|
|
"The support is currently restricted to games that use:\n",
|
|
"- `t` acceptance: all infinite run are accepting, and player 0 can only win if it manages to force a finite play (this requires reaching states without successors).\n",
|
|
"- max odd parity acceptance: player 0 can win if the maximal value seen infinitely often is even"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Creating games from scratch\n",
|
|
"\n",
|
|
"Games can be [created like any automaton](https://spot.lrde.epita.fr/tut22.html). \n",
|
|
"Using `set_state_players()` will fix the state owners."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"495pt\" height=\"190pt\"\n",
|
|
" viewBox=\"0.00 0.00 495.00 190.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.0 1.0) rotate(0) translate(4 186)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-186 491,-186 491,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"240.5\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"232.5\" y=\"-151.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"64,-144 37,-126 64,-108 91,-126 64,-144\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"64\" y=\"-122.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.2131,-126C4.2712,-126 16.7131,-126 29.7242,-126\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"36.9552,-126 29.9552,-129.1501 33.4552,-126 29.9552,-126.0001 29.9552,-126.0001 29.9552,-126.0001 33.4552,-126 29.9551,-122.8501 36.9552,-126 36.9552,-126\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"145\" cy=\"-126\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"145\" y=\"-122.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M82.3802,-120.2392C93.6671,-119.1141 108.2605,-118.9488 120.5195,-119.7431\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"127.8003,-120.3617 120.5587,-122.9077 124.3129,-120.0653 120.8254,-119.769 120.8254,-119.769 120.8254,-119.769 124.3129,-120.0653 121.0921,-116.6303 127.8003,-120.3617 127.8003,-120.3617\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"145\" cy=\"-72\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"145\" y=\"-68.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->3 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M77.7405,-116.8396C90.3786,-108.4142 109.3093,-95.7938 123.8702,-86.0865\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"129.8121,-82.1253 125.735,-88.6292 126.8999,-84.0668 123.9877,-86.0082 123.9877,-86.0082 123.9877,-86.0082 126.8999,-84.0668 122.2404,-83.3873 129.8121,-82.1253 129.8121,-82.1253\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M127.8003,-131.6383C116.6491,-132.8423 101.9263,-133.0683 89.4339,-132.3165\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"82.3802,-131.7608 89.606,-129.1704 85.8693,-132.0357 89.3585,-132.3106 89.3585,-132.3106 89.3585,-132.3106 85.8693,-132.0357 89.1111,-135.4509 82.3802,-131.7608 82.3802,-131.7608\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"226,-144 199,-126 226,-108 253,-126 226,-144\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"226\" y=\"-122.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->2 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M162.178,-120.364C173.2806,-119.1636 187.9303,-118.9333 200.3937,-119.6732\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"207.436,-120.221 200.2128,-122.8186 203.9466,-119.9495 200.4571,-119.6781 200.4571,-119.6781 200.4571,-119.6781 203.9466,-119.9495 200.7014,-116.5375 207.436,-120.221 207.436,-120.221\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3->2 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>3->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M160.2355,-82.157C173.2706,-90.847 192.1193,-103.4129 206.2992,-112.8661\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"212.4481,-116.9654 204.8764,-115.7034 209.5359,-115.0239 206.6238,-113.0825 206.6238,-113.0825 206.6238,-113.0825 209.5359,-115.0239 208.3711,-110.4615 212.4481,-116.9654 212.4481,-116.9654\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"226,-90 199,-72 226,-54 253,-72 226,-90\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"226\" y=\"-68.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->4 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>3->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M163.3802,-72C171.7119,-72 181.8453,-72 191.5115,-72\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"198.7746,-72 191.7747,-75.1501 195.2746,-72 191.7746,-72.0001 191.7746,-72.0001 191.7746,-72.0001 195.2746,-72 191.7746,-68.8501 198.7746,-72 198.7746,-72\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"226,-36 199,-18 226,0 253,-18 226,-36\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"226\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->6 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>3->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M160.2355,-61.843C173.2706,-53.153 192.1193,-40.5871 206.2992,-31.1339\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"212.4481,-27.0346 208.3711,-33.5385 209.5359,-28.9761 206.6238,-30.9175 206.6238,-30.9175 206.6238,-30.9175 209.5359,-28.9761 204.8764,-28.2966 212.4481,-27.0346 212.4481,-27.0346\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M207.436,-131.779C196.1581,-132.8893 181.6301,-133.0474 169.4264,-132.2534\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"162.178,-131.636 169.4201,-129.0915 165.6654,-131.9331 169.1528,-132.2302 169.1528,-132.2302 169.1528,-132.2302 165.6654,-131.9331 168.8854,-135.3688 162.178,-131.636 162.178,-131.636\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"460,-90 433,-72 460,-54 487,-72 460,-90\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"460\" y=\"-68.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->5 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M246.3566,-121.3023C288.5563,-111.5639 385.5805,-89.1737 432.9661,-78.2386\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"439.8571,-76.6484 433.7447,-81.2918 436.4467,-77.4354 433.0363,-78.2225 433.0363,-78.2225 433.0363,-78.2225 436.4467,-77.4354 432.328,-75.1531 439.8571,-76.6484 439.8571,-76.6484\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"307\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"307\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->7 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>6->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M244.3802,-12.2392C255.6671,-11.1141 270.2605,-10.9488 282.5195,-11.7431\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"289.8003,-12.3617 282.5587,-14.9077 286.3129,-12.0653 282.8254,-11.769 282.8254,-11.769 282.8254,-11.769 286.3129,-12.0653 283.0921,-8.6303 289.8003,-12.3617 289.8003,-12.3617\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 7->6 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>7->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M289.8003,-23.6383C278.6491,-24.8423 263.9263,-25.0683 251.4339,-24.3165\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"244.3802,-23.7608 251.606,-21.1704 247.8693,-24.0357 251.3585,-24.3106 251.3585,-24.3106 251.3585,-24.3106 247.8693,-24.0357 251.1111,-27.4509 244.3802,-23.7608 244.3802,-23.7608\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"379\" cy=\"-49\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"379\" y=\"-45.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->8 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>7->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M323.6992,-25.1899C333.2409,-29.2982 345.3509,-34.5122 355.8046,-39.0131\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"362.3913,-41.849 354.7162,-41.974 359.1766,-40.4649 355.9619,-39.0808 355.9619,-39.0808 355.9619,-39.0808 359.1766,-40.4649 357.2077,-36.1876 362.3913,-41.849 362.3913,-41.849\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8->5 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>8->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M396.5758,-53.9907C407.5442,-57.1052 421.8575,-61.1694 434.1105,-64.6486\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"441.0459,-66.618 433.4516,-67.736 437.679,-65.6619 434.3121,-64.7058 434.3121,-64.7058 434.3121,-64.7058 437.679,-65.6619 435.1725,-61.6756 441.0459,-66.618 441.0459,-66.618\"/>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"execution_count": 2,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"bdict = spot.make_bdd_dict();\n",
|
|
"game = spot.make_twa_graph(bdict)\n",
|
|
"game.new_states(9)\n",
|
|
"for (s, d) in ((0,1), (0, 3), \n",
|
|
" (1, 0), (1, 2),\n",
|
|
" (2, 1), (2, 5),\n",
|
|
" (3, 2), (3, 4), (3, 6),\n",
|
|
" (6, 7),\n",
|
|
" (7, 6), (7, 8),\n",
|
|
" (8, 5)):\n",
|
|
" game.new_edge(s, d, bddtrue)\n",
|
|
"spot.set_state_players(game, [True, False, True, False, True, True, True, False, False])\n",
|
|
"game.show('.g') # Use \"g\" to hide the irrelevant edge labels."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"The `set_state_players()` function takes a list of owner for each of the states in the automaton. In the output,\n",
|
|
"states from player 0 use circles, ellispes, or rectangle with rounded corners (mnemonic: 0 is round) while states from player 1 have a losanse shape (1 has only straight lines). \n",
|
|
"\n",
|
|
"\n",
|
|
"State ownership can also be manipulated by the following functions:"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(True, False, True, False, True, True, True, False, False)"
|
|
]
|
|
},
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"spot.get_state_players(game)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"True"
|
|
]
|
|
},
|
|
"execution_count": 4,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"spot.get_state_player(game, 4)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"495pt\" height=\"190pt\"\n",
|
|
" viewBox=\"0.00 0.00 495.00 190.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.0 1.0) rotate(0) translate(4 186)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-186 491,-186 491,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"240.5\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"232.5\" y=\"-151.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"64,-144 37,-126 64,-108 91,-126 64,-144\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"64\" y=\"-122.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.2131,-126C4.2712,-126 16.7131,-126 29.7242,-126\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"36.9552,-126 29.9552,-129.1501 33.4552,-126 29.9552,-126.0001 29.9552,-126.0001 29.9552,-126.0001 33.4552,-126 29.9551,-122.8501 36.9552,-126 36.9552,-126\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"145\" cy=\"-126\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"145\" y=\"-122.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M82.3802,-120.2392C93.6671,-119.1141 108.2605,-118.9488 120.5195,-119.7431\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"127.8003,-120.3617 120.5587,-122.9077 124.3129,-120.0653 120.8254,-119.769 120.8254,-119.769 120.8254,-119.769 124.3129,-120.0653 121.0921,-116.6303 127.8003,-120.3617 127.8003,-120.3617\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"145\" cy=\"-72\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"145\" y=\"-68.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->3 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M77.7405,-116.8396C90.3786,-108.4142 109.3093,-95.7938 123.8702,-86.0865\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"129.8121,-82.1253 125.735,-88.6292 126.8999,-84.0668 123.9877,-86.0082 123.9877,-86.0082 123.9877,-86.0082 126.8999,-84.0668 122.2404,-83.3873 129.8121,-82.1253 129.8121,-82.1253\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M127.8003,-131.6383C116.6491,-132.8423 101.9263,-133.0683 89.4339,-132.3165\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"82.3802,-131.7608 89.606,-129.1704 85.8693,-132.0357 89.3585,-132.3106 89.3585,-132.3106 89.3585,-132.3106 85.8693,-132.0357 89.1111,-135.4509 82.3802,-131.7608 82.3802,-131.7608\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"226,-144 199,-126 226,-108 253,-126 226,-144\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"226\" y=\"-122.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->2 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M162.178,-120.364C173.2806,-119.1636 187.9303,-118.9333 200.3937,-119.6732\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"207.436,-120.221 200.2128,-122.8186 203.9466,-119.9495 200.4571,-119.6781 200.4571,-119.6781 200.4571,-119.6781 203.9466,-119.9495 200.7014,-116.5375 207.436,-120.221 207.436,-120.221\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3->2 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>3->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M160.2355,-82.157C173.2706,-90.847 192.1193,-103.4129 206.2992,-112.8661\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"212.4481,-116.9654 204.8764,-115.7034 209.5359,-115.0239 206.6238,-113.0825 206.6238,-113.0825 206.6238,-113.0825 209.5359,-115.0239 208.3711,-110.4615 212.4481,-116.9654 212.4481,-116.9654\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"226\" cy=\"-72\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"226\" y=\"-68.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->4 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>3->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M163.3802,-72C174.4352,-72 188.6622,-72 200.7609,-72\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"207.9716,-72 200.9716,-75.1501 204.4716,-72 200.9716,-72.0001 200.9716,-72.0001 200.9716,-72.0001 204.4716,-72 200.9716,-68.8501 207.9716,-72 207.9716,-72\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"226,-36 199,-18 226,0 253,-18 226,-36\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"226\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->6 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>3->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M160.2355,-61.843C173.2706,-53.153 192.1193,-40.5871 206.2992,-31.1339\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"212.4481,-27.0346 208.3711,-33.5385 209.5359,-28.9761 206.6238,-30.9175 206.6238,-30.9175 206.6238,-30.9175 209.5359,-28.9761 204.8764,-28.2966 212.4481,-27.0346 212.4481,-27.0346\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M207.436,-131.779C196.1581,-132.8893 181.6301,-133.0474 169.4264,-132.2534\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"162.178,-131.636 169.4201,-129.0915 165.6654,-131.9331 169.1528,-132.2302 169.1528,-132.2302 169.1528,-132.2302 165.6654,-131.9331 168.8854,-135.3688 162.178,-131.636 162.178,-131.636\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"460,-90 433,-72 460,-54 487,-72 460,-90\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"460\" y=\"-68.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->5 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M246.3566,-121.3023C288.5563,-111.5639 385.5805,-89.1737 432.9661,-78.2386\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"439.8571,-76.6484 433.7447,-81.2918 436.4467,-77.4354 433.0363,-78.2225 433.0363,-78.2225 433.0363,-78.2225 436.4467,-77.4354 432.328,-75.1531 439.8571,-76.6484 439.8571,-76.6484\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"307\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"307\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->7 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>6->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M244.3802,-12.2392C255.6671,-11.1141 270.2605,-10.9488 282.5195,-11.7431\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"289.8003,-12.3617 282.5587,-14.9077 286.3129,-12.0653 282.8254,-11.769 282.8254,-11.769 282.8254,-11.769 286.3129,-12.0653 283.0921,-8.6303 289.8003,-12.3617 289.8003,-12.3617\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 7->6 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>7->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M289.8003,-23.6383C278.6491,-24.8423 263.9263,-25.0683 251.4339,-24.3165\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"244.3802,-23.7608 251.606,-21.1704 247.8693,-24.0357 251.3585,-24.3106 251.3585,-24.3106 251.3585,-24.3106 247.8693,-24.0357 251.1111,-27.4509 244.3802,-23.7608 244.3802,-23.7608\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"379\" cy=\"-49\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"379\" y=\"-45.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->8 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>7->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M323.6992,-25.1899C333.2409,-29.2982 345.3509,-34.5122 355.8046,-39.0131\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"362.3913,-41.849 354.7162,-41.974 359.1766,-40.4649 355.9619,-39.0808 355.9619,-39.0808 355.9619,-39.0808 359.1766,-40.4649 357.2077,-36.1876 362.3913,-41.849 362.3913,-41.849\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8->5 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>8->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M396.5758,-53.9907C407.5442,-57.1052 421.8575,-61.1694 434.1105,-64.6486\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"441.0459,-66.618 433.4516,-67.736 437.679,-65.6619 434.3121,-64.7058 434.3121,-64.7058 434.3121,-64.7058 437.679,-65.6619 435.1725,-61.6756 441.0459,-66.618 441.0459,-66.618\"/>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"execution_count": 5,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"spot.set_state_player(game, 4, False)\n",
|
|
"game.show('.g')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Solving a game - The \"old\" way\n",
|
|
"\n",
|
|
"Solving a game is done my calling `solve_safety_game()` or `solve_parity_game()`. This will attach two additional vectors into the game automaton: one vector stores the winner of each state, and one vector stores (memory-less) strategy for each state, i.e., the transition that should always be taken by the owner of this state in order to win. \n",
|
|
"\n",
|
|
"The return value of those function is simply the winner for the initial state."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"True"
|
|
]
|
|
},
|
|
"execution_count": 6,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"spot.solve_safety_game(game)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Calling the `highlight_strategy()` function can be used to decorate the `game` automaton using the winning regions and strategies. Below, green represent the winning region/strategy for player 1 and red those for player 0."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"495pt\" height=\"190pt\"\n",
|
|
" viewBox=\"0.00 0.00 495.00 190.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.0 1.0) rotate(0) translate(4 186)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-186 491,-186 491,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"240.5\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"232.5\" y=\"-151.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"64,-144 37,-126 64,-108 91,-126 64,-144\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"64\" y=\"-122.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.2131,-126C4.2712,-126 16.7131,-126 29.7242,-126\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"36.9552,-126 29.9552,-129.1501 33.4552,-126 29.9552,-126.0001 29.9552,-126.0001 29.9552,-126.0001 33.4552,-126 29.9551,-122.8501 36.9552,-126 36.9552,-126\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"145\" cy=\"-126\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"145\" y=\"-122.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M82.3802,-120.2392C93.6671,-119.1141 108.2605,-118.9488 120.5195,-119.7431\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"127.8003,-120.3617 120.5587,-122.9077 124.2705,-120.5635 120.7831,-120.2672 120.8254,-119.769 120.8678,-119.2708 124.3552,-119.5671 121.0921,-116.6303 127.8003,-120.3617 127.8003,-120.3617\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"145\" cy=\"-72\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"145\" y=\"-68.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->3 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M77.7405,-116.8396C90.3786,-108.4142 109.3093,-95.7938 123.8702,-86.0865\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"129.8121,-82.1253 125.735,-88.6292 126.8999,-84.0668 123.9877,-86.0082 123.9877,-86.0082 123.9877,-86.0082 126.8999,-84.0668 122.2404,-83.3873 129.8121,-82.1253 129.8121,-82.1253\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M127.8003,-131.6383C116.6491,-132.8423 101.9263,-133.0683 89.4339,-132.3165\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"82.3802,-131.7608 89.606,-129.1704 85.8693,-132.0357 89.3585,-132.3106 89.3585,-132.3106 89.3585,-132.3106 85.8693,-132.0357 89.1111,-135.4509 82.3802,-131.7608 82.3802,-131.7608\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"226,-144 199,-126 226,-108 253,-126 226,-144\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"226\" y=\"-122.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->2 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M162.178,-120.364C173.2806,-119.1636 187.9303,-118.9333 200.3937,-119.6732\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"207.436,-120.221 200.2128,-122.8186 203.9466,-119.9495 200.4571,-119.6781 200.4571,-119.6781 200.4571,-119.6781 203.9466,-119.9495 200.7014,-116.5375 207.436,-120.221 207.436,-120.221\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3->2 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>3->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M160.2355,-82.157C173.2706,-90.847 192.1193,-103.4129 206.2992,-112.8661\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"212.4481,-116.9654 204.8764,-115.7034 209.5359,-115.0239 206.6238,-113.0825 206.6238,-113.0825 206.6238,-113.0825 209.5359,-115.0239 208.3711,-110.4615 212.4481,-116.9654 212.4481,-116.9654\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"226\" cy=\"-72\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"226\" y=\"-68.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->4 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>3->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M163.3802,-72C174.4352,-72 188.6622,-72 200.7609,-72\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"207.9716,-72 200.9716,-75.1501 204.4716,-72 200.9716,-72.0001 200.9716,-72.0001 200.9716,-72.0001 204.4716,-72 200.9716,-68.8501 207.9716,-72 207.9716,-72\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"226,-36 199,-18 226,0 253,-18 226,-36\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"226\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->6 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>3->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M160.2355,-61.843C173.2706,-53.153 192.1193,-40.5871 206.2992,-31.1339\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"212.4481,-27.0346 208.3711,-33.5385 209.8133,-29.3921 206.9011,-31.3336 206.6238,-30.9175 206.3464,-30.5015 209.2586,-28.56 204.8764,-28.2966 212.4481,-27.0346 212.4481,-27.0346\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M207.436,-131.779C196.1581,-132.8893 181.6301,-133.0474 169.4264,-132.2534\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"162.178,-131.636 169.4201,-129.0915 165.7078,-131.4349 169.1952,-131.732 169.1528,-132.2302 169.1103,-132.7284 165.6229,-132.4313 168.8854,-135.3688 162.178,-131.636 162.178,-131.636\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"460,-90 433,-72 460,-54 487,-72 460,-90\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"460\" y=\"-68.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->5 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M246.3566,-121.3023C288.5563,-111.5639 385.5805,-89.1737 432.9661,-78.2386\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"439.8571,-76.6484 433.7447,-81.2918 436.4467,-77.4354 433.0363,-78.2225 433.0363,-78.2225 433.0363,-78.2225 436.4467,-77.4354 432.328,-75.1531 439.8571,-76.6484 439.8571,-76.6484\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"307\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"307\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->7 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>6->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M244.3802,-12.2392C255.6671,-11.1141 270.2605,-10.9488 282.5195,-11.7431\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"289.8003,-12.3617 282.5587,-14.9077 286.3129,-12.0653 282.8254,-11.769 282.8254,-11.769 282.8254,-11.769 286.3129,-12.0653 283.0921,-8.6303 289.8003,-12.3617 289.8003,-12.3617\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 7->6 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>7->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M289.8003,-23.6383C278.6491,-24.8423 263.9263,-25.0683 251.4339,-24.3165\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"244.3802,-23.7608 251.606,-21.1704 247.8693,-24.0357 251.3585,-24.3106 251.3585,-24.3106 251.3585,-24.3106 247.8693,-24.0357 251.1111,-27.4509 244.3802,-23.7608 244.3802,-23.7608\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"379\" cy=\"-49\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"379\" y=\"-45.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->8 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>7->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M323.6992,-25.1899C333.2409,-29.2982 345.3509,-34.5122 355.8046,-39.0131\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"362.3913,-41.849 354.7162,-41.974 358.9789,-40.9242 355.7642,-39.54 355.9619,-39.0808 356.1597,-38.6215 359.3744,-40.0057 357.2077,-36.1876 362.3913,-41.849 362.3913,-41.849\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8->5 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>8->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M396.5758,-53.9907C407.5442,-57.1052 421.8575,-61.1694 434.1105,-64.6486\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"441.0459,-66.618 433.4516,-67.736 437.5424,-66.1429 434.1755,-65.1868 434.3121,-64.7058 434.4486,-64.2248 437.8155,-65.1809 435.1725,-61.6756 441.0459,-66.618 441.0459,-66.618\"/>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"execution_count": 7,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"spot.highlight_strategy(game)\n",
|
|
"game.show('.g')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Solving a game - The new interface\n",
|
|
"\n",
|
|
"A strategy/control circuit can now be derived more conveniently from a LTL/PSL specification.\n",
|
|
"The process is decomposed in to three steps:\n",
|
|
"- Creating the game\n",
|
|
"- Solving the game\n",
|
|
"- Obtaining the strategy\n",
|
|
"\n",
|
|
"Each of these steps is parametrized by the same options structure called game_info."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"game has 29 states, and 55 edges.\n",
|
|
"output propositions are ('o0',)\n"
|
|
]
|
|
},
|
|
{
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"538pt\" height=\"360pt\"\n",
|
|
" viewBox=\"0.00 0.00 538.00 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.3609 0.3609) rotate(0) translate(4 993.6189)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-993.6189 1486.8756,-993.6189 1486.8756,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"627.4378\" y=\"-975.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"649.4378\" y=\"-975.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"665.4378\" y=\"-975.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"708.4378\" y=\"-975.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"724.4378\" y=\"-975.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & (Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"771.4378\" y=\"-975.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"787.4378\" y=\"-975.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"827.4378\" y=\"-975.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"843.4378\" y=\"-975.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
|
|
"<text text-anchor=\"start\" x=\"683.9378\" y=\"-961.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 4]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 9 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>9</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-799.6189\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-795.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">9</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->9 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-799.6189C4.178,-799.6189 17.9448,-799.6189 30.9241,-799.6189\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-799.6189 30.9808,-802.769 34.4807,-799.619 30.9807,-799.619 30.9807,-799.619 30.9807,-799.619 34.4807,-799.619 30.9807,-796.469 37.9807,-799.6189 37.9807,-799.6189\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 25 -->\n",
|
|
"<g id=\"node26\" class=\"node\">\n",
|
|
"<title>25</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"190.3322,-727.6189 160.1669,-709.6189 190.3322,-691.6189 220.4975,-709.6189 190.3322,-727.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"190.3322\" y=\"-705.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">25</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->25 -->\n",
|
|
"<g id=\"edge28\" class=\"edge\">\n",
|
|
"<title>9->25</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M71.1485,-789.4697C95.2873,-773.2972 142.5223,-741.6506 169.7184,-723.4298\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"175.8506,-719.3213 171.7885,-725.8345 172.9429,-721.2694 170.0352,-723.2176 170.0352,-723.2176 170.0352,-723.2176 172.9429,-721.2694 168.2818,-720.6006 175.8506,-719.3213 175.8506,-719.3213\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-793.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"109\" y=\"-778.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 26 -->\n",
|
|
"<g id=\"node27\" class=\"node\">\n",
|
|
"<title>26</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"268.9966,-882.6189 238.8313,-864.6189 268.9966,-846.6189 299.1619,-864.6189 268.9966,-882.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"268.9966\" y=\"-860.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">26</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->26 -->\n",
|
|
"<g id=\"edge29\" class=\"edge\">\n",
|
|
"<title>9->26</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.4304,-804.9381C110.5884,-816.2776 197.8088,-842.8946 242.1289,-856.4197\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"248.8594,-858.4737 241.2448,-859.4433 245.5119,-857.4521 242.1643,-856.4304 242.1643,-856.4304 242.1643,-856.4304 245.5119,-857.4521 243.0837,-853.4176 248.8594,-858.4737 248.8594,-858.4737\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"94\" y=\"-843.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"109\" y=\"-828.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 27 -->\n",
|
|
"<g id=\"node28\" class=\"node\">\n",
|
|
"<title>27</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"401.6609,-542.6189 371.4956,-524.6189 401.6609,-506.6189 431.8262,-524.6189 401.6609,-542.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"401.6609\" y=\"-520.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">27</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->27 -->\n",
|
|
"<g id=\"edge30\" class=\"edge\">\n",
|
|
"<title>9->27</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M63.8562,-783.416C78.8625,-753.9169 114.2247,-690.9591 160,-652.6189 229.4122,-594.4812 329.5194,-551.9284 376.067,-534.0047\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"382.8007,-531.4403 377.3801,-536.8754 379.5299,-532.686 376.259,-533.9316 376.259,-533.9316 376.259,-533.9316 379.5299,-532.686 375.1379,-530.9879 382.8007,-531.4403 382.8007,-531.4403\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"167.3322\" y=\"-671.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"182.3322\" y=\"-656.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 28 -->\n",
|
|
"<g id=\"node29\" class=\"node\">\n",
|
|
"<title>28</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"558.9897,-949.6189 528.8244,-931.6189 558.9897,-913.6189 589.155,-931.6189 558.9897,-949.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"558.9897\" y=\"-927.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">28</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->28 -->\n",
|
|
"<g id=\"edge31\" class=\"edge\">\n",
|
|
"<title>9->28</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M63.3412,-816.1013C69.6055,-828.8227 79.5662,-846.2773 92,-858.6189 128.1725,-894.5233 139.3658,-917.6189 190.3322,-917.6189 190.3322,-917.6189 190.3322,-917.6189 401.6609,-917.6189 445.3261,-917.6189 495.5408,-923.0354 527.2634,-927.1303\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"534.5235,-928.0861 527.1721,-930.2953 531.0534,-927.6292 527.5834,-927.1723 527.5834,-927.1723 527.5834,-927.1723 531.0534,-927.6292 527.9946,-924.0492 534.5235,-928.0861 534.5235,-928.0861\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"247.4966\" y=\"-936.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"260.9966\" y=\"-921.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1104.6507\" cy=\"-757.6189\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1104.6507\" y=\"-753.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 10 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>10</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"1238.9828,-598.6189 1208.8175,-580.6189 1238.9828,-562.6189 1269.1481,-580.6189 1238.9828,-598.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1238.9828\" y=\"-576.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">10</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->10 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->10</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1117.42,-744.7743C1134.9668,-726.791 1167.0399,-692.7032 1190.6507,-660.6189 1204.9999,-641.12 1219.0398,-617.1768 1228.2572,-600.5924\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1231.6624,-594.4046 1231.0472,-602.0561 1229.9749,-597.471 1228.2875,-600.5373 1228.2875,-600.5373 1228.2875,-600.5373 1229.9749,-597.471 1225.5278,-599.0186 1231.6624,-594.4046 1231.6624,-594.4046\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-738.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-723.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 11 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>11</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"1238.9828,-775.6189 1208.8175,-757.6189 1238.9828,-739.6189 1269.1481,-757.6189 1238.9828,-775.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1238.9828\" y=\"-753.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">11</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->11 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->11</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1122.7673,-757.6189C1142.8637,-757.6189 1175.8415,-757.6189 1201.5437,-757.6189\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1208.5834,-757.6189 1201.5835,-760.769 1205.0834,-757.619 1201.5834,-757.619 1201.5834,-757.619 1201.5834,-757.619 1205.0834,-757.619 1201.5834,-754.469 1208.5834,-757.6189 1208.5834,-757.6189\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1159.1507\" y=\"-776.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-761.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1343.7631\" cy=\"-626.6189\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1343.7631\" y=\"-622.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 10->1 -->\n",
|
|
"<g id=\"edge32\" class=\"edge\">\n",
|
|
"<title>10->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1263.0028,-576.9337C1275.8289,-576.0314 1291.5558,-576.686 1304.315,-582.6189 1314.7459,-587.4692 1323.6071,-596.5114 1330.2725,-605.1431\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1334.5286,-610.9967 1327.8643,-607.1875 1332.4704,-608.1659 1330.4121,-605.335 1330.4121,-605.335 1330.4121,-605.335 1332.4704,-608.1659 1332.9598,-603.4826 1334.5286,-610.9967 1334.5286,-610.9967\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1287.315\" y=\"-601.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1287.815\" y=\"-586.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 11->0 -->\n",
|
|
"<g id=\"edge33\" class=\"edge\">\n",
|
|
"<title>11->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1226.4545,-768.5274C1217.2425,-775.7898 1204.0432,-784.693 1190.6507,-788.6189 1169.3258,-794.8701 1161.4837,-796.3526 1140.6507,-788.6189 1133.6916,-786.0355 1127.1761,-781.4371 1121.6525,-776.5598\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1116.4798,-771.6538 1123.7265,-774.1853 1119.0193,-774.0623 1121.5588,-776.4709 1121.5588,-776.4709 1121.5588,-776.4709 1119.0193,-774.0623 1119.3911,-778.7564 1116.4798,-771.6538 1116.4798,-771.6538\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.1507\" y=\"-812.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-797.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 12 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>12</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"1452.5434,-697.6189 1422.3781,-679.6189 1452.5434,-661.6189 1482.7087,-679.6189 1452.5434,-697.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1452.5434\" y=\"-675.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">12</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->12 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->12</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1357.1525,-639.123C1364.419,-645.3757 1373.8184,-652.6492 1383.2112,-657.6189 1395.7373,-664.2464 1410.6041,-669.291 1423.3526,-672.8668\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1430.1889,-674.703 1422.6113,-675.9293 1426.8087,-673.7951 1423.4285,-672.8871 1423.4285,-672.8871 1423.4285,-672.8871 1426.8087,-673.7951 1424.2457,-669.8449 1430.1889,-674.703 1430.1889,-674.703\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1385.7112\" y=\"-684.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1385.7112\" y=\"-669.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 13 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>13</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"999.3185,-745.6189 969.1532,-727.6189 999.3185,-709.6189 1029.4838,-727.6189 999.3185,-745.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"999.3185\" y=\"-723.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">13</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->13 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1326.0923,-623.0926C1290.1334,-616.6714 1206.2979,-605.573 1140.6507,-626.6189 1088.854,-643.2244 1039.8901,-686.5642 1015.4772,-710.7259\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1010.3688,-715.859 1013.0739,-708.6753 1012.8377,-713.3781 1015.3066,-710.8973 1015.3066,-710.8973 1015.3066,-710.8973 1012.8377,-713.3781 1017.5394,-713.1193 1010.3688,-715.859 1010.3688,-715.859\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1159.1507\" y=\"-645.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-630.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 12->1 -->\n",
|
|
"<g id=\"edge34\" class=\"edge\">\n",
|
|
"<title>12->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1445.2824,-665.7633C1437.2805,-652.1568 1423.0108,-632.2267 1404.2112,-623.6189 1393.1612,-618.5594 1379.7567,-618.6842 1368.381,-620.3415\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1361.2436,-621.6127 1367.5828,-617.284 1364.6894,-620.9989 1368.1352,-620.3852 1368.1352,-620.3852 1368.1352,-620.3852 1364.6894,-620.9989 1368.6876,-623.4864 1361.2436,-621.6127 1361.2436,-621.6127\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1383.2112\" y=\"-642.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1385.7112\" y=\"-627.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 13->0 -->\n",
|
|
"<g id=\"edge35\" class=\"edge\">\n",
|
|
"<title>13->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1019.8776,-733.4744C1037.2138,-738.412 1062.0555,-745.4873 1080.3683,-750.703\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1087.283,-752.6724 1079.6879,-753.7844 1083.9169,-751.7136 1080.5507,-750.7549 1080.5507,-750.7549 1080.5507,-750.7549 1083.9169,-751.7136 1081.4136,-747.7253 1087.283,-752.6724 1087.283,-752.6724\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1047.6507\" y=\"-765.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1050.1507\" y=\"-750.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1104.6507\" cy=\"-509.6189\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1104.6507\" y=\"-505.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 14 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>14</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"1238.9828,-184.6189 1208.8175,-166.6189 1238.9828,-148.6189 1269.1481,-166.6189 1238.9828,-184.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1238.9828\" y=\"-162.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">14</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->14 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1110.8379,-492.4646C1116.7845,-477.7274 1126.8972,-456.5553 1140.6507,-441.6189 1158.5224,-422.2101 1176.739,-432.0368 1190.6507,-409.6189 1209.9826,-378.4665 1200.0085,-281.2491 1208.6507,-245.6189 1213.5758,-225.3136 1222.39,-203.1877 1229.2522,-187.5308\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1232.2467,-180.822 1232.2699,-188.4981 1230.8201,-184.0181 1229.3934,-187.2141 1229.3934,-187.2141 1229.3934,-187.2141 1230.8201,-184.0181 1226.517,-185.9302 1232.2467,-180.822 1232.2467,-180.822\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1159.1507\" y=\"-460.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-445.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 16 -->\n",
|
|
"<g id=\"node11\" class=\"node\">\n",
|
|
"<title>16</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"1238.9828,-502.6189 1208.8175,-484.6189 1238.9828,-466.6189 1269.1481,-484.6189 1238.9828,-502.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1238.9828\" y=\"-480.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">16</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->16 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->16</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1122.1669,-514.3592C1139.8219,-518.3274 1167.6707,-522.3552 1190.6507,-515.6189 1201.4275,-512.4598 1212.0792,-506.0778 1220.6288,-499.9212\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1226.4545,-495.5274 1222.7626,-502.2574 1223.6602,-497.6349 1220.8658,-499.7425 1220.8658,-499.7425 1220.8658,-499.7425 1223.6602,-497.6349 1218.969,-497.2275 1226.4545,-495.5274 1226.4545,-495.5274\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-537.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-522.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 15 -->\n",
|
|
"<g id=\"node30\" class=\"node\">\n",
|
|
"<title>15</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1343.7631\" cy=\"-166.6189\" rx=\"21.3963\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1343.7631\" y=\"-162.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">15</text>\n",
|
|
"</g>\n",
|
|
"<!-- 14->15 -->\n",
|
|
"<g id=\"edge36\" class=\"edge\">\n",
|
|
"<title>14->15</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1252.2734,-156.082C1265.3197,-147.0477 1285.887,-136.2713 1304.315,-141.6189 1310.4715,-143.4055 1316.5879,-146.473 1322.1017,-149.8599\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1328.264,-153.925 1320.6863,-152.6998 1325.3424,-151.9977 1322.4208,-150.0704 1322.4208,-150.0704 1322.4208,-150.0704 1325.3424,-151.9977 1324.1554,-147.441 1328.264,-153.925 1328.264,-153.925\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1291.315\" y=\"-160.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1287.815\" y=\"-145.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"</g>\n",
|
|
"<!-- 16->2 -->\n",
|
|
"<g id=\"edge38\" class=\"edge\">\n",
|
|
"<title>16->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1216.8354,-479.5745C1196.4569,-475.9394 1165.691,-473.0274 1140.6507,-481.6189 1134.2707,-483.8079 1128.1504,-487.6406 1122.8235,-491.7806\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1117.3798,-496.3303 1120.7308,-489.4243 1120.0654,-494.0858 1122.7509,-491.8412 1122.7509,-491.8412 1122.7509,-491.8412 1120.0654,-494.0858 1124.771,-494.2582 1117.3798,-496.3303 1117.3798,-496.3303\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1161.1507\" y=\"-500.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-485.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node12\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"864.9863\" cy=\"-825.6189\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"864.9863\" y=\"-821.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->13 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>3->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M882.9304,-822.1403C901.4307,-817.8649 930.4017,-809.1853 950.9863,-793.6189 967.0966,-781.436 980.2236,-762.42 988.71,-747.9229\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"992.2766,-741.6209 991.5702,-749.2645 990.5527,-744.6669 988.8288,-747.713 988.8288,-747.713 988.8288,-747.713 990.5527,-744.6669 986.0873,-746.1614 992.2766,-741.6209 992.2766,-741.6209\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"919.4863\" y=\"-835.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"917.9863\" y=\"-820.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 17 -->\n",
|
|
"<g id=\"node13\" class=\"node\">\n",
|
|
"<title>17</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"759.6541,-795.6189 729.4888,-777.6189 759.6541,-759.6189 789.8194,-777.6189 759.6541,-795.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"759.6541\" y=\"-773.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">17</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->17 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>3->17</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M846.9569,-822.9632C835.4497,-820.8439 820.4151,-817.2732 807.9863,-811.6189 797.364,-806.7865 786.639,-799.5357 777.9997,-792.9698\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"772.3789,-788.5718 779.833,-790.4046 775.1353,-790.7286 777.8918,-792.8854 777.8918,-792.8854 777.8918,-792.8854 775.1353,-790.7286 775.9507,-795.3663 772.3789,-788.5718 772.3789,-788.5718\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"810.4863\" y=\"-836.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"810.4863\" y=\"-821.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 17->2 -->\n",
|
|
"<g id=\"edge39\" class=\"edge\">\n",
|
|
"<title>17->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M781.6796,-772.5392C825.8079,-762.0713 923.204,-737.4194 950.9863,-717.6189 969.569,-704.375 1055.5508,-580.9834 1090.1606,-530.7465\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1094.3102,-524.7164 1092.9369,-532.2687 1092.326,-527.5997 1090.3419,-530.483 1090.3419,-530.483 1090.3419,-530.483 1092.326,-527.5997 1087.7469,-528.6973 1094.3102,-524.7164 1094.3102,-524.7164\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"917.4863\" y=\"-757.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"917.9863\" y=\"-742.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 17->3 -->\n",
|
|
"<g id=\"edge40\" class=\"edge\">\n",
|
|
"<title>17->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M781.7383,-772.7484C795.9662,-770.7492 814.4521,-770.3518 828.9863,-777.6189 839.6862,-782.9689 848.031,-793.1787 853.9803,-802.8114\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"857.5446,-809.0013 851.3217,-804.507 855.798,-805.9682 854.0515,-802.9351 854.0515,-802.9351 854.0515,-802.9351 855.798,-805.9682 856.7812,-801.3632 857.5446,-809.0013 857.5446,-809.0013\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"807.9863\" y=\"-796.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"810.4863\" y=\"-781.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node14\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1104.6507\" cy=\"-330.6189\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1104.6507\" y=\"-326.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->14 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>4->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1105.7736,-312.5218C1108.6272,-273.2423 1117.6321,-182.2042 1140.6507,-163.6189 1160.9155,-147.2571 1191.9299,-151.4529 1213.6962,-157.5203\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1220.4129,-159.5324 1212.8033,-160.5411 1217.0601,-158.528 1213.7073,-157.5236 1213.7073,-157.5236 1213.7073,-157.5236 1217.0601,-158.528 1214.6112,-154.5061 1220.4129,-159.5324 1220.4129,-159.5324\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1159.1507\" y=\"-182.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-167.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 18 -->\n",
|
|
"<g id=\"node15\" class=\"node\">\n",
|
|
"<title>18</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"1238.9828,-290.6189 1208.8175,-272.6189 1238.9828,-254.6189 1269.1481,-272.6189 1238.9828,-290.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1238.9828\" y=\"-268.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">18</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->18 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>4->18</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1110.3889,-313.2499C1115.8543,-299.79 1125.5228,-282.0575 1140.6507,-273.6189 1161.8567,-261.7898 1189.8521,-262.7962 1210.5468,-266.027\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1217.5392,-267.2452 1210.1024,-269.147 1214.0912,-266.6445 1210.6431,-266.0437 1210.6431,-266.0437 1210.6431,-266.0437 1214.0912,-266.6445 1211.1837,-262.9405 1217.5392,-267.2452 1217.5392,-267.2452\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-292.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-277.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 18->4 -->\n",
|
|
"<g id=\"edge41\" class=\"edge\">\n",
|
|
"<title>18->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1225.1753,-282.8834C1215.8055,-289.4878 1202.9325,-297.878 1190.6507,-303.6189 1170.8032,-312.8963 1146.9436,-320.1015 1129.3961,-324.7263\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1122.2923,-326.549 1128.2898,-321.7581 1125.6825,-325.6791 1129.0727,-324.8092 1129.0727,-324.8092 1129.0727,-324.8092 1125.6825,-325.6791 1129.8555,-327.8604 1122.2923,-326.549 1122.2923,-326.549\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1161.1507\" y=\"-339.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-324.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node16\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1104.6507\" cy=\"-166.6189\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1104.6507\" y=\"-162.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->14 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>5->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1111.2511,-149.6822C1117.0053,-137.4929 1126.6453,-121.9571 1140.6507,-114.6189 1160.3346,-104.3054 1170.2788,-105.7412 1190.6507,-114.6189 1205.853,-121.2438 1218.4261,-135.2688 1226.9344,-147.0853\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1231.0056,-153.0124 1224.4458,-149.0259 1229.0239,-150.1274 1227.0423,-147.2424 1227.0423,-147.2424 1227.0423,-147.2424 1229.0239,-150.1274 1229.6388,-145.4589 1231.0056,-153.0124 1231.0056,-153.0124\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1144.1507\" y=\"-133.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-118.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->16 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>5->16</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1107.1899,-184.7385C1113.5511,-229.2018 1130.3934,-341.0748 1140.6507,-354.6189 1155.6505,-374.4252 1173.3681,-361.7697 1190.6507,-379.6189 1213.1687,-402.8753 1226.4991,-438.514 1233.2796,-461.696\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1235.1765,-468.463 1230.2539,-462.5731 1234.2318,-465.0929 1233.287,-461.7228 1233.287,-461.7228 1233.287,-461.7228 1234.2318,-465.0929 1236.3201,-460.8726 1235.1765,-468.463 1235.1765,-468.463\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1142.6507\" y=\"-398.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-383.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->18 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>5->18</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1117.9867,-178.8163C1124.6306,-184.7063 1132.8859,-191.7511 1140.6507,-197.6189 1161.8931,-213.6719 1169.4444,-214.5181 1190.6507,-230.6189 1201.3554,-238.7465 1212.7296,-248.5653 1221.753,-256.665\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1227.0406,-261.4555 1219.738,-259.09 1224.4468,-259.1056 1221.853,-256.7556 1221.853,-256.7556 1221.853,-256.7556 1224.4468,-259.1056 1223.968,-254.4212 1227.0406,-261.4555 1227.0406,-261.4555\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1142.6507\" y=\"-249.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-234.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 19 -->\n",
|
|
"<g id=\"node17\" class=\"node\">\n",
|
|
"<title>19</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"1238.9828,-52.6189 1208.8175,-34.6189 1238.9828,-16.6189 1269.1481,-34.6189 1238.9828,-52.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1238.9828\" y=\"-30.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">19</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->19 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>5->19</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1106.0042,-148.638C1109.2496,-111.006 1118.8782,-25.9886 1140.6507,-8.6189 1163.5163,9.6228 1197.9617,-6.6286 1219.4276,-20.3722\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1225.3814,-24.3334 1217.8085,-23.0785 1222.4674,-22.3946 1219.5534,-20.4559 1219.5534,-20.4559 1219.5534,-20.4559 1222.4674,-22.3946 1221.2982,-17.8333 1225.3814,-24.3334 1225.3814,-24.3334\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1140.6507\" y=\"-27.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-12.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 19->5 -->\n",
|
|
"<g id=\"edge42\" class=\"edge\">\n",
|
|
"<title>19->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1214.9273,-38.5108C1192.9266,-43.2447 1160.8254,-53.277 1140.6507,-73.6189 1122.3287,-92.0926 1113.1121,-120.9257 1108.6244,-141.5893\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1107.2271,-148.5272 1105.5212,-141.043 1107.9181,-145.0961 1108.6092,-141.665 1108.6092,-141.665 1108.6092,-141.665 1107.9181,-145.0961 1111.6972,-142.2869 1107.2271,-148.5272 1107.2271,-148.5272\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1161.1507\" y=\"-92.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-77.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node18\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"625.3219\" cy=\"-501.6189\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"625.3219\" y=\"-497.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->10 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>6->10</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M638.4633,-513.92C644.9308,-519.4058 653.0938,-525.5375 661.3219,-529.6189 721.746,-559.5914 741.2337,-558.9486 807.9863,-568.6189 883.4503,-579.5512 1111.7714,-580.6832 1201.8579,-580.6897\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1208.8669,-580.6879 1201.8678,-583.8398 1205.3669,-580.6888 1201.8669,-580.6898 1201.8669,-580.6898 1201.8669,-580.6898 1205.3669,-580.6888 1201.8661,-577.5398 1208.8669,-580.6879 1208.8669,-580.6879\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"902.9863\" y=\"-595.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"917.9863\" y=\"-580.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->11 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>6->11</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M633.1604,-518.3766C639.3183,-529.8329 648.9224,-544.5328 661.3219,-553.6189 686.8356,-572.315 698.7953,-566.3353 729.3219,-574.6189 780.2035,-588.426 1147.4523,-655.3951 1190.6507,-685.6189 1208.7842,-698.306 1222.0289,-720.1632 1230.0202,-736.4758\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1233.1224,-743.0846 1227.2964,-738.0864 1231.6351,-739.9163 1230.1479,-736.7479 1230.1479,-736.7479 1230.1479,-736.7479 1231.6351,-739.9163 1232.9994,-735.4094 1233.1224,-743.0846 1233.1224,-743.0846\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"904.4863\" y=\"-639.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"917.9863\" y=\"-624.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 20 -->\n",
|
|
"<g id=\"node19\" class=\"node\">\n",
|
|
"<title>20</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"759.6541,-499.6189 729.4888,-481.6189 759.6541,-463.6189 789.8194,-481.6189 759.6541,-499.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"759.6541\" y=\"-477.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">20</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->20 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>6->20</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M643.1602,-498.9631C664.8185,-495.7385 701.7277,-490.2433 728.2003,-486.3019\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"735.3689,-485.2346 728.9091,-489.3812 731.907,-485.7501 728.4452,-486.2655 728.4452,-486.2655 728.4452,-486.2655 731.907,-485.7501 727.9813,-483.1499 735.3689,-485.2346 735.3689,-485.2346\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"661.3219\" y=\"-514.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"678.3219\" y=\"-499.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 21 -->\n",
|
|
"<g id=\"node20\" class=\"node\">\n",
|
|
"<title>21</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"759.6541,-413.6189 729.4888,-395.6189 759.6541,-377.6189 789.8194,-395.6189 759.6541,-413.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"759.6541\" y=\"-391.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">21</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->21 -->\n",
|
|
"<g id=\"edge19\" class=\"edge\">\n",
|
|
"<title>6->21</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M634.9642,-485.914C641.5359,-476.0911 650.9114,-463.6365 661.3219,-454.6189 680.5733,-437.9433 689.4817,-439.7223 711.3219,-426.6189 720.4498,-421.1425 730.3719,-414.8412 738.8377,-409.3559\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"744.9903,-405.3475 740.8447,-411.8079 742.0578,-407.258 739.1252,-409.1686 739.1252,-409.1686 739.1252,-409.1686 742.0578,-407.258 737.4057,-406.5293 744.9903,-405.3475 744.9903,-405.3475\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"663.3219\" y=\"-473.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"678.3219\" y=\"-458.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 20->4 -->\n",
|
|
"<g id=\"edge43\" class=\"edge\">\n",
|
|
"<title>20->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M772.939,-471.1939C797.1383,-452.6452 850.5694,-413.6971 900.9863,-390.6189 933.4369,-375.7648 1033.3231,-349.053 1080.0604,-336.9209\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1087.0866,-335.103 1081.0988,-339.906 1083.6982,-335.9797 1080.3098,-336.8564 1080.3098,-336.8564 1080.3098,-336.8564 1083.6982,-335.9797 1079.5207,-333.8068 1087.0866,-335.103 1087.0866,-335.103\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"915.4863\" y=\"-409.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"917.9863\" y=\"-394.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node21\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"864.9863\" cy=\"-488.6189\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"864.9863\" y=\"-484.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
|
|
"</g>\n",
|
|
"<!-- 20->7 -->\n",
|
|
"<g id=\"edge44\" class=\"edge\">\n",
|
|
"<title>20->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M789.0548,-481.0656C801.4085,-481.0864 815.9176,-481.4424 828.9863,-482.6189 832.6011,-482.9443 836.4007,-483.4245 840.1213,-483.974\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"847.1096,-485.0933 839.6994,-487.0965 843.6536,-484.5397 840.1977,-483.9861 840.1977,-483.9861 840.1977,-483.9861 843.6536,-484.5397 840.6959,-480.8758 847.1096,-485.0933 847.1096,-485.0933\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"809.9863\" y=\"-501.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"810.4863\" y=\"-486.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 21->4 -->\n",
|
|
"<g id=\"edge45\" class=\"edge\">\n",
|
|
"<title>21->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M774.555,-386.0733C799.5064,-370.7507 851.8497,-341.3956 900.9863,-331.6189 964.2213,-319.037 1040.702,-323.8715 1079.4772,-327.6949\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1086.7144,-328.4407 1079.4283,-330.8565 1083.2328,-328.0819 1079.7512,-327.7231 1079.7512,-327.7231 1079.7512,-327.7231 1083.2328,-328.0819 1080.0742,-324.5897 1086.7144,-328.4407 1086.7144,-328.4407\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"915.4863\" y=\"-350.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"917.9863\" y=\"-335.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 21->6 -->\n",
|
|
"<g id=\"edge46\" class=\"edge\">\n",
|
|
"<title>21->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M740.6448,-388.7245C719.2402,-382.2773 684.4378,-375.9095 661.3219,-392.6189 647.5492,-402.5745 636.1497,-447.6418 630.0739,-476.6195\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"628.6457,-483.6089 626.961,-476.1199 629.3465,-480.1797 630.0472,-476.7506 630.0472,-476.7506 630.0472,-476.7506 629.3465,-480.1797 633.1334,-477.3813 628.6457,-483.6089 628.6457,-483.6089\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"677.8219\" y=\"-411.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"678.3219\" y=\"-396.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->12 -->\n",
|
|
"<g id=\"edge20\" class=\"edge\">\n",
|
|
"<title>7->12</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M865.5143,-507.0206C867.699,-577.1077 877.0657,-824.6712 900.9863,-849.6189 931.5379,-881.4824 955.1745,-863.6189 999.3185,-863.6189 999.3185,-863.6189 999.3185,-863.6189 1343.7631,-863.6189 1417.1818,-863.6189 1442.0909,-753.7227 1449.6193,-703.7919\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1450.6455,-696.5994 1452.7751,-703.9742 1450.1511,-700.0643 1449.6567,-703.5292 1449.6567,-703.5292 1449.6567,-703.5292 1450.1511,-700.0643 1446.5383,-703.0842 1450.6455,-696.5994 1450.6455,-696.5994\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1142.6507\" y=\"-882.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1157.6507\" y=\"-867.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->13 -->\n",
|
|
"<g id=\"edge21\" class=\"edge\">\n",
|
|
"<title>7->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M866.701,-506.5777C870.7503,-545.6587 882.0172,-636.8224 900.9863,-660.6189 916.2332,-679.7461 930.5908,-670.1153 950.9863,-683.6189 962.5825,-691.2966 974.1534,-701.7081 983.0652,-710.4758\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"988.2469,-715.6834 981.0765,-712.9432 985.7782,-713.2024 983.3095,-710.7213 983.3095,-710.7213 983.3095,-710.7213 985.7782,-713.2024 985.5424,-708.4995 988.2469,-715.6834 988.2469,-715.6834\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"904.4863\" y=\"-702.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"917.9863\" y=\"-687.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 22 -->\n",
|
|
"<g id=\"node22\" class=\"node\">\n",
|
|
"<title>22</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"999.3185,-454.6189 969.1532,-436.6189 999.3185,-418.6189 1029.4838,-436.6189 999.3185,-454.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"999.3185\" y=\"-432.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">22</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->22 -->\n",
|
|
"<g id=\"edge22\" class=\"edge\">\n",
|
|
"<title>7->22</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M882.9964,-486.005C900.7898,-483.0149 928.5251,-477.2454 950.9863,-467.6189 961.1611,-463.2582 971.603,-456.8476 980.1658,-450.986\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"986.038,-446.8521 982.1274,-453.4574 983.176,-448.8669 980.3141,-450.8816 980.3141,-450.8816 980.3141,-450.8816 983.176,-448.8669 978.5008,-448.3059 986.038,-446.8521 986.038,-446.8521\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"900.9863\" y=\"-500.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"917.9863\" y=\"-485.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 23 -->\n",
|
|
"<g id=\"node23\" class=\"node\">\n",
|
|
"<title>23</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"480.3253,-623.6189 450.16,-605.6189 480.3253,-587.6189 510.4906,-605.6189 480.3253,-623.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"480.3253\" y=\"-601.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">23</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->23 -->\n",
|
|
"<g id=\"edge23\" class=\"edge\">\n",
|
|
"<title>7->23</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M861.8377,-506.4913C857.6518,-524.5286 848.3895,-551.6539 828.9863,-565.6189 730.8955,-636.2172 575.4908,-621.4269 510.4782,-611.1866\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"503.3727,-610.028 510.7885,-608.0457 506.8271,-610.5913 510.2815,-611.1546 510.2815,-611.1546 510.2815,-611.1546 506.8271,-610.5913 509.7745,-614.2635 503.3727,-610.028 503.3727,-610.028\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"663.3219\" y=\"-636.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"678.3219\" y=\"-621.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 22->4 -->\n",
|
|
"<g id=\"edge47\" class=\"edge\">\n",
|
|
"<title>22->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1017.9782,-429.574C1033.1185,-423.111 1054.2415,-412.3096 1068.6507,-397.6189 1080.7288,-385.3049 1089.854,-368.1133 1095.8951,-354.2279\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1098.6125,-347.7129 1098.825,-355.3861 1097.2651,-350.9432 1095.9178,-354.1735 1095.9178,-354.1735 1095.9178,-354.1735 1097.2651,-350.9432 1093.0105,-352.9609 1098.6125,-347.7129 1098.6125,-347.7129\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1049.6507\" y=\"-432.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1050.1507\" y=\"-417.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 22->7 -->\n",
|
|
"<g id=\"edge48\" class=\"edge\">\n",
|
|
"<title>22->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M979.1261,-430.3801C958.2379,-425.157 925.3258,-420.4604 900.9863,-433.6189 888.65,-440.2882 879.8621,-453.2274 874.0584,-464.8806\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"870.9818,-471.5361 871.0597,-463.8603 872.4504,-468.3591 873.919,-465.1821 873.919,-465.1821 873.919,-465.1821 872.4504,-468.3591 876.7783,-466.5038 870.9818,-471.5361 870.9818,-471.5361\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"915.4863\" y=\"-452.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"917.9863\" y=\"-437.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 23->4 -->\n",
|
|
"<g id=\"edge49\" class=\"edge\">\n",
|
|
"<title>23->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M502.0618,-600.2668C554.4356,-587.5118 691.8738,-554.8782 807.9863,-534.6189 871.1462,-523.5988 890.2914,-536.2768 950.9863,-515.6189 1008.1653,-496.1577 1031.0183,-494.8628 1068.6507,-447.6189 1089.982,-420.8394 1098.7223,-381.4316 1102.2711,-355.8939\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1103.1774,-348.7622 1105.4198,-356.1035 1102.7362,-352.2342 1102.2949,-355.7063 1102.2949,-355.7063 1102.2949,-355.7063 1102.7362,-352.2342 1099.17,-355.3092 1103.1774,-348.7622 1103.1774,-348.7622\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"809.9863\" y=\"-553.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"810.4863\" y=\"-538.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 23->6 -->\n",
|
|
"<g id=\"edge50\" class=\"edge\">\n",
|
|
"<title>23->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M485.6664,-590.5966C492.7428,-572.873 506.9255,-543.7793 528.6575,-527.6189 549.6148,-512.0347 579.2783,-505.7876 600.2043,-503.2856\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"607.213,-502.5477 600.5814,-506.4134 603.7323,-502.9142 600.2515,-503.2807 600.2515,-503.2807 600.2515,-503.2807 603.7323,-502.9142 599.9216,-500.148 607.213,-502.5477 607.213,-502.5477\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"548.4897\" y=\"-546.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"550.9897\" y=\"-531.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node24\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"335.3288\" cy=\"-688.6189\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"335.3288\" y=\"-684.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->13 -->\n",
|
|
"<g id=\"edge24\" class=\"edge\">\n",
|
|
"<title>8->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M351.9534,-695.842C357.9724,-698.2541 364.8769,-700.7903 371.3288,-702.6189 418.714,-716.0491 431.0736,-722.6189 480.3253,-722.6189 480.3253,-722.6189 480.3253,-722.6189 818.4863,-722.6189 868.9182,-722.6189 927.2314,-724.5862 963.6961,-726.0527\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"971.1349,-726.3572 964.0119,-729.2182 967.6379,-726.214 964.1408,-726.0709 964.1408,-726.0709 964.1408,-726.0709 967.6379,-726.214 964.2697,-722.9235 971.1349,-726.3572 971.1349,-726.3572\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"664.8219\" y=\"-741.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"678.3219\" y=\"-726.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->17 -->\n",
|
|
"<g id=\"edge25\" class=\"edge\">\n",
|
|
"<title>8->17</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M343.2553,-705.2894C349.3426,-716.1293 358.8271,-729.5232 371.3288,-736.6189 488.796,-803.2915 658.6356,-791.0186 728.1739,-782.2988\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"735.3684,-781.3637 728.8328,-785.3897 731.8976,-781.8149 728.4268,-782.266 728.4268,-782.266 728.4268,-782.266 731.8976,-781.8149 728.0208,-779.1423 735.3684,-781.3637 735.3684,-781.3637\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"535.9897\" y=\"-807.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"550.9897\" y=\"-792.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->23 -->\n",
|
|
"<g id=\"edge26\" class=\"edge\">\n",
|
|
"<title>8->23</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M351.5552,-680.067C370.8814,-669.8024 404.0615,-651.9289 431.9931,-635.6189 441.1,-630.3012 451.0187,-624.2001 459.4875,-618.8944\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"465.6436,-615.0183 461.3984,-621.4137 462.6818,-616.8832 459.72,-618.7481 459.72,-618.7481 459.72,-618.7481 462.6818,-616.8832 458.0416,-616.0825 465.6436,-615.0183 465.6436,-615.0183\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"378.6609\" y=\"-687.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"393.6609\" y=\"-672.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 24 -->\n",
|
|
"<g id=\"node25\" class=\"node\">\n",
|
|
"<title>24</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"480.3253,-457.6189 450.16,-439.6189 480.3253,-421.6189 510.4906,-439.6189 480.3253,-457.6189\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"480.3253\" y=\"-435.9189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">24</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->24 -->\n",
|
|
"<g id=\"edge27\" class=\"edge\">\n",
|
|
"<title>8->24</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M335.8092,-670.3494C337.4338,-622.8748 344.2526,-497.2478 371.3288,-467.6189 389.6033,-447.6214 420.057,-441.0722 444.1358,-439.2698\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"451.3833,-438.8532 444.5756,-442.3998 447.8891,-439.0541 444.3948,-439.255 444.3948,-439.255 444.3948,-439.255 447.8891,-439.0541 444.214,-436.1102 451.3833,-438.8532 451.3833,-438.8532\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"376.6609\" y=\"-486.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"393.6609\" y=\"-471.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 24->5 -->\n",
|
|
"<g id=\"edge51\" class=\"edge\">\n",
|
|
"<title>24->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M483.2281,-423.2588C493.1094,-373.3822 530.2619,-226.6189 625.3219,-226.6189 625.3219,-226.6189 625.3219,-226.6189 999.3185,-226.6189 1033.7526,-226.6189 1067.1978,-202.1097 1086.8523,-184.4204\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1092.0195,-179.638 1089.0218,-186.7046 1089.4508,-182.0154 1086.8821,-184.3928 1086.8821,-184.3928 1086.8821,-184.3928 1089.4508,-182.0154 1084.7425,-182.081 1092.0195,-179.638 1092.0195,-179.638\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"809.9863\" y=\"-245.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"810.4863\" y=\"-230.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 24->8 -->\n",
|
|
"<g id=\"edge52\" class=\"edge\">\n",
|
|
"<title>24->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M467.3993,-450.2547C461.251,-455.9762 454.316,-463.514 449.9931,-471.6189 432.842,-503.7754 451.0854,-520.5757 431.9931,-551.6189 413.6892,-581.3803 391.445,-573.0512 371.3288,-601.6189 357.7307,-620.93 362.5081,-629.8573 353.3288,-651.6189 351.3055,-656.4154 348.9756,-661.4794 346.6774,-666.27\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"343.5952,-672.5822 343.8361,-664.9098 345.1309,-669.4371 346.6667,-666.292 346.6667,-666.292 346.6667,-666.292 345.1309,-669.4371 349.4973,-667.6742 343.5952,-672.5822 343.5952,-672.5822\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"391.1609\" y=\"-620.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"393.6609\" y=\"-605.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 25->8 -->\n",
|
|
"<g id=\"edge53\" class=\"edge\">\n",
|
|
"<title>25->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M214.9289,-706.0565C241.5162,-702.2059 283.661,-696.102 310.3834,-692.2318\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"317.4858,-691.2031 311.0096,-695.324 314.0219,-691.7048 310.558,-692.2066 310.558,-692.2066 310.558,-692.2066 314.0219,-691.7048 310.1065,-689.0891 317.4858,-691.2031 317.4858,-691.2031\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"264.4966\" y=\"-720.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"260.9966\" y=\"-705.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 26->3 -->\n",
|
|
"<g id=\"edge54\" class=\"edge\">\n",
|
|
"<title>26->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M292.8827,-868.6683C319.3818,-872.803 363.4471,-878.6189 401.6609,-878.6189 401.6609,-878.6189 401.6609,-878.6189 759.6541,-878.6189 792.6329,-878.6189 825.8172,-857.6308 845.8887,-842.0696\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"851.4365,-837.6454 847.9277,-844.4727 848.7001,-839.8277 845.9637,-842.0099 845.9637,-842.0099 845.9637,-842.0099 848.7001,-839.8277 843.9997,-839.5471 851.4365,-837.6454 851.4365,-837.6454\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"554.4897\" y=\"-897.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"550.9897\" y=\"-882.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 27->6 -->\n",
|
|
"<g id=\"edge55\" class=\"edge\">\n",
|
|
"<title>27->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M425.9474,-520.8453C451.4631,-517.0036 492.7924,-511.128 528.6575,-507.6189 552.8446,-505.2524 580.5331,-503.6455 600.0593,-502.6949\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"607.1189,-502.3625 600.2749,-505.8383 603.6228,-502.5271 600.1267,-502.6918 600.1267,-502.6918 600.1267,-502.6918 603.6228,-502.5271 599.9785,-499.5453 607.1189,-502.3625 607.1189,-502.3625\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"475.8253\" y=\"-535.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"472.3253\" y=\"-520.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 28->0 -->\n",
|
|
"<g id=\"edge56\" class=\"edge\">\n",
|
|
"<title>28->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M585.2972,-928.9994C611.024,-926.6663 651.3251,-923.6189 686.3219,-923.6189 686.3219,-923.6189 686.3219,-923.6189 999.3185,-923.6189 1065.2492,-923.6189 1091.6544,-829.1063 1100.6446,-782.711\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1101.9413,-775.6998 1103.7656,-783.156 1101.3048,-779.1415 1100.6682,-782.5831 1100.6682,-782.5831 1100.6682,-782.5831 1101.3048,-779.1415 1097.5707,-782.0102 1101.9413,-775.6998 1101.9413,-775.6998\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"813.9863\" y=\"-942.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"810.4863\" y=\"-927.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 15->14 -->\n",
|
|
"<g id=\"edge37\" class=\"edge\">\n",
|
|
"<title>15->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1322.5182,-169.8104C1316.6362,-170.5579 1310.2402,-171.2449 1304.315,-171.6189 1293.3381,-172.3118 1281.3335,-171.7681 1270.6432,-170.823\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1263.481,-170.1148 1270.757,-167.669 1266.964,-170.4593 1270.447,-170.8037 1270.447,-170.8037 1270.447,-170.8037 1266.964,-170.4593 1270.1371,-173.9384 1263.481,-170.1148 1263.481,-170.1148\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1291.315\" y=\"-191.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"1287.815\" y=\"-176.4189\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7c803ebb10> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"#Create the game\n",
|
|
"gi = spot.game_info()\n",
|
|
"gi.s = spot.game_info.solver_LAR #Use lar solver\n",
|
|
"\n",
|
|
"#Todo arena changes when executed multiple times\n",
|
|
"game = spot.create_game(\"G((F(i0) && F(i1))->(G(i1<->(X(o0)))))\", [\"o0\"], gi)\n",
|
|
"print(\"game has \", game.num_states(), \" states, and \", game.num_edges(), \" edges.\")\n",
|
|
"print(\"output propositions are \", spot.get_synthesis_output_aps(game))\n",
|
|
"display(game)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Found a solution: True\n"
|
|
]
|
|
},
|
|
{
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"650pt\" height=\"360pt\"\n",
|
|
" viewBox=\"0.00 0.00 650.40 360.00\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.4858 0.4858) rotate(0) translate(4 737.0711)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-737.0711 1334.8756,-737.0711 1334.8756,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"551.4378\" y=\"-718.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"573.4378\" y=\"-718.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"589.4378\" y=\"-718.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"632.4378\" y=\"-718.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"648.4378\" y=\"-718.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & (Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"695.4378\" y=\"-718.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"711.4378\" y=\"-718.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"751.4378\" y=\"-718.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"767.4378\" y=\"-718.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
|
|
"<text text-anchor=\"start\" x=\"607.9378\" y=\"-704.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 4]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 9 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>9</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"56\" cy=\"-607.0711\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-603.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">9</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->9 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-607.0711C4.178,-607.0711 17.9448,-607.0711 30.9241,-607.0711\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-607.0711 30.9808,-610.2212 34.4807,-607.0711 30.9807,-607.0712 30.9807,-607.0712 30.9807,-607.0712 34.4807,-607.0711 30.9807,-603.9212 37.9807,-607.0711 37.9807,-607.0711\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 25 -->\n",
|
|
"<g id=\"node26\" class=\"node\">\n",
|
|
"<title>25</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"156.3322,-523.0711 126.1669,-505.0711 156.3322,-487.0711 186.4975,-505.0711 156.3322,-523.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"156.3322\" y=\"-501.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">25</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->25 -->\n",
|
|
"<g id=\"edge28\" class=\"edge\">\n",
|
|
"<title>9->25</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M68.7071,-594.1527C86.8106,-575.7483 120.0348,-541.9718 139.9614,-521.7139\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"144.9646,-516.6276 142.3015,-523.8269 142.5102,-519.1228 140.0558,-521.618 140.0558,-521.618 140.0558,-521.618 142.5102,-519.1228 137.8102,-519.409 144.9646,-516.6276 144.9646,-516.6276\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-571.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 26 -->\n",
|
|
"<g id=\"node27\" class=\"node\">\n",
|
|
"<title>26</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"234.9966,-647.0711 204.8313,-629.0711 234.9966,-611.0711 265.1619,-629.0711 234.9966,-647.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"234.9966\" y=\"-625.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">26</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->26 -->\n",
|
|
"<g id=\"edge29\" class=\"edge\">\n",
|
|
"<title>9->26</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.1482,-609.3016C104.3116,-613.0089 165.1581,-620.4874 202.759,-625.1088\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"209.9533,-625.9931 202.6213,-628.2655 206.4794,-625.5661 203.0056,-625.139 203.0056,-625.139 203.0056,-625.139 206.4794,-625.5661 203.3899,-622.0126 209.9533,-625.9931 209.9533,-625.9931\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-615.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 27 -->\n",
|
|
"<g id=\"node28\" class=\"node\">\n",
|
|
"<title>27</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"367.6609,-388.0711 337.4956,-370.0711 367.6609,-352.0711 397.8262,-370.0711 367.6609,-388.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"367.6609\" y=\"-366.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">27</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->27 -->\n",
|
|
"<g id=\"edge30\" class=\"edge\">\n",
|
|
"<title>9->27</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M60.0456,-589.4701C67.8001,-559.5094 87.5088,-498.4182 126,-463.0711 187.0669,-406.9923 285.5713,-383.4464 335.8764,-374.664\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"342.9385,-373.4733 336.5597,-377.7433 339.4872,-374.0552 336.0359,-374.6372 336.0359,-374.6372 336.0359,-374.6372 339.4872,-374.0552 335.5122,-371.531 342.9385,-373.4733 342.9385,-373.4733\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"148.3322\" y=\"-466.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 28 -->\n",
|
|
"<g id=\"node29\" class=\"node\">\n",
|
|
"<title>28</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"524.9897,-697.0711 494.8244,-679.0711 524.9897,-661.0711 555.155,-679.0711 524.9897,-697.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"524.9897\" y=\"-675.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">28</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->28 -->\n",
|
|
"<g id=\"edge31\" class=\"edge\">\n",
|
|
"<title>9->28</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M66.7967,-621.9895C83.4389,-643.0788 117.5262,-679.0711 156.3322,-679.0711 156.3322,-679.0711 156.3322,-679.0711 367.6609,-679.0711 408.4991,-679.0711 455.3001,-679.0711 487.1689,-679.0711\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"494.5349,-679.0711 487.535,-682.2212 491.0349,-679.0711 487.5349,-679.0712 487.5349,-679.0712 487.5349,-679.0712 491.0349,-679.0711 487.5349,-675.9212 494.5349,-679.0711 494.5349,-679.0711\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"226.9966\" y=\"-682.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"992.6507\" cy=\"-558.0711\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"992.6507\" y=\"-554.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 10 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>10</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1092.9828,-429.0711 1062.8175,-411.0711 1092.9828,-393.0711 1123.1481,-411.0711 1092.9828,-429.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1092.9828\" y=\"-407.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">10</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->10 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->10</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1002.8232,-543.167C1021.2414,-516.1818 1060.0697,-459.2933 1080.2296,-429.7563\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1084.234,-423.8892 1082.8896,-431.4467 1082.2609,-426.7801 1080.2878,-429.6709 1080.2878,-429.6709 1080.2878,-429.6709 1082.2609,-426.7801 1077.6861,-427.8951 1084.234,-423.8892 1084.234,-423.8892\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-504.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 11 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>11</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1092.9828,-576.0711 1062.8175,-558.0711 1092.9828,-540.0711 1123.1481,-558.0711 1092.9828,-576.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1092.9828\" y=\"-554.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">11</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->11 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->11</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1011.0531,-558.0711C1023.4018,-558.0711 1040.1126,-558.0711 1055.2217,-558.0711\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1062.484,-558.0711 1055.4841,-561.2212 1058.984,-558.0711 1055.484,-558.0712 1055.484,-558.0712 1055.484,-558.0712 1058.984,-558.0711 1055.484,-554.9212 1062.484,-558.0711 1062.484,-558.0711\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-561.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"1196.7631\" cy=\"-457.0711\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1196.7631\" y=\"-453.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 10->1 -->\n",
|
|
"<g id=\"edge32\" class=\"edge\">\n",
|
|
"<title>10->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M1116.6532,-415.1043C1129.1448,-417.7761 1144.4967,-421.94 1157.315,-428.0711 1164.2164,-431.372 1171.1408,-435.9362 1177.2192,-440.4675\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1182.9833,-444.9399 1175.5218,-443.1375 1179.9115,-443.1893 1177.1463,-441.0438 1177.4528,-440.6487 1177.7593,-440.2537 1180.5245,-442.3993 1179.3838,-438.16 1182.9833,-444.9399 1182.9833,-444.9399\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1141.315\" y=\"-431.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 11->0 -->\n",
|
|
"<g id=\"edge33\" class=\"edge\">\n",
|
|
"<title>11->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M1076.3944,-566.4406C1063.4459,-571.9422 1044.9752,-577.5354 1028.6507,-574.0711 1024.1722,-573.1207 1019.5745,-571.5734 1015.226,-569.8063\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1008.6509,-566.9028 1016.3269,-566.849 1012.0546,-567.8593 1015.2564,-569.2732 1015.0544,-569.7306 1014.8524,-570.188 1011.6507,-568.7741 1013.7819,-572.6121 1008.6509,-566.9028 1008.6509,-566.9028\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-578.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 12 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>12</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1300.5434,-513.0711 1270.3781,-495.0711 1300.5434,-477.0711 1330.7087,-495.0711 1300.5434,-513.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1300.5434\" y=\"-491.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">12</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->12 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->12</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1213.575,-464.1309C1220.5446,-466.9946 1228.7339,-470.2786 1236.2112,-473.0711 1248.5736,-477.6878 1262.4074,-482.4679 1274.0699,-486.3882\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1281.0183,-488.7089 1273.3809,-489.4791 1277.6986,-487.6001 1274.3788,-486.4913 1274.3788,-486.4913 1274.3788,-486.4913 1277.6986,-487.6001 1275.3767,-483.5036 1281.0183,-488.7089 1281.0183,-488.7089\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1236.2112\" y=\"-481.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 13 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>13</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"892.3185,-554.0711 862.1532,-536.0711 892.3185,-518.0711 922.4838,-536.0711 892.3185,-554.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"892.3185\" y=\"-532.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">13</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->13 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1178.7053,-455.4322C1147.4876,-453.1459 1081.6818,-450.7451 1028.6507,-465.0711 984.2382,-477.0688 937.8181,-505.1042 912.234,-522.1372\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"906.1923,-526.2141 910.2328,-519.6874 909.0936,-524.2563 911.9948,-522.2985 911.9948,-522.2985 911.9948,-522.2985 909.0936,-524.2563 913.7568,-524.9096 906.1923,-526.2141 906.1923,-526.2141\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-468.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 12->1 -->\n",
|
|
"<g id=\"edge34\" class=\"edge\">\n",
|
|
"<title>12->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M1290.5158,-482.7291C1281.6362,-472.8566 1267.7058,-459.7578 1252.2112,-454.0711 1242.5473,-450.5243 1231.2982,-450.4582 1221.4677,-451.5863\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"1214.2765,-452.6439 1220.7437,-448.5089 1217.6665,-451.6399 1221.1293,-451.1307 1221.202,-451.6253 1221.2748,-452.12 1217.812,-452.6293 1221.6604,-454.7418 1214.2765,-452.6439 1214.2765,-452.6439\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1236.2112\" y=\"-457.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 13->0 -->\n",
|
|
"<g id=\"edge35\" class=\"edge\">\n",
|
|
"<title>13->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M914.5854,-540.9536C930.3056,-544.4006 951.3851,-549.0227 967.677,-552.5951\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"974.7892,-554.1545 967.2769,-555.7321 971.2633,-553.8933 967.8445,-553.1436 967.9516,-552.6552 968.0587,-552.1668 971.4775,-552.9165 968.6263,-549.5783 974.7892,-554.1545 974.7892,-554.1545\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"940.6507\" y=\"-552.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"992.6507\" cy=\"-357.0711\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"992.6507\" y=\"-353.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 14 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>14</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1092.9828,-136.0711 1062.8175,-118.0711 1092.9828,-100.0711 1123.1481,-118.0711 1092.9828,-136.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1092.9828\" y=\"-114.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">14</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->14 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M1005.401,-343.8885C1017.5729,-330.4792 1035.3893,-308.5296 1044.6507,-286.0711 1065.043,-236.6202 1044.198,-217.278 1062.6507,-167.0711 1066.6327,-156.2364 1073.1864,-145.2151 1079.185,-136.3761\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1083.2107,-130.6345 1081.7712,-138.1745 1081.6107,-133.7873 1079.6014,-136.6531 1079.192,-136.366 1078.7826,-136.079 1080.7919,-133.2132 1076.6128,-134.5576 1083.2107,-130.6345 1083.2107,-130.6345\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-316.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 16 -->\n",
|
|
"<g id=\"node11\" class=\"node\">\n",
|
|
"<title>16</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1092.9828,-364.0711 1062.8175,-346.0711 1092.9828,-328.0711 1123.1481,-346.0711 1092.9828,-364.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1092.9828\" y=\"-342.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">16</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->16 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>2->16</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1010.5451,-360.0524C1016.3078,-360.8793 1022.7334,-361.6621 1028.6507,-362.0711 1035.7448,-362.5614 1037.6302,-363.2029 1044.6507,-362.0711 1052.5342,-360.8001 1060.8728,-358.4335 1068.3635,-355.9029\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1074.967,-353.5595 1069.4236,-358.8693 1071.6685,-354.7301 1068.3701,-355.9006 1068.3701,-355.9006 1068.3701,-355.9006 1071.6685,-354.7301 1067.3166,-352.932 1074.967,-353.5595 1074.967,-353.5595\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-365.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 15 -->\n",
|
|
"<g id=\"node30\" class=\"node\">\n",
|
|
"<title>15</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"1196.7631\" cy=\"-118.0711\" rx=\"21.3963\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1196.7631\" y=\"-114.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">15</text>\n",
|
|
"</g>\n",
|
|
"<!-- 14->15 -->\n",
|
|
"<g id=\"edge36\" class=\"edge\">\n",
|
|
"<title>14->15</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1108.7157,-109.2166C1121.6612,-103.0109 1140.5421,-96.4252 1157.315,-100.0711 1162.3724,-101.1704 1167.5584,-102.9774 1172.4393,-105.0328\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1178.8652,-107.9463 1171.1891,-107.9245 1175.6775,-106.501 1172.4899,-105.0557 1172.4899,-105.0557 1172.4899,-105.0557 1175.6775,-106.501 1173.7907,-102.1868 1178.8652,-107.9463 1178.8652,-107.9463\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1141.315\" y=\"-103.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"</g>\n",
|
|
"<!-- 16->2 -->\n",
|
|
"<g id=\"edge38\" class=\"edge\">\n",
|
|
"<title>16->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1068.9703,-342.336C1056.7974,-341.1017 1041.8377,-340.5972 1028.6507,-343.0711 1024.4283,-343.8632 1020.0648,-345.1356 1015.8952,-346.5982\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1009.1202,-349.1883 1014.5339,-343.7462 1012.3895,-347.9384 1015.6587,-346.6886 1015.6587,-346.6886 1015.6587,-346.6886 1012.3895,-347.9384 1016.7836,-349.6309 1009.1202,-349.1883 1009.1202,-349.1883\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-346.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node12\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"791.9863\" cy=\"-605.0711\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"791.9863\" y=\"-601.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->13 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>3->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M807.6561,-595.5507C818.0809,-589.114 832.0081,-580.3158 843.9863,-572.0711 853.7899,-565.3231 864.4237,-557.4642 873.2145,-550.814\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"878.973,-546.4315 875.3103,-553.1774 876.1878,-548.5511 873.4026,-550.6708 873.4026,-550.6708 873.4026,-550.6708 876.1878,-548.5511 871.495,-548.1641 878.973,-546.4315 878.973,-546.4315\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"827.9863\" y=\"-585.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 17 -->\n",
|
|
"<g id=\"node13\" class=\"node\">\n",
|
|
"<title>17</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"691.6541,-585.0711 661.4888,-567.0711 691.6541,-549.0711 721.8194,-567.0711 691.6541,-585.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"691.6541\" y=\"-563.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">17</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->17 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>3->17</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M774.4636,-600.2893C764.2894,-597.3621 751.2894,-593.3621 739.9863,-589.0711 731.6364,-585.9012 722.6849,-581.98 714.7827,-578.33\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"708.4279,-575.3503 716.1031,-575.4701 711.5969,-576.8362 714.7658,-578.3221 714.7658,-578.3221 714.7658,-578.3221 711.5969,-576.8362 713.4285,-581.1742 708.4279,-575.3503 708.4279,-575.3503\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"739.9863\" y=\"-597.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 17->2 -->\n",
|
|
"<g id=\"edge39\" class=\"edge\">\n",
|
|
"<title>17->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M712.9023,-561.5349C743.5917,-552.9045 801.3169,-534.2533 843.9863,-506.0711 899.9606,-469.1012 952.1033,-408.5347 977.1268,-377.2237\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"981.4784,-371.73 979.6012,-379.173 979.3052,-374.4735 977.132,-377.2171 977.132,-377.2171 977.132,-377.2171 979.3052,-374.4735 974.6627,-375.2612 981.4784,-371.73 981.4784,-371.73\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"827.9863\" y=\"-517.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 17->3 -->\n",
|
|
"<g id=\"edge40\" class=\"edge\">\n",
|
|
"<title>17->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M717.0288,-564.1728C729.2668,-563.7774 743.8808,-564.8246 755.9863,-570.0711 763.7019,-573.415 770.7147,-579.2088 776.4586,-585.1312\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"781.3607,-590.5398 774.3257,-587.4685 778.6397,-588.2822 776.2892,-585.6889 776.6597,-585.3531 777.0302,-585.0173 779.3807,-587.6107 778.9937,-583.2377 781.3607,-590.5398 781.3607,-590.5398\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"739.9863\" y=\"-573.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node14\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"992.6507\" cy=\"-232.0711\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"992.6507\" y=\"-228.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->14 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>4->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M996.4899,-214.258C1002.6023,-187.607 1015.2329,-139.2785 1028.6507,-128.0711 1036.8972,-121.183 1047.8901,-118.0316 1058.4526,-116.7915\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1065.6573,-116.216 1058.9304,-119.9135 1062.2082,-116.9932 1058.7194,-117.2719 1058.6795,-116.7735 1058.6397,-116.2751 1062.1286,-115.9963 1058.4287,-113.6335 1065.6573,-116.216 1065.6573,-116.216\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-131.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 18 -->\n",
|
|
"<g id=\"node15\" class=\"node\">\n",
|
|
"<title>18</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1092.9828,-212.0711 1062.8175,-194.0711 1092.9828,-176.0711 1123.1481,-194.0711 1092.9828,-212.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1092.9828\" y=\"-190.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">18</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->18 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>4->18</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1002.7506,-216.9795C1009.1173,-208.8657 1018.1173,-199.6157 1028.6507,-195.0711 1038.9991,-190.6063 1051.1836,-189.5056 1062.1494,-189.8108\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1069.148,-190.1931 1061.9865,-192.9565 1065.6532,-190.0021 1062.1584,-189.8112 1062.1584,-189.8112 1062.1584,-189.8112 1065.6532,-190.0021 1062.3303,-186.6658 1069.148,-190.1931 1069.148,-190.1931\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-198.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 18->4 -->\n",
|
|
"<g id=\"edge41\" class=\"edge\">\n",
|
|
"<title>18->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1074.5165,-201.0651C1058.1556,-207.2616 1034.1742,-216.3443 1016.392,-223.0792\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1009.6706,-225.6249 1015.1011,-220.1997 1012.9438,-224.3852 1016.2169,-223.1455 1016.2169,-223.1455 1016.2169,-223.1455 1012.9438,-224.3852 1017.3326,-226.0913 1009.6706,-225.6249 1009.6706,-225.6249\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-221.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node16\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"992.6507\" cy=\"-118.0711\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"992.6507\" y=\"-114.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->14 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>5->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M1002.7244,-102.918C1009.0823,-94.7837 1018.0823,-85.5337 1028.6507,-81.0711 1035.2017,-78.3048 1037.9156,-78.7891 1044.6507,-81.0711 1056.5233,-85.0938 1067.7708,-93.3331 1076.4232,-101.0174\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1081.9745,-106.1901 1074.7057,-103.7226 1079.0729,-104.1699 1076.5123,-101.7838 1076.8531,-101.418 1077.194,-101.0522 1079.7547,-103.4382 1079.0005,-99.1134 1081.9745,-106.1901 1081.9745,-106.1901\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-84.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->16 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>5->16</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M996.6239,-135.8838C1002.2237,-159.5736 1013.4738,-202.4815 1028.6507,-237.0711 1043.2757,-270.4028 1065.9094,-306.2364 1080.0642,-327.3784\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1083.9922,-333.1934 1077.4636,-329.1561 1082.033,-330.2931 1080.0738,-327.3928 1080.0738,-327.3928 1080.0738,-327.3928 1082.033,-330.2931 1082.6841,-325.6295 1083.9922,-333.1934 1083.9922,-333.1934\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-271.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->18 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>5->18</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1007.0258,-128.96C1024.6055,-142.2763 1054.4205,-164.8607 1073.9058,-179.6205\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1079.5963,-183.931 1072.1144,-182.2152 1076.8063,-181.8176 1074.0164,-179.7042 1074.0164,-179.7042 1074.0164,-179.7042 1076.8063,-181.8176 1075.9184,-177.1933 1079.5963,-183.931 1079.5963,-183.931\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-159.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 19 -->\n",
|
|
"<g id=\"node17\" class=\"node\">\n",
|
|
"<title>19</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1092.9828,-41.0711 1062.8175,-23.0711 1092.9828,-5.0711 1123.1481,-23.0711 1092.9828,-41.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1092.9828\" y=\"-19.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">19</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->19 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>5->19</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M995.7861,-99.8796C1001.1924,-70.9024 1013.1917,-16.3706 1028.6507,-5.0711 1041.6859,4.4569 1059.5693,-1.7016 1073.1726,-9.303\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1079.4668,-13.0882 1071.8445,-12.1801 1076.4674,-11.2844 1073.4679,-9.4806 1073.4679,-9.4806 1073.4679,-9.4806 1076.4674,-11.2844 1075.0913,-6.7811 1079.4668,-13.0882 1079.4668,-13.0882\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-8.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 19->5 -->\n",
|
|
"<g id=\"edge42\" class=\"edge\">\n",
|
|
"<title>19->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1075.3677,-30.6484C1061.5143,-37.2317 1042.3333,-47.7899 1028.6507,-61.0711 1018.541,-70.8841 1009.9791,-84.0715 1003.7447,-95.2902\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1000.3488,-101.6277 1000.8784,-93.9699 1002.0019,-98.5427 1003.655,-95.4577 1003.655,-95.4577 1003.655,-95.4577 1002.0019,-98.5427 1006.4315,-96.9454 1000.3488,-101.6277 1000.3488,-101.6277\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-64.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node18\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"591.3219\" cy=\"-329.0711\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"591.3219\" y=\"-325.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->10 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>6->10</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M606.7024,-338.4923C644.3447,-360.6231 744.7036,-414.0711 835.9863,-414.0711 835.9863,-414.0711 835.9863,-414.0711 992.6507,-414.0711 1014.2841,-414.0711 1038.5297,-413.3656 1057.7668,-412.6389\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1064.8785,-412.3607 1058.007,-415.782 1061.3812,-412.4976 1057.8839,-412.6344 1057.8839,-412.6344 1057.8839,-412.6344 1061.3812,-412.4976 1057.7608,-409.4868 1064.8785,-412.3607 1064.8785,-412.3607\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"827.9863\" y=\"-417.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->11 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>6->11</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M602.5438,-343.3352C615.1529,-358.2873 637.0562,-381.2197 661.3219,-393.0711 820.3676,-470.7487 895.735,-405.3972 1044.6507,-501.0711 1059.6598,-510.714 1072.489,-526.442 1081.1501,-538.9366\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1085.0584,-544.7697 1078.545,-540.7077 1083.1102,-541.862 1081.162,-538.9543 1081.162,-538.9543 1081.162,-538.9543 1083.1102,-541.862 1083.7789,-537.201 1085.0584,-544.7697 1085.0584,-544.7697\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"827.9863\" y=\"-442.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 20 -->\n",
|
|
"<g id=\"node19\" class=\"node\">\n",
|
|
"<title>20</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"691.6541,-335.0711 661.4888,-317.0711 691.6541,-299.0711 721.8194,-317.0711 691.6541,-335.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"691.6541\" y=\"-313.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">20</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->20 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>6->20</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M609.2593,-326.9257C623.0433,-325.2771 642.4568,-322.9552 658.9775,-320.9793\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"666.334,-320.0994 659.7577,-324.0585 662.8588,-320.5151 659.3835,-320.9308 659.3835,-320.9308 659.3835,-320.9308 662.8588,-320.5151 659.0094,-317.8031 666.334,-320.0994 666.334,-320.0994\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"627.3219\" y=\"-327.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 21 -->\n",
|
|
"<g id=\"node20\" class=\"node\">\n",
|
|
"<title>21</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"691.6541,-271.0711 661.4888,-253.0711 691.6541,-235.0711 721.8194,-253.0711 691.6541,-271.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"691.6541\" y=\"-249.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">21</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->21 -->\n",
|
|
"<g id=\"edge19\" class=\"edge\">\n",
|
|
"<title>6->21</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M605.6971,-318.1821C623.2767,-304.8658 653.0917,-282.2814 672.577,-267.5216\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"678.2675,-263.2112 674.5896,-269.9488 675.4776,-265.3245 672.6876,-267.4379 672.6876,-267.4379 672.6876,-267.4379 675.4776,-265.3245 670.7856,-264.9269 678.2675,-263.2112 678.2675,-263.2112\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"627.3219\" y=\"-303.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 20->4 -->\n",
|
|
"<g id=\"edge43\" class=\"edge\">\n",
|
|
"<title>20->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M710.421,-309.8973C736.5245,-300.0814 785.3912,-282.2915 827.9863,-270.0711 877.0146,-256.0049 935.393,-243.5185 967.8108,-236.9533\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"974.7054,-235.5673 968.4636,-240.0352 971.274,-236.2571 967.8427,-236.947 967.8427,-236.947 967.8427,-236.947 971.274,-236.2571 967.2218,-233.8588 974.7054,-235.5673 974.7054,-235.5673\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"827.9863\" y=\"-273.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node21\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"791.9863\" cy=\"-317.0711\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"791.9863\" y=\"-313.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
|
|
"</g>\n",
|
|
"<!-- 20->7 -->\n",
|
|
"<g id=\"edge44\" class=\"edge\">\n",
|
|
"<title>20->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M722.0293,-317.0711C736.3367,-317.0711 753.2018,-317.0711 766.7878,-317.0711\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"773.9611,-317.0711 766.9611,-320.2212 770.4611,-317.5711 766.9611,-317.5712 766.9611,-317.0712 766.9611,-316.5712 770.4611,-316.5711 766.9611,-313.9212 773.9611,-317.0711 773.9611,-317.0711\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"739.9863\" y=\"-320.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 21->4 -->\n",
|
|
"<g id=\"edge45\" class=\"edge\">\n",
|
|
"<title>21->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M711.7057,-246.6278C738.0501,-238.532 785.9116,-225.0908 827.9863,-220.0711 877.2592,-214.1925 935.1944,-221.7526 967.5425,-227.2638\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"974.8115,-228.5418 967.3717,-230.432 971.3643,-227.9357 967.9172,-227.3296 967.9172,-227.3296 967.9172,-227.3296 971.3643,-227.9357 968.4627,-224.2272 974.8115,-228.5418 974.8115,-228.5418\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"827.9863\" y=\"-223.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 21->6 -->\n",
|
|
"<g id=\"edge46\" class=\"edge\">\n",
|
|
"<title>21->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M666.5437,-256.1959C653.7973,-258.7862 638.6554,-263.503 627.3219,-272.0711 615.927,-280.6856 607.2148,-294.0415 601.2171,-305.6601\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"597.9998,-312.2511 598.2398,-304.5788 599.0858,-308.8865 600.6212,-305.7412 601.0705,-305.9606 601.5198,-306.1799 599.9845,-309.3252 603.9013,-307.3424 597.9998,-312.2511 597.9998,-312.2511\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"627.3219\" y=\"-275.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->12 -->\n",
|
|
"<g id=\"edge20\" class=\"edge\">\n",
|
|
"<title>7->12</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M793.3115,-335.3209C797.7516,-394.6105 812.6865,-579.2484 827.9863,-601.0711 846.4335,-627.383 860.1841,-634.0711 892.3185,-634.0711 892.3185,-634.0711 892.3185,-634.0711 1196.7631,-634.0711 1254.0331,-634.0711 1283.4849,-557.3717 1294.8455,-517.9219\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1296.7589,-511.0161 1297.9254,-518.6031 1295.8243,-514.3891 1294.8898,-517.762 1294.8898,-517.762 1294.8898,-517.762 1295.8243,-514.3891 1291.8541,-516.9209 1296.7589,-511.0161 1296.7589,-511.0161\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1028.6507\" y=\"-637.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->13 -->\n",
|
|
"<g id=\"edge21\" class=\"edge\">\n",
|
|
"<title>7->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M793.2836,-335.3536C796.0277,-364.8896 804.2644,-424.2185 827.9863,-468.0711 834.2386,-479.6292 858.2641,-503.7207 875.1126,-519.8982\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"880.5153,-525.0515 873.2758,-522.4994 877.9827,-522.6357 875.45,-520.22 875.45,-520.22 875.45,-520.22 877.9827,-522.6357 877.6242,-517.9406 880.5153,-525.0515 880.5153,-525.0515\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"827.9863\" y=\"-490.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 22 -->\n",
|
|
"<g id=\"node22\" class=\"node\">\n",
|
|
"<title>22</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"892.3185,-321.0711 862.1532,-303.0711 892.3185,-285.0711 922.4838,-303.0711 892.3185,-321.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"892.3185\" y=\"-299.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">22</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->22 -->\n",
|
|
"<g id=\"edge22\" class=\"edge\">\n",
|
|
"<title>7->22</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M810.3039,-315.1798C820.278,-314.0941 832.827,-312.6375 843.9863,-311.0711 849.6715,-310.273 855.7189,-309.3397 861.5422,-308.3978\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"868.7543,-307.2098 862.3594,-311.4557 865.3009,-307.7787 861.8474,-308.3476 861.8474,-308.3476 861.8474,-308.3476 865.3009,-307.7787 861.3354,-305.2395 868.7543,-307.2098 868.7543,-307.2098\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"827.9863\" y=\"-316.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 23 -->\n",
|
|
"<g id=\"node23\" class=\"node\">\n",
|
|
"<title>23</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"446.3253,-439.0711 416.16,-421.0711 446.3253,-403.0711 476.4906,-421.0711 446.3253,-439.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"446.3253\" y=\"-417.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">23</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->23 -->\n",
|
|
"<g id=\"edge23\" class=\"edge\">\n",
|
|
"<title>7->23</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M786.6686,-334.53C781.3243,-348.9255 771.606,-368.618 755.9863,-379.0711 669.293,-437.0881 538.1408,-431.6474 478.2194,-425.3439\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"470.9309,-424.5353 478.2356,-422.1765 474.4095,-424.9213 477.8882,-425.3073 477.8882,-425.3073 477.8882,-425.3073 474.4095,-424.9213 477.5408,-428.4381 470.9309,-424.5353 470.9309,-424.5353\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"627.3219\" y=\"-426.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 22->4 -->\n",
|
|
"<g id=\"edge47\" class=\"edge\">\n",
|
|
"<title>22->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M910.7979,-296.0081C924.236,-290.3821 942.4797,-281.6988 956.6507,-271.0711 963.9072,-265.6289 970.906,-258.6056 976.7723,-252.0218\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"981.4145,-246.6391 979.2282,-253.9973 979.1286,-249.2895 976.8428,-251.94 976.8428,-251.94 976.8428,-251.94 979.1286,-249.2895 974.4574,-249.8828 981.4145,-246.6391 981.4145,-246.6391\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"940.6507\" y=\"-283.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 22->7 -->\n",
|
|
"<g id=\"edge48\" class=\"edge\">\n",
|
|
"<title>22->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M874.5431,-295.6092C861.455,-291.1729 843.3408,-287.2625 827.9863,-292.0711 822.0364,-293.9344 816.2073,-297.166 811.0311,-300.6992\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"805.2867,-304.9214 809.0615,-298.2375 807.8107,-302.4456 810.6309,-300.3728 810.927,-300.7757 811.2231,-301.1785 808.403,-303.2514 812.7926,-303.3138 805.2867,-304.9214 805.2867,-304.9214\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"827.9863\" y=\"-295.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 23->4 -->\n",
|
|
"<g id=\"edge49\" class=\"edge\">\n",
|
|
"<title>23->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M465.84,-414.6424C513.4749,-399.5414 639.7245,-363.0711 747.9863,-363.0711 747.9863,-363.0711 747.9863,-363.0711 892.3185,-363.0711 945.2262,-363.0711 974.0147,-294.8896 985.9481,-256.9037\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"988.1122,-249.7383 989.1037,-257.3501 987.1002,-253.0888 986.0883,-256.4394 986.0883,-256.4394 986.0883,-256.4394 987.1002,-253.0888 983.0728,-255.5286 988.1122,-249.7383 988.1122,-249.7383\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"739.9863\" y=\"-366.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 23->6 -->\n",
|
|
"<g id=\"edge50\" class=\"edge\">\n",
|
|
"<title>23->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M453.7325,-407.217C461.9459,-393.1312 476.4694,-371.6425 494.6575,-359.0711 506.3665,-350.9779 541.9687,-341.1135 566.5335,-334.9608\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"573.4518,-333.2526 567.4111,-337.9888 570.1737,-334.577 566.7758,-335.4161 566.6559,-334.9307 566.5361,-334.4453 569.934,-333.6062 565.9008,-331.8725 573.4518,-333.2526 573.4518,-333.2526\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"516.9897\" y=\"-362.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node24\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"301.3288\" cy=\"-498.0711\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"301.3288\" y=\"-494.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->13 -->\n",
|
|
"<g id=\"edge24\" class=\"edge\">\n",
|
|
"<title>8->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M319.1078,-501.5113C346.3712,-506.4787 400.1966,-515.0711 446.3253,-515.0711 446.3253,-515.0711 446.3253,-515.0711 747.9863,-515.0711 788.3701,-515.0711 834.4538,-523.2214 863.4621,-529.367\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"870.4553,-530.88 862.9474,-532.4785 867.0344,-530.1399 863.6136,-529.3997 863.6136,-529.3997 863.6136,-529.3997 867.0344,-530.1399 864.2797,-526.3209 870.4553,-530.88 870.4553,-530.88\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"627.3219\" y=\"-518.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->17 -->\n",
|
|
"<g id=\"edge25\" class=\"edge\">\n",
|
|
"<title>8->17</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M313.3248,-511.6906C319.7694,-518.0786 328.2471,-525.1361 337.3288,-529.0711 446.9244,-576.558 592.7332,-574.033 657.8058,-569.9209\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"664.963,-569.4412 658.1894,-573.0524 661.4708,-569.6753 657.9787,-569.9095 657.9787,-569.9095 657.9787,-569.9095 661.4708,-569.6753 657.768,-566.7665 664.963,-569.4412 664.963,-569.4412\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"516.9897\" y=\"-574.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->23 -->\n",
|
|
"<g id=\"edge26\" class=\"edge\">\n",
|
|
"<title>8->23</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M318.0115,-490.5954C337.4906,-481.7215 370.542,-466.2118 397.9931,-451.0711 407.2274,-445.9779 417.1672,-439.914 425.6174,-434.5754\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"431.7526,-430.6624 427.5447,-437.0825 428.8017,-432.5445 425.8508,-434.4266 425.8508,-434.4266 425.8508,-434.4266 428.8017,-432.5445 424.1569,-431.7708 431.7526,-430.6624 431.7526,-430.6624\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"359.6609\" y=\"-483.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 24 -->\n",
|
|
"<g id=\"node25\" class=\"node\">\n",
|
|
"<title>24</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"446.3253,-289.0711 416.16,-271.0711 446.3253,-253.0711 476.4906,-271.0711 446.3253,-289.0711\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"446.3253\" y=\"-267.3711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">24</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->24 -->\n",
|
|
"<g id=\"edge27\" class=\"edge\">\n",
|
|
"<title>8->24</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M303.1906,-480.0977C307.4982,-441.4468 319.1908,-351.989 337.3288,-328.0711 357.2613,-301.7867 392.8262,-286.4687 417.8997,-278.453\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"424.6718,-276.3828 418.8985,-281.4416 421.3247,-277.406 417.9776,-278.4293 417.9776,-278.4293 417.9776,-278.4293 421.3247,-277.406 417.0567,-275.4169 424.6718,-276.3828 424.6718,-276.3828\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"359.6609\" y=\"-331.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 24->5 -->\n",
|
|
"<g id=\"edge51\" class=\"edge\">\n",
|
|
"<title>24->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.1177,-257.1908C473.1037,-225.408 525.0926,-150.0711 591.3219,-150.0711 591.3219,-150.0711 591.3219,-150.0711 892.3185,-150.0711 920.079,-150.0711 950.2042,-138.8141 970.1235,-129.6535\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"976.4693,-126.6465 971.4925,-132.4906 973.3064,-128.1453 970.1436,-129.644 970.1436,-129.644 970.1436,-129.644 973.3064,-128.1453 968.7947,-126.7974 976.4693,-126.6465 976.4693,-126.6465\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"739.9863\" y=\"-153.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 24->8 -->\n",
|
|
"<g id=\"edge52\" class=\"edge\">\n",
|
|
"<title>24->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M433.2887,-281.649C427.1121,-287.3557 420.1853,-294.8978 415.9931,-303.0711 396.5801,-340.9197 422.6514,-362.4105 397.9931,-397.0711 379.9488,-422.4349 359.0741,-409.7986 337.3288,-432.0711 335.5828,-433.8593 323.0359,-457.14 313.2395,-475.5511\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"309.7799,-482.065 310.2814,-474.4053 310.98,-478.7394 312.6218,-475.6483 313.0634,-475.8829 313.505,-476.1174 311.8632,-479.2085 315.8453,-477.3604 309.7799,-482.065 309.7799,-482.065\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"359.6609\" y=\"-435.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 25->8 -->\n",
|
|
"<g id=\"edge53\" class=\"edge\">\n",
|
|
"<title>25->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M184.289,-503.7214C210.8036,-502.4413 250.2957,-500.5348 275.9322,-499.2971\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"283.0933,-498.9514 276.2534,-502.4354 279.6215,-499.6196 276.1256,-499.7885 276.1015,-499.2891 276.0774,-498.7896 279.5733,-498.6208 275.9495,-496.1427 283.0933,-498.9514 283.0933,-498.9514\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"226.9966\" y=\"-505.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 26->3 -->\n",
|
|
"<g id=\"edge54\" class=\"edge\">\n",
|
|
"<title>26->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M259.388,-632.6066C285.9556,-636.1463 329.7342,-641.0711 367.6609,-641.0711 367.6609,-641.0711 367.6609,-641.0711 691.6541,-641.0711 719.9193,-641.0711 750.171,-628.2567 769.9778,-617.9186\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"776.2765,-614.5296 771.6046,-620.6204 773.4312,-616.6283 770.349,-618.2867 770.1121,-617.8464 769.8752,-617.4061 772.9574,-615.7477 768.6195,-615.0724 776.2765,-614.5296 776.2765,-614.5296\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"516.9897\" y=\"-644.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 27->6 -->\n",
|
|
"<g id=\"edge55\" class=\"edge\">\n",
|
|
"<title>27->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M388.1564,-364.1522C413.1115,-357.159 456.6397,-345.6461 494.6575,-339.0711 518.6862,-334.9154 546.3951,-332.2646 565.9692,-330.7441\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"573.0482,-330.2159 566.302,-333.8781 569.5951,-330.975 566.1048,-331.2355 566.0676,-330.7368 566.0304,-330.2382 569.5207,-329.9778 565.8332,-327.5956 573.0482,-330.2159 573.0482,-330.2159\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"438.3253\" y=\"-359.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 28->0 -->\n",
|
|
"<g id=\"edge56\" class=\"edge\">\n",
|
|
"<title>28->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M555.4298,-679.0711C577.5862,-679.0711 608.3135,-679.0711 635.3219,-679.0711 635.3219,-679.0711 635.3219,-679.0711 892.3185,-679.0711 942.2067,-679.0711 972.0083,-617.3665 984.9707,-582.0852\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"987.3397,-575.4074 987.968,-583.0578 986.6407,-578.8732 985.4705,-582.1718 984.9993,-582.0046 984.5281,-581.8374 985.6982,-578.5388 982.0305,-580.9514 987.3397,-575.4074 987.3397,-575.4074\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"739.9863\" y=\"-682.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 15->14 -->\n",
|
|
"<g id=\"edge37\" class=\"edge\">\n",
|
|
"<title>15->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M1175.1682,-118.0711C1162.2589,-118.0711 1145.4996,-118.0711 1130.4853,-118.0711\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"1123.2794,-118.0711 1130.2794,-114.9212 1126.7794,-117.5711 1130.2794,-117.5712 1130.2794,-118.0712 1130.2794,-118.5712 1126.7794,-118.5711 1130.2793,-121.2212 1123.2794,-118.0711 1123.2794,-118.0711\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1141.315\" y=\"-121.8711\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"execution_count": 9,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"#Solve the game\n",
|
|
"print(\"Found a solution: \", spot.solve_game(game))\n",
|
|
"spot.highlight_strategy(game)\n",
|
|
"game.show('.g')"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"minimization lvl 0\n"
|
|
]
|
|
},
|
|
{
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"729pt\" height=\"283pt\"\n",
|
|
" viewBox=\"0.00 0.00 729.00 283.01\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.8007 0.8007) rotate(0) translate(4 349.4766)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-349.4766 906.5,-349.4766 906.5,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"448.25\" y=\"-330.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"440.25\" y=\"-315.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-208.4766\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-204.7766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-208.4766C4.178,-208.4766 17.9448,-208.4766 30.9241,-208.4766\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-208.4766 30.9808,-211.6267 34.4807,-208.4767 30.9807,-208.4767 30.9807,-208.4767 30.9807,-208.4767 34.4807,-208.4767 30.9807,-205.3267 37.9807,-208.4766 37.9807,-208.4766\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"183\" cy=\"-143.4766\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"183\" y=\"-139.7766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M72.0846,-200.2443C94.3872,-188.8296 134.8197,-168.1359 160.2193,-155.136\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"166.6448,-151.8474 161.8487,-157.8408 163.5292,-153.442 160.4135,-155.0367 160.4135,-155.0367 160.4135,-155.0367 163.5292,-153.442 158.9783,-152.2326 166.6448,-151.8474 166.6448,-151.8474\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-192.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"348.5\" cy=\"-205.4766\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"348.5\" y=\"-201.7766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.8971,-211.0817C115.4279,-216.6833 221.4826,-228.4351 309,-216.4766 314.1399,-215.7743 319.5544,-214.5804 324.6706,-213.2318\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"331.4086,-211.3285 325.5286,-216.2628 328.0404,-212.2799 324.6722,-213.2314 324.6722,-213.2314 324.6722,-213.2314 328.0404,-212.2799 323.8159,-210.2001 331.4086,-211.3285 331.4086,-211.3285\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"160\" y=\"-224.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"348.5\" cy=\"-78.4766\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"348.5\" y=\"-74.7766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->3 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M65.4736,-192.8824C81.4388,-168.2484 116.2834,-121.1146 160,-101.4766 214.4142,-77.0332 286.0747,-75.6528 323.4201,-76.9447\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"330.4163,-77.2327 323.2926,-80.0921 326.9193,-77.0887 323.4222,-76.9447 323.4222,-76.9447 323.4222,-76.9447 326.9193,-77.0887 323.5518,-73.7974 330.4163,-77.2327 330.4163,-77.2327\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"160\" y=\"-105.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"727.5\" cy=\"-116.4766\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"727.5\" y=\"-112.7766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->4 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M67.277,-222.7261C87.6253,-246.6916 133.0376,-292.4766 183,-292.4766 183,-292.4766 183,-292.4766 529.5,-292.4766 620.8664,-292.4766 689.6631,-186.4934 715.8995,-139.0131\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"719.3171,-132.7188 718.7452,-140.3736 717.647,-135.7947 715.9769,-138.8705 715.9769,-138.8705 715.9769,-138.8705 717.647,-135.7947 713.2086,-137.3675 719.3171,-132.7188 719.3171,-132.7188\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"327\" y=\"-296.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M172.0873,-157.8933C168.2765,-168.6426 171.9141,-179.4766 183,-179.4766 191.6609,-179.4766 195.7757,-172.8641 195.3443,-164.8454\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"193.9127,-157.8933 198.4099,-164.1141 194.6187,-161.3214 195.3246,-164.7494 195.3246,-164.7494 195.3246,-164.7494 194.6187,-161.3214 192.2394,-165.3848 193.9127,-157.8933 193.9127,-157.8933\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"139\" y=\"-183.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->2 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>1->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M196.5743,-155.451C204.1841,-161.6173 214.1125,-168.802 224,-173.4766 256.5029,-188.8434 297.4008,-197.542 323.2567,-201.8796\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"330.4514,-203.0388 323.0394,-205.0351 326.996,-202.482 323.5405,-201.9252 323.5405,-201.9252 323.5405,-201.9252 326.996,-202.482 324.0417,-198.8153 330.4514,-203.0388 330.4514,-203.0388\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"224\" y=\"-202.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->3 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M200.2947,-137.9303C232.395,-127.6038 298.8619,-106.0591 309,-101.4766 314.925,-98.7985 321.1037,-95.4786 326.7667,-92.202\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"333.1317,-88.4165 328.7255,-94.7021 330.1235,-90.2056 327.1153,-91.9947 327.1153,-91.9947 327.1153,-91.9947 330.1235,-90.2056 325.5051,-89.2873 333.1317,-88.4165 333.1317,-88.4165\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"224\" y=\"-133.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->4 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M201.3618,-144.5636C208.4348,-144.9321 216.5906,-145.296 224,-145.4766 261.7666,-146.3972 271.2316,-146.3202 309,-145.4766 468.2302,-141.9202 509.0363,-149.8329 667,-129.4766 678.9745,-127.9335 692.0949,-125.2399 703.0474,-122.7033\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"709.8978,-121.0728 703.8175,-125.7581 706.493,-121.8833 703.0881,-122.6937 703.0881,-122.6937 703.0881,-122.6937 706.493,-121.8833 702.3587,-119.6293 709.8978,-121.0728 709.8978,-121.0728\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"390\" y=\"-148.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M335.6625,-218.395C329.8068,-229.6114 334.0859,-241.4766 348.5,-241.4766 359.9862,-241.4766 365.0367,-233.9421 363.6514,-225.2054\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"361.3375,-218.395 366.572,-224.0096 362.4635,-221.709 363.5894,-225.023 363.5894,-225.023 363.5894,-225.023 362.4635,-221.709 360.6069,-226.0363 361.3375,-218.395 361.3375,-218.395\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"321\" y=\"-245.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->4 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>2->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M366.4379,-207.5462C416.6056,-212.5453 561.5751,-221.5561 667,-173.4766 684.99,-165.2722 701.0536,-149.522 712.0995,-136.6535\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"716.8104,-130.9812 714.7613,-138.3788 714.5742,-133.6737 712.3381,-136.3662 712.3381,-136.3662 712.3381,-136.3662 714.5742,-133.6737 709.9148,-134.3536 716.8104,-130.9812 716.8104,-130.9812\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"504\" y=\"-214.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->3 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>3->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M335.6625,-91.395C329.8068,-102.6114 334.0859,-114.4766 348.5,-114.4766 359.9862,-114.4766 365.0367,-106.9421 363.6514,-98.2054\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"361.3375,-91.395 366.572,-97.0096 362.4635,-94.709 363.5894,-98.023 363.5894,-98.023 363.5894,-98.023 362.4635,-94.709 360.6069,-99.0363 361.3375,-91.395 361.3375,-91.395\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"308\" y=\"-118.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->4 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>3->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M365.5602,-85.103C372.4311,-87.5037 380.4935,-89.9883 388,-91.4766 503.6782,-114.4115 645.2884,-116.7817 702.1241,-116.7116\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"709.2569,-116.6891 702.2669,-119.8613 705.7569,-116.7002 702.2569,-116.7113 702.2569,-116.7113 702.2569,-116.7113 705.7569,-116.7002 702.2469,-113.5613 709.2569,-116.6891 709.2569,-116.6891\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"491\" y=\"-117.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"875\" cy=\"-47.4766\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"875\" y=\"-43.7766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->5 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>3->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M355.439,-61.7068C361.868,-48.351 372.7466,-30.3174 388,-20.4766 427.05,4.7167 444.7022,-6.4916 491,-2.4766 627.2306,9.3375 789.8149,-26.1479 850.5402,-41.1345\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"857.4321,-42.856 849.8774,-44.2157 854.0364,-42.0078 850.6408,-41.1596 850.6408,-41.1596 850.6408,-41.1596 854.0364,-42.0078 851.4041,-38.1035 857.4321,-42.856 857.4321,-42.856\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"586\" y=\"-11.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"529.5\" cy=\"-29.4766\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"529.5\" y=\"-25.7766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->6 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>3->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M358.7541,-63.577C365.8348,-54.6052 376.0995,-43.9 388,-38.4766 425.7883,-21.2556 475.222,-22.8233 504.542,-25.895\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"511.5435,-26.6978 504.2302,-29.0298 508.0663,-26.299 504.5891,-25.9003 504.5891,-25.9003 504.5891,-25.9003 508.0663,-26.299 504.948,-22.7708 511.5435,-26.6978 511.5435,-26.6978\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"388\" y=\"-42.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->4 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>4->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M714.2449,-129.0214C707.7965,-140.3463 712.2148,-152.4766 727.5,-152.4766 739.7998,-152.4766 745.0631,-144.6219 743.2899,-135.6529\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"740.7551,-129.0214 746.1968,-134.4353 742.0048,-132.2907 743.2544,-135.56 743.2544,-135.56 743.2544,-135.56 742.0048,-132.2907 740.3121,-136.6847 740.7551,-129.0214 740.7551,-129.0214\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"704\" y=\"-156.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->5 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>4->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M745.8509,-115.9799C769.1405,-114.5792 809.7919,-109.4977 839,-91.4766 847.9694,-85.9426 855.7197,-77.3699 861.7074,-69.2563\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"865.9336,-63.1993 864.5114,-70.7425 863.9308,-66.0696 861.9281,-68.94 861.9281,-68.94 861.9281,-68.94 863.9308,-66.0696 859.3447,-67.1375 865.9336,-63.1993 865.9336,-63.1993\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"788\" y=\"-114.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->4 -->\n",
|
|
"<g id=\"edge19\" class=\"edge\">\n",
|
|
"<title>5->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M857.0045,-50.7316C838.93,-54.4352 810.5941,-61.4422 788,-72.4766 773.0932,-79.7568 758,-90.7263 746.6176,-99.8909\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"741.0243,-104.4898 744.4307,-97.6109 743.7278,-102.267 746.4313,-100.0441 746.4313,-100.0441 746.4313,-100.0441 743.7278,-102.267 748.4319,-102.4773 741.0243,-104.4898 741.0243,-104.4898\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"788\" y=\"-76.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->5 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>5->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M864.8486,-62.6432C861.7725,-73.1407 865.1563,-83.4766 875,-83.4766 882.5366,-83.4766 886.2865,-77.4179 886.2497,-69.8667\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"885.1514,-62.6432 889.318,-69.0901 885.6776,-66.1035 886.2037,-69.5637 886.2037,-69.5637 886.2037,-69.5637 885.6776,-66.1035 883.0895,-70.0373 885.1514,-62.6432 885.1514,-62.6432\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"847.5\" y=\"-87.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->3 -->\n",
|
|
"<g id=\"edge23\" class=\"edge\">\n",
|
|
"<title>6->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M513.0226,-37.5303C501.9273,-42.6886 486.8469,-49.1944 473,-53.4766 439.2615,-63.9104 398.9987,-71.0752 373.5865,-74.9768\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"366.5157,-76.0368 372.9713,-71.8837 369.977,-75.5179 373.4383,-74.9989 373.4383,-74.9989 373.4383,-74.9989 369.977,-75.5179 373.9054,-78.1141 366.5157,-76.0368 366.5157,-76.0368\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"388\" y=\"-76.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->4 -->\n",
|
|
"<g id=\"edge21\" class=\"edge\">\n",
|
|
"<title>6->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M546.5474,-36.3609C572.6462,-46.9693 624.0043,-68.117 667,-87.4766 679.6072,-93.1533 693.5306,-99.8007 704.839,-105.2981\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"711.1653,-108.3859 703.4929,-108.1462 708.0199,-106.8507 704.8746,-105.3154 704.8746,-105.3154 704.8746,-105.3154 708.0199,-106.8507 706.2563,-102.4846 711.1653,-108.3859 711.1653,-108.3859\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"586\" y=\"-91.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->5 -->\n",
|
|
"<g id=\"edge20\" class=\"edge\">\n",
|
|
"<title>6->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M547.5891,-30.419C604.9437,-33.4071 782.87,-42.6768 849.4809,-46.1471\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"856.6731,-46.5218 849.5187,-49.3033 853.1778,-46.3397 849.6826,-46.1575 849.6826,-46.1575 849.6826,-46.1575 853.1778,-46.3397 849.8465,-43.0118 856.6731,-46.5218 856.6731,-46.5218\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"685\" y=\"-46.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->6 -->\n",
|
|
"<g id=\"edge22\" class=\"edge\">\n",
|
|
"<title>6->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M515.4551,-40.9045C507.1934,-52.5333 511.875,-65.4766 529.5,-65.4766 543.958,-65.4766 549.7063,-56.7669 546.7448,-47.2177\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"543.5449,-40.9045 549.5193,-45.7242 545.1273,-44.0264 546.7096,-47.1483 546.7096,-47.1483 546.7096,-47.1483 545.1273,-44.0264 543.8999,-48.5724 543.5449,-40.9045 543.5449,-40.9045\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"485.5\" y=\"-69.2766\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"minimization lvl 1\n"
|
|
]
|
|
},
|
|
{
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"394pt\" height=\"218pt\"\n",
|
|
" viewBox=\"0.00 0.00 393.50 217.57\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 213.5676)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-213.5676 389.5,-213.5676 389.5,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"189.75\" y=\"-194.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"181.75\" y=\"-179.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-32.5676\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-28.8676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-32.5676C4.178,-32.5676 17.9448,-32.5676 30.9241,-32.5676\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-32.5676 30.9808,-35.7177 34.4807,-32.5677 30.9807,-32.5677 30.9807,-32.5677 30.9807,-32.5677 34.4807,-32.5677 30.9807,-29.4177 37.9807,-32.5676 37.9807,-32.5676\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"183\" cy=\"-87.5676\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"183\" y=\"-83.8676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M67.7612,-46.2287C74.2673,-52.9807 82.8712,-60.7034 92,-65.5676 112.6414,-76.5663 138.83,-82.1513 157.8077,-84.9336\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"164.9542,-85.8995 157.5953,-88.0834 161.4857,-85.4307 158.0173,-84.9618 158.0173,-84.9618 158.0173,-84.9618 161.4857,-85.4307 158.4392,-81.8402 164.9542,-85.8995 164.9542,-85.8995\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-85.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.123,-32.3422C92.25,-32.8231 120.4583,-35.5332 142,-46.5676 151.567,-51.4681 160.2863,-59.4139 167.2005,-67.0118\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"172.1202,-72.698 165.158,-69.4653 169.8302,-70.0511 167.5401,-67.4043 167.5401,-67.4043 167.5401,-67.4043 169.8302,-70.0511 169.9223,-65.3432 172.1202,-72.698 172.1202,-72.698\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"94\" y=\"-50.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"345\" cy=\"-68.5676\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"345\" y=\"-64.8676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.9088,-29.4848C116.3531,-22.9578 225.7429,-10.7381 309,-41.5676 315.1083,-43.8295 321.0564,-47.4819 326.3007,-51.3793\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"332.1012,-55.9982 324.663,-54.1018 329.3632,-53.8179 326.6253,-51.6377 326.6253,-51.6377 326.6253,-51.6377 329.3632,-53.8179 328.5875,-49.1735 332.1012,-55.9982 332.1012,-55.9982\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"160\" y=\"-25.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M72.6929,-25.5716C78.7184,-23.181 85.6095,-20.6001 92,-18.5676 140.8173,-3.0412 154.9646,2.8583 206,-1.5676 252.2978,-5.5826 269.5059,4.9237 309,-19.5676 319.3028,-25.9566 327.6067,-36.4745 333.6318,-46.131\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"337.2601,-52.3003 330.9962,-47.8634 335.4857,-49.2834 333.7114,-46.2665 333.7114,-46.2665 333.7114,-46.2665 335.4857,-49.2834 336.4266,-44.6695 337.2601,-52.3003 337.2601,-52.3003\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"161.5\" y=\"-5.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M177.1524,-104.6049C175.959,-114.4255 177.9082,-123.5676 183,-123.5676 186.8188,-123.5676 188.87,-118.4252 189.1534,-111.7109\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"188.8476,-104.6049 192.2958,-111.463 188.9981,-108.1017 189.1487,-111.5984 189.1487,-111.5984 189.1487,-111.5984 188.9981,-108.1017 186.0016,-111.7339 188.8476,-104.6049 188.8476,-104.6049\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"140.5\" y=\"-127.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M173.8162,-103.3222C167.4993,-121.1061 170.5605,-141.5676 183,-141.5676 193.8845,-141.5676 197.5889,-125.9018 194.1131,-110.0715\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"192.1838,-103.3222 197.1364,-109.1869 193.1458,-106.6874 194.1077,-110.0526 194.1077,-110.0526 194.1077,-110.0526 193.1458,-106.6874 191.079,-110.9184 192.1838,-103.3222 192.1838,-103.3222\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"139\" y=\"-145.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->2 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M190.4024,-104.1557C197.13,-116.9844 208.3951,-133.8226 224,-141.5676 257.8392,-158.3626 276.919,-161.5168 309,-141.5676 325.905,-131.0554 335.1062,-110.0068 339.9631,-93.2013\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"341.7884,-86.3018 343.0433,-93.8746 340.8932,-89.6854 339.998,-93.069 339.998,-93.069 339.998,-93.069 340.8932,-89.6854 336.9528,-92.2633 341.7884,-86.3018 341.7884,-86.3018\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"226\" y=\"-158.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->2 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M199.3407,-95.5573C206.691,-98.7244 215.5899,-101.9847 224,-103.5676 261.1259,-110.5551 273.9969,-117.7784 309,-103.5676 316.7915,-100.4044 323.8229,-94.6551 329.5606,-88.7179\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"334.451,-83.2814 332.1114,-90.5924 332.1103,-85.8836 329.7695,-88.4857 329.7695,-88.4857 329.7695,-88.4857 332.1103,-85.8836 327.4276,-86.379 334.451,-83.2814 334.451,-83.2814\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"224\" y=\"-115.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M326.9638,-70.683C297.9616,-74.0845 240.8889,-80.7782 207.9843,-84.6373\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"200.9558,-85.4617 207.5412,-81.5176 204.432,-85.0539 207.9082,-84.6462 207.9082,-84.6462 207.9082,-84.6462 204.432,-85.0539 208.2751,-87.7747 200.9558,-85.4617 200.9558,-85.4617\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"226\" y=\"-85.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M328.9431,-60.2843C322.8628,-57.5784 315.7721,-54.922 309,-53.5676 271.9558,-46.1588 259.5368,-40.7498 224,-53.5676 215.1655,-56.7541 206.8876,-62.7637 200.1153,-68.8547\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"194.8014,-73.9302 197.6877,-66.8174 197.3324,-71.5128 199.8634,-69.0953 199.8634,-69.0953 199.8634,-69.0953 197.3324,-71.5128 202.0391,-71.3732 194.8014,-73.9302 194.8014,-73.9302\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"224\" y=\"-57.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M338.1445,-85.2317C336.6211,-95.1926 338.9063,-104.5676 345,-104.5676 349.5703,-104.5676 351.9983,-99.2942 352.2839,-92.4552\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"351.8555,-85.2317 355.4145,-92.0328 352.0628,-88.7255 352.27,-92.2194 352.27,-92.2194 352.27,-92.2194 352.0628,-88.7255 349.1256,-92.4059 351.8555,-85.2317 351.8555,-85.2317\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"306.5\" y=\"-108.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->2 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>2->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M334.5026,-83.4949C326.5712,-101.4651 330.0703,-122.5676 345,-122.5676 358.0635,-122.5676 362.3754,-106.411 357.9359,-90.3332\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"355.4974,-83.4949 360.8156,-89.0303 356.673,-86.7916 357.8486,-90.0883 357.8486,-90.0883 357.8486,-90.0883 356.673,-86.7916 354.8816,-91.1463 355.4974,-83.4949 355.4974,-83.4949\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"304.5\" y=\"-126.3676\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"minimization lvl 2\n"
|
|
]
|
|
},
|
|
{
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"265pt\" height=\"186pt\"\n",
|
|
" viewBox=\"0.00 0.00 265.00 186.13\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 182.1332)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-182.1332 261,-182.1332 261,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"125.5\" y=\"-162.9332\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"117.5\" y=\"-147.9332\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-56.1332\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-52.4332\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->1 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-56.1332C4.178,-56.1332 17.9448,-56.1332 30.9241,-56.1332\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-56.1332 30.9808,-59.2833 34.4807,-56.1332 30.9807,-56.1333 30.9807,-56.1333 30.9807,-56.1333 34.4807,-56.1332 30.9807,-52.9833 37.9807,-56.1332 37.9807,-56.1332\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M52.7643,-73.9149C52.2144,-83.4481 53.293,-92.1332 56,-92.1332 57.988,-92.1332 59.0977,-87.4493 59.3292,-81.1853\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"59.2357,-73.9149 62.4756,-80.8738 59.2808,-77.4146 59.3258,-80.9143 59.3258,-80.9143 59.3258,-80.9143 59.2808,-77.4146 56.1761,-80.9549 59.2357,-73.9149 59.2357,-73.9149\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"17.5\" y=\"-95.9332\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M50.6841,-73.5535C47.6538,-90.9241 49.4258,-110.1332 56,-110.1332 61.7011,-110.1332 63.7908,-95.6877 62.2691,-80.5226\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"61.3159,-73.5535 65.3856,-80.062 61.7902,-77.0212 62.2646,-80.4889 62.2646,-80.4889 62.2646,-80.4889 61.7902,-77.0212 59.1437,-80.9158 61.3159,-73.5535 61.3159,-73.5535\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"15.5\" y=\"-113.9332\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"213\" cy=\"-56.1332\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"213\" y=\"-52.4332\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M66.549,-70.847C72.9434,-78.4584 81.8234,-87.0016 92,-91.1332 127.0031,-105.344 141.9969,-105.344 177,-91.1332 184.7915,-87.9699 191.8229,-82.2207 197.5606,-76.2835\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"202.451,-70.847 200.1114,-78.158 200.1103,-73.4492 197.7695,-76.0513 197.7695,-76.0513 197.7695,-76.0513 200.1103,-73.4492 195.4276,-73.9446 202.451,-70.847 202.451,-70.847\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"94\" y=\"-104.9332\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.0099,-56.1332C101.8978,-56.1332 155.63,-56.1332 187.4982,-56.1332\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"194.7165,-56.1332 187.7166,-59.2833 191.2165,-56.1332 187.7165,-56.1333 187.7165,-56.1333 187.7165,-56.1333 191.2165,-56.1332 187.7165,-52.9833 194.7165,-56.1332 194.7165,-56.1332\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-59.9332\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M197.4772,-46.3975C191.3404,-43.0866 184.0728,-39.8029 177,-38.1332 140.2328,-29.4536 128.7672,-29.4536 92,-38.1332 87.248,-39.255 82.408,-41.1054 77.8821,-43.2032\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"71.5228,-46.3975 76.3641,-40.4405 74.6505,-44.8264 77.7781,-43.2554 77.7781,-43.2554 77.7781,-43.2554 74.6505,-44.8264 79.192,-46.0702 71.5228,-46.3975 71.5228,-46.3975\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"94\" y=\"-41.9332\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M204.6812,-39.9821C198.5321,-29.9401 189.13,-17.8814 177,-12.1332 142.8614,4.0444 126.1386,4.0444 92,-12.1332 82.3339,-16.7138 74.4001,-25.3016 68.4642,-33.6829\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"64.3188,-39.9821 65.5356,-32.403 66.2429,-37.0584 68.1669,-34.1346 68.1669,-34.1346 68.1669,-34.1346 66.2429,-37.0584 70.7983,-35.8663 64.3188,-39.9821 64.3188,-39.9821\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-15.9332\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M206.1445,-72.7973C204.6211,-82.7582 206.9063,-92.1332 213,-92.1332 217.5703,-92.1332 219.9983,-86.8598 220.2839,-80.0208\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"219.8555,-72.7973 223.4145,-79.5984 220.0628,-76.2911 220.27,-79.785 220.27,-79.785 220.27,-79.785 220.0628,-76.2911 217.1256,-79.9715 219.8555,-72.7973 219.8555,-72.7973\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"170.5\" y=\"-95.9332\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M202.5026,-71.0605C194.5712,-89.0306 198.0703,-110.1332 213,-110.1332 226.0635,-110.1332 230.3754,-93.9766 225.9359,-77.8988\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"223.4974,-71.0605 228.8156,-76.5958 224.673,-74.3572 225.8486,-77.6539 225.8486,-77.6539 225.8486,-77.6539 224.673,-74.3572 222.8816,-78.7119 223.4974,-71.0605 223.4974,-71.0605\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"169\" y=\"-113.9332\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"minimization lvl 3\n"
|
|
]
|
|
},
|
|
{
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"215pt\" height=\"120pt\"\n",
|
|
" viewBox=\"0.00 0.00 214.50 120.09\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 116.0873)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-116.0873 210.5,-116.0873 210.5,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"100.25\" y=\"-96.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"92.25\" y=\"-81.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-23.0873\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-19.3873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-23.0873C4.178,-23.0873 17.9448,-23.0873 30.9241,-23.0873\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-23.0873 30.9808,-26.2374 34.4807,-23.0874 30.9807,-23.0874 30.9807,-23.0874 30.9807,-23.0874 34.4807,-23.0874 30.9807,-19.9374 37.9807,-23.0873 37.9807,-23.0873\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-40.1247C48.3189,-49.9453 50.4453,-59.0873 56,-59.0873 60.166,-59.0873 62.4036,-53.9449 62.7128,-47.2306\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-40.1247 65.8541,-46.9692 62.5434,-43.6208 62.7076,-47.117 62.7076,-47.117 62.7076,-47.117 62.5434,-43.6208 59.561,-47.2647 62.3792,-40.1247 62.3792,-40.1247\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"32.5\" y=\"-62.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"179\" cy=\"-23.0873\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"179\" y=\"-19.3873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.1491,-23.0873C95.1332,-23.0873 129.8175,-23.0873 153.5039,-23.0873\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"160.7765,-23.0873 153.7765,-26.2374 157.2765,-23.0874 153.7765,-23.0874 153.7765,-23.0874 153.7765,-23.0874 157.2765,-23.0874 153.7764,-19.9374 160.7765,-23.0873 160.7765,-23.0873\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-26.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M163.8943,-13.0173C157.6932,-9.4555 150.2713,-5.8884 143,-4.0873 120.9982,1.3624 114.0018,1.3624 92,-4.0873 87.1146,-5.2975 82.1612,-7.3048 77.5558,-9.572\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"71.1057,-13.0173 75.7959,-6.9408 74.1929,-11.3683 77.2801,-9.7192 77.2801,-9.7192 77.2801,-9.7192 74.1929,-11.3683 78.7642,-12.4977 71.1057,-13.0173 71.1057,-13.0173\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-7.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M168.8486,-38.254C165.7725,-48.7514 169.1563,-59.0873 179,-59.0873 186.5366,-59.0873 190.2865,-53.0286 190.2497,-45.4774\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"189.1514,-38.254 193.318,-44.7009 189.6776,-41.7142 190.2037,-45.1744 190.2037,-45.1744 190.2037,-45.1744 189.6776,-41.7142 187.0895,-45.648 189.1514,-38.254 189.1514,-38.254\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"151.5\" y=\"-62.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"minimization lvl 4\n"
|
|
]
|
|
},
|
|
{
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"211pt\" height=\"120pt\"\n",
|
|
" viewBox=\"0.00 0.00 210.50 120.09\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 116.0873)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-116.0873 206.5,-116.0873 206.5,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"98.25\" y=\"-96.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"90.25\" y=\"-81.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-23.0873\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-19.3873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-23.0873C4.178,-23.0873 17.9448,-23.0873 30.9241,-23.0873\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-23.0873 30.9808,-26.2374 34.4807,-23.0874 30.9807,-23.0874 30.9807,-23.0874 30.9807,-23.0874 34.4807,-23.0874 30.9807,-19.9374 37.9807,-23.0873 37.9807,-23.0873\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-40.1247C48.3189,-49.9453 50.4453,-59.0873 56,-59.0873 60.166,-59.0873 62.4036,-53.9449 62.7128,-47.2306\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-40.1247 65.8541,-46.9692 62.5434,-43.6208 62.7076,-47.117 62.7076,-47.117 62.7076,-47.117 62.5434,-43.6208 59.561,-47.2647 62.3792,-40.1247 62.3792,-40.1247\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"28.5\" y=\"-62.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"179\" cy=\"-23.0873\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"179\" y=\"-19.3873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.1491,-23.0873C95.1332,-23.0873 129.8175,-23.0873 153.5039,-23.0873\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"160.7765,-23.0873 153.7765,-26.2374 157.2765,-23.0874 153.7765,-23.0874 153.7765,-23.0874 153.7765,-23.0874 157.2765,-23.0874 153.7764,-19.9374 160.7765,-23.0873 160.7765,-23.0873\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-26.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M163.8943,-13.0173C157.6932,-9.4555 150.2713,-5.8884 143,-4.0873 120.9982,1.3624 114.0018,1.3624 92,-4.0873 87.1146,-5.2975 82.1612,-7.3048 77.5558,-9.572\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"71.1057,-13.0173 75.7959,-6.9408 74.1929,-11.3683 77.2801,-9.7192 77.2801,-9.7192 77.2801,-9.7192 74.1929,-11.3683 78.7642,-12.4977 71.1057,-13.0173 71.1057,-13.0173\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-7.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M168.8486,-38.254C165.7725,-48.7514 169.1563,-59.0873 179,-59.0873 186.5366,-59.0873 190.2865,-53.0286 190.2497,-45.4774\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"189.1514,-38.254 193.318,-44.7009 189.6776,-41.7142 190.2037,-45.1744 190.2037,-45.1744 190.2037,-45.1744 189.6776,-41.7142 187.0895,-45.648 189.1514,-38.254 189.1514,-38.254\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"155.5\" y=\"-62.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"minimization lvl 5\n"
|
|
]
|
|
},
|
|
{
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"215pt\" height=\"120pt\"\n",
|
|
" viewBox=\"0.00 0.00 214.50 120.09\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 116.0873)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-116.0873 210.5,-116.0873 210.5,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"100.25\" y=\"-96.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"92.25\" y=\"-81.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-23.0873\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-19.3873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-23.0873C4.178,-23.0873 17.9448,-23.0873 30.9241,-23.0873\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-23.0873 30.9808,-26.2374 34.4807,-23.0874 30.9807,-23.0874 30.9807,-23.0874 30.9807,-23.0874 34.4807,-23.0874 30.9807,-19.9374 37.9807,-23.0873 37.9807,-23.0873\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.6208,-40.1247C48.3189,-49.9453 50.4453,-59.0873 56,-59.0873 60.166,-59.0873 62.4036,-53.9449 62.7128,-47.2306\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"62.3792,-40.1247 65.8541,-46.9692 62.5434,-43.6208 62.7076,-47.117 62.7076,-47.117 62.7076,-47.117 62.5434,-43.6208 59.561,-47.2647 62.3792,-40.1247 62.3792,-40.1247\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"32.5\" y=\"-62.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"179\" cy=\"-23.0873\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"179\" y=\"-19.3873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->1 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.1491,-23.0873C95.1332,-23.0873 129.8175,-23.0873 153.5039,-23.0873\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"160.7765,-23.0873 153.7765,-26.2374 157.2765,-23.0874 153.7765,-23.0874 153.7765,-23.0874 153.7765,-23.0874 157.2765,-23.0874 153.7764,-19.9374 160.7765,-23.0873 160.7765,-23.0873\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-26.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1 & o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->0 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M163.8943,-13.0173C157.6932,-9.4555 150.2713,-5.8884 143,-4.0873 120.9982,1.3624 114.0018,1.3624 92,-4.0873 87.1146,-5.2975 82.1612,-7.3048 77.5558,-9.572\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"71.1057,-13.0173 75.7959,-6.9408 74.1929,-11.3683 77.2801,-9.7192 77.2801,-9.7192 77.2801,-9.7192 74.1929,-11.3683 78.7642,-12.4977 71.1057,-13.0173 71.1057,-13.0173\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-7.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->1 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M168.8486,-38.254C165.7725,-48.7514 169.1563,-59.0873 179,-59.0873 186.5366,-59.0873 190.2865,-53.0286 190.2497,-45.4774\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"189.1514,-38.254 193.318,-44.7009 189.6776,-41.7142 190.2037,-45.1744 190.2037,-45.1744 190.2037,-45.1744 189.6776,-41.7142 187.0895,-45.648 189.1514,-38.254 189.1514,-38.254\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"151.5\" y=\"-62.8873\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1 & !o0</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"# Create the strategy\n",
|
|
"# We have different strategies for minimization:\n",
|
|
"# 0 : No minimizaiton\n",
|
|
"# 1 : DFA minimization\n",
|
|
"# 2 : Inclusion based minimization with output assignement\n",
|
|
"# 3 : SAT based exact minimization\n",
|
|
"# 4 : First 1 then 3 (exact)\n",
|
|
"# 5 : First 2 then 3 (not exact)\n",
|
|
"for i in range(6):\n",
|
|
" print(\"minimization lvl \", i)\n",
|
|
" gi.minimize_lvl = i #Use inclusion with output assignement to minimize the strategy\n",
|
|
" strat = spot.create_strategy(game, gi)\n",
|
|
" display(strat.show())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"729pt\" height=\"239pt\"\n",
|
|
" viewBox=\"0.00 0.00 729.00 238.99\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(0.5196 0.5196) rotate(0) translate(4 456)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-456 1399.1338,-456 1399.1338,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"694.5669\" y=\"-436.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"686.5669\" y=\"-421.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-234\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-230.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-234C4.178,-234 17.9448,-234 30.9241,-234\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-234 30.9808,-237.1501 34.4807,-234 30.9807,-234.0001 30.9807,-234.0001 30.9807,-234.0001 34.4807,-234 30.9807,-230.8501 37.9807,-234 37.9807,-234\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"182.9789,-295 160.021,-277 182.9789,-259 205.9368,-277 182.9789,-295\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"182.9789\" y=\"-273.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.1249,-239.7992C95.6483,-247.4265 135.2891,-260.8504 160.2886,-269.3162\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"166.9251,-271.5636 159.2846,-272.3018 163.61,-270.4409 160.295,-269.3183 160.295,-269.3183 160.295,-269.3183 163.61,-270.4409 161.3053,-266.3347 166.9251,-271.5636 166.9251,-271.5636\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-266.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"246.9368,-361 223.9789,-343 246.9368,-325 269.8947,-343 246.9368,-361\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"246.9368\" y=\"-339.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->4 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M64.8873,-250.0927C71.2764,-260.403 80.7323,-273.4132 92,-282 131.9734,-312.4626 189.1092,-329.6829 221.6619,-337.5978\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"228.6079,-339.2356 221.0718,-340.6949 225.2013,-338.4323 221.7948,-337.629 221.7948,-337.629 221.7948,-337.629 225.2013,-338.4323 222.5177,-334.5631 228.6079,-339.2356 228.6079,-339.2356\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"94\" y=\"-312.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"246.9368,-207 223.9789,-189 246.9368,-171 269.8947,-189 246.9368,-207\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"246.9368\" y=\"-185.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->6 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>0->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.6206,-229.8472C107.7767,-221.7973 183.0681,-204.0526 222.2111,-194.8274\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"229.0812,-193.2082 222.9905,-197.8801 225.6745,-194.0111 222.2678,-194.8141 222.2678,-194.8141 222.2678,-194.8141 225.6745,-194.0111 221.5452,-191.7481 229.0812,-193.2082 229.0812,-193.2082\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"94\" y=\"-228.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"366.9157,-86 343.9578,-68 366.9157,-50 389.8736,-68 366.9157,-86\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"366.9157\" y=\"-64.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->8 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>0->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M70.8252,-223.5779C77.233,-219.2151 84.8809,-214.1941 92,-210 184.1999,-155.6821 299.3722,-99.9171 345.9388,-77.8465\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"352.3006,-74.8388 347.3185,-80.6785 349.1364,-76.3348 345.9721,-77.8307 345.9721,-77.8307 345.9721,-77.8307 349.1364,-76.3348 344.6258,-74.9829 352.3006,-74.8388 352.3006,-74.8388\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"161.4789\" y=\"-173.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"305.9157\" cy=\"-302\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"305.9157\" y=\"-298.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->1 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>2->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M201.3838,-280.7428C222.63,-285.0633 257.67,-292.1889 281.2591,-296.9859\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"288.1843,-298.3942 280.6969,-300.086 284.7545,-297.6967 281.3247,-296.9992 281.3247,-296.9992 281.3247,-296.9992 284.7545,-297.6967 281.9524,-293.9123 288.1843,-298.3942 288.1843,-298.3942\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"246.9368\" y=\"-297.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node12\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"545.5801\" cy=\"-364\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"545.5801\" y=\"-360.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->3 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>4->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M260.3722,-350.7724C294.8557,-369.7903 389.4808,-416.1153 470.5801,-402 488.7237,-398.8421 493.1302,-396.2801 509.5801,-388 514.7695,-385.3879 520.1093,-382.1635 525.0348,-378.9351\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"531.0099,-374.8896 526.9796,-381.4226 528.1117,-376.8519 525.2135,-378.8142 525.2135,-378.8142 525.2135,-378.8142 528.1117,-376.8519 523.4474,-376.2058 531.0099,-374.8896 531.0099,-374.8896\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"366.9157\" y=\"-402.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node13\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"545.5801\" cy=\"-161\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"545.5801\" y=\"-157.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->5 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>6->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M267.4638,-187.0754C320.5598,-182.0973 462.3174,-168.8065 520.3145,-163.3688\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"527.6042,-162.6854 520.9288,-166.4751 524.1195,-163.0121 520.6347,-163.3389 520.6347,-163.3389 520.6347,-163.3389 524.1195,-163.0121 520.3407,-160.2027 527.6042,-162.6854 527.6042,-162.6854\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"366.9157\" y=\"-182.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node18\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1027.8051\" cy=\"-56\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1027.8051\" y=\"-52.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->7 -->\n",
|
|
"<g id=\"edge21\" class=\"edge\">\n",
|
|
"<title>8->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M378.5457,-58.9375C400.6825,-42.625 450.9698,-10 499.0801,-10 499.0801,-10 499.0801,-10 922.4729,-10 954.1196,-10 986.9809,-27.6543 1007.4063,-41.0889\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1013.3308,-45.0986 1005.7681,-43.7839 1010.4322,-43.1369 1007.5337,-41.1751 1007.5337,-41.1751 1007.5337,-41.1751 1010.4322,-43.1369 1009.2992,-38.5664 1013.3308,-45.0986 1013.3308,-45.0986\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"679.9123\" y=\"-13.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 13 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>13</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"922.4729,-220 892.3076,-202 922.4729,-184 952.6382,-202 922.4729,-220\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"922.4729\" y=\"-198.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">13</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->13 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>1->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M323.6427,-297.8404C357.5214,-290.2667 433.8967,-275 499.0801,-275 499.0801,-275 499.0801,-275 784.6926,-275 832.8099,-275 880.5322,-239.8065 905.2106,-218.2918\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"910.69,-213.4063 907.5615,-220.416 908.0776,-215.7355 905.4652,-218.0648 905.4652,-218.0648 905.4652,-218.0648 908.0776,-215.7355 903.3688,-215.7137 910.69,-213.4063 910.69,-213.4063\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"585.0801\" y=\"-278.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 18 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>18</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"440.2479,-247 410.0826,-229 440.2479,-211 470.4132,-229 440.2479,-247\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"440.2479\" y=\"-225.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">18</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->18 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>1->18</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M312.1328,-284.9615C317.8256,-271.8775 327.5657,-254.492 341.9157,-245 360.4168,-232.7623 385.0598,-228.7705 405.0475,-227.8341\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"412.1808,-227.6177 405.2795,-230.9786 408.6824,-227.7239 405.184,-227.83 405.184,-227.83 405.184,-227.83 408.6824,-227.7239 405.0884,-224.6815 412.1808,-227.6177 412.1808,-227.6177\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"343.9157\" y=\"-248.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 19 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>19</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"440.2479,-393 410.0826,-375 440.2479,-357 470.4132,-375 440.2479,-393\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"440.2479\" y=\"-371.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">19</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->19 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>1->19</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M315.143,-317.4714C321.5491,-326.974 330.8961,-338.6866 341.9157,-346 361.8142,-359.2061 387.8675,-366.5354 408.1572,-370.5205\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"415.074,-371.7948 407.6191,-373.6243 411.6319,-371.1606 408.1898,-370.5265 408.1898,-370.5265 408.1898,-370.5265 411.6319,-371.1606 408.7606,-367.4286 415.074,-371.7948 415.074,-371.7948\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"343.9157\" y=\"-369.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 20 -->\n",
|
|
"<g id=\"node11\" class=\"node\">\n",
|
|
"<title>20</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"440.2479,-339 410.0826,-321 440.2479,-303 470.4132,-321 440.2479,-339\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"440.2479\" y=\"-317.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">20</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->20 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>1->20</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M324.1553,-302.2538C341.6462,-302.7366 368.7416,-304.1125 391.9157,-308 398.8383,-309.1613 406.2045,-310.8841 413.0452,-312.6985\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"420.2159,-314.6809 412.6296,-315.8517 416.8425,-313.7482 413.469,-312.8156 413.469,-312.8156 413.469,-312.8156 416.8425,-313.7482 414.3084,-309.7795 420.2159,-314.6809 420.2159,-314.6809\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"341.9157\" y=\"-311.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 13->7 -->\n",
|
|
"<g id=\"edge27\" class=\"edge\">\n",
|
|
"<title>13->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M934.6075,-191.1585C940.418,-185.6862 947.2931,-178.7825 952.8051,-172 977.6573,-141.4194 1001.5051,-102.3055 1015.3991,-78.2114\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1018.879,-72.1288 1018.1371,-79.769 1017.141,-75.1667 1015.4029,-78.2047 1015.4029,-78.2047 1015.4029,-78.2047 1017.141,-75.1667 1012.6687,-76.6404 1018.879,-72.1288 1018.879,-72.1288\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"970.8051\" y=\"-150.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 18->5 -->\n",
|
|
"<g id=\"edge35\" class=\"edge\">\n",
|
|
"<title>18->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M454.8939,-219.5449C472.9264,-207.9035 503.6919,-188.042 524.324,-174.7225\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"530.3764,-170.8152 526.2039,-177.2583 527.4359,-172.7135 524.4954,-174.6118 524.4954,-174.6118 524.4954,-174.6118 527.4359,-172.7135 522.7869,-171.9654 530.3764,-170.8152 530.3764,-170.8152\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"488.5801\" y=\"-200.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 19->3 -->\n",
|
|
"<g id=\"edge36\" class=\"edge\">\n",
|
|
"<title>19->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M453.8128,-364.9352C463.0802,-358.708 475.9302,-351.2938 488.5801,-348 500.0032,-345.0257 512.6485,-347.9399 523.1206,-352.058\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"529.6537,-354.8883 521.9783,-354.996 526.4421,-353.497 523.2305,-352.1056 523.2305,-352.1056 523.2305,-352.1056 526.4421,-353.497 524.4827,-349.2152 529.6537,-354.8883 529.6537,-354.8883\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"488.5801\" y=\"-351.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 20->1 -->\n",
|
|
"<g id=\"edge37\" class=\"edge\">\n",
|
|
"<title>20->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M416.7525,-325.1294C396.5445,-327.824 366.8056,-329.7289 341.9157,-323 336.7294,-321.5979 331.5232,-319.2425 326.7448,-316.6049\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"320.5362,-312.896 328.1611,-313.7816 323.5409,-314.6909 326.5456,-316.4859 326.5456,-316.4859 326.5456,-316.4859 323.5409,-314.6909 324.9302,-319.1901 320.5362,-312.896 320.5362,-312.896\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"356.4157\" y=\"-330.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->13 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>3->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M563.6944,-364.7429C616.9848,-365.9969 775.6532,-362.9525 874.1407,-289 895.6465,-272.8517 908.8679,-244.1788 915.9289,-224.1808\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"918.1729,-217.5038 918.9287,-225.1426 917.0579,-220.8214 915.9428,-224.1391 915.9428,-224.1391 915.9428,-224.1391 917.0579,-220.8214 912.9569,-223.1355 918.1729,-217.5038 918.1729,-217.5038\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"730.2445\" y=\"-352.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->19 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>3->19</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M527.6663,-365.8708C512.7165,-367.432 491.0187,-369.6979 472.9806,-371.5817\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"466.0151,-372.3091 472.65,-368.449 469.4961,-371.9455 472.9772,-371.5819 472.9772,-371.5819 472.9772,-371.5819 469.4961,-371.9455 473.3044,-374.7149 466.0151,-372.3091 466.0151,-372.3091\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"491.0801\" y=\"-372.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 10 -->\n",
|
|
"<g id=\"node14\" class=\"node\">\n",
|
|
"<title>10</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"1158.1372,-142 1127.9719,-124 1158.1372,-106 1188.3025,-124 1158.1372,-142\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1158.1372\" y=\"-120.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">10</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->10 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>5->10</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M553.8736,-144.4326C560.012,-134.0684 569.4116,-121.4917 581.5801,-115 608.3171,-100.7363 619.2967,-111.1119 649.5801,-110 828.2214,-103.4412 1042.2644,-116.0036 1124.0752,-121.5525\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1131.1167,-122.035 1123.9177,-124.699 1127.6249,-121.7957 1124.1331,-121.5564 1124.1331,-121.5564 1124.1331,-121.5564 1127.6249,-121.7957 1124.3485,-118.4137 1131.1167,-122.035 1131.1167,-122.035\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"826.1407\" y=\"-113.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 11 -->\n",
|
|
"<g id=\"node15\" class=\"node\">\n",
|
|
"<title>11</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"1158.1372,-36 1127.9719,-18 1158.1372,0 1188.3025,-18 1158.1372,-36\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1158.1372\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">11</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->11 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>5->11</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M551.9051,-144.1211C557.659,-131.1274 567.4286,-113.7855 581.5801,-104 671.5597,-41.7812 954.9692,-16.0566 1063.8051,-5 1084.1448,-2.9337 1089.5368,-2.3218 1109.8051,-5 1117.0411,-5.9562 1124.7322,-7.6845 1131.8007,-9.5753\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1138.6217,-11.4977 1131.0297,-12.6307 1135.253,-10.5483 1131.8842,-9.5988 1131.8842,-9.5988 1131.8842,-9.5988 1135.253,-10.5483 1132.7387,-6.5669 1138.6217,-11.4977 1138.6217,-11.4977\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"827.6407\" y=\"-37.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 15 -->\n",
|
|
"<g id=\"node16\" class=\"node\">\n",
|
|
"<title>15</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"679.9123,-155 649.747,-137 679.9123,-119 710.0776,-137 679.9123,-155\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"679.9123\" y=\"-133.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">15</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->15 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>5->15</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M555.6538,-145.8469C562.0117,-137.7126 571.0117,-128.4626 581.5801,-124 605.2785,-113.9931 634.8031,-120.0919 655.2844,-126.9072\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"662.1273,-129.3225 654.478,-129.963 658.8269,-128.1575 655.5265,-126.9926 655.5265,-126.9926 655.5265,-126.9926 658.8269,-128.1575 656.5749,-124.0222 662.1273,-129.3225 662.1273,-129.3225\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"581.5801\" y=\"-127.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 16 -->\n",
|
|
"<g id=\"node17\" class=\"node\">\n",
|
|
"<title>16</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"679.9123,-209 649.747,-191 679.9123,-173 710.0776,-191 679.9123,-209\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"679.9123\" y=\"-187.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">16</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->16 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>5->16</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M561.71,-169.3122C567.7982,-172.1418 574.8752,-175.0732 581.5801,-177 602.4478,-182.9966 626.5763,-186.4812 645.7095,-188.4742\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"652.7808,-189.1671 645.5069,-191.6193 649.2974,-188.8257 645.8141,-188.4843 645.8141,-188.4843 645.8141,-188.4843 649.2974,-188.8257 646.1214,-185.3493 652.7808,-189.1671 652.7808,-189.1671\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"583.5801\" y=\"-189.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9 -->\n",
|
|
"<g id=\"node19\" class=\"node\">\n",
|
|
"<title>9</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"1259.4694\" cy=\"-185\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1259.4694\" y=\"-181.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">9</text>\n",
|
|
"</g>\n",
|
|
"<!-- 10->9 -->\n",
|
|
"<g id=\"edge24\" class=\"edge\">\n",
|
|
"<title>10->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1173.8218,-132.8786C1187.124,-140.4667 1206.6659,-151.7515 1223.4694,-162 1228.2777,-164.9326 1233.4011,-168.1492 1238.2295,-171.2232\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1244.1419,-175.0086 1236.5481,-173.887 1241.1942,-173.1214 1238.2466,-171.2341 1238.2466,-171.2341 1238.2466,-171.2341 1241.1942,-173.1214 1239.9452,-168.5813 1244.1419,-175.0086 1244.1419,-175.0086\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1206.4694\" y=\"-165.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 11->7 -->\n",
|
|
"<g id=\"edge25\" class=\"edge\">\n",
|
|
"<title>11->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1137.2403,-12.2409C1117.4104,-7.9223 1087.2403,-4.3902 1063.8051,-15 1054.728,-19.1094 1047.0324,-26.7638 1041.1155,-34.3562\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1036.9441,-40.0904 1038.5148,-32.5767 1039.0031,-37.2601 1041.0621,-34.4297 1041.0621,-34.4297 1041.0621,-34.4297 1039.0031,-37.2601 1043.6094,-36.2828 1036.9441,-40.0904 1036.9441,-40.0904\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1078.3051\" y=\"-18.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 14 -->\n",
|
|
"<g id=\"node21\" class=\"node\">\n",
|
|
"<title>14</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"784.6926\" cy=\"-210\" rx=\"21.3963\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"784.6926\" y=\"-206.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">14</text>\n",
|
|
"</g>\n",
|
|
"<!-- 15->14 -->\n",
|
|
"<g id=\"edge32\" class=\"edge\">\n",
|
|
"<title>15->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M694.0434,-146.8451C711.533,-159.03 741.5303,-179.929 762.198,-194.3281\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"768.0247,-198.3876 760.4805,-196.9706 765.1529,-196.3868 762.2812,-194.386 762.2812,-194.386 762.2812,-194.386 765.1529,-196.3868 764.0818,-191.8014 768.0247,-198.3876 768.0247,-198.3876\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"728.2445\" y=\"-185.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 16->5 -->\n",
|
|
"<g id=\"edge33\" class=\"edge\">\n",
|
|
"<title>16->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M667.8961,-179.7289C658.7284,-171.945 645.3654,-162.2573 631.5801,-158 611.5959,-151.8283 587.7492,-153.3041 570.2413,-155.9088\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"563.1558,-157.0752 569.5512,-152.8299 566.6093,-156.5066 570.0628,-155.9381 570.0628,-155.9381 570.0628,-155.9381 566.6093,-156.5066 570.5745,-159.0462 563.1558,-157.0752 563.1558,-157.0752\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"598.0801\" y=\"-161.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->10 -->\n",
|
|
"<g id=\"edge19\" class=\"edge\">\n",
|
|
"<title>7->10</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1044.3726,-63.3115C1061.1022,-70.8263 1087.5762,-83.0808 1109.8051,-95 1118.8765,-99.8641 1128.6531,-105.6271 1137.0239,-110.729\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1143.1161,-114.4758 1135.5033,-113.4918 1140.1348,-112.6422 1137.1535,-110.8087 1137.1535,-110.8087 1137.1535,-110.8087 1140.1348,-112.6422 1138.8037,-108.1255 1143.1161,-114.4758 1143.1161,-114.4758\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1078.8051\" y=\"-98.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->11 -->\n",
|
|
"<g id=\"edge20\" class=\"edge\">\n",
|
|
"<title>7->11</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1045.4831,-51.5708C1062.1462,-47.3218 1087.7774,-40.595 1109.8051,-34 1117.0447,-31.8325 1124.8398,-29.328 1132.0117,-26.9535\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1138.9322,-24.6396 1133.2923,-29.8468 1135.6128,-25.7495 1132.2934,-26.8594 1132.2934,-26.8594 1132.2934,-26.8594 1135.6128,-25.7495 1131.2945,-23.872 1138.9322,-24.6396 1138.9322,-24.6396\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1080.3051\" y=\"-50.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->13 -->\n",
|
|
"<g id=\"edge23\" class=\"edge\">\n",
|
|
"<title>9->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1241.138,-185.9247C1187.2838,-188.6414 1028.8825,-196.6321 957.7555,-200.2201\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"950.3374,-200.5944 957.1698,-197.0956 953.833,-200.418 957.3285,-200.2416 957.3285,-200.2416 957.3285,-200.2416 953.833,-200.418 957.4873,-203.3876 950.3374,-200.5944 950.3374,-200.5944\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1080.3051\" y=\"-197.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 12 -->\n",
|
|
"<g id=\"node20\" class=\"node\">\n",
|
|
"<title>12</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"1364.8016,-236 1334.6363,-218 1364.8016,-200 1394.9669,-218 1364.8016,-236\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"1364.8016\" y=\"-214.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">12</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->12 -->\n",
|
|
"<g id=\"edge22\" class=\"edge\">\n",
|
|
"<title>9->12</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1276.8629,-190.4493C1293.5161,-195.6666 1318.8773,-203.6122 1338.0921,-209.632\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1344.8656,-211.7542 1337.244,-212.6673 1341.5257,-210.7077 1338.1858,-209.6613 1338.1858,-209.6613 1338.1858,-209.6613 1341.5257,-210.7077 1339.1275,-206.6554 1344.8656,-211.7542 1344.8656,-211.7542\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1297.9694\" y=\"-205.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 12->9 -->\n",
|
|
"<g id=\"edge26\" class=\"edge\">\n",
|
|
"<title>12->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1354.774,-205.658C1345.8944,-195.7856 1331.964,-182.6867 1316.4694,-177 1305.951,-173.1396 1293.712,-174.1955 1283.2773,-176.6017\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1276.3849,-178.4394 1282.337,-173.5922 1279.7668,-177.5376 1283.1486,-176.6359 1283.1486,-176.6359 1283.1486,-176.6359 1279.7668,-177.5376 1283.9602,-179.6796 1276.3849,-178.4394 1276.3849,-178.4394\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1295.4694\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 14->13 -->\n",
|
|
"<g id=\"edge29\" class=\"edge\">\n",
|
|
"<title>14->13</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M806.2208,-208.75C828.0819,-207.4807 862.2759,-205.4952 887.9301,-204.0057\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"894.9221,-203.5997 888.1165,-207.1503 891.428,-203.8026 887.9339,-204.0055 887.9339,-204.0055 887.9339,-204.0055 891.428,-203.8026 887.7512,-200.8608 894.9221,-203.5997 894.9221,-203.5997\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"827.6407\" y=\"-210.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 14->18 -->\n",
|
|
"<g id=\"edge31\" class=\"edge\">\n",
|
|
"<title>14->18</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M763.2249,-212.6882C748.3708,-214.4546 728.1348,-216.6758 710.2445,-218 626.9095,-224.1682 528.8302,-227.0782 476.8688,-228.2779\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"469.8493,-228.436 476.7765,-225.1291 473.3484,-228.3571 476.8475,-228.2783 476.8475,-228.2783 476.8475,-228.2783 473.3484,-228.3571 476.9185,-231.4275 469.8493,-228.436 469.8493,-228.436\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"583.5801\" y=\"-227.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 14->12 -->\n",
|
|
"<g id=\"edge28\" class=\"edge\">\n",
|
|
"<title>14->12</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M803.8541,-218.8135C830.0555,-230.0391 878.8015,-248 922.4729,-248 922.4729,-248 922.4729,-248 1259.4694,-248 1288.3396,-248 1320.0171,-237.4466 1341.0158,-228.8585\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"1347.7083,-226.0394 1342.4801,-231.6599 1344.4828,-227.3982 1341.2572,-228.7569 1341.2572,-228.7569 1341.2572,-228.7569 1344.4828,-227.3982 1340.0344,-225.8539 1347.7083,-226.0394 1347.7083,-226.0394\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"1063.8051\" y=\"-251.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">i0 & !i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 17 -->\n",
|
|
"<g id=\"node22\" class=\"node\">\n",
|
|
"<title>17</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"922.4729,-163 892.3076,-145 922.4729,-127 952.6382,-145 922.4729,-163\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"922.4729\" y=\"-141.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">17</text>\n",
|
|
"</g>\n",
|
|
"<!-- 14->17 -->\n",
|
|
"<g id=\"edge30\" class=\"edge\">\n",
|
|
"<title>14->17</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M788.7281,-192.2098C793.7532,-174.6891 804.2201,-148.8783 824.1407,-137 846.3454,-123.7597 876.5493,-128.9134 897.6008,-135.3736\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"904.3644,-137.5898 896.7315,-138.4034 901.0384,-136.4999 897.7124,-135.4101 897.7124,-135.4101 897.7124,-135.4101 901.0384,-136.4999 898.6933,-132.4167 904.3644,-137.5898 904.3644,-137.5898\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"824.1407\" y=\"-140.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!i0 & !i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 17->14 -->\n",
|
|
"<g id=\"edge34\" class=\"edge\">\n",
|
|
"<title>17->14</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M903.1718,-151.6892C883.0105,-158.9426 850.6837,-171.3295 824.1407,-185 818.6489,-187.8285 812.932,-191.1876 807.6103,-194.5111\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"801.5819,-198.3623 805.7851,-191.9392 804.5314,-196.478 807.481,-194.5937 807.481,-194.5937 807.481,-194.5937 804.5314,-196.478 809.1768,-197.2483 801.5819,-198.3623 801.5819,-198.3623\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"838.6407\" y=\"-188.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!o0</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7c803ebf90> >"
|
|
]
|
|
},
|
|
"execution_count": 11,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"gi.minimize_lvl = 0\n",
|
|
"spot.apply_strategy(game, False, False)\n"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Input/Output\n",
|
|
"\n",
|
|
"An extension of the HOA format makes it possible to store the `state-player` property. This allows us to read the parity game constructed by `ltlsynt` using `spot.automaton()` like any other automaton."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"567pt\" height=\"353pt\"\n",
|
|
" viewBox=\"0.00 0.00 566.58 353.05\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 349.0543)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-349.0543 562.5801,-349.0543 562.5801,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"130.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"155.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"<text text-anchor=\"start\" x=\"171.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & (Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"218.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"234.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"277.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"293.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & (Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"340.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"356.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"396.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"412.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))))</text>\n",
|
|
"<text text-anchor=\"start\" x=\"221.7901\" y=\"-316.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 5]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"56\" cy=\"-167.0543\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-163.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->4 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-167.0543C4.178,-167.0543 17.9448,-167.0543 30.9241,-167.0543\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-167.0543 30.9808,-170.2044 34.4807,-167.0543 30.9807,-167.0544 30.9807,-167.0544 30.9807,-167.0544 34.4807,-167.0543 30.9807,-163.9044 37.9807,-167.0543 37.9807,-167.0543\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 10 -->\n",
|
|
"<g id=\"node12\" class=\"node\">\n",
|
|
"<title>10</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"156.3322,-159.0543 126.1669,-141.0543 156.3322,-123.0543 186.4975,-141.0543 156.3322,-159.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"156.3322\" y=\"-137.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">10</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->10 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>4->10</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.6566,-154.7003C75.9825,-149.7758 83.8872,-144.6644 92,-142.0543 102.1083,-138.8022 113.5804,-137.8275 124.0094,-137.8872\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"131.0333,-138.0785 123.9501,-141.0367 127.5346,-137.9832 124.0359,-137.8878 124.0359,-137.8878 124.0359,-137.8878 127.5346,-137.9832 124.1217,-134.739 131.0333,-138.0785 131.0333,-138.0785\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"94.5\" y=\"-160.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-145.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 11 -->\n",
|
|
"<g id=\"node13\" class=\"node\">\n",
|
|
"<title>11</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"156.3322,-213.0543 126.1669,-195.0543 156.3322,-177.0543 186.4975,-195.0543 156.3322,-213.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"156.3322\" y=\"-191.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">11</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->11 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>4->11</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.4765,-171.9315C88.7425,-176.1918 111.1619,-182.4485 128.8314,-187.3796\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"135.5889,-189.2654 127.9998,-190.4178 132.2178,-188.3246 128.8466,-187.3837 128.8466,-187.3837 128.8466,-187.3837 132.2178,-188.3246 129.6933,-184.3497 135.5889,-189.2654 135.5889,-189.2654\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"96.5\" y=\"-199.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-184.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"256.6644\" cy=\"-86.0543\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"256.6644\" y=\"-82.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"349.6433,-141.0543 326.6854,-123.0543 349.6433,-105.0543 372.6012,-123.0543 349.6433,-141.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"349.6433\" y=\"-119.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->5 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M274.5828,-83.4196C284.8889,-82.6247 297.8889,-82.8747 308.6644,-87.0543 318.9362,-91.0386 328.3355,-98.8369 335.5337,-106.1596\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"340.5871,-111.5956 333.5139,-108.6135 338.2041,-109.0321 335.821,-106.4687 335.821,-106.4687 335.821,-106.4687 338.2041,-109.0321 338.1281,-104.324 340.5871,-111.5956 340.5871,-111.5956\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"295.1644\" y=\"-105.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"292.6644\" y=\"-90.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"349.6433,-71.0543 326.6854,-53.0543 349.6433,-35.0543 372.6012,-53.0543 349.6433,-71.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"349.6433\" y=\"-49.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->6 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M263.2648,-69.1176C269.019,-56.9283 278.659,-41.3925 292.6644,-34.0543 305.1338,-27.5209 320.2972,-33.1619 331.8457,-39.9541\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"337.8495,-43.7759 330.2529,-42.6742 334.897,-41.8964 331.9444,-40.0169 331.9444,-40.0169 331.9444,-40.0169 334.897,-41.8964 333.636,-37.3596 337.8495,-43.7759 337.8495,-43.7759\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"297.1644\" y=\"-52.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"292.6644\" y=\"-37.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->0 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>5->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M327.4895,-123.7727C316.6059,-123.3765 303.53,-121.7499 292.6644,-117.0543 285.8503,-114.1096 279.3779,-109.4039 273.8492,-104.5394\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"268.6573,-99.6812 275.9208,-102.1639 271.2129,-102.0726 273.7686,-104.464 273.7686,-104.464 273.7686,-104.464 271.2129,-102.0726 271.6164,-106.7641 268.6573,-99.6812 268.6573,-99.6812\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"296.1644\" y=\"-140.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"292.6644\" y=\"-125.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"442.6222\" cy=\"-80.0543\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"442.6222\" y=\"-76.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->1 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>6->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.6403,-63.6236C367.3183,-70.9265 378.6131,-80.0236 390.6222,-84.0543 399.2061,-86.9353 409.0184,-86.9552 417.7896,-85.9096\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"424.8627,-84.8201 418.4239,-88.9991 421.4035,-85.353 417.9443,-85.8858 417.9443,-85.8858 417.9443,-85.8858 421.4035,-85.353 417.4648,-82.7726 424.8627,-84.8201 424.8627,-84.8201\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"394.1222\" y=\"-105.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"390.6222\" y=\"-90.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->6 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M429.3777,-67.4936C423.0117,-62.2913 414.9608,-56.8317 406.6222,-54.0543 397.1974,-50.9151 386.4005,-50.0846 376.7577,-50.2346\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"369.6506,-50.5185 376.5193,-47.0915 373.1478,-50.3787 376.6451,-50.239 376.6451,-50.239 376.6451,-50.239 373.1478,-50.3787 376.7708,-53.3865 369.6506,-50.5185 369.6506,-50.5185\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"395.1222\" y=\"-72.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"390.6222\" y=\"-57.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"535.6012,-38.0543 512.6433,-20.0543 535.6012,-2.0543 558.5591,-20.0543 535.6012,-38.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"535.6012\" y=\"-16.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->7 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M457.9758,-70.1465C474.1459,-59.7118 499.6171,-43.2751 516.9366,-32.0987\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"522.9164,-28.2399 518.7427,-34.6822 519.9755,-30.1377 517.0347,-32.0354 517.0347,-32.0354 517.0347,-32.0354 519.9755,-30.1377 515.3267,-29.3887 522.9164,-28.2399 522.9164,-28.2399\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"481.1222\" y=\"-74.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"478.6222\" y=\"-59.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->0 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>7->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M518.6106,-15.2181C476.4961,-4.2917 365.4384,17.9334 292.6644,-28.0543 280.1536,-35.9602 271.2822,-49.9539 265.4766,-62.215\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"262.563,-68.7988 262.5152,-61.1228 263.9794,-65.5982 265.3958,-62.3976 265.3958,-62.3976 265.3958,-62.3976 263.9794,-65.5982 268.2763,-63.6724 262.563,-68.7988 262.563,-68.7988\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"394.1222\" y=\"-19.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"390.6222\" y=\"-4.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"442.6222\" cy=\"-271.0543\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"442.6222\" y=\"-267.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"535.6012,-288.0543 512.6433,-270.0543 535.6012,-252.0543 558.5591,-270.0543 535.6012,-288.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"535.6012\" y=\"-266.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->8 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M460.5349,-273.4397C466.2986,-274.1013 472.7201,-274.7274 478.6222,-275.0543 488.6565,-275.61 499.662,-274.945 509.3026,-273.9375\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"516.37,-273.1149 509.7812,-277.0531 512.8935,-273.5196 509.417,-273.9243 509.417,-273.9243 509.417,-273.9243 512.8935,-273.5196 509.0527,-270.7954 516.37,-273.1149 516.37,-273.1149\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"482.1222\" y=\"-293.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"478.6222\" y=\"-278.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->2 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>8->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M525.8496,-259.4959C514.7619,-248.8376 495.9472,-234.7818 478.6222,-241.0543 471.7375,-243.5469 465.2441,-247.9948 459.7178,-252.7151\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"454.5353,-257.4638 457.5683,-250.4123 457.1158,-255.0993 459.6963,-252.7348 459.6963,-252.7348 459.6963,-252.7348 457.1158,-255.0993 461.8244,-255.0572 454.5353,-257.4638 454.5353,-257.4638\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"482.1222\" y=\"-259.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"478.6222\" y=\"-244.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"256.6644\" cy=\"-241.0543\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"256.6644\" y=\"-237.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9 -->\n",
|
|
"<g id=\"node11\" class=\"node\">\n",
|
|
"<title>9</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#000000\" points=\"349.6433,-289.0543 326.6854,-271.0543 349.6433,-253.0543 372.6012,-271.0543 349.6433,-289.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"349.6433\" y=\"-267.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">9</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->9 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>3->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M267.2134,-255.7681C273.6078,-263.3795 282.4877,-271.9227 292.6644,-276.0543 303.1303,-280.3033 315.5451,-279.7892 326.1105,-277.9059\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"333.0828,-276.425 326.89,-280.9607 329.6592,-277.1522 326.2355,-277.8794 326.2355,-277.8794 326.2355,-277.8794 329.6592,-277.1522 325.5811,-274.7981 333.0828,-276.425 333.0828,-276.425\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"296.1644\" y=\"-297.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"292.6644\" y=\"-282.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->2 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>9->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M372.6269,-271.0543C386.1484,-271.0543 403.27,-271.0543 417.1949,-271.0543\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"424.5588,-271.0543 417.5589,-274.2044 421.0588,-271.0543 417.5588,-271.0544 417.5588,-271.0544 417.5588,-271.0544 421.0588,-271.0543 417.5588,-267.9044 424.5588,-271.0543 424.5588,-271.0543\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"392.1222\" y=\"-289.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"390.6222\" y=\"-274.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->3 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>9->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M339.167,-260.9341C331.4252,-254.1801 320.2563,-245.8642 308.6644,-242.0543 300.2204,-239.279 290.5816,-238.4902 281.9155,-238.5705\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"274.9122,-238.8179 281.7966,-235.4226 278.41,-238.6943 281.9078,-238.5707 281.9078,-238.5707 281.9078,-238.5707 278.41,-238.6943 282.019,-241.7187 274.9122,-238.8179 274.9122,-238.8179\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"296.1644\" y=\"-260.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"292.6644\" y=\"-245.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"</g>\n",
|
|
"<!-- 10->0 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>10->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M165.4563,-128.1004C174.1563,-116.8397 188.3284,-101.1049 204.6644,-93.0543 212.8353,-89.0276 222.5572,-87.0786 231.3717,-86.1986\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"238.5084,-85.6887 231.7508,-89.3296 235.0173,-85.9382 231.5262,-86.1877 231.5262,-86.1877 231.5262,-86.1877 235.0173,-85.9382 231.3017,-83.0457 238.5084,-85.6887 238.5084,-85.6887\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"206.1644\" y=\"-111.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"204.6644\" y=\"-96.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 10->3 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>10->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M172.777,-149.4895C186.669,-157.1761 206.5074,-169.5259 220.6644,-184.0543 230.497,-194.1449 239.0424,-207.3488 245.3371,-218.5071\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"248.776,-224.8016 242.6555,-220.1688 247.0979,-221.7301 245.4198,-218.6586 245.4198,-218.6586 245.4198,-218.6586 247.0979,-221.7301 248.1842,-217.1483 248.776,-224.8016 248.776,-224.8016\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"208.1644\" y=\"-202.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"204.6644\" y=\"-187.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 11->1 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>11->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M184.3889,-193.6481C227.0638,-190.5578 309.9394,-180.7726 372.6222,-150.0543 395.5765,-138.8054 415.487,-116.9988 428.1422,-100.6995\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"432.4686,-94.9735 430.762,-102.4575 430.3586,-97.766 428.2487,-100.5586 428.2487,-100.5586 428.2487,-100.5586 430.3586,-97.766 425.7354,-98.6596 432.4686,-94.9735 432.4686,-94.9735\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"294.1644\" y=\"-195.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"292.6644\" y=\"-180.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 11->3 -->\n",
|
|
"<g id=\"edge19\" class=\"edge\">\n",
|
|
"<title>11->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M173.8087,-203.0669C190.4099,-210.6781 215.4705,-222.1678 233.6828,-230.5178\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"240.0544,-233.439 232.3784,-233.385 236.8728,-231.9803 233.6912,-230.5216 233.6912,-230.5216 233.6912,-230.5216 236.8728,-231.9803 235.0041,-227.6582 240.0544,-233.439 240.0544,-233.439\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"208.1644\" y=\"-241.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"204.6644\" y=\"-226.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7c803ebd20> >"
|
|
]
|
|
},
|
|
"execution_count": 12,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"game = spot.automaton(\"ltlsynt --ins=a --outs=b -f '!b & GFa <-> Gb' --print-game-hoa |\");\n",
|
|
"game"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"In the graphical output, player 0 is represented by circles (or ellipses or rounded rectangles depending on the situations), while player 1's states are diamond shaped. In the case of `ltlsynt`, player 0 plays the role of the environment, and player 1 plays the role of the controler.\n",
|
|
"\n",
|
|
"In the HOA output, a header `spot-state-player` (or `spot.state-player` in HOA 1.1) lists the owner of each state."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"HOA: v1\n",
|
|
"States: 12\n",
|
|
"Start: 4\n",
|
|
"AP: 2 \"b\" \"a\"\n",
|
|
"acc-name: parity max odd 5\n",
|
|
"Acceptance: 5 Fin(4) & (Inf(3) | (Fin(2) & (Inf(1) | Fin(0))))\n",
|
|
"properties: trans-labels explicit-labels trans-acc colored complete\n",
|
|
"properties: deterministic\n",
|
|
"spot-state-player: 0 0 0 0 0 1 1 1 1 1 1 1\n",
|
|
"--BODY--\n",
|
|
"State: 0\n",
|
|
"[!1] 5 {1}\n",
|
|
"[1] 6 {1}\n",
|
|
"State: 1\n",
|
|
"[1] 6 {1}\n",
|
|
"[!1] 7 {1}\n",
|
|
"State: 2\n",
|
|
"[t] 8 {1}\n",
|
|
"State: 3\n",
|
|
"[t] 9 {1}\n",
|
|
"State: 4\n",
|
|
"[!1] 10 {1}\n",
|
|
"[1] 11 {1}\n",
|
|
"State: 5\n",
|
|
"[t] 0 {3}\n",
|
|
"State: 6\n",
|
|
"[t] 1 {4}\n",
|
|
"State: 7\n",
|
|
"[t] 0 {4}\n",
|
|
"State: 8\n",
|
|
"[t] 2 {3}\n",
|
|
"State: 9\n",
|
|
"[!0] 2 {3}\n",
|
|
"[0] 3 {4}\n",
|
|
"State: 10\n",
|
|
"[!0] 0 {3}\n",
|
|
"[0] 3 {3}\n",
|
|
"State: 11\n",
|
|
"[!0] 1 {3}\n",
|
|
"[0] 3 {3}\n",
|
|
"--END--\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(game.to_str('hoa'))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"Here is the solution of this particular game."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"True"
|
|
]
|
|
},
|
|
"execution_count": 14,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"spot.solve_parity_game(game)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 15,
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"567pt\" height=\"353pt\"\n",
|
|
" viewBox=\"0.00 0.00 566.58 353.05\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 349.0543)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-349.0543 562.5801,-349.0543 562.5801,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"130.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"155.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"<text text-anchor=\"start\" x=\"171.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & (Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"218.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"234.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"277.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"293.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & (Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"340.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"356.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"396.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"412.2901\" y=\"-330.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">))))</text>\n",
|
|
"<text text-anchor=\"start\" x=\"221.7901\" y=\"-316.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 5]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"56\" cy=\"-167.0543\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-163.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">4</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->4 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->4</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-167.0543C4.178,-167.0543 17.9448,-167.0543 30.9241,-167.0543\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-167.0543 30.9808,-170.2044 34.4807,-167.0543 30.9807,-167.0544 30.9807,-167.0544 30.9807,-167.0544 34.4807,-167.0543 30.9807,-163.9044 37.9807,-167.0543 37.9807,-167.0543\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 10 -->\n",
|
|
"<g id=\"node12\" class=\"node\">\n",
|
|
"<title>10</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"156.3322,-159.0543 126.1669,-141.0543 156.3322,-123.0543 186.4975,-141.0543 156.3322,-159.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"156.3322\" y=\"-137.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">10</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->10 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>4->10</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M69.6566,-154.7003C75.9825,-149.7758 83.8872,-144.6644 92,-142.0543 102.1083,-138.8022 113.5804,-137.8275 124.0094,-137.8872\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"131.0333,-138.0785 123.9501,-141.0367 127.5346,-137.9832 124.0359,-137.8878 124.0359,-137.8878 124.0359,-137.8878 127.5346,-137.9832 124.1217,-134.739 131.0333,-138.0785 131.0333,-138.0785\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"94.5\" y=\"-160.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-145.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 11 -->\n",
|
|
"<g id=\"node13\" class=\"node\">\n",
|
|
"<title>11</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"156.3322,-213.0543 126.1669,-195.0543 156.3322,-177.0543 186.4975,-195.0543 156.3322,-213.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"156.3322\" y=\"-191.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">11</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->11 -->\n",
|
|
"<g id=\"edge9\" class=\"edge\">\n",
|
|
"<title>4->11</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M73.4765,-171.9315C88.7425,-176.1918 111.1619,-182.4485 128.8314,-187.3796\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"135.5889,-189.2654 127.9998,-190.4178 132.2178,-188.3246 128.8466,-187.3837 128.8466,-187.3837 128.8466,-187.3837 132.2178,-188.3246 129.6933,-184.3497 135.5889,-189.2654 135.5889,-189.2654\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"96.5\" y=\"-199.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-184.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"256.6644\" cy=\"-86.0543\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"256.6644\" y=\"-82.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>5</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"349.6433,-141.0543 326.6854,-123.0543 349.6433,-105.0543 372.6012,-123.0543 349.6433,-141.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"349.6433\" y=\"-119.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">5</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->5 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->5</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M274.5828,-83.4196C284.8889,-82.6247 297.8889,-82.8747 308.6644,-87.0543 318.9362,-91.0386 328.3355,-98.8369 335.5337,-106.1596\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"340.5871,-111.5956 333.5139,-108.6135 338.2041,-109.0321 335.821,-106.4687 335.821,-106.4687 335.821,-106.4687 338.2041,-109.0321 338.1281,-104.324 340.5871,-111.5956 340.5871,-111.5956\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"295.1644\" y=\"-105.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"292.6644\" y=\"-90.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"349.6433,-71.0543 326.6854,-53.0543 349.6433,-35.0543 372.6012,-53.0543 349.6433,-71.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"349.6433\" y=\"-49.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->6 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M263.2648,-69.1176C269.019,-56.9283 278.659,-41.3925 292.6644,-34.0543 305.1338,-27.5209 320.2972,-33.1619 331.8457,-39.9541\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"337.8495,-43.7759 330.2529,-42.6742 334.6285,-42.3182 331.6759,-40.4387 331.9444,-40.0169 332.2129,-39.5951 335.1655,-41.4746 333.636,-37.3596 337.8495,-43.7759 337.8495,-43.7759\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"297.1644\" y=\"-52.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"292.6644\" y=\"-37.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 5->0 -->\n",
|
|
"<g id=\"edge10\" class=\"edge\">\n",
|
|
"<title>5->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M327.4895,-123.7727C316.6059,-123.3765 303.53,-121.7499 292.6644,-117.0543 285.8503,-114.1096 279.3779,-109.4039 273.8492,-104.5394\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"268.6573,-99.6812 275.9208,-102.1639 271.2129,-102.0726 273.7686,-104.464 273.7686,-104.464 273.7686,-104.464 271.2129,-102.0726 271.6164,-106.7641 268.6573,-99.6812 268.6573,-99.6812\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"296.1644\" y=\"-140.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"292.6644\" y=\"-125.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" cx=\"442.6222\" cy=\"-80.0543\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"442.6222\" y=\"-76.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->1 -->\n",
|
|
"<g id=\"edge11\" class=\"edge\">\n",
|
|
"<title>6->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M359.6403,-63.6236C367.3183,-70.9265 378.6131,-80.0236 390.6222,-84.0543 399.2061,-86.9353 409.0184,-86.9552 417.7896,-85.9096\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"424.8627,-84.8201 418.4239,-88.9991 421.4035,-85.353 417.9443,-85.8858 417.9443,-85.8858 417.9443,-85.8858 421.4035,-85.353 417.4648,-82.7726 424.8627,-84.8201 424.8627,-84.8201\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"394.1222\" y=\"-105.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"390.6222\" y=\"-90.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->6 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>1->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M429.3777,-67.4936C423.0117,-62.2913 414.9608,-56.8317 406.6222,-54.0543 397.1974,-50.9151 386.4005,-50.0846 376.7577,-50.2346\"/>\n",
|
|
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"369.6506,-50.5185 376.5193,-47.0915 373.1279,-49.8791 376.6251,-49.7394 376.6451,-50.239 376.665,-50.7386 373.1678,-50.8783 376.7708,-53.3865 369.6506,-50.5185 369.6506,-50.5185\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"395.1222\" y=\"-72.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"390.6222\" y=\"-57.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>7</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"535.6012,-38.0543 512.6433,-20.0543 535.6012,-2.0543 558.5591,-20.0543 535.6012,-38.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"535.6012\" y=\"-16.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">7</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->7 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>1->7</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M457.9758,-70.1465C474.1459,-59.7118 499.6171,-43.2751 516.9366,-32.0987\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"522.9164,-28.2399 518.7427,-34.6822 519.9755,-30.1377 517.0347,-32.0354 517.0347,-32.0354 517.0347,-32.0354 519.9755,-30.1377 515.3267,-29.3887 522.9164,-28.2399 522.9164,-28.2399\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"481.1222\" y=\"-74.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!a</text>\n",
|
|
"<text text-anchor=\"start\" x=\"478.6222\" y=\"-59.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 7->0 -->\n",
|
|
"<g id=\"edge12\" class=\"edge\">\n",
|
|
"<title>7->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M518.6106,-15.2181C476.4961,-4.2917 365.4384,17.9334 292.6644,-28.0543 280.1536,-35.9602 271.2822,-49.9539 265.4766,-62.215\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"262.563,-68.7988 262.5152,-61.1228 263.9794,-65.5982 265.3958,-62.3976 265.3958,-62.3976 265.3958,-62.3976 263.9794,-65.5982 268.2763,-63.6724 262.563,-68.7988 262.563,-68.7988\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"394.1222\" y=\"-19.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"390.6222\" y=\"-4.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node8\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"442.6222\" cy=\"-271.0543\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"442.6222\" y=\"-267.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node9\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"535.6012,-288.0543 512.6433,-270.0543 535.6012,-252.0543 558.5591,-270.0543 535.6012,-288.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"535.6012\" y=\"-266.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->8 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>2->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M460.5349,-273.4397C466.2986,-274.1013 472.7201,-274.7274 478.6222,-275.0543 488.6565,-275.61 499.662,-274.945 509.3026,-273.9375\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"516.37,-273.1149 509.7812,-277.0531 512.8935,-273.5196 509.417,-273.9243 509.417,-273.9243 509.417,-273.9243 512.8935,-273.5196 509.0527,-270.7954 516.37,-273.1149 516.37,-273.1149\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"482.1222\" y=\"-293.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"478.6222\" y=\"-278.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 8->2 -->\n",
|
|
"<g id=\"edge13\" class=\"edge\">\n",
|
|
"<title>8->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M525.8496,-259.4959C514.7619,-248.8376 495.9472,-234.7818 478.6222,-241.0543 471.7375,-243.5469 465.2441,-247.9948 459.7178,-252.7151\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"454.5353,-257.4638 457.5683,-250.4123 456.778,-254.7307 459.3586,-252.3661 459.6963,-252.7348 460.0341,-253.1034 457.4536,-255.4679 461.8244,-255.0572 454.5353,-257.4638 454.5353,-257.4638\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"482.1222\" y=\"-259.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"478.6222\" y=\"-244.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node10\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"256.6644\" cy=\"-241.0543\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"256.6644\" y=\"-237.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9 -->\n",
|
|
"<g id=\"node11\" class=\"node\">\n",
|
|
"<title>9</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"349.6433,-289.0543 326.6854,-271.0543 349.6433,-253.0543 372.6012,-271.0543 349.6433,-289.0543\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"349.6433\" y=\"-267.3543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">9</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->9 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>3->9</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M267.2134,-255.7681C273.6078,-263.3795 282.4877,-271.9227 292.6644,-276.0543 303.1303,-280.3033 315.5451,-279.7892 326.1105,-277.9059\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"333.0828,-276.425 326.89,-280.9607 329.6592,-277.1522 326.2355,-277.8794 326.2355,-277.8794 326.2355,-277.8794 329.6592,-277.1522 325.5811,-274.7981 333.0828,-276.425 333.0828,-276.425\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"296.1644\" y=\"-297.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"292.6644\" y=\"-282.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->2 -->\n",
|
|
"<g id=\"edge14\" class=\"edge\">\n",
|
|
"<title>9->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M372.6269,-271.0543C386.1484,-271.0543 403.27,-271.0543 417.1949,-271.0543\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"424.5588,-271.0543 417.5589,-274.2044 421.0589,-271.5543 417.5589,-271.5544 417.5588,-271.0544 417.5588,-270.5544 421.0588,-270.5543 417.5588,-267.9044 424.5588,-271.0543 424.5588,-271.0543\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"392.1222\" y=\"-289.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"390.6222\" y=\"-274.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 9->3 -->\n",
|
|
"<g id=\"edge15\" class=\"edge\">\n",
|
|
"<title>9->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M339.167,-260.9341C331.4252,-254.1801 320.2563,-245.8642 308.6644,-242.0543 300.2204,-239.279 290.5816,-238.4902 281.9155,-238.5705\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"274.9122,-238.8179 281.7966,-235.4226 278.41,-238.6943 281.9078,-238.5707 281.9078,-238.5707 281.9078,-238.5707 278.41,-238.6943 282.019,-241.7187 274.9122,-238.8179 274.9122,-238.8179\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"296.1644\" y=\"-260.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"292.6644\" y=\"-245.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#33a02c\">❹</text>\n",
|
|
"</g>\n",
|
|
"<!-- 10->0 -->\n",
|
|
"<g id=\"edge16\" class=\"edge\">\n",
|
|
"<title>10->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M165.4563,-128.1004C174.1563,-116.8397 188.3284,-101.1049 204.6644,-93.0543 212.8353,-89.0276 222.5572,-87.0786 231.3717,-86.1986\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"238.5084,-85.6887 231.7508,-89.3296 235.0173,-85.9382 231.5262,-86.1877 231.5262,-86.1877 231.5262,-86.1877 235.0173,-85.9382 231.3017,-83.0457 238.5084,-85.6887 238.5084,-85.6887\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"206.1644\" y=\"-111.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"204.6644\" y=\"-96.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 10->3 -->\n",
|
|
"<g id=\"edge17\" class=\"edge\">\n",
|
|
"<title>10->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M172.777,-149.4895C186.669,-157.1761 206.5074,-169.5259 220.6644,-184.0543 230.497,-194.1449 239.0424,-207.3488 245.3371,-218.5071\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"248.776,-224.8016 242.6555,-220.1688 246.6591,-221.9698 244.9811,-218.8983 245.4198,-218.6586 245.8586,-218.4188 247.5367,-221.4903 248.1842,-217.1483 248.776,-224.8016 248.776,-224.8016\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"208.1644\" y=\"-202.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"204.6644\" y=\"-187.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 11->1 -->\n",
|
|
"<g id=\"edge18\" class=\"edge\">\n",
|
|
"<title>11->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M184.3889,-193.6481C227.0638,-190.5578 309.9394,-180.7726 372.6222,-150.0543 395.5765,-138.8054 415.487,-116.9988 428.1422,-100.6995\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"432.4686,-94.9735 430.762,-102.4575 430.3586,-97.766 428.2487,-100.5586 428.2487,-100.5586 428.2487,-100.5586 430.3586,-97.766 425.7354,-98.6596 432.4686,-94.9735 432.4686,-94.9735\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"294.1644\" y=\"-195.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">!b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"292.6644\" y=\"-180.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 11->3 -->\n",
|
|
"<g id=\"edge19\" class=\"edge\">\n",
|
|
"<title>11->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M173.8087,-203.0669C190.4099,-210.6781 215.4705,-222.1678 233.6828,-230.5178\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"240.0544,-233.439 232.3784,-233.385 236.6644,-232.4348 233.4829,-230.9761 233.6912,-230.5216 233.8996,-230.0671 237.0812,-231.5258 235.0041,-227.6582 240.0544,-233.439 240.0544,-233.439\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"208.1644\" y=\"-241.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">b</text>\n",
|
|
"<text text-anchor=\"start\" x=\"204.6644\" y=\"-226.8543\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7c803ddea0> >"
|
|
]
|
|
},
|
|
"execution_count": 15,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"spot.highlight_strategy(game)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"<h2>Reading an aiger-file</h2>\n",
|
|
"\n",
|
|
"<p>Read an aiger file. Note that we do not support the full \n",
|
|
" <a href=\"http://fmv.jku.at/aiger/FORMAT.aiger\">syntax</a>, but are restricted to:\n",
|
|
" <ul>\n",
|
|
" <li>Input variables start at index 2 and are consecutively numbered.</li>\n",
|
|
" <li>Latch variables start at index (1 + #inputs) * 2 and are consecutively numbered.</li>\n",
|
|
" <li>If inputs or outputs are named in the comments, all of them have to be named.</li>\n",
|
|
" <li>Gate number $n$ can only have latches, inputs or previously defined gates ($<n$). </li>\n",
|
|
" </ul>\n",
|
|
"</p>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 16,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"aag 5 2 0 2 3\n",
|
|
"2\n",
|
|
"4\n",
|
|
"10\n",
|
|
"6\n",
|
|
"6 2 4\n",
|
|
"8 3 5\n",
|
|
"10 7 9\n",
|
|
"i0 a\n",
|
|
"i1 b\n",
|
|
"o0 c\n",
|
|
"o1 d\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"#aiger file \n",
|
|
"aag_txt = \"\"\"aag 5 2 0 2 3\n",
|
|
"2\n",
|
|
"4\n",
|
|
"10\n",
|
|
"6\n",
|
|
"6 2 4\n",
|
|
"8 3 5\n",
|
|
"10 7 9\n",
|
|
"i0 a\n",
|
|
"i1 b\n",
|
|
"o0 c\n",
|
|
"o1 d\"\"\"\n",
|
|
"print(aag_txt)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 17,
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": [
|
|
"this_aig = spot.aiger_circuit(aag_txt)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 18,
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"202pt\" height=\"289pt\"\n",
|
|
" viewBox=\"0.00 0.00 202.39 289.50\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 285.496)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-285.496 198.3922,-285.496 198.3922,4 -4,4\"/>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node1\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"44.1961,-46 5.203,-11.5 83.1892,-11.5 44.1961,-46\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"44.1961\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">i0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>6</title>\n",
|
|
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"129.1961\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"129.1961\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">6</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->6 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>2->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M57.1057,-34.6946C70.5523,-46.8756 91.844,-66.1635 107.8083,-80.6252\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"105.8402,-83.5649 115.6012,-87.6847 110.5398,-78.377 105.8402,-83.5649\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>8</title>\n",
|
|
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"65.1961\" cy=\"-100\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"65.1961\" y=\"-96.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">8</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->8 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>2->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M49.2796,-41.6396C51.988,-51.5705 55.3586,-63.9293 58.2998,-74.7138\"/>\n",
|
|
"<ellipse fill=\"#000000\" stroke=\"#000000\" cx=\"59.3947\" cy=\"-78.7286\" rx=\"4\" ry=\"4\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>4</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"140.1961,-46 101.203,-11.5 179.1892,-11.5 140.1961,-46\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"140.1961\" y=\"-19.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">i1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 4->6 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>4->6</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M137.2483,-43.6346C136.0091,-52.3088 134.5478,-62.5377 133.2126,-71.8842\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"129.7267,-71.5372 131.7773,-81.9317 136.6564,-72.5272 129.7267,-71.5372\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 4->8 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>4->8</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M128.146,-35.3714C116.1171,-47.7211 97.4731,-66.8622 83.593,-81.1125\"/>\n",
|
|
"<ellipse fill=\"#000000\" stroke=\"#000000\" cx=\"80.7602\" cy=\"-84.0208\" rx=\"4\" ry=\"4\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 10 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>10</title>\n",
|
|
"<ellipse fill=\"none\" stroke=\"#000000\" cx=\"65.1961\" cy=\"-176.748\" rx=\"22.9987\" ry=\"22.9987\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"65.1961\" y=\"-173.048\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">10</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->10 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>6->10</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M117.4575,-114.0768C108.4229,-124.9109 95.7279,-140.1346 85.1125,-152.8645\"/>\n",
|
|
"<ellipse fill=\"#000000\" stroke=\"#000000\" cx=\"82.343\" cy=\"-156.1856\" rx=\"4\" ry=\"4\"/>\n",
|
|
"</g>\n",
|
|
"<!-- o1o1 -->\n",
|
|
"<g id=\"node7\" class=\"node\">\n",
|
|
"<title>o1o1</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"150.1961,-235.496 194.5891,-269.996 105.803,-269.996 150.1961,-235.496\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"150.1961\" y=\"-254.796\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">o1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 6->o1o1 -->\n",
|
|
"<g id=\"edge8\" class=\"edge\">\n",
|
|
"<title>6->o1o1:s</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M133.7528,-117.8359C139.4465,-141.6042 148.6168,-185.3313 150.0149,-225.4017\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"146.5171,-225.5604 150.1961,-235.496 153.516,-225.4347 146.5171,-225.5604\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 8->10 -->\n",
|
|
"<g id=\"edge6\" class=\"edge\">\n",
|
|
"<title>8->10</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M65.1961,-118.1882C65.1961,-126.4164 65.1961,-136.3755 65.1961,-145.729\"/>\n",
|
|
"<ellipse fill=\"#000000\" stroke=\"#000000\" cx=\"65.1961\" cy=\"-149.7341\" rx=\"4\" ry=\"4\"/>\n",
|
|
"</g>\n",
|
|
"<!-- o0o0 -->\n",
|
|
"<g id=\"node6\" class=\"node\">\n",
|
|
"<title>o0o0</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"44.1961,-235.496 88.5891,-269.996 -.197,-269.996 44.1961,-235.496\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"44.1961\" y=\"-254.796\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 10->o0o0 -->\n",
|
|
"<g id=\"edge7\" class=\"edge\">\n",
|
|
"<title>10->o0o0:s</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M54.2041,-196.7859C50.3933,-205.093 46.6692,-215.159 45.0453,-225.3389\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"41.5415,-225.2391 44.1961,-235.496 48.5172,-225.8224 41.5415,-225.2391\"/>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.jupyter.SVG object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"display(this_aig.show())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 19,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"aag 5 2 0 2 3\n",
|
|
"2\n",
|
|
"4\n",
|
|
"10\n",
|
|
"6\n",
|
|
"6 2 4\n",
|
|
"8 3 5\n",
|
|
"10 7 9\n",
|
|
"i0 i0\n",
|
|
"i1 i1\n",
|
|
"o0 o0\n",
|
|
"o1 o1\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(this_aig.to_str())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 20,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"((2, 4), (3, 5), (7, 9))\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"print(this_aig.gates())"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"<h2>Verifying an implementation</h2>\n",
|
|
"\n",
|
|
"<p>\n",
|
|
" An aiger circuit can be transformed into a monitor. If the aiger represents the implementation of a strategy in the context of active control, it can be check for correctness. This is done by computing the intersecting of the monitor and the negation of the specification.\n",
|
|
"</p>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 21,
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"550pt\" height=\"115pt\"\n",
|
|
" viewBox=\"0.00 0.00 550.00 115.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.0 1.0) rotate(0) translate(4 111)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-111 546,-111 546,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"268\" y=\"-91.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">t</text>\n",
|
|
"<text text-anchor=\"start\" x=\"260\" y=\"-76.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[all]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#000000\" cx=\"271\" cy=\"-18\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"271\" y=\"-14.3\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M216.1233,-18C219.178,-18 232.9448,-18 245.9241,-18\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"252.9807,-18 245.9808,-21.1501 249.4807,-18 245.9807,-18.0001 245.9807,-18.0001 245.9807,-18.0001 249.4807,-18 245.9807,-14.8501 252.9807,-18 252.9807,-18\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 0->0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M264.6208,-35.0373C263.3189,-44.8579 265.4453,-54 271,-54 275.166,-54 277.4036,-48.8576 277.7128,-42.1433\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"277.3792,-35.0373 280.8541,-41.8818 277.5434,-38.5335 277.7076,-42.0296 277.7076,-42.0296 277.7076,-42.0296 277.5434,-38.5335 274.561,-42.1774 277.3792,-35.0373 277.3792,-35.0373\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"0\" y=\"-57.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">(!i0 & !i1 & !o0 & !o1) | (!i0 & i1 & o0 & !o1) | (i0 & !i1 & o0 & !o1) | (i0 & i1 & !o0 & o1)</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7c804061b0> >"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"aigasmon = this_aig.as_automaton()\n",
|
|
"display(aigasmon)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"<h2>Incomplete circuit</h2>\n",
|
|
"\n",
|
|
"<p>\n",
|
|
" It can happen that propositions declared as output are ommited in the aig circuit.\n",
|
|
" This happens if the output does not appear in the strategy. Since it does not appear in the\n",
|
|
" strategy it can take arbritrary values.\n",
|
|
"</p>"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 22,
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"True\n"
|
|
]
|
|
},
|
|
{
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"383pt\" height=\"110pt\"\n",
|
|
" viewBox=\"0.00 0.00 383.00 109.68\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
|
|
"<g id=\"graph0\" class=\"graph\" transform=\"scale(1.0 1.0) rotate(0) translate(4 105.6845)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-105.6845 379,-105.6845 379,4 -4,4\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"73.5\" y=\"-87.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"95.5\" y=\"-87.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"<text text-anchor=\"start\" x=\"111.5\" y=\"-87.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | (Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"154.5\" y=\"-87.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
|
|
"<text text-anchor=\"start\" x=\"170.5\" y=\"-87.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) & (Inf(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"217.5\" y=\"-87.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"<text text-anchor=\"start\" x=\"233.5\" y=\"-87.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">) | Fin(</text>\n",
|
|
"<text text-anchor=\"start\" x=\"273.5\" y=\"-87.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
|
|
"<text text-anchor=\"start\" x=\"289.5\" y=\"-87.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">)))</text>\n",
|
|
"<text text-anchor=\"start\" x=\"130\" y=\"-73.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">[parity max odd 4]</text>\n",
|
|
"<!-- I -->\n",
|
|
"<!-- 1 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>1</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"56\" cy=\"-30.6845\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"56\" y=\"-26.9845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"</g>\n",
|
|
"<!-- I->1 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>I->1</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M1.1233,-30.6845C4.178,-30.6845 17.9448,-30.6845 30.9241,-30.6845\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"37.9807,-30.6845 30.9808,-33.8346 34.4807,-30.6846 30.9807,-30.6846 30.9807,-30.6846 30.9807,-30.6846 34.4807,-30.6846 30.9807,-27.5346 37.9807,-30.6845 37.9807,-30.6845\"/>\n",
|
|
"</g>\n",
|
|
"<!-- 3 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>3</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"153,-48.6845 126,-30.6845 153,-12.6845 180,-30.6845 153,-48.6845\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"153\" y=\"-26.9845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">3</text>\n",
|
|
"</g>\n",
|
|
"<!-- 1->3 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>1->3</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M74.245,-30.6845C86.6958,-30.6845 103.576,-30.6845 118.5154,-30.6845\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"125.6654,-30.6845 118.6654,-33.8346 122.1654,-30.6846 118.6654,-30.6846 118.6654,-30.6846 118.6654,-30.6846 122.1654,-30.6846 118.6654,-27.5346 125.6654,-30.6845 125.6654,-30.6845\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"95.5\" y=\"-49.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"92\" y=\"-34.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<ellipse fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" cx=\"251\" cy=\"-30.6845\" rx=\"18\" ry=\"18\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"251\" y=\"-26.9845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<polygon fill=\"#ffffaa\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"348,-48.6845 321,-30.6845 348,-12.6845 375,-30.6845 348,-48.6845\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"348\" y=\"-26.9845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">2</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->2 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>0->2</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M268.8944,-33.6659C274.6572,-34.4928 281.0827,-35.2756 287,-35.6845 297.4067,-36.4037 308.8025,-35.8361 318.8983,-34.8627\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"325.9871,-34.0948 319.3671,-37.9804 322.5075,-34.4718 319.0278,-34.8487 319.0278,-34.8487 319.0278,-34.8487 322.5075,-34.4718 318.6886,-31.7171 325.9871,-34.0948 325.9871,-34.0948\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"290.5\" y=\"-54.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"287\" y=\"-39.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->0 -->\n",
|
|
"<g id=\"edge4\" class=\"edge\">\n",
|
|
"<title>2->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M335.974,-20.1884C327.4195,-13.45 315.3043,-5.3058 303,-1.6845 296.1782,.3232 293.7063,.6806 287,-1.6845 280.4412,-3.9977 274.1978,-8.0677 268.8077,-12.4402\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"263.3193,-17.2346 266.5187,-10.2571 265.6262,-14.5555 268.2621,-12.2528 268.5911,-12.6294 268.92,-13.0059 266.2841,-15.3086 270.6635,-15.0017 263.3193,-17.2346 263.3193,-17.2346\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"290.5\" y=\"-20.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">1</text>\n",
|
|
"<text text-anchor=\"start\" x=\"287\" y=\"-5.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"<!-- 3->0 -->\n",
|
|
"<g id=\"edge5\" class=\"edge\">\n",
|
|
"<title>3->0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#33a02c\" stroke-width=\"2\" d=\"M180.0384,-30.6845C194.188,-30.6845 211.4182,-30.6845 225.3568,-30.6845\"/>\n",
|
|
"<polygon fill=\"#33a02c\" stroke=\"#33a02c\" stroke-width=\"2\" points=\"232.7214,-30.6845 225.7214,-33.8346 229.2214,-31.1846 225.7214,-31.1846 225.7214,-30.6846 225.7214,-30.1846 229.2214,-30.1846 225.7213,-27.5346 232.7214,-30.6845 232.7214,-30.6845\"/>\n",
|
|
"<text text-anchor=\"start\" x=\"198\" y=\"-49.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"<text text-anchor=\"start\" x=\"198.5\" y=\"-34.4845\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#6a3d9a\">❸</text>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f7c80406540> >"
|
|
]
|
|
},
|
|
"execution_count": 22,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"game = spot.create_game(\"o0\", [\"o0\", \"o1\"])\n",
|
|
"print(spot.solve_game(game))\n",
|
|
"spot.highlight_strategy(game)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 23,
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"160pt\" height=\"198pt\"\n",
|
|
" viewBox=\"0.00 0.00 159.70 198.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.0 1.0) rotate(0) translate(4 194)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-194 155.6961,-194 155.6961,4 -4,4\"/>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node1\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"77.1961,-108 11.1961,-108 11.1961,-72 77.1961,-72 77.1961,-108\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"44.1961\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">L0_out</text>\n",
|
|
"</g>\n",
|
|
"<!-- o0o0 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>o0o0</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"44.1961,-144 88.5891,-178.5 -.197,-178.5 44.1961,-144\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"44.1961\" y=\"-163.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->o0o0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>2->o0o0:s</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M44.1961,-108C44.1961,-116.2031 44.1961,-126.2373 44.1961,-135.9568\"/>\n",
|
|
"<ellipse fill=\"#000000\" stroke=\"#000000\" cx=\"44.1961\" cy=\"-140\" rx=\"4\" ry=\"4\"/>\n",
|
|
"</g>\n",
|
|
"<!-- L0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>L0</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"149.1961,-108 95.1961,-108 95.1961,-72 149.1961,-72 149.1961,-108\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"122.1961\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">L0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"151.6961,-36 92.6961,-36 92.6961,0 151.6961,0 151.6961,-36\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"122.1961\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">Const</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->L0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>0->L0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M122.1961,-36.1686C122.1961,-43.869 122.1961,-53.0257 122.1961,-61.5834\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"118.6962,-61.5867 122.1961,-71.5867 125.6962,-61.5868 118.6962,-61.5867\"/>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.aig; proxy of <Swig Object of type 'spot::aig_ptr *' at 0x7f7c803fa0c0> >"
|
|
]
|
|
},
|
|
"execution_count": 23,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"strat = spot.create_strategy(game)\n",
|
|
"aig = spot.strategy_to_aig(strat, \"isop\")\n",
|
|
"aig"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"metadata": {},
|
|
"source": [
|
|
"By handing over the input and output propositions explicitly, you can force their appearance of the propositions in the circuit"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 24,
|
|
"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.40.1 (20161225.0304)\n",
|
|
" -->\n",
|
|
"<!-- Pages: 1 -->\n",
|
|
"<svg width=\"229pt\" height=\"198pt\"\n",
|
|
" viewBox=\"0.00 0.00 229.39 198.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.0 1.0) rotate(0) translate(4 194)\">\n",
|
|
"<polygon fill=\"#ffffff\" stroke=\"transparent\" points=\"-4,4 -4,-194 225.3922,-194 225.3922,4 -4,4\"/>\n",
|
|
"<!-- 2 -->\n",
|
|
"<g id=\"node1\" class=\"node\">\n",
|
|
"<title>2</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"77.1961,-108 11.1961,-108 11.1961,-72 77.1961,-72 77.1961,-108\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"44.1961\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">L0_out</text>\n",
|
|
"</g>\n",
|
|
"<!-- o0o0 -->\n",
|
|
"<g id=\"node4\" class=\"node\">\n",
|
|
"<title>o0o0</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"44.1961,-144 88.5891,-178.5 -.197,-178.5 44.1961,-144\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"44.1961\" y=\"-163.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">o0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 2->o0o0 -->\n",
|
|
"<g id=\"edge2\" class=\"edge\">\n",
|
|
"<title>2->o0o0:s</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M44.1961,-108C44.1961,-116.2031 44.1961,-126.2373 44.1961,-135.9568\"/>\n",
|
|
"<ellipse fill=\"#000000\" stroke=\"#000000\" cx=\"44.1961\" cy=\"-140\" rx=\"4\" ry=\"4\"/>\n",
|
|
"</g>\n",
|
|
"<!-- L0 -->\n",
|
|
"<g id=\"node2\" class=\"node\">\n",
|
|
"<title>L0</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"149.1961,-108 95.1961,-108 95.1961,-72 149.1961,-72 149.1961,-108\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"122.1961\" y=\"-86.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">L0</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0 -->\n",
|
|
"<g id=\"node3\" class=\"node\">\n",
|
|
"<title>0</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"178.6961,-36 119.6961,-36 119.6961,0 178.6961,0 178.6961,-36\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"149.1961\" y=\"-14.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">Const</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->L0 -->\n",
|
|
"<g id=\"edge1\" class=\"edge\">\n",
|
|
"<title>0->L0</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M142.3828,-36.1686C139.4317,-44.0383 135.9103,-53.4288 132.6411,-62.1467\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"129.3352,-60.9945 129.1011,-71.5867 135.8895,-63.4524 129.3352,-60.9945\"/>\n",
|
|
"</g>\n",
|
|
"<!-- o1o1 -->\n",
|
|
"<g id=\"node5\" class=\"node\">\n",
|
|
"<title>o1o1</title>\n",
|
|
"<polygon fill=\"none\" stroke=\"#000000\" points=\"177.1961,-144 221.5891,-178.5 132.803,-178.5 177.1961,-144\"/>\n",
|
|
"<text text-anchor=\"middle\" x=\"177.1961\" y=\"-163.3\" font-family=\"Times,serif\" font-size=\"14.00\" fill=\"#000000\">o1</text>\n",
|
|
"</g>\n",
|
|
"<!-- 0->o1o1 -->\n",
|
|
"<g id=\"edge3\" class=\"edge\">\n",
|
|
"<title>0->o1o1:s</title>\n",
|
|
"<path fill=\"none\" stroke=\"#000000\" d=\"M155.8317,-36.0824C163.4001,-58.2228 174.9827,-97.2894 176.9175,-133.7894\"/>\n",
|
|
"<polygon fill=\"#000000\" stroke=\"#000000\" points=\"173.4246,-134.0992 177.1961,-144 180.422,-133.9082 173.4246,-134.0992\"/>\n",
|
|
"</g>\n",
|
|
"</g>\n",
|
|
"</svg>\n"
|
|
],
|
|
"text/plain": [
|
|
"<spot.aig; proxy of <Swig Object of type 'spot::aig_ptr *' at 0x7f7c803fa510> >"
|
|
]
|
|
},
|
|
"execution_count": 24,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"aig2 = spot.strategy_to_aig(strat, \"isop\", [], [\"o0\", \"o1\"])\n",
|
|
"aig2"
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"kernelspec": {
|
|
"display_name": "Python 3",
|
|
"language": "python",
|
|
"name": "python3"
|
|
},
|
|
"language_info": {
|
|
"codemirror_mode": {
|
|
"name": "ipython",
|
|
"version": 3
|
|
},
|
|
"file_extension": ".py",
|
|
"mimetype": "text/x-python",
|
|
"name": "python",
|
|
"nbconvert_exporter": "python",
|
|
"pygments_lexer": "ipython3",
|
|
"version": "3.7.3"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 4
|
|
}
|