• Nenhum resultado encontrado

C´alculo da m´axima linguagem compat´ıvel

Apresenta-se nesta se¸c˜ao um algoritmo para calcular a m´axima linguagem compat´ıvel contida numa dada linguagem em rela¸c˜ao a um dado SED com marca¸c˜ao flex´ıvel.

Dado o SED com marca¸c˜ao flex´ıvel S e a linguagem K ⊆ LS, deseja-se calcular a m´axima linguagem (LS, ΓS)-compat´ıvel contida em K. Este c´alculo ´e caracterizado pela busca do m´aximo ponto fixo de um operador sobre linguagens, como visto a seguir. Defini¸c˜ao 4.8 (Operador Ω) Para o SED com marca¸c˜ao flex´ıvel S sobre Σ e a lin-

guagem A ⊆ LS, defina-se o operador Ω : 2LS → 2LS por:

Ω(A) = {s ∈ A : ((i)∃(γ, M ) ∈ ΓS(s) : γ ∩ ΣLS(s) ⊆ ΣA(s)) e ((∀s0 ∈ A e ∀σ ∈ Σ, com s0σ ≤ s) : ((ii)(s0 ∈ A) ⇒ (∃(γ, #) ∈ Γ S(s0) : γ ∩ ΣLS(s 0) ⊆ Σ A(s0) e σ ∈ γ)) e ((iii)(s0 ∈ A − A) ⇒ (∃(γ, N ) ∈ Γ S(s0) : γ ∩ ΣLS(s 0) ⊆ Σ A(s0) e σ ∈ γ)))}. (4.5)

O operador Ω corta palavras s da linguagem A que falham em verificar pelo menos uma de trˆes condi¸c˜oes, numeradas na equa¸c˜ao (4.5). A condi¸c˜ao (i) afirma que o sistema deve dispor de um controle marcado (γ, M ) tal que γ ∩ΣLS(s) ⊆ ΣA(s), a significar que

o controle restringe o sistema a gerar ap´os s apenas os eventos que estejam previstos no conjunto de eventos ativos em A ap´os s. A condi¸c˜ao (ii) afirma que, para todo prefixo estrito de s que ´e elemento de A, diga-se s0 ∈ A com s0σ ≤ s e σ ∈ Σ, o sistema deve dispor de um controle (γ, #) tal que γ ∩ ΣLS(s

0) ⊆ Σ

A(s0) e σ ∈ γ, esta ´ultima a significar que o controle escolhido garante que o sistema pode evoluir de s0 a

s, assegurado pela permiss˜ao de se ocorrer σ ap´os s. Finalmente a condi¸c˜ao (iii) afirma

que, para todo prefixo de s que ´e elemento do prefixo de A mas n˜ao de A, diga-se

s0 ∈ A − A com s0σ ≤ s e σ ∈ Σ, o sistema deve dispor de um controle n˜ao marcado (γ, N ) tal que γ ∩ ΣLS(s

0) ⊆ Σ

A(s0) e σ ∈ γ.

4.3 C´alculo da m´axima linguagem compat´ıvel 105

Exemplo 4.9 (Aplica¸c˜oes sucessivas do operador Ω) Considere o SED com

marca¸c˜ao flex´ıvel sobre Σ = {α1, α2, α3, α4} representado pelo par (G, Γ) na figura

4.8(a) e a linguagem A1 marcada pelo autˆomato na figura 4.8(b). O objetivo ´e ilustrar

sucessivas aplica¸c˜oes do operador Ω, equa¸c˜ao (4.5), a A1 e `as linguagens resultantes. A

aplica¸c˜ao de Ω a A1 elimina as palavras α1 e α1α2 de A1, ambas por n˜ao atenderem `a

primeira condi¸c˜ao do operador Ω. O resultando ´e A2 = Ω(A1), representado na figura

4.8(c). A aplica¸c˜ao de Ω a A2 agora elimina a palavra α1α3, em fun¸c˜ao do prefixo

α1 n˜ao atender `a segunda condi¸c˜ao do operador Ω. O resultado ´e A3 = Ω(A2) = {²},

representada na figura 4.8(d). Finalmente, aplicando-se Ω a A3 tem-se Ω(A3) = A3, e

aplica¸c˜oes subseq¨uentes produzem o mesmo resultado.

G, Γ α1 α2 α4 α3 (∅, M) ({α1}, M) ({α2, α3}, N) ({α4}, N) (∅, M) (∅, M) α3 α1 α2 A1: α3 α1 A2: A3: (a) (b) (c) (d)

Figura 4.8: Aplica¸c˜oes sucessivas do operador Ω.

Para o operador Ω, definido na equa¸c˜ao (4.5), diz-se que a linguagem A ⊆ LS ´e um

ponto fixo de Ω quando Ω(A) = A. Observa-se que a linguagem vazia, ∅, ´e um ponto

106 Controle supervis´orio de SEDs com marca¸c˜ao flex´ıvel

Proposi¸c˜ao 4.2 (Pontos fixos e linguagens compat´ıveis) Para o SED com marca¸c˜ao flex´ıvel S e a linguagem K ⊆ LS, os pontos fixos do operador Ω contidos em

K s˜ao as linguagens (LS, ΓS)-compat´ıveis contidas em K.

Demonstra¸c˜ao. Prova-se que, para toda linguagem A ⊆ K, tem-se que Ω(A) = A se e

somente se A for (LS, ΓS)-compat´ıvel.

(Se) Pela defini¸c˜ao 4.7, se A ´e (LS, ΓS)-compat´ıvel, ent˜ao, para todo s ∈ A,

• existe (γ, M ) em ΓS(s) tal que γ ∩ ΣLS(s) = ΣA(s), e • para todo s0 ∈ A e σ ∈ Σ com s = s0σ, tem-se

– se s0 ∈ A, ent˜ao existe (γ, M ) em Γ S(s0) tal que γ ∩ ΣLS(s 0) = Σ A(s0), ou – se s0 ∈ A − A, ent˜ao existe (γ, N ) em Γ S(s0) tal que γ ∩ ΣLS(s0) = ΣA(s0).

A partir do conjunto de equa¸c˜oes acima e a defini¸c˜ao de Ω, equa¸c˜ao (4.5), Ω(A) = A, isto ´e, A ´e um ponto fixo de Ω.

(Somente se) Seja A ⊆ K um ponto fixo de Ω, ent˜ao A − Ω(A) = ∅. Considere as seguintes afirma¸c˜oes:

1. Para todo s em A, existe (γ, M ) em ΓS(s) tal que γ ∩ ΣLS(s) = ΣA(s). Suponha

que n˜ao exista s0 em A tal que s < s0, isto implica Σ

A(s) = ∅. Como A ´e ponto fixo de Ω, existe (γ, M) em ΓS(s) tal que γ∩ΣLS(s) ⊆ ΣA(s), ent˜ao γ∩ΣLS(s) = ∅

e a igualdade ´e v´alida. Suponha agora que exista s0 em A tal que s < s0. Por contradi¸c˜ao, suponha que, para todo (γ, M ) em ΓS(s) tal que γ ∩ΣLS(s) ⊆ ΣA(s)

tenha-se a condi¸c˜ao de estritamente contido, isto ´e, γ ∩ ΣLS(s) ⊂ ΣA(s) (nota:

como s est´a em A n˜ao se consideram os controles do tipo N). Sob a hip´otese anterior, existe σ em ΣA(s) tal que σ 6∈ γ, para todo (γ, M ) acima citado. Como

σ ∈ ΣA(s), existe s0 em A tal que s < sσ ≤ s0. Assim, para todo (γ, M ) em ΓS(s) tal que γ ∩ ΣLS(s) ⊆ ΣA(s), tem-se σ 6∈ γ ∩ ΣLS(s), ou seja σ 6∈ γ. Isso contradiz

a hip´otese que A seja um ponto fixo de Ω, porque equivale a dizer que existe s0 em A para o qual existe sσ ≤ s0, com s e sσ em A, e n˜ao existindo (γ, M ) em ΓS(s) tal que γ ∩ ΣLS(s) ⊆ ΣA(s) e σ ∈ γ.

4.3 C´alculo da m´axima linguagem compat´ıvel 107

2. Para todo s em A − A, existe (γ, N) em ΓS(s) tal que γ ∩ ΣLS(s) = ΣA(s). Seja s em A − A, pelo fato de que A ´e um ponto fixo de Ω, existe (γ, N ) em ΓS(s) tal que γ ∩ ΣLS(s) ⊆ ΣA(s). Suponha que para todo (γ, N ) acima a igualdade

seja estrita, isto quer dizer que γ ∩ ΣLS(s) ⊂ ΣA(s). Seja ent˜ao σ ∈ Σ tal que σ ∈ ΣA(s) e, para todo (γ, N ) acima σ 6∈ γ. Este fato contradiz que A seja um ponto fixo de Ω.

Assim, pelas duas afirma¸c˜oes acima, se A ⊆ K ´e um ponto fixo de Ω, ent˜ao A ´e (LS, ΓS)-compat´ıvel, o que completa a demonstra¸c˜ao. ¤ Proposi¸c˜ao 4.3 (M´aximo ponto fixo de Ω) Para o SED com marca¸c˜ao flex´ıvel S

e a linguagem K ⊆ LS, a m´axima linguagem (LS, ΓS)-compat´ıvel contida em K ´e o

m´aximo ponto fixo do operador Ω contido em K.

Demonstra¸c˜ao. Uma vez que as linguagens (LS, ΓS)-compat´ıveis contidas em K s˜ao os pontos fixos de Ω contidos em K, a m´axima linguagem (LS, ΓS)-compat´ıvel contida

em K ´e o m´aximo ponto fixo de Ω contido em K. ¤

Para o SED com marca¸c˜ao flex´ıvel S, a linguagem K ⊆ LS e o operador Ω, definido na equa¸c˜ao (4.5), seja {K} a seq¨uˆencia de linguagens gerada pela sucessiva aplica¸c˜ao do operador Ω a K e `as linguagens resultantes. Define-se {K} formalmente por:

K0 = K

Ki+1 = Ω(Ki),

(4.6)

onde i ´e um n´umero natural.

Proposi¸c˜ao 4.4 (Convergˆencia da seq¨uˆencia) Para o SED com marca¸c˜ao flex´ıvel

S e a linguagem K ⊆ LS, a seq¨uencia {K}, equa¸c˜ao (4.6), converge para a m´axima

linguagem (LS, ΓS)-compat´ıvel contida em K.

Demonstra¸c˜ao. Para provar que a seq¨uˆencia {K} converge para a m´axima linguagem

108 Controle supervis´orio de SEDs com marca¸c˜ao flex´ıvel

um ponto fixo do operador Ω contido em K que, pela proposi¸c˜ao 4.2, ´e uma linguagem (LS, ΓS)-compat´ıvel contida em K. Em seguida, prova-se que aplica¸c˜oes sucessivas do operador Ω iniciadas por K n˜ao ”passam por cima”de um ponto fixo do operador Ω contido em K. Assim, demonstra-se que o primeiro ponto fixo de Ω encontrado em aplica¸c˜oes sucessivas de Ω a partir de K ´e o m´aximo ponto fixo que, pela proposi¸c˜ao 4.3, ´e a m´axima linguagem (LS, ΓS)-compat´ıvel contida em K.

O operador Ω ´e mon´otono (Wonham 2002b), isto ´e, para todo A ⊆ LS, Ω(A) ⊆ A, pois, como visto anteriormente A − Ω(A) ⊇ ∅. Assim, a seq¨uˆencia de linguagens {K}, geradas por sucessivas aplica¸c˜oes de Ω come¸cando por K, converge para um ponto fixo de Ω contido em K.

Considere as linguagens Ki e Ki+1 da seq¨uˆencia {K}, com i um natural arbitr´ario, tais que Ki+1 = Ω(Ki). Defina-se Lb(A) = A − Ω(A), para A ⊆ LS. Lb(A) ´e a linguagem que cont´em as palavras de A que foram podadas por aplica¸c˜ao de Ω. Prova- se ent˜ao a seguir que se Ki n˜ao ´e um ponto fixo de Ω, ent˜ao para todo A ⊆ K tal que

Ki+1 ⊂ A ⊆ Ki, A n˜ao ´e um ponto fixo de Ω. Sabe-se que Ki− Ki+1= Ki− Ω(Ki) =

Lb(Ki), assim qualquer A ⊆ K tal que Ki+1 ⊂ A ⊆ Ki ´e obtido a partir de Ki+1 por adi¸c˜ao de palavras em Lb(Ki). Entretanto, qualquer linguagem A constru´ıda por adi¸c˜ao de palavras em Lb(Ki) a Ki+1falha em ser um ponto fixo de Ω, pois as palavras inseridas violam as regras que tornariam A − Ω(A) vazio. Assim, nenhum A ⊆ K tal que Ki+1⊂ A ⊆ Ki ´e um ponto fixo de Ω.

Conclui-se que a seq¨uˆencia {K} converge para a m´axima linguagem (LS, ΓS)-

compat´ıvel contida em K. ¤

Proposi¸c˜ao 4.5 (N´umero finito de passos) Para o SED com marca¸c˜ao flex´ıvel S

e a linguagem K ⊆ LS, se LS e K forem regulares e Σ for finito, ent˜ao a seq¨uˆencia

{K}, equa¸c˜ao (4.6), converge em um n´umero finito de passos.

Demonstra¸c˜ao. Trˆes rela¸c˜oes de equivalˆencia s˜ao definidas para a demonstra¸c˜ao desta

proposi¸c˜ao. Sejam s e s0 palavras em L

S, defina-se a rela¸c˜ao de equivalˆencia RLS por s ≡ s0 (mod R

LS) ⇐⇒ LS/s = LS/s

0, onde L

4.3 C´alculo da m´axima linguagem compat´ıvel 109

em LS ap´os s. As classes de equivalˆencia de RLS s˜ao compostas pelas palavras cujas

extens˜oes em LS s˜ao as mesmas. Defina-se tamb´em a rela¸c˜ao de equivalˆencia RΓS

por s ≡ s0 (mod R

ΓS) ⇐⇒ ΓS(s) = ΓS(s

0). As classes de equivalˆencia de R

ΓS

s˜ao compostas pelas palavras que possuem o mesmo conjuntos de controles. Por fim, defina-se a rela¸c˜ao de equivalˆencia RK por s ≡ s0 (mod RK) ⇐⇒ K/s = K/s0. De forma similar a RLS, as classes de equivalˆencia de RK s˜ao compostas pelas palavras

cujas extens˜oes em K s˜ao as mesmas.

Para palavras em LS, seja R a rela¸c˜ao de equivalˆencia definida pela intersec¸c˜ao das classes de equivalˆencia de RLS, RΓS e RK. Para a palavra s em LS, defina-se [s] como

sendo a classe de equivalˆencia de s em rela¸c˜ao a R. Pela defini¸c˜ao de R, para todo s e

s0 em L

S, se s0 ∈ [s] o seguinte ´e verdade:

• ΣLS(s

0) = Σ LS(s), • ΓS(s0) = ΓS(s) e

• ΣK(s) = ΣK(s0).

Mais ainda, se Σ for finito e LS e K forem regulares, a rela¸c˜ao de equivalˆencia R ´e de posto finito, isto ´e, possui um n´umero finito de classes de equivalˆencia (Hopcroft e Ullmann 1979).

Defina-se o autˆomato C = (Σ, Z, η, z0, Zm) por:

• Z = {[s] : s ∈ K}, • para s ∈ K e σ ∈ Σ, η([s], σ) =    [sσ] se sσ ∈ K

n˜ao definido caso contr´ario, (4.7)

• z0 = [²], e

110 Controle supervis´orio de SEDs com marca¸c˜ao flex´ıvel

Os estados do autˆomato C, elementos do conjunto Z, correspondem `as classes de equivalˆencia das palavras em K em rela¸c˜ao `a R. Por sua vez, os estados marcados do autˆomato C, elementos de Zm, correspondem `as classes de equivalˆencia das palavras em

K em rela¸c˜ao a R. Por outro lado, os estados n˜ao marcados do autˆomato C, elementos

de Z − Zm, correspondem `as palavras em K − K em rela¸c˜ao a R. Assim, conclui-se que LC = K e LC,m = K. Ainda, se K e LS forem regulares e Σ for finito, C ´e de estados finitos.

Relaciona-se a aplica¸c˜ao do operador Ω `a linguagem K a opera¸c˜oes sobre o autˆomato

C. Seja s em K e considere as trˆes condi¸c˜oes para se eliminar s, vide equa¸c˜ao (4.5):

1. Se s for eliminado por viola¸c˜ao da condi¸c˜ao (i), ent˜ao todo s0 ∈ [s] tamb´em ´e eliminado. Isso corresponde a se desmarcar o estado [s] de C, isto ´e, remover o estado do conjunto Zm.

2. Se s for eliminado por viola¸c˜ao da condi¸c˜ao (ii), ent˜ao existe s0σ ≤ s que viola `a alguma das condi¸c˜oes impostas em (ii), com σ ∈ Σ e s0 e s0σ em K. Assim, todo

s00 ∈ [s0] ´e tal que s00σ ≤ s000 com s000 ∈ [s], com s000 tamb´em violando a alguma das condi¸c˜oes impostas por (ii). Mais ainda, isso tamb´em implica que toda palavra

s00 ∈ K tal que s00σ ≤ s000 tamb´em deve ser eliminada ap´os a aplica¸c˜ao de Ω. Isso corresponde a se eliminar a transi¸c˜ao ([s], σ, [sσ]) no autˆomato C.

3. Num racioc´ınio similar, a elimina¸c˜ao da palavra que violar a condi¸c˜ao (iii) tamb´em resulta na elimina¸c˜ao de uma transi¸c˜ao de C.

Deduz-se assim que a aplica¸c˜ao de Ω a K ´e equivalente a se aplicar um conjunto de opera¸c˜oes de desmarca¸c˜ao de estados e elimina¸c˜ao de transi¸c˜oes ao autˆomato C. A tomada do componente trim do autˆomato resultante leva a um sub-autˆomato de C cuja linguagem marcada ´e Ω(K). Sendo K e LS regulares e Σ finito, correspondendo a C de estados finitos, a aplica¸c˜ao sucessiva deste procedimento converge necessariamente em um n´umero finito de passos, uma vez que o procedimento apenas elimina estados e

4.3 C´alculo da m´axima linguagem compat´ıvel 111

Da proposi¸c˜ao 4.4, sabe-se que a seq¨uˆencia {K}, equa¸c˜ao (4.6), converge `a m´axima linguagem (LS, ΓS)-compat´ıvel contida em K. J´a da proposi¸c˜ao 4.5, sabe-se que, com a condi¸c˜ao adicional de LS e K regulares e Σ finito, essa convergˆencia se d´a em um n´umero finito de aplica¸c˜oes do operador Ω.

No que segue, apresenta-se um poss´ıvel algoritmo que implementa a gera¸c˜ao da seq¨uˆencia de linguagens {K}. Seja o SED com marca¸c˜ao flex´ıvel S sobre o alfabeto Σ representado pelo par (G, Γ), onde G ´e um autˆomato de estados finitos e Γ ´e uma estrutura de controle dependente do estado, vide se¸c˜ao 4.2. Considere a linguagem

K ⊆ LS marcada pelo autˆomato de estados finitos B, isto ´e, LB = K e LB,m = K. O algoritmo 4.1 calcula a m´axima linguagem (LS, ΓS)-compat´ıvel contida em K baseado na gera¸c˜ao da seq¨uˆencia de linguagens {K}. No algoritmo 4.1, para os autˆomatos E e

F , EkF denota a composi¸c˜ao s´ıncrona dos autˆomatos E e F , trim(E) ´e a componente trim do autˆomato E, e para o estado x do autˆomato E, ΣE(x) denota o conjunto ativo de eventos em E no estado x (vide cap´ıtulo 2).

No passo 1 do algoritmo 4.1, o autˆomato C0 ´e constru´ıdo pela obten¸c˜ao do compo-

nente trim da composi¸c˜ao s´ıncrona dos autˆomatos G e B. Assim cada estado z de C0

corresponde a um ´unico par (x, y), onde x ´e um estado de G e y ´e um estado de B. Isso tamb´em vale para o autˆomato Ci, com i ∈ {1, . . . , n}, uma vez que Ci ´e um sub- autˆomato de C0, isto ´e, um autˆomato constru´ıdo pela remo¸c˜ao de estados e transi¸c˜oes

de C0. No passo 2 do algoritmo 4.1, para cada estado z = (x, y) de Ci faz-se uma busca pelo m´aximo controle (γ, #) ∈ Γ0(x) atende `as condi¸c˜oes γ ∩ Σ

G(x) ⊆ ΣCi(z), # = M

se z for marcado, e # = N se z for n˜ao marcado. Se pelo menos um controle de Γ0(x) atende `as condi¸c˜oes anteriores, sabe-se que, pelo fechamento em rela¸c˜ao `a uni˜ao dos controles de um SED com marca¸c˜ao flex´ıvel, defini¸c˜ao 4.2, existe um m´aximo controle em Γ0(x) que tamb´em atende `as condi¸c˜oes. Essa ´e a raz˜ao de se buscar por um controle m´aximo no passo 2. Dependendo do resultado da busca no passo 2, proceder com a remo¸c˜ao de estados do conjunto de estados marcados e de transi¸c˜oes de Ci, seguidas da obten¸c˜ao do componente trim do resultado. Copia-se ent˜ao o autˆomato obtido para

112 Controle supervis´orio de SEDs com marca¸c˜ao flex´ıvel

entradas:

• G = (Σ, X, δ, x0, Xm) e Γ0 autˆomato e estrutura de controle que representam o sistema S.

• B = (Σ, Y, ψ, y0, Ym) autˆomato que marca a especifica¸c˜ao K. passo 1:

• Marcar todos os estados de G.

• Fazer C0 = (Σ, Z0, η0, z0,0, Zm,0) ← trim(BkG).

• Fazer i ← 0.

passo 2:

• Para z = (x, y) ∈ Zi,m encontre o m´aximo (γ, #) em Γ0(x) tal que γ ∩ ΣG(x) ⊆ ΣCi(z) e # ≤ M.

– Se tal (γ, #) n˜ao existe, remova z de Zm,i e remova todas as transi¸c˜oes que partem de z.

– Se tal (γ, #) existe:

∗ Se # = N, remova z de Zm,i.

∗ Remova todas as transi¸c˜oes que partem de z com eventos em

ΣCi(z) − (γ ∩ ΣG(x)).

• Para z = (x, y) ∈ Zi − Zi,m encontre o m´aximo (γ, #) em Γ0(x) tal que γ ∩ ΣG(x) ⊆ ΣCi(z) e # = N.

– Se tal (γ, N) n˜ao existe, remova todas as transi¸c˜oes que partem de z. – Se tal (γ, N ) existe, remova todas as transi¸c˜oes que partem de z com

eventos em ΣCi(z) − (γ ∩ ΣG(x)).

• Obtenha a componente trim do autˆomato resultante e copie para Ci+1. passo 3:

• Se Ci+1= Ci, parar e fazer n ← i, sen˜ao fazer i ← i + 1 e volte ao passo 2. sa´ıda:

• Autˆomato Cn tal que LCn,m= sup C(LS,ΓS)(K).