Escolar Documentos
Profissional Documentos
Cultura Documentos
=
0
1
2
3
. . .
Exemplo 4. Seja o alfabeto = {0, 1},
+
`as vezes se deseja retirar o elemento do conjunto
de cadeias.
+
=
1
2
3
. . . e
=
+
{}
Denicao 4 (Concatenacao de Cadeias). Sejam x e y
cadeias. A cadeia xy denota a concatenacao de x e y.
Exemplo 5. Sejam as cadeias:
x = a
1
a
2
. . . a
i
e y = b
1
b
2
. . . b
j
,
a concatena cao de x e y gera a cadeia
xy = a
1
a
2
. . . a
i
b
1
b
2
. . . b
j
.
O comprimento da cadeia xy e |xy| = j +i.
Exemplo 6. Sejam as cadeias:
- x = 0011 e w = 1001, xw = 00111001 e wx =
10010011;
- w = w = w: e a identidade na concatenacao;
4
Principais Conceitos
Denicao 5 (Linguagens). Uma linguagem L sobre um
conjunto e um subconjunto de
, L
.
A linguagem sobre um alfabeto nao precisa necessaria-
mente incluir cadeias com todos os smbolos de .
Uma linguagem L sobre = {, } e tambem uma lin-
guagem sobre = {, , }
Exemplo 7. Sao exemplos de linguagens:
- Linguagens denidas sobre qualquer alfabeto:
a)
- Uniao: L
1
L
2
= L
1
+L
2
= {s|s L
1
ou s L
2
}
- Concatena cao: L
1
L
2
= {st|s L
1
, t L
2
}
- Fechamento Kleene: L
n=0
L
n
, onde L
0
= {} e
L
n
= L
n1
L;
- Prexo-fechamento: L = {s|t
, st L}
Exemplo 8. Uniao, com A = {0, 01} e B = {2, 23} e
= {0, 1, 2, 3}:
- A B = {0, 01, 2, 23}.
Exemplo 9. Concatenacao, com A = {0, 01} e B = {2, 23}
e = {0, 1, 2, 3}:
- AB = {02, 023, 012, 0123}.
Exemplo 10. Fechamento Kleene:
- A = {0, 11}: A
2
= {00, 011, 110, 1111}, A
n
= A
n1
A
Exemplo 11. Prexo-fechamento:
- A = {0, 11}: A = {, 0, 1, 11}.
7
Principais Conceitos
Exerccio 2. Dados A = {a, b} e B = {aa, ba}, obter:
- AB:
- AB:
- A
3
:
8
Expressoes Regulares
Expressoes regulares consistem em uma outra forma
de denir linguagens;
Pode ser tambem tratada como uma linguagem de
programa cao - tipicamente utilizada para implemen-
tar mecanismos de busca de texto e compiladores;
E uma forma de declarar as cadeias que queremos
aceitar.
Exemplo 12. Sistemas para busca: usam nota cao
de expressoes regulares para descrever padroes que o
usuario quer encontrar no arquivo.
9
Expressoes Regulares
Se u, v sao cadeias de eventos:
- u = {u}
- (u +v) = {u} {v} = {u, v}
- u
= {, u, uu, uuu, . . . }
- uv = {uv}
Denicao 7 (Expressao Regular). Denicao recursiva:
1. Sao expressoes regulares:
- : conjunto vazio;
- : linguagem {}
- : linguagem {},
2. Se s e t sao expressoes regulares, entao st, s
, t
,
(s +t)
.
L
n=1
L
n
= L
0
L
1
L
2
. . . (1)
L
0
=
L
1
= L
0
L = ( +) = ( +)
L
2
= L
1
L = ( +)( +) = (, , , )
L
3
= L
2
L = (, , , )( +)
= (, , , , , , , )
.
.
. =
.
.
.
( +)
= {, , , , , , , , , ,
, , , , , . . . }
- (+)
= {, , , , , , , , ,
, , , , , , . . . }
- ()
+ = {, , , , , . . . }
11
Expressoes Regulares
Exerccio 3. Seja = {, , }. Encontre uma expressao
regular que represente o conjunto de cadeias que possuem
exatamente um .
Exerccio 4. Seja = {, , }. Encontre uma expressao
regular que represente o conjunto de cadeias que possuem
pelo menos um e um .
Exerccio 5. Vericar se baa a
.
Exerccio 6. Vericar se abcd (a(cd)
b)
.
12
Expressoes Regulares
Denicao 8 (Ordem de precedencia). Para expressoes re-
gulares, a ordem de precedencia e:
1. Fechamento Kleene
2. Concatena cao
3. Uniao
Exemplo 14.
+
= ( +(()
))
()
= ()
+(()
)
13
Linguagem Regular
Denicao 9 (Linguagem Regular). Qualquer linguagem
que possa ser descrita como uma expressao regular e uma
linguagem regular
Proposicao 1. Se L = {u
1
, u
2
, . . . , u
n
} e uma linguagem
nita, entao L e uma linguagem regular.
Exerccio 7. Questoes:
1. Para qualquer alfabeto ,
ab(a +b)
E mais facil expressar uma expressao regular em ter-
mos de um AFN.
Qualquer AFN pode ser determinizado em um AFD.
17
Automatos de Estados Finitos
Determinstico
Denicao 10 (AFD). O automato de estados nitos de-
terminstico e uma quntupla A = (Q, , , q
0
, F) onde:
- Q e o conjunto nito e nao-vazio de estados
- e o conjunto de eventos
- : Q Q e a funcao de transicao de estados
- q
0
Q e o estado inicial
- F Q e o conjunto de estados nais
Exemplo 15. Seja o automato A = (Q, , , q
0
, F) com as
seguintes caractersticas:
- Q = {x, y, z}
- = {, , }
- (x, ) = x, (x, ) = (x, ) = z,
(y, ) = x, (y, ) = (y, ) = y
(z, ) = z, (z, ) = (z, ) = y
- q
0
= x
- F = {x, z}
O automato A possui tres estados, seu conjunto de even-
tos possui tres elementos, o estado inicial e x e os estados
nais sao {x, z}.
18
Automatos de Estados Finitos
Determinstico
O automato pode ser representado por meio da tabela de
transicao ou pelo diagrama de transicao.
Tabela de Transicao:
y
y
y y x
z
z z x
z
x
y
A tabela de transicao apre-
senta a funcao . A par-
tir de dois argumentos (es-
tado de origem e evento)
retorna o estado destino.
Diagrama de Transicao:
O diagrama de
transicao e um grafo
direcionado onde
os nos representam
os estados e os
ramos representam
os eventos.
,
,
,
z
y x
19
Automatos de Estados Finitos
Determinstico
Denicao 11. Extensao da funcao de transicao : Q
Q para : Q
Q.
- (q, ) = q
- (q, s) = ((q, s), )
Exemplo 16. Seja q = x e s = :
(x, ) = ((x, ), ) (2)
= (((x, ), ), )
= ((x, ), )
= (z, )
= z
,
,
,
z
y x
e reconhecida por um
AFD A = (Q, , , q
o
, F) se (q
0
, s) F.
Denicao 13. A linguagem reconhecida por um AFD A =
(Q, , , q
o
, F) e dada por L
m
(A) = {s
|(q
0
, s) F}.
Ou seja, a linguagem de A e o conjunto de cadeias s que
levam do estado inicial q
0
para um dos estados nais.
21
Linguagem de um AFD
Exemplo 17. Seja = {, } um alfabeto e ( + )
= {, , , , , . . . }
Esta linguageme gerada pelo automato A = (Q, , , q
0
, F)
onde = {, }, Q = {0, 1}, q
0
= 0 e F = {1}. A funcao
de transicao e dada por:
(0, ) = 1 (0, ) = 0
(1, ) = 1 (1, ) = 0
0 1
.
O automato que gera esta linguagem e apresentado
abaixo.
5
0 4
3
2
1
, ,
,
,
, ,
22
Linguagem de um AFD
Exerccio 13. Seja = {, }. Qual a linguagem reco-
nhecida pelo seguinte AFD?
2
,
0
2
Q
:
- (q, ) = {q}
- (q, s) = {p|p (n, ), n (q, s)} =
n(q,s)
(n, )
Exemplo 20. Seja a transicao a seguir.
(0, ) = {p|p (n, ), n (0, )}
= {p|p (n, ), n (m, ), m (0, )}
= {p|p (n, ), n {0, 1}}
= {p|p {0}}
= {0}
1 0
26
Linguagem de um AFN
Denicao 16. Uma cadeia s e reconhecida por um AFN
A = (Q, , , q
0
, F) se
(q
0
, s) F = .
Denicao 17 (Linguagem de um AFN). A linguagem re-
conhecida por um AFN A = (Q, , , q
0
, F) e dada por
L
m
(A) = {s
|(q
0
, s) F = }
Em palavras, L
m
(A) e o conjunto de cadeias de
tal
que (q
0
, s) contem pelo menos um estado pertencente a
F.
Exerccio 15. Seja o AFN A = (Q, , , q
0
, F) a seguir
1 0
L
m
(A) =
Exerccio 16. Seja o AFN A = (Q, , , q
0
, F) a seguir
1 0
L
m
(A) =
27
Equivalencia entre AFD e AFN
Teorema 1. Uma linguagem e reconhecida por um auto-
mato de estados nitos nao-determinstico se e somente
se for reconhecida por um automato de estados nitos
determinstico.
1 0
A seguir um automato determinstico A
D
= (Q
D
,
D
,
D
,
q
D
0
, F
D
) que gera a mesma linguagem, L = ( +)
01
1
01
,
28
Equivalencia entre AFD e AFN
Como construir um AFD a partir de um AFN?
Metodologia 1. Come ca-se com um AFN N = (Q
N
, ,
N
, q
0
, F
N
). O objetivo e descrever um AFD D = (Q
D
, ,
D
, q
0
, F
D
) tal que L
m
(N) = L
m
(D).
- Q
D
e o conjunto de subconjuntos de Q
N
;
- F
D
e o conjunto S de subconjuntos de Q
N
tal que
S F
N
= ;
- Para cada conjunto S Q
N
e para cada elemento
a ,
D
(S, a) =
pS
N
(p, a)
Observa cao 1 Em um conjunto Q
N
de n elementos vai
gerar um conjunto Q
D
de 2
n
elementos. Nem to-
dos estes estados sao acessveis a partir do estado q
0
entao varios dos estados de Q
D
poderao ser elimina-
dos.
Observacao 2 F
D
e composto dos elementos de Q
D
que
possuem estados de F
N
.
Observacao 3 Para computar
D
(S, a) olham-se os esta-
dos p componentes de S, e faz-se a uniao de todos
os estados para os quais os estados p movem com a
ocorrencia do smbolo a.
29
Equivalencia entre AFD e AFN
Exemplo 22. Seja o AFN abaixo. Este AFN e descrito a
seguir.
1 0
- Q
N
= {0, 1};
- = {, };
-
N
tal que
N
(0, ) = {0, 1}
N
(0, ) =
N
(1, ) =
N
(1, ) = {0}
- q
0
= 0
- F
N
= {0}
O primeiro passo e determinar Q
D
:
Q
D
=
.
O conjunto de estados nais F
D
e formado dos estados
de Q
D
que tenham intersecao nao vazia com F
N
, ou seja,
F
D
=
{0}, {0, 1}
.
O estado inicial e {q
0
} = {0} e a tabela de transicao e
construda a seguir.
{0}
D
{0}
{1}
{0, 1}
{0, 1}
{0}
{0, 1}
01
1
30
Equivalencia entre AFD e AFN
A transicao
D
({0, 1}, ) foi obtida da seguinte forma:
D
({0, 1}, ) =
N
({0}, )
N
({1}, )
= {0, 1}
= {0, 1}
Exerccio 17. Obtenha um AFD que reconhece a mesma
linguagem que o AFN abaixo.
2 1
,
0
31
Equivalencia entre AFD e AFN
Exerccio 18. Obtenha um AFD que reconhece a mesma
linguagem que o AFN abaixo.
1
,
2 0
,
32
Equivalencia entre AFD e AFN
Exerccio 19. Obtenha um AFD que reconhece a mesma
linguagem que o AFN abaixo.
1
2 0
33
Equivalencia entre Automatos de
Estados Finitos e Expressoes
Regulares
Teorema 2 (Kleene, 1950). Se uma linguagem e regular,
entao ela e reconhecida por algum automato de estados
nitos; se uma linguagem e reconhecida por um automato
de estados nitos, entao a linguagem e regular.
Questao: Como vericar se uma dada linguagem pode
ser representada por uma expressao regular?
Resposta: Existem algumas tecnicas; o Pumping Lemma
e uma tecnica poderosa.
Teorema 3 (Pumping Lemma). Seja L uma linguagem
regular. Entao existe uma constante n tal que, para toda
cadeia w L tal que |w| n, pode-se quebrar w em tres
cadeias w = xyz, tais que:
1. y = ;
2. |xy| n;
3. k 0, xy
k
z L.
n
, que atende a res-
tricao |w| n pois |
n
n
| = 2n n;
4. Jogador 2 divide
n
n
em x, y e z, mas nao revela ao
Jogador 1.
5. Sabendo que y = e |xy| n, Jogador 1 (pat)
vence o jogo escolhendo k = 0. Como xy vem
no incio da cadeia w e seu comprimento e menor ou
igual a n, entao sabe-se que ha apenas s nas cadeias
x e y. O Pumping Lemma diz que xy
0
z = xz L e
condicao para que se tenha linguagem regular. Dados
para concluir:
ao escolher k = 0, y
0
= e xz / L pois um con-
junto de s da cadeia desaparece, fazendo com
que o numero de s e s quem diferentes.
Jogador 1 tambem venceria o jogo se escolhesse outro
k tal que k = 1. Se escolhesse k = 2, a cadeia y seria
transformada em yy. Ao concatenar xy
2
z, considerando
que todos os s estao na cadeia z, o numero de s caria
maior que o numero de s, fazendo com que xy
2
z / L.
36
Pumping Lemma como um Jogo de
Adversarios
Exemplo 24. Seja = {, }. Mostrar que o a linguagem
L = {s
, tal que |s
| n + 2
que atende a restricao |w| n. Seja s
=
p
, sendo p
um numero primo tal que p n +2.
4. Jogador 2 divide
p
em x, y e z.
5. Considere que |y| = m (atende restricao y = ), entao
|xz| = p m. Agora o Jogador 1 escolhe k = p m
entao xy
pm
z L se L for regular. No entanto,
|xy
pm
z| = |xz| +|y
pm
|
= |xz| +(p m)|y|
= (p m) +(p m)m
= (m+1)(p m)
Este numero nao sera primo se os dois fatores (pm)
e (m+1) forem diferentes de 1.
Como y = , entao m+1 > 1;
Como p n + 2 e m = |y| |xy| n levando `a
conclusao de que m n, entao
p m n +2 m 2.
Esta linguagem e nao-regular pois |xy
pm
z| nao e
primo.
37
Pumping Lemma como um Jogo de
Adversarios
Exerccio 20. Seja = {, }. Mostrar que a linguagem
L = {s
n
L, que atende
a restri cao |w| n pois |
2n
n
| = 3n n;
4. Jogador 2 divide
2n
n
em x, y e z.
5. Sabendo que y = e |xy| n, Jogador 1 (pat)
vence o jogo escolhendo k = 2. A cadeia xy e
composta somente de s, ja que seu comprimento e
menor que n. O Pumping Lemma diz que xy
2
z =
xyyz L e condi cao para que se tenha linguagem
regular. Dados para concluir:
como y = e y e uma cadeia de s, ao escolher
k = 2, y
2
= yy e xyyz / L pois um conjunto de s
e inserido na cadeia, quebrando a relacao entre o
numero de s e s.
39
Equivalencia de AFD
Denicao 18. Dois AFD A e B sao equivalentes se e
somente se L
m
(A) = L
m
(B).
Exemplo 25. Os dois AFD A e B abaixo sao equivalentes.
1
1
,
,
0
B A
,
,
3 2
0
L
m
(A) = L
m
(B) = ( +)( +)
4
2
3
A
0
,
43
Algoritmo para Identicacao de
Estados Equivalentes
Metodologia 2 (Identicacao de Estados Equivalentes).
1. Montar uma tabela com todos os pares de estados;
2. Marcar (p, q) para todo p F e q / F;
3. Para todo par (p, q) nao marcado no passo 2:
(a) se ((p, ), (q, )) esta marcado para algum
, entao:
i. Marcar (p, q)
ii. Marcar todos os pares (m, n) nao marcados na
lista de (p, q). Repetir para cada (m, n) ate que
nenhuma marcacao seja possvel
(b) se ((p, ), (q, )) nao esta marcado para nenhum
entao:
i. se (p, ) = (q, ) entao acrescentar ((p, ),
(q, )) `a lista de (p, q).
44
Algoritmo para Identicacao de
Estados Equivalentes
Exemplo 27. Seja A o AFD abaixo.
1
,
4
2
3
A
0
X
3
4
1
2
0 1 2 3
X X X
0, 1
3, 4
4, 4
1, 1
4, 4
4, 2
1, 1
X
X
X
3
4
1
2
0 1 2 3
X X X
4, 4
4, 3
1, 1 0, 2
45
Algoritmo para Identicacao de
Estados Equivalentes
1
,
4
2
3
A
0
3
X X
X X X
X
X
3 2 1 0
2
1
4
1, 2
2, 4
4, 3
1, 1
X
X
3
4
1
2
0 1 2 3
X
X
X X X
X
4, 4
4, 4
0, 4 1, 1
46
Algoritmo para Identicacao de
Estados Equivalentes
1
,
4
2
3
A
0
X EQ
X
X
X X X
X
X
3 2 1 0
2
1
4
3
4, 4
1, 4 1, 1
2, 4
X EQ
X
X
X X X
X
X
3 2 1 0
2
1
4
3
X
47
Algoritmo para Identicacao de
Estados Equivalentes
Metodologia 3 (Minimizacao de AFD).
1. Eliminar qualquer estado que nao possa ser alcancado
a partir do estado inicial.
2. Particionar os estados restantes em blocos de modo
que:
(a) todos os estados no mesmo bloco sejam equiva-
lentes;
(b) nenhum par de estados de blocos distintos seja
equivalente.
1
,
4
2
3
A
0
0, 4 1
A
3
,
48
Algoritmo para Identicacao de
Estados Equivalentes
Exerccio 22. Minimizar o AFD abaixo.
,
1
0
2 3
,
49
EEE908 - Modelagem e
Controle de Sistemas Dinamicos
a Eventos Discretos
Redes de Petri
Cassandras, C. e Lafortune, S., Introduction to
Discrete Event Systems, 2nd edition Springer
Prof. Patrcia N. Pena
Abril, 2013