Minimização de AFD - DECOM · Dizemos que strings u,v ∈Σ* são indistinguíveis se para todo...

40
Minimização de AFD

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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