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 |
Generator * | gen |
| Original Automaton.
|
std::map< Idx, Partition > | W |
| 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 |
) |
|
Member Function Documentation
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:
-
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:
-
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] |
void faudes::Bisimulation::writeRo |
( |
void |
|
) |
|
void faudes::Bisimulation::writeW |
( |
void |
|
) |
|
Member Data Documentation
Holds the cosets that can possibly split cosets in ro.
Definition at line 235 of file op_bisimulation.h.
The documentation for this class was generated from the following files: