Author's personal copy
Systems & Control Letters 56 (2007) 656 – 661 www.elsevier.com/locate/sysconle
An algorithm for calculating indistinguishable states and clusters in finite-state automata with partially observable transitions夡 Weilin Wang a , Stéphane Lafortune a,∗ , Feng Lin b a Department of EECS, University of Michigan-Ann Arbor, USA b Department of ECE, Wayne State University, USA
Received 7 August 2006; accepted 17 March 2007 Available online 22 May 2007
Abstract This paper presents a new algorithm for efficiently calculating pairs of indistinguishable states in finite-state automata with partially observable transitions. The need to obtain pairs of indistinguishable states occurs in several classes of problems related to control under partial observation, diagnosis, or distributed control with communication for discrete event systems. The algorithm obtains all indistinguishable state pairs in polynomial time in the number of states and events in the system. Another feature of the algorithm is the grouping of states into clusters and the identification of indistinguishable cluster pairs. Clusters can be employed to solve control problems for partially observed systems. © 2007 Elsevier B.V. All rights reserved. Keywords: Discrete event systems; Automata; Observability; State clusters; Supervisory control
1. Introduction Consider a discrete event system modeled by a deterministic finite-state automaton G where some of the transitions of G are not observable. A pair of states (x1 , x2 ) of G is said to be indistinguishable if G can generate two traces of events, s1 and s2 , where si takes the system to xi , i = 1, 2, and such that s1 and s2 have the same observable projection. The need to identify all state pairs that are indistinguishable occurs in several classes of problems for partially observed discrete-event systems, most importantly in control [4], diagnosis [6], and communication [5]. Indistinguishable state pairs can be identified by examining the states of the observer of G, which is the deterministic automaton that is obtained after replacing every unobservable transition in G by the empty trace symbol and determinizing the result (see, e.g., [1]). However, the construction of the observer is worst-case exponential in the state space of G. To avoid this
夡 The research of the first two authors is supported in part by ONR Grant N0001-14-03-1-0232 and by NSF Grant CCR-0325571. The research of the third author is supported in part by NSF Grant INT-0213651. ∗ Corresponding author. E-mail address:
[email protected] (S. Lafortune).
0167-6911/$ - see front matter © 2007 Elsevier B.V. All rights reserved. doi:10.1016/j.sysconle.2007.03.006
step, researchers have developed specific tests of polynomial complexity in the state space of G for several important properties thatarise in partially observed discrete-event system theory, such as observability [8] and diagnosability [10]. The contribution of this paper is to present a new algorithm that calculates indistinguishable state pairs and indistinguishable “cluster pairs” in polynomial complexity in the number of states and events in the system G. Clusters are sets of states characterized by their reachability with unobservable transitions from a given state, referred to as the cluster head. (A precise definition is given in the next section.) Once the pairs of indistinguishable states (clusters) have been identified, it is generally straightforward to test several important discrete-event system-theoretic properties such as observability [3], diagnosability [6], detectability [7], and feasibility (of communication policies) [5,9]. In fact, the algorithm herein was originally developed to test feasibility in the context of solving minimum communication problems in [9]. The realization that it is applicable in a variety of problems for partially observed discreteevent systems has motivated its separate presentation in this paper. Moreover, the notion of clusters, which is at the core of the algorithm, is of independent interest and can be used for solving control problems under partial observation, as is briefly sketched in Section 5 of this paper.
Author's personal copy
W. Wang et al. / Systems & Control Letters 56 (2007) 656 – 661
The next section presents the necessary notions and defines clusters. Section 3 is concerned with the relations that capture indistinguishable cluster pairs (relation T) and state pairs (relation T). The algorithm is presented in Section 4 and examples of its application for (i) testing observability and (ii) feedback control based on clusters, are given in Section 5. A brief conclusion follows in Section 6. 2. Automata with partially-observed transitions We model the discrete event system as a deterministic finitestate automaton G = (X, E, f, , x0 ),
(1)
where X is the finite set of states, E is the finite set of events, f : X × E → X is the partial transition function where f (x, e) = y means that there is a transition labeled by event e from state x to state y, : X → E is the active event function and (x) denotes the set of events e for which f (x, e) is defined, and x0 is initial state. We will often make a slight abuse of notation and write (x , e, x) ∈ f whenever f (x , e) = x. We use L(G) to denote the language generated by G. For all s ∈ L(G) and e ∈ E, the transition function f for trace se ∈ L(G) is defined recursively as f (x0 , se) = f (f (x0 , s), e) whenever f (x0 , s) is defined. We assume that G is accessible, i.e., ∀x ∈ X, ∃s ∈ L(G), f (x0 , s) = x. To specify which transitions are observable to a controller or agent, we denote the set of transitions TR(G) of G as follows: TR(G) := {(x, e) ∈ X × E : e ∈ (x)}.
(2)
Some of these transitions are observable and some are not. This is specified by an index function I : TR(G) → {0, 1},
(3)
where I(x, e) = 1 means that the transition (x, e) is observable and I(x, e) = 0 means that it is not. In classical discrete event control problems, the event set is partitioned as E = Eo ∪ Euo , where Eo is the set of observable events and Euo is the set of unobservable events. This is a specific case of our definition for observation on transitions, which corresponds to 1 if e ∈ Eo , I(x, e) := 0 if e ∈ Euo . To reflect the fact that some transitions in G are not observable, we define the information mapping (or projection) : L(G) → E ∗ as follows:
657
In particular, (L(G)) describes the set of all possible observed traces for system G. To construct an automaton for (L(G)), we first replace all unobservable transitions by and then convert the resulting nondeterministic automaton with transitions into a deterministic automaton using standard methods (see, e.g., [1]). We will call this automaton the “observer” and denote it by Gobs . To formally define Gobs , we first define the “unobservable reach” of a set of states X ⊆ X, denoted by U R(X ), as the set of states in X that are reachable from X via some unobservable transitions. Gobs is then given as Gobs = (Q, E, h, q0 ) := Ac(2X , E, h, q0 ), where Ac denotes the accessible part of an automaton; q0 := UR({x0 }); and h(q, e) := U R({x ∈ X : (∃x ∈ q)f (x , e) = x ∧ I(x , e) = 1}). We emphasize that Q is the set of all accessible states, each of which is a subset of X. It is not difficult to show that L(Gobs ) = (L(G)). Based on Gobs , we can define the relation ⊆ X × X on the set of states of X as follows. For any xi , xj ∈ X, (xi , xj ) ∈ ⇔ (∃q ∈ Q)xi ∈ q ∧ xj ∈ q. Relation has the following properties. (1) (2) (3) (4)
For all xi ∈ X, (xi , xi ) ∈ . For all xi , xj ∈ X, (xi , xj ) ∈ ⇒ (xj , xi ) ∈ . In general, (xi , xj ) ∈ ∧ (xj , xk ) ∈ (xi , xk ) ∈ . (si ) = (sj ) ⇒ (f (x0 , si ), f (x0 , sj )) ∈ .
To calculate relation from its definition, we need to construct Gobs , which in the worst-case is of exponential complexity in terms of |X|, the number of states in X. One of the contributions of this paper is to present a new algorithm of polynomial complexity in |X| for the calculation of . 2.1. The notion of state clusters Definition. For x ∈ X, the “cluster” of x is defined as U R({x}) if ((∃x ∈ X)(∃e ∈ E)f (x , e) c(x) := =x ∧ I(x , e) = 1) ∨ x = x0 ; undefined otherwise. Thus, c(x) is defined when state x is entered by an observable transition or it is the initial state. When it is defined, c(x) is the “unobservable reach” from state x. Denote the set of all possible clusters as := {c(x) : x ∈ X ∧ c(x)is defined}.
() := , where denotes the empty trace; (s)e if I(f (x0 , s), e) = 1, (se) := (s) if I(f (x0 , s), e) = 0.
Clearly, the number of clusters is less than |X|. We enumerate the set of clusters as
Therefore, if a trace s occurs in G, the controller or agent will see (s). For any sublanguage L ⊆ L(G), we define its − Projection as
where we set 0 = U R(x0 ). Next, we define a function R : 2X × E → 2X as follows. For X ⊆ X, e ∈ E,
(L) := {(s) : s ∈ L}.
R(X , e) := {x ∈ X : (∃ x ∈ X )f (x , e) = x ∧ I(x , e) = 1}.
:= {0 , 1 , 2 , . . . , N },
Author's personal copy
658
W. Wang et al. / Systems & Control Letters 56 (2007) 656 – 661
In other words, after executing an observable transition with event label e, the system goes from a state in X to a state in R(X , e). We note here that, by the definition of R, q1 ⊆ q2 ⇒ R(q1 , e) ⊆ R(q2 , e).
x ∈ R(i,n−1 , e),
y ∈ R(j,n−1 , e), i,n−1 ∪ j,n−1 ⊆ q
⇒ x, y ∈ R(q , e).
This proves one direction of the lemma. (⇐) In the case of the first clause, we obtain the first part of the definition of T as
Lemma 1. Consider the observer Gobs . Then we have that (∀ (q , e, q) ∈ h)(∀x ∈ q)(∃x ∈ R(q , e)) x ∈ c(x ) ∧ c(x ) ⊆ q.
Furthermore,
(4)
Proof. Follows directly from the rules of construction of observers and the above definition. 3. The relations T and T Definition. Relation T ⊆ × is defined recursively as follows:
0 = c(x0 ) = q0 ⇔ (0 , 0 ) ∈ T. In the case of the second clause, we have (∃q, q ∈ Q)(∃x, y ∈ X)(∃e ∈ E)h(q , e) = q ∧ i = c(x) ∧ j = c(y) ∧ i ∪ j ⊆ q ∧ x, y ∈ R(q , e).
By the definition of h and by recursive applications of Lemma 1, there exists a sequence of clusters i,k , j,k , k = 1, . . . , m and there exists a sequence t = e1 e2 · · · em ∈ E ∗ such that h(q0 , t) = q and
(1) For 0 = c(x0 ), (0 , 0 ) ∈ T; (2) if (i , j ) ∈ T, then for all e ∈ E, for all xi ∈ R(i , e) and xj ∈ R(j , e), (c(xi ), c(xj )) ∈ T.
c(x0 ) −→ i1 −→ i2 −→ · · · −→ im −→ c(x) = i ,
Relation T has the following properties.
c(x0 ) −→ j1 −→ j2 −→ · · · −→ jm −→ c(y) = j ,
Lemma 2. By construction, T is reflexive and symmetric, i.e.,
with im ⊆ q and jm ⊆ q . Since (c(x0 ), c(x0 )) ∈ T, by the definition of T, (i , j ) ∈ T.
(1) (i , i ) ∈ T; (2) (i , j ) ∈ T ⇔ (j , i ) ∈ T. Proof. (i , i ) ∈ T follows from the definition of T and the fact that i = c(x) for some reachable x. (i , j ) ∈ T ⇔ (j , i ) ∈ T follows directly from the definition of T. Lemma 3. The relation T and the observer Gobs are related as follows: (∀i , j ∈ )(i , j ) ∈ T ⇐⇒ [i = j = c(x0 ) = q0 ] ∨ [(∃q, q ∈ Q)(∃x, y ∈ X)(∃e ∈ E)h(q , e) = q ∧ i = c(x) ∧ j = c(y) ∧ i ∪ j ⊆ q ∧ x, y ∈ R(q , e)].
(5)
Proof. (⇒) If i =j =c(x0 ), then c(x0 )=q0 by the definition of observer. Otherwise, by part 2 of definition of T, there exists a sequence ten = e1 e2 · · · en−1 en such that e1
en−1
e2
e1
e2
em
e1
e2
em
e
e
Based on the above results, if (i , j ) ∈ T, we say that (i , j ) is an indistinguishable pair of clusters. We want to identify pairs of “indistinguishable states.” For this purpose, we define a new relation, denoted by T, based on relation T. Definition. Based on relation T, let us define relation T ⊆ X × X as follows. For any xi , xj ∈ X, (xi , xj ) ∈ T ⇔ (∃ (i , j ) ∈ T)xi ∈ i ∧ xj ∈ j .
(7)
Relation T has the following property. Theorem 1. Relation T is equal to relation , i.e., for all xi , xj ∈ X, (xi , xj ) ∈ T ⇔ (xi , xj ) ∈ .
(8)
Proof. (⇒) By the definition of T (xi , xj ) ∈ T ⇔ (∃(i , j ))(i , j ) ∈ T ∧ xi ∈ i ∧ xj ∈ j .
en
q0 = 0 −→ i1 −→ i2 −→ · · · −→ in−1 −→ in = i
By Lemma 3, this implies
and en−1
q0 = 0 −→ j1 −→ j2 −→ · · · −→ in−1 −→ jn = j .
(∃q ∈ Q)i ∪ j ⊆ q ∧ xi ∈ i ∧ xj ∈ j
Let e = en , q = h(q0 , t), q = h(q0 , te) = h(q , e). By the definition of T, ∃x, y ∈ X s.t.
Therefore,
e1
e2
x ∈ R(i,n−1 , e), y ∈ R(j,n−1 , e), c(x) = i , c(y) = j .
en
⇒ (∃q ∈ Q)xi ∈ q ∧ xj ∈ q. (xi , xj ) ∈ T ⇒ (xi , xj ) ∈ .
(6)
By the definition of Gobs ,
(⇐) To prove the other direction, we assume (xi , xj ) ∈ , i.e.,
i,n−1 ∪ j,n−1 ⊆ q ,
(∃q ∈ Q)xi ∈ q ∧ xj ∈ q.
i ∪ j ⊆ q.
(9)
Author's personal copy
W. Wang et al. / Systems & Control Letters 56 (2007) 656 – 661
In case of q =q0 =c(x0 ), we have xi , xj ∈ 0 . By the definition of T, (0 , 0 ) ∈ T. Then, by the definition of T, we have (xi , xj ) ∈ T . Otherwise, when q = q0 , we can find (q , e, q) ∈ h.
(10)
By Lemma 1 and Eqs. (9) and (10), we obtain that (∃xi , xj ∈ R(q , e))xi ∈ c(xi ) ∧ xj ∈ c(xj ) ∧ c(xi ) ⊆ q ∧ c(xj ) ⊆ q.
(11)
Combining Eqs. (9)–(11), we have (∃q, q ∈ Q)(∃xi , xj ∈ X)(∃e ∈ E)h(q , e) = q ∧ i = c(xi ) ∧ j
= c(xj ) ∧ c(xi ) ∪ c(xj ) ⊆ q ∧ xi , xj ∈ R(q , e). By Lemma 3, this implies (i , j ) ∈ T. Since xi ∈ i = c(xi ) and xj ∈ j = c(xj ), by definition of T, we have (xi , xj ) ∈ T .
659
The algorithm builds relation T in table form for partially observed automaton G = (X, E, f, , x0 ) with X = {xi : i = 1 . . . M}, E = {ej : j = 1 . . . K}. Algorithm CLUSTER-TABLE Input: G, I. Step 0: Construct set of clusters of G by using the definition of clusters. Build a table T whose entries are the elements of . Denote the clusters of T by i , i = 0, . . . , N. We have N + 1M by the definition of . For all j ∈ and for each i ∈ T(j ), we also define the partial function M : × → {0, 1} to mark the clusters in T within the construction procedure below. Step 1: Put each cluster into its own list as T(i ) ← i . Set M(i , i ) = 0 for all i = 0, . . . , N. Step 2: In this step, we complete the lists for T. 2.1: Pick a l ∈ T(i ) with M(i , l ) = 0 for some l, i ∈ {0, . . . , N}. 2.2: For each of e ∈ E, calculate the reaches of i and l , respectively, as R (i , e) := {k ∈ : (∃x ∈ i )I(x, e) = 1 ∧ k = c((f (x, e)))}
(13)
and R (l , e) := {k ∈ : (∃x ∈ l )I(x, e) = 1 ∧ k = c((f (x, e)))}.
(14)
Then, for each k ∈ R (i , e), set T(k ) ← T(k ) ∪ R (l , e),
From the above results, we know that the key to finding the relation is finding the relation T. The algorithm in the next section computes the relation T based on its definition. In the algorithm, we represent relation T by a table, whose entries are clusters and their respective “lists”. The table, which is also denoted by T, consists of two columns. The first column enumerates :
Then, for all ∈ T(k ), k = 0, . . . , N, if M(k , ) is undefined, set
{0 , 1 , . . . , N }.
M(k , ) = 0.
The second column enumerates the lists of the respective i ’s, defined as
2.3: Set M(i , l ) = M(l , i ) = 1. 2.4: Repeat Step 2 until M(i , j )=1 for all (i , j ) ∈ T. Step 3: From table T, for all x ∈ X, we construct table T using its definition as:
T(i ) = {j : (i , j ) ∈ T}. Similarly, we represent relation T by a table with two columns. Again, for the sake of simplicity, we use the same notation T for the table representation of relation T. The first column enumerates the states of X while the second column enumerates the list of xi ∈ X, defined as T (xi ) = {y ∈ X : (xi , y) ∈ T }.
(12)
4. Algorithm for constructing relations T and T In this section, we first present the procedure for constructing the relation T of indistinguishable clusters. Then we show how to use relation T to build relation T of indistinguishable states in G.1 1 In the case of distributed systems, the construction of tables for one
site is independent of other sites.
(15)
and for each k ∈ R (l , e), set T(k ) ← T(k ) ∪ R (i , e).
T (x) = {y ∈ X : (∃(l , k ) ∈ )[x ∈ l ] ∧ [y ∈ l ∨ y ∈ k ∈ T(l )]}.
(16)
(17)
(18)
Output: Relations T, T. The correctness of Algorithm CLUSTER-TABLE follows directly from the results in Section 3. Example 1. Consider the system shown in Fig. 1. The event set is E = {a, b, c}. The boxed transitions (0, b) and (4, b) are unobservable. The set of clusters for this system is ={0 ={0, 2}, 1 ={1}, 2 ={2}, 3 ={3}, 4 ={4, 2}}.
(19)
By Step 1, we have Table 1. All labels M(i , i ) are shown in the parentheses at the end of the lists. Suppose that 0 (0) ∈ list(0 ) is picked by Step 2.1. By Step 2.2, R (0 , a) := {1 , 3 }.
(20)
Author's personal copy
660
W. Wang et al. / Systems & Control Letters 56 (2007) 656 – 661
a 1
0 c c
b
a 1 b 5
2 a 3 b
b
0
b
c c
2 a 3 b
b
4
4
Fig. 2. Automaton G.
Fig. 1. Automaton H. Table 1 Results of Step 1 of Algorithm CLUSTER-TABLE for constructing relation T Clusters
Lists
0 1 2 3 4
0 (0) 1 (0) 2 (0) 3 (0) 4 (0)
Table 2 Results of Algorithm CLUSTER-TABLE for constructing relation T Clusters
Lists
0 1 2 3 4
0 (1) 1 (1), 2 (1), 3 (1) 2 (1), 1 (1) 3 (1), 1 (1) 4 (1)
where T is the table constructed for automaton H.
(21)
By Step 3, applying Eq. (18) to the result T we have T = {(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (0, 2), (2, 0), (1, 2), (2, 1), (4, 2), (2, 4), (1, 3), (3, 1)}.
Suppose a discrete event system is given by automaton G. Suppose the “desirable” behavior is given by automaton H = (XH , E, fH , H , x0 ). Without loss of generality, let H G, i.e., H is a subautomaton of G. If H is not a subautomaton of G but L(H ) ⊆ L(G), we can change the automata representations of L(H ) and L(G) to achieve this goal by standard procedures (see, e.g., [2]). It is straightforward to verify that the standard notion of observability of a language can be restated as follows in the context of this paper. Language L(H ) is observable with respect to the set of observable transitions and the set of controllable events (Ec ) if for all e ∈ Ec and for all x, y ∈ Y ((x, e), (y, e) ∈ T R(G))(x, e) ∈ T R(H ) ∧ (y, e) ∈ / T R(H ) ⇒ (x, y) ∈ /T, (23)
Put 3 in the list of 1 and put 1 in the list of 3 . Reset 0 (0) ∈ list(0 ) as 0 (1) ∈ list(0 ). Using the same procedure, the final result is shown in Table 2. Finally, T = {(0 , 0 ), (1 , 1 ), (2 , 2 ), (3 , 3 ), (4 , 4 ), (1 , 3 ), (3 , 1 ), (1 , 2 ), (2 , 1 )}.
5.1. Verification of observability
(22)
Example 2. Suppose G is as shown in Fig. 2 and H is as in Example 1 (Fig. 1). Let event b be controllable. The system is unobservable due to the confusion between states 1 and 3 as (1, 3) ∈ T . Hence, x = 1, y = 3 and e = b result in a violation of Eq. (23). 5.2. Feedback control using clusters We use the notion of cluster to define a special class of feedback control called cluster feedback control and compared it with state feedback control. State feedback control and cluster feedback control are defined as follows. Consider a system
5. Applications of Algorithm CLUSTER-TABLE
G = (X, E, f, , x0 ),
By Theorem 1, the table constructed by Algorithm CLUSTERTABLE allows us to identify “indistinguishable states” in polynomial complexity without constructing an observer. There are several applications where we need to identify indistinguishable states. Such applications include (1) checking observability of a language [3], (2) checking diagnosability of a language [6], (3) checking feasibility of a communication scheme [5,9], (4) checking detectability of a system [7]. The table technique can be used by itself or in combination with other techniques in these applications. The concept of cluster introduced in this paper also has applications in control and diagnosis. In this section, we first illustrate the application of the table technique in the verification of observability. We then demonstrate the usefulness of clusters in feedback control.
where the “legal” behavior is specified by a subautomaton H G where H = (XH , E, fH , H , x0 ).
(24)
(25)
The goal is to control the system so that it stays within H. This is achieved by a supervisor S : L(G) −→ 2E .
(26)
A supervisor is a state feedback supervisor, denoted by Ssf , if it satisfies the following conditions: for all s1 , s2 ∈ L(G), (1)
f (x0 , s1 ) = f (x0 , s2 ) ⇒ Ssf (s1 ) = Ssf (s2 ),
(27)
(2)
(f (x0 , s1 ), f (x0 , s2 )) ∈ T ⇒ Ssf (s1 ) = Ssf (s2 ).
(28)
Author's personal copy
W. Wang et al. / Systems & Control Letters 56 (2007) 656 – 661
For cluster feedback control, we know that there are four clusters in automaton H : {0}, {1, 2}, {2}, and {3}. The best cluster feedback control is to disable e at cluster {1, 2} only. Therefore, the language generated by cluster feedback control is given by
4 e 0
a
1
b
2
e
3
L(Scf /G) = {ce, ab}.
c
Condition (1) says that if two traces lead to the same state, then the control following these two traces must be the same. It implies that the control can be implemented as a state feedback. Condition (2) says that if the two states reached by s1 and s2 are indistinguishable, then the control afterwards must be the same. It ensures that state feedback is feasible in the presence of unobservable transitions. To implement state feedback control, one needs to calculate on-line the current state estimate (observer state) based on the observed transitions. To define cluster feedback control, let us first define the cluster after trace s ∈ L(G), denoted by fc (x0 , s), as follows. If s contains no observable transitions, that is, (s) = ε, then fc (x0 , s) is the initial cluster (29)
If s contains some observable transitions, then write s=veu with (s) = (v)e, i.e., (f (x0 , v), e) is the last observable transition. Define fc (x0 , s) = c(f (x0 , ve)).
(30)
A supervisor is a cluster feedback supervisor, denoted by Scf , if it satisfies the following conditions: for all s1 , s2 ∈ L(G), (1)
fc (x0 , s1 ) = fc (x0 , s2 ) ⇒ Scf (s1 ) = Scf (s2 ),
(2)
(fc (x0 , s1 ), fc (x0 , s2 )) ∈ T ⇒ Scf (s1 ) = Scf (s2 ). (32)
(31)
In view of Eqs. (31) and (32) cluster feedback control can be implemented by keeping track on-line of the set of possible clusters the system could be in given the observed transitions. Such an on-line cluster estimator is easily derived (details omitted). Eqs. (28) and (32) show that the output of Algorithm CLUSTER-TABLE is used in defining the two notions of state feedback and cluster feedback control. The following example shows that cluster feedback control can generate a larger language than state feedback control. Example 3. Let G be the automaton shown in Fig. 3. Let e be the only controllable event. H is the subautomaton of G with state 4 and transition (1, e) deleted. We assume transition (1, b) is unobservable, i.e., I(1, b) = 0. Let us find the best state feedback control. There are four legal states: 0, 1, 2, and 3. Since (1, b) is unobservable, states 1 and 2 are indistinguishable. Therefore the best state feedback control is to disable e at states 1 and 2. The language generated by state feedback control is given by L(Ssf /G) = {c, ab}.
(34)
Clearly, L(Scf /G) is larger than L(Ssf /G).
Fig. 3. Automaton G.
fc (x0 , s) = c(x0 ).
661
(33)
It can be shown that, in general, cluster feedback control will always perform as well, in terms of language inclusion, as state feedback control (proof omitted here). Since cluster feedback control is computationally less complex than the standard language-based approach for supervisory control with partial observation (see [1], Section 3.7), we believe it deserves further investigation. 6. Conclusion A new algorithm that calculates indistinguishable state pairs and cluster pairs in a finite-state automaton with partially observable transitions were presented. The algorithm is based on separating the state space of the automaton into a set of clusters and then calculating the set of indistinguishable cluster pairs in polynomial time in the size of the state space of the automaton. The set of indistinguishable state pairs is directly obtained from the set of indistinguishable cluster pairs. The algorithm can be employed in a variety of control, diagnosis, or communication problems for discrete event systems. Its application to test observability and to perform cluster-based feedback control was demonstrated. References [1] C.G. Cassandras, S. Lafortune, Introduction to Discrete Event Systems, Kluwer Academic Publishers, Dordrecht, MA, 1999. [2] S. Lafortune, E. Chen, The infimal closed controllable superlanguage and its application in supervisory control, IEEE Trans. Automat. Control 35 (4) (1990) 398–405. [3] F. Lin, W.M. Wonham, On observability of discrete-event systems, Inform. Sci. 44 (1988) 173–198. [4] P.J. Ramadge, W.M. Wonham, The control of discrete event systems, Proc. IEEE 77 (1) (1989) 81–98. [5] K. Rudie, S. Lafortune, F. Lin, Minimal communication in a distributed discrete-event system, IEEE Trans. Automat. Control 48 (6) (2003) 957–975. [6] M. Sampath, R. Sengupta, S. Lafortune, K. Sinnamohideen, D. Teneketzis, Failure diagnosis using discrete event models, IEEE Trans. Control Syst. Technol. 4 (2) (1996) 105–124. [7] S. Shu, F. Lin, H. Ying, Detectability of discrete event systems, Preprint, Dept. of Electrical and Computer Engineering, Wayne State University, 2006. [8] J.N. Tsitsiklis, On the control of discrete-event dynamical systems, Math. Control Signals Systems 2 (1989) 95–107. [9] W. Wang, Optimization of communication and coverage in classes of distributed systems, Ph.D. Thesis, Department of Electrical Engineering and Computer Science, University of Michigan, 2007. [10] T.-S. Yoo, S. Lafortune, Polynomial-time verification of diagnosability of partially-observed discrete event systems, IEEE Trans. Automat. Control 47 (9) (2002) 1491–1495.