|
Observer PlugIn
[PlugIns]
Functions |
void | faudes::calcBisimulation (Generator &rGenOrig, std::map< Idx, Idx > &rMapStateToPartition, Generator &rGenPart, std::vector< Idx > &rNewPartitions) |
| Computation of a bisimulation over a given generator.
|
void | faudes::calcBisimulation (Generator &rGenOrig, std::map< Idx, Idx > &rMapStateToPartition, std::vector< Idx > &rNewPartitions) |
| Computation of a bisimulation over a given generator.
|
bool | faudes::IsMutuallyControllable (const System &rGen1, const System &rGen2) |
| Verification of mutual controllability.
|
Idx | faudes::calcClosedObserver (const Generator &rGenObs, EventSet &rHighAlph) |
| L(G)-observer computation by adding events to the high-level alphabet.
|
Int | faudes::calcNaturalObserver (const Generator &rGenObs, EventSet &rHighAlph) |
| Lm(G)-observer computation by adding events to the high-level alphabet.
|
Int | faudes::calcNaturalObserverLCC (const Generator &rGen, const EventSet &rControllableEvents, EventSet &rHighAlph) |
| Lm(G)-observer computation including local control consistency (LCC) by adding events to the high-level alphabet.
|
Int | faudes::calcMSAObserver (const Generator &rGen, EventSet &rHighAlph) |
| MSA-observer computation by adding events to the high-level alphabet.
|
Int | faudes::calcMSAObserverLCC (const Generator &rGen, const EventSet &rControllableEvents, EventSet &rHighAlph) |
| MSA-observer computation including local control consistency (LCC) by adding events to the high-level alphabet.
|
void | faudes::ExtendHighAlphabet (const Generator &rGenObs, EventSet &rHighAlph, std::map< Idx, Idx > &rMapStateToPartition) |
| Extension of the high-level alphabet to achieve the Lm-observer property.
|
void | faudes::calcAbstAlphClosed (System &rGenObs, EventSet &rHighAlph, EventSet &rNewHighAlph, std::map< Idx, std::set< Idx > > &rMapRelabeledEvents) |
| L(G)-observer computation.
|
void | faudes::calcAbstAlphObs (System &rGenObs, EventSet &rHighAlph, EventSet &rNewHighAlph, std::map< Idx, std::set< Idx > > &rMapRelabeledEvents) |
| Lm-observer computation.
|
void | faudes::calcAbstAlphMSA (System &rGenObs, EventSet &rHighAlph, EventSet &rNewHighAlph, std::map< Idx, std::set< Idx > > &rMapRelabeledEvents) |
| MSA-observer computation.
|
void | faudes::calcAbstAlphObsLCC (System &rGenObs, EventSet &rHighAlph, EventSet &rNewHighAlph, std::map< Idx, std::set< Idx > > &rMapRelabeledEvents) |
| Lm-observer computation including output control consistency (OCC).
|
void | faudes::calcAbstAlphMSALCC (System &rGenObs, EventSet &rHighAlph, EventSet &rNewHighAlph, std::map< Idx, std::set< Idx > > &rMapRelabeledEvents) |
| MSA-observer computation including local control consistency (LCC).
|
bool | faudes::IsObs (const Generator &rLowGen, const EventSet &rHighAlph) |
| Verification of the natural observer property.
|
bool | faudes::IsMSA (const Generator &rLowGen, const EventSet &rHighAlph) |
| Verification of the MSA observer property.
|
bool | faudes::IsOCC (const System &rLowGen, const EventSet &rHighAlph) |
| Verification of output control consistency (OCC).
|
bool | faudes::IsLCC (const System &rLowGen, const EventSet &rHighAlph) |
| Verification of local control consistency (LCC).
|
void | faudes::calcAbstAlphObs (MtcSystem &rGenObs, EventSet &rHighAlph, EventSet &rNewHighAlph, std::map< Idx, std::set< Idx > > &rMapRelabeledEvents) |
| Lm-observer computation.
|
Detailed Description
This plugin offers algorithms for the verification and synthesis of natural projections that are observers according to
K. C. Wong and W. M. Wonham, "On the Computation of Observers in Discrete Event
Systems," Discrete Event Dynamic Systems, vol. 14, no. 1, pp. 55-107, 2004.
and that fulfill the output control consistency (OCC) or local control consistency (LCC) condition for maximally permissive hierarchical control according to
K. Schmidt and C. Breindl, "On Maximal Permissiveness of Hierarchical and Modular Supervisory
Control Approaches for Discrete Event Systems," Workshop on Discrete Event Systems, 2008.
The initial version of the observer plug-in was implemented by Bernd Opitz together with the initial version of libFAUDES. A major revision and extension was part of Christian Breindl's student project, supervised by Klaus Schmidt. The observer plugin is distributed with libFAUDES and under the terms of the LGPL.
Copyright (c) 2006, Bernd Opitz
Copyright (c) 2008, Christian Breindl, Klaus Schmidt.
Function Documentation
void faudes::calcAbstAlphClosed |
( |
System & |
rGenObs, |
|
|
EventSet & |
rHighAlph, |
|
|
EventSet & |
rNewHighAlph, |
|
|
std::map< Idx, std::set< Idx > > & |
rMapRelabeledEvents | |
|
) |
| | |
L(G)-observer computation.
This function modifies a given generator and an associated natural projection such that the resulting natural projection is an L(G)-observer for the prefix-closed language of the resulting generator. This function evaluates the observer algorithm as described in K. C. Wong and W. M. Wonham, "On the Computation of Observers in Discrete Event Systems," Discrete Event Dynamic Systems, vol. 14, no. 1, pp. 55-107, 2004.
The alphabet rHighAlph has to be a subset of the alphabet of rGenObs. rGenObs must be a deterministic generator. There are no further restrictions on parameters.
- Parameters:
-
| rGenObs | Low-level generator. It is modified by the algorithm by relabeling transitions and events |
| rHighAlph | Initial abstraction alphabet |
| rNewHighAlph | Modified abstraction alphabet such that the abstraction is an Lm-observer |
| rMapRelabeledEvents | Maps the original events to sets of newly introduced events (accumulatoive, call clear before) |
Example: Computation of an L(G)-observer
Generator with relabeled events |
|
Original high-level alphabet (rHighAlph): alpha, beta, gamma |
|
Result of calcAbstAlphClosed(rGenObs, rHighAlph, rNewHighAlph, rMapRelabeledEvents); |
New high-level alphabet (rNewHighAlph): alpha, beta, gamma, aNewHLevent_1, eNewHLevent_1, hNewHLevent_1 |
|
|
void faudes::calcAbstAlphMSA |
( |
System & |
rGenObs, |
|
|
EventSet & |
rHighAlph, |
|
|
EventSet & |
rNewHighAlph, |
|
|
std::map< Idx, std::set< Idx > > & |
rMapRelabeledEvents | |
|
) |
| | |
MSA-observer computation.
This function modifies a given generator and an associated natural projection such that the resulting natural projection is an msa-observer for the language marked by the resulting generator. This function evaluates the msa-observer algorithm as described in K. Schmidt and Th. Moor, "Marked String Accepting Observers for the Hierarchical and Decentralized Control of Discrete Event Systems," Workshop on Discrete Event Systems, 2006.
The alphabet rHighAlph has to be a subset of the alphabet of rGenObs. rGenObs must be a deterministic generator. There are no further restrictions on parameters.
- Parameters:
-
| rGenObs | Low-level generator. It is modified by the algorithm by relabeling transitions and events |
| rHighAlph | Initial abstraction alphabet |
| rNewHighAlph | Modified abstraction alphabet such that the abstraction is an Lm-observer |
| rMapRelabeledEvents | Maps the original events to sets of newly introduced events (accumulatoive, call clear before) |
Example: Computation of an MSA-observer
Generator with relabeled events |
|
Original high-level alphabet (rHighAlph): alpha, beta, gamma |
|
Result of calcAbstAlphObs(rGenObs, rHighAlph, rNewHighAlph, rMapRelabeledEvents); |
New high-level alphabet (rNewHighAlph): alpha, beta, gamma, aNewHLevent_1, eNewHLevent_1, hNewHLevent_1 |
|
|
void faudes::calcAbstAlphMSALCC |
( |
System & |
rGenObs, |
|
|
EventSet & |
rHighAlph, |
|
|
EventSet & |
rNewHighAlph, |
|
|
std::map< Idx, std::set< Idx > > & |
rMapRelabeledEvents | |
|
) |
| | |
MSA-observer computation including local control consistency (LCC).
This function modifies a given generator and an associated natural projection such that the resulting natural projection is an MSA-observer for the language marked by the resulting generator and at the same time fulfills the local control consistency condition (LCC). This function evaluates the msa-observer algorithm as described in K. Schmidt and C. Breindl, "On Maximal Permissiveness of Hierarchical and Modular Supervisory Control Approaches for Discrete Event Systems, Workshop on Discrete Event Systems, 2008. with an extension to LCC as indicated in K. Schmidt and C. Breindl, "On Maximal Permissiveness of Hierarchical and Modular Supervisory
Control Approaches for Discrete Event Systems," Workshop on Discrete Event Systems, 2008.
The alphabet rHighAlph has to be a subset of the alphabet of rGenObs. rGenObs must be a deterministic generator. There are no further restrictions on parameters.
- Parameters:
-
| rGenObs | Low-level generator. It is modified by the algorithm by relabeling transitions and events |
| rHighAlph | Initial abstraction alphabet |
| rNewHighAlph | Modified abstraction alphabet such that the abstraction is an Lm-observer |
| rMapRelabeledEvents | Maps the original events to sets of newly introduced events (accumulatoive, call clear before) |
Example: Computation of an MSA-observer with local control consistency (LCC)
Generator with relabeled events |
|
Original high-level alphabet (rHighAlph): alpha, beta, gamma |
|
Result of calcAbstAlphObsLCC(rGenObs, rHighAlph, rNewHighAlph, rMapRelabeledEvents); |
New high-level alphabet (rNewHighAlph): alpha, beta, gamma, d, f, h, aNewHLevent_2, bNewHLevent_1, cNewHLevent_1, eNewHLevent_2, hNewHLevent_2 |
|
|
void faudes::calcAbstAlphObs |
( |
MtcSystem & |
rGenObs, |
|
|
EventSet & |
rHighAlph, |
|
|
EventSet & |
rNewHighAlph, |
|
|
std::map< Idx, std::set< Idx > > & |
rMapRelabeledEvents | |
|
) |
| | |
Lm-observer computation.
This function modifies a given generator and an associated natural projection such that the resulting natural projection is an Lm-observer for the language marked by the resulting generator. This function evaluates the observer algorithm as described in K. C. Wong and W. M. Wonham, "On the Computation of Observers in Discrete Event Systems," Discrete Event Dynamic Systems, vol. 14, no. 1, pp. 55-107, 2004.
The alphabet rHighAlph has to be a subset of the alphabet of rGenObs. rGenObs must be a deterministic generator. There are no further restrictions on parameters.
- Parameters:
-
| rGenObs | Low-level generator. It is modified by the algorithm by relabeling transitions and events |
| rHighAlph | Initial abstraction alphabet |
| rNewHighAlph | Modified abstraction alphabet such that the abstraction is an Lm-observer |
| rMapRelabeledEvents | Maps the original events to sets of newly introduced events (accumulatoive, call clear before) |
void faudes::calcAbstAlphObs |
( |
System & |
rGenObs, |
|
|
EventSet & |
rHighAlph, |
|
|
EventSet & |
rNewHighAlph, |
|
|
std::map< Idx, std::set< Idx > > & |
rMapRelabeledEvents | |
|
) |
| | |
Lm-observer computation.
This function modifies a given generator and an associated natural projection such that the resulting natural projection is an Lm-observer for the language marked by the resulting generator. This function evaluates the observer algorithm as described in K. C. Wong and W. M. Wonham, "On the Computation of Observers in Discrete Event Systems," Discrete Event Dynamic Systems, vol. 14, no. 1, pp. 55-107, 2004.
The alphabet rHighAlph has to be a subset of the alphabet of rGenObs. rGenObs must be a deterministic generator. There are no further restrictions on parameters.
- Parameters:
-
| rGenObs | Low-level generator. It is modified by the algorithm by relabeling transitions and events |
| rHighAlph | Initial abstraction alphabet |
| rNewHighAlph | Modified abstraction alphabet such that the abstraction is an Lm-observer |
| rMapRelabeledEvents | Maps the original events to sets of newly introduced events (accumulatoive, call clear before) |
Example: Computation of an Lm(G)-observer
Generator with relabeled events |
|
Original high-level alphabet (rHighAlph): alpha, beta, gamma |
|
Result of calcAbstAlphObs(rGenObs, rHighAlph, rNewHighAlph, rMapRelabeledEvents); |
New high-level alphabet (rNewHighAlph): alpha, beta, gamma, aNewHLevent_1, eNewHLevent_1, hNewHLevent_1 |
|
|
void faudes::calcAbstAlphObsLCC |
( |
System & |
rGenObs, |
|
|
EventSet & |
rHighAlph, |
|
|
EventSet & |
rNewHighAlph, |
|
|
std::map< Idx, std::set< Idx > > & |
rMapRelabeledEvents | |
|
) |
| | |
Lm-observer computation including output control consistency (OCC).
This function modifies a given generator and an associated natural projection such that the resulting natural projection is an Lm-observer for the language marked by the resulting generator and at the same time fulfills the output control consistency condition (OCC). This function evaluates the observer algorithm as described in K. C. Wong and W. M. Wonham, "On the Computation of Observers in Discrete Event Systems," Discrete Event Dynamic Systems, vol. 14, no. 1, pp. 55-107, 2004. with an extension to OCC as indicated in K. Schmidt and C. Breindl, "On Maximal Permissiveness of Hierarchical and Modular Supervisory
Control Approaches for Discrete Event Systems," Workshop on Discrete Event Systems, 2008.
The alphabet rHighAlph has to be a subset of the alphabet of rGenObs. rGenObs must be a deterministic generator. There are no further restrictions on parameters.
- Parameters:
-
| rGenObs | Low-level generator. It is modified by the algorithm by relabeling transitions and events |
| rHighAlph | Initial abstraction alphabet |
| rNewHighAlph | Modified abstraction alphabet such that the abstraction is an Lm-observer |
| rMapRelabeledEvents | Maps the original events to sets of newly introduced events (accumulatoive, call clear before) |
Example: Computation of an Lm-observer with output control consistency (OCC)
Generator with relabeled events |
|
Original high-level alphabet (rHighAlph): alpha, beta, gamma |
|
Result of calcAbstAlphObsOCC(rGenObs, rHighAlph, rNewHighAlph, rMapRelabeledEvents); |
New high-level alphabet (rNewHighAlph): alpha, beta, gamma, d, f, h, aNewHLevent_3, bNewHLevent_2, cNewHLevent_2, eNewHLevent_3 |
|
|
Lm-observer computation including local control consistency (LCC). This function modifies a given generator and an associated natural projection such that the resulting natural projection is an Lm-observer for the language marked by the resulting generator and at the same time fulfills the local control consistency condition (LCC). The function evaluates the observer algorithm as described in K. C. Wong and W. M. Wonham, "On the Computation of Observers in Discrete Event Systems," Discrete Event Dynamic Systems, vol. 14, no. 1, pp. 55-107, 2004. with an extension to LCC as indicated in K. Schmidt and C. Breindl, "On Maximal Permissiveness of Hierarchical and Modular Supervisory
Control Approaches for Discrete Event Systems," Workshop on Discrete Event Systems, 2008.
The alphabet rHighAlph has to be a subset of the alphabet of rGenObs. rGenObs must be a deterministic generator. There are no further restrictions on parameters.
- Parameters:
-
| rGenObs | Low-level generator. It is modified by the algorithm by relabeling transitions and events |
| rHighAlph | Initial abstraction alphabet |
| rNewHighAlph | Modified abstraction alphabet such that the abstraction is an Lm-observer |
| rMapRelabeledEvents | Maps the original events to sets of newly introduced events (accumulatoive, call clear before) |
Example: Computation of an Lm(G)-observer with local control consistency (LCC)
Generator with relabeled events |
|
Original high-level alphabet (rHighAlph): alpha, beta, gamma |
|
Result of calcAbstAlphObsLCC(rGenObs, rHighAlph, rNewHighAlph, rMapRelabeledEvents); |
New high-level alphabet (rNewHighAlph): alpha, beta, gamma, d, f, h, aNewHLevent_2, bNewHLevent_1, cNewHLevent_1, eNewHLevent_2, hNewHLevent_2 |
|
|
void faudes::calcBisimulation |
( |
Generator & |
rGenOrig, |
|
|
std::map< Idx, Idx > & |
rMapStateToPartition, |
|
|
std::vector< Idx > & |
rNewPartitions | |
|
) |
| | |
Computation of a bisimulation over a given generator.
This funcion reates an instance of the class Bisimulation and starts the computation of the coarsest quasi-congruence on the given generator by calling the function Bisimulation::partition. See J.-C. Fernandez, “An implementation of an efficient algorithm for bisimulation equivalence,” Science of Computer Programming, vol. 13, pp. 219-236, 1990 for further details.
- Parameters:
-
| rGenOrig | Original generator |
| rMapStateToPartition | Maps each state to its equivalence class |
| rNewPartitions | Holds the indices of all equivalence classes |
void faudes::calcBisimulation |
( |
Generator & |
rGenOrig, |
|
|
std::map< Idx, Idx > & |
rMapStateToPartition, |
|
|
Generator & |
rGenPart, |
|
|
std::vector< Idx > & |
rNewPartitions | |
|
) |
| | |
Computation of a bisimulation over a given generator.
This funcion reates an instance of the class Bisimulation and starts the computation of the coarsest quasi-congruence on the given generator by calling the function Bisimulation::partition. A generator representing the result of the computation is generated.
- Parameters:
-
| rGenOrig | Original generator |
| rMapStateToPartition | Maps each state to its equivalence class |
| rGenPart | Quotient automaton representing the result of the computation. Each state corresponds to an equivalence class |
| rNewPartitions | Holds the indices of all equivalence classes |
Idx faudes::calcClosedObserver |
( |
const Generator & |
rGenObs, |
|
|
EventSet & |
rHighAlph | |
|
) |
| | |
L(G)-observer computation by adding events to the high-level alphabet.
This function extends a given high-level alphabet such that the resulting natural projection is an L(G)-observer for the prefix-closed language of the given generator. This function evaluates the natural observer algorithm as described in Lei Feng; Wonham, W.M., "On the Computation of Natural Observers in Discrete-Event Systems," Decision and Control, 2006 45th IEEE Conference on , vol., no., pp.428-433, 13-15 Dec. 2006
The alphabet rHighAlph has to be a subset of the alphabet of rGenObs. rGenObs must be a deterministic generator. There are no further restrictions on parameters.
- Parameters:
-
| rGenObs | Low-level generator. It is modified by the algorithm by relabeling transitions and events |
| rHighAlph | Reference to the initial abstraction alphabet that is modified by the algorithm |
- Returns:
- number of states of the high-level generator
Example: Computation of an L(G)-observer
Original generator |
|
Original high-level alphabet (rHighAlph): alpha, gamma |
|
Result of calcClosedObserver(rGenObs, rHighAlph); |
New high-level alphabet (rHighAlph): alpha, beta, gamma, h |
|
|
Int faudes::calcMSAObserver |
( |
const Generator & |
rGen, |
|
|
EventSet & |
rHighAlph | |
|
) |
| | |
MSA-observer computation by adding events to the high-level alphabet.
This function extends a given high-level alphabet such that the resulting natural projection is an MSA-observer for the marked language of the given generator. This function adapts the natural observer algorithm as described in Lei Feng; Wonham, W.M., "On the Computation of Natural Observers in Discrete-Event Systems," Decision and Control, 2006 45th IEEE Conference on , vol., no., pp.428-433, 13-15 Dec. 2006 to the msa-obsever property.
The alphabet rHighAlph has to be a subset of the alphabet of rGenObs. rGenObs must be a deterministic generator. There are no further restrictions on parameters.
- Parameters:
-
| rGen | Low-level generator. It is modified by the algorithm by relabeling transitions and events |
| rHighAlph | Reference to the initial abstraction alphabet that is modified by the algorithm |
- Returns:
- number of states of the high-level generator
Example: Computation of an msa-observer
Original generator |
|
Original high-level alphabet (rHighAlph): alpha, gamma |
|
Result of calcMSAObserver(rGenObs, rHighAlph); |
New high-level alphabet (rHighAlph): alpha, beta, gamma, h |
|
|
Int faudes::calcMSAObserverLCC |
( |
const Generator & |
rGen, |
|
|
const EventSet & |
rControllableEvents, |
|
|
EventSet & |
rHighAlph | |
|
) |
| | |
MSA-observer computation including local control consistency (LCC) by adding events to the high-level alphabet.
This function extends a given high-level alphabet such that the resulting natural projection is an MSA-observer and locally control consistent (lcc) for the marked language of the given generator. This function adapts the natural observer algorithm as described in Lei Feng; Wonham, W.M., "On the Computation of Natural Observers in Discrete-Event Systems," Decision and Control, 2006 45th IEEE Conference on , vol., no., pp.428-433, 13-15 Dec. 2006 to the msa-obsever property and uses LCC as defined in K. Schmidt and C. Breindl, "On Maximal Permissiveness of Hierarchical and Modular Supervisory Control Approaches for Discrete Event Systems, Workshop on Discrete Event Systems, 2008.
The alphabet rHighAlph has to be a subset of the alphabet of rGenObs. rGenObs must be a deterministic generator. There are no further restrictions on parameters.
- Parameters:
-
| rGen | Low-level generator. It is modified by the algorithm by relabeling transitions and events |
| rControllableEvents | |
| rHighAlph | Reference to the initial abstraction alphabet that is modified by the algorithm |
- Returns:
- number of states of the high-level generator
Example: Computation of an msa-observer with LCC
Original generator |
|
Original high-level alphabet (rHighAlph): alpha, gamma; controllable events: a, f, g, h |
|
Result of calcMSAObserverLCC(rGenObs, rControllableEvents, rHighAlph); |
New high-level alphabet (rHighAlph): alpha, beta, gamma, a, e, f, g, h |
|
|
Int faudes::calcNaturalObserver |
( |
const Generator & |
rGenObs, |
|
|
EventSet & |
rHighAlph | |
|
) |
| | |
Lm(G)-observer computation by adding events to the high-level alphabet.
This function extends a given high-level alphabet such that the resulting natural projection is an Lm(G)-observer for the marked language of the given generator. This function evaluates the natural observer algorithm as described in Lei Feng; Wonham, W.M., "On the Computation of Natural Observers in Discrete-Event Systems," Decision and Control, 2006 45th IEEE Conference on , vol., no., pp.428-433, 13-15 Dec. 2006
The alphabet rHighAlph has to be a subset of the alphabet of rGenObs. rGenObs must be a deterministic generator. There are no further restrictions on parameters.
- Parameters:
-
| rGenObs | Low-level generator. It is modified by the algorithm by relabeling transitions and events |
| rHighAlph | Reference to the initial abstraction alphabet that is modified by the algorithm |
- Returns:
- number of states of the high-level generator
Example: Computation of an Lm(G)-observer
Original generator |
|
Original high-level alphabet (rHighAlph): alpha, gamma |
|
Result of calcNaturalObserver(rGenObs, rHighAlph); |
New high-level alphabet (rHighAlph): alpha, beta, gamma, delta, h |
|
|
Int faudes::calcNaturalObserverLCC |
( |
const Generator & |
rGen, |
|
|
const EventSet & |
rControllableEvents, |
|
|
EventSet & |
rHighAlph | |
|
) |
| | |
Lm(G)-observer computation including local control consistency (LCC) by adding events to the high-level alphabet.
This function extends a given high-level alphabet such that the resulting natural projection is an Lm(G)-observer and locally control consistent (lcc) for the marked language of the given generator. This function evaluates the natural observer algorithm as described in Lei Feng; Wonham, W.M., "On the Computation of Natural Observers in Discrete-Event Systems," Decision and Control, 2006 45th IEEE Conference on , vol., no., pp.428-433, 13-15 Dec. 2006 and uses LCC as defined in K. Schmidt and C. Breindl, "On Maximal Permissiveness of Hierarchical and Modular Supervisory Control Approaches for Discrete Event Systems
The alphabet rHighAlph has to be a subset of the alphabet of rGenObs. rGenObs must be a deterministic generator. There are no further restrictions on parameters.
- Parameters:
-
| rGen | Low-level generator. It is modified by the algorithm by relabeling transitions and events |
| rHighAlph | Reference to the initial abstraction alphabet that is modified by the algorithm |
| rControllableEvents | |
- Returns:
- number of states of the high-level generator
Example: Computation of an Lm(G)-observer with LCC
Original generator |
|
Original high-level alphabet (rHighAlph): alpha, gamma; controllable events: a, f, g, h |
|
Result of calcNaturalObserverLCC(rGenObs, rControllableEvents, rHighAlph); |
New high-level alphabet (rHighAlph): alpha, beta, gamma, delta, a, e, f, g, h |
|
|
void faudes::ExtendHighAlphabet |
( |
const Generator & |
rGenObs, |
|
|
EventSet & |
rHighAlph, |
|
|
std::map< Idx, Idx > & |
rMapStateToPartition | |
|
) |
| | |
Extension of the high-level alphabet to achieve the Lm-observer property.
This algorithm extends the given high-level alphabet such that nondeterminism and unobservable transitions in the quotient automaton computed with the current high-level alphabet are removed. The function is called by calcNaturalObserver.
The alphabet rHighAlph has to be a subset of the alphabet of rGenObs. rGenObs must be a deterministic generator. There are no further restrictions on parameters.
- Parameters:
-
| rGenObs | Low-level generator. It is modified by the algorithm by relabeling transitions and events |
| rHighAlph | Reference to the initial abstraction alphabet that is modified by the algorithm |
| rMapStateToPartition | Map from states in rGenObs to states (partitions) in the computed quotient automaton |
bool faudes::IsLCC |
( |
const System & |
rLowGen, |
|
|
const EventSet & |
rHighAlph | |
|
) |
| | |
Verification of local control consistency (LCC).
For verifying if a natural projection fulfills the local control consistency condition, a backward reachability is conducted. If starting from a state, where an uncontrollable high-level event is feasible, at least one local state cannot be reached by an uncontrollable path, LCC is violated.
- Parameters:
-
| rLowGen | Input System |
| rHighAlph | High level alphabet |
- Returns:
- true if LCC holds
bool faudes::IsMSA |
( |
const Generator & |
rLowGen, |
|
|
const EventSet & |
rHighAlph | |
|
) |
| | |
Verification of the MSA observer property.
For verifying if a natural projection has the marked string accepting observer property, one step in the MSA observer algorithm is evaluated. If the resulting generator equals the input generator, then the natural projection on the abstraction alphabet is an MSA observer.
- Parameters:
-
| rLowGen | Input generator |
| rHighAlph | High level alphabet |
- Returns:
- true if the MSA observer property holds
bool faudes::IsMutuallyControllable |
( |
const System & |
rGen1, |
|
|
const System & |
rGen2 | |
|
) |
| | |
Verification of mutual controllability.
This function checks if two generators are mutually controllable w.r.t. each other. A definition of mutual controllability is given in S.-H. Lee and K. C. Wong, “Structural decentralised control of concurrent DES,” European Journal of Control, vol. 35, pp. 1125-1134,2002.
- Parameters:
-
| rGen1 | Generator 1 |
| rGen2 | Generator 2 |
- Returns:
- True if mutual controllability is fulfilled
Example:
Violation of mutual controllability
Mutual controllability is fulfilled
bool faudes::IsObs |
( |
const Generator & |
rLowGen, |
|
|
const EventSet & |
rHighAlph | |
|
) |
| | |
Verification of the natural observer property.
For verifying if a natural projection has the observer property, one step in the observer algorithm is evaluated. If the resulting generator equals the input generator, then the natural projection on the abstraction alphabet is an observer.
- Parameters:
-
| rLowGen | Input generator |
| rHighAlph | High level alphabet |
- Returns:
- true if the observer property holds
bool faudes::IsOCC |
( |
const System & |
rLowGen, |
|
|
const EventSet & |
rHighAlph | |
|
) |
| | |
Verification of output control consistency (OCC).
For verifying if a natural projection fulfills the output control consistency condition, a backward reachability is conducted. If starting from a state, where an uncontrollable high-level event is feasible, a controllable event can be reached on a local backward path, OCC is violated.
- Parameters:
-
| rLowGen | Input System |
| rHighAlph | High level alphabet |
- Returns:
- true if OCC holds
libFAUDES 2.23h
--- 2014.04.03
--- c++ api documentaion by doxygen
|