Implement Loizou & Thanisch's algorithm for enumerating cycles.
* src/tgbaalgos/cycles.cc, src/tgbaalgos/cycles.hh, src/tgbatest/cycles.test: New files. * src/tgbaalgos/Makefile.am, src/tgbatest/Makefile.am: Add them. * src/tgbatest/ltl2tgba.cc: Add a -KC option for testing.
This commit is contained in:
parent
379e0d5eb4
commit
374a489e3f
6 changed files with 410 additions and 1 deletions
62
src/tgbatest/cycles.test
Executable file
62
src/tgbatest/cycles.test
Executable file
|
|
@ -0,0 +1,62 @@
|
|||
#!/bin/sh
|
||||
# Copyright (C) 2012 Laboratoire de Recherche et Développement
|
||||
# de l'Epita (LRDE).
|
||||
#
|
||||
# This file is part of Spot, a model checking library.
|
||||
#
|
||||
# Spot is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Spot is distributed in the hope that it will be useful, but WITHOUT
|
||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
|
||||
# License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Spot; see the file COPYING. If not, write to the Free
|
||||
# Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
# 02111-1307, USA.
|
||||
|
||||
# While running some benchmark, Tomáš Babiak found that Spot took too
|
||||
# much time (i.e. >1h) to translate those six formulae. It turns out
|
||||
# that the WDBA minimization was performed after the degeneralization
|
||||
# algorithm, while this is not necessary (WDBA will produce a BA, so
|
||||
# we may as well skip degeneralization). Translating these formulae
|
||||
# in the test-suite ensure that they don't take too much time (the
|
||||
# buildfarm will timeout if it does).
|
||||
|
||||
. ./defs
|
||||
|
||||
set -e
|
||||
|
||||
# Fig.1 from Johnson's SIAM J. Comput. 1975 paper.
|
||||
|
||||
(
|
||||
echo 'acc = ;'
|
||||
k=3
|
||||
v=`expr $k + 2`
|
||||
w=`expr 2 \* $k + 2`
|
||||
x=`expr 3 \* $k + 3`
|
||||
for i in $(seq 2 `expr $k + 1`); do
|
||||
echo "s1,s$i,,;"
|
||||
echo "s$i,s$v,,;"
|
||||
done
|
||||
for i in $(seq `expr $k + 2` `expr 2 \* $k`); do
|
||||
echo "s$i,s`expr $i + 1`,,;"
|
||||
echo "s$i,s$w,,;"
|
||||
done
|
||||
echo "s`expr 2 \* $k + 1`,s$w,,;"
|
||||
echo "s`expr 2 \* $k + 1`,s1,,;"
|
||||
for i in $(seq `expr 2 \* $k + 3` `expr 3 \* $k + 2`); do
|
||||
echo "s$w,s$i,,;"
|
||||
echo "s$i,s$x,,;"
|
||||
done
|
||||
echo "s`expr 2 \* $k + 3`,s$v,,;"
|
||||
echo "s$x,s$w,,;"
|
||||
) > johnson-fig1.tgba
|
||||
|
||||
|
||||
run 0 ../ltl2tgba -KC -X johnson-fig1.tgba > out
|
||||
test `wc -l < out` -eq 10
|
||||
Loading…
Add table
Add a link
Reference in a new issue