Propagate colors in split_2step

Reduce the amount of uncolored transitions
after split_2step by trying to color the env transitions.
This is currently only supported for parity like
acceptance conditions.

* spot/twaalgos/game.cc: Determinizatio of "colored"
game can created trivial self-loops. Fix them
* spot/twaalgos/synthesis.cc: Here
* tests/core/ltlsynt.test,
tests/python/_synthesis.ipynb,
tests/python/games.ipynb,
tests/python/synthesis.ipynb,
tests/python/synthesis.py: New and adjusted tests
This commit is contained in:
Philipp Schlehuber-Caissier 2022-04-04 08:47:11 +02:00
parent dfb75632ba
commit 524edea8da
7 changed files with 1896 additions and 1821 deletions

View file

@ -8,7 +8,8 @@
"outputs": [],
"source": [
"import spot, buddy\n",
"spot.setup()"
"spot.setup()\n",
"from spot.jupyter import display_inline"
]
},
{

View file

@ -774,7 +774,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M263.84,-69.53C269.36,-57.32 278.74,-41.62 292.66,-34.2 305.05,-27.61 320.17,-33.47 331.57,-40.37\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"337.48,-44.24 329.9,-43.04 334.55,-42.32 331.62,-40.41 331.62,-40.41 331.62,-40.41 334.55,-42.32 333.35,-37.77 337.48,-44.24 337.48,-44.24\"/>\n",
"<text text-anchor=\"start\" x=\"297.16\" y=\"-53\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"292.66\" y=\"-38\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"292.66\" y=\"-38\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
@ -804,7 +804,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M429.13,-67.92C422.9,-62.64 414.93,-57.03 406.62,-54.2 397.16,-50.98 386.28,-50.18 376.63,-50.39\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"369.54,-50.71 376.39,-47.24 373.04,-50.55 376.53,-50.39 376.53,-50.39 376.53,-50.39 373.04,-50.55 376.68,-53.54 369.54,-50.71 369.54,-50.71\"/>\n",
"<text text-anchor=\"start\" x=\"395.12\" y=\"-73\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"390.62\" y=\"-58\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"390.62\" y=\"-58\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node7\" class=\"node\">\n",
@ -818,7 +818,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M458.24,-70.56C474.17,-60.06 499.65,-43.25 516.75,-31.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"522.63,-28.09 518.52,-34.58 519.71,-30.02 516.79,-31.95 516.79,-31.95 516.79,-31.95 519.71,-30.02 515.06,-29.32 522.63,-28.09 522.63,-28.09\"/>\n",
"<text text-anchor=\"start\" x=\"481.12\" y=\"-75\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"478.62\" y=\"-60\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"478.62\" y=\"-60\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;0 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
@ -928,7 +928,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f80642eee70> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f202420db10> >"
]
},
"execution_count": 8,
@ -972,10 +972,10 @@
"--BODY--\n",
"State: 0\n",
"[!1] 5 {1}\n",
"[1] 6 {1}\n",
"[1] 6 {2}\n",
"State: 1\n",
"[1] 6 {1}\n",
"[!1] 7 {1}\n",
"[1] 6 {2}\n",
"[!1] 7 {2}\n",
"State: 2\n",
"[t] 8 {1}\n",
"State: 3\n",
@ -1134,7 +1134,7 @@
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M263.84,-69.53C269.36,-57.32 278.74,-41.62 292.66,-34.2 305.05,-27.61 320.17,-33.47 331.57,-40.37\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"337.48,-44.24 329.9,-43.04 334.28,-42.74 331.35,-40.83 331.62,-40.41 331.9,-39.99 334.82,-41.9 333.35,-37.77 337.48,-44.24 337.48,-44.24\"/>\n",
"<text text-anchor=\"start\" x=\"297.16\" y=\"-53\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"292.66\" y=\"-38\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"292.66\" y=\"-38\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 5&#45;&gt;0 -->\n",
"<g id=\"edge10\" class=\"edge\">\n",
@ -1164,7 +1164,7 @@
"<path fill=\"none\" stroke=\"#e31a1c\" stroke-width=\"2\" d=\"M429.13,-67.92C422.9,-62.64 414.93,-57.03 406.62,-54.2 397.16,-50.98 386.28,-50.18 376.63,-50.39\"/>\n",
"<polygon fill=\"#e31a1c\" stroke=\"#e31a1c\" stroke-width=\"2\" points=\"369.54,-50.71 376.39,-47.24 373.02,-50.05 376.51,-49.89 376.53,-50.39 376.56,-50.89 373.06,-51.05 376.68,-53.54 369.54,-50.71 369.54,-50.71\"/>\n",
"<text text-anchor=\"start\" x=\"395.12\" y=\"-73\" font-family=\"Lato\" font-size=\"14.00\">a</text>\n",
"<text text-anchor=\"start\" x=\"390.62\" y=\"-58\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"390.62\" y=\"-58\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 7 -->\n",
"<g id=\"node7\" class=\"node\">\n",
@ -1178,7 +1178,7 @@
"<path fill=\"none\" stroke=\"black\" d=\"M458.24,-70.56C474.17,-60.06 499.65,-43.25 516.75,-31.98\"/>\n",
"<polygon fill=\"black\" stroke=\"black\" points=\"522.63,-28.09 518.52,-34.58 519.71,-30.02 516.79,-31.95 516.79,-31.95 516.79,-31.95 519.71,-30.02 515.06,-29.32 522.63,-28.09 522.63,-28.09\"/>\n",
"<text text-anchor=\"start\" x=\"481.12\" y=\"-75\" font-family=\"Lato\" font-size=\"14.00\">!a</text>\n",
"<text text-anchor=\"start\" x=\"478.62\" y=\"-60\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff4da0\">❶</text>\n",
"<text text-anchor=\"start\" x=\"478.62\" y=\"-60\" font-family=\"Lato\" font-size=\"14.00\" fill=\"#ff7f00\">❷</text>\n",
"</g>\n",
"<!-- 7&#45;&gt;0 -->\n",
"<g id=\"edge12\" class=\"edge\">\n",
@ -1288,7 +1288,7 @@
"</svg>\n"
],
"text/plain": [
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f806443b1b0> >"
"<spot.twa_graph; proxy of <Swig Object of type 'std::shared_ptr< spot::twa_graph > *' at 0x7f202420df90> >"
]
},
"execution_count": 11,
@ -1324,7 +1324,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.2"
"version": "3.8.10"
}
},
"nbformat": 4,

File diff suppressed because it is too large Load diff

View file

@ -37,16 +37,16 @@ Start: 0
AP: 1 "a"
acc-name: Streett 1
Acceptance: 2 Fin(0) | Inf(1)
properties: trans-labels explicit-labels state-acc colored complete
properties: trans-labels explicit-labels trans-acc colored complete
properties: deterministic
spot-state-player: 0 1 1
controllable-AP:
--BODY--
State: 0 {0}
[!0] 1
[0] 2
State: 1 {0}
[t] 0
State: 2 {1}
[t] 0
State: 0
[!0] 1 {0}
[0] 2 {1}
State: 1
[t] 0 {0}
State: 2
[t] 0 {1}
--END--""")