Classes

struct  Relation
 a relation according to SOE in one block More...
struct  State
 internal representation of transition relation with consecutive indexed states and events More...

Public Member Functions

 SOE (const Generator &rGenOrig, const EventSet &rConAlph, const EventSet &rLocAlph)
 Contructor: keep a reference to the generator and initialize the partition and the W-Tree to represent the universal equivalence relation, i.e.
 ~SOE (void)
 Destructor.
void refine (void)
 Perform fixpoint iteration to obtain the coarset synthesis-observation-equivalence.
void partition (std::map< Idx, Idx > &rMapStateToPartition, Generator &rGenPart)
 Extract output generator that represents the resulting quotient automaton.

Private Member Functions

void initStateMember_Pre ()
 construct 2st Part of Struct "State"
void initStateMember_Pres ()
 construct 3st Part of Struct "State"
Pnodenewnode ()
 insert new node in W-tree with empty stateset
void partitionClass (Pnode &B)
 refine current partition with respect to coset B
void computeRel (Pnode &B, std::vector< Relation > &relations)
 construct all relations with respect to coset B
void computeEquStates (Pnode &B, Relation &rel, std::set< Idx > &tb, std::stack< Pnode * > &todo)
 collect all states from coset B which are equivalent to the speicified state and determine the related nodes which is possibly to be splitted
void relCase_1 (Pnode &B, Relation &rel, set< Idx > &tb, stack< Pnode * > &todo)
 implementation part for function "computeEquStates" it is organized as follows with respect to various cases:
void relCase_2 (Pnode &B, Relation &rel, set< Idx > &tb, stack< Pnode * > &todo)
void relCase_3 (Pnode &B, Relation &rel, set< Idx > &tb, stack< Pnode * > &todo)
void relCase_4 (Pnode &B, Relation &rel, set< Idx > &tb, stack< Pnode * > &todo)

Private Attributes

std::vector< Statestates
 vector of all states [starting with 1]
std::vector< Idxevents
 vector of all events [starting with 1]
const Generatorgen
 keep a reference to automaton
std::set< Idxuncalph
 vorious eventsets of interest
std::set< Idxconalph
std::set< Idxlocalph
std::set< Idxshaalph
std::set< Idxlocuncalph
std::set< Idxlocconalph
std::set< Idxshauncalph
std::set< Idxshaconalph
Idx nxidx
 Counter to assign a unique index to each node [debugging/cosmetic only].
std::vector< Pnode * > W
 W-tree contains all blocks ever created [required for destruction].
std::set< Pnode * > ro
 set of nodes that form current partition, i.e.
std::set< Pnode * > roDividers
 set of nodes that can possibly split classes in ro

Detailed Description

Definition at line 73 of file syn_synthequiv.cpp.

Constructor & Destructor Documentation

faudes::SOE::SOE ( const Generator rGenOrig,
const EventSet rConAlph,
const EventSet rLocAlph 
)

Contructor: keep a reference to the generator and initialize the partition and the W-Tree to represent the universal equivalence relation, i.e.

every two states are equivalent.

Parameters
rGenOrigOriginal generator
rConAlphcontrollable events
rLocAlphlocal events

Definition at line 276 of file syn_synthequiv.cpp.

faudes::SOE::~SOE ( void  )

Destructor.

Definition at line 268 of file syn_synthequiv.cpp.

Member Function Documentation

void faudes::SOE::computeEquStates ( Pnode B,
Relation rel,
std::set< Idx > &  tb,
std::stack< Pnode * > &  todo 
)
private

collect all states from coset B which are equivalent to the speicified state and determine the related nodes which is possibly to be splitted

Parameters
Bcoset
rela specified relation
tball equivalent states with respect to rel
todoall related nodes which is possibly to be splitted

Definition at line 622 of file syn_synthequiv.cpp.

void faudes::SOE::computeRel ( Pnode B,
std::vector< Relation > &  relations 
)
private

construct all relations with respect to coset B

Parameters
Bcoset
relationsvector of all relations

Definition at line 548 of file syn_synthequiv.cpp.

void faudes::SOE::initStateMember_Pre ( )
private

construct 2st Part of Struct "State"

Definition at line 349 of file syn_synthequiv.cpp.

void faudes::SOE::initStateMember_Pres ( )
private

construct 3st Part of Struct "State"

Definition at line 401 of file syn_synthequiv.cpp.

Pnode * faudes::SOE::newnode ( void  )
private

insert new node in W-tree with empty stateset

Definition at line 256 of file syn_synthequiv.cpp.

void faudes::SOE::partition ( std::map< Idx, Idx > &  rMapStateToPartition,
Generator rGenPart 
)

Extract output generator that represents the resulting quotient automaton.

(need to invoke refine() befor)

Parameters
rMapStateToPartitionMaps each state to its equivalence class
rGenPartGenerator representing the result of the computation. Each state corresponds to an euivalence class

Definition at line 839 of file syn_synthequiv.cpp.

void faudes::SOE::partitionClass ( Pnode B)
private

refine current partition with respect to coset B

Parameters
Bcoset

Definition at line 457 of file syn_synthequiv.cpp.

void faudes::SOE::refine ( void  )

Perform fixpoint iteration to obtain the coarset synthesis-observation-equivalence.

Definition at line 824 of file syn_synthequiv.cpp.

void faudes::SOE::relCase_1 ( Pnode B,
Relation rel,
set< Idx > &  tb,
stack< Pnode * > &  todo 
)
private

implementation part for function "computeEquStates" it is organized as follows with respect to various cases:

Definition at line 646 of file syn_synthequiv.cpp.

void faudes::SOE::relCase_2 ( Pnode B,
Relation rel,
set< Idx > &  tb,
stack< Pnode * > &  todo 
)
private

Definition at line 696 of file syn_synthequiv.cpp.

void faudes::SOE::relCase_3 ( Pnode B,
Relation rel,
set< Idx > &  tb,
stack< Pnode * > &  todo 
)
private

Definition at line 737 of file syn_synthequiv.cpp.

void faudes::SOE::relCase_4 ( Pnode B,
Relation rel,
set< Idx > &  tb,
stack< Pnode * > &  todo 
)
private

Definition at line 790 of file syn_synthequiv.cpp.

Member Data Documentation

std::set<Idx> faudes::SOE::conalph
private

Definition at line 166 of file syn_synthequiv.cpp.

std::vector<Idx> faudes::SOE::events
private

vector of all events [starting with 1]

Definition at line 155 of file syn_synthequiv.cpp.

const Generator* faudes::SOE::gen
private

keep a reference to automaton

Definition at line 160 of file syn_synthequiv.cpp.

std::set<Idx> faudes::SOE::localph
private

Definition at line 167 of file syn_synthequiv.cpp.

std::set<Idx> faudes::SOE::locconalph
private

Definition at line 171 of file syn_synthequiv.cpp.

std::set<Idx> faudes::SOE::locuncalph
private

Definition at line 170 of file syn_synthequiv.cpp.

Idx faudes::SOE::nxidx
private

Counter to assign a unique index to each node [debugging/cosmetic only].

Definition at line 178 of file syn_synthequiv.cpp.

std::set<Pnode*> faudes::SOE::ro
private

set of nodes that form current partition, i.e.

leaves of W.

Definition at line 188 of file syn_synthequiv.cpp.

std::set<Pnode*> faudes::SOE::roDividers
private

set of nodes that can possibly split classes in ro

Definition at line 193 of file syn_synthequiv.cpp.

std::set<Idx> faudes::SOE::shaalph
private

Definition at line 168 of file syn_synthequiv.cpp.

std::set<Idx> faudes::SOE::shaconalph
private

Definition at line 173 of file syn_synthequiv.cpp.

std::set<Idx> faudes::SOE::shauncalph
private

Definition at line 172 of file syn_synthequiv.cpp.

std::vector<State> faudes::SOE::states
private

vector of all states [starting with 1]

Definition at line 150 of file syn_synthequiv.cpp.

std::set<Idx> faudes::SOE::uncalph
private

vorious eventsets of interest

Definition at line 165 of file syn_synthequiv.cpp.

std::vector<Pnode*> faudes::SOE::W
private

W-tree contains all blocks ever created [required for destruction].

Definition at line 183 of file syn_synthequiv.cpp.


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

libFAUDES 2.28c --- 2016.09.30 --- c++ api documentaion by doxygen