controle supervisório
TRANSCRIPT
Contrôle Supervisório(Abordagem R-W)
•Baseado em Teoria de Linguagens e Autômata
•Modêlo não-temporizado
•É possível um modelo temporizado
•Abordagem com resultados em síntese de controladores
Linguagens
E = conjunto de eventos = alfabeto
Definição: Uma linguagem L, definida sobreum alfabeto E, é um conjunto de cadeias formadas de eventos em E
Exemplo:
E={α,β,γ }
L1={ε,α,αββ}
L2={Todas as possíveis cadeias com3 eventos inicadas pelo evento α}
L3={Todas as possíveis cadeias finitasiniciada pelo evento α}
Expressões Regulares
Concatenação: operação sobre cadeias
u = αββ; v = γβconc.: uv = αββγβ
Operações sobre linguagens: Sejam A e Bduas linguagens
a)Concatenação:AB = {w: w=uv, u ∈ A, v ∈ B}
b)Fechamento de Kleene:
A* = ∪Αn onde: A0 = {ε}An = An-1A
c)Operações usuais sobre conjuntos
n=0
∝
Exemplo:
E = {α,β,γ}
L1 = {ε,α,αββ}; L2 = {γ}
Então:
L1L2 = {γ,αγ,αββγ}
L1*= {ε,α,αββ,αα,ααββ,αββα,αββαββ,...}
L2*= {ε,γ,γγ,γγγ,...}
L1 ∪ L2 = L1 + L2 = {ε,α,αββ,γ}
Convenção: se u e v são cadeias de eventosu = {u}
(u+v) = {u,v}={u} ∪ {v}u* = {ε,u,uu,uuu,...}
uv = {uv}
Expressões Regulares:
1) ∅ é uma expressão regular (conj. vazio),ε é uma expressão regular denotando {ε},e é uma expressão regular denotando {e}∀ e∈Ε;
2)Se r e s são expressões regulares então rs, r*, s*, (r+s) são expressões regulares;
3)As únicas expressões regulares são aquelasobtidas pela aplicação das regras 1 e 2 um número finito de vezes
Exemplo:
Seja E={α,β,γ} um alfabeto; então:
(α+β)γ∗ = {α,β,αγ,βγ,αγγ,βγγ,αγγγ,βγγγ,...}
(αβ)∗+ γ = {ε,γ,αβ,αβαβ,αβαβαβ,...}
Definição:Qualquer linguagem que possa ser descritacomo uma expressão regular é umalinguagem regular
Se L = {u1, u2,...,un} é uma linguagem finita,então L é regular pois: L = (u1+ u2+...+un)
Prefixo de uma cadeia:u ∈ E* é um prefixo de v ∈ E* se para algumw ∈ E*, v = uw
Prefixo Fechamento de uma Linguagem L:
L é a linguagem formada por todos os prefixosdas cadeias de L:
L = { u / uv ∈ L para algum v ∈ Ε∗}
Linguagem Prefixo Fechada:
L ⊂ E* é prefixo fechada se L =
ou seja, se v ∈ L e u é prefixo de v entãou ∈ L
L
Autômata de Estados Finitos
Dispositivo capaz de gerar uma linguagem deacordo com regras bem definidas.
Definição:Um automaton de estados finitos é umaquintúpla (E,X,f,x0,F) onde:
E é um alfabeto finito;X é um conjunto de estados finito;f é uma função de transição de estados,
f: X × E → Xx0 é um estado inicial, x0 ∈ X;F é um conjunto de estados finais, F ⊆ X
Diagramas de Transição de Estado
São grafos direcionados onde os nós representam os estados e os ramos representam os eventos
Exemplo: (E,X,f,x0,F)E = {α,β,γ} X= {x,y,z}f(x,α) = x, f(x,β) = f(x,γ) = z,f(y,α) = x, f(y,β) = f(y,γ) = y,f(z,β) = z, f(z,α) = f(z,γ) = y,
x y
z
α
γβ α
γ
α γ
β
β
Exemplo: (Geração de uma linguagem)
Seja E = {α,β} um alfabeto e (α+β)∗αuma linguagem regular.(α+β)∗α = {α,αα,βα,ααα,αβα,βαα,ββα,...}
Esta linguagem é gerada pelo automaton(E,X,f,xo,F) onde:E = {α,β}, X = {0,1}, xo = 0, F = {1}f(0,α) = 1 f(0,β) = 0f(1,α) = 1 f(1,β) = 0
α
β
β α
0 1
Pode-se considerar que um automatonreconhece uma dada linguagem
Extensão da notação:
f: X × Ε∗ → X
f(x,ue) = f(f(x,u),e)
No automaton do exemplo anterior:
f(x,ββα) = f(f(x,ββ),α) = f(f(f(x,β),β,α)= f(f(z,β),α) = f(z,α) = y
Definição: Uma cadeia u é reconhecidapor um automaton de estados finitos(E,X,f,xo,F), se f(xo,u) = x, onde x ∈ F
Definição: A linguagem reconhecida por umautomaton de estados finitos (E,X,f,xo,F) éo conjunto de cadeias {u:f(xo,u) ∈ F}.Se o automaton é denotado por A, então alinguagem reconhecida por A é denotada porL(A).
Exemplo: Seja E = {α1,α2,β} um alfabeto.Uma tarefa é definida como uma sequênciade 3 eventos, iniciada por β, seguida por α1ou α2 e então β, seguida de uma sequênciaarbitrária de eventos.
Linguagem: β(α1+α2)β(α1+α2+β)∗
5 0 1
2
3
4
α1
β
α2
α1
β
α2
α2
α1
α1
α2
β
βα1
α2
β
β
α1
α2
Autômata de Estados FinitosNão-determinísticos
Consideremos o caso em que a ocorrênciade um evento e num estado x possa causara transição para mais de um estado (p.ex.devido a ignorância sobre o sistema quese modela).
Deveríamos ter neste caso:
f: X × Ε → 2X
Exemplo:
α
α
β0 1
f(0,α) = {0,1}; f(0,β) = ∅f(1,α) = ∅; f(1,β) = {0}
Definição: Um automaton de estados finitosnão-determinístico é um quíntupla:
(E,X,f,xo,F)onde E,X,xo,F são como definidos anterior-mente, e f é uma função de transição deestado f: X × Ε → 2X
Pode-se também neste caso estender a de-finição de f, de modo que uma cadeia de eventos seja também seu argumento.
f(x,ue) = {z: z ∈ f(y,e) para algum estado y ∈ f(x,e)}
Teorema: Se L é uma linguagem geradapor algum automaton de estados finitosnão-determinístico então existe algumautomaton de estados finitos determinís-tico que gera L.
Exemplo: Seja (E,X,f,xo,F) o automatondo exemplo anterior. Vamos construir umatomaton determinístico (ED,XD,fD,xo
D,FD)que gere a mesma linguagem
ED = E
XD = {0,1,01, ∅} ( a cada subconjunto de X cor-responde um elemento de XD)
xoD = xo = 0; FD = {0,01}
α
ββ
α
α
β
0
01
∅
ββ
α
α
β
0
01
∅
βα
α
1
Equivalência entre Autômatade Estados Finitos e Expressões
Regulares
Teorema: (Kleene, 1950)Se uma linguagem é regular, então ela pode sergerada por algum automaton de estados finitos;e se ela é gerada por algum automaton de esta-dos finitos, então ela é regular.Questão:Como verificar se uma dada linguagem podeser representada por uma expressão regular?(existem algumas técnicas para identificação de lin-guagens não-regulares)
Exemplo:L = {ε, αβ, ααββ, αααβββ, ...}denotando: αn = ααα...αα ; tem-seL={αn βn , n = 0, 1, 2, ...}Existe um automaton que reconhece L, masque também reconhece infinitas outras cadeiasque ∉ L
Agregação de Estados emAutômata
Em muitos casos, não existe um único mode-lo para um sistema. É desejável obter aquelecom menor número de estados.
Para sistemas pequenos é possível reduzir onúmero de estados de um modelo utilizandológica e bom senso. Para sistemas de maiorporte pode haver explosão combinatorial.
Definição: Seja (E,X,f,xo,F) um automatonde estados finitos e seja R ⊆ X. Diz-se queo conjunto R é constituído de estados equi-valentes em relação a F se, para quaisquerx,y ∈ R, x ≠ y, e qualquer cadeia u:f(x,u) ∈ F se e somente se f(y,u) ∈ F
Observações:
a) se x ∈ F e y ∉ F então x e y não podem serequivalentes.
b) se f(x,e) = f(y,e) para qualquer e ∈ E (ex-ceto ε) então x e y são equivalentes.
c) a propriedade acima se mantém se, paraalguns eventos, f(x,e)=y e f(y,e)=x.
d) em geral, se R é tal que R ⊆ F ou R ∩ F = ∅, então R é constituído de esta-dos equivalentes se f(x,e) = z ∉ R implicaque f(y,e) = z, para quaisquer x,y ∈R.
e) se F = X então todos os estados são equi-valentes em relação a F.
Exemplo: Um automaton deve detetar a sequência de dígitos 1,2,3.
x1 x12 x123
x3 x2
12
31 2
3
1
23
1
23
1 2
3
x1 x12 x123
xo
1
3
2
1
2
3
1
231
23
Algoritmo para a Identificação deEstados Equivalentes:
1) Marcar (x,y) para todo x ∈ F, y ∉ F
2) Para todo par (x,y) não marcado em 1):
2.1) Se (f(x,e),f(y,e)) está marcado paraalgum e ∈ E então:
2.1.1) Marcar (x,y)2.1.2) Marcar todos os pares não-mar
cados (w,z) na lista de (x,y). Repetir para cada (w,z) até quenenhuma marcação seja possível
2.2) Se (f(x,e),f(y,e)) não está marcadopara nenhum e ∈ E então:
2.2.1) Se f(x,e) ≠ f(y,e), então acres-centar (x,y) à lista de (f(x,e),f(y,e))
Geradores
Um gerador é uma quíntupla:G = (E, X, f, xo, F) onde E, X, xo, F são definidos como anterior-mente e f é uma função parcial:f: X × E → X , definida somente para algunselementos de X × E (notação: f(x,e)!).
Esta definição é mais apropriada para a des-crição de sistemas, pois algumas transiçõespodem não ser possíveis em alguns estados.
( Pode-se definir alternativamente o conjuntoΛ(x) ⊆ E, definido para todo x ∈ X, como sendo o conjunto de eventos factíveis ou habilitados)
Linguagem Gerada: Dado um gerador G,define-se a linguagem gerada por G, L(G):
L(G) = {u ∈ E* / f(xo,u)!}
Propriedades:
•L(G) é prefixo-fechada
•Toda linguagem prefixo-fechada é represen-tável por um gerador.
•Um automaton A é um gerador tal que L(A) = E*
•Lm(G) ⊆ L(G)
Linguagem Marcada: A liguagem marcadapor um gerador G, Lm(G) é dada por:
Lm(G) = {u ∈ E* / f(xo,u) ∈ F)
Exemplo: Máquina com três estados
sf
b
r
I
W D
E = { s, f, b, r}
L(G) = (sf + sbr)*(ε + s + sb)
representa o conjunto de todas as sequênciasfisicamente possíveis de ocorrer no sistema.
Lm(G) = (sf + sbr)*
representa os ciclos de trabalho realizados pe-lo sistema.
Acessibilidade e Co-acessibilidadede um Gerador
Estado Acessível: Um estado x ∈ X é acessí-vel se x = f(xo,u) para algum u ∈ E*.
Gerador Acessível: Um gerador é acessívelse x é acessível para todo x ∈ X.
Componente Acessível de um Gerador:
Gac = (Xac, E, fac, xo, Fac)
onde:Xac : conjunto de estados acessíveis de GFac : Xac ∩ Ffac : f/ E × Xac
Se um gerador é acessível então Gac= G
Gerador co-acessível (não-bloqueante):Um gerador é co-acessível se cada cadeia u ∈ L(G) pode ser completada por algumw ∈ E*, uw ∈ Lm(G).
Se u ∈ L(G), então ∃w ∈ E* / uw ∈ Lm(G)
Gerador Trim: Um gerador é trim se é aces-sível e co-acessível.
Exemplo:
α
β α
γxo x1
x2
x3
α
γ
x5
x4
β
x4 : estado não acessível;x5 : estado “não co-acessível”
α
β α
γxo x1
x2
x3
α
β α
γxo x1
x2
x3
α
γ
x5
Gac: Componente acessível
Gt: Gerador Trim
Propriedade: Um gerador é co-acessívelse e somente se Lm(G) = L(G)
Composição de GeradoresProduto Síncrono e Assíncrono
Projeção Natural: Sejam E e Ei conjuntosde eventos com E i ⊂ E. Define-se Pi: E* → Ει
∗, a projeção natural de E* em Ei
* de acordo com:
Pi(ε) = ε
Pi(e) =ε se e ∉ Ei
e se e ∈ Ei
Pi(ue) = Pi(u) Pi(e) onde u ∈ E* ; e ∈ E
A ação de Pi sobre uma cadeia é apagar oseventos que não pertencem a Ei.
Pode-se estender a noção de projeção natural a linguagens:
PiL = Li = {ui ∈ Ei* / ui = Piu para algum u ∈ L}
Projeção Inversa:
Pi-1Li = {u ∈ E* / Piu ∈ Li}
Produto Síncrono:Sejam L1 ⊆ E1
* e L2 ⊆ E2* (sendo possível que
E1 ∩ E2 ≠ ∅). Seja E = E1 ∪ E2. Define-se o produto síncrono L1 //s L2 ⊆ E* como:
L1 //s L2 = P1-1L1 ∩ P2
-1L2
Observa-se que u ∈ L1 //s L2 se e somente seP1(u) ∈ L1 e P2(u) ∈ L2
Exemplo:
E1 = {α, β}; Ε2 = {β, γ}
α
ββ
G1:
β
γ
G2:
γ
α β γ β α
γG = sync(G1,G2):
Pode-se observar que se um evento e ∈ Ε1 ∩ E2não aparecer em um dos geradores e aparecer nooutro, sua ocorrência será impedida na composi-ção.
Intersecção de duas linguagens:No caso do produto síncrono em que E1 = E2o resultado é a intersecção das duas linguagenspois Pi
-1Li = Li
Em outras palavras, a intersecção de duas lin-guagens é a linguagem gerada pelo geradorque representa a ação sincronizada de doisgeradores que operam sobre o mesmo alfabeto
α α
β
β
L1 = (α + β)∗ = Ε∗
α β
L2 = (αβ)∗(ε + α)
L1 //s L2 = L2
Produto Assíncrono: Para duas linguagensL1 e L2 define-se o produto assíncrono (shuffleproduct) L1 // L2 como o produto síncrono pa-ra o caso especial em que L1 ∩ L2 = ∅
O produto assíncrono é a linguagem que con-siste de todas as fusões de cadeias das duas lin-guagens.
A linguagem resultante do produto assíncronopode ser vista como a linguagem gerada pelogerador G que representa a ação independentee assíncrona de dois geradores G1 e G2.Diz-se que G é o resultado da composição sín-crona de G1 e G2.
Exemplo: Dois usuários assíncronos eindependentes utilizando o mesmo recurso
α2 γ2
β2
I2
R2 U2
α1 γ1
β1
I1
R1 U1
I = repouso; R = requisitando recurso; U = utilizando recurso
Operação conjunta = composição assíncrona
G = G1 // G2
Estados: pares ordenados (x,y), x ∈ G1, y ∈ G2
Transições: (x,y) → (x’,y) ou (x,y) → (x,y’)
I1I2 R1I2 U1I2
I1R2 R1R2 U1R2
I1U2 R1U2 U1U2
α1 β1
γ1
α1 β1
γ1
α1 β1
γ1
α2
β2
γ2
α2
β2γ2
α2
β2
γ2
L(G) = todas as cadeias sobre E1 ∪ E2 que cor-respondam a caminhos no grafo iniciados em I1I2
Lm(G) = Idem, mas terminando em I1I2
G é co-acessível : Lm(G) = L(G) = L(G)
Controle de SED’s
Idéia central do controle de SED’s:
•Alguns dos eventos (em geral não todos) podem ser externamente habilitados oudesabilitados → ação de controle.
•O atual estado ou a sequência de eventos é acessível → medidas.
SED
Controlador
Estado ouSequênciade eventos
Controle
Metodologia de Análisee Síntese
1) Especificação do funcionamento emmalha aberta.
2) Especificação de restrições = funcio-namento desejado em malha fechada.
Especificações típicas:•Segurança•Vivacidade•Justiça
3) Síntese da lei de controle = satisfa-ção das especificações da maneira me-nos restritiva possível.
Características da abordagemproposta:
• Os tres passos anteriores podem ser re-alizados de forma sistemática (inclusivesíntese automática do controlador).
• O sistema a controlar, as especificaçõesem malha fechada e o controlador devemser representáveis por geradores finitos.
• A complexidade dos algoritmos é poli-nomial no número de estados, entretantoo número de estados cresce exponencial-mente ao se agregar sub-sistemas.
• Este fato aponta para a criação de ar-quiteturas adequadas: explorar modula-ridade, hierarquia, descentralização...
Para modelar a função de controle,particionamos o conjunto de eventos E:
E = Ec ∪ Eu
Ec : conjunto de eventos controláveisEu :conjunto de eventos não-controláveis
Exemplo: Máquina com 3 estadosEc = {s,r} Eu = {f,b}
Entrada de Controle:Sub-conjunto γ ⊂ E tal que Eu ⊂ γ
Se e ∈ γ então e está autorizado por γ,de outra forma e está inibido por γ.
( a condição Eu ⊂ γ indica que os eventos não-con-troláveis estão sempre autorizados)
Conjunto das entradas de controle:Γ ⊂ 2E
SED Controlado: SED representado porum gerador G, equipado com um conjuntode entradas de controle Γ (SEDC).
No grafo, para cada γ, pode-se representaro efeito da entrada apagando-se os eventose tais que e ∉ γ.
Este tipo de controle é dito permissivo nosentido em que os eventos inibidos não po-dem ocorrer e os habilitados não ocorremobrigatoriamente.
Exemplo: Máquina de 3 estados.Γ = {γ1, γ2, γ3, γ4}γ1 = {s, f, r, b}; γ2 = {s, f, b}γ3 = {r, f, b}; γ4 = {f, b}
Supervisor:Controlador que chaveia as entradas decontrole γ’, γ’’, γ’’’,... em resposta a umacadeia observada de eventos.
Formalmente é uma função:h: L → Γ
que associa a cada cadeia possível w ∈ Luma entrada de controle γ = h(w) ∈ Γ
Em malha fechada, após a geração de umacadeia w, o próximo evento será um ele-mento de
h(w) ∩ Λ(f(xo,w))
onde Λ(.) é a função que determina os eventos possíveis a partir de um estado
Um gerador G, supervisionado por um supervisor definido pela função h (siste-ma em malha fechada):
(G,h) ou h/G
Notação:
O comportamento do sistema h/G é defi-nido pela linguagem L(h/G) ⊂ L(G):
• ε ∈ L(h/G)• we ∈ L(h/G) se e somente se:
w ∈ L(h/G), we ∈ L(G), e ∈ h(w)
Linguagem gerada em malha fechada:
Propriedades:• {ε } ⊆ L(h/G) ⊆ L(G)• L(h/G) é não vazia e fechada
Comportamento marcado de h/G:
Lm(h/G) = L(h/G) ∩ Lm(G)
Lm(h/G) é a parte de Lm(G) que sobreviveà supervisão. Pode representar o conjuntode tarefas realizadas sob supervisão.
Propriedade:
∅ ⊆ Lm(h/G) ⊆ Lm(G)
h é não bloqueante para G se:
Lm(h/G) = L(h/G)
Notação: (quando não houver confusão)L(h/G) → LhLm(h/G) → Lmh
Representação por Realização de Estado
Seja T um automaton definido por:(E,Y,g,yo,Y)
Seja Φ uma função completa de Y sobreΓ = conj. das entradas de controle do su-pervisor h:
Φ: Y → Γ
Seja h um supervisor definido para umgerador G = (E,X,f,xo,F):
h:L → Γ
O par (T,Φ) realiza o supervisor h se, para cada w ∈ Lh:
γ = Φ(y) = Φ(g(yo,w)) = h(w)
Em outras palavras, o valor da função hpara uma certa cadeia w pode ser obtidoaplicando-se w ao automaton T, a partirde seu estado inicial, obtendo-se o esta-do y’. Em seguida, a função Φ forneceo valor de γ que corresponde a w.
O automaton T deve ter seus eventosdirigidos pelos eventos em G
Gerador G
AutomatonTΦ
eventosautorizados
y
γ
Realização por um SED
Representação do supervisor por outro SEDS, de modo que a ação de controle sobre Gesteja implícita na estrutura de transição de S.
• Se w ∈ L(h/G) então w ∈ L(S), we ∈ L(S) somente se e ∈ h(w)
• Se w ∈ L(h/G), we ∈ L(G), e ∈ h(w)então we ∈ L(S)
Equivalentemente:
•transições não habilitadas por h não apare-cem na estrutura de transição de S.
•transições habilitadas por h, e fisicamentepossíveis, aparecem na estrutura de transiçãode S
S é a máquina de estados:S = (E,Y,g,yo,Y)
•entradas: eventos ocorridos em G
•transições: de acordo com a função g
•ação de controle: uma vez no estado yS desabilita, em G, os eventos e ∉ Λ(y)
h(w) ∩ Λ(f(xo,w)) ⊆ Λ(g(yo,w)) ⊆ h(w)
G
S
eventosautorizados
γ
Funcionamento em malha fechada
O funcionamento de h/G pode ser repre-sentado pelo SED correspondente à com-posição síncrona de S e G (S//sG):
h/G = S//sG = {E, Y × X, θ, (yo, xo), Y × F}
onde:θ((y,x),e) = (g(y,e),f(x,e))
sendo g(y,e)! e f(x,e)!
Numa composição síncrona, somente astransições permitidas em ambos os siste-mas são habilitadas. Se o supervisor inibeuma transição, ela não ocorrerá.
Exemplo: Almoço de dois filósofos
F1 F2
M Cc1
m1
G1:
M Cc2
m2
G2:
CC
m2c2
MM
CM MC
c1
m1 c2
m2
m1
c1
G = G1 // G2
Ec = {c1, c2}
Eu = {m1, m2}
Objetivo de controle: evitar o estado CC
Consideremos o supervisor definido por:
Neste caso, é fácil ver que:
L(h/G) = ((c1m1)+(c2m2))*(ε + c1 + c2)
Lm(h/G) = ((c1m1)+(c2m2))*
h[((c1m1)+(c2m2))*c1] = {c1, m1, m2}
h[((c1m1)+(c2m2))*c2] = {c2, m1, m2}
para os outros w ∈ L(G), h(w) = {c1, c2, m1, m2}
Portanto, a especificação é atendida.
Representação do supervisorpor um par (T,Φ):
yo
y1 y2
c1
m1 c2
m2
c1 c2 m1c1 c2 m2
m1 m2Automaton T:
Φ(yo) = {c1, c2, m1, m2}Φ(y1) = {c1, m1, m2} = h[((c1m1)+(c2m2))*c1]Φ(y2) = {c2, m1, m2} = h[((c1m1)+(c2m2))*c2]
* = irrelevantes
Φ c 1 c 2 m 1 m 2
yo 1 1 1 1y1 1 * 0 1 1y2 0 1 * 1 1
CC
m2c2
MM
CM MC
c1
m1 c2
m2
m1
c1
yo
y1 y2
c1
m1c2
m2
c1 c2 m1c1 c2 m2
m1 m2
Φ c 1 c 2 m 1 m 2
yo 1 1 1 1y1 - 0 1 1y2 0 - 1 1
γ ∈ Γ e ∈ E
Funcionamento em malha fechada
Representação do supervisor por um SED
yo
y1 y2
c1
m1 c2
m2
S: Obs.:L(S) = L(h/G)
Sistema em malha fechada: (composiçãosíncrona)
CCyo
CMy1 MCy2
c1
m1 c2
m2
S //s G:
L(S//sG) = L(h/G)Lm(S//sG) = Lm(h/G)
O exemplo anterior, embora simples, suscita algumas questões:
• É possível que algumas especificações nãopossam ser atendidas de modo completo
• Se existirem várias soluções (eventualmentetodas incompletas), qual é a melhor?(no ex., se Φ(yo) = {m1, m2} a especificação será atendida, mas os filósofos morrerão de fome)
• É possível expressar as especificações de outras maneiras, p. ex. como sequências deeventos proibidas
•Formalmente: Dado um SED G com um com-portamento L(G) (ou Lm(G)), quais são os com-portamentos K ⊂ L (ou K ⊂ Lm) que podemser obtidos pela ação de algum supervisor ?(ou seja, para os quais existe h tal que L(h/G) = K ou Lm(h/G) = K)
Exemplo: Almoço dos filósofos com vinho
M C Bci
mi
bi
di
Gi: (i = 1,2)
Eventos controláveis: Ec = {c1, c2}
c1
m1
c2
m2
b1d1 c2
m2m1
c1d2
b2
m2
c2d1
b1 b2
d2 c1
m1
d2
b2
d1
b1
MM
MCCM
BM MB
BC CB
BB
CC
G = G1 // G2:
c1
m1
c2
m2
b1d1 c2
m2m1
c1d2
b2
m2
c2d1
b1 b2
d2 c1
m1
MM
MCCM
BM MBCC
BC CB
Objetivo de controle: evitar o estado BB
G’:
Deve-se obter h tal que:
L(h/G) = L(G’) ou Lm(h/G) = Lm(G’)
Isto é impossível pois c1b1c2 deve per-tencer a L(h/G), o que levará a BC e deonde será impossível evitar b2, resultan-do que c1b1c2b2 também pertence a L(h/G).
Controlabilidade
Uma linguagem K ⊆ E* é dita controlável emrelação a uma linguagem L se:
KEu ∩ L ⊆ K
Notação: SEo com S ⊆ E* e Eo ⊆ E denota o conjuntode cadeias da forma qe onde q ∈ S, e ∈ Eo
Em outras palavras, se K é controlável, entãoqualquer prefixo w de uma cadeia de K, segui-do de um evento não controlável e, tal quewe ∈ L, é também prefixo de alguma cadeiade K (we ∈ K)
Ou ainda: numa linguagem controlável, umacadeia fisicamente possível (∈L) seguida deum evento não-controlável conduz a uma ca-deia de K (∈K)
Obs.: ∅, L(G) e E* são controláveis em relação a L(G)
Exemplo:
0 1
2
3
a bc
de
G:
L(G) = (abc + ade)* (ε + a + ab + ad)
Seja K = (abc)* ab
Então: K = (abc)* (ε + a + ab)
Se Eu = {a, b, c, d, e} e Ec = { } entãoK não é controlável em relação a L(G)
pois KEu ∩ L = (abc)*(ε + a + ab + ad)
Se Eu = {a, b, c, e} e Ec = {d } entãoK é controlável em relação a L(G)
pois KEu ∩ L = (abc)*(ε + a + ab)
sf
b
r
I
W D
L(G) = (sf + sbr)*(ε + s + sb)
Exemplo:
G:
Para: K = (sbr)*
K = (sbr)* (ε + s + sb)KEu ∩ L = (sbr)* (sf + sb)K não é controlável em relação a L(G)
Para: K = (sf)*
K = (sf)* (ε + s)KEu ∩ L = (sf)* (ε + sb)K não é controlável em relação a L(G)
Para: K = {sf, sb} K = {ε, s, sf, sb}KEu ∩ L = {sf, sb}K é controlável em relação a L(G)
No exemplo do almoço dos filósofos,tanto L(S//sG) como Lm(S//sG) são con-troláveis em relação a L(G).
c1 m1
c2m2
b1 d1 c2
m2 m1c1
d2
b2
m2
c2 d1b1 b2
d2 c1 m1
MM
MCCM
BM MBCC
BC CB
No exemplo do almoço dos filósofoscom vinho, tanto L(G’) como Lm(G’)não são controláveis em relação a L(G).
yo
y1 y2
c1
m1 c2
m2
c1 c2 m1c1 c2 m2
m1 m2
Objetivos da Supervisão
a) Modificar o funcionamento do SED
•Especificando-se uma linguagem-alvo prefixofechada K ⊆ L(G) que representa o comporta-mento fixicamente possível desejado sob super-visão.
•Encontrando-se (se possível) um supervisortal que o comportamento em malha fechadasatisfaça L(h/G) = K
b) Modificar o funcionamento marcado do SEDpreservando a propriedade de não-bloqueio.
•Especificando-se uma linguagem-alvoK ⊆ Lm(G) que representa as tarefas que se deseja serem completáveis sob supervisão .
•Encontrando-se (se possível) um supervisor não-bloqueante tal que o comportamento em malha fechada satisfaça Lm(h/G) = K
L - fechamento
Def.: Sejam K e L duas linguagens comK ⊂ L ⊆ E*. A linguagem K é dita fe-chada em relação a L ou L-fechada se
K = K ∩ L
ou seja, K é L-fechada se todos os seus pre-fixos, que são palavras de L, forem palavrasde K.
Exemplo:
α β λ µ
λ α
G:
Lm(G) = {αβ, αβλµ, αλαµ }
K1 = {αβ} é Lm-fechada pois:
K1 ∩ Lm = {ε, α, αβ} ∩ Lm = K1
K2 = {αλαµ} é Lm-fechada pois:
K2 ∩ Lm = {ε, α, αλ, αλα, αλαµ} ∩ Lm = K2
K3 = {αβλµ} não é Lm-fechada pois:
K3 ∩ Lm = {α, αβ, αβλ, αβλµ} ∩ Lm≠ K3
Existência de Supervisores
Proposição: Dado um gerador G, com lingua-gem marcada Lm(G), e uma liguagem-alvoK ⊆ Lm(G), K ≠ ∅, existe um supervisor não-bloqueante h, tal que Lm(h/G) = K se e somentese K é Lm- fechada e L- controlável.
Corolário: Dados um gerador G, com linguagemgerada L(G), e uma linguagem-alvo K ⊆ L(G),existe um supervisor h, tal que L(h/G) = K, se esomente se K é prefixo-fechada e L- controlável
O problema formulado em termos de linguagemgerada pode ser visto como um caso particulardo problema anterior, no qual todos os estados daplanta são marcados.
Exemplo:
xo x1
x2
x3
abc
de
G:
L(G) = (abc + ade)*(ε + a + ab + ad) (é prefixo-fechada)
Lm(G) = (abc + ade)*(ab + ad)G é trim e portanto não-bloqueante (Lm = L)
Especificação em termos de linguagem gerada:
K = (abcade)*(ε + a + ab + abc + abca + abcad)
K ⊂ L(G)K é prefixo-fechada e controlável
Existe um controlador h tal que L(h/G) = K
Eu = {a, c, e}Ec = {b, d}
Síntese do Supervisor:Devemos obter um supervisor S de modoque: L(S//sG) = L(S) ∩ L(G) = K
Uma solução possível é tal que L(S) = K
a b c a d
eS:
(abcade)*
(⋅)*a(⋅)*ab(⋅)*abc(⋅)*abca(⋅)*abcad
h a b c d e11
11
11
1
11
111
1
0
111111
0
1
-
--
-
-
--
-
Esta é uma representação de qualquer su-pervisor da forma:
Contudo esta solução não é mínima nonúmero de estados.
Outra solução é o supervisor a seguir:
yo y1
a
a
d,e b,c
onde:L(S) = [(d + e)*a (b + c)*a]*[ε + (d + e)* +
+ (d + e)*a + (d + e)*a (b + c)*]
e L(S) //s L(G) = L(S) ∩ L(G) = K
O SED acima é uma representação do su-pervisor:
(abcade)*(ε + abca + abcad)
(abcade)*(a + ab + abc)
h a b c d e
1
1 1 1 1
1 1 10
0
A composição síncrona deste supervisor comG resultará num gerador semelhante ao super-visor obtido anteriormente (que gera K).
Especificação em termos de linguagemmarcada:
K’ = (abcade)*(ab + abcad) ⊂ Lm(G)
K’ não é prefixo-fechada pois:
K’ = (abcade)*(e + a + ab + abc ++ abca + abcad) ≠ K’
mas: K’ ∩ Lm(G) = KK’ é controlável
Portanto existe h, não-bloqueante tal que:Lm(h/G) = K’
O supervisor solução deve poder ser represen-tado por um SED, S, tal que L(S //s G) = K’
Tem-se que K’ = K (do exemplo anterior) eportanto as soluções anteriores são soluçõespara este problema.
Máxima Linguagem Controlável(Supervisor Minimamente Restritivo)
A condição de controlabilidade da linguagem K, especificada para o comportamento em ma-lha fechada, é necessária para existência de umsupervisor.
Questão: se K não for controlável, existealguma solução satisfatória ?
Provar-se-á que existe uma aproximação deK, contida em K, chamada de máxima lin-guagem controlável e que é única (notação:K↑)
Sob certas condições, esta linguagem satisfa-rá também os requisitos de fechamento da pro-posição anterior, garantindo a existência de umsupervisor. Este supervisor será chamado desupervisor minimamente restritivo ou ótimo.
Existência da máxima linguagemcontrolável
Sejam L(G) (gerada por um SEDC G) eK ⊆ E* (especificação em malha fechada).
C(K) = {J ⊆ K / J é controlável em rela-ção a G: JEu ∩ L(G) ⊆ J}
Proposição: C(K) é não-vazio e é fechadoem relação à operação de união de conjuntos.Em particular, C(K) contém um elementosupremo único denotado por sup C(K) ou K↑
Proposição: Seja K ⊆ Lm(G) uma linguagemLm-fechada (K = K ∩ Lm). Então sup C(K) éLm-fechada.
Proposição: Seja K ⊂ L(G) uma linguagemprefixo-fechada (K = K). Então sup C(K) é fechada.
Corolário: Seja G um SED não-bloqueantecom funcionamento L(G) e funcionamentomarcado Lm(G). Tem-se:
• Se K ⊂ L, K ≠ ∅ e K = K, existe um super-visor h tal que L(h/G) = sup C(K) .
• Se K ⊂ Lm, K ≠ ∅ e K = K ∩ Lm, existe umsupervisor h tal que Lm(h/G) = sup C(K) .
Obs.: Os supervisores acima geram um com-portamento em malha fechada dentro das es-pecificações descritas por K da maneira me-nos restritiva possível. Neste sentido são ótimos.
Síntese da Máxima LinguagemControlável supC(K)
Sejam:K: uma linguagem regularG: um SED com comportamentos L(G) e Lm(G)S: um gerador trim tal que Lm(S) = K⊂ L(G)
Algoritmo 1:
1) Obter G’, um gerador trim t.q. L(G’) = Lm(G’)= L(G) (basta marcar todos os estados de G);
2) Construir Co = G’// S; fazer i=0;(Observe-se que:Lm(Co) = Lm(G’) ∩ Lm(S) = L(G) ∩ Lm(S) = K)
3) Identificar os maus estados de Ci; são os es-tados (x,y) tais que: Eu(G’)(x) ⊄ Eu(Ci)(x,y);
4) Obter Ci’ eliminando os maus estados de Ci eas transições a eles associadas. Fazer Ci+1 = trim Ci’
5) Se Ci+1 = Ci , parar pois sup C(K) = Lm(Ci);senão fazer i = i+1 e voltar ao passo 3.
Algoritmo 2:
1) e 2) Como no algoritmo anterior;
3) Identificar os maus estados de Ci comoem 3) do algoritmo anterior. Se não houvermaus estados, ir para o passo 7);
4) Construir Ci’ apagando-se as transiçõesque correspondam a eventos controláveisem Ci;
5) Determinar outros maus estados, identi-ficando-os como sendo aqueles que tem umcaminho de transições em Ci’ que conduz apelo menos um mau estado já identificado;
6) Modificar Ci, apagando-se todos os mausestados identificados em 3) e 5), e as transi-ções a eles associadas; fazer Ci+1 = trim Ci;
7) Se Ci+1 = Ci , parar pois sup C(K) = Lm(Ci);senão fazer i = i+1 e voltar ao passo 3.
Exemplo: Linguagem K não prefixo fechada
α1
α2
β β β
βxo
x1 x2 x3 x4
x5x6
γ
α1
α2
β β β
βyo
y1 y2 y3 y4
y5y6γ
G:
Seja K = α1 + α1βββ(ε + β) + α2γ∗
O gerador S pode ser:
S:
A solução é sup C(K) = α2γ∗
Exemplo: Linguagem K prefixo fechada
xo x1 x2
a,b
c u
a a
G:
Eu = {u}; L(G) = (a + b)*ca*ua*
K = (ab)*(acu + c)a*
Pode-se escolher S:
yo y1 y2 y3
a
bc
c u aS:
Lm(S) = L(S) = K
Solução: sup C(K) = (ab)*acua*