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 |
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.
|
Constructor & Destructor Documentation
faudes::Bisimulation::Bisimulation |
( |
Generator & |
g |
) |
|
Member Function Documentation
void faudes::Bisimulation::writeW |
( |
void |
|
) |
|
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.
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 |
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 |
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:
-
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:
-
void faudes::Bisimulation::writeNode |
( |
Partition & |
node |
) |
[private] |
Function needed for recursively plotting the W-tree to console.
For debugging purpose
- Parameters:
-
Member Data Documentation
W-tree.
Contains all cosets ever created
Counter to assign unique indices to the cosets.
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:
|