Você está na página 1de 35

Autmatos Finitos

Mquinas de Estado Finito


So mquinas abstratas que capturam as partes essenciais de
alguma mquina concreta.
Embora existam mquinas abstratas conceitualmente mais
poderosas que as de estado finito, estas, do ponto de vista
terico e prtico, servem para modelar um amplo espectro de
mquinas.
Ex. circuito de lmpadas, mquina de vender jornal ou
refrigerante passando por elevadores e sinais de trnsito
Ex. Lmpada
- dois estados: acesa ou apagada
- duas aes: acender ou apagar
Ex2. Mquina de vender jornal
- custo do jornal: 0,30
- moedas aceitas: 0,05 - 0,10 - 0,25
- no h circuito subtrator e nem memria.
- a mquina comea no estado 30
- o estado 0 o estado final
- as transies representam a insero de moedas
- a mquina libera o jornal quando o cliente inserir um total de 30 centavos
30
5
25 20
5
15
5
10
5
5
5
0
5
10 10 10 10 10
25 25 25 25 25 25
10
5,10,25
30 0
Basicamente, existem 2 tipos de mquinas de estado finito:
a) transdutores: mquinas com entrada e sada;
b) reconhecedores: mquinas onde a sada aceitar ou
rejeitar a entrada.
Em uma mquina de estado finito a memria organizada em
estados, que indicam a situao corrente da mquina dado
um seqncia de smbolos na entrada.
Linguagens regulares so aquelas aceitas por mquinas de
estado finito.
Autmatos Finitos
So mquinas de estado finito do tipo reconhecedor de
linguagem.
Consiste em um conjunto Q de estados e um conjunto de
transies entre estados que ocorrem quando smbolos de um
alfabeto de entrada so lidos de um string de entrada w.
Dentre os estados, distinguem-se:
- um estado inicial q
0
;
- um conjunto de estados finais F.
Alfabeto de entrada: =
Estados do autmato: Q =
Estado inicial: q
0
=
Estados finais: F =
Transies:
Autmatos Finitos Determinsticos
Um AFD uma quntupla M = (Q, , , q
0
, F) onde:
- Q = conjunto de estados - = alfabeto de entrada
- = funo total de Q Q - q
0
= estado inicial
- F = conjunto de estados finais
Em um AFD, cada par estado-smbolo possui uma nica
transio correspondente - da seu determinismo.
Comportamento do Autmato
Os apontadores indicam o estado atual da mquina
(inicialmente q
0
). A cada transio do autmato, um smbolo
da entrada e lido e os apontadores so atualizados. O
autmato reconhece o string de entrada se a ltima transio
resultar em um estado final.
Ex. Que linguagem aceita por este autmato?
Autmatos Equivalentes
Seja o AFD M = (Q, , , q
0
, F). A linguagem de M,
denotada por L(M), o conjunto de todos os strings
*
aceitos por M.
O autmato finito uma mquina que l e reconhece strings
de uma linguagem.
Dois AFDs so equivalentes se eles reconhecem a mesma
linguagem.
Configurao Instantnea
Consiste no estado em que o autmato se encontra e o
restante do string de entrada que deve ser lido.
[q
i
, w]
Transio do Autmato
[q
i
, aw] [(q
i
, a), w] uma transio do autmato
[q
i
, w] [q
j
, v] corresponde a 0 ou mais transies do
autmato
Linguagem Reconhecida
L(M) = {w
*
| [q
0
, w] [q
i
, ] e q
i
F}
Ex. Verificar se o autmato ao lado
reconhece as strings de entrada
0101 e 0100.
*
*
Determinismo Incompleto
Quando nem todas as transies so especificadas temos o
chamado determinismo incompleto. Formalmente, ocorre
quando uma funo parcial de Q Q.
Quando uma string analisada e no h transio para um
prximo estado o autmato pra (HALT), rejeitando a mesma.
Ex. AFD incompleto para (ab)
*
c. Ele aceita abc e abcc?
Ex. Construa AFDs para as seguintes linguagens sobre o alfabeto = {0, 1}.
1) As linguagens denotadas por:
a) (0 1)
*
b) 0 (0 1)
*
1
c) (0 1)
*
0 (0 1)
*
d) (1 01 001)
*
( 0 00)
2) L = {w | w termina com 00}
3) L = {w | w possui 000 como substring}
4) L = {w | o segundo smbolo de w, da esquerda para direita, 1}
5) L = {w | w no contm 101 como substring}
6) L = {w | interpretado como binrio, w mltiplo de 3}
7) L = {w | w = 0
n
1
n
, n 0}
E se fosse n k, k N?
Implementao de um Autmato
a
l
g
o
r
i
t
m
o
i
n
t
e
i
r
o

