TSED Linguagens e Automatos
TSED Linguagens e Automatos
- Introduction to Automata Theory, Language, and Computation. J. Hopcroft, R. Motwani, J. Ullman, Ed. Addison Wesley, 2a edição, 2001
Introduction to Discrete Event Systems. C. Cassandras and S. Lafortune. Springer, 2008, New York, 2nd edition
Linguagens e Autômatos
Prof. Patrícia N. Pena
LACSED - Lab. de Análise e Controle de Sistemas a Eventos Discretos
Introdução
Este material é uma versão estendida dos slides utilizados para gravar as videoaulas. É um documento para
referência, um material em construção. Alguns exemplos foram removidos dos slides para serem resolvidos “ao
vivo” nos vídeos, por questões didáticas. Mantive as soluções no documento, para facilitar o entendimento.
Favor enviarem mensagem com quaisquer erros que encontrem <[email protected]>.
1 Principais Conceitos
Alfabeto
Cadeia
- A cadeia ǫ (lê-se epsilon) é a cadeia vazia, ou a cadeia com zero ocorrências de símbolos;
- |s| ou comprimento da cadeia: número de posições para símbolos na cadeia;
- Cadeia pode ser chamada também de palavra, traço.
1
Exemplo 2. Exemplos de cadeias:
• Do alfabeto Σ = {0, 1}:
– 0, 010, 010010, ǫ
• Do alfabeto Σ = {a, b, . . . y, z}:
– aab, aabd, carro, ǫ
Prefixo e Sufixo
Definição 3 (Prefixo de uma cadeia). Uma cadeia t é prefixo de s se existe u tal que s = tu.
Notação 1 (Prefixo). Usa ≤ para denotar prefixo. Ex: ǫ ≤ carro, c ≤ carro, . . . carr ≤ carro, carro ≤
carro
Potências de um Alfabeto
2
Fechamento Kleene
Definição 5 (Fechamento de Kleene). O conjunto de todas as cadeias possíveis de serem formadas com
símbolos de um alfabeto é denotado, convencionalmente, por:
Σ∗ = Σ0 ∪ Σ1 ∪ Σ2 ∪ Σ3 ∪ . . .
• Σ∗ = {ǫ} ∪ {0, 1} ∪ {00, 10, 01, 11} ∪ {000, 001, 010, 100,
• Σ∗ = {ǫ, 0, 1, 00, 01, 10, 11, 000, 001, 010, 100, 011, 101, . . . }
Relembrando...
Alfabeto Conjuntos de cadeias definidas sobre o alfabeto Σ
Σ Σ0
ǫ
β
α ααα Σ∗
α
αβα
ǫ ααβ
β
Σ1 βαα
αββ ββα
α
αα βαβ
β αβ βββ
símbolos βα ββ
Σ5
Σ2
Σ6
ββ Σ4
βα
αα αβ
Σ7 . . . Σ∞
Σ3
ααβ
βαα αβα cadeias
ββα
βαβ αββ
ααα βββ
• Σ1 6= Σ:
Σ = {α, β} α e β são símbolos do alfabeto;
Σ1 = {α, β} α e β são cadeias de comprimento 1 sobre o alfabeto Σ;
3
Convenção
Convenção usam-se letras do início do alfabeto (a, b, c) para denotar símbolos e letras do final do alfabeto
para denotar cadeias (w, x, y e z).
Apesar da convenção, o que define se um elemento é um símbolo ou uma cadeia é o conjunto ao qual ele
pertence.
• a ∈ Σ → a é símbolo pois Σ é um conjunto de símbolos;
• a ∈ Σ∗ → a é cadeia pois Σ∗ é um conjunto de cadeias.
Concatenação
Σ+ às vezes se deseja retirar o elemento ǫ do conjunto de cadeias.
Σ+ = Σ1 ∪ Σ2 ∪ Σ3 ∪ . . . e
Σ∗ = Σ+ ∪ {ǫ}
ǫ (lê-se épsilon) é a cadeia vazia, cadeia de comprimento zero. O ǫ concatenado com qualquer cadeia dá
a própria cadeia. Ex: αβǫ = αβ = ǫαβ.
4
2 Linguagens
Linguagens
• A linguagem sobre um alfabeto não precisa necessariamente incluir cadeias com todos os símbolos de
Σ;
• Uma linguagem L sobre Σ = {α, β} é também uma linguagem sobre Σ = {α, β, γ}.
• Os alfabetos são finitos. As linguagens podem ser infinitas, ou seja, ter um número infinito de cadeias.
Para visualizar...
Σ∗
L2 α αβα
ǫ
L4 αα
ααα ααβ
β
αβ αββ
L3 βαα ββα
βα L1 ββ βαβ βββ
Σ4 . . . Σ∞
• Σ∗ : conjuntos de todas as cadeias que podem ser formadas a partir do alfabeto Σ, é um conjunto infinito;
• L2 = {α, αα, ααα} ⊂ Σ∗ , exemplo em que não há ocorrência de todos os símbolos do alfabeto;
5
• L3 = {βαα, ββα, βαβ, βββ} ⊂ Σ∗ , composta de todas as cadeias de comprimento 3 que começam com
β;
Relembrando...
Notação 2. Uso de ∈, ⊆, ⊂, ⊇, ⊃
Linguagens são conjuntos de cadeias, então quando se pretende relacionar linguagens entre si, utilizam-se
⊆, ⊂, ⊇, ⊃. Usado também para caracterizar subalfabetos de um alfabeto.
Exemplo 14. Seja Σ = {α, β}.
• β ∈ Σ: símbolo β pertence ao alfabeto Σ.
• α ∈ L2 : cadeia α pertence à linguagem L2 ⊆ Σ∗ .
Linguagens
É comum definir a linguagem usando a seguinte notação:
Leia-se a linguagem L é composta do conjunto de cadeias w tal que o que está à direita do símbolo | se
verifica.
6
Linguagens
• Pode-se também substituir w por alguma expressão com parâmetros para descrever a linguagem em
termos deste parâmetro.
Bomba
Esteira
2. Descreve as cadeias que são executadas neste sistema. Para tanto, assume-se um estado inicial, tipica-
mente o equipamento está desligado.
– As cadeias são sempre executadas a partir da condição inicial, no caso equipamento desligado.
– ǫ −→ nada acontece e a bomba e a esteira permanecem desligadas;
– αb , αe −→ o respectivo equipamento é ligado.
– αb βb , αe βe −→ o respectivo equipamento é ligado e desligado.
– αb βb αb , αe βe αe −→ o respectivo equipamento é ligado, desligado e religado.
– αb βb αb βb , αe βe αe βe −→ o equipamento é ligado, desligado, religado e desligado.
3. Define a linguagem composta de todas as cadeias que o sistema executa, também chamada de compor-
tamento gerado, L.
– Lbomba = {ǫ, αb , αb βb , αb βb αb , αb βb αb βb , . . . }
– Lesteira = {ǫ, αe , αe βe , αe βe αe , αe βe αe βe , . . . }
7
4. Determina um subconjunto das cadeias de L que completam tarefas, também chamada de comporta-
mento marcado, Lm .
– Faz sentido considerar que uma tarefa está completa se ao final da execução da cadeia o equipa-
mento está desligado.
– Lbomba
m = {ǫ, αb βb , αb βb αb βb , . . . }
– Lesteira
m = {ǫ, αe βe , αe βe αe βe , . . . }
O comportamento sequencial de um sistema a eventos discretos (SED) pode ser descrito por meio de um
par de linguagens (L e Lm ) sobre o conjunto de eventos Σ, onde:
8
4 Operações sobre linguagens
Operações sobre Linguagens
A∗ = {ǫ} ∪ A ∪ AA ∪ AAA ∪ . . .
- Prefixo-fechamento: A = {s ∈ Σ∗ |∃t ∈ Σ∗ , st ∈ A}
Exemplo 16. União, com A = {0, 01} e B = {2, 23} e Σ = {0, 1, 2, 3}:
- A ∪ B = A + B = {0, 01, 2, 23}.
Exemplo 17. Concatenação, com A = {0, 01} e B = {2, 23} e Σ = {0, 1, 2, 3}:
- AB = {02, 023, 012, 0123}.
9
abdacbǫ ∈ AB
ǫ, a, b, aa ∈ Σ∗ , com Σ = {a, b, c, d}
AB = {s ∈ Σ∗ | ∃t ∈ Σ∗ , st ∈ AB}
- A3 =A2 A, A2 = A1 A, A1 = A0 A
5 Expressões Regulares
Expressões Regulares
Exemplo 21. Sistemas para busca: usam notação de expressões regulares para descrever padrões que o
usuário quer encontrar no arquivo.
Expressões Regulares
Se u, v são cadeias de eventos:
- u = {u}
- uv = {uv}
3. Toda expressão regular é obtida pela aplicação das regras 1 e 2 um número finito de vezes.
10
Expressões Regulares
Exemplo 22. Seja Σ = {α, β}. Considere que ǫ = {ǫ}, α = {α}, β = {β} são linguagens compostas de
uma cadeia de comprimento 1.
– L0 = {ǫ}
– L1 = L0 L = {ǫ}{αβ} = {αβ} (concatenação)
– L2 = L1 L = {αβ}{αβ} = {αβαβ} (concatenação)
– L3 = L2 L = {αβαβ}{αβ} = {αβαβαβ} (concatenação)
– L∗ = L0 ∪ L1 ∪ L2 ∪ L3 ∪ · · · ∪ L∞ (união)
Expressões Regulares
11
- L = (α + β), calcule L∗ .
∞
L∗ = ∪ Ln = L0 ∪ L1 ∪ L2 ∪ . . . (1)
n=0
L0 = ǫ
L1 = L0 L = ǫ(α + β) = (α + β)
L2 = L1 L = (α + β)(α + β) = (αα + αβ + βα + ββ)
L3 = L2 L = (αα + αβ + βα + ββ)(α + β)
= (ααα + ααβ + αβα + αββ + βαα + βαβ + ββα +
βββ) (2)
.. ..
. = .
- γ(α+β)∗ = {γ, γα, γβ, γαα, γαβ, γβα, γββ, γααα, γααβ, γαβα, γαββ, γβαα, γβαβ, γββα, γβββ, . . . }
Expressões Regulares
É importante ser capaz de interpretar uma linguagem dada sua expressão regular.
Exemplo 24. L = (αβ)∗ → Linguagem formada do conjunto de cadeias que alternam α e β, começando
com α e incluindo a cadeia vazia.
É importante ser capaz de escrever a expressão regular a partir de uma linguagem descrita de outra
forma.
Exemplo 25. L = {w ∈ Σ∗ | cadeias de comprimento 3 começando com β} → L = βαα + βαβ + ββα + βββ.
Expressões Regulares
1. Fechamento Kleene
2. Concatenação
3. União
Exemplo 26.
α + βγ ∗ = (α + (β(γ)∗ ))
(αγ)∗ + βγ ∗ = (αγ)∗ + (β(γ)∗ )
12
Exercício 1. Seja Σ = {α, β} onde α corresponde ao acesso de uma tarefa a um recurso e β corresponde
ao acesso de outra tarefa ao mesmo recurso. Interprete:
1. A = (αβ)∗
2. B = (α + β)∗
3. C = (αβ)∗ + (βα)∗
Linguagem Regular
Definição 11 (Linguagem Regular). Qualquer linguagem que possa ser descrita como uma expressão regular
é uma linguagem regular.
A única exigência aqui é que tenha comprimento maior ou igual a 2. Sendo assim, a expressão regular
deve conter todas as cadeias possíveis de serem formadas que tenham pelo menos 2 símbolos. Algumas
opções:
L1 = (0 + 1)∗ (0 + 1)(0 + 1)
L1 = (0 + 1)∗ (00 + 01 + 10 + 11)
A linguagem é regular pois pode ser descrita por uma expressão regular.
• L2 é definida sobre Σ = {a, b}, tal que toda cadeia de L2 contém pelo menos um par de as consecutivos.
Não há qualquer tipo de restrição em relação à posição do par de as. A expressão deve poder gerar
o par de as no início, no meio ou no final da cadeia. Não há restrição quanto à existência de outros
pares de as.
L2 = (a + b)∗ aa(a + b)∗
• Descreva em palavras L3 = (a + b)∗ ab(a + b)∗ Conjunto de cadeias que possuem pelo menos um ab.
13
Definição 12 (Projeção Natural). Sejam Σ e Σi conjuntos de eventos, com Σi ⊆ Σ. Pi : Σ∗ → Σ∗i é a
projeção natural de Σ∗ para Σ∗i , e é definida recursivamente por:
Pi (ǫ) = ǫ
ǫ se σ ∈
/ Σi
Pi (σ) =
σ se σ ∈ Σi
Pi (sσ) = Pi (s)Pi (σ) with s ∈ Σ∗ , σ ∈ Σ.
Em palavras, a projeção natural apaga os eventos de uma cadeia que não pertencem a Σi .
- P1 (βαβγγ) = αγγ
Exemplo 28. Seja Σ = {α, β, γ} e Σ1 = {α, γ}, P1 : Σ∗ → Σ∗1 e L = αβ ∗ +ββγ ∗ , então P1 (L) = αǫ+ǫǫγ ∗ =
α + γ∗.
- P1−1 (αγ + α) = β ∗ αβ ∗ γβ ∗ + β ∗ αβ ∗
14
6 Autômatos de Estados Finitos
Autômatos de Estados Finitos Determinísticos
• É mais fácil expressar uma expressão regular em termos de um AFN (Autômato Finito Não-determinístico).
- q0 ∈ Q é o estado inicial
- Q = {x, y, z}
- Σ = {α, β, γ}
- δ(x, α) = x, δ(x, β) = δ(x, γ) = z,
- q0 = x,
- F = {x, z}.
O autômato A possui três estados, seu conjunto de eventos possui três elementos, o estado inicial é x e os
estados finais são {x, z}.
15
δ α β γ
→ ⋆x x z z
y x y y
⋆z y z y
O autômato pode ser representado por meio da tabela de transição ou pelo diagrama de transição.
• Tabela de Transição: A tabela de transição apresenta a funçao δ. A partir de dois argumentos (estado
de origem e evento) retorna o estado destino.
Definição 16. Diagramas de Transição de Estados são grafos direcionados onde os nós representam os
estados e os ramos representam os eventos.
α β, γ
x α y
β, γ α, γ
z
β
- δ(q, ǫ) = q
16
Exemplo 32. Seja q = x e sσ = γαβ:
Tipicamente, não faz sentido forçar que δ(q, σ) esteja definida para todo q ∈ Q e σ ∈ Σ. Assim, passa-se
a falar de um gerador que possui duas linguagens, a gerada e a marcada.
• Gerador
• Função de eventos factíveis: ΣA (q) = {σ : σ ∈ Σ e δ(q, σ)!}.
A notação δ(q, σ)! significa que o evento σ ∈ Σ está definido no estado q.
17
Definição 19. A linguagem marcada por um gerador A = (Q, Σ, δ, qo , F ) é dada por Lm (A) = {s ∈
Σ∗ |δ(q0 , s) ∈ F }.
A linguagem marcada corresponde à linguagem reconhecida pelo gerador, ou seja, o conjunto de cadeias
s que levam do estado inicial q0 para um dos estados finais.
Definição 20. A linguagem gerada por um gerador A = (Q, Σ, δ, qo , F ) é dada por L(A) = {s ∈ Σ∗ |δ(q0 , s)!}.
Linguagens de um AFD
Exemplo 33. Seja Σ = {α, β} um alfabeto e (αβ)∗ α uma linguagem regular. Esta linguagem é gerada pelo
autômato A = (Q, Σ, δ, q0 , F ) onde Σ = {α, β}, Q = {0, 1}, q0 = 0 e F = {1}. A função de transição é dada
por: δ(0, α) = 1 δ(1, β) = 0
α
0 1
β
- L(A) = (αβ)∗ (ǫ + α)
- Lm (A) = (αβ)∗ α
Linguagens de um AFD
Exercício 6. Seja Σ = {α, β}. Qual a linguagem reconhecida pelo seguinte AFD?
β α, β
α β
0 1 2
Definição 21. Se L é regular, existe um autômato G com um número finito de estados tal que Lm (G) = L.
Se G tem um número finito de estados, então Lm (G) é regular.
18
Autômatos de Estados Finitos Não-Determinísticos
- Σ é o conjunto de eventos
- q0 ∈ Q é o estado inicial
A diferença na definição do AFN está na função de transição que retorna, no caso de AFN, um conjunto
de estados.
α β
0 1 2
Linguagem de um AFN
δ(q0 , s) ∩ F 6= ∅.
Em palavras, Lm (A) é o conjunto de cadeias de Σ∗ tal que δ(q0 , s) contém pelo menos um estado
pertencente a F .
19
Linguagem de um AFN
α β
0 1 2
L(A) =(α + β)∗ (ǫ + α + αβ).
Lm (A) =(α + β)∗ αβ.
Linguagem de um AFN
É muitas vezes mais fácil construir um autômato de estados finitos não-determinístico que reconhece uma
linguagem que seu correspondente determinístico.
Em geral, o AFD tem aproximadamente o mesmo número de estados que o AFN, mas mais transições.
No pior caso, o menor AFD que reconhece uma linguagem tem 2n estados enquanto o menor AFN que
reconhece a mesma linguagem tem apenas n estados.
δD (S, a) = ∪ δN (p, a)
p∈S
20
Observação 1 Um conjunto QN de n elementos vai gerar um conjunto QD de 2n elementos. Nem todos
estes estados são acessíveis a partir do estado q0 então vários dos estados de QD poderão ser eliminados.
Observação 3 Para computar δD (S, a) olham-se os estados p componentes de S, e faz-se a união de todos
os estados para os quais os estados p movem com a ocorrência do símbolo a.
- Σ = {α, β};
α - δN tal que
α δN (0, α) = {0, 1}
0 1 δN (0, β) = ∅
δN (1, α) = ∅
β δN (1, β) = {0}
- q0 = 0
- FN = {0}
O conjunto de estados finais F D é formado dos estados de QD que tenham interseção não vazia com F N ,
ou seja,
F D = {0}, {0, 1} .
Exercício 10. Obtenha um AFD que reconhece a mesma linguagem que o AFN abaixo.
21
α, β
0 α 1 2
a) β
α β
0 α 1 2
b) β
3. Determiniza.
γ γ
A A
α β γ α ε γ
0 1 2 3 0 1 2 3
P1 (A)
γ
Lm (A) = αγ ∗ βγ
α γ
P1 (Lm (A)) = αγ ∗ γ 0 1, 2 3
22
- O procedimento de determinização é, no pior caso, de complexidade exponencial.
Exemplo 36. Seja o gerador A, Σ = {α, β, γ}, Σ1 = {α, γ} e P1 : Σ∗ → Σ∗1 , A′ = P1 (A), sendo A′ um
γ
A
α γ δ A′ α γ
0 1 2
→ {0} {1} ∅
AFD:
γ {1} ∅ {1, 2}
A′ = P1 (A)
⋆{1, 2} ∅ {1, 2}
α γ
0 1 2
Procedimento:
Observação 2 Não recupera a linguagem antes da projeção, mas uma linguagem que contém a original.
Lm (A) = αγγ ∗
−1
P (Lm (A)) = β ∗ αβ ∗ γ(β + γ)∗
23
8 Equivalência entre AFD
Definição 25. Dois AFD A e B são equivalentes se e somente se Lm (A) = Lm (B).
α, β
0 1
β
α α, β β 0 1
α, β α, β
2 3
α
Lm (A) = Lm (B) = (α + β)(α + β)∗
Em muitos casos, não existe um único modelo para um sistema. É desejável obter aquele com menor
número de estados.
Definição 26 (AFD Mínimo). Um AFD A = (QA , Σ, δA , q0A , FA ) é mínimo se e somente se para todo AFD
B = (QB , Σ, δB , q0B , FB ), com Lm (A) = Lm (B), |QA | ≤ |QB |.
Em palavras, um AFD A é mínimo se e somente se para todo AFD B tal que as linguagens reconhecidas
por cada um deles é igual, o número de estados de A deve ser menor que o número de estados de B.
Observação Se A possui estados não-acessíveis (que não podem ser acessados a partir do estado inicial)
então A não é mínimo.
Para sistemas pequenos é possível reduzir o número de estados de um modelo utilizando lógica e bom
senso. Para sistemas de maior porte, pode haver explosão combinatorial.
Observação 1 se x ∈ F e y ∈
/ F , então x e y não podem ser equivalentes.
Observação 3 a propriedade acima se mantém se, para alguns eventos, δ(x, σ) = y e δ(y, σ) = x.
24
Observação 5 se F = Q, então todos os estados são equivalentes em relação a F .
β, γ
- δ(0, α) = δ(4, α) = 1;
- δ(0, β) = δ(4, β) = 4;
- δ(0, γ) = δ(4, γ) = 4.
Metodologia 3 (Identificação de Estados Equivalentes). 1. Montar uma tabela com todos os pares de
estados;
(a) se (δ(p, σ), δ(q, σ)) está marcado para algum σ ∈ Σ, então:
i. Marcar (p, q)
ii. Marcar todos os pares (m, n) não marcados na lista de (p, q). Repetir para cada (m, n) até
que nenhuma marcação seja possível
(b) se (δ(p, σ), δ(q, σ)) não está marcado para nenhum σ ∈ Σ então:
i. se δ(p, σ) 6= δ(q, σ) então acrescentar (δ(p, σ), δ(q, σ)) à lista de (p, q).
β, γ
25
Primeiro marca na tabela todos os pares em que um estado é marcado e o outro não marcado. Como só
o estado 3 é marcado, 3 não pode ser equivalente a nenhum outro estado (x preto na tabela).
α
0,1 −→ 1,1
1 x β
2 x x ↓γ ց
α
3 x x x 4,4 4,2 −→ 1,1
4 Eq x x x β
0 1 2 3 ↓γ ց
3,4 4,4
Depois analisa cada par da tabela, avaliando suas transições e colocando novos pares alcançados na lista
daquele par. Se alcançar um estado que já tem x (estados com retângulo), o x se estende a todos os pares
da lista (coloridos).
α α α α
0,2 −→ 1,1 1,2 −→ 1,1 1,4 −→ 1,1 0,4 −→ 1,1
β β β β
↓γ ց ↓γ ց ↓γ ց ↓γ ց
3,4 4,4 4,3 2,4 4,4 2,4 4,4 4,4
Minimização de AFD
Metodologia 4 (Minimização de AFD). 1. Eliminar qualquer estado que não possa ser alcançado a par-
tir do estado inicial.
2. Particionar os estados restantes em blocos de modo que:
26
0 1
β
α α, β β
α, β
2 3
α
27