About
User Reference
C++ API
luafaudes
Developer
Links
libFAUDES online
libFAUDES

Sections

Functions

Coordination Control PlugIn

This plug-in implements functions for coordination control synthesis, see the literature.


Copyright (c) 2011, Tomas Masopust.

IsConditionalClosed

Tests for conditional closedness.

Signature:

IsConditionalClosed(+In+ GeneratorVector specVect, +In+ Generator pk, +In+ GeneratorVector genVect, +In+ Generator gk, +Out+ Boolean BRes)

Detailed description:

The function checks conditional closedness of a given conditionally decomposable language K = P1+k(K) || P2+k(K) || ... || Pn+k(K) with respect to generators Gi, i=1,2,...,n.

A language K is conditionally closed with respect to generators Gk and (Gi,i=1,2,...,n) if

  • Pk(K) is Lm(Gk)-closed
  • Pi+k(K) is Lm(Gi)||Lm(Pk(K))-closed

Note: L-closed is also referred to as L-relatively prefix-closed.

It is required that the subparts Pi+k and Gi are at the same position in the vectors, i.e., specVector.At(i) = Pi+k(K) and genVect.At(i) = Gi, for all i.

The representation of K as the parallel composition of the components is chosen for the reason that the computation of a projection can be of exponential complexity. Therefore, it is rather left for the user to compute the decomposation of K. Usually, it is required that the projection is a natural observer, which ensures the lower complexity of the operation projection.

Parameter Conditions:

  • specVector is a vector of deterministic generators for the languages Pi+k, i=1,2,...,n.

  • pk is a deterministic generator for the language Pk(K).

  • genVector is a vector of deterministic generators Gi, i=1,2,...,n.

  • gk is a deterministic generator for the coordinator Gk such that its event set ek contains all shared events.

IsConditionalControllable

Tests for conditional controllability.

Signature:

IsConditionalControllable(+In+ GeneratorVector specVect, +In+ Generator pk, +In+ GeneratorVector genVect, +In+ Generator gk, +In+ EventSet ACntrl, +Out+ Boolean BRes)

Detailed description:

The function checks conditional controllability of a given conditionally decomposable language K = P1+k(K) || P2+k(K) || ... || Pn+k(K) with respect to generators Gi, i=1,2,...,n, and the corresponding sets of uncontrollable events Ei+k,u, i=1,2,...,n.

A language K is conditionally controllable with respect to generators Gk and (Gi,i=1,2,...,n) and the set of uncontrollable events Ek,u and (Ei,u,i=1,2,...,n) if

  • Pk(K) is controllable w.r.t. L(Gk) and Ek,u
  • Pi+k(K) is controllable w.r.t. L(Gi)||L(Pk(K)) and Ei+k,u, where Ei+k,u is the set of all uncontrollable events of the event sets Ei and Ek

It is required that the subparts Pi+k and Gi are at the same position in the vectors, i.e., specVector.At(i) = Pi+k(K) and genVect.At(i) = Gi, for all i.

The representation of K as the parallel composition of the components is chosen for the reason that the computation of a projection can be of exponential complexity. Therefore, it is rather left for the user to compute the decomposation of K. Usually, it is required that the projection is a natural observer, which ensures the lower complexity of the operation projection.

Parameter Conditions:

  • specVector is a vector of deterministic nonblocking generators for the languages Pi+k, i=1,2,...,n.

  • pk is a deterministic nonblocking generator for the language Pk(K).

  • genVector is a vector of deterministic nonblocking generators Gi, i=1,2,...,n.

  • gk is a deterministic nonblocking generator for the coordinator Gk such that its event set ek contains all shared events.

  • ACntrl is a set of controllable events. The local controllable events are computed by intersection of the alphabets of the generators Gi with the set ACntrl.

IsConditionalDecomposable

Tests for conditional decomposability.

Signature:

IsConditionalDecomposable(+In+ System gen, +In+ EventSetVector alphVector, +In+ EventSet ek, +InOut+ System proof, +Out+ Boolean BRes)

Detailed description:

The function checks conditional decomposability of a given language K=Lm(gen) with respect to a vector of alphabets alphVector and an additional alphabet ek.

A languge K is conditionally decomposable w.r.t. the event sets Ek and (Ei, i=1,2,...,n) if K = P1+k(K) || P2+k(K) || ... || Pn+k(K), where Pi+k is a natural projection from the global event set to the event set Ei union Ek.

Parameter Conditions:

  • gen is a deterministic generator

  • alphVector is a vector of at least two alphabets; the union of these alphabets must include the alphabet of the generator gen

  • ek is a specific alphabet such that all shared events of at least two alphabets from alphVector are included in ek, and ek is included in the union of all the alphabets from alphVector

  • proof is a generator that gives a proof that the language K is not conditionally decomposable. The language Lm(proof) represents all the strings that violate the condition.

ccTrim

A bit more efficient trim operation based on graph algorithms.

Signature:

ccTrim(+In+ Generator gen, +Out+ Generator trimGen, +Out+ Boolean BRes)

Detailed description:

The generator is transformed to a graph representation and the graph algorithms are used. The graph representation uses the adjacency list. (Only for experimental reasons. Optimization in progress.)

Parameter Conditions:

  • gen is a deterministic generator

  • trimGen is the trimmed gen generator

  • BRes is true if the generator gen is trimmed

Literature

[WODES2010] J. Komenda, T. Masopust, J.H. van Schuppen: Synthesis of safe sublanguages satisfying global specification using coordination scheme for discrete-event systems, Workshop on Discrete Event Systems, 436-441, Berlin, Germany, 2010.

[SCL2011] J. Komenda, T. Masopust, J.H. van Schuppen: Synthesis of controllable and normal sublanguages for discrete-event systems using a coordinator, Systems & Control Letters, 60(7), 492-502, 2011.

[2011CD] J. Komenda, T. Masopust, J.H. van Schuppen: On Nonblockingness and Conditional Decomposability, manuscript.

libFAUDES 2.20s --- 2011.10.12 --- with "synthesis-observer-observability-diagnosis-hiosys-iosystem-multitasking-coordinationcontrol-timed-simulator-iodevice-luabindings"