Make sure we only output one initial state in LBTT's output.

* src/tgbaalgos/lbtt.cc (fill_todo): Add the 'first' argument
to designate initial states.
(lbtt_reachable): Adjust calls to fill_todo.  Handle the
fake initial state accepting conditions specially.
* src/tgbaalgos/lbtt.hh: Update comments.
This commit is contained in:
Alexandre Duret-Lutz 2003-07-09 14:03:43 +00:00
parent ea04df6971
commit 2a8b1b7471
3 changed files with 53 additions and 18 deletions

View file

@ -12,16 +12,19 @@ namespace spot
/// labeled by propositional formulae, and generalized
/// Büchi accepting conditions on \emph states. This
/// is unlike our spot::tgba automata which put
/// botg generalized accepting conditions and propositional
/// both generalized accepting conditions and propositional
/// formulae) on \emph transitions.
///
/// This algorithm will therefore produce an automata
/// where accepting conditions have been moved from
/// each transition to previous state. In the worst
/// case, doing so will multiply the number of states
/// and transitions of the automata by <code>2^|Acc|</code>.
/// where <code>|Acc|</code> is the number of accepting
/// conditions used by the automata. You have been warned.
/// This algorithm will therefore produce an automata where
/// accepting conditions have been moved from each transition to
/// previous state. In the worst case, doing so will multiply the
/// number of states and transitions of the automata by
/// <code>2^|Acc|</code>. where <code>|Acc|</code> is the number of
/// accepting conditions used by the automata. (It can be a bit
/// more because LBTT allows only for one initial state:
/// lbtt_reachable() may also have to create an additional state in
/// case the source initial state had to be split.) You have been
/// warned.
///
/// \param g The automata to print.
/// \param os Where to print.