* 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>
|
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::tgba_bdd_concrete_factory): New.
|
||||||
(tgba_bdd_concrete_factory::create_state): Update now_to_next_.
|
(tgba_bdd_concrete_factory::create_state): Update now_to_next_.
|
||||||
(tgba_bdd_concrete_factory::finish): Constraint Next variables
|
(tgba_bdd_concrete_factory::finish): Constraint Next variables
|
||||||
in the relation.
|
in the relation.
|
||||||
* src/tgba/tgbabddconcretefactory.hh
|
* src/tgba/tgbabddconcretefactory.hh
|
||||||
(tgba_bdd_concrete_factory::now_to_next_): New variable.
|
(tgba_bdd_concrete_factory::now_to_next_): New variable.
|
||||||
|
|
||||||
2003-06-28 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
2003-06-28 Alexandre Duret-Lutz <aduret@src.lip6.fr>
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,11 @@
|
||||||
#include "tgbabddconcretefactory.hh"
|
#include "tgbabddconcretefactory.hh"
|
||||||
namespace spot
|
namespace spot
|
||||||
{
|
{
|
||||||
|
tgba_bdd_concrete_factory::tgba_bdd_concrete_factory()
|
||||||
|
: now_to_next_(bdd_newpair())
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
tgba_bdd_concrete_factory::~tgba_bdd_concrete_factory()
|
tgba_bdd_concrete_factory::~tgba_bdd_concrete_factory()
|
||||||
{
|
{
|
||||||
acc_map_::iterator ai;
|
acc_map_::iterator ai;
|
||||||
|
|
@ -27,6 +32,7 @@ namespace spot
|
||||||
// Record that num+1 should be renamed as num when
|
// Record that num+1 should be renamed as num when
|
||||||
// the next state becomes current.
|
// the next state becomes current.
|
||||||
bdd_setpair(data_.next_to_now, num + 1, num);
|
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
|
// Keep track of all "Now" variables for easy
|
||||||
// existential quantification.
|
// existential quantification.
|
||||||
|
|
@ -100,6 +106,15 @@ namespace spot
|
||||||
// of this accepting set.
|
// of this accepting set.
|
||||||
data_.accepting_conditions |= ai->second & acc;
|
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&
|
const tgba_bdd_core_data&
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ namespace spot
|
||||||
typedef std::map<const ltl::formula*, bdd> acc_map_;
|
typedef std::map<const ltl::formula*, bdd> acc_map_;
|
||||||
acc_map_ acc_; ///< BDD associated to each accepting condition
|
acc_map_ acc_; ///< BDD associated to each accepting condition
|
||||||
bddPair *now_to_next_; ///< \brief Rewriting pairs to transform
|
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