faudes::AbstractBisimulationCTA Class Reference

Detailed Description

The DelayedBisimulation class Derived from Bisimulation class. We implement the "two-pass change-tracking" algorithm from the cited paper.

Definition at line 183 of file cfl_bisimcta.cpp.

Public Member Functions

 AbstractBisimulationCTA (const Generator &rGen, const Idx &rSilent, const Idx &rTaskFlag, const std::vector< StateSet > &rPrePartition)
 
virtual void ComputePartition (std::list< StateSet > &rResult)
 BisimulationPartition wrapper. More...
 

Private Member Functions

virtual void EncodeData (void)
 EncodeData basic preparation for bisimulation NOTE: this function is virtual since derived classes, in the context of abstraction, have different steps. More...
 
void MarkTauStarAffected (std::vector< bool > &rAffected, const Idx &rState)
 MarkTauAffected perform a recursive Depth-First-Search to mark all tau* predecessors as affected based on given state index rState. NOTE: rState is also a tau* predecessor of itself, thus also affected NOTE: as tau-loop-free is guaranteed, no need to use visited list to avoid duplet NOTE: in most cases, argument rAffected directly takes mAffected. The only exception is that in ComputeChangedObservedAfters, we need to buffer an intermediate affected-vector. More...
 
void ComputeAbstractBisimulation ()
 ComputeDelayedBisimulation perform the overall iteration based on different task flag value, see mTaskFlag. More...
 
void ComputeChangedDelayedAfters (void)
 ComputeChangedDelayedAfters see Fig. 10 of cited paper. More...
 
void ComputeChangedObservedAfters (void)
 ComputeChangedObservedAfters see Fig. 12 of cited paper. More...
 
- Private Member Functions inherited from faudes::BisimulationCTA
 BisimulationCTA (const Generator &rGen, const std::vector< StateSet > &rPrePartition)
 
virtual ~BisimulationCTA ()=default
 
void FirstStepApproximation (void)
 FirstStepApproximation (see Fig. 2 (b) in cited paper) Prepartition states according to their active events. If a prepartition already exists, this function will refine the prepartition. More...
 
void RefineChanged (void)
 RefineChanged refine equivalence classes contained affected nodes in the last iteration (see Fig. 5 in cited paper) More...
 
void GenerateResult (std::list< StateSet > &rResult)
 GenerateResult generate partition result w.r.t. original state indices (without trivial classes) More...
 

Private Attributes

const Idx mTau
 tau persist index of original silent event More...
 
const Idx mTaskFlag
 mTaskFlag flag for task: mTaskFlag == 1: delayed bisimulation mTaskFlag == 2: weak bisimulation More...
 
- Private Attributes inherited from faudes::BisimulationCTA
std::vector< StatemStates
 
std::vector< IdxmEvents
 
const GeneratormGen
 
const std::vector< StateSetmPrePartition
 
std::vector< bool > mAffected
 
std::vector< bool > mChanged
 
Idx mCmax
 
Idx mStateSize
 
Idx mAlphSize
 
std::vector< IdxmPartition
 

Constructor & Destructor Documentation

◆ AbstractBisimulationCTA()

faudes::AbstractBisimulationCTA::AbstractBisimulationCTA ( const Generator rGen,
const Idx rSilent,
const Idx rTaskFlag,
const std::vector< StateSet > &  rPrePartition 
)
inline

Definition at line 185 of file cfl_bisimcta.cpp.

Member Function Documentation

◆ ComputeAbstractBisimulation()

void faudes::AbstractBisimulationCTA::ComputeAbstractBisimulation ( )
private

ComputeDelayedBisimulation perform the overall iteration based on different task flag value, see mTaskFlag.

Definition at line 897 of file cfl_bisimcta.cpp.

◆ ComputeChangedDelayedAfters()

void faudes::AbstractBisimulationCTA::ComputeChangedDelayedAfters ( void  )
private

ComputeChangedDelayedAfters see Fig. 10 of cited paper.

Definition at line 793 of file cfl_bisimcta.cpp.

◆ ComputeChangedObservedAfters()

void faudes::AbstractBisimulationCTA::ComputeChangedObservedAfters ( void  )
private

ComputeChangedObservedAfters see Fig. 12 of cited paper.

Definition at line 838 of file cfl_bisimcta.cpp.

◆ ComputePartition()

void faudes::AbstractBisimulationCTA::ComputePartition ( std::list< StateSet > &  rResult)
virtual

BisimulationPartition wrapper.

Reimplemented from faudes::BisimulationCTA.

Definition at line 916 of file cfl_bisimcta.cpp.

◆ EncodeData()

void faudes::AbstractBisimulationCTA::EncodeData ( void  )
privatevirtual

EncodeData basic preparation for bisimulation NOTE: this function is virtual since derived classes, in the context of abstraction, have different steps.

Reimplemented from faudes::BisimulationCTA.

Definition at line 672 of file cfl_bisimcta.cpp.

◆ MarkTauStarAffected()

void faudes::AbstractBisimulationCTA::MarkTauStarAffected ( std::vector< bool > &  rAffected,
const Idx rState 
)
private

MarkTauAffected perform a recursive Depth-First-Search to mark all tau* predecessors as affected based on given state index rState. NOTE: rState is also a tau* predecessor of itself, thus also affected NOTE: as tau-loop-free is guaranteed, no need to use visited list to avoid duplet NOTE: in most cases, argument rAffected directly takes mAffected. The only exception is that in ComputeChangedObservedAfters, we need to buffer an intermediate affected-vector.

Definition at line 783 of file cfl_bisimcta.cpp.

Member Data Documentation

◆ mTaskFlag

const Idx faudes::AbstractBisimulationCTA::mTaskFlag
private

mTaskFlag flag for task: mTaskFlag == 1: delayed bisimulation mTaskFlag == 2: weak bisimulation

Definition at line 203 of file cfl_bisimcta.cpp.

◆ mTau

const Idx faudes::AbstractBisimulationCTA::mTau
private

tau persist index of original silent event

Definition at line 195 of file cfl_bisimcta.cpp.


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

libFAUDES 2.32b --- 2024.03.01 --- c++ api documentaion by doxygen