Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo...
Transcript of Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo...
![Page 1: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/1.jpg)
Minimização de AFD
![Page 2: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/2.jpg)
2
Estados Equivalentes.Exemplo
Considere os estados de aceitação c e g. Eles sãoambos estados que, uma vez atingidos, nunca se saideles, desde que se leia 0 ou 1.
Q: Precisamos desses dois estados?
a
b
1
d
0,1
e
0,1
1
c
0,1
gf
0
0
0
0
1
1
![Page 3: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/3.jpg)
3
Estados Equivalentes.Exemplo
R: Não, eles podem ser unificados como se mostraabaixo.
Q: Existem outros estados que podem ser unificadosporque quaisquer sufixos subsequentes produzem o mesmo resultado?
a
b
1
d 0,1e1
0,1
cg
f
0
0 0
0
1
1
![Page 4: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/4.jpg)
4
Estados Equivalentes.Exemplo
R: Sim, b e f. Note que se estamos em b ou f então:
1. se o string termina, é rejeitado em ambos os casos
2. se proxchar=0, aceita c/ qq sufixo em ambos os casos
3. Se proxchar=1, rejeita c/ qq sufixo em ambos os casos
Portanto,
unifique b com f.
a
b
1
d 0,1e1
0,1
cg
f
0
0 0
0
1
1
![Page 5: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/5.jpg)
5
Estados Equivalentes.Exemplo
Intuitivamente, dois estados são equivalentesse todos as computações subsequentes a partir deles são iguais.
Q: Dê uma caracterização formal de equivalência entre estados.
a
0,1
d 0,1e1
0,1
cg
bf
0
0
1
![Page 6: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/6.jpg)
6
Estados Equivalentes.Exemplo
DEF: Dois estados q e q’ em um AFD M = (Q, Σ, δ, q0, F ) são equivalentes (ouindistinguiveis) se, para quaisquerstrings u ∈ Σ*, os estados a que u leva, quando lido a partir de q ou de q’ sãoambos de aceitação, ou ambos de rejeição.
Estados equivalentes podem ser unificados em um único, sem que issoafete o comportamento de M.
![Page 7: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/7.jpg)
7
Concluindo o ExemploQ: Existem outras maneiras de
simplificar o autômato abaixo?
a
0,1
d 0,1e1
0,1
cg
bf
0
0
1
![Page 8: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/8.jpg)
8
Estados InúteisR: Sim: elimine o estado d.
A eliminação de estados inúteis(inatingíveis a partir do estado inicial) não altera a linguagem aceita.
a
0,1
0,1e
0,1
cg
bf0
1
![Page 9: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/9.jpg)
9
Algoritmo de Minimização.
DEF: Um autômato é irredutível se – Não contém estados inúteis, e
– não contém estados distintos equivalentes.
O objetivo do algoritmo de minimização é criar um autômato irredutível a partir de um autômatodado. Pode-se mostrar que esse algoritmo de fato produz o menor AFD possível equivalenteao AFD original. Portanto o nome “minimização”.
O algoritmo de minimização trabalha ao inverso do quevimos no exemplo anterior. Começa pelo menor númeropossível de estados e cria novos estados quando éforçado a isso. Vamos explicar com um jogo:
![Page 10: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/10.jpg)
10
O Jogo MINIMIZAR0. Todos os jogadores inúteis são eliminados.1. O jogo procegue em rodadas. 2. Começa com 2 times: ACEITA vs. REJEITA.3. Cada rodada consiste de sub-rodadas, uma
para cada time.4. Dois membros de um time concordam se,
para um dado rótulo, passam o bastão para o mesmo time. Caso contrário, discordam.
5. Durante uma sub-rodada, membros quediscordam são divididos em novos times maximais de membros concordantes entre si.
6. O jogo TERMINA quando se passa umarodada sem que nenhum time seja dividido.
![Page 11: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/11.jpg)
11
O Jogo MINIMIZAR
a
b
1
d
0,1
e
0,1
1
c
0,1
gf
0
0
0
0
1
1
![Page 12: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/12.jpg)
12
Algoritmo de Minimização.(Refinamento da Partição)
AFD minimize(AFD (Q, Σ, δ, q0, F ) )
remova qq estado q não atingível a partir de q0
Partition P = {F, Q - F }
boolean Consistent = false
while( Consistent == false )
Consistent = true
for(every Set S ∈ P, char a ∈ Σ, Set T ∈ P )
Set temp = {q ∈T | δ(q,a) ∈S }
if (temp != Ø && temp != T )
Consistent = false
P = (P −T )∪{temp,T−temp}
return defineMinimizor( (Q, Σ, δ, q0, F ), P )
![Page 13: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/13.jpg)
13
Algoritmo de Minimização.(Refinamento da Partição)
AFD defineMinimizor(AFD (Q, Σ, δ, q0, F ), Partition P )
Set Q’ =P
State q’0 = the set in P which contains q0
F’ = { S ∈ P | S ⊆ F }
for (each S ∈ P, a ∈ Σ)
define δ’ (S,a) = the set T ∈ P which contains the states δ’(S,a)
return (Q’, Σ, δ’, q’0, F’ )
![Page 14: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/14.jpg)
14
Minimização: Exemplo
Considere o AFD
![Page 15: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/15.jpg)
15
Minimização: Exemplo
Versão miniatura�
![Page 16: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/16.jpg)
16
Minimização: Exemplo
Divida em dois times.
ACEITA
vs.
REJEITA
![Page 17: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/17.jpg)
17
Minimização: Exemplo
O rótulo 0 não causa
divisão nos times
![Page 18: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/18.jpg)
18
Minimização: Exemplo
O rótulo 1 causa
divisão do time
maior em 2
![Page 19: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/19.jpg)
19
Minimização: Exemplo
Nenhuma divisão mais.
TERMINOU!
![Page 20: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/20.jpg)
20
Minimização: Exemplo.Resultado
Os estados do autômato mínimo
são os times resultantes.
As transições entre esses estados
são consolidadas. O estado
inicial é o time que contém
o estado inicial original.
![Page 21: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/21.jpg)
21
Minimização: Exemplo.Compare
100100101
![Page 22: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/22.jpg)
22
Minimização: Exemplo.Compare
100100101
![Page 23: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/23.jpg)
23
Minimização: Exemplo.Compare
100100101
![Page 24: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/24.jpg)
24
Minimização: Exemplo.Compare
100100101
![Page 25: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/25.jpg)
25
Minimização: Exemplo.Compare
100100101
![Page 26: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/26.jpg)
26
Minimização: Exemplo.Compare
100100101
![Page 27: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/27.jpg)
27
Minimização: Exemplo.Compare
100100101
![Page 28: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/28.jpg)
28
Minimização: Exemplo.Compare
100100101
![Page 29: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/29.jpg)
29
Minimização: Exemplo.Compare
100100101
![Page 30: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/30.jpg)
30
Minimização: Exemplo.Compare
100100101
ACEITA.
![Page 31: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/31.jpg)
31
Minimização: Exemplo.Compare
10000
![Page 32: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/32.jpg)
32
Minimização: Exemplo.Compare
10000
![Page 33: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/33.jpg)
33
Minimização: Exemplo.Compare
10000
![Page 34: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/34.jpg)
34
Minimização: Exemplo.Compare
10000
![Page 35: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/35.jpg)
35
Minimização: Exemplo.Compare
10000
![Page 36: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/36.jpg)
36
Minimização: Exemplo.Compare
10000
REJEITA.
![Page 37: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/37.jpg)
37
Minimização: Prova
O algoritmo apresentado produz um AF irredutível. Porque esse AF seria o menorAF possível que reconhece a linguagemaceita pelo AF original?
Questão análoga em cálculo: Por que um mínimo local seria um mínimo global? Nem sempre é o caso!
![Page 38: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/38.jpg)
38
Minimização: Prova
THM (Myhill-Nerode): O algoritmo de minimizaçãoproduz um autômato mínimo equivalente.
Proof. Vamos mostrar que qq autômato irredutívelé mínimo para a linguagem L que ele aceita:
Dizemos que strings u,v ∈Σ* são indistinguíveisse para todo sufixo x, ux ∈L sse vx ∈L .
Note que se u ev são distinguíveis, os caminhos, a partir do estado inicial, rotulados por u e por v devem terminar em estados diferentes.
![Page 39: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/39.jpg)
39
Minimização: Prova
Consequentemente, o número de estados em um AFD para L deve ser pelo menos igual ao aonúmero de strings mutuamente distinguíveis de L.
Mas um AFD irredutível tem a propriedade de quetodo estado dá origem a outro string mutuamente distinguível do anterior!
Portanto, qq outro AFD para L deve ter pelomenos tantos estados quantos os de um AFD irredutível.
Vejamos como essa prova funciona:
![Page 40: Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo sufixo x, ux ∈L sse vx ∈L . Note que se u ev são distinguíveis, os caminhos,](https://reader036.fdocuments.net/reader036/viewer/2022081408/606f774f85d3206a2d06fdfc/html5/thumbnails/40.jpg)
40
Minimização: Prova. ExemploA “spanning tree” dos strings {ε,0,01,00} é um
conjunto de estados mutuamentedistinguíveis (caso contrário ocorreriaredundância, AFD teria sido reduzido).
Qualquer outro AFD para L tem ≥4 estados.
a
0,1
0,1e
0,1
cg
bf0
1