faudes::Bisimulation Class Reference

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

#include <op_bisimulation.h>

List of all members.

Public Member Functions

 Bisimulation (Generator &g)
 Contructor.
void writeW (void)
 Write W-tree to console.
void partition (std::map< Idx, Idx > &rMapStateToPartition, Generator &rGenPart, std::vector< Idx > &rNewPartitions)
 Administration of the various steps of the computation of the coarsest quasi-congruence.
void partition (std::map< Idx, Idx > &rMapStateToPartition, std::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.
std::map< Idx, PartitionW
 W-tree.
Idx index
 Counter to assign unique indices to the cosets.
std::vector< Partition * > ro
 Contains the cosets of the current partition.
TransSetEvX2X1 tset_evx2x1
 TransSet of original generator sorted by EvX2X1.
std::set< Partition * > roDividers
 Holds the cosets that can possibly split cosets in ro.

Detailed Description

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

Definition at line 89 of file op_bisimulation.h.


Constructor & Destructor Documentation

faudes::Bisimulation::Bisimulation ( Generator g  ) 

Contructor.

Parameters:
g Original generator

Definition at line 69 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 743 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 502 of file op_bisimulation.cpp.

void faudes::Bisimulation::partition ( std::map< Idx, Idx > &  rMapStateToPartition,
std::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 929 of file op_bisimulation.cpp.

void faudes::Bisimulation::partition ( std::map< Idx, Idx > &  rMapStateToPartition,
Generator rGenPart,
std::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 798 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 583 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 99 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 557 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 1011 of file op_bisimulation.cpp.

void faudes::Bisimulation::writeRo ( void   ) 

Write the current set of equivalence classes to console.

Definition at line 1041 of file op_bisimulation.cpp.

void faudes::Bisimulation::writeW ( void   ) 

Write W-tree to console.

Definition at line 1003 of file op_bisimulation.cpp.


Member Data Documentation

Original Automaton.

Definition at line 142 of file op_bisimulation.h.

Counter to assign unique indices to the cosets.

Definition at line 193 of file op_bisimulation.h.

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

Contains the cosets of the current partition.

Definition at line 198 of file op_bisimulation.h.

Holds the cosets that can possibly split cosets in ro.

Definition at line 235 of file op_bisimulation.h.

TransSet of original generator sorted by EvX2X1.

Definition at line 203 of file op_bisimulation.h.

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

W-tree.

Contains all cosets ever created

Definition at line 188 of file op_bisimulation.h.


The documentation for this class was generated from the following files:

libFAUDES 2.23h --- 2014.04.03 --- c++ api documentaion by doxygen