libFAUDES

Sections

Index

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.

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.

Constructor & Destructor Documentation

faudes::Bisimulation::Bisimulation ( Generator g  ) 

Contructor.

Parameters:
g Original generator


Member Function Documentation

void faudes::Bisimulation::writeW ( void   ) 

Write W-tree to console.

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

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

void faudes::Bisimulation::writeRo ( void   ) 

Write the current set of equivalence classes to console.

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

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

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

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

Refine current partition with respect to partition B.

Parameters:
B Coset

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

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

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

For debugging purpose

Parameters:
node Coset


Member Data Documentation

Original Automaton.

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

W-tree.

Contains all cosets ever created

Counter to assign unique indices to the cosets.

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

Contains the cosets of the current partition.

TransSet of original generator sorted by EvX2X1.

Holds the cosets that can possibly split cosets in ro.


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

libFAUDES 2.13a c++ source docu by doxygen 1.5.6