Adjust parseout.pl to the new LBTT output.
* bench/ltl2tgba/parseout.pl: Adjust to output nondeterministic indices and number of nondeterministic automata. * bench/ltl2tgba/README: Update explanations.
This commit is contained in:
parent
f2b188d9ec
commit
faed4e8be2
2 changed files with 52 additions and 31 deletions
|
|
@ -128,38 +128,51 @@ checking for wring2lbtt... wring2lbtt
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
The files small.txt, big.txt, and known.txt contain a summary of the
|
The files small.txt, big.txt, and known.txt contain a summary of the
|
||||||
results. Each algorithm is described as two lines formated as
|
results. Each algorithm is described on two lines formated as
|
||||||
follows.
|
follows.
|
||||||
|
|
||||||
6: Spot FM (degen)
|
10: Spot FM (degen)
|
||||||
834 / 2419 / 188 / 2.86 166579 / 8749162 (188)
|
831 2422 188 | 521 157 | 3.01 | 165971 8723693 (188)
|
||||||
|
|
||||||
The first line presents the name of the algorithm ("Spot FM (degen)")
|
The first line presents the name of the algorithm ("Spot FM (degen)")
|
||||||
and its number for lbtt (6). The number is useless. In this example,
|
and its number for lbtt (10). The number is useless. In this
|
||||||
"FM (degen)" means that the Couvreur/FM algorithm is used to translate
|
example, "FM (degen)" means that the Couvreur/FM algorithm is used to
|
||||||
LTL formula into a TGBA that is then DEGENeralized. You may want to
|
translate LTL formula into a TGBA that is then DEGENeralized, so you
|
||||||
look in the file `algorithms' to see which options are used for each
|
effectively get a Büchi automaton, which you can compare with that
|
||||||
name, if the naming is unclear.
|
automata produced by other tools. You may want to look in the file
|
||||||
|
`algorithms' to see which options are used for each name, if the
|
||||||
|
naming is unclear.
|
||||||
|
|
||||||
The second line display 7 values:
|
The second line display 9 values:
|
||||||
1. the total number of states of all generated automata (834)
|
1. the total number of states of all generated automata (831)
|
||||||
2. the total number of transitions of all generated automata (2419)
|
2. the total number of transitions of all generated automata (2422)
|
||||||
3. the total number of acceptance conditions of all generated automata (188)
|
3. the total number of acceptance conditions of all generated automata (188)
|
||||||
4. the cumulated translation time in seconds (2.86)
|
4. the total number of nondeterministic states in these automata (521)
|
||||||
5. the total number of states in the synchronized products (166579)
|
5. the total number of automata with some nondeterminisitic state (157)
|
||||||
6. the total number of transitions in the synchronized products (8749162)
|
6. the cumulated translation time in seconds (3.01)
|
||||||
7. the number of translated formulae (188)
|
7. the total number of states in the synchronized products (165971)
|
||||||
|
8. the total number of transitions in the synchronized products (8723693)
|
||||||
|
9. the number of translated formulae (188)
|
||||||
|
|
||||||
|
For all these values (but the last!) the smaller number the better.
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
|
|
||||||
* Small translation times are not accurate because most of the
|
* Small translation times are not accurate because:
|
||||||
translators are run through scripts that translate their input
|
|
||||||
from and their output to the format understood by lbtt. For fast
|
a) most of the translators are run through scripts that translate
|
||||||
translators, most of the time is spent through these wrappers.
|
their input from and their output to the format understood by
|
||||||
(For instance Spot's ltl2tgba is run through lbtt-translate, and
|
lbtt. For fast translators, most of the time is spent through
|
||||||
depending on how Spot has been configured w.r.t. to dynamic
|
these wrappers. (For instance Spot's ltl2tgba is run through
|
||||||
libraries, ltl2tgba itself is often a shell script that run the
|
lbtt-translate, and depending on how Spot has been configured
|
||||||
real binary with the locally built libraries.)
|
w.r.t. to dynamic libraries, ltl2tgba itself is often a shell
|
||||||
|
script that run the real binary with the locally built libraries.)
|
||||||
|
|
||||||
|
b) LBTT use the time() function to measure time, which usually
|
||||||
|
has only a 0.01s resolution. Multiply this 0.01s by the number
|
||||||
|
for formulae to get the possible error (e.g. for the above example
|
||||||
|
188*0.01 = 1.88s, so the 3.01s should be interpreted as "within
|
||||||
|
3.01-1.88 and 3.01+1.88).
|
||||||
|
|
||||||
* Some tools will appear to have translated fewer automata than the
|
* Some tools will appear to have translated fewer automata than the
|
||||||
others. This normally indicates bugs in the translator (incorrect
|
others. This normally indicates bugs in the translator (incorrect
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/env perl
|
#!/usr/bin/env perl
|
||||||
|
|
||||||
# Copyright (C) 2011 Laboratoire de Recherche et Développement de
|
# Copyright (C) 2011, 2012 Laboratoire de Recherche et Développement de
|
||||||
# l'Epita.
|
# l'Epita.
|
||||||
# Copyright (C) 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
# Copyright (C) 2005 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||||
# département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
# département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||||
|
|
@ -27,7 +27,11 @@ use warnings;
|
||||||
|
|
||||||
my $line = 0;
|
my $line = 0;
|
||||||
my $tool = 0;
|
my $tool = 0;
|
||||||
my ($a, $b, $acc, $time);
|
my ($a, $b, $acc, $time, $det, $ndindex);
|
||||||
|
|
||||||
|
my $prefix = 'All formulae';
|
||||||
|
$prefix = 'Pos. formulae' if $ARGV[0] eq '-p';
|
||||||
|
$prefix = 'Neg. formulae' if $ARGV[0] eq '-n';
|
||||||
|
|
||||||
sub sep($)
|
sub sep($)
|
||||||
{
|
{
|
||||||
|
|
@ -37,8 +41,8 @@ sub sep($)
|
||||||
}
|
}
|
||||||
|
|
||||||
format STDOUT3 =
|
format STDOUT3 =
|
||||||
@<<<<<<<<<<<<<<<<<<<<< & @>>>>>> & @>>>>>> & @>>>>>>>>> & @>>>>>>>>>>> \\ % @>>
|
@<<<<<<<<<<<<<<<<<<<<< & @>>>>>> & @>>>>>> & @>>>>>> & @>> & @>>>>>>>>> & @>>>>>>>>>>> \\ % @>>
|
||||||
$tool, sep($a), sep($b), sep($2), sep($3), sep($1)
|
$tool, sep($a), sep($b), sep($ndindex), sep($1-$det), sep($2), sep($3), sep($1)
|
||||||
.
|
.
|
||||||
|
|
||||||
format STDOUT2 =
|
format STDOUT2 =
|
||||||
|
|
@ -49,8 +53,8 @@ $num, $tool, $a, $b, $acc, $time, $2, $3, $1
|
||||||
format STDOUT =
|
format STDOUT =
|
||||||
@>>: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
@>>: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||||||
$num, $tool
|
$num, $tool
|
||||||
@>>>>> / @>>>>> / @>>> / @#####.## @>>>>>>>> / @>>>>>>>> (@>>)
|
@>>>>> @>>>>> @>>> | @>>>>> @>> | @#####.## | @>>>>>>>> @>>>>>>>> (@>>)
|
||||||
$a, $b, $acc, $time, $2, $3, $1
|
$a, $b, $acc, $ndindex, $1-$det, $time, $2, $3, $1
|
||||||
.
|
.
|
||||||
|
|
||||||
$~ = STDOUT2 if (exists $ENV{'WIKIOUTPUT'});
|
$~ = STDOUT2 if (exists $ENV{'WIKIOUTPUT'});
|
||||||
|
|
@ -60,16 +64,20 @@ my %impl;
|
||||||
|
|
||||||
while (<>)
|
while (<>)
|
||||||
{
|
{
|
||||||
|
last if /^ Failures to compute/;
|
||||||
|
|
||||||
if (/^\s{4}(\d+):\s`(.+)'\s*(?:\(disabled\))?\s*$/)
|
if (/^\s{4}(\d+):\s`(.+)'\s*(?:\(disabled\))?\s*$/)
|
||||||
{
|
{
|
||||||
$impl{$1} = $2 unless exists $impl{$1};
|
$impl{$1} = $2 unless exists $impl{$1};
|
||||||
}
|
}
|
||||||
if (/All formulae\s*\|\s*([^|]*?)\s*\|\s*([^|]*?)\s*\|$/)
|
if (/$prefix\s*\|\s*([^|\s]*)\s*\|\s*([^|\s]*)\s*\|\s*([^|\s]*)\s*\|\s*([^|\s]*)\s*\|$/o)
|
||||||
{
|
{
|
||||||
$acc = $1;
|
$acc = $1;
|
||||||
$time = $2 || 0;
|
$time = $2 || 0;
|
||||||
|
$det = $3 || 0;
|
||||||
|
$ndindex = $4;
|
||||||
}
|
}
|
||||||
next unless /All formulae\s+\|\s*(.*?)\s*\|\s*(.*?)\s*\|\s*(.*?)\s*\|/;
|
next unless /$prefix\s+\|\s*([^|\s]*)\s*\|\s*([^|\s]*)\s*\|\s*([^|\s]*)\s*\|$/o;
|
||||||
if ($line % 2)
|
if ($line % 2)
|
||||||
{
|
{
|
||||||
$num = $line >> 1;
|
$num = $line >> 1;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue