postproc: add simul-max and wdba-det-max options

* NEWS, bin/spot-x.cc: Document them.
* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Implement
them.
* tests/python/stutter-inv.ipynb: Adjust result.
* tests/core/minusx.test: Add test case.
This commit is contained in:
Alexandre Duret-Lutz 2020-09-15 16:57:33 +02:00
parent a814334342
commit 69c821154c
6 changed files with 125 additions and 60 deletions

View file

@ -302,7 +302,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb4fdf9af30> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faad816be40> >"
]
},
"metadata": {},
@ -603,7 +603,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb4fdfa3f60> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faad816be70> >"
]
},
"metadata": {},
@ -812,7 +812,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb4fdfa3f60> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faad816be70> >"
]
},
"metadata": {},
@ -964,7 +964,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb4fdfa9210> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faad8057690> >"
]
},
"metadata": {},
@ -1062,7 +1062,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb4fdf8e900> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faad8253210> >"
]
},
"metadata": {},
@ -1272,7 +1272,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb4fdfa97b0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faad8057ea0> >"
]
},
"metadata": {},
@ -1401,7 +1401,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb4fdfaed20> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faad8247a20> >"
]
},
"metadata": {},
@ -1452,87 +1452,87 @@
"<!-- Generated by graphviz version 2.43.0 (0)\n",
" -->\n",
"<!-- Pages: 1 -->\n",
"<svg width=\"245pt\" height=\"170pt\"\n",
" viewBox=\"0.00 0.00 245.00 170.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 166)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-166 241,-166 241,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-147.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-147.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"135\" y=\"-147.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"97\" y=\"-133.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<svg width=\"245pt\" height=\"203pt\"\n",
" viewBox=\"0.00 0.00 245.00 203.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 199)\">\n",
"<polygon fill=\"white\" stroke=\"transparent\" points=\"-4,4 -4,-199 241,-199 241,4 -4,4\"/>\n",
"<text text-anchor=\"start\" x=\"98\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\">Inf(</text>\n",
"<text text-anchor=\"start\" x=\"119\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<text text-anchor=\"start\" x=\"135\" y=\"-180.8\" font-family=\"Lato\" font-size=\"14.00\">)</text>\n",
"<text text-anchor=\"start\" x=\"97\" y=\"-166.8\" font-family=\"Lato\" font-size=\"14.00\">[Büchi]</text>\n",
"<!-- I -->\n",
"<!-- 3 -->\n",
"<g id=\"node2\" class=\"node\">\n",
"<title>3</title>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M62,-64C62,-64 50,-64 50,-64 44,-64 38,-58 38,-52 38,-52 38,-40 38,-40 38,-34 44,-28 50,-28 50,-28 62,-28 62,-28 68,-28 74,-34 74,-40 74,-40 74,-52 74,-52 74,-58 68,-64 62,-64\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-42.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"<path fill=\"#ffffaa\" stroke=\"black\" d=\"M62,-81C62,-81 50,-81 50,-81 44,-81 38,-75 38,-69 38,-69 38,-57 38,-57 38,-51 44,-45 50,-45 50,-45 62,-45 62,-45 68,-45 74,-51 74,-57 74,-57 74,-69 74,-69 74,-75 68,-81 62,-81\"/>\n",
"<text text-anchor=\"middle\" x=\"56\" y=\"-59.3\" font-family=\"Lato\" font-size=\"14.00\">3</text>\n",
"</g>\n",
"<!-- I&#45;&gt;3 -->\n",
"<g id=\"edge1\" class=\"edge\">\n",
"<title>I&#45;&gt;3</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-46C2.79,-46 17.15,-46 30.63,-46\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-46 30.94,-49.15 34.44,-46 30.94,-46 30.94,-46 30.94,-46 34.44,-46 30.94,-42.85 37.94,-46 37.94,-46\"/>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M1.15,-63C2.79,-63 17.15,-63 30.63,-63\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"37.94,-63 30.94,-66.15 34.44,-63 30.94,-63 30.94,-63 30.94,-63 34.44,-63 30.94,-59.85 37.94,-63 37.94,-63\"/>\n",
"</g>\n",
"<!-- 0 -->\n",
"<g id=\"node3\" class=\"node\">\n",
"<title>0</title>\n",
"<path fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M146,-93C146,-93 134,-93 134,-93 128,-93 122,-87 122,-81 122,-81 122,-67 122,-67 122,-61 128,-55 134,-55 134,-55 146,-55 146,-55 152,-55 158,-61 158,-67 158,-67 158,-81 158,-81 158,-87 152,-93 146,-93\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-77.8\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"<text text-anchor=\"start\" x=\"132\" y=\"-62.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<path fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M146,-125C146,-125 134,-125 134,-125 128,-125 122,-119 122,-113 122,-113 122,-101 122,-101 122,-95 128,-89 134,-89 134,-89 146,-89 146,-89 152,-89 158,-95 158,-101 158,-101 158,-113 158,-113 158,-119 152,-125 146,-125\"/>\n",
"<text text-anchor=\"middle\" x=\"140\" y=\"-103.3\" font-family=\"Lato\" font-size=\"14.00\">0</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;0 -->\n",
"<g id=\"edge5\" class=\"edge\">\n",
"<title>3&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.39,-51.94C86.21,-55.97 102,-61.37 115.02,-65.81\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"121.92,-68.17 114.27,-68.89 118.6,-67.04 115.29,-65.9 115.29,-65.9 115.29,-65.9 118.6,-67.04 116.31,-62.92 121.92,-68.17 121.92,-68.17\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-64.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.39,-72.33C86.43,-78.79 102.59,-87.46 115.74,-94.52\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"121.92,-97.83 114.26,-97.3 118.83,-96.18 115.75,-94.52 115.75,-94.52 115.75,-94.52 118.83,-96.18 117.24,-91.75 121.92,-97.83 121.92,-97.83\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-91.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 1 -->\n",
"<g id=\"node4\" class=\"node\">\n",
"<g id=\"node5\" class=\"node\">\n",
"<title>1</title>\n",
"<path fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M146,-37C146,-37 134,-37 134,-37 128,-37 122,-31 122,-25 122,-25 122,-13 122,-13 122,-7 128,-1 134,-1 134,-1 146,-1 146,-1 152,-1 158,-7 158,-13 158,-13 158,-25 158,-25 158,-31 152,-37 146,-37\"/>\n",
"<text text-anchor=\"middle\" x=\"140\" y=\"-15.3\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<path fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M146,-38C146,-38 134,-38 134,-38 128,-38 122,-32 122,-26 122,-26 122,-12 122,-12 122,-6 128,0 134,0 134,0 146,0 146,0 152,0 158,-6 158,-12 158,-12 158,-26 158,-26 158,-32 152,-38 146,-38\"/>\n",
"<text text-anchor=\"start\" x=\"135.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<text text-anchor=\"start\" x=\"132\" y=\"-7.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 3&#45;&gt;1 -->\n",
"<g id=\"edge6\" class=\"edge\">\n",
"<title>3&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.31,-38.64C79.9,-36.37 86.17,-33.97 92,-32 99.34,-29.53 107.44,-27.16 114.81,-25.14\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"121.89,-23.24 115.95,-28.1 118.51,-24.15 115.13,-25.05 115.13,-25.05 115.13,-25.05 118.51,-24.15 114.32,-22.01 121.89,-23.24 121.89,-23.24\"/>\n",
"<text text-anchor=\"start\" x=\"92\" y=\"-35.8\" font-family=\"Lato\" font-size=\"14.00\">!b</text>\n",
"</g>\n",
"<!-- 0&#45;&gt;0 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;0</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.09,-93.04C132.13,-102.53 134.43,-111 140,-111 144.09,-111 146.42,-106.43 146.99,-100.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"146.91,-93.04 150.13,-100.01 146.95,-96.54 146.98,-100.04 146.98,-100.04 146.98,-100.04 146.95,-96.54 143.83,-100.07 146.91,-93.04 146.91,-93.04\"/>\n",
"<text text-anchor=\"start\" x=\"136\" y=\"-114.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M74.39,-53.67C86.43,-47.21 102.59,-38.54 115.74,-31.48\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"121.92,-28.17 117.24,-34.25 118.83,-29.82 115.75,-31.48 115.75,-31.48 115.75,-31.48 118.83,-29.82 114.26,-28.7 121.92,-28.17 121.92,-28.17\"/>\n",
"<text text-anchor=\"start\" x=\"94\" y=\"-47.8\" font-family=\"Lato\" font-size=\"14.00\">b</text>\n",
"</g>\n",
"<!-- 2 -->\n",
"<g id=\"node5\" class=\"node\">\n",
"<g id=\"node4\" class=\"node\">\n",
"<title>2</title>\n",
"<path fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M225,-38C225,-38 213,-38 213,-38 207,-38 201,-32 201,-26 201,-26 201,-12 201,-12 201,-6 207,0 213,0 213,0 225,0 225,0 231,0 237,-6 237,-12 237,-12 237,-26 237,-26 237,-32 231,-38 225,-38\"/>\n",
"<text text-anchor=\"start\" x=\"214.5\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"<text text-anchor=\"start\" x=\"211\" y=\"-7.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"<path fill=\"#ffffaa\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M225,-126C225,-126 213,-126 213,-126 207,-126 201,-120 201,-114 201,-114 201,-100 201,-100 201,-94 207,-88 213,-88 213,-88 225,-88 225,-88 231,-88 237,-94 237,-100 237,-100 237,-114 237,-114 237,-120 231,-126 225,-126\"/>\n",
"<text text-anchor=\"start\" x=\"214.5\" y=\"-110.8\" font-family=\"Lato\" font-size=\"14.00\">2</text>\n",
"<text text-anchor=\"start\" x=\"211\" y=\"-95.8\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#1f78b4\">⓿</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;2 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M158.09,-19C168.56,-19 182.12,-19 193.69,-19\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"200.96,-19 193.96,-22.15 197.46,-19 193.96,-19 193.96,-19 193.96,-19 197.46,-19 193.96,-15.85 200.96,-19 200.96,-19\"/>\n",
"<text text-anchor=\"start\" x=\"176\" y=\"-22.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<!-- 0&#45;&gt;2 -->\n",
"<g id=\"edge2\" class=\"edge\">\n",
"<title>0&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M158.09,-107C168.56,-107 182.12,-107 193.69,-107\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"200.96,-107 193.96,-110.15 197.46,-107 193.96,-107 193.96,-107 193.96,-107 197.46,-107 193.96,-103.85 200.96,-107 200.96,-107\"/>\n",
"<text text-anchor=\"start\" x=\"176\" y=\"-110.8\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"</g>\n",
"<!-- 2&#45;&gt;2 -->\n",
"<g id=\"edge4\" class=\"edge\">\n",
"<title>2&#45;&gt;2</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M212.09,-38.04C211.13,-47.53 213.43,-56 219,-56 223.09,-56 225.42,-51.43 225.99,-45.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"225.91,-38.04 229.13,-45.01 225.95,-41.54 225.98,-45.04 225.98,-45.04 225.98,-45.04 225.95,-41.54 222.83,-45.07 225.91,-38.04 225.91,-38.04\"/>\n",
"<text text-anchor=\"middle\" x=\"219\" y=\"-59.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M212.09,-126.04C211.13,-135.53 213.43,-144 219,-144 223.09,-144 225.42,-139.43 225.99,-133.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"225.91,-126.04 229.13,-133.01 225.95,-129.54 225.98,-133.04 225.98,-133.04 225.98,-133.04 225.95,-129.54 222.83,-133.07 225.91,-126.04 225.91,-126.04\"/>\n",
"<text text-anchor=\"middle\" x=\"219\" y=\"-147.8\" font-family=\"Lato\" font-size=\"14.00\">1</text>\n",
"</g>\n",
"<!-- 1&#45;&gt;1 -->\n",
"<g id=\"edge3\" class=\"edge\">\n",
"<title>1&#45;&gt;1</title>\n",
"<path fill=\"none\" stroke=\"black\" d=\"M133.09,-38.04C132.13,-47.53 134.43,-56 140,-56 144.09,-56 146.42,-51.43 146.99,-45.25\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"146.91,-38.04 150.13,-45.01 146.95,-41.54 146.98,-45.04 146.98,-45.04 146.98,-45.04 146.95,-41.54 143.83,-45.07 146.91,-38.04 146.91,-38.04\"/>\n",
"<text text-anchor=\"start\" x=\"136\" y=\"-59.8\" font-family=\"Lato\" font-size=\"14.00\">b</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 0x7fb4fdf45d80> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faad8057450> >"
]
},
"metadata": {},
@ -1792,7 +1792,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb4fdf457e0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faad816b390> >"
]
},
"metadata": {},
@ -2106,7 +2106,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7fb4fdf457e0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7faad816b390> >"
]
},
"metadata": {},
@ -2347,7 +2347,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.2"
"version": "3.8.6rc1"
}
},
"nbformat": 4,