Documente Academic
Documente Profesional
Documente Cultură
nguagensFor
mai
se
Aut
mat
os
Paul
oBl
aut
hMenez
es
3 Linguagens Regulares
3.1 Sistema de estados finitos
3.2 Composio sequencial, concorrente e no
determinista
3.3 Autmato finito
3.4 Autmato finito no determinstico
3.5 Autmato finito com movimentos vazios
3.6 Expresso regular
3.7 Gramtica regular
3 Linguagens Regulares
Linguagens Formais e Autmatos
3 Linguagens Regulares
Linguagens regulares ou tipo 3 formalismos
Autmato finito
formalismo operacional ou reconhecedor
basicamente, um sistema de estados finitos
Expresso regular
formalismo denotacional ou gerador
conjuntos (linguagens) bsicos + concatenao e unio
Gramtica regular
formalismo axiomtico ou gerador
gramtica com restries da forma das regras de produo
Linguagens Formais e Autmatos
Hierarquia de Chomsky
classe de linguagens mais simples
algoritmos de reconhecimento, gerao ou converso entre
formalismos
pouca complexidade
grande eficincia
fcil implementao
Captulos subsequentes
minimizao de autmatos finitos
propriedades da classe
algumas importantes aplicaes
10
3 Linguagens Regulares
3.1 Sistema de estados finitos
3.2 Composio sequencial, concorrente e no
determinista
3.3 Autmato finito
3.4 Autmato finito no determinstico
3.5 Autmato finito com movimentos vazios
3.6 Expresso regular
3.7 Gramtica regular
11
Estado
somente informaes do passado
necessrias para determinar as aes para a prxima entrada
12
Motivacional
associados a diversos tipos de sistemas naturais e construdos
Exp: Elevador
No memoriza as requisies anteriores
Estado: sumaria "andar corrente" e "direo de movimento"
Entrada: requisies pendentes
13
Restrio
nem todos os sistemas de estados finitos so adequados para ser
estudados por esta abordagem
14
Exp: Computador
estados dos processadores e memrias
sistema de estados finitos
entretanto, podem existir memrias adicionais
discos, fitas, memrias auxiliares, etc.
assim, o nmero de estados no necessariamente predefinido
no satisfaz aos princpios dos autmatos finitos
15
16
3 Linguagens Regulares
3.1 Sistema de estados finitos
3.2 Composio sequencial, concorrente e no
determinista
3.3 Autmato finito
3.4 Autmato finito no determinstico
3.5 Autmato finito com movimentos vazios
3.6 Expresso regular
3.7 Gramtica regular
17
Composio
Sequencial
Concorrente
No determinista
18
Sequencial
execuo da prxima componente
depende da terminao da componente anterior
Concorrente
componentes independentes
ordem em que so executadas no importante
portanto, podem ser processadas ao mesmo tempo
19
No determinista
prxima componente: escolha entre diversas alternativas
em oposio determinista
para as mesmas condies
prxima componente sempre a mesma
no determinismo pode ser
interno: sistema escolhe aleatoriamente
externo: escolha externa ao sistema
Sistemas reais
as trs formas de composio so comuns
20
Exp: Banco
Sequencial
fila: prximo cliente depende do atendimento do anterior
pagamento de uma conta depende do fornecimento de um valor
Concorrente
diversos caixas atendem independentemente diversos clientes
clientes nos caixas: aes independentemente dos clientes na fila
No determinista
dois ou mais caixas disponveis ao mesmo tempo
prximo cliente pode escolher o caixa
caminhar de um indivduo: perna esquerda ou direita
21
Linguagens formais
sequencial e no determinismo: especialmente importantes
22
23
3 Linguagens Regulares
3.1 Sistema de Estados Finitos
3.2 Composio Sequencial, Concorrente e No
Determinista
3.3 Autmato Finito
3.4 Autmato Finito No Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular
24
25
26
Movimento vazio
pode ser visto como transies encapsuladas
excetuando-se por uma eventual mudana de estado
nada mais pode ser observado
anlogo encapsulao das linguagens orientadas a objetos
Linguagens Formais e Autmatos
27
28
29
Fita finita
dividida em clulas
cada clula armazena um smbolo
smbolos pertencem a um alfabeto de entrada
no possvel gravar sobre a fita (no existe memria auxiliar)
palavra a ser processada ocupa toda a fita
30
Unidade de controle
nmero finito e predefinido de estados
origem do termo controle finito
leitura
l um smbolo da fita de cada vez
move a cabea da fita uma clula para a direita
posio inicial da cabea clula mais esquerda da fita
controle
31
32
33
estado anterior
smbolo lido
novo estado
Linguagens Formais e Autmatos
34
q0
qf
a,b
35
(p, a) = q
36
37
q0 q1 q2
q1
qf
q2
q2 q1
qf
qf
qf
qf
38
q0
q1
q2
a
qf
a,b
39
q0
q1
q2
a
qf
a,b
q0
q1
q2
qf
qf
Linguagens Formais e Autmatos
40
Parada do processamento
Aceita a entrada
aps processar o ltimo smbolo, assume um estado final
Rejeita a entrada. Duas possibilidades
aps processar o ltimo smbolo, assume um estado no final
programa indefinido para argumento (estado e smbolo)
41
42
43
Observe
sucessiva aplicao da funo programa
para cada smbolo da palavra
a partir de um dado estado
se a entrada for vazia, fica parado
aceita/rejeita: funo programa estendida a partir do estado inicial
Linguagens Formais e Autmatos
44
b
0
a
a
a,b
*(q0, abaa) =
funo estendida sobre abaa
*((q0, a), baa) =
processa abaa
*(q1, baa) =
funo estendida sobre baa
*((q1, b), aa) =
processa baa
*(q2, aa) =
funo estendida sobre aa
*((q2, a), a) =
processa aa
*(q1, a) =
funo estendida sobre a
*((q1, a), ) =
processa a
funo estendida sobre : fim da induo; ACEITA
*(qf, ) = qf
45
ACEITA(M) REJEITA(M) =
ACEITA(M) REJEITA(M) = *
~ACEITA(M) = REJEITA(M)
~REJEITA(M) = ACEITA(M)
46
*
ACEITA(M)
REJEITA(M)
47
48
M2
L3 = *
M3
q0
a,b
q0
a,b
49
L3 = *
2 a b
3 a b
q0 q0 q0
q0 q0 q0
diferena entre 2 e 3?
o que, exatamente, diferencia M2 de M3?
50
q1
b
b
q2
q3
b
51
52
53
c a m in h o s M
M
a
1
d
1
d
a
5
Computaes(M)
=
{ , a, b, c, d,
ab, bc, abc}
ab
abc
bc
c
4
c
4
ACEITA (M)
=
{ , d, abc}
54
3 Linguagens Regulares
3.1 Sistema de Estados Finitos
3.2 Composio Sequencial, Concorrente e No
Determinista
3.3 Autmato Finito
3.4 Autmato Finito No Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular
55
3.4
56
No determinismo
importante generalizao dos modelos de mquinas
fundamental no estudo
Modelos para concorrncia
Teoria da computao
Linguagens formais
57
58
Entrada aceita
se pelo menos um dos caminhos alternativos aceita a entrada
mesmo que os demais no aceitem
59
60
61
Se (p, a) =
transio indefinida para o par (p, a)
o autmato para, rejeitando a entrada
estado anterior
p
a
q1
q2
qn
smbolo lido
conjunto de
novos estados
62
63
64
Parada do processamento
Aceita a entrada
aps processar o ltimo smbolo da fita, existe pelo menos um
estado final pertencente ao conjunto de estados alternativos
atingidos
Rejeita a entrada. Duas possibilidades
aps processar o ltimo smbolo da fita, todos os estados
alternativos atingidos so no finais
conjunto de estados alternativos atingido vazio: o autmato para
por indefinio
65
66
a,b
q1
q2
a
qf
a,b
67
q0
a,b
q1
q2
a
qf
a,b
68
q0
a,b
q1
q2
a
qf
a,b
69
q0
a,b
q1
q2
a
qf
a,b
70
q0 { q0,q1
}
{ q0,q2
}
q1
{ qf }
q2
{ qf }
qf
{ qf }
{ qf }
*({ q0 }, abaa) =
*((q0, a), baa) =
*({ q0, q1 }, baa) =
*((q0, b) (q1, b), aa) =
*({ q0, q2 } , aa) =
*({ q0, q2 }, aa) =
processa aa
funo estendida sobre a
processa a
funo estendida sobre : fim da
72
q0
q1
q2
qf
a,b
73
*({ q0 }, baa) =
*((q0, b), aa) =
*({ q0 }, aa) =
*((q0, a), a) =
*({ q0, q1 }, a) =
*((q0, a) (q1, a), ) =
*({ q0, q1 } { q2 }, ) =
*({ q0, q1, q2 }, ) = { q0, q1, q2 }
induo
74
No determinismo
aparentemente, um significativo acrscimo ao poder computacional
autmato finito
na realidade, no aumenta seu poder computacional
75
76
sse
*({ q1, , qn }, a) =
q0 estado inicial
Linguagens Formais e Autmatos
77
sse
*({ q0 }, w) = { q1, , qu }
*({ q0 }, ) = { q0 }
78
sse
*({ q0 }, w) = { q1, , qu }
Passo de Induo. wa = n + 1 e n 1
D*(q0, wa) = p1pv
sse
sse
79
80
q0
q1
q2
qf
a,b
M6D = ({ a, b }, QD, 6D, q0, FD)
QD = { q0, q1, q2, qf, q0q1, q0q2, , q0q1q2qf }
FD = { qf, q0qf, q1qf, , q0q1q2qf }
81
AFN
a
q0
q1
q2
qf
a,b
AFD
6D
q0
q0q1
q0q1
q0q1q2
q0
q0q1q2
q0q1q2qf
q0
q0q1q2qf
q0q1q2qf
q0
b
q0
82
6D
p0 = q0
q0q1
q0
p1 = q0q1
q0q1q2
q0
p2 = q0q1q2
q0q1q2qf
q0
pf = q0q1q2qf
q0q1q2qf
q0
83
b
a
p0
p1
p2
b
a
pf
84
3 Linguagens Regulares
3.1 Sistema de Estados Finitos
3.2 Composio Sequencial, Concorrente e No
Determinista
3.3 Autmato Finito
3.4 Autmato Finito No Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular
85
Movimento vazio
transio sem leitura de smbolo algum da fita
interpretado como um no determinismo interno ao autmato
transio encapsulada
excetuando-se por uma eventual mudana de estados
nada mais pode ser observado
86
Algumas vantagens
facilita algumas construes e demonstraes
87
88
(q, ) = { p0 }
(q, a1) = { p1 }
(q, an) = { pn }
p0
an
a1
p1
pn
89
Computao de um AFN
anloga de um AFN
90
q0 { q0
}
qf
{ qf }
{ qf }
q0
a
qf
b
91
92
93
Por simplicidade, e *
ambas denotadas por
q0
a
qf
b
(q0) = { q0, qf }
(qf) = { qf }
({ q0, qf }) = { q0, qf }
94
95
96
q0
q2
q3
qf
c
a,b,c
q4
q5
q6
97
q1
q0
q2
q3
qf
c
a,b,c
q4
q5
q6
(1)
(2)
(3)
Como:
*({ q0 }, ) } = ({ q0 }) = { q0, q1, q2, q4 }
*({ q0 }, a) = { q0, q1, q2, q4, qf }
*({ q0 }, ab) = { q0, q1, q2, q3, q4 }
considerado em (3)
considerado em (2)
considerado em (1)
98
99
100
101
q0 { q0
}
q1
q2 { q2 }
{ q1
}
{ q1
}
{ q2
}
102
q0
a
q2
q0
q1
q1
b
q2
a
103
a,b
a,b
q0
q1
q2
q0
a,b
q1
b
q2
a
FN = { q0, q1, q2 }
(q0) = { q0, q1, q2 }
Linguagens Formais e Autmatos
104
(q1) = { q1, q2 }
(q2) = { q2 }
105
q0
a
q1
b
q2
a
Na construo de 9N
9*({ q0 }, ) = { q0, q1, q2 }
9*({ q1 }, ) = { q1, q2 }
9*({ q2 }, ) = { q2 }
106
q0
a
q1
b
q2
a
9N(q0, b) = 9*({ q0 }, b) =
9N(q1, a) = 9*({ q1 }, a) =
({ r r (s, a) e s *({ q1 }, ) }) = { q2 }
Linguagens Formais e Autmatos
107
q0
a
q1
b
q2
a
108
3 Linguagens Regulares
3.1 Sistema de Estados Finitos
3.2 Composio Sequencial, Concorrente e No
Determinista
3.3 Autmato Finito
3.4 Autmato Finito No Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular
109
110
111
112
ou
GERA(r)
113
Linguagem gerada
???
aa
ba*
(a + b)*
(a + b)*aa(a + b)*
a*ba*ba*
(a + b)*(aa + bb)
(a + )(b + ba)*
114
Linguagem gerada
aa
somente a palavra aa
ba*
(a + b)*
115
a e b denotam { a } e { b }, respectivamente
a + b denota { a } { b } = { a, b }
(a + b)* denota { a, b }*
aa e bb denotam { a } { a } = { aa } e { b } { b } = { bb }, respectivamente
(aa + bb) denota { aa } { bb } = { aa, bb }
(a + b)*(aa + bb) denota { a, b }* { aa, bb }
116
117
r=
Autmato???
r=
Autmato???
r = x (x )
Autmato???
118
r = . Autmato: M2 = (, { qf }, 2, qf, { qf })
qf
qf
119
ACEITA(M1) = GERA(r1)
ACEITA(M2) = GERA(r2)
120
r = r1 + r2
Autmato???
r = r1r2
Autmato???
r = r1*
Autmato???
121
q01
M1
qf1
q0
qf
q02
M2
qf2
122
q01
M1
qf1
q02
M2
qf2
q0
q01
M1
qf1
qf
123
Exerccio: no caso r = r1 + r2
no introduzir os estados q0 e qf
identificar ("unificar") os estados iniciais/finais de M1/M2 ???
q01
M1
qf1
q0
qf
q02
M2
qf2
124
q0
q01
M1
qf1
qf
125
AFN
a*
aa
126
ER
AFN
bb
(aa + bb)
127
128
129
3 Linguagens Regulares
3.1 Sistema de Estados Finitos
3.2 Composio Sequencial, Concorrente e No
Determinista
3.3 Autmato Finito
3.4 Autmato Finito No Determinstico
3.5 Autmato Finito com Movimentos Vazios
3.6 Expresso Regular
3.7 Gramtica Regular
130
Gramtica regular
restries nas regras de produo
existe mais de uma forma de restringir as regras de produo
gramticas lineares
131
ou
Aw
ou
Aw
w1
w1
132
Exerccio
gramtica simultaneamente nas quatro formas lineares?
133
134
ou
GERA(G)
tal que
L(G) = { w T* S + w }
135
136
137
138
139
=T
Q = V { qf }
F = { qf }
q0 = S
(suponha qf V)
Tipo da
produo
Transio
gerada
(A, ) = qf
Aa
(A, a) = qf
AB
(A, ) = B
A aB
(A, a) = B
140
M simula as derivaes de G
ACEITA(M) = GERA(G)
Base de induo. S 1 . Quatro casos
=
existe S
=a
existe S a
=A
existe S A
= aA
existe S aA
Logo, (S, ) = qf
Logo, (S, a) = qf
Logo, (S, ) = A
Logo, (S, a) = A
(1)
(2)
141
Quatro casos:
= w = w. Existe A . Logo
*(S, w) = (*(S, w), ) = (A, ) = qf
142
qf
b
a
B
143
Produo
Transio
S aA
(S, a) = A
A bB
(A, b) = B
(A, ) = qf
B aA
(B, a) = A
qf
b
a
B
144
145
(suponha S Q)
Transio
Produo
S q0
qf
(qi, a) = qk
qi aqk
146
147
148
q0
q1
q2
149
Transio
Produo
(q0, a) = q0
(q0, b) = q1
(q1, b) = q1
(q1, c) = q2
(q2, c) = q2
S q0
q0
q1
q2
q0 aq0
q0 bq1
q1 bq1
q1 cq2
q2 cq2
q0
q1
q2
150
151