After this changes, degeneralized automata are 40% smaller
in LBTT's statistics. * src/tgba/tgbatba.cc (state_tba_proxy): Store an iterator, pointing somewhere into the acceptance conditions list, instead of an acceptance condition. (state_tba_proxy::acceptance_iterator): New method. (tgba_tba_proxy_succ_iterator): Adjust to use iterators too. (tgba_tba_proxy_succ_iterator::current_state): If the current transition is in several consecutive acceptance steps after the expected one, advance many steps at once. (tgba_tba_proxy::tgba_tba_proxy): Build the acceptance cycle as a list, not a map. (tgba_tba_proxy::get_init_state, tgba_tba_proxy::succ_iter): Adjust. * src/tgba/tgbatba.hh (tgba_tba_proxy::acc_cycle_): Declare as a list, not a map.
This commit is contained in:
parent
bdbaa8356c
commit
440029c1b5
3 changed files with 79 additions and 46 deletions
|
|
@ -1,4 +1,4 @@
|
|||
// Copyright (C) 2003 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
// département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||
// et Marie Curie.
|
||||
//
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
#ifndef SPOT_TGBA_TGBATBA_HH
|
||||
# define SPOT_TGBA_TGBATBA_HH
|
||||
|
||||
#include <map>
|
||||
#include <list>
|
||||
#include "tgba.hh"
|
||||
#include "misc/bddlt.hh"
|
||||
|
||||
|
|
@ -70,14 +70,14 @@ namespace spot
|
|||
|
||||
bool state_is_accepting(const state* state) const;
|
||||
|
||||
typedef std::list<bdd> cycle_list;
|
||||
protected:
|
||||
virtual bdd compute_support_conditions(const state* state) const;
|
||||
virtual bdd compute_support_variables(const state* state) const;
|
||||
|
||||
private:
|
||||
const tgba* a_;
|
||||
typedef std::map<bdd, bdd, bdd_less_than> cycle_map;
|
||||
cycle_map acc_cycle_;
|
||||
cycle_list acc_cycle_;
|
||||
bdd the_acceptance_cond_;
|
||||
// Disallow copy.
|
||||
tgba_tba_proxy(const tgba_tba_proxy&);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue