faudes::Bisimulation Class Reference

#include <op_bisimulation.h>

List of all members.


Detailed Description

This class implements the algorithms needed for the computation of the coarsest quasi-congruence (=Bisimulation) of a given generator.

Definition at line 90 of file op_bisimulation.h.

Public Member Functions

 Bisimulation (Generator &g)
 Contructor.
void writeW (void)
 Write W-tree to console.
void partition (map< Idx, Idx > &rMapStateToPartition, Generator &rGenPart, vector< Idx > &rNewPartitions)
 Administration of the various steps of the computation of the coarsest quasi-congruence.
void partition (map< Idx, Idx > &rMapStateToPartition, vector< Idx > &rNewPartitions)
 Administration of the various steps of the computation of the coarsest quasi-congruence.
void writeRo (void)
 Write the current set of equivalence classes to console.

Private Member Functions

void computeInfoMaps (Partition &node, Partition *pSmallerPart, Partition *pLargerPart, EventSet::Iterator eIt)
 Compute info-maps for two cosets P1 and P2.
void computeInfoMap (Partition &B, Partition &Bstates, EventSet::Iterator eIt, StateSet &tb)
 Compute info-maps for coset B.
bool stateLeadsToPartition (Idx state, Partition &node, EventSet::Iterator eIt)
 Check if a state has a eIt-transition into a coset denoted as node.
void partitionClass (Partition &B)
 Refine current partition with respect to partition B.
void partitionSplitter (Partition &B)
 Refine current partition with respect to partition B and make use of the fact that the current partition is stable with respect to the parent coset of B.
void writeNode (Partition &node)
 Function needed for recursively plotting the W-tree to console.

Private Attributes

Generatorgen
 Original Automaton.
map< Idx, PartitionW
 W-tree.
Idx index
 Counter to assign unique indices to the cosets.
vector< Partition * > ro
 Contains the cosets of the current partition.
TransSetEvX2X1 tset_evx2x1
 TransSet of original generator sorted by EvX2X1.
set< Partition * > roDividers
 Holds the cosets that can possibly split cosets in ro.


Constructor & Destructor Documentation

faudes::Bisimulation::Bisimulation Generator g  ) 
 

Contructor.

Parameters:
g Original generator

Definition at line 67 of file op_bisimulation.cpp.


Member Function Documentation

void faudes::Bisimulation::computeInfoMap Partition B,
Partition Bstates,
EventSet::Iterator  eIt,
StateSet tb
[private]
 

Compute info-maps for coset B.

Parameters:
B Coset for which the info-map is computed
Bstates Coset whose states are examined
eIt iterator to an event in a EventSet
tb StateSet containing all the states that have a *eIt-transition into the coset B

Definition at line 741 of file op_bisimulation.cpp.

void faudes::Bisimulation::computeInfoMaps Partition node,
Partition pSmallerPart,
Partition pLargerPart,
EventSet::Iterator  eIt
[private]
 

Compute info-maps for two cosets P1 and P2.

The current partition is stable with respect to their parent coset P.

Parameters:
node Coset whose states are examined
pSmallerPart Child coset P1 of P with smaller number of states
pLargerPart Child coset P2 of P with larger number of states
eIt Event

Definition at line 500 of file op_bisimulation.cpp.

void faudes::Bisimulation::partition map< Idx, Idx > &  rMapStateToPartition,
vector< Idx > &  rNewPartitions
 

Administration of the various steps of the computation of the coarsest quasi-congruence.

Parameters:
rMapStateToPartition Maps each state to its equivalence class
rNewPartitions Holds the indices of all equivalence classes

Definition at line 927 of file op_bisimulation.cpp.

void faudes::Bisimulation::partition map< Idx, Idx > &  rMapStateToPartition,
Generator rGenPart,
vector< Idx > &  rNewPartitions
 

Administration of the various steps of the computation of the coarsest quasi-congruence.

An output generator that represents the resulting quotient automaton is also provided.

Parameters:
rMapStateToPartition Maps each state to its equivalence class
rGenPart Generator representing the result of the computation. Each state corresponds to an euivalence class
rNewPartitions Holds the indices of all equivalence classes

Definition at line 796 of file op_bisimulation.cpp.

void faudes::Bisimulation::partitionClass Partition B  )  [private]
 

Refine current partition with respect to partition B.

Parameters:
B Coset

Definition at line 581 of file op_bisimulation.cpp.

void faudes::Bisimulation::partitionSplitter Partition B  )  [private]
 

Refine current partition with respect to partition B and make use of the fact that the current partition is stable with respect to the parent coset of B.

Parameters:
B Coset

Definition at line 97 of file op_bisimulation.cpp.

bool faudes::Bisimulation::stateLeadsToPartition Idx  state,
Partition node,
EventSet::Iterator  eIt
[private]
 

Check if a state has a eIt-transition into a coset denoted as node.

Parameters:
state State to be examined
node Coset
eIt Event

Definition at line 555 of file op_bisimulation.cpp.

void faudes::Bisimulation::writeNode Partition node  )  [private]
 

Function needed for recursively plotting the W-tree to console.

For debugging purpose

Parameters:
node Coset

Definition at line 1009 of file op_bisimulation.cpp.

void faudes::Bisimulation::writeRo void   ) 
 

Write the current set of equivalence classes to console.

Definition at line 1039 of file op_bisimulation.cpp.

void faudes::Bisimulation::writeW void   ) 
 

Write W-tree to console.

Definition at line 1001 of file op_bisimulation.cpp.


Member Data Documentation

Generator* faudes::Bisimulation::gen [private]
 

Original Automaton.

Definition at line 143 of file op_bisimulation.h.

Idx faudes::Bisimulation::index [private]
 

Counter to assign unique indices to the cosets.

Definition at line 194 of file op_bisimulation.h.

vector<Partition*> faudes::Bisimulation::ro [private]
 

Contains the cosets of the current partition.

Definition at line 199 of file op_bisimulation.h.

set<Partition*> faudes::Bisimulation::roDividers [private]
 

Holds the cosets that can possibly split cosets in ro.

Definition at line 236 of file op_bisimulation.h.

TransSetEvX2X1 faudes::Bisimulation::tset_evx2x1 [private]
 

TransSet of original generator sorted by EvX2X1.

Definition at line 204 of file op_bisimulation.h.

map<Idx, Partition> faudes::Bisimulation::W [private]
 

W-tree.

Contains all cosets ever created

Definition at line 189 of file op_bisimulation.h.


The documentation for this class was generated from the following files:
Generated on Fri May 9 11:26:48 2008 for libFAUDES 2.09b by  doxygen 1.4.4