* src/tgbaalgos/ltl2tgba_fm.hh (ltl_to_tgba_fm): Add argument
branching_postponement. * src/tgbaalgos/ltl2tgba_fm.cc (fill_dests): New function, extracted from ltl_to_tgba_fm(). (ltl_to_tgba_fm): Implement the branching_postponement optimization. * src/tgbatest/ltl2tgba.cc: Add the -p option. * src/tgbatest/spotlbtt.test: Exercise branching postponement. * wrap/python/cgi/ltl2tgba.in: Make it an option.
This commit is contained in:
parent
f11df7679a
commit
6b06e28f3d
6 changed files with 150 additions and 44 deletions
|
|
@ -46,19 +46,43 @@ namespace spot
|
|||
/// month = {September},
|
||||
/// isbn = {3-540-66587-0}
|
||||
/// }
|
||||
/// \endverbatim
|
||||
///
|
||||
/// If \a exprop is set, the algorithm will consider all properties
|
||||
/// combinations possible on each state, in an attempt to reduce
|
||||
/// the non-determinism. The automaton will have the same size as
|
||||
/// without this option, but because the transition will be more
|
||||
/// deterministic product automaton will be smaller (or, at worse, equal).
|
||||
/// deterministic, the product automaton will be smaller (or, at worse,
|
||||
/// equal).
|
||||
///
|
||||
/// If \a symb_merge is set to false, states with the same symbolic
|
||||
/// representation (these are equivalent formulae) will not be
|
||||
/// merged.
|
||||
///
|
||||
/// If \a branching_postponement is set, several transitions leaving
|
||||
/// from the same state with the same label (i.e., condition + acceptance
|
||||
/// conditions) will be merged. This correspond to an optimization
|
||||
/// described in the following paper.
|
||||
/// \verbatim
|
||||
/// @InProceedings{ sebastiani.03.charme,
|
||||
/// author = {Roberto Sebastiani and Stefano Tonetta},
|
||||
/// title = {"More Deterministic" vs. "Smaller" B{\"u}chi Automata for
|
||||
/// Efficient LTL Model Checking},
|
||||
/// booktitle = {Proceedings for the 12th Advanced Research Working
|
||||
/// Conference on Correct Hardware Design and Verification
|
||||
/// Methods (CHARME'03)},
|
||||
/// pages = {126--140},
|
||||
/// year = {2003},
|
||||
/// editor = {G. Goos and J. Hartmanis and J. van Leeuwen},
|
||||
/// volume = {2860},
|
||||
/// series = {Lectures Notes in Computer Science},
|
||||
/// month = {October},
|
||||
/// publisher = {Springer-Verlag}
|
||||
/// }
|
||||
/// \endverbatim
|
||||
tgba_explicit* ltl_to_tgba_fm(const ltl::formula* f, bdd_dict* dict,
|
||||
bool exprop = false, bool symb_merge = true);
|
||||
bool exprop = false, bool symb_merge = true,
|
||||
bool branching_postponement = false);
|
||||
}
|
||||
|
||||
#endif // SPOT_TGBA_LTL2TGBA_HH
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue