spot
0.8.1
|
#include <tgbaalgos/reductgba_sim.hh>
Public Member Functions | |
parity_game_graph_delayed (const tgba *a) | |
~parity_game_graph_delayed () | |
virtual delayed_simulation_relation * | get_relation () |
void | print (std::ostream &os) |
virtual void | add_state (const state *s) |
virtual const state * | next_state () |
Called by run() to obtain the next state to process. | |
void | run () |
Iterate over all reachable states of a spot::tgba. | |
virtual bool | want_state (const state *s) const |
virtual void | start () |
Called by run() before starting its iteration. | |
virtual void | end () |
Called by run() once all states have been explored. | |
virtual void | process_link (const state *in_s, int in, const state *out_s, int out, const tgba_succ_iterator *si) |
Protected Types | |
typedef Sgi::hash_map< const state *, int, state_ptr_hash, state_ptr_equal > | seen_map |
Protected Member Functions | |
void | process_state (const state *s, int n, tgba_succ_iterator *si) |
Protected Attributes | |
sn_v | spoiler_vertice_ |
dn_v | duplicator_vertice_ |
s_v | tgba_state_ |
int | nb_node_parity_game |
std::deque< const state * > | todo |
A queue of states yet to explore. | |
const tgba * | automata_ |
The spot::tgba to explore. | |
seen_map | seen |
States already seen. | |
Private Types | |
typedef std::vector< bdd > | bdd_v |
Private Member Functions | |
int | nb_set_acc_cond () |
Return the number of acceptance condition. | |
duplicator_node_delayed * | add_duplicator_node_delayed (const spot::state *sn, const spot::state *dn, bdd acc, bdd label, int nb) |
spoiler_node_delayed * | add_spoiler_node_delayed (const spot::state *sn, const spot::state *dn, bdd acc, int nb) |
void | build_recurse_successor_spoiler (spoiler_node *sn, std::ostringstream &os) |
void | build_recurse_successor_duplicator (duplicator_node *dn, spoiler_node *sn, std::ostringstream &os) |
virtual void | build_graph () |
Compute the couple as for direct simulation,. | |
virtual void | lift () |
The Jurdzinski's lifting algorithm. | |
Private Attributes | |
bdd_v | sub_set_acc_cond_ |
Parity game graph which computes the delayed simulation relation as explained in
/// @InProceedings{etessami.01.alp, /// author = {Kousha Etessami and Thomas Wilke and Rebecca A. Schuller}, /// title = {Fair Simulation Relations, Parity Games, and State Space /// Reduction for Buchi Automata}, /// booktitle = {Proceedings of the 28th international colloquium on /// Automata, Languages and Programming}, /// pages = {694--707}, /// year = {2001}, /// editor = {Fernando Orejas and Paul G. Spirakis and Jan van Leeuwen}, /// volume = {2076}, /// series = {Lecture Notes in Computer Science}, /// address = {Crete, Greece}, /// month = {July}, /// publisher = {Springer-Verlag} /// } ///
typedef std::vector<bdd> spot::parity_game_graph_delayed::bdd_v [private] |
Vector which contain all the sub-set of the set of acceptance condition.
typedef Sgi::hash_map<const state*, int, state_ptr_hash, state_ptr_equal> spot::tgba_reachable_iterator::seen_map [protected, inherited] |
duplicator_node_delayed* spot::parity_game_graph_delayed::add_duplicator_node_delayed | ( | const spot::state * | sn, |
const spot::state * | dn, | ||
bdd | acc, | ||
bdd | label, | ||
int | nb | ||
) | [private] |
spoiler_node_delayed* spot::parity_game_graph_delayed::add_spoiler_node_delayed | ( | const spot::state * | sn, |
const spot::state * | dn, | ||
bdd | acc, | ||
int | nb | ||
) | [private] |
virtual void spot::tgba_reachable_iterator_breadth_first::add_state | ( | const state * | s | ) | [virtual, inherited] |
Implements spot::tgba_reachable_iterator.
virtual void spot::parity_game_graph_delayed::build_graph | ( | ) | [private, virtual] |
Compute the couple as for direct simulation,.
Implements spot::parity_game_graph.
void spot::parity_game_graph_delayed::build_recurse_successor_duplicator | ( | duplicator_node * | dn, |
spoiler_node * | sn, | ||
std::ostringstream & | os | ||
) | [private] |
void spot::parity_game_graph_delayed::build_recurse_successor_spoiler | ( | spoiler_node * | sn, |
std::ostringstream & | os | ||
) | [private] |
virtual void spot::tgba_reachable_iterator::end | ( | ) | [virtual, inherited] |
Called by run() once all states have been explored.
virtual delayed_simulation_relation* spot::parity_game_graph_delayed::get_relation | ( | ) | [virtual] |
Implements spot::parity_game_graph.
virtual void spot::parity_game_graph_delayed::lift | ( | ) | [private, virtual] |
The Jurdzinski's lifting algorithm.
Implements spot::parity_game_graph.
int spot::parity_game_graph_delayed::nb_set_acc_cond | ( | ) | [private] |
Return the number of acceptance condition.
virtual const state* spot::tgba_reachable_iterator_breadth_first::next_state | ( | ) | [virtual, inherited] |
Called by run() to obtain the next state to process.
Implements spot::tgba_reachable_iterator.
void spot::parity_game_graph::print | ( | std::ostream & | os | ) | [inherited] |
virtual void spot::tgba_reachable_iterator::process_link | ( | const state * | in_s, |
int | in, | ||
const state * | out_s, | ||
int | out, | ||
const tgba_succ_iterator * | si | ||
) | [virtual, inherited] |
Called by run() to process a transition.
in_s | The source state |
in | The source state number. |
out_s | The destination state |
out | The destination state number. |
si | The spot::tgba_succ_iterator positionned on the current transition. |
The in_s and out_s states are owned by the spot::tgba_reachable_iterator instance and destroyed when the instance is destroyed.
void spot::parity_game_graph::process_state | ( | const state * | s, |
int | n, | ||
tgba_succ_iterator * | si | ||
) | [protected, virtual, inherited] |
Called by run() to process a state.
s | The current state. |
n | A unique number assigned to s. |
si | The spot::tgba_succ_iterator for s. |
Reimplemented from spot::tgba_reachable_iterator.
void spot::tgba_reachable_iterator::run | ( | ) | [inherited] |
Iterate over all reachable states of a spot::tgba.
This is a template method that will call add_state(), next_state(), start(), end(), process_state(), and process_link(), while it iterates over states.
virtual void spot::tgba_reachable_iterator::start | ( | ) | [virtual, inherited] |
Called by run() before starting its iteration.
virtual bool spot::tgba_reachable_iterator::want_state | ( | const state * | s | ) | const [virtual, inherited] |
Called by add_state or next_states implementations to filter states. Default implementation always return true.
const tgba* spot::tgba_reachable_iterator::automata_ [protected, inherited] |
The spot::tgba to explore.
dn_v spot::parity_game_graph::duplicator_vertice_ [protected, inherited] |
int spot::parity_game_graph::nb_node_parity_game [protected, inherited] |
seen_map spot::tgba_reachable_iterator::seen [protected, inherited] |
States already seen.
sn_v spot::parity_game_graph::spoiler_vertice_ [protected, inherited] |
s_v spot::parity_game_graph::tgba_state_ [protected, inherited] |
std::deque<const state*> spot::tgba_reachable_iterator_breadth_first::todo [protected, inherited] |
A queue of states yet to explore.