|
|
||||||
|
op_obserververification.cpp
Go to the documentation of this file.
48 // One step of the observer algorithm: A dynamic system is computed that fulfills the one-step observer condition.
49 // if the result is equal to the original generator, then the natural projection on the high-level alphabet fulfills the observer property
72 // One step of the observer algorithm: A dynamic system is computed that fulfills the one-step observer condition.
73 // if the result is equal to the original generator, then the natural projection on the high-level alphabet fulfills the observer property
93 bool IsOCC(const Generator& rLowGen, const EventSet& rControllableEvents, const EventSet& rHighAlph){
100 // iteration over all states of rLowGen. If there is an uncontrollable feasible high-level event, backward reachability is conducted to determine if OCC holds.
120 bool backwardVerificationOCC(const Generator& rLowGen, const EventSet& rControllableEvents, const EventSet& rHighAlph, Idx currentState){
121 OP_DF("backwardVerificationOCC(" << rLowGen.Name() << "," << rControllableEvents.Name() << "," << rHighAlph.Name() << "," << currentState << ")");
209 bool IsLCC(const Generator& rLowGen, const EventSet& rControllableEvents, const EventSet& rHighAlph){
222 // iteration over all states of rLowGen. If there is an uncontrollable feasible high-level event,
235 backwardVerificationLCC(tset_X2EvX1, rControllableEvents, rHighAlph, *stIt, *stIt, false, localStatesMap, doneStates);
270 // go along all backward transitions. Discard the goal state if it is reached via a high-level event or if it is in the rDoneStates and
278 // we iterate over all backward transitions of the currentState to establish backward reachability
281 // are not in the local backward reach and the controllability property of the current exitState does not change
283 // if the state has not been visited, yet, the controllability of the current path are set in the rExitLocalStatesMap
286 // the path is uncontrollable if the current transition has an uncontrollable event or the path was already uncontrollable
291 backwardVerificationLCC(rTransSetX2EvX1, rControllableEvents, rHighAlph, exitState, tsIt->X1, currentControllablePath, rLocalStatesMap, rDoneStates);
293 else{ // for an existing state, the controllability value can change from controllable to uncontrollable (if
294 // a new uncontrollable path has been found). It is important to note, that the LCC condition implies that
295 // if there is one uncontrollable path, then the state is flagged uncontrollable except for the case of the
300 // as the controllabiity attribute of the current state changed it is subject to a new backward reachability
301 backwardVerificationLCC(rTransSetX2EvX1, rControllableEvents, rHighAlph, exitState, tsIt->X1, false, rLocalStatesMap, rDoneStates);
316 bool IsLCC(const Generator& rLowGen, const EventSet& rControllableEvents, const EventSet& rHighAlph){
Iterator class for high-level api to TBaseSet. Definition: cfl_baseset.h:387 Iterator BeginByX2(Idx x2) const Iterator to first Transition specified by successor state x2. Definition: cfl_transset.h:1385 Iterator EndByX2(Idx x2) const Iterator to first Transition after specified successor state x2. Definition: cfl_transset.h:1396 TBaseSet< Transition, TransSort::X1EvX2 >::Iterator Iterator Iterator on transition. Definition: cfl_transset.h:269 EventSet ControllableEvents(void) const Get EventSet with controllable events. Definition: cfl_cgenerator.h:1124 StateSet::Iterator StatesBegin(void) const Iterator to Begin() of state set. Definition: cfl_generator.cpp:1057 const TransSet & TransRel(void) const Return reference to transition relation. Definition: cfl_generator.cpp:1888 TransSet::Iterator TransRelBegin(void) const Iterator to Begin() of transition relation. Definition: cfl_generator.cpp:1067 StateSet::Iterator StatesEnd(void) const Iterator to End() of state set. Definition: cfl_generator.cpp:1062 TransSet::Iterator TransRelEnd(void) const Iterator to End() of transition relation. Definition: cfl_generator.cpp:1072 std::string SStr(Idx index) const Return pretty printable state name for index (eg for debugging) Definition: cfl_generator.cpp:3834 void ComputeBisimulation(const Generator &rGenOrig, map< Idx, Idx > &rMapStateToPartition) Computation of the coarsest bisimulation relation for a specified generator. Definition: cfl_bisimulation.cpp:1272 bool IsMSA(const Generator &rLowGen, const EventSet &rHighAlph) Verification of the MSA observer property. Definition: op_obserververification.cpp:62 void ExtendHighAlphabet(const Generator &rGen, EventSet &rHighAlph, map< Idx, Idx > &rMapStateToPartition) Extension of the high-level alphabet to achieve the Lm-observer property. Definition: op_observercomputation.cpp:520 bool IsObs(const Generator &rLowGen, const EventSet &rHighAlph) Verification of the natural observer property. Definition: op_obserververification.cpp:38 bool backwardVerificationOCC(const Generator &rLowGen, const EventSet &rControllableEvents, const EventSet &rHighAlph, Idx currentState) Function that supports the verification of output control consistency (OCC). Definition: op_obserververification.cpp:120 void calculateDynamicSystemMSA(const Generator &rGen, EventSet &rHighAlph, Generator &rGenDyn) Computation of the dynamic system for Delta_msa (local fulfillment of the msa-observer property). Definition: op_observercomputation.cpp:195 void calculateDynamicSystemClosedObs(const Generator &rGen, EventSet &rHighAlph, Generator &rGenDyn) Computation of the dynamic system for Delta_sigma (reachable states after the occurrence of one high-... Definition: op_observercomputation.cpp:46 bool IsLCC(const Generator &rLowGen, const EventSet &rControllableEvents, const EventSet &rHighAlph) Verification of local control consistency (LCC). Definition: op_obserververification.cpp:316 bool IsOCC(const Generator &rLowGen, const EventSet &rControllableEvents, const EventSet &rHighAlph) Verification of output control consistency (OCC). Definition: op_obserververification.cpp:93 void calculateDynamicSystemObs(const Generator &rGen, EventSet &rHighAlph, Generator &rGenDyn) Computation of the dynamic system for Delta_obs (local reachability of a marked state). Definition: op_observercomputation.cpp:159 Methods to verify the obsrver condition for natural projections. libFAUDES 2.32b --- 2024.03.01 --- c++ api documentaion by doxygen |