E
s
t
a
d
o
c
a
r
a
c
t
e
r
S

m
b
o
l
o
E
s
t
a
d
o

0
e
n
q
u
a
n
t
o

e
x
i
s
t
e

s

m
b
o
l
o

n
a

e
n
t
r
a
d
a

f
a

a
l
e
i
a

(
S

m
b
o
l
o
)
e
s
c
o
l
h
e
r

E
s
t
a
d
o
c
a
s
o

0
:



e
s
c
o
l
h
e
r

S

m
b
o
l
o
c
a
s
o

:

E
s
t
a
d
o

1
c
a
s
o

:

E
s
t
a
d
o

2
f
i
m

e
s
c
o
l
h
e
r
c
a
s
o

1
:



e
s
c
o
l
h
e
r

S

m
b
o
l
o
c
a
s
o

:

E
s
t
a
d
o

1
c
a
s
o

:

E
s
t
a
d
o

2
f
i
m

e
s
c
o
l
h
e
r
c
a
s
o

2
:


e
s
c
o
l
h
e
r

S

m
b
o
l
o
c
a
s
o

:

E
s
t
a
d
o

0
c
a
s
o

:

E
s
t
a
d
o

2
f
i
m

e
s
c
o
l
h
e
r
f
i
m

e
s
c
o
l
h
e
r
f
i
m

e
n
q
u
a
n
t
o
s
e

E
s
t
a
d
o

=

2

e
n
t

o
e
s
c
r
e
v
a

(

O

s
t
r
i
n
g

f
o
i

r
e
c
o
n
h
e
c
i
d
o

)
s
e
n

o
e
s
c
r
e
v
a

(

O

s
t
r
i
n
g

n

o

f
o
i

r
e
c
o
n
h
e
c
i
d
o

)
f
i
m

s
e
f
i
m

a
l
g
o
r
i
t
m
o
Autmatos Finitos No Determinsticos
So autmatos que permitem mais de uma transio partindo de
um estado para um mesmo smbolo do alfabeto de entrada.
Ex: (q
n
, a) = {q
i
}
(q
n
, a) = {q
i,
q
j,
q
k
}
(q
n
, a) =
Definio: Um Autmato Finito No Determinstico (AFN) uma
quntupla M = (Q, , , q
0
, F) , onde:
- Q = conjunto de estados
- = alfabeto de entrada
- q
0
= estado inicial
- F = conjunto de estados finais
- = funo total de Q P (Q)
Ex:
um string de entrada pode gerar diferentes computaes em
um AFN

um string aceito por um AFN se existir alguma computao


que termine em um estado final.
L(M) = {w
*
| existe uma computao [q
0
, w] [q
i
, ] com q
i
F}
0,1
0 1 2 3
0,1 0,1 1
*
Transies Lambda
Uma transio lambda () uma transio que pode ocorrer
entre estados do autmato sem que nenhum smbolo da
entrada seja lido.
Definio: Um Autmato Finito No Determinstico com Transio
Lambda (AFN-) uma quntupla M = (Q, , , q
0
, F) , onde:
- Q = conjunto de estados - = alfabeto de entrada
- q
0
= estado inicial - F = conjunto de estados finais
- = funo total de Q ( {}) P (Q)
Todo AFD um AFN que, por sua vez, um AFN-.
Porm: Todo AFN- tem um AFN equivalente e
Todo AFN tem um AFD equivalente
Remoo do No - Determinismo
Um AFN construdo a partir de um AFN- da seguinte maneira:
Para cada par (estado q
i
, smbolo a), determinar que estados q
j
podem ser alcanados a partir de q
i
quando o smbolo a lido da
entrada.
Ex: Que estados podem ser alcanados a partir de 1 quando a
lido da entrada?
Fecho-Lambda:
O fecho-lambda de um estado q
i
, denotado por fecho- (q
i
),
o conjunto de todos os estados que podem ser alcanados a
partir de q
i
sem nenhuma leitura de smbolo da entrada.
Definio: O fecho- (q
i
) definido recursivamente:
Base: q
i
fecho- (q
i
)
Recurso: Seja q
j
um elemento de fecho- (q
i
). Se existe
uma transio (q
j
, ) = q
k
, ento q
k
tambm
pertence a fecho- (q
i
)
O conjunto de estados que podem ser alcanados a partir de
q
i
quando o smbolo a lido da entrada formado da
seguinte forma:
- para cada q
j
fecho- (q
i
), inclua (q
j
, a)
- inclua tambm o fecho- de cada um destes estados
Construo de um AFD a partir de um AFN-
Dado um AFN- M = (Q, , , q
0
, F),
um AFN equivalente M= (Q, , , q
0
, F) pode ser
construdo da seguinte forma:
(q
i
, a) = U fecho - ((r, a))
r fecho - (q
i
)
F {q
0
} , se fecho-(q
0
) F , ou
F , caso contrrio.
Ex.
F =
1
A
B
0
C
E
D
1
0
0
0
1
1

