1) O documento apresenta uma apostila sobre teoria de controle supervisório de sistemas a eventos discretos. 2) A apostila discute conceitos como sistemas a eventos discretos, linguagens formais, autômatos finitos e controle supervisório. 3) Finalmente, a apostila apresenta uma metodologia para síntese de supervisores ótimos para sistemas a eventos discretos.
1. ´ ¸˜
V Simposio Brasileiro de Automacao Inteligente
Teoria de Controle Supervis´rio
o
de Sistemas a Eventos Discretos
Prof. Jos´ Eduardo Ribeiro Cury
e
Universidade Federal de Santa Catarina
Departamento de Automa¸˜o e Sistemas
ca
cury@das.ufsc.br
Canela-RS, Novembro de 2001
2. Agradecimentos
Esta apostila foi elaborada a partir da minha experiˆncia como professor,
e
orientador e pesquisador na ´rea de Sistemas a Eventos Discretos e Sistemas
a
H´
ıbridos, nos ultimos dez anos, inicialmente no Departamento de Engenha-
´
ria El´trica e mais recentemente no Departamento de Automa¸˜o e Sistemas
e ca
da Universidade Federal de Santa Catarina. Ela n˜o poderia ter sido reali-
a
zada sem o apoio direto ou indireto de todos os meus alunos de Gradua¸˜o e
ca
P´s Gradua¸˜o e orientados de Mestrado e Doutorado. Partes do documento
o ca
devem inclusive ser creditadas a documentos que foram elaborados por estes.
Neste sentido, agrade¸o a todos estes alunos, alguns hoje colegas de profiss˜o,
c a
em particular ao Antonio, C´sar, Jos´ Miguel, Max, Tati e Ziller, de quem
e e
“roubei”id´ias, par´grafos e/ou figuras.
e a
7. Cap´
ıtulo 1
Introdu¸˜o
ca
A tecnologia moderna tem produzido, em escala crescente, sistemas com a finalidade
de executar tarefas que, seja pela importˆncia que adquirem em seu contexto, seja por
a
sua complexidade e seu custo, justificam o esfor¸o despendido na sua otimiza¸˜o e auto-
c ca
ma¸˜o. Tais sistemas est˜o presentes em uma s´rie de aplica¸oes, incluindo por exemplo a
ca a e c˜
automa¸˜o da manufatura, a rob´tica, a supervis˜o de tr´fego, a log´
ca o a a ıstica (canaliza¸ao e
c˜
armazenamento de produtos, organiza¸ao e presta¸ao de servi¸os), sistemas operacionais,
c˜ c˜ c
redes de comunica¸˜o de computadores, concep¸ao de software, gerenciamento de bases
ca c˜
de dados e otimiza¸ao de processos distribu´
c˜ ıdos. Tais sistemas tˆm em comum a maneira
e
pela qual percebem as ocorrˆncias no ambiente ` sua volta, o que se d´ pela recep¸˜o de
e a a ca
est´
ımulos, denominados eventos. S˜o exemplos de eventos o in´ e o t´rmino de uma
a ıcio e
tarefa e a percep¸˜o de uma mudan¸a de estado em um sensor. Estes eventos s˜o, por sua
ca c a
natureza, instantˆneos, o que lhes confere um car´ter discreto no tempo. Sistemas com
a a
estas caracter´
ısticas s˜o denominados sistemas a eventos discretos (SED), em oposi¸˜o aos
a ca
sistema de vari´veis cont´
a ınuas, tratados pela Teoria de Controle cl´ssica. A natureza dis-
a
creta dos SEDs faz com que os modelos matem´ticos convencionais, baseados em equa¸˜es
a co
diferenciais, n˜o sejam adequados para trat´-los. Por outro lado, a sua importˆncia faz
a a a
com que seja altamente desej´vel encontrar solu¸˜es para problemas relacionados ao seu
a co
controle. Em raz˜o disso, existe uma intensa atividade de pesquisa voltada ` busca de
a a
modelos matem´ticos adequados ` sua representa¸˜o, sem que se tenha conseguido at´
a a ca e
agora encontrar um modelo que seja matematicamente t˜o conciso e computacionalmente
a
t˜o adequado como o s˜o as equa¸oes diferenciais para os sistemas dinˆmicos de vari´veis
a a c˜ a a
cont´
ınuas. N˜o existe, por isso, consenso sobre qual seja o melhor modelo. Dentre os
a
modelos existentes, destaca-se o proposto por Ramadge e Wonham, baseado em Teoria de
8. Introdu¸˜o
ca 8
Linguagens e de Autˆmatos e denominado “modelo RW”. Este faz uma distin¸ao clara
o c˜
entre o sistema a ser controlado, denominado planta, e a entidade que o controla, que rece-
be o nome de supervisor. A planta ´ um modelo que reflete o comportamento fisicamente
e
poss´ do sistema, isto ´, todas as a¸oes que este ´ capaz de executar na ausˆncia de
ıvel e c˜ e e
qualquer a¸ao de controle. Em geral, este comportamento inclui a capacidade de realizar
c˜
determinadas atividades que produzam um resultado util, sem contudo se limitar a esse
´
comportamento desejado. Por exemplo, dois robˆs trabalhando em uma c´lula de manu-
o e
fatura podem ter acesso a um dep´sito de uso comum, o que pode ser util para passar
o ´
pe¸as de um ao outro. No entanto, cria-se com isso a possibilidade f´
c ısica de ocorrer um
choque entre ambos, o que ´, em geral, indesej´vel. O papel do supervisor no modelo RW
e a
´, ent˜o, o de exercer uma a¸˜o de controle restritiva sobre a planta, de modo a confinar
e a ca
seu comportamento `quele que corresponde a uma dada especifica¸ao. Uma vantagem
a c˜
desse modelo ´ a de permitir a s´
e ıntese de supervisores, sendo estes obtidos de forma a res-
tringir o comportamento da planta apenas o necess´rio para evitar que esta realize a¸oes
a c˜
proibidas. Desta forma, pode-se verificar se uma dada especifica¸˜o de comportamento
ca
pode ou n˜o ser cumprida e, caso n˜o possa, identificar a parte dessa especifica¸ao que
a a c˜
pode ser implementada de forma minimamente restritiva. Um crit´rio de aceita¸ao pode
e c˜
ent˜o ser utilizado para determinar se, com a parte implement´vel da especifica¸ao, o sis-
a a c˜
tema trabalha de maneira satisfat´ria. Neste documento ser˜o apresentados os principais
o a
conceitos b´sicos da Teoria de Controle Supervis´rio, como introduzida por Ramadge e
a o
Wonham. Os conceitos de base da teoria de Linguagens e Autˆmatos ser˜o apresentados,
o a
bem como os principais resultados b´sicos de s´
a ıntese de supervisores para SEDs. A forma
de apresenta¸ao procurar´ se adaptar a um curso que possa ser facilmente assimilado por
c˜ a
alunos em n´ de Gradua¸˜o em cursos de Engenharia ou Ciˆncias de Computa¸ao.
ıvel ca e c˜
9. Cap´
ıtulo 2
Sistemas a Eventos Discretos
2.1 Defini¸˜o e Caracter´
ca ısticas
De um modo geral, um sistema ´ uma parte limitada do Universo que interage com o
e
mundo externo atrav´s das fronteiras que o delimitam. Este conceito se aplica tamb´m
e e
aos sistemas tratados no presente documento, que apresentam ainda as caracter´
ısticas
descritas a seguir. Os sistemas de interesse percebem as ocorrˆncias no mundo externo
e
atrav´s da recep¸ao de est´
e c˜ ımulos, denominados eventos. S˜o exemplos de eventos o in´
a ıcio
e o t´rmino de uma tarefa (mas n˜o sua execu¸ao), a chegada de um cliente a uma fila ou
e a c˜
a recep¸ao de uma mensagem em um sistema de comunica¸ao. A ocorrˆncia de um evento
c˜ c˜ e
causa, em geral, uma mudan¸a interna no sistema, a qual pode ou n˜o se manifestar a um
c a
observador externo. Al´m disso, uma mudan¸a pode ser causada pela ocorrˆncia de um
e c e
evento interno ao pr´prio sistema, tal como o t´rmino de uma atividade ou o fim de uma
o e
temporiza¸ao. Em qualquer caso, essas mudan¸as se caracterizam por serem abruptas e
c˜ c
instantˆneas: ao perceber um evento, o sistema reage imediatamente, acomodando-se em
a
tempo nulo numa nova situa¸˜o, onde permanece at´ que ocorra um novo evento. Desta
ca e
forma, a simples passagem do tempo n˜o ´ suficiente para garantir que o sistema evolua;
a e
para tanto, ´ necess´rio que ocorram eventos, sejam estes internos ou externos. Note ainda
e a
que a ocorrˆncia desses eventos pode depender de fatores alheios ao sistema, de modo que
e
este n˜o tem, em geral, como prevˆ-los. O que se disse acima permite apresentar agora a
a e
seguinte defini¸ao:
c˜
Defini¸˜o 2.1 Sistema a eventos discretos (SED) ´ um sistema dinˆmico que evolui de
ca e a
acordo com a ocorrˆncia abrupta de eventos f´sicos, em intervalos de tempo em geral
e ı
10. Sistemas a Eventos Discretos 10
irregulares e desconhecidos.
Diz-se ainda que, entre a ocorrˆncia de dois eventos consecutivos, o sistema permanece
e
num determinado estado. A ocorrˆncia de um evento causa ent˜o uma transi¸ao ou
e a c˜
mudan¸a de estado no sistema, de forma que sua evolu¸ao no tempo pode ser representada
c c˜
pela trajet´ria percorrida no seu espa¸o de estados, conforme ilustrado na figura 2.1.
o c
x(t)
x4
x3
α β λ α
x2
x1
t1 t2 t3 t4 t
Figura 2.1: Trajet´ria t´
o ıpica de um sistema a eventos discretos
Nesta trajet´ria ocorrem eventos representados pelas letras α, β e λ. Vˆ-se que um
o e
mesmo evento pode ter efeitos diferentes, dependendo do estado em que ocorre. Por
exemplo, se o sistema est´ no estado x1 e ocorre o evento α, o pr´ximo estado ser´
a o a
x4 ; se α ocorre em x3 , volta-se para x1 . A trajet´ria pode continuar indefinidamente,
o
inclusive com a ocorrˆncia de outros eventos, n˜o representados na figura. Para todos
e a
os sistemas tratados, por´m, assume-se que o n´mero total de eventos diferentes que
e u
podem ocorrer ´ finito. O n´mero de estados pode ser ilimitado no caso geral, embora a
e u
classe de sistemas com um n´mero finito de estados seja um caso particular importante.
u
Costuma-se distinguir um dos estados do sistema dos demais, o qual recebe o nome de
estado inicial. Este ´ o estado em que o sistema se encontra antes de ocorrer o primeiro
e
evento. Na pr´tica, em geral ´ poss´ for¸ar um sistema a voltar a esse estado, antes de
a e ıvel c
iniciar sua utiliza¸˜o para um determinado fim, processo denominado de reinicializa¸ao.
ca c˜
Os sistemas a eventos discretos, entendidos segundo a defini¸ao 2.1, contrastam com os
c˜
sistemas dinˆmicos a vari´veis cont´
a a ´
ınuas, descritos por equa¸oes diferenciais . E instrutivo
c˜
comparar a trajet´ria t´
o ıpica de um SED, apresentada na figura 2.1, com a de um sistema
dinˆmico de vari´veis cont´
a a ınuas, apresentada na figura 2.2.
O espa¸o de estados de um SED ´ limitado a um conjunto enumer´vel, ao passo que
c e a
´ cont´
e ınuo e portanto infinito nos sistemas cont´
ınuos. Estes, em geral, mudam de estado
a cada instante, tendo o seu comportamento descrito por uma fun¸ao que relaciona o
c˜
11. Sistemas a Eventos Discretos 11
x(t)
dx
dt
= f (x, t)
t
Figura 2.2: Trajet´ria t´
o ıpica de um sistema dinˆmico com vari´veis cont´
a a ınuas
estado (vari´vel dependente) ao tempo (vari´vel independente). J´ os sistemas a eventos
a a a
discretos podem permanecer um tempo arbitrariamente longo em um mesmo estado,
sendo que sua trajet´ria pode ser dada por uma lista de eventos na forma {σ1 , σ2 , ...},
o
incluindo-se eventualmente os instantes de tempo em que tais eventos ocorrem, na forma
{(σ1 , t1 ), (σ2 , t2 ), ...} . A quantidade de informa¸ao necess´ria depende dos objetivos da
c˜ a
aplica¸˜o.
ca
O acima exposto permite ver a tarefa de especificar o comportamento de um sistema
a eventos discretos como sendo a de estabelecer seq¨ˆncias ordenadas de eventos que
ue
levem ` realiza¸ao de determinados objetivos. Com uma formula¸ao t˜o abrangente, n˜o
a c˜ c˜ a a
´ surpreendente que tenha havido esfor¸os em mais de uma ´rea para abordar o problema.
e c a
De fato a Teoria de Sistemas a Eventos Discretos ´ apresentada como pertencendo ` ´rea
e aa
da Pesquisa Operacional, valendo-se ainda de resultados da Ciˆncia da Computa¸˜o (em
e ca
particular da Inteligˆncia Artificial e do Processamento de Linguagens), bem como da
e
Teoria de Controle.
Foram desenvolvidos at´ o momento v´rios modelos para SEDs, sem que nenhum
e a
tivesse se afirmado como universal. Esses modelos refletem diferentes tipos de SEDs bem
como diferentes objetivos na an´lise dos sistemas em estudo.
a
Os principais modelos utilizados para sistemas a eventos discretos s˜o os seguintes:
a
• Redes de Petri com e sem temporiza¸˜o;
ca
• Redes de Petri Controladas com e sem temporiza¸ao;
c˜
• Cadeias de Markov;
• Teoria das Filas;
12. Sistemas a Eventos Discretos 12
• Processos Semi-Markovianos Generalizados (GSMP) e Simula¸ao;
c˜
´
• Algebra de Processos;
´
• Algebra Max-Plus;
• L´gica Temporal e L´gica Temporal de Tempo Real;
o o
• Teoria de Linguagens e Autˆmatos (Ramadge-Wonham)
o
Dentre os modelos citados acima, dois apresentam uma caracter´
ıstica particular: s˜o
a
dotados de procedimentos de s´
ıntese de controladores; s˜o eles os modelos de Ramadge-
a
Wonham (temporizados ou n˜o), baseado na Teoria de Autˆmatos e/ou Linguagens, e o
a o
de Redes de Petri Controladas (temporizadas ou n˜o). Pela caracter´
a ısticas citada, estes
modelos tˆm dado forte contribui¸ao ao desenvolvimento da teoria de Controle de SEDs.
e c˜
Os demais modelos citados servem sobretudo ` an´lise de SEDs.
a a
De todo modo, nenhum dos modelos serve atualmente como paradigma. Os SEDs
formam uma ´rea de pesquisa de intensa atividade e desafios.
a
2.2 Exemplos de Sistemas a Eventos Discretos
Nesta se¸ao descreveremos alguns exemplos de SEDs. Iniciaremos por um sistema
c˜
simples que serve como “m´dulo base”na representa¸ao de muitos SEDs de interesse.
o c˜
I. Sistemas de Filas: Os Sistemas de Filas tem origem no seguinte fato comum intr´
ınseco
` maioria dos sistemas que projetamos e desenvolvemos: o uso de certos recursos exige
a
espera. Os trˆs elementos b´sicos de um sistema de filas s˜o:
e a a
1. As entidades que devem esperar pelo uso de recursos. Costuma-se denominar estas
entidades de clientes.
2. Os recursos pelos quais se espera. Como em geral estes recursos fornecem alguma
forma de servi¸o aos clientes, s˜o denominados servidores.
c a
3. O espa¸o onde a espera se faz, denominado fila, ou em alguns casos, “buffers”.
c
S˜o exemplos de clientes:
a
13. Sistemas a Eventos Discretos 13
ˆ
• pessoas (esperando num Banco ou Parada de Onibus);
• mensagens transmitidas atrav´s de um canal de comunica¸ao;
e c˜
• tarefas ou processos executados num sistema de computa¸ao;
c˜
• pe¸as produzidas num sistema de manufatura;
c
• ve´
ıculos numa rede rodovi´ria.
a
Do mesmo modo, s˜o exemplos de servidores:
a
• pessoas (caixas de Banco ou Supermercado);
• canais de comunica¸ao respons´veis pela transmiss˜o de mensagens;
c˜ a a
• processadores ou dispositivos perif´ricos em sistemas de computa¸ao;
e c˜
• m´quinas usadas na manufatura;
a
• vias em um sistema de tr´fico.
a
Finalmente, s˜o exemplos de filas:
a
• filas de bancos, supermercados, paradas de ˆnibus, etc.;
o
• buffers de chamadas telefˆnicas ativas, ou processos execut´veis.
o a
A motiva¸˜o para o estudo de sistemas de filas est´ no fato de que em geral os re-
ca a
cursos n˜o s˜o ilimitados. Isto gera problemas na aloca¸˜o dos recursos e seus crit´rios
a a ca e
conflitantes associados como: satisfa¸ao das necessidades dos clientes; utiliza¸˜o eficiente
c˜ ca
dos recursos, redu¸˜o de custos. A figura 2.3 mostra um diagrama representativo de uma
ca
fila.
Fila Servidor
partidas
chegadas
de
de clientes
clientes
Figura 2.3: Filas
De modo a se especificar completamente as caracter´
ısticas de um sistema de filas
deve-se ainda definir:
14. Sistemas a Eventos Discretos 14
1. processo de servi¸o;
c
2. capacidade da fila;
3. disciplina de atendimento.
Visto como um SED, um sistema de filas tem Σ = {c, p} onde c ´ o evento chegada
e
de cliente e p o evento partida de cliente. Al´m disso, uma vari´vel de estado natural ´
e a e
o n´mero de clientes na fila, ou, comprimento da fila (por conven¸ao, inclui o cliente em
u c˜
servi¸o). Portanto
c
X = {0, 1, 2, ..., C + 1}
onde C ´ a capacidade da fila.
e
Finalmente, os componentes de um sistema de filas como o descrito podem se conectar
de diferentes formas, de modo a formar sistemas de redes de filas, onde os clientes fluem
pelas filas e servidores da rede, de acordo com regras espec´
ıficas, como pode ser visto na
figura 2.4.
2
1
3
4
5
Figura 2.4: Redes de Filas
No exemplo, clientes deixando o servidor 1 devem seguir regras na escolha de uma das
duas filas conectadas aos servidores 2 e 3; o servidor 1 deve adotar regras na sele¸ao de
c˜
uma das duas filas de entrada para receber o pr´ximo cliente.
o
II. Sistemas de Computa¸˜o: Num Sistema de Computa¸˜o t´
ca ca ıpico, tarefas ou pro-
cessos s˜o clientes competindo pela aten¸ao de servidores como os v´rios processadores
a c˜ a
´
(CP U , impressoras, discos, ...). E muitas vezes conveniente representar tal sistema atrav´s
e
de um modelo de rede de fila como o da figura 2.5.
15. Sistemas a Eventos Discretos 15
r1 d1
D1
a
CP U
chegada
r2 d2
de D2
tarefas
d partida
de
tarefas
Figura 2.5: Sistema de Computa¸˜o
ca
No exemplo, tarefas chegam numa fila da CP U ; uma vez servidas, estas partem ou
requerem acesso a um de dois discos, para ap´s retornar para mais um processamento
o
pela CP U .
Tem-se:
Σ = {a, d, r1 , r2 , d1 , d2 }
onde
a corresponde ` chegada de uma tarefa ao sistema;
a
d corresponde ` partida de uma tarefa do sistema;
a
r1 , r2 correspondem ` partida de tarefas da CP U , roteadas aos discos D1 e D2 respec-
a
tivamente;
d1 , d2 correspondem ` partida de tarefas dos discos D1 e D2 , respectivamente, retor-
a
nando ` fila da CP U .
a
Uma poss´ representa¸ao para o estado deste sistema ´
ıvel c˜ e
x = (xCP U , x1 , x2 )
correspondendo ao comprimento das trˆs filas na CP U , disco 1 e disco 2.
e
O espa¸o de estados do sistema ´
c e
X = {(xCP U , x1 , x2 ) : xCP U , x1 , x2 ≥ 0}
III. Sistemas de Comunica¸˜o: S˜o sistemas muitas vezes descritos por modelos de
ca a
filas com
16. Sistemas a Eventos Discretos 16
• clientes: mensagens, chamadas;
• servidores: meios (canais) de comunica¸˜o, equipamentos de chaveamento (redes
ca
telefˆnicas);
o
Caracter´
ıstica importante desses sistemas ´ a necessidade de mecanismos de controle
e
que garantam o acesso aos servidores de modo eficiente e coerente. Esses mecanismos s˜o
a
muitas vezes chamados de protocolos, e podem ser bastante complexos. A valida¸ao e/ou
c˜
projeto de protocolos s˜o problemas interessantes de an´lise e s´
a a ıntese de controladores
para SEDs.
Por exemplo, considere o caso de dois usu´rios A e B e um canal comum M , de capacidade
a
1 mensagem. O envio de duas mensagens (por A e B, p.e.) implica em sinal inintelig´
ıvel
(colis˜o).
a
Os estados poss´
ıveis do sistema s˜o:
a
Para o canal M : I - vazio; T - transmitindo 1 mensagem; C - colis˜o;
a
Para cada usu´rio A ou B: I - repouso; T - transmitindo; W - aguardando com mensagem.
a
O espa¸o de estados pode ent˜o ser definido por
c a
X = {(xM , xA , xB ) : xM ∈ {I, T, C} e xA , xB ∈ {I, T, W }}
e o conjunto de eventos que afetam o sistema ´
e
Σ = {αA , αB , τA , τB , τM }
onde
αA , αB correspondem ` chegada de mensagem a ser transmitida por A e B, respecti-
a
vamente;
τA , τB correspondem ao envio de mensagem ao canal M por A e B, respectivamente;
τM corresponde ao t´rmino de uma transmiss˜o pelo canal (com 1 ou mais mensagens
e a
presentes).
Dois problemas podem se configurar neste exemplo:
1. possibilidade de colis˜o;
a
17. Sistemas a Eventos Discretos 17
2. desconhecimento por cada usu´rio, do estado do outro usu´rio e/ou do estado do
a a
meio.
Esses problemas podem ser modelados como um problema de Controle Descentraliza-
do, ou controle com restri¸ao na estrutura de informa¸˜o.
c˜ ca
IV. Sistemas de Manufatura: S˜o tamb´m sistemas muitas vezes convenientemente
a e
descritos por modelos de filas. Em geral, tem-se:
• clientes: pe¸as ou ´
c ıtens; “pallets”;
• servidores: m´quinas; dispositivos de manuseio e transporte (robˆs, esteiras, ...);
a o
• filas: armaz´ns; “buffers”.
e
Considere por exemplo uma Linha de Transferˆncia com duas M´quinas e um Armaz´m
e a e
Intermedi´rio de capacidade 2, conforme ilustrado na figura 2.6.
a
partida
chegada
1 2 de
de pe¸as
c
pe¸as
c
Figura 2.6: Linha de Transferˆncia
e
Neste caso o conjunto de eventos que afetam o sistema pode ser descrito por
Σ = {a, b, d2 }
onde
a corresponde ` chegada da pe¸a;
a c
b corresponde ao t´rmino de servi¸o pela m´quina 1 ;
e c a
d2 corresponde ` partida de pe¸a da m´quina 2.
a c a
Considera-se que se a m´quina termina um servi¸o e o armaz´m intermedi´rio est´
a c e a a
cheio, esta entra em estado de bloqueio.
O espa¸o de estados do sistema pode ser representado por
c
X = {(x1 , x2 ) : x1 ≥ 0, x2 ∈ {0, 1, 2, 3, B}}
18. Sistemas a Eventos Discretos 18
onde x1 indica o estado do armaz´m de entrada da linha, e x2 o estado do armaz´m inter-
e e
medi´rio; o estado onde x2 = B indica a situa¸ao de bloqueio, ou seja aquele estado onde
a c˜
o armaz´m intermedi´rio est´ cheio e a m´quina 1 tem uma pe¸a terminada esperando
e a a a c
para ser descarregada.
O espa¸o de estados X pode ainda ser representado por
c
X = {(x1 , x2 ) : x1 ∈ {I, W, B}, x2 ∈ {I, W }}
onde xi representa o estado da m´quina i, com x1 = B indicando a situa¸ao de bloqueio
a c˜
do sistema.
V. Sistemas de Tr´fego: Considere o exemplo da figura 2.7 que representa uma inter-
a
se¸˜o semaf´rica. Tem-se 4 tipos de ve´
ca o ıculos segundo a dire¸ao que os mesmos podem
c˜
tomar. Assim,
• (1, 2) : ve´
ıculos de 1 para 2;
• (1, 3) : ve´
ıculos de 1 para 3;
• (2, 3) : ve´
ıculos de 2 para 3;
• (3, 2) : ve´
ıculos de 3 para 2.
3
1
2
Figura 2.7: Sistema de Tr´fego
a
Considera-se que o sinal verde libera os ve´
ıculos (2, 3) e (3, 2); e que o sinal vermelho
libera os ve´
ıculos (1, 2) e (1, 3).
19. Sistemas a Eventos Discretos 19
O conjunto de eventos que afetam o sistema ´
e
Σ = {a12 , a13 , a23 , a32 , d12 , d13 , d23 , d32 , g, r}
onde
aij corresponde ` chegada de ve´
a ıculo tipo (i, j);
dij corresponde ` partida de ve´
a ıculo tipo (i, j);
g indica que o sinal torna-se verde;
r indica que o sinal torna-se vermelho.
O espa¸o de estados ´
c e
X = {(x12 , x13 , x23 , x32 , y) : xij ≥ 0, y ∈ {G, R}}
onde
xij indica o n´mero de ve´
u ıculos do tipo (i, j) em fila;
y indica o estado do sinal, verde (G) ou vermelho (R).
20. Cap´
ıtulo 3
Um Problema Motivador
Neste cap´
ıtulo ser´ apresentado informalmente o problema de s´
a ıntese de controladores
para um SED, atrav´s de um exemplo de um sistema de manufatura. Pretende-se que este
e
problema seja um agente motivador para os conceitos e metodologias relativos ` Teoria
a
de Controle Supervis´rio que ser˜o abordados nos cap´
o a ıtulos subseq¨entes.
u
3.1 Linha de Produ¸˜o de Cervejas
ca
Na linha de produ¸ao de uma f´brica de cervejas, existe uma esta¸˜o de envasilhamento
c˜ a ca
baseada numa esteira com pallets fixados a cada metro e quatro m´quinas dispostas
a
em s´rie de acordo com a figura 3.1. O funcionamento da esta¸ao de envasilhamento ´
e c˜ e
comandado por um controlador l´gico program´vel (CLP) que garante o envasilhamento
o a
de cada garrafa conforme a seguinte seq¨ˆncia de passos:
ue
1. o atuador avan¸a, depositando uma garrafa vazia em P1 ;
c
2. a esteira avan¸a 1 metro;
c
3. a bomba enche a garrafa de cerveja;
4. a esteira avan¸a 1 metro;
c
5. a garrafa ´ tampada;
e
6. a esteira avan¸a 1 metro;
c
21. Um Problema Motivador 21
7. o robˆ retira a garrafa da esteira.
o
Atuador
Bomba Robˆ
o Buffer de sa´
ıda
Tampador
Buffer de entrada
Esteira
Sinais de entrada
Sinais de sa´
ıda CLP
P1 P2 P3 P4
1m
Figura 3.1: Esta¸ao de envasilhamento
c˜
A esteira foi inicialmente projetada para operar em seq¨ˆncia apenas uma garrafa por
ue
vez, ou seja, o atuador s´ pode ser acionado novamente depois que o robˆ retirar a garrafa
o o
da esteira. Esta restri¸ao na l´gica de controle evita os problemas que podem ocorrer na
c˜ o
opera¸ao de m´ltiplas garrafas em paralelo. Entretanto, esse modo de funcionamento ´
c˜ u e
muito pouco eficiente, visto que o atuador, a bomba, o tampador e o robˆ passam a maior
o
parte do tempo parados enquanto poderiam estar operando em paralelo. Um engenheiro
de controle e automa¸ao industrial ´ contratado, ent˜o, para desenvolver uma l´gica
c˜ e a o
de controle que garanta uma maior eficiˆncia da esta¸˜o de envasilhamento. O t´cnico
e ca e
respons´vel pela manuten¸˜o da linha de produ¸˜o tem bastante pr´tica na programa¸˜o
a ca ca a ca
de CLPs. Ele se disp˜e a implementar o programa de controle caso lhe seja fornecida
o
a l´gica de funcionamento da esta¸ao, baseada nos sinais de entrada e sa´ do CLP
o c˜ ıda
apresentados a seguir.
• α0 : comando que inicia um avan¸o de 1 metro da esteira;
c
• β0 : sinal de final de opera¸ao da esteira. (Uma vez iniciada a opera¸˜o, n˜o pode
c˜ ca a
ser evitado);
• α1 : sinal de comando do atuador pneum´tico, de in´ de dep´sito de uma garrafa
a ıcio o
no pallet da esteira situado na posi¸ao P1 ;
c˜
• β1 : sinal de final de opera¸ao do atuador pneum´tico. (Uma vez iniciada a opera¸˜o,
c˜ a ca
n˜o pode ser evitado);
a
• α2 : comando que inicia o enchimento da garrafa que estiver na posi¸˜o P2 ;
ca
22. Um Problema Motivador 22
• β2 : sinal de final de opera¸˜o da bomba autom´tica. (Uma vez iniciada a opera¸ao,
ca a c˜
n˜o pode ser evitado);
a
• α3 : comando que come¸a a tampar uma garrafa situada na posi¸˜o P3 ;
c ca
• β3 : sinal de final de opera¸ao do tampador autom´tico. (Uma vez iniciada a ope-
c˜ a
ra¸ao, n˜o pode ser evitado);
c˜ a
• α4 : comando que inicia a retirada de uma garrafa do pallet da esteira situado na
posi¸˜o P4 ;
ca
• β4 : Sinal de final de opera¸˜o do robˆ. (Uma vez iniciada a opera¸ao, n˜o pode ser
ca o c˜ a
evitado).
O programa deve ser tal que o sistema em malha fechada obede¸a `s seguintes restri¸˜es
c a co
de coordena¸ao:
c˜
1. n˜o operar o atuador, a bomba, o tampador ou o robˆ enquanto a esteira estiver
a o
avan¸ando;
c
2. n˜o sobrepor garrafas em P1 ;
a
3. n˜o avan¸ar a esteira sem que as garrafas em P2 , P3 e P4 tenham sido enchidas,
a c
tampadas ou retiradas, respectivamente;
4. n˜o encher, tampar ou acionar o robˆ sem garrafas nas posi¸˜es P2 , P3 e P4 , respec-
a o co
tivamente;
5. n˜o encher ou tampar duas vezes a mesma garrafa;
a
6. n˜o avan¸ar a esteira ` toa, ou seja, sem garrafa em alguma das posi¸˜es.
a c a co
O problema de controle que se coloca ao engenheiro pode ent˜o ser especificado como
a
segue:
Problema 3.1 Seja a planta de engarrafamento de cervejas, composta de um atu-
ador pneum´tico, uma esteira, uma bomba de cerveja, um tampador, e um robˆ;
a o
projetar uma l´gica de controle a ser implementada no CLP, de modo a permi-
o
tir ` esteira operar uma, duas, trˆs ou quatro garrafas em paralelo; garantindo que o
a e
23. Um Problema Motivador 23
comportamento do sistema controlado obede¸a a especifica¸˜o de funcionamento do
c ca
sistema, de forma a evitar os problemas que podem ocorrer na opera¸˜o de m´ltiplas
ca u
garrafas em paralelo, restringindo o sistema somente o necess´rio, e garantindo
a
uma produ¸˜o continuada de cervejas.
ca
3.2 Considera¸˜es acerca da Resolu¸˜o do Problema
co ca
O problema 3.1 tal como colocado, suscita algumas observa¸oes.
c˜
Primeiramente, se se deseja sintetizar uma l´gica de controle ´ necess´rio que se co-
o e a
nhe¸a as caracter´
c ısticas do sistema a controlar. Isto passa pela obten¸˜o de um modelo
ca
para a planta, que possa ser obtido de forma sistem´tica e que seja adequado ao problema
a
em quest˜o. Neste sentido conv´m observar que a planta ´ em geral, como no caso do
a e e
exemplo, composta de um conjunto de equipamentos ou sub-sistemas que devem trocar
sinais com um elemento de controle de forma a que o comportamento coordenado des-
tes equipamentos seja aquele desejado. A obten¸˜o de um modelo para o sistema global
ca
a ser controlado pode ent˜o ser pensado como uma composi¸˜o de modelos para seus
a ca
sub-sistemas.
Do mesmo modo, a s´
ıntese de controle pressup˜e um modelo adequado para as es-
o
pecifica¸oes de comportamento. Estas especifica¸oes s˜o definidas por um conjunto de
c˜ c˜ a
restri¸˜es que determinam como deve ser a opera¸ao coordenada dos equipamentos. As-
co c˜
sim como para a planta a controlar, pode-se pensar que o modelo da especifica¸˜o que
ca
define o comportamento global desejado para o sistema ´ o resultado da composi¸ao de
e c˜
um conjunto de modelos para cada especifica¸˜o elementar definida sobre uma parte do
ca
sistema a controlar.
Ainda, o problema 3.1 estabelece que a l´gica de controle deve ser ´tima, no senti-
o o
do de restringir o comportamento dos equipamentos que comp˜em a planta, somente o
o
necess´rio para que n˜o se violem as especifica¸˜es. Al´m disso se deseja que o controle
a a co e
n˜o leve o sistema a situa¸oes de bloqueio, ou seja, garanta o cumprimento de tarefas de
a c˜
modo perene.
Finalmente, espera-se que a lei de controle ´tima n˜o-bloqueante seja gerada automa-
o a
ticamente, ou seja, atrav´s de algoritmos bem definidos e que garantam as caracter´
e ısticas
consideradas acima.
24. Um Problema Motivador 24
O objetivo da teoria a ser desenvolvida nos cap´
ıtulos que seguem ´ resolver problemas
e
como o descrito acima. A coloca¸ao do problema justifica a metodologia a ser apresentada,
c˜
como sendo composta das seguintes fases:
1. Obten¸ao de um modelo para a planta a ser controlada;
c˜
2. Obten¸ao de um modelo de representa¸˜o das especifica¸˜es a serem respeitadas;
c˜ ca co
3. S´ntese de uma l´gica de controle n˜o bloqueante e ´tima.
ı o a o
Por ultimo, cabe observar que a natureza dos eventos envolvidos no problema des-
´
crito no exemplo ´ diversa. Enquanto uma parte destes eventos correspondem a sinais
e
de comando que podem ou n˜o serem ativados, uma outra parte dos eventos, por sua
a
natureza, n˜o podem ser evitados de ocorrer por qualquer a¸ao de controle quando o
a c˜
estado da planta for tal que os habilite. Esta caracter´
ıstica dos SEDs ´ fundamental no
e
desenvolvimento da metodologia a ser apresentada.
3.3 Conclus˜o
a
Este cap´
ıtulo apresentou de maneira informal, atrav´s de um exemplo de aplica¸˜o, o
e ca
tipo de problema a ser tratado neste documento. Os cap´
ıtulos que seguem apresentar˜o
a
as bases conceituais da Teoria de Controle de Sistemas a Eventos Discretos.
25. Cap´
ıtulo 4
Linguagens como modelos para SEDs
Neste cap´
ıtulo ser˜o introduzidos os elementos b´sicos da teoria de linguagens e ser´
a a a
mostrado como o comportamento l´gico de um SED pode ser modelado a partir de lin-
o
guagens.
4.1 Nota¸˜o e defini¸˜es b´sicas
ca co a
Uma linguagem L definida sobre um alfabeto Σ, ´ um conjunto de cadeias formadas
e
por s´
ımbolos pertencentes a Σ.
Exemplo 4.1 Considere o alfabeto Σ = {α, β, γ}. Alguns exemplos de linguagens sobre
Σ s˜o:
a
• L1 = {β, α, αββ}
• L2 = {Todas as poss´veis cadeias formadas com 3 eventos iniciados pelo evento α}
ı
O conjunto de todas as poss´
ıveis cadeias finitas compostas com elementos de Σ ´
e
denotado Σ∗ , incluindo a cadeia vazia, denotada por ε. Assim, uma linguagem sobre Σ
´ sempre um subconjunto (n˜o necessariamente pr´prio) de Σ∗ . Em particular ∅, Σ e Σ∗
e a o
s˜o linguagens.
a
Se tuv = s, com t, u, v ∈ Σ∗ , ent˜o:
a
26. Linguagens como modelos para SEDs 26
• t ´ chamado prefixo de s
e
• u ´ chamada uma subcadeia de s
e
• v ´ chamado sufixo de s
e
4.2 Opera¸oes sobre linguagens
c˜
Algumas opera¸˜es podem ser executadas sobre linguagens. Algumas s˜o usuais, como
co a
as opera¸oes sobre conjuntos; trˆs outras opera¸oes ser˜o aqu´ adicionadas.
c˜ e c˜ a ı
1. Concatena¸˜o: Sejam duas linguagens L1 , L2 ⊆ Σ∗ , ent˜o a concatena¸˜o de L1 e
ca a ca
L2 , denotado L1 L2 , ´ definida por
e
L1 L2 := {s ∈ Σ∗ : (s = s1 s2 ) e (s1 ∈ L1 ) e (s2 ∈ L2 )}
Em palavras, uma cadeia est´ em L1 L2 se ela pode ser escrita como a concatena¸˜o
a ca
de uma cadeia de L1 com uma cadeia de L2 .
2. Prefixo-Fechamento: Seja uma linguagem L ∈ Σ∗ , ent˜o, o prefixo-fechamento de
a
L, denotado por L, ´ definido por
e
L := {s ∈ Σ∗ : ∃t ∈ Σ∗ (st ∈ L)}
Em palavras, L consiste de todas as cadeias de Σ∗ que s˜o prefixos de L. Em
a
geral, L ⊆ L. L ´ dita prefixo-fechada se L = L. Uma linguagem L ´ prefixo-
e e
fechada se qualquer prefixo de qualquer cadeia de L ´ tamb´m uma cadeia de L.
e e
Como veremos mais tarde linguagens geradas por sistemas f´
ısicos s˜o exemplos de
a
linguagens prefixo-fechadas.
3. Fechamento-Kleene: Seja uma linguagem L ⊆ Σ∗ , ent˜o o fechamento Kleene de L,
a
denotado por L∗ ´ definido por
e
L∗ := {ε} ∪ L ∪ LL ∪ LLL ∪ · · ·
Uma cadeia de L∗ ´ formada pela concatena¸˜o de um n´mero finito de cadeias de
e ca u
L, incluindo a cadeia vazia ε.
27. Linguagens como modelos para SEDs 27
Exemplo 4.2 Considere o alfabeto Σ = {α, β, γ}, e as linguagens L1 = {ε, α, αββ} e
L2 = {γ} definidas sobre Σ. Observe que tanto L1 como L2 n˜o s˜o prefixo-fechadas, pois
a a
αβ ∈ L1 e ε ∈ L2 . Ent˜o:
a
• L1 L2 = {γ, αγ, αββγ}
• L1 = {ε, α, αβ, αββ}
• L2 = {ε, γ}
• L1 L2 = {ε, α, αββ, γ, αγ, αββγ}
• L∗ = {ε, γ, γγ, γγγ, · · ·}
2
As seguintes observa¸oes s˜o verdadeiras:
c˜ a
1. ε ∈ ∅;
2. {ε} ´ uma linguagem n˜o vazia contendo somente a cadeia vazia. Veremos mais
e a
tarde que esta linguagem pode representar a situa¸˜o de um sistema bloqueado em
ca
seu estado inicial;
3. Se L = ∅ ent˜o L = ∅, e se L = ∅ ent˜o necessariamente ε ∈ L;
a a
4. ∅∗ = {ε} e {ε}∗ = {ε}.
4.3 Representa¸˜o de SEDs por linguagens
ca
O comportamento de um sistema a eventos discretos (SED) pode ser descrito atrav´s
e
de um par de linguagens. Para isto considera-se um alfabeto Σ como correspondendo
ao conjunto de eventos que afetam o sistema. A evolu¸ao seq¨encial do SED, ou seu
c˜ u
comportamento l´gico, pode ent˜o ser modelado atrav´s de uma dupla D = (L, Lm ).
o a e
No modelo D, L ⊆ Σ∗ ´ a linguagem que descreve o comportamento gerado pelo siste-
e
ma, ou seja, o conjunto de todas as cadeias de eventos fisicamente poss´
ıveis de ocorrerem
no sistema. Por sua vez Lm ⊆ L ´ a linguagem que descreve o comportamento marcado
e
do sistema, ou seja, o conjunto de cadeias em L que correspondem a tarefas completas
que o sistema pode realizar.
28. Linguagens como modelos para SEDs 28
Considerando a evolu¸ao seq¨encial de um Sistema a Eventos Discretos e um alfabeto
c˜ u
Σ correspondendo ao conjunto de eventos que afetam o sistema, pode-se afirmar que para
que um sistema produza uma cadeia qualquer w, ent˜o o mesmo deve ter produzido ante-
a
riormente todos os seus prefixos. Portanto, o comportamento gerado de qualquer sistema
a eventos discretos em que n˜o ocorram eventos simultˆneos, pode ser representado por
a a
uma linguagem prefixo fechada.
As observa¸oes acima podem ser sintetizadas formalmente nas seguintes propriedades
c˜
de linguagens L e Lm que representam um SED:
1. L ⊃ Lm , ou seja, o comportamento gerado cont´m o comportamento marcado de
e
um SED;
2. L = L, ou seja, o comportamento gerado de um SED ´ prefixo-fechado.
e
Exemplo 4.3 Como exemplo, considere o problema motivador 3.1 da Linha de Produ¸˜o
ca
de Cervejas. Se se considera isoladamente a Esteira, pode-se identificar Σ = {α0 , β0 }
como o conjunto de eventos associados ao equipamento. Neste caso a linguagem L que
corresponde ao comportamento gerado pela Esteira consiste de todas as sequˆncias de
e
eventos que alternam os dois eventos considerados, iniciando com α0 e finalizando com
α0 ou β0 . Observe que ε ∈ L correspondendo ` situa¸˜o da esteira em seu estado inicial.
a ca
Por outro lado, se se considera como tarefa completa da esteira as cadeias que a levam ao
estado de repouso, pode-se afirmar que Lm consiste de todas as cadeias de L que terminam
com β0 , acrescida da cadeia ε. Assim,
L = {ε, α0 , α0 β0 , α0 β0 α0 , α0 β0 α0 β0 , α0 β0 α0 β0 α0 , ...}
e
Lm = {ε, α0 β0 , α0 β0 α0 β0 , α0 β0 α0 β0 α0 β0 , ...}
Exerc´
ıcio 4.1 Considere o robˆ da figura 4.1. Este robˆ est´ inserido em um sistema
o o a
de manufatura onde deve realizar as tarefas de retirar pe¸as de uma esteira de entrada
c
(evento b) e coloc´-las em um de dois poss´
a ıveis armaz´ns de sa´ (eventos c1 e c2 ).
e ıda
Considerando o robˆ como um SED, descreva as linguagens L e Lm do robˆ.
o o
Quest˜o para reflex˜o: Dado um SED = (L, Lm ) ´ sempre verdade que Lm = L? Se
a a e
sim justifique, caso contr´rio dˆ um contra-exemplo. Observe que a igualdade se verifica
a e
no caso do exemplo da esteira.
29. Linguagens como modelos para SEDs 29
c1
a b
c2
Figura 4.1: Sistema robˆ-esteira
o
4.4 Express˜es Regulares
o
Como vimos acima, uma linguagem pode ser vista como uma maneira formal de des-
crever o comportamento de um SED. Ela pode especificar todas as poss´
ıveis seq¨ˆncias
ue
de eventos que um SED pode gerar (L) ou o conjunto de tarefas que o sistema pode
completar (Lm ). No entanto, a descri¸ao de uma linguagem como vista at´ agora, feita
c˜ e
pela sua descri¸ao em “linguagem natural”ou pela enumera¸˜o das cadeias que a definem,
c˜ ca
pode ser uma tarefa pouco pr´tica. Seria conveniente que se pudesse dispor de uma forma
a
de representa¸ao de linguagens que seja simples, concisa, clara e sem ambig¨idade. Em
c˜ u
outras palavras, ´ necess´rio utilizar estruturas compactas que possam representar estas
e a
linguagens. Neste documento ser˜o apresentadas duas estruturas: as express˜es regulares
a o
e os autˆmatos. Consideremos inicialmente as express˜es regulares.
o o
Para um alfabeto Σ dado, define-se recursivamente uma express˜o regular da seguinte
a
maneira:
1. (a) ∅ ´ uma express˜o regular que representa a linguagem vazia,
e a
(b) ε ´ uma express˜o regular denotando a linguagem {ε},
e a
(c) σ ´ uma express˜o regular denotando {σ} ∀e ∈ Σ;
e a
2. Se r e s s˜o express˜es regulares ent˜o rs, r∗ , s∗ , (r + s) s˜o express˜es regulares;
a o a a o
3. Toda express˜o regular ´ obtida pela aplica¸ao das regras 1 e 2 um n´mero finito
a e c˜ u
de vezes.
Express˜es regulares fornecem um meio de descri¸˜o de linguagens.
o ca
Exemplo 4.4 Como ilustra¸˜o, considerando o alfabeto Σ1 = {a, b, g}, s˜o exemplos de
ca a
express˜es regulares:
o
30. Linguagens como modelos para SEDs 30
• (a + b)g ∗ , que representa a linguagem L = {todas as cadeias que come¸am com a
c
ou b e s˜o seguidas por um n´mero qualquer de g s};
a u
• (ab)∗ +g, que representa a linguagem L = {todas as cadeias formadas por um n´mero
u
qualquer de ab s ou uma ocorrˆncia do elemento g}
e
Exemplo 4.5 Se se retoma o exemplo da esteira da linha de produ¸˜o de cervejas, L e
ca
Lm podem ser reescritos atrav´s de suas representa¸˜es em express˜es regulares respecti-
e co o
vamente como
L = (α0 β0 )∗ (ε + α0 )
Lm = (α0 β0 )∗
Exemplo 4.6 Considere ainda como exemplo, um alfabeto Σ = {a, b}, composto por
s´mbolos que representam eventos que correspondam ao acesso de duas tarefas diferentes
ı
a um mesmo recurso, por exemplo um processador. Pode-se encontrar express˜es que re-
o
presentam uma restri¸˜o sobre o uso deste processador pelas tarefas. Deseja-se encontrar
ca
restri¸˜es que expressem justi¸a no uso do processador pelas tarefas. Poss´
co c ıveis express˜es
o
regulares para a especifica¸˜o de justi¸a no uso do recurso s˜o:
ca c a
• A1 = (ab)∗ , expressa alternˆncia no uso do recurso, por´m privilegia o acesso a, no
a e
sentido de garantir a como primeiro acesso ao recurso;
• A2 = (a + b)∗ , n˜o expressa justi¸a pois permite acesso irrestrito ao recurso;
a c
• A3 = (ab)∗ + (ba)∗ , expressa alternˆncia, sem prioriza¸˜o no primeiro acesso.
a ca
ıcio 4.2 Para o exemplo de acesso a um recurso comum, existe uma restri¸˜o que
Exerc´ ca
expressa justi¸a de modo mais inteligente, ou seja, garante que em nenhum momento
c
alguma tarefa fa¸a mais do que 1 acesso a mais do que a outra. Encontre uma express˜o
c a
regular para exprimir esta restri¸˜o de justi¸a.
ca c
Exerc´
ıcio 4.3 Encontre express˜es regulares que representem as linguagens encontradas
o
no problema do robˆ da figura 4.1.
o
Quest˜o para reflex˜o: Toda linguagem ´ represent´vel por uma express˜o regular ?
a a e a a
31. Linguagens como modelos para SEDs 31
4.5 Conclus˜o
a
Neste cap´
ıtulo foram introduzidos conceitos relativos ` teoria de linguagens e como se
a
pode utilizar linguagens como meio de representar um SED. Neste sentido o modelo de
representa¸˜o de SEDs por Linguagens pode ser visto como um modelo comportamental
ca
externo do sistema uma vez que se baseia na descri¸ao de suas trajet´rias (sequˆncias
c˜ o e
de eventos). Entretanto, a representa¸ao atrav´s de linguagens e express˜es regulares ´
c˜ e o e
limitada computacionalmente. Para resolver este problema utiliza-se a representa¸ao de
c˜
SEDs atrav´s de autˆmatos. Este far´ objeto do pr´ximo cap´
e o a o ıtulo.
32. Cap´
ıtulo 5
Autˆmatos como modelos para SEDs
o
Neste cap´
ıtulo ser˜o introduzidos os principais conceitos relacionados aos autˆmatos
a o
de estados finitos. Ser˜o estabelecidas rela¸˜es entre os autˆmatos e as linguagens e ser´
a co o a
considerada a quest˜o de representa¸˜o de um SED atrav´s de modelos de autˆmatos.
a ca e o
5.1 Autˆmatos Determin´
o ısticos de Estados Finitos
Um autˆmato determin´
o ıstico de estados finitos (ADEF) ´ uma qu´
e ıntupla
G = (X, Σ, f, x0 , Xm ), onde:
• X ´ o conjunto finito de estados do autˆmato;
e o
• Σ ´ o conjunto de s´
e ımbolos (eventos) que definem o alfabeto;
• f : X × Σ → X ´ a fun¸ao de transi¸˜o, possivelmente parcial, ou seja, n˜o h´
e c˜ ca a a
necessidade da fun¸ao ser definida para todo elemento de Σ em cada estado de X;
c˜
• x0 ´ o estado inicial do autˆmato;
e o
• Xm ´ o conjunto de estados marcados ou finais, Xm ⊆ X.
e
Um autˆmato pode ser representado graficamente como um grafo dirigido, onde os n´s
o o
representam os estados e os arcos etiquetados representam as transi¸˜es entre os estados.
co
O estado inicial ´ identificado atrav´s de uma seta apontando para ele e os estados finais
e e
s˜o representados com c´
a ırculos duplos.
33. Autˆmatos como modelos para SEDs
o 33
Exemplo 5.1 A figura 5.1 ´ um exemplo de um autˆmato determin´
e o ıstico, cuja descri¸˜o
ca
formal correspondente ´ a seguinte:
e
• X = {x, y, z}
• Σ = {a, b, g}
• A fun¸˜o de transi¸˜o do exemplo ´: f (x, a) = x, f (x, g) = z, f (y, a) = x, f (y, b) =
ca ca e
y, f (z, b) = z e f (z, a) = f (z, g) = y
• x0 = {x}
• Xm = {x, z}
a
a y b
x
g a, g
z
b
Figura 5.1: Autˆmato determin´
o ıstico
Nota¸ao: ΣG (x) denota o conjunto ativo de eventos num estado x ∈ X, ou seja
c˜
ΣG (x) = {σ ∈ Σ : f (x, σ) ´ definida }.
e
No exemplo da figura 5.1, ΣG (x) = {a, g}, Σ(y) = {a, b} e ΣG (z) = {a, b, g}.
O autˆmato G pode ser visto como um dispositivo que opera como segue. Inicia a
o
partir do estado inicial x0 e l´ permanece at´ a ocorrˆncia de um evento σ ∈ ΣG (x0 ) ⊆ Σ
a e e
que disparar´ a transi¸˜o f (x0 , σ) ∈ X. Este processo continua baseado nas transi¸oes
a ca c˜
definidas em f .
A fun¸ao f pode ser estendida do dom´
c˜ ınio X × Σ∗ , operando
ınio X × Σ para o dom´
sobre cadeias, da seguinte maneira:
ˆ
f (x, ε) := x
ˆ
f (x, σ) := f (x, σ), σ ∈ Σ
ˆ ˆ
f (x, sσ) := f (f (x, s), σ) para s ∈ Σ∗ e σ ∈ Σ.
34. Autˆmatos como modelos para SEDs
o 34
ca ca ˆ
Exemplo 5.2 Aplicando a defini¸˜o da fun¸˜o de transi¸˜o estendida, f , ao autˆmato
ca o
da figura 5.1, tem-se o seguinte resultado:
ˆ
f (y, ε) =y
ˆ ˆ ˆ
f (x, gba) = f (f (x, gb), a) = f (f (f (x, g), b), a) = f (f (z, b), a) = f (z, a) = y
5.2 Linguagens representadas por autˆmatos
o
Um autˆmato G est´ associado a duas linguagens, a linguagem gerada L(G) e a
o a
linguagem marcada Lm (G).
A linguagem gerada por G = (X, Σ, f, x0 , Xm ) ´:
e
ˆ
L(G) := {s ∈ Σ∗ : f (x0 , s) ´ definida}.
e
A linguagem marcada de G ´:
e
ˆ
Lm (G) := {s ∈ L(G) : f (x0 , s) ∈ Xm }.
Em palavras, a linguagem L(G) representa todas cadeias que podem ser seguidas no
autˆmato, partindo do estado inicial. A linguagem Lm (G) considera todas as cadeias que
o
partindo do estado inicial chegam a um estado marcado.
Um SED pode ser modelado por um autˆmato G, onde L(G) ´ o comportamento ge-
o e
rado pelo sistema e Lm (G) ´ o comportamento marcado ou conjunto de tarefas completas
e
do sistema.
Exerc´
ıcio 5.1 Construa um autˆmato G tal que L(G) e Lm (G) correspondam aos com-
o
portamentos gerado e marcado do robˆ da figura 4.1.
o
Exemplo 5.3 A linguagem gerada do autˆmato da figura 5.2 ´
o e
L(G) = [b∗ aa∗ b]∗ (ε + b∗ aa∗ )
e sua linguagem marcada ´
e
Lm (G) = [b∗ aa∗ b]∗ b∗ aa∗ .
35. Autˆmatos como modelos para SEDs
o 35
b a
b
0 1
a
Figura 5.2: Exemplo de autˆmato
o
5.3 Linguagens Regulares e Autˆmatos de Estados
o
Finitos
Iniciaremos esta se¸˜o retomando a quest˜o deixada como reflex˜o, apresentada ao
ca a a
final da se¸ao 4.4, ou seja, “Toda linguagem ´ represent´vel por uma express˜o regular?”.
c˜ e a a
Para responder a esta quest˜o consideremos o seguinte exemplo:
a
Exemplo 5.4 O exemplo a ser analisado ´ o de uma fila de capacidade infinita. Clientes
e
chegam e ficam na fila aguardando para usar o servidor. A figura 5.3 ilustra o proble-
ma. Como no exemplo I introduzido na se¸˜o 2.2, considera-se o conjunto de eventos
ca
Σ = {c, p} onde c corresponde ` chegada de cliente e p ` partida de cliente do sistema.
a a
c p
S
Figura 5.3: Problema fila infinita
A linguagem que corresponde ao comportamento gerado pelo sistema fila infinita ´
e
L = {cadeias tais que quaisquer de seus prefixos n˜o contenham mais p’s do que c’s}
a
Considerando como tarefas completas neste sistema de filas, as cadeias de eventos que
deixam a fila vazia, pode-se observar que
Lm = {cadeias tais que o n´mero de c’s ´ igual ao n´mero de p’s e tais que quaisquer de
u e u
seus prefixos n˜o contenham mais p’s do que c’s}
a
O desafio de encontrar uma express˜o regular para a linguagem descrita no exemplo
a
da fila infinita ´ intranspon´
e ıvel, ou seja, n˜o existe tal express˜o. De fato, o conjunto de
a a
linguagens para as quais existem express˜es regulares que as representem constitui um
o
conjunto particular de linguagens denominadas Linguagens Regulares.
Por outro lado, se se procura encontrar um autˆmato que tenha as linguagens L e
o
Lm , respectivamente como linguagens gerada e marcada, n˜o existe solu¸˜o no dom´
a ca ınio
36. Autˆmatos como modelos para SEDs
o 36
dos autˆmatos de estados finitos. A figura 5.4 mostra um autˆmato que representa o
o o
comportamento da fila infinita.
c c c c
......
p p p p
Figura 5.4: Autˆmato fila infinita
o
´
E poss´ perceber que o n´mero de estados do autˆmato ´ infinito. De fato, o teorema
ıvel u o e
a seguir estabelece uma rela¸ao entre o conjunto das Linguagens Regulares e o conjunto
c˜
de Autˆmatos de Estados Finitos.
o
Teorema 5.1 (Teorema de Kleene) Se L ´ regular, existe um autˆmato G com
e o
n´mero finito de estados tal que Lm (G) = L. Se G tem um n´mero finito de estados,
u u
ent˜o Lm (G) ´ regular.
a e
Uma quest˜o que se pode colocar ´ a seguinte: Seja G um autˆmato com n´mero
a e o u
infinito de estados, ´ sempre verdade que Lm (G) ´ n˜o regular? A resposta a esta pergunta
e e a
´ n˜o, pois pode existir um autˆmato finito que possua a mesma linguagem marcada que
e a o
o autˆmato infinito dado.
o
A observa¸˜o acima mostra que, em geral, para uma dada linguagem regular L, n˜o
ca a
existe um unico autˆmato G tal que Lm (G) = L.
´ o
Autˆmatos G1 e G2 para os quais L(G1 ) = L(G2 ) e Lm (G1 ) = Lm (G2 ) s˜o ditos serem
o a
autˆmatos equivalentes.
o
Por outro lado, dois autˆmatos s˜o ditos serem isomorfos quando G1 = G2 , a menos
o a
de uma renomea¸˜o de estados.
ca
5.4 Acessibilidade e co-acessibilidade de um ADEF
De forma geral, um ADEF G = (X, Σ, f, x0 , Xm ) pode ter estados inacess´
ıveis, isto ´,
e
estados que jamais podem ser alcan¸ados a partir do estado inicial.
c
Formalmente, um estado x ∈ X ´ dito ser acess´ se x = f (x0 , u) para algum u ∈ Σ∗ .
e ıvel
G ´ dito ser acess´vel se x ´ acess´ para todo x ∈ X.
e ı e ıvel
37. Autˆmatos como modelos para SEDs
o 37
A componente acess´
ıvel, Gac , de um autˆmato G ´ obtida pela elimina¸ao de seus
o e c˜
estados n˜o acess´
a ıveis e das transi¸oes associadas a eles.
c˜
• Gac = (Xac , Σ, fac , x0 , Xmac )
• Xac ´ o conjunto de estados acess´
e ıveis de G
• fac : f | Σ × Xac
• Xmac : Xac ∩ Xm
Se o autˆmato ´ acess´ ent˜o G = Gac .
o e ıvel a
Por outro lado G ´ dito ser co-acess´vel, ou n˜o bloqueante, se cada cadeia u ∈ L(G)
e ı a
pode ser completada por algum w ∈ Σ∗ tal que uw ∈ Lm (G), ou seja se cada cadeia
u ∈ L(G) for um prefixo de uma cadeia em Lm (G).
Em outras palavras, um ADEF ´ co-acess´
e ıvel se, a partir de qualquer um de seus
estados, existir ao menos um caminho que leve a um estado marcado.
A condi¸ao de co-acessibilidade de um ADEF pode ainda ser descrita pela equa¸˜o.
c˜ ca
L(G) = Lm (G) (5.1)
Assim como existe a componente acess´
ıvel ´ poss´
e ıvel identificar a componente co-
acess´
ıvel, Gco , de G, pela elimina¸ao de estados n˜o co-acess´
c˜ a ıveis (estados alcan¸ados por
c
cadeias que n˜o podem ser completadas em tarefas) e transi¸oes associadas.
a c˜
Quando um autˆmato ´ acess´ e co-acess´ ele ´ dito ser trim.
o e ıvel ıvel e
5.5 Bloqueio num SED
A equa¸˜o (5.1) permite definir a id´ia de ausˆncia de bloqueio num sistema a eventos
ca e e
discretos.
Um sistema a eventos discretos com comportamento L(G) e Lm (G) ´ dito ser n˜o
e a
bloqueante, sse satisfaz as condi¸oes da equa¸ao (5.1), isto ´, L(G) = Lm (G).
c˜ c˜ e
38. Autˆmatos como modelos para SEDs
o 38
Por outro lado um SED descrito por um autˆmato G que n˜o satisfaz as condi¸oes
o a c˜
da equa¸ao (5.1) ser´ bloqueante. A condi¸˜o de bloqueio (L(G) = Lm (G)) corresponde
c˜ a ca
` existˆncia de cadeia(s) geradas pelo sistema (u ∈ L(G)), a partir da(s) qual(is) n˜o se
a e a
pode completar alguma tarefa no sistema (u ∈ Lm (G)).
/
Exemplo 5.5 O gerador da Figura 5.5 modela um SED n˜o bloqueante. De fato
a
L(G) = ε + α + β + αα(βα)∗ (ε + β)
Lm (G) = α + β + αα(βα)∗ β
Lm (G) = ε + α + β + αα(βα)∗ (ε + β) = L(G)
β
G:
α
1 2 3
α
α
0
β
4
Figura 5.5: SED n˜o bloqueante.
a
Observe que este exemplo satisfaz a condi¸˜o de SED n˜o bloqueante (L(G) = Lm (G))
ca a
ainda que ap´s o estado 4 nenhum evento esteja habilitado. De fato, o estado 4 corres-
o
ponde a uma tarefa completa do sistema, o que caracteriza o n˜o bloqueio. Este exemplo
a
coloca em evidˆncia a diferen¸a entre a condi¸˜o de bloqueio aqui definida e a condi¸˜o
e c ca ca
conhecida como “deadlock”.
o ´
Exemplo 5.6 Observe agora o autˆmato da figura 5.6. E poss´
ıvel perceber que neste
autˆmato existem estados n˜o-coacess´veis. De fato, a partir dos estados 3, 4 ou 5, o
o a ı
sistema n˜o pode completar nenhuma tarefa, caracterizando a situa¸˜o de bloqueio. Tal
a ca
situa¸ao indica que o sistema est´ em “deadlock”(estado 5) ou “livelock”(estados 3 e 4).
c˜ a
g
1 5
a g
0 b a b 4
g
2 3 a
Figura 5.6: SED com bloqueio