spot/bench/scc-stats/README
Félix Abecassis 414956c51e Add 2 benchmarks directories.
Add an algorithm to split an automaton in several automata.

* bench/scc-stats: New directory.  Contains input files and test
program for computing statistics.
* bench/split-product: New directory.  Contains test program for
synchronised product on splitted automata.
* bench/split-product/models: New directory.  Contains Promela
files and LTL formulae that should be verified by the models.
* src/tgba/tgbafromfile.cc, src/tgba/tgbafromfile.hh:
New files.  Small class to avoid long initializations with numerous
constants when translating to TGBA many LTL formulae from a
given file.
* src/tgbaalgos/cutscc.cc, src/tgbaalgos/cutscc.hh:
New file.  From a single automaton, create, at most,
X sub automata.
* src/tgbaalgos/scc.cc, src/tgbaalgos/scc.hh:
Adjust to compute self-loops count.
2009-07-08 17:01:43 +02:00

103 lines
No EOL
3.4 KiB
Text

This directory contains the input files and test program used to compute basic
statistics on TGBA.
==========
CONTENTS
==========
This directory contains:
* formulae.ltl
A list of 96 handwritten formulae with their negations. They come
from three sources:
@InProceedings{ dwyer.98.fmsp,
author = {Matthew B. Dwyer and George S. Avrunin and James C.
Corbett},
title = {Property Specification Patterns for Finite-state
Verification},
booktitle = {Proceedings of the 2nd Workshop on Formal Methods in
Software Practice (FMSP'98)},
publisher = {ACM Press},
address = {New York},
editor = {Mark Ardis},
month = mar,
year = {1998},
pages = {7--15}
}
@InProceedings{ etessami.00.concur,
author = {Kousha Etessami and Gerard J. Holzmann},
title = {Optimizing {B\"u}chi Automata},
booktitle = {Proceedings of the 11th International Conference on
Concurrency Theory (Concur'00)},
pages = {153--167},
year = {2000},
editor = {C. Palamidessi},
volume = {1877},
series = {Lecture Notes in Computer Science},
address = {Pennsylvania, USA},
publisher = {Springer-Verlag}
}
@InProceedings{ somenzi.00.cav,
author = {Fabio Somenzi and Roderick Bloem},
title = {Efficient {B\"u}chi Automata for {LTL} Formul{\ae}},
booktitle = {Proceedings of the 12th International Conference on
Computer Aided Verification (CAV'00)},
pages = {247--263},
year = {2000},
volume = {1855},
series = {Lecture Notes in Computer Science},
address = {Chicago, Illinois, USA},
publisher = {Springer-Verlag}
}
* full.ltl
A list of 1000 large randomly generated LTL formulae with ./randtgba.
=======
USAGE
=======
Use the stats program.
Usage : ./stats ltl_file
Where ltl_file is a file with a single LTL formula per line.
==========================
INTERPRETING THE RESULTS
==========================
Results can be found in file 'results'.
Here is the list of the measured values:
- Accepting Strongly Connected Components.
Total number of accepting SCC.
- Dead Strongly Connected Components.
Total number of dead SCC.
An SCC is dead if no accepting SCC is reachable from it.
- Accepting Paths.
Number of maximal accepting paths.
An path is maximal and accepting if it ends in an accepting
SCC that is only dead (i.e. non accepting) successors, or no
successors at all.
- Dead Paths.
Number of paths to a terminal dead SCC.
A terminal dead SCC is a dead SCC without successors.
- Max Effective Splitting.
A clue to measure the potential effectiveness of splitting the formula.
This is the maximum number of possible sub automata with unique states.
Beyond this threshold, more sub automata can be generated, but all their
states will be included in some of the previous automata.
- Self Loops per State.
Number of self loops.
A self loop is a transition from a state to itself.
For each of these measured value, we provide the following statistics
computed on all the formulae in ltl_file:\
- Min
- Max
- Mean
- Median
- Standard Deviation