* src/tgba/tgbabddconcretefactory.cc:
(tgba_bdd_concrete_factory::tgba_bdd_concrete_factory): New. (tgba_bdd_concrete_factory::create_state): Update now_to_next_. (tgba_bdd_concrete_factory::finish): Constraint Next variables in the relation. * src/tgba/tgbabddconcretefactory.hh (tgba_bdd_concrete_factory::now_to_next_): New variable.
This commit is contained in:
parent
cf136e84bd
commit
12f66a3b18
3 changed files with 18 additions and 3 deletions
|
|
@ -1,11 +1,11 @@
|
|||
2003-06-30 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||||
|
||||
* src/tgba/tgbabddconcretefactory.cc:
|
||||
* src/tgba/tgbabddconcretefactory.cc:
|
||||
(tgba_bdd_concrete_factory::tgba_bdd_concrete_factory): New.
|
||||
(tgba_bdd_concrete_factory::create_state): Update now_to_next_.
|
||||
(tgba_bdd_concrete_factory::finish): Constraint Next variables
|
||||
in the relation.
|
||||
* src/tgba/tgbabddconcretefactory.hh
|
||||
* src/tgba/tgbabddconcretefactory.hh
|
||||
(tgba_bdd_concrete_factory::now_to_next_): New variable.
|
||||
|
||||
2003-06-28 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||||
|
|
|
|||
|
|
@ -3,6 +3,11 @@
|
|||
#include "tgbabddconcretefactory.hh"
|
||||
namespace spot
|
||||
{
|
||||
tgba_bdd_concrete_factory::tgba_bdd_concrete_factory()
|
||||
: now_to_next_(bdd_newpair())
|
||||
{
|
||||
}
|
||||
|
||||
tgba_bdd_concrete_factory::~tgba_bdd_concrete_factory()
|
||||
{
|
||||
acc_map_::iterator ai;
|
||||
|
|
@ -27,6 +32,7 @@ namespace spot
|
|||
// Record that num+1 should be renamed as num when
|
||||
// the next state becomes current.
|
||||
bdd_setpair(data_.next_to_now, num + 1, num);
|
||||
bdd_setpair(now_to_next_, num, num + 1);
|
||||
|
||||
// Keep track of all "Now" variables for easy
|
||||
// existential quantification.
|
||||
|
|
@ -100,6 +106,15 @@ namespace spot
|
|||
// of this accepting set.
|
||||
data_.accepting_conditions |= ai->second & acc;
|
||||
}
|
||||
|
||||
// Any constraint between Now variables also exist between Next
|
||||
// variables. Doing this limits the quantity of useless
|
||||
// successors we will have to explore. (By "useless successors"
|
||||
// I mean a combination of Next variables that represent a cul de sac
|
||||
// state: the combination exists but won't allow further exploration
|
||||
// because it fails the constraints.)
|
||||
data_.relation &= bdd_replace(bdd_exist(data_.relation, data_.notnow_set),
|
||||
now_to_next_);
|
||||
}
|
||||
|
||||
const tgba_bdd_core_data&
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ namespace spot
|
|||
typedef std::map<const ltl::formula*, bdd> acc_map_;
|
||||
acc_map_ acc_; ///< BDD associated to each accepting condition
|
||||
bddPair *now_to_next_; ///< \brief Rewriting pairs to transform
|
||||
/// Now variables into Next variables.
|
||||
/// Now variables into Next variables.
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue