Add the "don't care" simulation

* src/tgba/bddprint.cc, src/tgba/bddprint.hh: Add bdd_print_isop
that prints the bdd into a Irreductible Sum Of Product.
* src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh: Add a way to
know which states (in the input) is which (in the result).
* src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: Add
the Don't Care Simulation and the Don't Care Iterated Simulation.
* src/tgbatest/ltl2tgba.cc, src/tgbatest/spotlbtt.test,
src/tgbatest/Makefile.am, src/tgbatest/sim.test: Test them.
* bench/ltl2tgba/algorithms, bench/ltl2tgba/README,
bench/ltl2tgba/algorithms: Add a way to bench the don't care
simulation.
This commit is contained in:
Thomas Badie 2012-09-27 16:45:40 +02:00 committed by Alexandre Duret-Lutz
parent 5796114e37
commit 08c77318ae
12 changed files with 1171 additions and 76 deletions

View file

@ -38,6 +38,13 @@ this benchmark.
The timeout value, common to the three benchmarks, is also set here.
You can also benchmark some simulations algorithms by setting the
variable "BENCH_SIMULATION". For example by running:
BENCH_SIMULATION=t make -j3 run
You run the simulation benchmark on the three kind of formulae.
* small
* big
* known

View file

@ -4,18 +4,35 @@
# the tools starts with "-".
set dummy
if test -n "$BENCH_SIMULATION"; then
translator="../../src/tgbatest/ltl2tgba"
set "$@" "$translator -R3 -Rm -r7 -t %s >%T" \
"$translator -t -RDS -Rm -r7 -R3 %s >%T" \
"$translator -t -RDCS -r7 -Rm -R3 %s >%T" \
"$translator -t -RRS -r7 -R3 -Rm %s >%T" \
"$translator -t -RIS -r7 -R3 -Rm %s >%T" \
"$translator -t -RDCIS -r7 -Rm -R3 %s >%T" \
"$translator -t -R3 -Rm -r7 -DS %s >%T" \
"$translator -t -r7 -R3 -Rm -RDS -DS %s >%T" \
"$translator -t -RDCS -r7 -Rm -R3 -DS %s >%T" \
"$translator -t -RRS -r7 -R3 -Rm -DS %s >%T" \
"$translator -t -RIS -r7 -R3 -Rm -DS %s >%T" \
"$translator -t -RDCIS -r7 -R3 -Rm -DS %s >%T"
else
# Add third-party tools if they are available
test -n "$SPIN" && set "$@" "$SPIN -f %s >%N"
test -n "$LTL2BA" && set "$@" "$LTL2BA -f %s >%N"
test -n "$LTL3BA" && set "$@" "$LTL3BA -f %s >%N" \
"$LTL3BA -M -f %s >%N" \
"$LTL3BA -S -f %s >%N" \
"$LTL3BA -S -M -f %s >%N"
test -n "$SPIN" && set "$@" "$SPIN -f %s >%N"
test -n "$LTL2BA" && set "$@" "$LTL2BA -f %s >%N"
test -n "$LTL3BA" && set "$@" "$LTL3BA -f %s >%N" \
"$LTL3BA -M -f %s >%N" \
"$LTL3BA -S -f %s >%N" \
"$LTL3BA -S -M -f %s >%N"
# Use -s to output a neverclaim, like the other tools.
set "$@" "$LTL2TGBA --det -s %s >%N" \
"$LTL2TGBA --small -s %s >%N"
set "$@" "$LTL2TGBA --det -s %s >%N" \
"$LTL2TGBA --small -s %s >%N"
fi;
# If you want to add your own tool, you can add it here.
# See 'man ltlcross' for the list of %-escape you may use
# to specify input formula and output automaton.