Wrap are_isomorphic inside a class and optimize when deterministic

* src/bin/autfilt.cc: Use isomorphism_checker.
* src/tgbaalgos/are_isomorphic.cc, src/tgbaalgos/are_isomorphic.hh: Wrap
are_isomorphic inside a class to keep the canonic version of the first
automaton between two calls, and use a more efficient algorithm in case
both automata are deterministic.
* src/tgbatest/isomorph.test: Add tests for deterministic automata.
This commit is contained in:
Thibaud Michaud 2014-12-15 14:44:05 +01:00
parent 1995602df5
commit 176878554e
4 changed files with 156 additions and 29 deletions

View file

@ -22,13 +22,17 @@
set -e
for i in 0 1 2 3 4; do
for i in 0 1 2; do
../../bin/randaut a b --seed=$i -S10 --hoa >iso$i
../../bin/autfilt iso$i --randomize --hoa >aut$i
done
for i in 3 4 5; do
../../bin/randaut a b --seed=$i -S10 -D --hoa >iso$i
../../bin/autfilt iso$i --randomize --hoa >aut$i
done
cat aut0 aut1 aut2 aut3 aut4 > all
(for i in 0 1 2 3 4; do
cat aut0 aut1 aut2 aut3 aut4 aut5 > all
(for i in 0 1 2 3 4 5; do
run 0 ../../bin/autfilt all --are-isomorphic iso$i --hoa
done) > output
diff all output