This should help getting accurate statistics (on both the
formula automaton and the synchronized product) from LBTT. Idea from Jean-Michel Couvreur. * src/tgbaalgos/lbtt.cc (nonacceptant_lbtt_bfs): New class. (nonacceptant_lbtt_reachable): New function. * src/tgbaalgos/lbtt.hh (nonacceptant_lbtt_reachable): New function. * src/tgbatest/ltl2tgba.cc (main): Call nonacceptant_lbtt_reachable if the -T option is used. * src/tgbatest/spotlbtt.test: Setup the -T variants, disabled by default.
This commit is contained in:
parent
0816a4505f
commit
7069d5406b
5 changed files with 121 additions and 2 deletions
|
|
@ -50,6 +50,23 @@ namespace spot
|
|||
/// \param g The automata to print.
|
||||
/// \param os Where to print.
|
||||
std::ostream& lbtt_reachable(std::ostream& os, const tgba* g);
|
||||
|
||||
/// \brief Print an LBTT automaton for statistics.
|
||||
///
|
||||
/// Output \a g in LBTT's format but ignoring the acceptance
|
||||
/// conditions, of all its transitions. This produces an automaton
|
||||
/// that has the same size as \a g, and whose synchronized product
|
||||
/// with another automaton also has the same size. This will also
|
||||
/// declare as much acceptance conditions has there is in \a g (they
|
||||
/// will just be never used).
|
||||
///
|
||||
/// The produced automaton will not recognize any word (unless \a g
|
||||
/// has no acceptance condition, in which case this function is a
|
||||
/// no-op).
|
||||
///
|
||||
/// The produced automaton is useful to obtain accurate statistics
|
||||
/// from LBTT, without any size blow up of the automata.
|
||||
std::ostream& nonacceptant_lbtt_reachable(std::ostream& os, const tgba* g);
|
||||
}
|
||||
|
||||
#endif // SPOT_TGBAALGOS_LBTT_HH
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue