04-AF-P01
-
Upload
ofernandes2 -
Category
Documents
-
view
2 -
download
0
Transcript of 04-AF-P01
-
5/21/2018 04-AF-P01
1/35
Autmatos Finitos
Mquinas de Estado Finito
So mquinas abstratas que capturam as partes essenciais dealguma mquina concreta.
Embora existam mquinas abstratas conceitualmente maispoderosas 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
-
5/21/2018 04-AF-P01
2/35
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
305
25 205
155
105
55
05
10 10 10 10 10
25 25 25 25 25
25
10
5,10,2530 0
-
5/21/2018 04-AF-P01
3/35
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 dadoum seqncia de smbolos na entrada.
Linguagens regulares so aquelas aceitas por mquinas deestado finito.
-
5/21/2018 04-AF-P01
4/35
Autmatos FinitosSo mquinas de estado finito do tipo reconhecedor de
linguagem.
Consiste em um conjunto Q de estados e um conjunto detransies 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 q0;- um conjunto de estados finais F.
-
5/21/2018 04-AF-P01
5/35
Alfabeto de entrada: =
Estados do autmato: Q =
Estado inicial: q0 =
Estados finais: F =
Transies:
Autmatos Finitos Determinsticos
Um AFD uma quntupla M = (Q, , , q0, F) onde:- Q = conjunto de estados - = alfabeto de entrada
- = funo total de Q Q - q0 = estado inicial
- F = conjunto de estados finais
-
5/21/2018 04-AF-P01
6/35
Em um AFD, cada par estado-smbolo possui uma nicatransio correspondente - da seu determinismo.
Comportamento do Autmato
Os apontadores indicam o estado atual da mquina(inicialmente q0). 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?
-
5/21/2018 04-AF-P01
7/35
Autmatos EquivalentesSeja o AFD M = (Q, , , q0, 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 orestante do string de entrada que deve ser lido.
[qi, w]
-
5/21/2018 04-AF-P01
8/35
Transio do Autmato[qi, aw] [(qi, a), w] uma transio do autmato
[qi, w] [qj, v] corresponde a 0 ou mais transies do
autmato
Linguagem Reconhecida
L(M) = {w
* | [q0, w] [q
i,
] e q
i F}
Ex. Verificar se o autmato ao lado
reconhece as strings de entrada
0101 e 0100.
*
*
-
5/21/2018 04-AF-P01
9/35
Determinismo IncompletoQuando 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?
-
5/21/2018 04-AF-P01
10/35
Ex. Construa AFDs para as seguintes linguagens sobre o alfabeto = {0, 1}.
1) As linguagens denotadas por:
a) (0 1)*
b) 0 (0 1)*
1c) (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 = 0n1n, n 0}
E se fosse n k, k N?
-
5/21/2018 04-AF-P01
11/35
Implementao de um Autmato
-
5/21/2018 04-AF-P01
12/35
algo
ritmo
inteiroEstado
caracterSm
bolo
Estado
0
enquantoe
xistesmbolo
naentrada
faa
leia(Smbolo)
esc
olherEstado
caso0:
escolherS
mbolo
caso
a:Estado
1
caso
b:Estado
2
fim
escolher
caso1:
escolherS
mbolo
caso
a:Estado
1
caso
b:Estado
2
fim
escolher
caso2
:escolherS
mbolo
caso
a:Estado
0
caso
b:Estado
2
fim
escolher
fim
escolher
fim
enquanto
seEstado=
2ento
esc
reva(Ostringfoireconh
ecido)
sen
o
esc
reva(Ostringnofoireconhecido)
fim
se
fim
algoritmo
-
5/21/2018 04-AF-P01
13/35
Autmatos Finitos No DeterminsticosSo autmatos que permitem mais de uma transio partindo deum estado para um mesmo smbolo do alfabeto de entrada.
Ex: (qn, a) = {qi}(qn, a) = {qi, qj, qk}(qn, a) =
Definio: Um Autmato Finito No Determinstico (AFN) umaquntupla M = (Q, , , q0, F) , onde:- Q = conjunto de estados
- = alfabeto de entrada- q0 = estado inicial- F = conjunto de estados finais
- = funo total de Q P (Q)
-
5/21/2018 04-AF-P01
14/35
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 [q0, w] [qi, ] com qi F}
0,1
0 1 2 30,1 0,11
*
-
5/21/2018 04-AF-P01
15/35
Transies Lambda
Uma transio lambda () uma transio que pode ocorrerentre estados do autmato sem que nenhum smbolo da
entrada seja lido.
-
5/21/2018 04-AF-P01
16/35
Definio: Um Autmato Finito No Determinstico com Transio
Lambda (AFN-) uma quntupla M = (Q, , , q0, F) , onde:
- Q = conjunto de estados - = alfabeto de entrada
- q0 = 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 qi, smbolo a), determinar que estados qjpodem ser alcanados a partir de qi quando o smbolo a lido daentrada.
-
5/21/2018 04-AF-P01
17/35
Ex: Que estados podem ser alcanados a partir de 1 quando a
lido da entrada?
-
5/21/2018 04-AF-P01
18/35
Fecho-Lambda:
O fecho-lambda de um estado qi, denotado por fecho- (qi), o conjunto de todos os estados que podem ser alcanados a
partir de qi sem nenhuma leitura de smbolo da entrada.
Definio: O fecho- (qi) definido recursivamente:
Base: qi fecho- (qi)
Recurso: Seja qj um elemento de fecho- (qi). Se existe
uma transio (qj, ) = qk, ento qk tambmpertence a fecho- (qi)
O conjunto de estados que podem ser alcanados a partir de
qi quando o smbolo a lido da entrada formado daseguinte forma:
- para cada qj fecho- (qi), inclua (qj, a)- inclua tambm o fecho- de cada um destes estados
-
5/21/2018 04-AF-P01
19/35
Construo de um AFD a partir de um AFN-Dado um AFN- M = (Q, , , q0, F),
um AFN equivalente M= (Q, , , q0, F) pode ser
construdo da seguinte forma:(qi, a) = U fecho - ((r, a))
r fecho -(qi)
F {q0} , se fecho-(q0) F , ou
F , caso contrrio.
Ex.
F =
1
A
B
0
C
ED
1
0
0
0
1
1
-
5/21/2018 04-AF-P01
20/35
Construo de um AFD a partir de um AFN
Dado o AFN M = (Q, , , q0, F),o AFD M= (Q, , , q0, F) equivalente construdoda seguinte forma:
Q = P(Q)
(R, a) = { q Q | q (r, a) para r R } = U (r, a)r R
q0 = { q0}F = { R Q | R F }
Para um AFN-M = (Q, , , q0, F), substituir
(R, a) = { q Q | q fecho-( (r, a) ) para r R }
= U fecho-( (r, a) )r R
q0 = fecho-( q0 )
-
5/21/2018 04-AF-P01
21/35
Algoritmo Iterativo para AFN AFD
Seja AFN M = (Q, , , q0, F), um AFD M= (Q, , , q0, F)equivalente construdo da seguinte forma:
crie o estado q0 = [q0] e o insira em Qpara cada estado X de Q faa
para cada smbolo a faa
seja Y = U (qi, a)qj X
se Y Q ento
crie o estado Y
insira Y em Q
crie a transio (X, a) = Y
fim para
fim para
-
5/21/2018 04-AF-P01
22/35
GramticasIntroduo
Expresses regulares e AFs so usados para se especificar ereconhecer 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 asGramticas Livres de Contexto, Gramticas Sensveis ao
Contexto e Gramticas Irrestritas.
-
5/21/2018 04-AF-P01
23/35
Produo, Derivao e outros conceitosSmbolos 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
-
5/21/2018 04-AF-P01
24/35
Definio de GramticaUma 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 produosubstituem 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 }
-
5/21/2018 04-AF-P01
25/35
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 decada forma sentencial sempre o mais direita.
Derivao mais esquerda (DME)
Durante o processo de derivao o no-terminal expandido decada 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
-
5/21/2018 04-AF-P01
26/35
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
-
5/21/2018 04-AF-P01
27/35
Equivalncia entre Formalismos
AFN-AFNAFD
UM UM
PODE SER CONVERTIDOPODE SER CONVERTIDO
Gramtica
Regular
Autmato
Finito
Expresso
Regular
PODE SER CONVERTIDA
PODE SER CONVERTIDA
PODE SER CONVERTIDO
PODE SER CONVERTIDO
-
5/21/2018 04-AF-P01
28/35
G: S aS | aA
A bA | b
Converso GR AFA converso de uma GR G = (V, , P, S) em um AFN equivalente
M = (Q, , , q0, F) obtida da seguinte forma:
1. Q = V U {Z}, se P contm uma regra da forma Aa, 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. q0 = S4. F = { A | A P } U {Z}, se Z Q, ou
F = { A | A P }, caso contrrio
S A Za b
a bM:
-
5/21/2018 04-AF-P01
29/35
Converso AF GRA converso de AFN M = (Q, , , q0, 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 = q0
G: S aS| bB | aZ
B bB | Z
S
Z
b
a
a b
B
M:
-
5/21/2018 04-AF-P01
30/35
Gramtica para Linguagem Reversa Reverso de Regras
Seja uma GLD GD = (V, , PD, S) entopodemos obter uma GLE GE = (V, , PE, S) talque L(GE) = L(GD)R da seguinte forma:
PE = { | PD em que
V {} } { R | PD em que
V }
-
5/21/2018 04-AF-P01
31/35
GLD GLESeja uma GLD G1 = (V1, , P1, S1) ento
podemos obter uma GLE G2 = (V2, , P2, S2)tal que L(G1) = L(G2) da seguinte forma:
1. Determinar L(G1)
2. Determinar L(G1)R
3. Obter uma GLD G tal que L(G) = L(G1)R
4. Transformar GLD G em GLE G2 atravs da
reverso de regras
-
5/21/2018 04-AF-P01
32/35
C
onversoER
AF
-
5/21/2018 04-AF-P01
33/35
Converso de AF ERSeja 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 q0 de M, crie um transio lambda do
novo estado inicial I para q0. E para cada estado final qfde
M, crie transies lambdas de qfpara F. Assim:
3. Considere o rtulo de cada transio como sendo uma
expresso regular. Por exemplo:
vira
-
5/21/2018 04-AF-P01
34/35
4. Para cada estado interno qi 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 qi e suas transies do autmato
fim para
5. A expresso regular corresponde ao rtulo entre I e F
-
5/21/2018 04-AF-P01
35/35
Ex.
1) Construa gramtica para a linguagem sobre = {a, b} onde osstrings 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)