Construo de um AFD a partir de um AFN


Dado o AFN M = (Q, , , q
0
, F),
o AFD M= (Q, , , q
0
, F) equivalente construdo
da seguinte forma:
Q = P(Q)
(R, a) = { q Q | q (r, a) para r R } = U (r, a)
r R
q
0
= { q
0
}
F = { R Q | R F }
Para um AFN- M = (Q, , , q
0
, F), substituir
(R, a) = { q Q | q fecho-( (r, a) ) para r R }
= U fecho-( (r, a) )
r R
q
0
= fecho-( q
0
)
Algoritmo Iterativo para AFN AFD
Seja AFN M = (Q, , , q
0
, F), um AFD M= (Q, , , q
0
, F)
equivalente construdo da seguinte forma:
crie o estado q
0
= [q
0
] e o insira em Q
para cada estado X de Q faa
para cada smbolo a faa
seja Y = U (q
i
, a)
q
j
X
se Y Q ento
crie o estado Y
insira Y em Q
crie a transio (X, a) = Y
fim para
fim para
Gramticas
Introduo
Expresses regulares e AFs so usados para se especificar e
reconhecer linguagens simples (regulares). Uma outra
forma de especificar (gerar) uma linguagem regular
atravs de gramticas. Nesse caso, temos as chamadas
Gramticas Regulares.
As gramticas ainda podem especificar linguagens mais
complexas, como as no-regulares. Neste caso, temos as
Gramticas Livres de Contexto, Gramticas Sensveis ao
Contexto e Gramticas Irrestritas.
Produo, Derivao e outros conceitos
Smbolos no-terminais so elementos auxiliares na gerao de sentenas.
Ex. S, A, B, Z.
Smbolos terminais so elementos formadores das sentenas (alfabeto).
Ex. a, b, c,
Formas sentenciais so strings de smbolos terminais e no-terminais.
Ex. aSb, Ac, AbZ
Sentenas so strings de smbolos terminais.
Ex. acb, ca, baa,
Uma produo (regra) consiste um par ordenado de formas sentenciais
em que o lado esquerdo da produo (primeiro elemento do par) pode
ser substitudo pelo lado direito da mesma (segundo elemento do par).
Ex. B bA
Definio de Gramtica
Uma gramtica uma qudrupla G = (V, , P, S), em que:
V = conjunto de smbolos no-terminais (ou variveis)
= conjunto de smbolos terminais (alfabeto), V =
P = conjunto de regras (produes), P (V )
+
(V )
*
S = smbolo inicial ou varivel de partida, S V
Uma derivao representa a obteno de uma forma sentencial a partir
de outra, em que os smbolos do lado direito de uma produo
substituem aqueles colocados do lado esquerdo da mesma.
S w, l-se S deriva w em um passo
S w, l-se S deriva w em zero ou mais passos
se S (V )
*
entao uma forma sentencial de G
se S w
*
ento w uma sentena de G
A linguagem gerada pela gramtica G L(G) = { w
*
| S w }
A recurso em uma gramtica permite que ela derive infinitas
palavras. Ela pode ser direta (da forma A aA) ou indireta
(da forma A w aA e w no contm A).
Derivao mais direita (DMD)
Durante o processo de derivao o no-terminal expandido de
cada forma sentencial sempre o mais direita.
Derivao mais esquerda (DME)
Durante o processo de derivao o no-terminal expandido de
cada forma sentencial sempre o mais esquerda.
Ex. Seja G = ({S,A}, {a, b}, {S AA, A AAA | bA | Ab | a }, S)
DMD de ababaa : S AA Aa AAAa AAbAa AAbaa
AbAbaa Ababaa ababaa
DME de ababaa : S AA aA aAAA abAAA abaAA
ababAA ababaA ababaa
Gramticas Regulares (GR)
Seja gramtica G = (V, , P, S), em que cada regra a forma:
i) A a
ii) A aB
iii) A
sendo que A e B V e a . Ento G Gramtica Linear a Direita.
Seja gramtica G = (V, , P, S), em que cada regra a forma:
i) A a
ii) A Ba
iii) A
sendo que A e B V e a . Ento G Gramtica Linear a Esquerda.
G GR ou G GLD ou G GLE
Equivalncia entre Formalismos
AFN-
AFN AFD
UM UM
PODE SER CONVERTIDO PODE SER CONVERTIDO
Gramtica
Regular
Autmato
Finito
Expresso
Regular
PODE SER CONVERTIDA
PODE SER CONVERTIDA
PODE SER CONVERTIDO
PODE SER CONVERTIDO
G: S aS | aA
A bA | b
Converso GR AF
A converso de uma GR G = (V, , P, S) em um AFN equivalente
M = (Q, , , q
0
, F) obtida da seguinte forma:
1. Q = V U {Z}, se P contm uma regra da forma A a, ou
Q = V, caso contrrio
2. (A, a) = B, para toda regra da forma A aB P, ou
(A, a) = Z, para toda regra da forma A a P
3. q
0
= S
4. F = { A | A P } U {Z}, se Z Q, ou
F = { A | A P }, caso contrrio
S A Z
a b
a b
M:
Converso AF GR
A converso de AFN M = (Q, , , q
0
, F) para uma GR equivalente
G = (V, , P, S) obtida da seguinte forma:
1. V = Q
2. se (A, a) = B, incluir a regra da forma A aB em P
3. se A F, incluir a regra A em P
4. S = q
0
G: S aS | bB | aZ
B bB |
Z
S
Z
b
a
a b
B
M:
Gramtica para Linguagem Reversa
Reverso de Regras
Seja uma GLD G
D
= (V, , P
D
, S) ento
podemos obter uma GLE G
E
= (V, , P
E
, S) tal
que L(G
E
) = L(G
D
)
R
da seguinte forma:
P
E
= { | P
D
em que
V {} }
{
R
| P
D
em que
V }
GLD GLE
Seja uma GLD G
1
= (V
1
, , P
1
, S
1
) ento
podemos obter uma GLE G
2
= (V
2
, , P
2
, S
2
)
tal que L(G
1
) = L(G
2
) da seguinte forma:
1. Determinar L(G
1
)
2. Determinar L(G
1
)
R
3. Obter uma GLD G tal que L(G) = L(G
1
)
R
4. Transformar GLD G em GLE G
2
atravs da
reverso de regras
C
o
n
v
e
r
s

o

E
R

A
F
Converso de AF ER
Seja um AF M.
1. Crie um autmato M com os estados de M e acrescente dois
estados: I (inicial) e F (final);
2. Para o estado inicial q
0
de M, crie um transio lambda do
novo estado inicial I para q
0
. E para cada estado final q
f
de
M, crie transies lambdas de q
f
para F. Assim:
3. Considere o rtulo de cada transio como sendo uma
expresso regular. Por exemplo:
vira
4. Para cada estado interno q
i
do novo autmato faa
para cada par de faa
se no houver ento
crie a transio
seno
crie a transio
se nova transio resultou ento
substitua por
fim para
remova o estado q
i
e suas transies do autmato
fim para
5. A expresso regular corresponde ao rtulo entre I e F
Ex.
1) Construa gramtica para a linguagem sobre = {a, b} onde os
strings tm tamanho par e possuem um nmero mpar de bs.
2) Construa autmatos e expresses regulares para as seguintes
gramticas regulares:
a) S aA b) S aS | bA |
A aA | bA | A aA | bS
3) Construa gramticas regulares para os seguintes autmatos:
a) b)

Você também pode gostar