Introduce new ways to split an automaton

The explicit way of splitting suffers if there are
too many input APs, two new ways of splitting
are introduced as well as a heuristic to chose
between them.

* NEWS: update
* spot/twaalgos/synthesis.cc,
spot/twaalgos/synthesis.hh: New fonctions
* bin/ltlsynt.cc: Add corresponding option
* tests/core/gamehoa.test,
tests/core/ltlsynt.test,
tests/python/_partitioned_relabel.ipynb,
tests/python/_synthesis.ipynb,
tests/python/game.py,
tests/python/split.py,
tests/python/synthesis.py: Adjusting and adding test
This commit is contained in:
Philipp Schlehuber 2024-03-03 22:15:27 +01:00
parent 2274308cad
commit 5ddac258e1
11 changed files with 1372 additions and 138 deletions

View file

@ -484,10 +484,22 @@ i3 i3
o0 o0
o1 o1
EOF
ltlsynt -f "G((i0 && i1)<->X(o0)) && G((i2|i3)<->X(o1))" --outs="o0,o1"\
--aiger=isop+ud --algo=lar --decompose=no --simpl=no >out
ltlsynt -f "G((i0 && i1)<->X(o0)) && G((i2|i3)<->X(o1))" --outs="o0,o1" \
--aiger=isop+ud --algo=lar --decompose=no --simpl=no \
--splittype=expl >out
diff out exp
for splitt in expl semisym fullysym auto
do
res=$(ltlsynt -f "G((i0 && i1)<->X(o0)) && G((i2|i3)<->X(o1))" \
--outs="o0,o1" --aiger=isop+ud --algo=lar --decompose=no \
--simpl=no --splittype="$splitt" --realizability)
if [[ "$res" != "REALIZABLE" ]]; then
echo "Expected realizable"
fi
done
cat >exp <<EOF
REALIZABLE
aag 54 4 3 2 47
@ -555,7 +567,8 @@ o0 o0
o1 o1
EOF
ltlsynt -f "G((i0 && i1)<->X(o0)) && G((i2|i3)<->X(o1))" --outs="o0,o1"\
--aiger=isop --algo=lar --decompose=no --simpl=no >out
--aiger=isop --algo=lar --decompose=no --simpl=no \
--splittype=expl >out
diff out exp
@ -590,10 +603,10 @@ o0 o0
o1 o1
EOF
ltlsynt -f "G((i0 && i1)<->X(o0)) && G((i2|i3)<->X(o1))" --outs="o0,o1"\
--aiger=isop+ud --algo=lar --decompose=yes --simpl=no >out
--aiger=isop+ud --algo=lar --decompose=yes --simpl=no --splittype=expl >out
diff out exp
ltlsynt -f "G((i0 && i1)<->X(o0)) && G((i2|i3)<->X(o1))" --outs="o0,o1"\
--aiger=isop+ud --algo=lar --simpl=no >out
--aiger=isop+ud --algo=lar --simpl=no --splittype=expl >out
diff out exp
# Issue #477