Implementent tba_determinize(), based on Dax et al (ATVA'07).

* src/tgbaalgos/powerset.hh,
src/tgbaalgos/powerset.cc (tba_determinize): New function.
* src/tgbatest/ltl2tgba.cc (-RQ): New option, for testing.
This commit is contained in:
Alexandre Duret-Lutz 2013-01-21 11:14:08 +01:00
parent 29bc087d56
commit ec5bbf4fcf
3 changed files with 249 additions and 5 deletions

View file

@ -86,12 +86,44 @@ namespace spot
///
/// If \a pm is supplied it will be filled with the set of original states
/// associated to each state of the deterministic automaton.
/// The \a merge argument can be set to false to prevent merging of
/// transitions.
//@{
SPOT_API tgba_explicit_number*
tgba_powerset(const tgba* aut, power_map& pm);
tgba_powerset(const tgba* aut, power_map& pm, bool merge = true);
SPOT_API tgba_explicit_number*
tgba_powerset(const tgba* aut);
//@}
/// \brief Determinize a TBA using the powerset construction.
///
/// The input automaton should have at most one acceptance
/// condition. Beware that not all Büchi automata can be
/// determinized, and this procedure does not ensure that the
/// produced automaton is equivalent to \a aut.
///
/// The construction is adapted from Section 3.2 of:
/// \verbatim
/// @InProceedings{ dax.07.atva,
/// author = {Christian Dax and Jochen Eisinger and Felix Klaedtke},
/// title = {Mechanizing the Powerset Construction for Restricted
/// Classes of {$\omega$}-Automata},
/// year = 2007,
/// series = {Lecture Notes in Computer Science},
/// publisher = {Springer-Verlag},
/// volume = 4762,
/// booktitle = {Proceedings of the 5th International Symposium on
/// Automated Technology for Verification and Analysis
/// (ATVA'07)},
/// editor = {Kedar S. Namjoshi and Tomohiro Yoneda and Teruo Higashino
/// and Yoshio Okamura},
/// month = oct
/// }
/// \endverbatim
/// only adapted to work on TBA rather than BA.
SPOT_API tgba_explicit_number*
tba_determinize(const tgba* aut);
}
#endif // SPOT_TGBAALGOS_POWERSET_HH