Buscar

Sistemas a Eventos Discretos e Teoria do Controle

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 74 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 74 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 74 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal do Rio Grande do Sul
Departamento de Sistemas Ele´tricos
de Automac¸a˜o e Energia
Apostila de Sistemas a Eventos Discretos
Autoˆmatos
&
Teoria do Controle Superviso´rio
Prof. Marcelo Go¨tz
Porto Alegre, Agosto de 2017
Apresentac¸a˜o
Este documento visa proporcionar ao aluno do Curso de Graduac¸a˜o intitulado Engenharia de
Controle e Automac¸a˜o, da Universidade Federal do Rio Grande do Sul, um material de consulta
para a disciplina ENG10021 - Sistemas a Eventos Discretos. Pore´m, este na˜o pretende ser um
material substituto a` bibliografia especificada (a qual consta no Plano de Ensino) para esta
disciplina. Recomenda-se, inclusive, que o aluno consulte a bibliografia indicada, a qual foi
utilizada como suporte para elaborac¸a˜o deste material, e que propicia um verificac¸a˜o mais
completa e abrangente do conteu´do. Este material pode ser utilizado como um resumo para
acompanhamento das explanac¸o˜es dos conteu´dos realizadas pelo professor em sala de aula.
Este material esta´ organizado da seguinte maneira:
Cap´ıtulo 1 introduz e conceitua os Sistemas Dinaˆmicos a Eventos Discretos, ou mais bre-
vemente chamado de Sistemas a Eventos Discretos (SED), fazendo tambe´m um breve
comparativo entre este sistema e os Sistemas Dinaˆmicos de Varia´veis Cont´ınuas (SDVC).
Este cap´ıtulo tem como refereˆncia o Cap´ıtulo 1 de [1] (fonte principal, um dos livros
texto da disciplina), mas tambe´m podem ser verificados adicionalmente os livros [2] e [3].
Este u´ltimo sendo bem mais abrangente, e tratando de va´rios assuntos de Controle e
Automac¸a˜o, ale´m de SEDs. Pore´m, de maneira resumida.
Cap´ıtulo 2 apresenta o modelo de Linguagens para SED, onde o foco esta´ na descric¸a˜o da
evoluc¸a˜o dos estados do SED por sequencias de eventos. Os conceitos aqui apresen-
tados servira˜o de base para o restante do documento, onde sa˜o discutidos modelos de
representac¸a˜o para Linguagens. O Cap´ıtulo 2 de [1] e´ a referencia principal para este
cap´ıtulo.
Cap´ıtulo 3 apresenta e discute o formalismo do modelamento por autoˆmatos, que sa˜o formas
enxutas de representac¸a˜o de Linguagens. Aqui esta˜o inclu´ıdas tambe´m as operac¸o˜es
realizadas com autoˆmatos, como as composic¸o˜es s´ıncronas, minimizac¸a˜o de autoˆmatos,
entre outras. Sa˜o discutidos exemplos de modelos aplicados a sistemas de automac¸a˜o e
manufatura. Fonte principal de consulta para este cap´ıtulo e´ o Cap´ıtulo 2 de [1].
Cap´ıtulo 4 a Teoria de Controle Superviso´rio (TCS), proposta por Ramadge e Wonham, e´ in-
troduzida neste cap´ıtulo, que e´ baseada na Teoria de Linguagens e Autoˆmatos mostrados
nos cap´ıtulos anteriores. Aqui e´ discutido o Controle Monol´ıtico, Controle Modular e
Controle Modular Local, sendo este u´ltimo proposto por Queiroz e Cury. O Cap´ıtulo 3
de [1] e´ a fonte prima´ria de refereˆncia, assim como pode ser consultada a fonte original
sobre TCS em [4, 5, 6]. Adicionalmente, o material de aula do Prof. Jose´ Eduardo
Ribeiro Cury [7] foi tambe´m consultado, assim como a proposta de Controle Modular
Local, de sua proposic¸a˜o como co-autor, dispon´ıvel em [8] e [9]. A maioria dos modelos e
exemplos aqui apresentados foram adaptados e/ou inspirados nas fontes acima citadas.
Cap´ıtulo 5 apresenta uma breve revisa˜o sobre Teoria dos Conjuntos, da matema´tica discreta,
que serve como base ferramental para o desenvolvimento e discussa˜o das teorias apre-
sentadas neste documento. Como refereˆncia a este cap´ıtulo pode-se citar os livros [10] e
[11].
iii
Suma´rio
Apresentac¸a˜o iii
1 Introduc¸a˜o 1
1.1 Preliminares e Definic¸o˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Sistemas Dinaˆmicos de Varia´veis Cont´ınuas . . . . . . . . . . . . . . . . 2
1.2 Sistemas a Eventos Discretos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Modelagem e Ana´lise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Exemplos de SED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.1 Sistema de Filas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 Sistemas de Manufatura . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.3 Sistema de Tra´fego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.4 Sistemas Hı´bridos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Linguagens 12
2.1 Linguagens em SED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.1 Definic¸a˜o de Linguagem . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.1.2 Notac¸a˜o com Expoente . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.3 Operac¸o˜es sobre Linguagens . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Representac¸a˜o de Linguagens . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Modelagem de SED por Linguagens . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4 Estudo de Caso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Autoˆmatos Aplicados a Sistemas a Eventos Discretos 18
3.1 Autoˆmato Determin´ıstico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.1.1 Definic¸a˜o de Autoˆmato . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1.2 Funcionamento do Autoˆmato . . . . . . . . . . . . . . . . . . . . . . . . 20
3.1.3 Linguagens Representadas pelo Autoˆmato . . . . . . . . . . . . . . . . . 20
3.2 Autoˆmato Na˜o-Determin´ıstico . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.2.1 Definic¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.2.2 Funcionamento do Autoˆmato Na˜o-Determin´ıstico . . . . . . . . . . . . . 23
3.2.3 Linguagens Gerada e Marcada por um AFND . . . . . . . . . . . . . . . 24
3.3 Propriedade Bloqueante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.3.1 Definic¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4 Expresso˜es Regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.5 Operac¸o˜es Una´rias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5.1 Acess´ıvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.5.2 Coacess´ıvel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.5.3 Trim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.6 Minimizac¸a˜o do Espac¸o de Estados . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.6.1 Equivaleˆncia de Estados . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.6.2 Algoritmo para Minimizac¸a˜o de Estados . . . . . . . . . . . . . . . . . . 33
iv
Suma´rio v
3.7 Composic¸a˜o de Autoˆmatos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.7.1 Produto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.7.2 Composic¸a˜o Paralela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.8 Modelagem de Sistema a Eventos Discretos . . . . . . . . . . . . . . . . . . . . 41
3.9 Modelagem das Especificac¸o˜es . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.9.1 Exemplos de Especificac¸o˜es . . . . . . . . . . . . . . . . . . . . . . . . . 45
4 Controle Superviso´rio 47
4.1 Introduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.2 Controle de Sistemas a Eventos Discretos . . . . . . . . . . . . . . . . . . . . . 48
4.2.1 Sistema controlado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.2 Eventos Na˜o Controla´veis . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3 Representac¸a˜o do Superviso´rio . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3.1 Demonstrac¸a˜o . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . 51
4.3.2 Funcionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.3.3 Superviso´rio induzido . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4 Controle com Eventos Na˜o-Controla´veis . . . . . . . . . . . . . . . . . . . . . . 53
4.4.1 Controlabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.4.2 Controlabilidade na˜o-Bloqueante . . . . . . . . . . . . . . . . . . . . . . 54
4.4.3 Problema do Controle Superviso´rio . . . . . . . . . . . . . . . . . . . . . 55
4.4.4 Ca´lculo de supC(Lam) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.5 Controle Modular Cla´ssico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.5.1 Propriedades entre Linguagens . . . . . . . . . . . . . . . . . . . . . . . 60
4.5.2 Verificac¸a˜o de supC para Controle Modular . . . . . . . . . . . . . . . . 60
4.5.3 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.6 Controle Modular Local . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.6.1 Exemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.7 Conclusa˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
5 Breve Revisa˜o de Conjuntos 66
5.1 Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.1.1 Conjuntos Finitos e Infinitos . . . . . . . . . . . . . . . . . . . . . . . . 66
5.1.2 Igualdade de Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
5.1.3 Conjunto Poteˆncia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.1.4 Operac¸o˜es em Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
1 Introduc¸a˜o
Os sistemas a eventos discretos, objeto de estudo deste material, se diferem consideravelmente
em termos de modelagem e natureza, dos sistemas tradicionais de controle de varia´vel cont´ınua.
Sistemas a eventos discretos tem tido grande atenc¸a˜o nos u´ltimos anos, especialmente em
sistemas de automac¸a˜o e manufatura. Com sua evoluc¸a˜o e n´ıveis de crescimento recentes, a
demanda por metodologias mais sistema´ticas para sua analise e controle tem tido um maior
apelo.
1.1 Preliminares e Definic¸o˜es
1.1.1 Sistema
De acordo com o IEEE (Instituto de Engenheiros Eletricistas e Eletroˆnicos), em seu Standard
Dictionary of Electrical and Electronic Terms, ou Diciona´rio Padra˜o de Termos Ele´tricos e
Eletroˆnicos, a definic¸a˜o de sistema e´: “Conjunto de elementos que interagem para a realizac¸a˜o
de uma func¸a˜o na˜o realiza´vel por nenhuma dos elementos individuais”. Ou seja, do ponto
de vista externo, um sistema pode ser visto como uma entidade (mesmo que formada por
sub-entidades) que manipulam a entrada para gerar a sa´ıda. A Figura 1.1 mostra esta ideia.
Para que se possa realizar a analise quantitativa de um sistema, assim como permitir o projeto
e desenvolvimento de sistemas de controle para este sistema utilizando crite´rios bem definidos,
e´ necessa´rio que se obtenha um modelo do sistema. Um modelo matema´tico permite que se
realize a analise quantitativa do sistema.
Geralmente, e´ interessante que se obtenha uma relac¸a˜o entre entrada e sa´ıda do sistema, ou seja,
a func¸a˜o deste sistema. Sejam p entradas descritas pelo vetor u(t) = [u1(t), u2(t), . . . , up(t)]
T .
Sejam tambe´m m sa´ıdas descritas pelo vetor y(t) = [y1(t), y2(t), . . . , ym(t)]
T . Define-se enta˜o
que a relac¸a˜o entre a entrada e sa´ıda seja descrita por uma func¸a˜o: y = g(u). Esta relac¸a˜o
considera apenas os sistemas invariantes no tempo, onde g(.) na˜o depende do tempo. Utilizando
estas definic¸o˜es, a Figura 1.1 pode ser redesenhada, como mostrado na Figura 1.2.
O modelo de um sistema pode ser bastante simples, como por exemplo, um divisor resistivo,
SistemaEntradas Saídas
Figura 1.1: Modelo conceitual de Sistema.
1
1.1. PRELIMINARES E DEFINIC¸O˜ES 2
y=g(u)g(.)u(t)
Figura 1.2: Modelo de relac¸a˜o entrada/sa´ıda de um sistema.
onde a entrada e´ uma tensa˜o e a sa´ıda e´ uma frac¸a˜o da tensa˜o de entrada. Este tipo de sistema
e´ um exemplo de sistema dito esta´tico, onde a sa´ıda so´ depende do valor atual da entrada, e
na˜o depende dos valores passados da entrada. Pore´m, na pra´tica outros tipos de sistemas, ditos
sistemas dinaˆmicos, sa˜o de maior interesse, e por consequeˆncia estes sera˜o estudados aqui.
1.1.2 Sistemas Dinaˆmicos de Varia´veis Cont´ınuas
O termo Teoria de Controle geralmente refere-se geralmente a sistemas de varia´vel cont´ınua,
onde o seu modelamento e analise esta˜o bastante consolidados e aceitos, tanto no meio acadeˆmico,
quanto no meio industrial. Os sistemas considerados por esta teoria possuem certas carac-
ter´ısticas, como: serem dinaˆmicos, possuirem varia´veis continuas e sa˜o orientados no tempo (o
tempo e´ a varia´vel independente), dentre outras. Assim, sa˜o chamados de Sistemas Dinaˆmicos
de Varia´veis Cont´ınuas (SDVC).
Em um sistema esta´tico, a sa´ıda em um instante de tempo t depende apenas da entrada
neste instante t. Diferentemente, um sistema dinaˆmico tem sua sa´ıda no instante t definida
pela entrada nesse instante t e tambe´m pelos valores passados da entrada. Ou seja, o sistema
apresenta uma certa “memo´ria”. Os sistemas dinaˆmicos apresentam os casos de maior interesse,
tanto na Teoria Cla´ssica e Teoria de Controle Moderno, quanto para os sistemas a eventos
discretos aqui estudados.
Em sistema dinaˆmico surge o conceito de estado. O estado de um sistema no tempo t0 e´ a
informac¸a˜o requerida em t0 tal que a sa´ıda y(t), para todo t ≥ t0, seja univocamente determi-
nada por esta informac¸a˜o (estado) e por u(t) (entrada) para t ≥ t0. O estado e´ representado
por varia´veis de estado, que e´ o conjunto mı´nimo de varia´veis que determinam o estado do
sistema. Considerando que o sistema possua n varia´veis de estado, tem-se o vetor de estado
x(t) = {x1(t), x2(t), . . . , xn(t)} que descreve o sistema modelado.
O espac¸o de estados de um sistema, geralmente denotado por X, e´ o conjunto de todos os
poss´ıveis valores que um estado pode ter. A representac¸a˜o de um espac¸o de estados de dimensa˜o
n, se da´ por um sistema de coordenadas onde cada eixo corresponde a uma varia´vel de estado.
Ou seja, um estado qualquer do sistema pode ser representado por um ponto neste espac¸o de
estados.
A evoluc¸a˜o dos estados de um sistema dinaˆmico modelado desta forma e´ chamado de trajeto´ria
dos estados, determinada pela evoluc¸a˜o dos estados ao longo do tempo. Esta trajeto´ria e´ regida
pelas equac¸o˜es de estado. Em SDVC as equac¸o˜es de estado sa˜o equac¸o˜es diferenciais de primeira
ordem que descrevem a dinaˆmica do sistema. Assim, um sistema pode ser modelado pelo seu
espac¸o de estados quando o mesmo e´ descrito da seguinte maneira:
x˙(t) = f(x(t),u(t), t) (1.1)
y(t) = g(x(t),u(t), t) (1.2)
onde a Equac¸a˜o 1.1 representa o conjunto de equac¸o˜es de estado, e a Equac¸a˜o 1.2 representa o
1.2. SISTEMAS A EVENTOS DISCRETOS 3
y=g(x,u,t)x=f(x,u,t)u(t)
.
Figura 1.3: Relac¸a˜o entrada/sa´ıda de um sistema modelado por estados.
conjunto de equac¸o˜es e sa´ıda para este sistema. Estas equac¸o˜es relacionam os estados, entradas
e sa´ıdas do sistema. A Figura 1.3 mostra a relac¸a˜o de entradas/sa´ıdas de um sistema modelado
por espac¸o de estados.
Para sistemas Lineares Invariantes no Tempo (LIT), as equac¸o˜es do modelo de espac¸o de
estados sa˜o descritas da seguinte maneira:
x˙(t) = Ax(t) +Bu(t) (1.3)
y(t) = Cx(t) +Du(t) (1.4)
Em um sistema SDVC o espac¸o de estados e´ cont´ınuo. Ou seja, os estados podem assumir
qualquer valor em R. Ainda, verifica-se que o sistema tem o tempo como sua varia´vel inde-
pendente.
O sistema pode tambe´m ser modelado por equac¸o˜es de diferenc¸as. Isto e´ feito quando se
realiza a discretizac¸a˜o do tempo. Ou seja, em intervalosregulares T de tempo, chamado de
intervalo de amostragem, o sinal e´ amostrado. Assim, ao inve´s de ter-se o tempo cont´ınuo,
tem-se o tempo discreto, dado por nT , sendo nestes instantes o valor x(nT ) o sinal amostrado.
Utilizando a notac¸a˜o [k] para representar (nT ), as equac¸o˜es do modelo por espac¸o de estados
amostrado podem ser representados pelas equac¸o˜es de diferenc¸as:
x[k + 1] = Ax[k] +Bu[k] (1.5)
y[k] = Cx[k] +Du[k] (1.6)
1.2 Sistemas a Eventos Discretos
Definic¸a˜o de SED
O tipo de sistema alvo de estudo deste documento sa˜o os denominados Sistemas Dinaˆmicos a
Eventos Discretos (SDED), ou simplesmente Sistemas a Eventos Discretos (SED). Fundamen-
talmente, o SED diferencia-se de um SDVC por possuir um espac¸o de estados discreto. Ou
seja, o espac¸o de estados que um sistema SED possui e´ naturalmente descrito por um conjunto
de valores discretos, como por exemplo {0, 1, 2, . . .}. Em um sistema de fila de pessoas, por
exemplo, que recebe pessoas para serem atendidas por um servic¸o, e pessoas que saem quando
atendidas, pode ser modelado como um sistema SED. O nu´mero de pessoas em um dado mo-
mento, nesta fila, e´ o estado do sistema, sendo N o nu´mero de pessoas na fila, enta˜o N ∈ X,
onde X ⊂ N. Claramente, o espac¸o de estados X e´ um conjunto discreto de valores.
Outra caracter´ıstica importante, e´ que a evoluc¸a˜o, ou trajeto´ria de um estado, e´ dirigida por
eventos, e na˜o pelo tempo, como em SDVC. Ou seja, a varia´vel independente de um SED e´
o evento. Um evento e´ modelado como um sinal que ocorre instantaneamente e que causa a
transic¸a˜o de um estado para outro estado. Um evento pode representar, por exemplo, uma
1.2. SISTEMAS A EVENTOS DISCRETOS 4
pessoa que entra na fila; uma pessoa que sai da fila; o pressionar de um bota˜o; a transic¸a˜o
de um sinal digital, de “0” para “1”; a sinalizac¸a˜o de um sensor de fim de curso, o sinal de
acionamento de uma esteira, o n´ıvel de um tanque que chegou no limite, a temperatura que
excedeu um valor cr´ıtico, um produto que chegou em uma esteira, entre outros.
Para a modelagem de eventos sera´ utilizado o s´ımbolo e para denotar um evento qualquer.
Considerando que um sistema possa ser afetado por um conjunto de eventos distintos, sera´
definido um conjunto E de eventos, cujos elementos deste conjunto sa˜o todos estes eventos.
Notadamente, E e´ tambe´m um conjunto discreto.
Alguns exemplos de sistemas com espac¸o de estados discretos:
• Os estados de funcionamento de uma esteira, que podem ser: { FUNCIONANDO, PA-
RADA}. A ac¸a˜o de ligar, ou parar a esteira por um CLP (Controlador Lo´gico Pro-
grama´vel) podem ser vistos como sendo os eventos destes sistema;
• Um computador executando um programa pode ser modelado como estando em um dos
treˆs poss´ıveis estados: { ESPERANDO POR ENTRADA, EXECUTANDO, FINALI-
ZADO}. As ac¸o˜es do usua´rio, em acionar, parar, etc, pode ser modelados como sendo
eventos do sistema;
• O estado EXECUTANDO, do exemplo anterior, pode, por sua vez, estar em outro sub-
estado individual, como por exemplo, em qual linha de co´digo ele se encontra. O avanc¸o
do relo´gio do sistema digital pode ser visto como a fonte de eventos;
• Uma fila de supermercado, ou de atendimento para pessoas, como nos exemplos anteri-
ores. Uma pessoa entrando ou saindo da fila, pode ser visto como um evento;
• Um jogo de xadrez pode, por exemplo, ter cada poss´ıvel disposic¸a˜o de pec¸as modelado
como sendo um estado individual. Cada movimento de uma pec¸a pode levar o jogo de
um estado a outro. Notadamente o espac¸o de estados sera´ enorme, pore´m ainda discreto;
A Figura 1.4 mostra o espac¸o de estados e da evoluc¸a˜o dos estados para um sistema SED e
SDVC, para uma melhor visualizac¸a˜o do comparativo entre os mesmos.
A Figura 1.4a mostra a evoluc¸a˜o do estado de um sistema cont´ınuo, sendo que x(t) e´ geralmente
a soluc¸a˜o da equac¸a˜o diferencial x˙(t) = f(x(t), u(t), t), onde u(t) e´ o sinal de entrada. Ou seja,
o espac¸o de estados e´ cont´ınuo, e´ um conjunto de nu´meros reais, e o valor de x pode assumir
qualquer valor deste conjunto. Percebe-se neste caso que a evoluc¸a˜o e´ cont´ınua e regida pelo
tempo.
A Figura 1.4b mostra a evoluc¸a˜o dos estados em um sistema a eventos discretos, sendo que o
espac¸o de estados e´ um conjunto discreto X = {s1, s2, s3, s4, s5, s6}. A evoluc¸a˜o dos estados
se da´ de maneira discreta, e na ocorreˆncia de um evento, ocorre a troca de um estado para
outro. Sera´ visto que para certos modelos sera´ definida a func¸a˜o f(.) de transic¸a˜o de estado,
que dependendo do estado x atual, e da ocorreˆncia de um evento e, o sistema trocara´ para o
novo estado x′, ou: x′ = f(x, e).
Nota-se tambe´m que a ocorreˆncia de um evento na˜o necessariamente realiza a troca de um
estado. No exemplo da Figura 1.4b, a ocorreˆncia do evento e3 em t3 e´ um exemplo desta
situac¸a˜o. Ja´ em t6, o mesmo evento e3 causa a troca do estado s3 para o estado s4. Ou seja,
o mesmo evento pode ter efeitos diferentes no sistema, dependendo do estado corrente. Esta
situac¸a˜o e´ caracter´ıstica de sistemas dinaˆmicos.
Verifica-se aqui que a evoluc¸a˜o dos estados e´ dirigida por eventos. Independentemente do
1.2. SISTEMAS A EVENTOS DISCRETOS 5
t
x(t)
(a) Trajeto´ria do estado em um SDVC. x(t) ∈ R.
s2
s1
s3
s4
s5
s6
tt1 t2 t3 t4 t5 t6 t7
e1 e2 e3 e4 e4 e3 e1 e
(b) Trajeto´ria dos estados em um SED. x ∈ {s1, s2, s3, s4, s5, s6}.
Figura 1.4: Trajeto´ria de estados para SDVC e SED.
1.2. SISTEMAS A EVENTOS DISCRETOS 6
tempo t em que um evento e ocorra, e´ o evento que determina a troca de estados de um SED.
Um SED pode permanecer em um estado durante um tempo arbitrariamente longo. Assim,
a sequencia de eventos e´ que determina o comportamento do sistema (evoluc¸a˜o dos estados).
No exemplo da Figura 1.4b, o comportamento (evoluc¸a˜o dos estados) e´ dado pela sequencia
e1e2e3e4e4e3e1. Mesmo que o tempo seja uma varia´vel secunda´ria para SEDs, esta informac¸a˜o
pode ser u´til dependendo do tipo de modelamento e ana´lise que se pretende realizar, como sera´
visto adiante.
1.2.1 Modelagem e Ana´lise
As ferramentas de modelagem e analise ja´ consolidadas e conhecidas para SDVC, na˜o se aplicam
para SED. Procura-se aqui um modelamento para se obter equac¸o˜es que regem a evoluc¸a˜o dos
estados em func¸a˜o da ocorreˆncia de eventos. Notadamente, equac¸o˜es diferenciais, ou equac¸o˜es
de diferenc¸as, na˜o servem para descrever este comportamento. Por vezes, e´ suficiente que um
SED seja modelado apenas pela sequencia de eventos, sendo neste caso chamado de modelo
atemporal. Isto e´ suficiente quando se pretende analisar se existe bloqueio no sistema, se um
estado pode ser alcanc¸ado, se um estado proibido e´ alcanc¸ado, se a lo´gica do controle e suas
restric¸o˜es sa˜o atendidas, entre outras.
Existe tambe´m modelos que adicionam a informac¸a˜o temporal, ou seja, em que instante de
tempo o evento ocorre. Isto se torna interessante quando se pretende analisar, por exemplo, o
tempo me´dio de espera em uma fila, taxa de produc¸a˜o de um sistema de manufatura, eficieˆncia
temporal do sistema, taxa de ocupac¸a˜o de equipamentos, a caracter´ıstica de desempenho do
sistema, entre outros. Modelos mais completos podem ainda incorporar modelos estat´ısticos
para cada evento temporal (vide, por exemplo, [2]). Quando se define uma func¸a˜o de distri-
buic¸a˜o de probabilidades para cada evento, tem-se um modelo temporal estoca´stico do sistema.
Isto se torna interessante para simulac¸o˜es, por exemplo, para se refinar as informac¸o˜es em um
sistema temporal.
Modelos e ferramental de analise de SEDs utilizam conceitos provenientes da Cieˆncia da Com-
putac¸a˜o, Pesquisa Operacional, assim como da Teoria de Controle. Diferentemente da Teoria
de Controle para SDVC, existem va´rias propostas de modelagem de SEDs, sem entretanto que
se tenha umadefinic¸a˜o de que uma destas seja universal e bem aceita. Alguns modelos sa˜o
mais apropriados para certos sistemas, e outros modelos mais adequados para outros tipos de
sistemas. Os principais modelos utilizados na atualidade sa˜o:
• Redes de Petri;
com ou sem temporizac¸a˜o;
• Teoria de Linguagem e Autoˆmatos;
base para a Teoria do Controle Superviso´rio - TCS;
• Cadeias de Markov;
• Teoria de Filas;
• A´lgebra de Processos;
• A´lgebra Max-Plus;
• Lo´gica Temporal e Lo´gica Temporal de Tempo-Real;
Neste documento sera˜o estudados a Teoria de Linguagem e Autoˆmatos, que servira´ como base
1.3. EXEMPLOS DE SED 7
ServidorFila
Partidas
de
clientes
Chegada
de 
clientes
Figura 1.5: Modelo de um sistema de fila simples.
para a Teoria do Controle Superviso´rio, tema que tambe´m sera´ aqui estudado.
1.3 Exemplos de SED
Para um melhor entendimento dos sistemas aqui definidos, nesta sec¸a˜o sera˜o apresentados
alguns tipos de SED, com definic¸a˜o de seu espac¸o de estados discreto e conjunto de eventos.
1.3.1 Sistema de Filas
Um modelo bastante gene´rico e bastante comum no modelamento de SEDs, e´ baseado na Teoria
de Filas. E´ utilizado para representar recursos que sa˜o compartilhados, em que as entidades
que usam o recurso devem esperar para ocupa´-lo. Por exemplo, um recurso pode ser visto
como um caixa de supermercado ou banco, um roboˆ ou estac¸a˜o de trabalho em uma fa´brica,
um cruzamento de uma avenida, etc.
Outro componente deste modelo e´ a fila, onde as entidades que esperam pelo recurso devem
permanecer. Por exemplo, uma fila de supermercado ou banco, um buffer ou pallet em uma
fa´brica, um armaze´m para estoque de pec¸as, uma fila de carros esperando o cruzamento, etc.
O terceiro componente deste modelo e´ a pro´pria entidade que espera e utiliza o recurso.
O diagrama ba´sico de um sistema de fila e´ o mostrado na Figura 1.5. Nesta figura esta˜o
representados o servidor (o recurso que e´ ocupado), a fila, e os eventos de entrada e sa´ıda
do sistema, geralmente modelados por eventos. Aqui, servidor e clientes sa˜o nomes gene´ricos
para representar o recurso e as entidades que o utilizam.
O modelo e´ definido completamente quando se define tambe´m:
a capacidade da fila geralmente este e´ visto como o estado deste sistema. E´ definido pelo
conjunto que este estado X pode assumir. Assim, X = {0, 1, 2, . . . , C + 1}, onde C e´ a
capacidade ma´xima da fila, e C + 1 representa a fila cheia e mais um elemento ocupado
o servidor;
a pol´ıtica de atendimento da fila define qual a pol´ıtica em que os clientes sera˜o atendidos
pelo servidor. Por exemplo, esta politica pode ser do tipo FIFO (First-In First-Out),
LIFO (Last-In First-Out), ou outra;
o processo executado pelo servidor define o que e´ realizado pelo servidor no cliente;
eventos de entrada e sa´ıda Seja por exemplo, o conjunto de eventos E = {c, p}, onde c denota
a chegada de um cliente no sistema, e p denota a partida de um cliente.
Logicamente, um sistema mais complexo pode ser modelado pela combinac¸a˜o de va´rios sistemas
como o da Figura 1.6.
1.3. EXEMPLOS DE SED 8
1
Saída de
peças
Chegada 
de peças 2
Figura 1.6: Modelo de filas para um sistema de manufatura.
A ferramenta MATLAB permite a simulac¸a˜o de modelos de sistemas a eventos discretos ba-
seados em filas. O pacote SimEvents, para o Simulink, permite especificar o modelo de um
sistema a evento discreto atrave´s de filas, servidores, chaves, e outros componentes. Permite
tambe´m a integrac¸a˜o com outras ferramentas de modelagem, como o StateChartFlow.
1.3.2 Sistemas de Manufatura
Linhas de produc¸a˜o de um sistema de manufatura e´ um dos exemplos em que o modelo de filas
pode ser utilizado, como mostrado na Figura 1.6. Os clientes podem ser vistos como pec¸as,
itens, ou ate´ pallets. Os servidores podem ser vistos como as estac¸o˜es onde a operac¸a˜o sobre a
pec¸a e´ realizada, os roboˆs, ou ferramentas que sa˜o utilizadas. A fila representa um buffer, um
armaze´m, ou os esta´gios intermedia´rios entre as estac¸o˜es de trabalho para armazenamento das
pec¸as em trabalho.
Neste exemplo em espec´ıfico, as pec¸as passam pelas duas estac¸o˜es, sendo que na entrada do
sistema existe um buffer, ale´m de outro buffer entre as duas ma´quinas, o qual tem tem uma
capacidade para armazenar ate´ duas pec¸as. Seja x2 a varia´vel de estado que indica a quantidade
atual de pec¸as no segundo buffer, e analogamente x1 para o segundo buffer. O vetor de estado
pode enta˜o ser escrito como x = [x1, x2]
T .
Seguindo o modelamento de filas, a varia´vel x2 pode assumir qualquer valor entre {0, 1, 2, 3}.
Quando o segundo buffer estiver cheio, a estac¸a˜o 2 estiver ocupada, e a estac¸a˜o 1 terminar seu
processo, a pec¸a na˜o podera´ seguir e o sistema estara´ em bloqueio ate´ que a segunda estac¸a˜o
termine seu processo e uma pec¸a seja retirada do segundo buffer. Para que este estado do
sistema seja modelado, define-se enta˜o o estado B para x2. Assim, o espac¸o de estados pode
ser definido como:
X = {(x1, x2) : x1 ≥ 0, x2 ∈ {0, 1, 2, 3, B}}
Um poss´ıvel conjunto de eventos que orienta a evoluc¸a˜o dos estados pode ser definido como:
E = {a, c1, d2}
onde:
a e´ a chegada de uma pec¸a para dentro do sistema, colocando a mesma no primeiro buffer ;
c1 e´ o te´rmino do processo executado pela primeira estac¸a˜o;
d2 e´ a sa´ıda de uma pec¸a do sistema, pela segunda estac¸a˜o.
1.3. EXEMPLOS DE SED 9
G
R
1
2
3
Figura 1.7: Uma intersecc¸a˜o controlada por um sema´foro. Adaptado de [1]
1.3.3 Sistema de Tra´fego
Em um sistema de tra´fego, um cruzamento controlado por um sema´foro pode ser visto como
um recurso (servidor) que e´ utilizado por ve´ıculos. No exemplo mostrado na Figura 1.7 existem
4 tipos de ve´ıculos que podem acessar o cruzamento. Estes ve´ıculos sa˜o tipificados em func¸a˜o
do caminho que desejam seguir pelo cruzamento:
(1,2) ve´ıculos vindos de 1 e viram a direita em direc¸a˜o a 2;
(1,3) ve´ıculos vindos de 1 e viram a esquerda em direc¸a˜o a 3;
(2,3) ve´ıculos que seguem de 2 para 3;
(3,2) ve´ıculos que seguem de 3 para 2.
O sema´foro pode estar em dois estados:
R Sinal vermelho para os ve´ıculos do tipo (1,2) e (1,3), e verde para os ve´ıculos (2,3) e
(3,2);
G Sinal verde para os ve´ıculos do tipo (1,2) e (1,3), e vermelho para os ve´ıculos (2,3) e
(3,2).
O conjunto de eventos que o sistema possui pode ser definido como:
E = {a12, a13, a23, a32, d12, d13, d23, d32, g, r}
onde:
aij indica a chegada de um ve´ıculo do tipo (i,j);
dij indica a partida de um ve´ıculo do tipo (i,j);
g indica que o sema´foro torna-se verde;
r indica que o sema´foro torna-se vermelho.
Um poss´ıvel espac¸o de estados pode ser definido como o conjunto de valores que indicam o
1.3. EXEMPLOS DE SED 10
Controle Supervisório
Interface
Controle de
Variáveis Contínuas
Sistema a ser controlado
(planta)
Eventos 
Observáveis
Comandos
(eventos)
Figura 1.8: Modelo conceitual da arquitetura de um sistema h´ıbrido. Adaptado de [1].
tamanho de cada fila de ve´ıculos, e pelo estado do sema´foro:
X = {(x12, x13, x23, x32, y) : x12, x13, x23, x32 ≥ 0, y ∈ {G,R}}
onde xij denota o valor do tamanho da fila de ve´ıculos do tipo (ij), e y indica o estado do
sema´foro.
1.3.4 Sistemas H´ıbridos
Geralmente, sistemas presentes em industrias exigem a presenc¸a de sistemas do tipo SDVC
e SED. Em um sistema de manufatura, ou sistema de automac¸a˜o, estes necessitam controlar
a sequencia de eventos, assim como controlar o fluxo de l´ıquidos, temperatura, vaza˜o, n´ıvel,
entre outras varia´veis.
Como exemplo, considera-se o sistema a ser controlado como sendo a planta. Em um n´ıvel
mais operacional, o controle atua no gerenciamento do fluxo e sequenciamento das atividades
e processos no sistema. Ele atua por comandosenviado ao sistema (liga, desliga, sinaliza,
habilita, etc), e recebe sinais pelos sensores (fim de curso, temperatura no ma´ximo, tanque
cheio, etc.).
Para o seu projeto, os subsistemas de espac¸o de estados discretos sa˜o modelados por SEDs, e
seu controle e´ enta˜o projetado. Este n´ıvel operacional interage com a planta, mas tambe´m com
o SDVC que controla os subsistemas de varia´veis cont´ınuas. Para o perfeito acoplamento entre
os sistemas SED e SDVC, pode ser necessa´ria uma interface. A Figura 1.8 mostra a arquitetura
conceitual para o monitoramento e controle h´ıbrido da planta (sistema sob controle).
A partir da de´cada de 90, houve um aumento de interesse por parte da comunidade cient´ıfica
1.3. EXEMPLOS DE SED 11
para modelamento e soluc¸a˜o de problemas deste tipo. Para a abordagem de sistemas h´ıbridos
existem extenso˜es de formalismos cont´ınuos, extensa˜o de formalismos discretos, e formalismos
mistos, sem ainda um consenso da comunidade cient´ıfica e industrial. Assim, dependendo de
certas condic¸o˜es, SDVC podem ser vistos e modelados como SED, ou vice-versa. E como pode
ser intu´ıdo, sistemas h´ıbridos e´ um assunto extenso e de interesse, por ainda carecer de soluc¸o˜es
de modelagem e analise. Mais material sobre este to´pico pode ser consultado, por exemplo,
em [3] (em seu Cap´ıtulo 13) e [1] (em seu Cap´ıtulo 5).
2 Linguagens
Como ja´ verificado, o comportamento de um Sistema a Eventos Discretos (SED) e´ descrito em
termos de uma sequeˆncia de eventos na forma e1e2e3...en. Uma sequeˆncia deste tipo define a
ordem em que os eventos ocorrem, mas na˜o possuem a informac¸a˜o temporal destes eventos.
Ou seja, neste caso analisa-se em um n´ıvel atemporal, apenas a n´ıvel lo´gico, o sistema. Para
tanto, as linguagens sera˜o utilizadas para modelar o sistema.
2.1 Linguagens em SED
Em SED a sequeˆncia de eventos descreve o comportamento deste sistema. Em uma ce´lula de
trabalho de um sistema de manufatura composta por esteiras, roboˆs, ma´quinas que realizam
operac¸o˜es, pode-se observar va´rios eventos, onde a sequeˆncia de ocorreˆncia destes eventos
descreve a evoluc¸a˜o e o comportamento deste sistema. A esteira, por exemplo, pode conter
um evento “liga esteira”, ou “pec¸a presente na esteira”. O roboˆ pode ser regido pelos eventos
“aciona operac¸a˜o”, e “operac¸a˜o realizada”, que indicam, respectivamente, que o roboˆ iniciara´
sua operac¸a˜o e tambe´m quando o roboˆ terminou a operac¸a˜o.
Logicamente, a sequeˆncia em que estes eventos ocorrem especificam a evoluc¸a˜o deste sistema.
Da´ı conclui-se tambe´m que certos eventos devem ser manipulados com o intuito de “guiar” o
sistema conforme desejado. Ou seja, que a evoluc¸a˜o deste sistema ocorra de maneira controlada,
evitando assim situac¸o˜es indesejadas, como por exemplo, evitar o acionamento do roboˆ quando
na˜o ha´ pec¸a a ser processada, ou enta˜o para evitar a colisa˜o de roboˆs. O estudo sobre o controle
do SED sera´ alvo de outro cap´ıtulo. Primeiramente e´ necessa´rio que se fac¸a o modelamento
deste sistema atrave´s de linguagens.
2.1.1 Definic¸a˜o de Linguagem
Uma linguagem e´ definida como sendo o conjunto de sequeˆncia de eventos que podem ocorrer
(fisicamente poss´ıvel) em um SED. Cada sequeˆncia de eventos e´ formada por eventos que esta˜o
definidos para este sistema. Assim, define-se E como o conjunto de todos os eventos que um
SED possui, que pode ser entendido como o alfabeto deste sistema. Cada sequeˆncia de eventos,
pode ser interpretada como uma palavra que o SED pode entender (poss´ıvel de ocorrer neste
sistema). O conjunto destas palavras representa a linguagem falada pelo sistema.
Formalmente, define-se a linguagem L sobre o conjunto E como sendo o conjunto de sequencias
(de tamanho finito) de eventos contidos em E. Por exemplo, seja E = {a, b, g} o conjunto de
eventos. A partir deste conjunto pode-se definir a linguagem
L1 = {ε, a, abb}
a qual consiste de treˆs elementos somente (|L1| = 3).
12
2.1. LINGUAGENS EM SED 13
Ou enta˜o a linguagem
L2 = {todas as sequencias poss´ıveis de tamanho 3 que comec¸am com o evento a}
a qual consiste de nove elementos (|L2| = 9).
Ou ainda a linguagem
L3 = {todas as sequencias de tamanho finito que comec¸am com o evento a}
a qual contem um tamanho infinito de elementos (|L3| =∞).
Assim como o tamanho da linguagem, pode-se determinar o tamanho da sequeˆncia de eventos.
O elemento abb da linguagem L1 formada sobre o conjunto de eventos E definido anterior-
mente, possui tamanho treˆs: |abb| = 3. A sequeˆncia com nenhum elemento (sequeˆncia vazia)
e´ denotada por ε. Ou seja, |ε| = 0. E´ importante notar que {ε} 6= ∅ pois |{ε}| = 1, ou seja,
o conjunto {ε} possui um elemento, que e´ o elemento de cadeia vazia. A importaˆncia deste
elemento sera´ vista adiante na discussa˜o sobre o modelamento de SED.
A operac¸a˜o ba´sica e essencial envolvida na criac¸a˜o das sequencias de eventos, e por con-
sequeˆncia, na criac¸a˜o das linguagens, a partir de um conjunto E de eventos, e´ a concatenac¸a˜o.
A sequeˆncia abb, um dos elementos do conjunto L1, e´ formada pela concatenac¸a˜o da sequeˆncia
ab com o evento b. A sequeˆncia ab, por sua vez, e´ formada pela concatenac¸a˜o dos eventos
a e b. O termo cadeia sera´ utilizado neste documento como um sinoˆnimo para sequeˆncia de
eventos. A concatenac¸a˜o uv de duas cadeias u e v e´ uma nova cadeia que consiste dos eventos
em u seguidos imediatamente pelos eventos em v. Observa-se tambe´m que uε = εu = u para
qualquer cadeia u.
Se tuv = s (s e´ a concatenac¸a˜o de t, u, v, onde t, u, v ∈ E∗, enta˜o:
• t e´ chamado de prefixo de s;
• u e´ chamado de subcadeia de s;
• v e´ chamado de sufixo de s.
Seja um conjunto de eventos E. A linguagem constitu´ıda de todas as poss´ıveis cadeias formadas
pelos elementos contidos em E e´ denotada por E∗, o que inclui tambe´m a cadeia vazia ε. O
operador ∗ e´ chamado de operador Fechamento Kleene1. O tamanho de E∗ e´ infinito, pois este
conjunto possui cadeias de tamanhos arbitra´rios. Por exemplo, se E = {a, b, c}, enta˜o
E∗ = {ε, a, b, c, aa, ab, ac, ba, bb, bc, ca, cb, cc, aaa, . . .}
Qualquer outra linguagem formada sobre E e´ consequentemente um subconjunto de E∗. Em
particular, ∅, E, {ε}, e E∗ sa˜o tambe´m linguagens.
A linguagem E∗ tambe´m pode ser escrita como
E∗ = E0 ∪ E1 ∪E2 ∪ . . . ∪En ∪ . . .
onde
En = {e1e2 . . . en | ei ∈ E para cada i}
1Kleene-closure
2.1. LINGUAGENS EM SED 14
Em particular, define-se
E0 = {ε} e E1 = E
2.1.2 Notac¸a˜o com Expoente
Como ocorre com o conjunto de eventos, convenciona-se que a notac¸a˜o σi representa a cadeia
formada pela concatenac¸a˜o de “i” eventos σ. E por definic¸a˜o, σ0 = ε. Assim, aplicando-se
esta convenc¸a˜o sobre o evento a, tem-se que
a0 = ε, a1 = a, a2 = aa, a3 = aaa, e assim por diante.
E´ poss´ıvel enta˜o utilizar esta notac¸a˜o com expoentes para permitir a representac¸a˜o de lingua-
gens de uma maneira mais concisa e elegante. Na sequeˆncia sa˜o dados alguns exemplos de
linguagens utilizando-se esta notac¸a˜o:
{an | n ∈ N} = {ε, a, aa, aaa, . . .}.
{abn | n ∈ N} = {a, ab, abb, abbb, . . .}.
{anbn | n ∈ N} = {ε, ab, aabb, aaabbb, . . .}.
{(ab)n | n ∈ N} = {ε, ab, abab, ababab, . . .}.
2.1.3 Operac¸o˜es sobre Linguagens
Sendo a linguagem um conjunto, as operac¸o˜es usuais definidas para conjuntos tambe´m se
aplicam a`s linguagens. Existem, entretanto, operac¸o˜es adicionais definidas para linguagens:
Concatenac¸a˜o Seja La, Lb ⊆ E
∗, enta˜o
LaLb := {s ∈ E
∗ : (s = sasb) e (sa ∈ La) e (sb ∈ Lb)}
Ou seja, uma cadeia s esta´ contida em LaLb se esta pode ser escrita como a concatenac¸a˜o
de uma cadeia sa de La com uma cadeia sb de Lb.
Prefixo-fechamento Seja L ⊆ E∗, enta˜o
L := {s ∈ E∗ : (∃t ∈ E∗) [st ∈ L]}
Ou seja, o Prefixo-fechamento de L e´ a linguagem denotada por L e consiste de todos
os prefixos de todas as cadeiascontidas em L. Geralmente L ⊆ L. Mas quando L = L
diz-se que L e´ prefixo-fechado. Neste caso, isto significa que qualquer prefixo de qualquer
cadeia contida em L tambe´m e´ um elemento de L.
Fechamento-Kleene Seja L ⊆ E∗, enta˜o
L∗ := L0 ∪ L1 ∪ L2 ∪ . . . ∪ Ln ∪ . . .
ou ainda:
L∗ := {ε} ∪ L ∪ LL ∪ LLL ∪ . . .
Esta operac¸a˜o e´ similar a`quela definida para o conjunto E de eventos. A diferenc¸a agora
e´ que esta operac¸a˜o e´ aplicada ao conjunto L que conte´m cadeias de tamanho maior ou
igual a um.
2.2. REPRESENTAC¸A˜O DE LINGUAGENS 15
Fechamento-positivo Seja L ⊆ E∗, enta˜o
L+ := L1 ∪ L2 ∪ L3 . . .
Das definic¸o˜es anteriores segue que L∗ = L+ ∪ {ε}.
O exemplo seguinte exemplifica a aplicac¸a˜o das operac¸o˜es definidas anteriormente sobre algu-
mas linguagens. Seja E = {a, b, g} e considere as duas linguagens formadas sobre o alfabeto E:
L1 = {ε, a, abb} e L2 = {g}. Primeiramente observa-se que nenhuma das linguagens, L1 e L2,
sa˜o linguagens prefixo-fechadas, pois a cadeia ab /∈ L1 e ε /∈ L2. Considerando-se as definic¸o˜es
vistas anteriormente, o seguinte pode ser observado:
L1L2 = {g, ag, abbg}
L1 = {ε, a, ab, abb}
L2 = {ε, g}
L1L2 = {ε, a, abb, g, ag, abbg}
L∗1 = {ε, a, abb, aa, aabb, abba, abbabb, . . .}
L∗2 = {ε, g, gg, ggg, . . .}
Baseado no verificado ate´ enta˜o, e tambe´m para uma precisa˜o te´cnica, ressalta-se adicional-
mente que:
• ε /∈ ∅;
• {ε} e´ uma linguagem na˜o vazia que conte´m somente uma cadeia vazia;
• Se L = ∅ enta˜o L = ∅, e se L 6= ∅ enta˜o necessariamente ε ∈ L;
• ∅∗ = {ε} e {ε}∗ = {ε};
• ∅L = L∅ = ∅.
2.2 Representac¸a˜o de Linguagens
Como sera´ verificado, a teoria de linguagens e´ utilizada para modelamento de SEDs. Uma
linguagem L especifica todas as cadeias (sequeˆncias de eventos) aceita´veis pelo sistema. Pore´m,
nem sempre o uso direto das linguagens e´ a maneira mais pra´tica de modelar SEDs. No in´ıcio
deste cap´ıtulo, por exemplo, a linguagem L1 e´ facilmente definida pois consiste de apenas treˆs
elementos. Ja´ a linguagem L2 apresenta um certo grau de dificuldade em sua escrita, ainda
que sua definic¸a˜o seja simples. Existe a necessidade de escrever todos os nove elementos do
conjunto L2 para defini-la completamente.
Para a linguagem L3, no entanto, existe uma dificuldade na sua definic¸a˜o completa pois seu ta-
manho e´ infinito. Ainda que seja poss´ıvel sua definic¸a˜o descritiva, elencar explicitamente todos
os seus elementos e´ uma tarefa imposs´ıvel. Ainda mesmo com a notac¸a˜o por expoente, mos-
trado na Sec¸a˜o 2.1.2, muitas vezes na˜o e´ suficiente para que uma linguagem seja representada
adequadamente.
Conclui-se enta˜o que o uso direto de linguagens apenas, pode na˜o ser a maneira mais pra´tica de
se modelar e de se manipular estes modelos, haja visto o exposto anteriormente. Nos pro´ximos
cap´ıtulos sera˜o estudadas duas maneiras de se representar uma linguagem de maneira mais
2.3. MODELAGEM DE SED POR LINGUAGENS 16
compacta. Estas maneiras permitem uma maneira mais adequada de manipular estes modelos
atrave´s de operac¸o˜es bem definidas, permitindo assim sua ana´lise e verificac¸a˜o de propriedades.
2.3 Modelagem de SED por Linguagens
A modelagem de SED com o uso de linguagens e´ feito pela definic¸a˜o de duas linguagens, L e
Lm. Por vezes utiliza-se a notac¸a˜o SED = (L,Lm) como modelo do SED. Estas linguagens sa˜o
definidas como:
L modela o comportamento poss´ıvel que o SED pode ter. As cadeias desta linguagem sa˜o todas
as poss´ıveis sequencias de eventos que o SED aceita fisicamente. Ou seja, todas sequencias
poss´ıveis de ocorrerem neste sistema. Esta linguagem e´ denominada Linguagem Gerada
pelo sistema, cuja motivac¸a˜o desta denominac¸a˜o sera´ melhor entendida no estudo de
autoˆmatos.
Lm modela o comportamento marcado do sistema, denominada por este motivo de Linguagem
Marcada. Esta linguagem conte´m todas as sequencias de eventos que representam tarefas
completas (ou operac¸o˜es completas) pelo sistema SED. A definic¸a˜o de tarefas completas
e´ uma questa˜o de modelamento e depende do problema de interesse.
Ambas as linguagens L e Lm sa˜o constru´ıdas sobre um mesmo conjunto E de eventos. Ou
seja, L ⊆ E∗ e Lm ⊆ E
∗. Em um modelo SED pode-se ainda verificar o seguinte:
L = L: a Linguagem Gerada e´ prefixo fechada;
Lm ⊆ L: a Linguagem Marcada e´ um subconjunto da Linguagem Gerada.
2.4 Estudo de Caso
Seja o sistema de envase automatizado mostrado na Figura 2.1, composto por quatro subsis-
temas:
• Esteira: transporta as garrafas, da direita para a esquerda, na Figura;
• Enchimento: enche da garrafa vazia;
• Fechamento: tampa a garrafa cheia;
• Rotulac¸a˜o: coloca o ro´tulo na garrafa cheia e tampada;
Considerando-se apenas o subsistema de Enchimento, sejam dois eventos, a1 e b1, que indicam
o inicio e o fim do enchimento, respectivamente. Para este subsistema, o conjunto E de eventos
pode ser definido como:
E = {a1, b1}
Ainda para este subsistema, a linguagem L que descreve o seu comportamento pode ser escrito
como:
L = {ε, a1, a1b1, a1b1a1, a1b1a1b1, . . .}
Considerando que uma tarefa completa deste subsistema seja o enchimento completo da gar-
rafa, apenas as cadeias de L que representam ciclos completos (in´ıcio e finalizac¸a˜o do enchi-
mento) sa˜o consideradas cadeias marcadas. Assim, a linguagem marcada Lm pode ser escrita
2.4. ESTUDO DE CASO 17
sentido
EnchimentoFechamentoRotulação
P3 P2 P1
Esteira
Figura 2.1: Sistema de envase automatizado.
como:
Lm = {ε, a1b1, a1b1a1b1, a1b1a1b1a1b1, . . .}
Para este caso e´ poss´ıvel verificar as propriedades anteriormente mencionadas: L = L e L ⊃ Lm.
3 Autoˆmatos Aplicados a Sistemas a Eventos
Discretos
No cap´ıtulo anterior foi apresentada a utilizac¸a˜o de linguagens como uma forma de modelagem
de SEDs. Neste cap´ıtulo sera´ mostrada a utilizac¸a˜o de autoˆmatos como outra forma de modelar
o sistema, e que tambe´m esta´ relacionado com as linguagens. Autoˆmatos sa˜o dispositivos
capazes de aceitar ou rejeitar linguagens. Assim, e´ poss´ıvel estabelecer uma relac¸a˜o entre um
autoˆmato e a linguagem por ele aceita. Diz-se tambe´m que o autoˆmato e´ capaz de gerar uma
linguagem, e que torna o autoˆmato uma maneira de representa´-la.
Nas pro´ximas sec¸o˜es sera´ apresentado o formalismo relacionado a autoˆmatos para que seja
poss´ıvel representar, manipular e resolver problemas relacionados ao comportamento lo´gico
de SEDs. Os autoˆmatos podem ser determin´ısticos e na˜o-determin´ısticos, com transic¸o˜es a
vazio ou na˜o. Ambos estes casos, e sua relac¸a˜o direta com Sistemas a Eventos Discretos, sera˜o
estudados aqui.
3.1 Autoˆmato Determin´ıstico
Um autoˆmato e´ um dispositivo utilizado para representar uma linguagem atrave´s de regras
bem definidas. Primeiramente sera´ definido o autoˆmato, suas regras, e depois sera´ apresentada
a sua relac¸a˜o com a linguagem associada a este autoˆmato.
Uma maneira apropriada de se representar um autoˆmato e´ atrave´s de um grafo direcionado,
chamado neste caso de diagrama de transic¸a˜o de estados1. Um autoˆmato de estados finitos
sobre um conjunto finito de eventos E pode ser representado como um grafo direcionado com a
propriedade de que cada no´ do grafo emita um arco rotulado com cada evento contido em E. Os
no´s deste grafo sa˜o chamados de estados e representa o conjunto de estados do autoˆmato. Ha´
um estado especial chamado de estado inicial. Este estado e´ marcado por uma seta apontando
para este estado.
Ha´ tambe´m um conjunto de estados (possivelmente vazio) chamados de estados marcados2. A
definic¸a˜o dos estados marcados e´ uma decisa˜o de modelagem do sistema. Um estado marcado
pode representar a finalizac¸a˜o de uma tarefa, ou enta˜o o estado de repouso de um roboˆ que esta´
esperando a execuc¸a˜o da pro´xima tarefa, por exemplo. No decorrer deste documento ficara´
mais evidente,atrave´s de exemplos, a necessidade de especificac¸a˜o deste tipo de estados. Neste
documento, os estados marcados sa˜o identificados pela linha dupla utilizada no seu desenho.
A Figura 3.1 mostra um exemplo de um autoˆmato de treˆs estados. Os eventos do conjunto
E = {a, b, g} marca as transic¸o˜es entre os estados do conjunto X = {x, y, z}. O estado inicial,
denotado por x0, e´ o estado x. O conjunto de estados marcados Xm e´ o conjunto {x, z}.
1Diagrama de Estados, ou tambe´m conhecido como Ma´quina de Estados.
2Na definic¸a˜o formal de Autoˆmatos estes estados sa˜o chamados de estados finais
18
3.1. AUTOˆMATO DETERMINI´STICO 19
x y
z
a
g a, g
a
b
b
Figura 3.1: Autoˆmato com treˆs estados.
3.1.1 Definic¸a˜o de Autoˆmato
Formalmente, um autoˆmato determin´ıstico, denotado por G3, e´ definido como a seˆxtupla
G = (X,E, f,Γ, x0,Xm)
onde:
X representa o conjunto de todos os estados;
E representa o conjunto de todos os eventos definidos para o sistema e associados a G;
f representa a func¸a˜o de transic¸a˜o f : X × E → X. Ou seja, f e´ a func¸a˜o que mapeia
a combinac¸a˜o de dois elementos (um estado e um evento) a outro estado (elemento do
conjunto dos estados). Assim, f(x, e) = y significa que existe uma transic¸a˜o rotulada
com o evento e do estado x ao estado y. Quando para o estado x existir transic¸o˜es
associadas a todos os eventos contidos em E, diz-se enta˜o que a func¸a˜o f e´ completa
sobre seu domı´nio. Caso contra´rio, e´ uma func¸a˜o parcial sobre seu domı´nio.
Γ e´ a func¸a˜o de estado ativado (ou eventos executa´veis). Γ : X → 2E . Γ(x) e´ o conjunto
de todos os eventos e para os quais f(x, e) esta´ definida. Este conjunto e´ chamado de
conjunto de eventos ativos (ou eventos executa´veis) de G no estado x.
x0 e´ o estado inicial;
Xm e´ o conjunto de estados marcados. Observa-se que Xm ⊆ X.
O Autoˆmato G da Figura 3.1 tem as seguintes definic¸o˜es: X = {x, y, z}, E = {a, b, g}, x0 = z,
Xm = {x, z}. A func¸a˜o de transic¸a˜o f e´ assim definida:
f(x, a) = x f(x, g) = z
f(y, a) = x f(y, g) = y
f(z, b) = z f(z, g) = f(z, g) = y
A func¸a˜o Γ e´ assim definida: Γ(x) = {a, g}, Γ(y) = {a, b}, Γ(z) = {a, b, g}. Nota-se neste caso
que f e´ uma func¸a˜o parcial em seu domı´nio X × E pois f(x, b) e f(y, g) na˜o esta˜o definidas.
Quando o conjunto de estados X e´ finito, o autoˆmato G recebe o nome Autoˆmato Finito.
Adicionalmente, a func¸a˜o f e´ uma func¸a˜o do domı´nio X × E para a imagem X. Assim na˜o
3A raza˜o de um autoˆmato ser denotado pela letra G e´ o fato de o autoˆmato ser tambe´m chamado de “Gerador”,
pois ele e´ capaz de “gerar” linguagens, a linguagem gerada.
3.1. AUTOˆMATO DETERMINI´STICO 20
pode haver duas ou mais transic¸o˜es com o mesmo evento saindo do mesmo estado. O autoˆmato
com esta caracter´ıstica e´ dito Autoˆmato Determin´ıstico.Quando o conjunto de estados e´ finito
e a func¸a˜o f e´ definida da maneira mostrada anteriormente, da´-se o nome de Autoˆmato De-
termin´ıstico de Estados Finitos, ou Autoˆmato Finito Determin´ıstico (AFD). Esta categoria
de autoˆmatos e´ a mais usual para o estudo de SED. Pore´m, um autoˆmato pode ser na˜o-
determin´ıstico, que tambe´m tem sua importaˆncia no modelamento para SED. Esta caso sera´
estudado mais adiante.
3.1.2 Funcionamento do Autoˆmato
O autoˆmato funciona da seguinte maneira. Comec¸ando no estado inicial x0, e da ocorreˆncia de
um evento e, tal que e ∈ Γ(x0), e que Γ(x0) ⊆ E, sera´ executada uma transic¸a˜o do estado x0
para o estado f(x0, e) (onde f(x0, e) ∈ X). Este processo continua a partir deste novo estado,
na espera da ativac¸a˜o dos eventos habilitados neste novo estado.
Por convenieˆncia, a func¸a˜o f e´ definida recursivamente da seguinte maneira:
f(x, se) := f(f(x, s), e) para s ∈ E∗ e e ∈ E
Ou seja, as transic¸o˜es provocadas pela cadeia se pode ser calculada realizando-se a transic¸a˜o
f(x, s), e a partir desta transic¸a˜o, calcula-se a transic¸a˜o seguinte provocada por e. Sendo e
tambe´m uma cadeia, enta˜o aplica-se a regra anterior novamente para e.
Para precisa˜o te´cnica, define-se tambe´m a transic¸a˜o provocada pela cadeia vazia ǫ:
f(x, ε) := x
Utilizando-se ainda o exemplo da Figura 3.1 tem-se que:
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
f(z, aagb) = z
f(z, bn) = z para todo n ≥ 0
Esta evoluc¸a˜o de estados a partir do estado inicial e´ perfeitamente verifica´vel no autoˆmato da
Figura 3.1. Vale ressaltar aqui tambe´m que na˜o se esta´ interessado no instante de tempo em
que o evento ocorre, mas sim na transic¸a˜o de estado que este evento provoca no sistema. Neste
sentido, as transic¸o˜es de estado sera˜o consideradas instantaˆneas.
A evoluc¸a˜o do autoˆmato a partir da entrada de uma sequeˆncia de eventos ira´ determinar o
comportamento deste sistema. Assim como o instante de tempo, a causa do evento e´ irre-
levante neste momento, o qual pode ser uma entrada externa ao sistema, ou pode ser um
evento“espontaˆneo”gerado pelo sistema.
3.1.3 Linguagens Representadas pelo Autoˆmato
Aqui sera´ estudada a relac¸a˜o entre as linguagens (estudadas anteriormente) e autoˆmatos.
Partindo-se sempre do estado inicial x0, anota-se todos os poss´ıveis caminhos (sequeˆncia de
estados) que podem ser seguidos no autoˆmato, e a sequeˆncia de eventos que gera este caminho.
3.1. AUTOˆMATO DETERMINI´STICO 21
0 1
a
b
b
a
Figura 3.2: Autoˆmato que marca a linguagem Lm do Exemplo 3.1.
A concatenac¸a˜o dos eventos de cada sequeˆncia formam cadeias. Estas cadeias formam enta˜o
o conjunto chamado de linguagem gerada pelo autoˆmato G. Deste conjunto, anota-se todas
aquelas cadeias que fazem o caminho terminar em um estado marcado. Estas cadeias formam
a linguagem marcada pelo autoˆmato G.
Formalmente, a linguagem gerada L(G) por um autoˆmato G e´ definida como
L := {s ∈ E∗ : f(x0, s) e´ definida }
A linguagem marcada Lm(G) pelo autoˆmato G e´ definida como
Lm := {s ∈ L(G) : f(x0, s) ∈ Xm}
Enta˜o, uma cadeia s pertence a L(G) se, e somente se, ela corresponde a um caminho poss´ıvel
no diagrama de transic¸a˜o de estados do autoˆmato, comec¸ando pelo estado inicial x0. Isto e´
equivalente a dizer que a cadeia s pertence a L(G) se, e somente se, a func¸a˜o f e´ definida para
(x0, s).
Observa-se tambe´m que quando f e´ uma func¸a˜o total sobre seu domı´nio, enta˜o necessariamente
L(G) = E∗. Por definic¸a˜o verifica-se tambe´m que a linguagem L(G) e´ prefixo-fechada, pois um
caminho no autoˆmato e´ poss´ıvel somente se seu prefixo tambe´m o e´. Ou seja, formalmente:
L(G) = L(G)
A linguagem marcada Lm(G), e´ um subconjunto de L(G) e consiste somente das cadeias s para
as quais f(x0, s) ∈ Xm. Como todos os estados em X na˜o precisam estar marcados, Lm(G) na˜o
e´ necessariamente prefixo-fechada. A linguagem marcada e´ tambe´m conhecida como linguagem
reconhecida pelo autoˆmato. Neste caso e´ poss´ıvel dizer que o autoˆmato G e´ o reconhecedor de
uma dada linguagem.
Exemplo 3.1. Seja E = {a, b} o conjunto de eventos. Considere a linguagem
Lm = {a, aa, ba, aaa, aba, baa, bba, . . .}
Esta linguagem consiste de todas as cadeias de a’s e b’s sempre seguidas por um evento
”a”. O autoˆmato que marca esta linguagem e´ mostrado na Figura 3.2, que e´ definido como
G = {E,X, f,Γ, x0,Xm}, onde X = {0, 1}, x0 = 0, Xm = 1, e f e´ definida como segue:
f(0, a) = 1, f(0, b) = 0, f(1, a) = 1, f(1, b) = 0. A linguagem Lm pode ser facilmente verifi-
cada neste autoˆmato. Comec¸ando com o estado inicial 0, a u´nica maneira de alcanc¸ar o estado
marcado 1 e´ se ocorrer um evento a (quando f(0, a) = 1), pois se apenas o evento b ocorrer
quando no estado 0, na˜o havera´ a transic¸a˜o de estado. Neste ultimo caso, quando o evento b
ocorrer, necessita-se novamente de um evento a para que o estado marcado 1 seja novamente
atingido. Ou seja, qualquer cadeia deLm executada no autoˆmato da Figura 3.2, comec¸ando no
estado 0, terminara´ no estado marcado 1. Neste exemplo verifica-se tambe´m que a func¸a˜o f e´
completa. Assim, a linguagem gerada por este autoˆmato e´ o conjunto E∗. Ou seja, L = E∗.
3.2. AUTOˆMATO NA˜O-DETERMINI´STICO 22
0 1
a
b a
Figura 3.3: Autoˆmato que marca a linguagem Lm do Exemplo 3.2.
Exemplo 3.2. Seja agora o autoˆmato mostrado na Figura 3.3. Este autoˆmato e´ semelhante ao
anterior, com a diferenc¸a que a func¸a˜o f e´ parcial. Isto porque f(0, b) na˜o esta´ mais definida
neste autoˆmato. A linguagem L gerada L(G) por este autoˆmato e´ o composto pela cadeia
vazia ε, juntamente com: (i)as cadeias a de tamanho arbitra´rio; (ii) as cadeias anteriores
concatenadas com b; (iii)o fechamento-positivo aplicado ao conjunto anterior; (iv) as cadeias
do item anterior concatenadas com cadeias a de tamanho arbitra´rio. Formalmente pode-se
escrever:
L = {ε} ∪ {an | n ∈ N∗} ∪ {anb | n ∈ N∗}+ ∪ {anb | n ∈ N∗}+{a}
A linguagem Lm marcada Lm(G) corresponde ao subconjunto de L cujas cadeias terminam
sempre com o evento a. Formalmente:
Lm = {a
n | n ∈ N∗} ∪ {anb | n ∈ N∗}
Exemplo 3.3. Retomando-se o sistema de envase automatizado apresentado na Sec¸a˜o 2.4, as
linguagens que modelam o subsistema de enchimento podem ser representadas pelo autoˆmato
da Figura 3.4. Perceba que este autoˆmato gera as mesmas linguagens verificada para aquele
exemplo.
a1
b1
Figura 3.4: Autoˆmato de modelo do Subsistema de Enchimento do Exemplo 3.3.
Pelo que foi visto ate´ este ponto, e pelos exemplos anteriores, pode-se verificar que um autoˆmato
G e´ representado por duas linguagens: Lm(G) e L(G). O diagrama de transic¸a˜o de estados de
G conte´m toda a informac¸a˜o necessa´ria para caracterizar estas duas linguagens. Estas duas
linguagens, ou o autoˆmato, sa˜o suficientes para que um SED seja modelado.
Ao longo do estudo a ser visto neste documento, sera´ verificado que um SED real geralmente
possui a func¸a˜o f parcial. Isto se deve basicamente ao fato de que um sistema pode na˜o ser
capaz de produzir (ou executar) todas as cadeias de E∗.
3.2 Autoˆmato Na˜o-Determin´ıstico
No estudo de autoˆmatos ate´ o momento, considera-se a existeˆncia de apenas um estado inicial,
todas as transic¸o˜es sa˜o rotuladas com eventos e ∈ E, e que a func¸a˜o de transic¸a˜o seja deter-
min´ıstica, no sentido de que se e ∈ Γ(x) enta˜o e causa uma transic¸a˜o do estado x para um
u´nico estado y = f(x, e).
3.2. AUTOˆMATO NA˜O-DETERMINI´STICO 23
0 1
a
b
a
Figura 3.5: Autoˆmato Na˜o Determin´ıstico do Exemplo 3.4.
Pore´m, para fins de modelagem e analise, pode ser necessa´rio que estas considerac¸o˜es sejam
menos restritivas. Ou seja, em um Autoˆmato Finito Na˜o-Determin´ıstico (AFND) considera-se
que f(x, e) na˜o seja apenas um estado, mas um conjunto de poss´ıveis estados. Assim, e pode
causar a transic¸a˜o do estado x para um dos poss´ıveis estados representados por f(x, e). Pode-
se ainda considerar que o evento ε cause uma transic¸a˜o de estado. Este tipo de modelamento
pode representar a situac¸a˜o em que ocorra uma troca do estado interno do sistema por um
evento na˜o observa´vel, ou ainda por falta de informac¸o˜es do sistema para seu modelamento
completo. Por fim, tem-se ainda que um AFND possa ter na˜o apenas um estado considerado
inicial, mas que o estado inicial possa ser um de um conjunto de estados.
A raza˜o pela utilizac¸a˜o destas considerac¸o˜es menos restritivas pode ser motivada pela falta
de conhecimento do sistema para que enta˜o se fac¸a o modelo, ou em esta´gios iniciais do mo-
delamento, quando ainda na˜o se tem informac¸a˜o suficiente. Este pode tambe´m ser motivado
pela situac¸a˜o em que ocorram trocas de estados iniciadas por eventos na˜o observa´veis, como
ja´ mencionado anteriormente. De qualquer forma, uma AFND pode, por transformac¸a˜o, ser
representada por um Autoˆmato Finito Determin´ıstico (AFD), como sera´ visto adiante.
3.2.1 Definic¸a˜o
Formalmente um Autoˆmato Na˜o Determin´ıstico, denotado por Gnd, e´ definido pela seˆxtupla:
Gnd = (X,E ∪ {ε}, fnd,Γ, x0,Xm)
onde os componentes da equac¸a˜o acima sa˜o os mesmos ja´ definidos para o Autoˆmato Deter-
min´ıstico (sec¸a˜o 3.1.1), com excec¸a˜o de:
• fnd e´ a func¸a˜o de transic¸a˜o fnd : X×E∪{ε} → 2
X . Ou seja, fnd e´ a func¸a˜o que mapeia
a combinac¸a˜o de dois elementos (um estado e um evento, sendo o evento ε tambe´m
poss´ıvel) a um conjunto de poss´ıveis estados.
• O estado inicial pode, ele pro´prio, ser um conjunto de estados, ou seja, x0 ⊆ X.
3.2.2 Funcionamento do Autoˆmato Na˜o-Determin´ıstico
A fim de demonstrar o funcionamento de um autoˆmato na˜o determin´ıstico, sera˜o utilizados
dois exemplos.
Exemplo 3.4. Considere o AFND mostrado na Figura 3.5. Note que o evento a ocorre no
estado 0, e o estado seguinte pode ser o pro´prio estado ”0”, ou o estado ”1”. Assim, a func¸a˜o
de transic¸a˜o e´ definida como: fnd(0, a) = {0, 1}, e fnd(1, b) = {0}. As transic¸o˜es fnd(0, b) e
fnd(1, a) na˜o esta˜o definidas. Este autoˆmato marca qualquer cadeia de eventos a (a, aa, aaa,
. . . ), assim como qualquer cadeia de eventos ab se b for imediatamente seguido por a ou for o
fim da cadeia.
3.2. AUTOˆMATO NA˜O-DETERMINI´STICO 24
1 3
2
b a, b
a
ε
a
Figura 3.6: Autoˆmato Na˜o Determin´ıstico do Exemplo 3.5.
Exemplo 3.5. Considere agora o AFND mostrado na Figura 3.6. Tem-se que: fnd(1, b) = {2},
fnd(1, ε) = {3}, fnd(2, a) = {2, 3}, fnd(2, b) = {3}, e fnd(3, a) = {1}. Supondo que quando
o sistema seja iniciado ocorra uma evento a, o qual ocasiona a transic¸a˜o do estado 3 para o
estado 1. Isto so´ e´ poss´ıvel se apo´s a inicializac¸a˜o do sistema, ocorrer uma transic¸a˜o do estado
inicial 1 para o estado 3. Isto pode ser poss´ıvel haja visto o evento ε que permite a transic¸a˜o
do estado 1 para o estado 3 sem a ocorreˆncia de um evento espec´ıfico. Ale´m disto, o sistema
poderia voltar ao estado 3 apo´s o disparo de a. Conclui-se assim que o sistema possa estar em
um destes dois estados. Supondo agora que a cadeia baa seja executada. Neste caso o sistema
pode estar em qualquer um dos treˆs poss´ıveis estados, dependendo de qual a sera´ efetivamente
executado.
3.2.3 Linguagens Gerada e Marcada por um AFND
Para se obter as linguagens marcadas e geradas de um AFND, primeiramente e´ necessa´rio
achar-se o autoˆmato determin´ıstico equivalente ao AFND. Ou seja, acha-se o autoˆmato deter-
min´ıstico Gd equivalente ao autoˆmato na˜o-determin´ıstico Gnd, tal que:
L(Gd) = L(Gnd)
e que
Lm(Gd) = Lm(Gnd)
Onde: Gd = (Xd, E, fd, {x0},Xmd), e Gnd = (Xnd, E, fnd,X0,Xmnd)
A relac¸a˜o entre os componentes destas equac¸o˜es, que enta˜o especificam o autoˆmato deter-
min´ıstico equivalente, sa˜o definidas como:
• Xd = 2
Xnd
• x0 = X0
• Xmd = {xd ∈ Xd | xd ∩Xmnd 6= ∅}
• fd(xd, e) =
⋃
x∈xd
fnd(x, e)
Ou seja, apo´s a obtenc¸a˜o desta transformac¸a˜o, do autoˆmato na˜o-determin´ıstico Gnd para o
autoˆmato determin´ıstico Gd, pode-se obter as linguagens gerada e marcada de Gd, que sera˜o
tambe´m as linguagens geradas e marcadas do AFND equivalente.
Considere o Autoˆmato da Figura 3.5. Para este caso os componentes de Gnd sa˜o:
• Xnd = {0, 1}
3.3. PROPRIEDADE BLOQUEANTE 25
• E = {a, b}
• fnd(0, a) = {0, 1}; fnd(1, b) = 0; fnd(0, b) = fnd(1, a) = ∅
• X0 = {0}
• Xmnd = 0
A primeira identificac¸a˜o na transformac¸a˜o sa˜o os estados do autoˆmato determin´ıstico equiva-
lente:
Xd = 2
{0,1} = {∅, {0}, {1}, {0, 1}}
O estado inicial do autoˆmato equivalente e´ o pro´prio estado inicial do AFND:
x0 = X0 = {0}
O conjunto dos estados marcados do autoˆmato equivalente e´ dado por:
Xmd = {{0}, {0, 1}}
pois estes sa˜o os dois elementos de {xd ∈ Xd} que tem alguma intersecc¸a˜o com os elementos de
Xmnd. Para finalizar a especificac¸a˜o do autoˆmato equivalente, calculam-se astransic¸o˜es entre
os estados xd ∈ Xd. Calcula-se fd(xd, e) para cada um dos estados xd ∈ Xd:
• fd({0}, a) = fnd(0, a) = {0, 1}
• fd({0}, b) = fnd(0, b) = ∅
• fd({1}, a) = fnd(1, a) = ∅
• fd({1}, b) = fnd(1, b) = 0
• fd({0, 1}, a) = fnd(0, a) ∪ fnd(1, a) = {0, 1} ∪ ∅ = {0, 1}
• fd({0, 1}, b) = fnd(0, b) ∪ fnd(1, b) = ∅ ∪ {0} = {0}
• fd(∅, x) = ∅
A Figura 3.7 mostra o autoˆmato equivalente ao autoˆmato na˜o-determin´ıstico da Figura 3.5.
Os estados e transic¸o˜es ofuscadas sa˜o estados na˜o acess´ıveis e o estado vazio ∅. Ou seja, o
autoˆmato equivalente se resume ao autoˆmato desenhado na Figura 3.8.
3.3 Propriedade Bloqueante
Em geral, e baseado nas definic¸o˜es de G, L(G) e Lm(G), tem-se que
Lm(G) ⊆ Lm(G) ⊆ L(G)
Como ana´lise desta relac¸a˜o pode-se concluir que a primeira relac¸a˜o se deve ao fato de que Xm
pode ser um subconjunto pro´prio de X, enquanto que a segunda relac¸a˜o e´ uma consequeˆncia
direta da definic¸a˜o de Lm(G) e o fato de que L e´ prefixo-fechado por definic¸a˜o. Esta segunda
relac¸a˜o, Lm(G) ⊆ L(G) merece uma atenc¸a˜o maior, pois esta indicara´ se o autoˆmato em
questa˜o e´ bloqueante ou na˜o.
3.3. PROPRIEDADE BLOQUEANTE 26
{0}
{0, 1}
{1}
{∅}
a
b
b
b
a
a, b
a
Figura 3.7: Autoˆmato Finito Determin´ıstico equivalente ao AFND mostrado na Figura 3.5,
resultado da computac¸a˜o da equivaleˆncia.
{0} {0, 1}
a
b
a
Figura 3.8: Autoˆmato Finito Determin´ıstico equivalente ao AFND mostrado na Figura 3.5.
Deadlock
Um autoˆmato G pode alcanc¸ar um estado x onde Γ(x) = ∅ mas que x /∈ Xm. Se isto ocorrer
significa que neste estado x, na˜o ha´ nenhum evento habilitado para possibilitar a transic¸a˜o
deste estado a outro. Esta situac¸a˜o e´ chamado de deadlock pois nenhum outro evento pode
ser executado. Ale´m disto, este estado na˜o e´ marcado. Ou seja, isto significa que o autoˆmato
na˜o conseguiu finalizar a tarefa, pois como o autoˆmato esta´ bloqueado em x, na˜o tera´ como
alcanc¸ar um estado marcado. Se existir uma situac¸a˜o de deadlock no autoˆmato, significa que
necessariamente Lm(G) e´ um subconjunto pro´prio de L(G), ou Lm(G) ⊂ L(G). Isto se verifica
porque qualquer cadeia de L(G) que termine em algum estado na˜o marcado, e que esteja
bloqueado, na˜o pode ser um prefixo de uma cadeia pertencente a Lm(G).
Livelock
Outro aspecto importante a se considerar e´ a situac¸a˜o em que um conjunto de estados na˜o
marcados formam um componente fortemente conectado. Este conjunto apresenta a carac-
ter´ıstica de permitir a execuc¸a˜o de eventos que possibilitem transic¸o˜es entre os estados deste
conjunto, pore´m nenhum destes eventos leva a algum outro estado fora deste conjunto. Isto
significa que se o autoˆmato alcanc¸a este conjunto de estados, na˜o havera´ maneira de sair deste
conjunto, estando enta˜o o autoˆmato em uma situac¸a˜o chamada de livelock. Mesmo que o
autoˆmato na˜o esteja trancado em um estado, ele esta´ trancado em um conjunto de estados
onde nenhum destes e´ marcado. Ou seja, novamente a tarefa iniciada na˜o podera´ ser finalizada,
3.4. EXPRESSO˜ES REGULARES 27
0
1
2
3
4
5
a
b
g
g
a
b
a g
Figura 3.9: Autoˆmato com propriedade bloqueante analisado no Exemplo 3.6.
caracterizando-se assim tambe´m a condic¸a˜o de bloqueio.
3.3.1 Definic¸a˜o
Um autoˆmato G e´ dito bloqueante se
Lm(G) ⊂ L(G)
E o autoˆmato G e´ na˜o bloqueante se
Lm(G) = L(G)
Quando a caracter´ıstica bloqueante de um autoˆmato se verifica, este bloqueio pode ser do tipo
deadlock ou livelock. Sera´ visto mais adiante me´todos de ana´lise para identificac¸a˜o do tipo de
bloqueio para autoˆmatos bloqueantes.
Exemplo 3.6. Seja o autoˆmato G da Figura 3.9. Verifica-se claramente que o estado 5
caracteriza uma situac¸a˜o de deadlock. Isto porque se a cadeia ag (e neste caso todas as cadeias
que terminam com ag) for executada por G, nenhuma outro evento podera´ ser executado, pois
no estado 5 tem-se que f(5, σ) = ∅ | σ ∈ E. Ainda, verifica-se que Γ(5) = ∅. No autoˆmato
G percebe-se tambe´m que os estados 3 e 4, juntamente com os eventos a, b, g, formam um
componente fortemente conectado. Qualquer cadeia que termine com aa alcanc¸ara´ o estado 3,
e nesta situac¸a˜o G estara´ em livelock. Isto porque nenhum evento possibilita uma transic¸a˜o a
um estado que na˜o seja 3 ou 4, sendo nenhum destes um estado marcado. Formalmente pode-se
dizer que o autoˆmato G e´ bloqueante pois: ambas as cadeias ag e aa (e todas as que terminam
com estas cadeias) pertencem a L(G), mas nenhuma destas cadeias pertence a Lm(G). Ou
seja, isto implica em L(G) 6= Lm(G).
3.4 Expresso˜es Regulares
Como mencionado, autoˆmatos e´ uma das melhores formas de representar as linguagens descriti-
vas do comportamento de um Sistema a Eventos Discretos (SED). Assim, para o modelamento
de um SED procura-se um autoˆmato para gerar a linguagem que descreve todos poss´ıveis com-
portamentos do sistema, assim como a linguagem marcada. Pode-se afirmar (na˜o sera´ provado
aqui) que sempre e´ poss´ıvel achar um autoˆmato que represente uma linguagem, pore´m, para
alguns casos isto pode significar problemas pra´ticos para o desenho do autoˆmato. Isto porque
3.4. EXPRESSO˜ES REGULARES 28
0 1 2 3 4 5
11 31 42 52
41 51
a a a a a
b b
b
b
b
b
. . .
. . .
. . .
. . .
Figura 3.10: Autoˆmato gerador da linguagem Lm = {a
nbn : n ≥ 0}.
algumas linguagens so´ podem ser representadas por um autoˆmato com um nu´mero infinito de
estados.
Seja a linguagem marcada gerada sobre um conjunto E = {a, b} de eventos:
Lm = {a
nbn : n ≥ 0}.
Esta linguagem na˜o pode ser representada por um autoˆmato de estados finito. Um autoˆmato
que geraria esta linguagem e´ mostrado na Figura 3.10.
Definic¸a˜o 3.1. Toda a linguagem que pode ser representada por um autoˆmato de estados finito
e´ dita Linguagem Regular.
Ou seja, autoˆmatos na˜o sa˜o uma maneira pra´tica para representar um linguagens do tipo na˜o-
regular. Seja L1 e L2 duas linguagens regulares. Enta˜o as linguagens a seguir tambe´m sa˜o
linguagens regulares:
1. L1
2. L∗1
3. Lc1 := E
∗ \ L1
4. L1 ∪ L2
5. L1L2
6. L1 ∩ L2
As linguagens regulares sa˜o escritas a partir de expresso˜es regulares, que sa˜o expresso˜es ba´sicas
realizadas sobre conjuntos. Para compactac¸a˜o da notac¸a˜o, as expresso˜es regulares ba´sicas sa˜o
definidas como mostrado na Tabela 3.1.
De maneira recursiva, pode-se definir as seguintes regras:
1. Sa˜o expresso˜es regulares:
a) ∅ que denota um conjunto vazio;
3.5. OPERAC¸O˜ES UNA´RIAS 29
Notac¸a˜o utilizada Significado Descric¸a˜o
+ ∪ A unia˜o de duas cadeias.
u {u} Conjunto da cadeia u.
u∗ {u}∗ = {ε, u, uu, . . .} Fechamento-kleene de u.
(u+ v) {u, v} = {u} ∪ {v} Unia˜o das cadeias u e v.
uv {uv} Concatenac¸a˜o de u e v.
Tabela 3.1: Convenc¸o˜es adotadas para escrita das expresso˜es regulares
b) ε que denota o conjunto ε
c) e que denota o conjunto {e}, para qualquer e ∈ E;
2. Se r e s sa˜o expresso˜es regulares, enta˜o rs, (r + s), r∗, s∗, tambe´m sa˜o;
3. Outras expresso˜es regulares sa˜o formadas pela aplicac¸a˜o das regras 1 e 2 um nu´mero
finito de vezes.
A ordem de precedeˆncia para aplicac¸a˜o destas operac¸o˜es sa˜o:
1. Fechamento Kleene;
2. Concatenac¸a˜o;
3. Unia˜o.
Exemplo 3.7. Seja um conjunto de eventos E = {a, b, g}, a linguagem regular denotada pela
expressa˜o regular (a+ b)g∗ pode ser calculada como:
L = (a+ b)g∗
= {a, b}{g}∗
= {a, b}{ε, g, gg, ggg, . . .}
= {a, b, ag, bg, aag, bbg, aggg, bggg, . . .}
Exemplo 3.8. Seja um conjunto de eventos E = {a, b, g}, a linguagem regular denotada pela
expressa˜o regular (ab)∗ + g pode ser calculada como:
L = (ab)∗ + g
= {ε, ab, abab, ababab, . . .} ∪ {g}
= {ε, g, ab, abab, ababab, . . .}
3.5 Operac¸o˜es Una´rias
Operac¸o˜es una´rias sa˜o operac¸o˜es definidaspara autoˆmatos que podem alterar o conjunto dos
estados deste autoˆmato, mas na˜o altera o conjunto de eventos E.
3.5.1 Acess´ıvel
Em um autoˆmato gene´rico G pode existir a situac¸a˜o em que um ou mais estados na˜o sejam
alcanc¸a´veis, ou acess´ıveis, a partir do estado inicial x0. Enta˜o se x e´ na˜o acess´ıvel, isto equivale
3.5. OPERAC¸O˜ES UNA´RIAS 30
a dizer que na˜o existe uma cadeia s ∈ L(G) que fac¸a com que f(x0, s) = x | x ∈ X. Se
estes estados na˜o acess´ıveis forem retirados do autoˆmato, a linguagem gerada e a linguagem
marcada permanecera˜o inalteradas. Define-se enta˜o a operac¸a˜o Ac(G) como a operac¸a˜o que
retira do autoˆmato G todos os estados inacess´ıveis, assim como todas as transic¸o˜es ligadas a
estes estados.
Formalmente esta operac¸a˜o e´ definida como
Gac = Ac(G) := (Xac, E, fac, x0,Xac,m) onde
Xac = {x ∈ X : (∃s ∈ E
∗)[f(x0, s) = x]}
Xac,m = Xm ∩Xac
fac = f |Xac×E→Xac
Fazendo-se a interpretac¸a˜o desta definic¸a˜o tem-se que:
Gac e´ o novo autoˆmato com todos os estados acess´ıveis;
Xac todo o estado x que pertence a X, e que para este estado existe uma cadeia s que permite
alcanc¸a-lo a partir de x0 (f(x0, s) = x), faz pate deste conjunto.
Xac,m a intersecc¸a˜o dos estados acess´ıveis com os estados marcados do autoˆmato G resulta
no conjunto dos estados marcados e acess´ıveis;
fac e´ a func¸a˜o de transic¸a˜o definida agora sobre um domı´nio possivelmente reduzido: Xac×E.
3.5.2 Coacess´ıvel
Em um autoˆmato gene´rico G pode existir a situac¸a˜o em que na˜o haja um caminho no diagrama
de estados deste estado x para nenhum dos estados marcados. A este estado x da´-se o nome
de estado na˜o co-acess´ıvel. Aplicar a operac¸a˜o CoAc(G) significa retirar todos os estados que
na˜o sa˜o co-acess´ıveis, e todas as transic¸o˜es ligadas a estes estados. O resultado desta operac¸a˜o
e´ um autoˆmato cujos estados sa˜o todos co-acess´ıveis.
Formalmente esta operac¸a˜o e´ definida como
Gcoac = CoAc(G) := (Xcoac, E, fcoac, x0,coac,Xm) onde
Xcoac = {x ∈ X : (∃s ∈ E
∗)[f(x, s) ∈ Xm]}
x0,coac =
{
x0 se x0 ∈ Xcoac
indefinido outros casos
fcoac = f |Xcoac×E→Xcoac
Fazendo-se a interpretac¸a˜o desta definic¸a˜o tem-se que:
Gcoac e´ o novo autoˆmato com todos os estados co-acess´ıveis;
Xcoac todo o estado x que pertence aX, e que para este estado existe uma cadeia s que permite
a partir dele alcanc¸ar algum estado marcado f(x, s) ∈ Xm, faz pate deste conjunto.
x0,coac se o estado inicial x0 for co-acess´ıvel, (x0 ∈ Xcoac), enta˜o x0 continua sendo o estado
inicial no autoˆmato co-acess´ıvel Gcoac. Caso contra´rio, x0 sera´ retirado do autoˆmato, e
Gcoac tera´ um estado inicial indefinido.
3.6. MINIMIZAC¸A˜O DO ESPAC¸O DE ESTADOS 31
fac e´ a func¸a˜o de transic¸a˜o definida agora sobre um domı´nio possivelmente reduzidoXcoac×E.
A operac¸a˜o CoAc(G) pode diminuir em tamanho a linguagem L(G), pois aqueles estados na˜o
co-acess´ıveis retirados pela operac¸a˜o CoAc(.) podem ser acess´ıveis. Entretanto, a operac¸a˜o
CoAc(.) na˜o afeta a linguagem Lm(G), pois o estado deletado (e portanto na˜o co-acess´ıvel)
na˜o pode estar em nenhum caminho do estado x0 para algum estado de Xm.
Quando G = CoAc(G) enta˜o G e´ dito com sendo um autoˆmato co-acess´ıvel, e neste caso,
L(G) = Lm(G). Esta observac¸a˜o significa que a co-acessibilidade e´ fortemente relacionada
com o conceito de autoˆmato bloqueante. Ou seja, se um autoˆmato for co-acess´ıvel, ele necessa-
riamente sera´ na˜o bloqueante.
3.5.3 Trim
Um autoˆmato e´ definido como trim quando este autoˆmato for tanto acess´ıvel quanto co-
acess´ıvel. Ou seja, o autoˆmato que sofrer as operac¸o˜es de CoAc(.) e Ac(.) (independentemente
da ordem em que estas operac¸o˜es sejam aplicadas) sera´ um autoˆmato trim. Formalmente a
operac¸a˜o Trim e´ definida como
Trim(G) := CoAc[Ac(G)] = Ac[CoAc(G)]
Exemplo 3.9. Seja o autoˆmato G da Figura 3.11a. Aplicar a operac¸a˜o CoAc(G) significa pri-
meiramente verificar se existe um ou mais estados que, a partir destes estados, na˜o seja poss´ıvel
se alcanc¸ar o estado marcado 2. Isto e´ verificado para os estados 3, 4 e 5. Assim, apo´s aplicar-
se a operac¸a˜o CoAc(G) tem-se o autoˆmato Gcoac, mostrado na Figura 3.11b. O autoˆmato Gcoac
e´ co-acess´ıvel, pore´m na˜o acess´ıvel, pois o estado 6 na˜o e´ alcanc¸a´vel por nenhum caminho a
partir de x0. Enta˜o, aplicando-se Ac(Gcoac), o estado 6 sera´ retirado, e o autoˆmato resultante
sera´ um autoˆmato trim. Ou seja, Gtrim = Ac(GCoAc) = Ac(CoAc(G)) = CoAc(Ac(G)). Esta
u´ltima igualdade e´ valida pois a ordem em que as operac¸o˜es Ac(.) e CoAc(.) sa˜o aplicadas,
na˜o altera o resultado, que sera´ o mesmo autoˆmato trim. A Figura 3.11c mostra o autoˆmato
Gtrim.
3.6 Minimizac¸a˜o do Espac¸o de Estados
Como visto na composic¸a˜o de autoˆmatos, o nu´mero de estados pode crescer muito rapidamente.
Em SED se esta´ interessado em obter os autoˆmatos com o menor nu´mero de estados poss´ıveis,
para que a analise dos modelos por autoˆmatos requeira menos recursos computacionais.
Toda linguagem regular e a linguagem marcada podem ser geradas por mais de um autoˆmato.
Diz-se que dois autoˆmatos G1 e G2 sa˜o equivalentes se, e somente se:
L(G1) = L(G2) e Lm(G1) = Lm(G2)
Existe pore´m um autoˆmato GCcan que tambe´m gera a linguagem L e Lm, cujo tamanho do
conjunto de estados Xcan (|Xcan|) e´ mı´nimo. Este autoˆmato Gcan recebe o nome de gerador
canoˆnico das linguagens modelo do SED.
3.6. MINIMIZAC¸A˜O DO ESPAC¸O DE ESTADOS 32
0
1
2
3
4
5
6
a
b
g
g
a
a
b
b
a g
(a)
0
1
2 6
a
b
g
b
(b)
0
1
2
a
b
g
(c)
Figura 3.11: (a) Autoˆmato G do Exemplo 3.9. (b) CoAc(G). (c) Trim(G).
3.6.1 Equivaleˆncia de Estados
A minimizac¸a˜o de estados de um autoˆmato G se da´ pela procura de equivaleˆncia dos estados
em X. Para dois estados x e y, pertencentes a X, algumas observac¸o˜es podem ser feitas:
1. Se x ∈ Xm e y /∈ Xm, enta˜o os estados x e y nunca podera˜o ser equivalentes;
2. Suponha que x e y sejam ambos de Xm ou nenhum dos dois esteja em Xm. Neste caso
x e y podem ser equivalentes. Se f(x, e) = f(y, e) para qualquer evento e ∈ E ∪ {ε},
enta˜o x e y sa˜o equivalentes, pois ambos ira˜o para a mesma sequencia de estados para
qualquer cadeia aplicados a eles;
3. A observac¸a˜o anterior ainda vale se f(x, e) = y e f(y, e) = x para um ou mais eventos
e, pois a func¸a˜o dos estados x e y sa˜o intercambia´veis depois de e. Logicamente, para
todos os outros eventos e a seguinte relac¸a˜o deve ser va´lida: f(x, e) = f(y, e);
4. De modo geral, seja R o conjunto de estados tal que: ou R ⊆ Xm ou R ∩ Xm = ∅.
Enta˜o R consiste de estados equivalentes se f(x, e) = z /∈ R implicar em f(y, e) = z,
para qualquer x, y ∈ R. Ou seja, se todas as poss´ıveis transic¸o˜es dos estados em R para
estados fora de R devem ser causadas pelo mesmo conjunto de eventos, e devem ter o
mesmo pro´ximo estado.
Com base nestas observac¸o˜es pode ser definido um procedimento para que se identifiquem as
equivaleˆncia de estados de maneira sistema´tica. Para tal existe um Algoritmo de determinac¸a˜o
das equivaleˆncia entre os estados, e que sera´ definido na sequencia.
3.6. MINIMIZAC¸A˜O DO ESPAC¸O DE ESTADOS 33
q1
q2
qn-1
...... ... ...
qn
...
...
...q0 q1 qn-2 qn-1
Figura 3.12: Tabela para aplicac¸a˜o do Algoritmo 1
3.6.2 Algoritmo para Minimizac¸a˜o de Estados
O algoritmo aqui descrito baseia-se na identificac¸a˜o de equivaleˆncia de estados aos pares.
Sempre que um par na˜o pode ser equivalente ele e´ exclu´ıdo. Inicia-se com a exclusa˜o de todos
os pares em que sa˜o formados por um elemento do conjunto X e um elemento formado pelo
conjunto Xm. Isto e´ feito devido a` primeira observac¸a˜o descrita na sec¸a˜o 3.6.1. A todos
os outros pares na˜o marcados no in´ıcio sa˜o verificadas as existeˆncias

Outros materiais