• Nenhum resultado encontrado

Linguagens Formais e Autômatos

N/A
N/A
Protected

Academic year: 2019

Share "Linguagens Formais e Autômatos"

Copied!
89
0
0

Texto

(1)

DCC063

Linguagens Formais

e Autômatos

(2)

Equivalência entre AFD e AFN com e sem  -transições

 Para um autômato finito com -transições (ou

com movimento vazio) define-se o -fecho de um estado e como o conjunto de estados alcançáveis a partir de e utilizando-se somente

-transições:

 ε𝑓𝑒𝑐ℎ𝑜 𝑞 = {𝑝 ∈ 𝑄| መ𝛿 𝑞, ε ⊢∗ 𝑝, ε }

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(3)

Equivalência entre AFD e AFN com e sem  -transições

 Algoritmo (ε𝑓 𝑞 significa ε𝑓𝑒𝑐ℎ𝑜 𝑞 ): ε𝑓 𝑞 ≔ 𝑞 ;

𝐞𝐪𝐮𝐚𝐧𝐭𝐨 ∃𝛿 𝑝, ε → 𝑟 com 𝑝 ∈ ε𝑓 𝑞 𝐞 𝑟 ∉ ε𝑓 𝑞 𝐟𝐚ç𝐚 ε𝑓 𝑞 ≔ ε𝑓 𝑞 ∪ 𝑟 ;

fim-equanto;

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(4)

 Exemplo: Determinar o -fecho de cada estado

do autômato:

 -fecho(e0) = {e0, e1, e2}  -fecho(e1) = {e1, e2}  -fecho(e ) = {e }

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

0 1 2 

e0 e0 - - e1 e1 - e1 - e2 * e2 - - e2

-e0 e1 e2

2 0

 

(5)

Equivalência de AFN e AFN com AFD (Construção de AFD a partir de um AFN)

 Seja 𝑀 = 𝐾, Σ, Δ, 𝑠, 𝐹 um AFN. Devemos

construir um AFD 𝑀′ = 𝐾′, Σ, 𝛿, 𝑠′, 𝐹′ equivalente a M da seguinte forma:

 𝐾′ = 2𝐾  𝑠′ = 𝜀𝑓 𝑠

 𝐹′ = 𝑄 ⊆ 𝐾′|𝑄 contém um estado final de 𝑀

 e, para cada 𝑄 ⊆ 𝐾 e cada símbolo 𝑎 ∈ Σ, definir:

δ 𝑄, 𝑎 =∪ 𝜀𝑓 𝑝 |𝑝 ∈ 𝐾 e 𝑞, 𝑎 → 𝑝 ∈ ∆, para 𝑞 ∈ 𝑄

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(6)

Ideia do Algoritmo

 Veja o exemplo a seguir

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

a

a

a

a

a

a Caso 1

(7)

 Exemplo1: Transformar o AF abaixo em um AFD:

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

7

q1  q2 q10

q3 q5

q6 q4

q7 q8 q9

0

1

   0

(8)

 Exemplo1: Transformar o AF abaixo em um AFD:

 Calculo do -fecho para cada um dos 10 estados de A:

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

8

Estado-fecho q1 q2 q3 q4 q5 q1 q2 q4 q3 q5

Estado-fecho q6 q7 q8 q9 q10 q6 q9 q8 q10 q7 ,q2 ,q8

,q3 ,q4

,q7

,q7

,q2

,q9 q3 ,q4 ,q9

,q8 q

,q8

,q8 q2

q3 ,q4

,q

,q9

,q9

,q ,q

(9)

 Exemplo1: Transformar o AF abaixo em um AFD:

 Determinar o novo estado inicial s1:

𝑠1 = 𝜀𝑓 𝑞1 = 𝑞1, 𝑞2, 𝑞3, 𝑞4, 𝑞8, 𝑞9

 Quais estados são atingidos, usando apenas

transições não 𝜀, pelos estados que estão em 𝜀𝑓 𝑞1 .

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

9

0 1

s1 q5, q10 q6

0 s1

q5,10

(10)

 Exemplo1: Transformar o AF abaixo em um AFD:  Novo estado s2:

𝑠2 = 𝜀𝑓 𝑞5 ∪ 𝜀𝑓 𝑞10 = 𝑞2, 𝑞3, 𝑞4, 𝑞5, 𝑞8, 𝑞9, 𝑞10

 Transições para s2.

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

10

0 1

s2 q5, q10 q6

0

s2

q5,10

(11)

 Exemplo1: Transformar o AF abaixo em um AFD:  Novo estado s3:

𝑠3 = 𝜀𝑓 𝑞6 = 𝑞2, 𝑞3, 𝑞4, 𝑞6, 𝑞7, 𝑞8, 𝑞9

 Transições para s3.

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

11

0 1

s3 q5, q10 q6

0

s3

q5,10

(12)

 Exemplo1: Transformar o AF abaixo em um AFD:

 Foram analisados todos os conjuntos de estados

atingidos por transições não . Logo, podemos

construir o AFD resultante.

 Os novos estados que contêm o estado final q10

também serão finais.

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

12

 0 1

s1 s2 s3

* s2 s

2 s3

s3 s

2 s3

0

s1

1

s2

s3

0

0 1

(13)

 Exemplo2: Transformar o AF abaixo em um AFD:

 Cálculo do fecho:  f(e0) = {e0, e1, e2}  f(e1) = {e1, e2}  f(e ) = {e }

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

0 1 2 

e0 e0 - - e1

e1 - e1 - e2

* e2 - - e2

-13

e0 e1 e2

2 0

 

(14)

 Exemplo2: Transformar o AF abaixo em um AFD:

 Determinar o novo estado inicial s1:

𝑠1 = 𝜀𝑓 𝑒0 = 𝑒0, 𝑒1, 𝑒2

 Quais estados são atingidos, usando apenas

transições não 𝜀, pelos estados que estão em 𝜀𝑓 𝑒0 .

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

14

0 1 2

s1 e0 e1 e2

0

s1

e0

e1 1

(15)

 Exemplo2: Transformar o AF abaixo em um AFD:  Novo estado s2:

𝑠2 = 𝜀𝑓 𝑒1 = 𝑒1, 𝑒2

 Transições para s2.

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

15

1

s2

e1

e2 2

0 1 2

(16)

 Exemplo2: Transformar o AF abaixo em um AFD:  Novo estado s3:

𝑠3 = 𝜀𝑓 𝑒2 = 𝑒2

 Transições para s3.

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

16

s3 2 e2

0 1 2

(17)

 Exemplo2: Transformar o AF abaixo em um AFD  Substituir cada ei por seu respectivo f(ei), Assim:

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

17

0 1 2

s1 e0 e1 e2

0 1 2

s2e1 e2

0 1 2

s3 – – e2

0 1 2

s1f(e0) f(e1) f(e2)

0 1 2

s1 s1 s2 s3

0 1 2

s2 – f(e1) f(e2)

0 1 2

s2 – – f(e2)

0 1 2

s2s2 s3

0 1 2

(18)

 Exemplo2: Transformar o AF abaixo em um AFD

 Finalmente, obtém-se o AFD:

 Como o e2 está no fecho de s1, s2 e s3; estes também

serão estados finais.

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

18

 0 1 2

* s

1 s1 s2 s3

* s

2s2 s3

* s

3 – – s3

s3

2

0 1

s2 s1 1

2

(19)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

 Exemplo3: Transformar AFN → AFD,

considerando o AFN abaixo:

b b

 

b

q0 q1 q2 q3 q4 q5 a

a b  q0 - q1 q1 q1 - - q2, q5 q2 q4 q3 -q3 - q4 -q4 - - q2, q5

* q - -

- Tabela

(20)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estado -fecho

q0 q0, q1, q2, q5 q1 q1, q2, q5 q2 q2

q3 q3

q4 q4, q2, q5

q q

20

(21)

 Exemplo3: Transformar AFN → AFD:

 Determinar o novo estado inicial s1:

𝑠1 = 𝜀𝑓 𝑞0 = 𝑞0, 𝑞1, 𝑞2, 𝑞5

 Quais estados são atingidos, usando apenas

transições não 𝜀, pelos estados que estão em 𝜀𝑓 𝑞0 .

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

21

a b

(22)

 Exemplo3: Transformar AFN → AFD:  Novo estado s2:

𝑠2 = 𝜀𝑓 𝑞1 ∪ 𝜀𝑓 𝑞3 = 𝑞1, 𝑞2, 𝑞3, 𝑞5

 Transições para s2.

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

22

a b

(23)

 Exemplo3: Transformar AFN → AFD:  Novo estado s3:

𝑠3 = 𝜀𝑓 𝑞4 = 𝑞2, 𝑞4, 𝑞5

 Transições para s3.

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

23

a b

(24)

 Exemplo3: Transformar AFN → AFD:  Novo estado s4:

𝑠4 = 𝜀𝑓 𝑞3 ∪ 𝜀𝑓 𝑞4 = 𝑞2, 𝑞3, 𝑞4, 𝑞5

 Transições para s4.

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

24

a b

(25)

 Exemplo3: Transformar AFN → AFD:  Novo estado s5:

𝑠5 = 𝜀𝑓 𝑞3 = 𝑞3

 Transições para s4.

 Estas serão as transições partindo de s5.

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

25

a b

(26)

 Exemplo3: Transformar AFN → AFD:

 Foram analisados todos os conjuntos de estados

atingidos por transições não .

 Juntando as tabelas

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

26

a b

s1 q4 q1, q3

s2 q4 q3, q4

s3 q4 q3

s4 q4 q3, q4

s5q4

𝑠1 = 𝜀𝑓 𝑞0

𝑠2 = 𝜀𝑓 𝑞1 ∪ 𝜀𝑓 𝑞3 𝑠3 = 𝜀𝑓 𝑞4

𝑠4 = 𝜀𝑓 𝑞3 ∪ 𝜀𝑓 𝑞4 𝑠5 = 𝜀𝑓 𝑞3

(27)

 Exemplo3: Transformar AFN → AFD:

 AFD resultante:

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

27

a b

* s

1 s3 s2

* s

2 s3 s4

* s

3 s3 s5

* s

4 s3 s4

s5s3

(28)

 Exemplo4: Transformar AFN → AFD:

 Cálculo do fecho:  f(1) = {1, 3}

 f(2) = {2}  f(3) = {3}

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

28

1 b

a, b

2 a 3

(29)

 Exemplo4: Transformar AFN → AFD:

 Determinar o novo estado inicial s13:

𝑠13 = 𝜀𝑓 1 = 1,3

 Quais estados são atingidos, usando apenas

transições não 𝜀, pelos estados que estão em 𝜀𝑓 1 .

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

29

a b

(30)

 Exemplo4: Transformar AFN → AFD:  Novo estado s2:

𝑠2 = 𝜀𝑓 2 = 2

 Transições para s2.

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

30

a b

(31)

 Exemplo4: Transformar AFN → AFD:

 Novo estado s23:

𝑠23 = 𝜀𝑓 2 ∪ 𝜀𝑓 3 = 2,3

 Transições para s23.

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

31

a b

(32)

 Exemplo4: Transformar AFN → AFD:  Novo estado s123:

𝑠123 = 𝜀𝑓 1 ∪ 𝜀𝑓 2 ∪ 𝜀𝑓 3 = 1,2,3

 Transições para s123.

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

32

a b

(33)

 Exemplo4: Transformar AFN → AFD:  Novo estado s3:

𝑠3 = 𝜀𝑓 3 = 3

 Transições para s3.

 Estas serão as transições partindo de s .

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

33

a b

(34)

 Exemplo4: Transformar AFN → AFD:

 Foram analisados todos os conjuntos de estados

atingidos por transições não .

 Juntando as tabelas

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

34

a b

s13 1 2

s2 2, 3 3

s23 2, 3, 1 3

s123 2, 3, 1 2, 3

s3 1 –

𝑠13 = 𝜀𝑓 1 𝑠2 = 𝜀𝑓 2

𝑠23 = 𝜀𝑓 2 ∪ 𝜀𝑓 3

𝑠123 = 𝜀𝑓 1 ∪ 𝜀𝑓 2 ∪ 𝜀𝑓 3 𝑠3 = 𝜀𝑓 3

(35)

 Exemplo4: Transformar AFN → AFD:

 AFD resultante:

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

35

a b

* s

13 s13 s2

s2 s23 s3

s23 s123 s3

* s

123 s123 s23

s3 s13

s13 b

a

s2

a b

s3

s23

s123 a b

a b

(36)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Minimização de Autômatos Finitos

 Diz-se que um AF é mínimo se ele não possui

estados inatingíveis ou mortos e se não existem estados equivalentes entre si;

 Exceto pelos nomes dos estados, existe apenas

uma máquina mínima para um dado problema de reconhecimento

(37)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Inatingíveis

 Pode haver alguns estados no AF que nunca

serão atingidos com nenhuma sequência de símbolos a partir do estado inicial.

 Tais estados são chamados de estados

inatingíveis. As linhas da tabela que correspondem a estados inatingíveis podem ser simplesmente removidas da tabela de transição para deixar a máquina com menos estados.

(38)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Inatingíveis

Algoritmo: Eliminação de Estados

Inatingíveis

 Entrada: Um Autômato Finito

M = (E, A, t, e0, F)

 Saída: Um Autômato Finito sem estados

Inatingíveis

M’ = (E’, A, t’, e0, F’)

(39)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Inatingíveis

 Inicialize o conjunto de estados atingíveis E’ com o estado

inicial e0.

 Adicione, em E’, para cada estado e, presente no conjunto E’,

todos os estados d que podem ser alcançados por uma

transição a partir de e, ou seja, todos os estados d tal que t(e,x) = d para algum xA.

 Se nenhum novo estado pode ser adicionado ao conjunto E’

com o uso destas regras, já foi obtido o conjunto de estados atingíveis.

 Coloque em t’ todas as transições t(x,y)=z tal que x,zE’ e yA.

Coloque em F’ todos os estados que pertencem simultaneamente a F e a E’.

(40)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Mortos

 Um estado e de um AF é morto se ele não é final

e se a partir dele não se pode atingir nenhum estado final.

 Para eliminar os estados mortos de um AF M

proceda como segue:

Algoritmo: Eliminação de Estados Mortos

 Entrada: Um AF M = (E, A, t, e0, F)

 Saída: Um AF sem estados mortos M’ = (E’, A, t’, e0’,

(41)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Mortos

 (1)Inicialize o conjunto de estados não-mortos E’ com os

estados finais F de M.

 (2)Para cada estado e em E’, adicione os estados de E que

levam para e com uma transição de t para algum símbolo de

entrada. Ou seja, adicione em E’ o conjunto {x| t(x,a) = e, eE’

e aA}

 (3)Repita o passo (2) até que mais nenhum estado possa ser

adicionado ao conjunto E’.

 (4)Coloque em t’ todas as transições t(x,y) = z tal que x, zE’ e yA. Se e0E’ então faça e0’= e0; caso contrário, e0’ é um novo

símbolo de estado e a linguagem reconhecida pelo autômato é vazia, uma vez que o estado inicial é morto.

(42)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 Considere os estados de aceitação (finais) c e g.

São estados que, uma vez atingidos, nunca se sai deles, desde que que se leia 0 ou 1. Esses dois estados são realmente necessários?

42

c

0,1 b

0

a d

g

0 1

0

1 0,1

f

e 0

1

1

0,1

(43)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 Quando o controle atinge os estados b ou f então:

 se a cadeia termina, é rejeitada em ambos casos;

 se a próxima entrada é 0, aceita com qualquer sufixo em

ambos casos

 se a próxima entrada é 1, rejeita com qualquer sufixo em

ambos casos

43

b 0

a d c,g

0 1 0 1 0,1 f e 0 1 1 0,1 Os estados b e f

(44)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 Intuitivamente, dois estados são equivalentes se

todas as computações a partir deles são iguais 44

b,f 0

a

d

c,g 0

0,1 e

0

1

1

(45)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 Removendo o estado inatingível d e o estado morto

e obtém-se o autômato:

45

b,f 0

a c,g

0

(46)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 Dois estados e e d são equivalentes se e somente

se as duas condições seguintes forem satisfeitas:  (a)Condição de compatibilidade: os estados e e d

devem ser ambos finais ou ambos não-finais.

(b)Condição de propagação: para qualquer símbolo

de entrada, os estados e e d devem levar a estados

equivalentes.

(47)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 As condições (a) e (b) podem ser incorporadas

em um teste geral de equivalência entre estados

 O método é chamado método da separação, uma

vez que seu objetivo é separar, ou particionar, o conjunto de estados em subconjuntos disjuntos, ou blocos, tal que estados não-equivalentes fiquem em blocos separados

(48)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 O método é ilustrado por sua aplicação no AF da

tabela seguinte:

t a b e1 e6 e3 e2 e7 e3 e3 e1 e5 e4 e4 e6 * e5 e7 e3 * e6 e4 e1 * e e e

(49)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 Os estados são inicialmente separados em dois

blocos; um contendo os estados finais e outro contendo os estados não-finais (Cond. Compatilidade)

 Para o exemplo, a partição inicial L0 é dada pela

seguinte lista:

L0 = [{e1, e2, e3, e4},{e5, e6, e7}]

 já que e1, e2, e3 e e4 são estados não finais e e5, e6

e e7 são estados finais

(50)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 Observe o que acontece aos estados no bloco {e1,

e2, e3, e4} com entrada a:

 Os estados e3 e e4 vão para estados contidos no

primeiro bloco (e1 e e4 respectivamente)

 enquanto os estados e1 e e2 vão para estados no

segundo bloco (e6 e e7 respectivamente)

 Isto significa que para qualquer estado no

conjunto {e1, e2 } e qualquer estado em {e3, e4} os estados seguintes correspondendo a entrada a não serão equivalentes

(51)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 Pode concluir que nenhum estado em {e1, e2}

será equivalente a nenhum estado em {e3, e4}. Isto habilita a construção de uma nova partição:

L1 = [{e1, e2},{e3, e4},{e5, e6, e7}]

 Agora se tentará encontrar um bloco em L1 e

uma entrada tal que o bloco possa ser separado com respeito a entrada e uma nova partição seja assim obtida

(52)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 Este processo deve ser repetido até que

nenhuma nova separação seja possível. No exemplo, a continuação seria a seguinte:

Separando {e3, e4} de L1 com respeito a a: L2 = [{e1, e2},{e3},{e4},{e5, e6, e7}]

Separando {e5, e6, e7} de L2 com respeito a a (ou b):

L3 = [{e1, e2},{e3},{e4},{e5},{e6, e7}]

(53)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 A partição L3 não pode ser mais separada. Para

verificar isto, observe que todos os estados no bloco {e1, e2} vão para estados no bloco {e6, e7} com entrada a, e para o bloco {e3} com entrada b

 Similarmente {e6, e7} vão para os blocos {e4 } e

{e1, e2} com entrada a e b, respectivamente

(54)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 Quando o procedimento termina, os estados

dentro de um mesmo bloco são equivalentes. No exemplo, os estados e1 e e2 são equivalentes e os estados e6 e e7 também.

 Os blocos da partição final podem ser usados

para construir uma nova máquina, a qual é equivalente à original, porém sem possuir estados equivalentes.

(55)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 Para o exemplo a máquina mínima resultante

seria:

t a b t a b

{e1, e2} {e6, e7} {e3} e1 e5 e2

{e3} {e1, e2} {e5} e2 e1 e4

{e4} {e4} {e6, e7} ou e3 e3 e5 * {e5} {e6, e7} {e3} * e4 e5 e2 * {e6, e7} {e4} {e1, e2} * e5 e3 e1

(56)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estados Equivalentes

 Ou em forma de diagrama de transição (com os

estados renomeados):

e1

a

e2

e5

b a

b

e4

e3

a a

a

b

b

(57)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

57

Estados Equivalentes

 Exemplo 2: Achar e unificar os estados

equivalentes do AFD abaixo

0

C B

0 A

0

D

F

E G H

1

1

0 1

1 0

1 1

0 0

1 0

(58)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

58

Estados Equivalentes

 Exemplo 2: Pela condição de compatibilidade: 𝐿0 = 𝐴, 𝐵, 𝐷, 𝐸, 𝐹, 𝐺, 𝐻 , 𝐶

 Observe que os estados B, D, F e H possuem

transições para C e os demais – A, E e G – não as

possuem. Logo A, E e G não são equivalentes aos demais:

(59)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

59

Estados Equivalentes

 Aplicando a condição de propagação. Observe que G

fica no mesmo grupo enquanto A e E vão para outro:

𝐿2 = 𝐴, 𝐸 , 𝐺 , 𝐵, 𝐷, 𝐹, 𝐻 , 𝐶

 Aplicando a condição de propagação. B e H vão para

C com 1 e com 0 para G. D e F vão com 1 para G e 0 para C:

(60)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

60

Estados Equivalentes

 Não há como separar mais os conjuntos de estados

usando a condição de propagação:

C A,E

1

B,H

0 0

1 0

1 0

1

D,F G

(61)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Estado de Erro

 Para não deixar transições indefinidas em M,

pode-se substituir todas as indefinições por um estado de erro “ERRO” e adicionar este estado à tabela. Para cada símbolo de entrada o estado

“ERRO” tem transição para si próprio. O estado

de erro não deve jamais ser definido como estado final

(62)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

Autômato Finito Mínimo

Algoritmo: Minimização de Autômato Finito

Entrada: um Autômato Finito M = (E, A, t, e0, F). Saída: um AF mínimo M’ = (E’, A, t’, e0’, F’).

1. Elimine os estados inatingíveis (ou inalcançáveis);

2. Elimine os estados mortos;

3. Adicione o estado de erro;

4. Elimine os estados redundantes (equivalentes)

(63)

Equivalência entre ER’s e AF’s

 Pode-se construir um ER a partir de qualquer AFD.

Tal construção mostra que se uma linguagem é regular, então ela é descrita por uma ER.

 O método deve ser aplicado para um AFNG

(Autômato Finito Não-determinístico

Generalizado).

 Isto é, o AFD deve ser transformado num AFNG e

este último numa ER.

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(64)

Conversão AFDAFNG

 AFNG são simplesmente AFN nos quais as setas de

transição podem ter quaisquer ER como rótulos;

 Sendo assim, o AFNG lê blocos de entrada (não

apenas um símbolo de cada vez) e se move ao longo de uma transição entre 2 estados ao ler tal bloco o qual constitui uma cadeia descrita pela expressão regular sobre a seta.

 Um AFNG é não-determinístico e, portanto, pode

ter várias formas de processar a mesma entrada.

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(65)

Conversão AFDAFNG

 Exemplo de AFNG

 Uma transição rotulada ∅ nunca é utilizada.

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

65

qfim qini

ab*

𝑏

b*

ab

𝑎𝑎 ∗ 𝑎𝑎

𝑎𝑏|𝑏𝑎

(66)

Conversão AFDAFNG

 Será exigido que o AFNG tenha, por conveniência,

o seguinte formato:

 O estado inicial tem transições para todos os outros,

mas nenhum chegando de qualquer outro;

 Existe apenas um estado final ( do inicial), e ele tem

transições chegando de todos os outros, mas nenhuma saindo para qualquer outro estado;

 Com exceção dos estados inicial e final, uma transição

sai de cada estado para todos os outros e para ele mesmo.

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(67)

Conversão AFDAFNG

 É fácil fazer a conversão AFD → AFNG com este

formato especial:

 Adiciona-se um novo estado inicial com rótulo 𝜀 para

o estado inicial antigo e um novo estado final com rótulo 𝜀 chegando dos antigos estados finais;

 Se há múltiplas transições entre dois estados na

mesma direção, substitui-se cada uma por uma única transição com rótulo sendo a união dos rótulos originais;

 Finalmente, adiciona-se transições com rótulo ∅ entre

estados que não tenham transições definidas.

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(68)

Conversão AFDAFNG

 Definição Formal de AFNG. Um AFNG é uma

5-tupla, 𝑄, Σ, 𝛿, 𝑞0, 𝑞𝑓 , onde:

 𝑄: conjunto finito de estados;

 Σ: alfabeto de entrada;

 𝛿: 𝑄 − 𝑞𝑓 × 𝑄 − 𝑞0 → 𝑅 é a função de transição;

 𝑞0: estado inicial;

 𝑞𝑓: estado final.

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(69)

Equivalência entre ER’s e AF’s

 A conversão AFNG → ER é realizada removendo

um estado de cada vez do AFNG segunda a regra abaixo (𝑝𝑟 ⟹ estado a ser removido; 𝑟𝑖 ⟹ 𝐸𝑅)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

69

qi

pr

qj

𝑟2

𝑟3 𝑟1

𝑟4

qi qj

𝑟1

As remoções dos estados acabarão no momento em que sobrarem apenas dois estados: inicial e final.

(70)

Equivalência entre ER’s e AF’s

 Exemplo 1. Converter o AFD abaixo num ER.

 Transformação do AFD em um AFNG

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

70

1

𝑏

2

𝑎

𝑏

𝑎

𝐴𝐹𝑁𝐺

𝑎|𝑏 𝜀

f

1

𝑎

𝑏

2

(71)

Equivalência entre ER’s e AF’s

 Exemplo 1. Converter o AFD abaixo num ER.

 Remoção do estado 2

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

71

𝑟𝑒𝑚𝑜𝑣𝑒 2

𝑎|𝑏 𝜀

f

1

𝑎

𝑏

2

s 𝜀

f

1

𝑎

𝑏 𝑎|𝑏 ∗

(72)

Equivalência entre ER’s e AF’s

 Exemplo 1. Converter o AFD abaixo num ER.

 Remoção do estado 1

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

72

𝑟𝑒𝑚𝑜𝑣𝑒 1

f

1

𝑎

𝑏 𝑎|𝑏 ∗

s 𝜀

f

𝑎∗𝑏 𝑎|𝑏 ∗

s

(73)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

73

3

2 1

𝑎

𝑎

𝑏

𝑏

(74)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

 Transformação do AFD em um AFNG

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

74 3 2 1 𝑎 𝑎 𝑏 𝑏 𝑎

𝑏

𝐴𝐹𝑁𝐺

(75)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

 Remoção do estado 1 (Trata qi = s e qj = 3)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(76)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

 Remoção do estado 1 (Trata qi = s e qj = 2)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(77)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

 Remoção do estado 1 (Trata qi = 2 e qj = 3)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(78)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

 Remoção do estado 1 (Trata qi = 3 e qj = 2)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(79)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

 Remoção do estado 1 (Trata qi = 2 e qj = 2)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(80)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

 Remoção do estado 1 (Trata qi = 3 e qj = 3)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

(81)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

 Remoção do estado 2 (Trata qi = s e qj = f)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

81

𝑟𝑒𝑚𝑜𝑣𝑒 2

f

s 𝑎 𝑎𝑎|𝑏

3

𝑎𝑎|𝑏

f 2

s

𝜀

𝜀 𝑎

𝑏

𝑎𝑏

𝑏𝑎|𝑎

𝑏𝑏

(82)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

 Remoção do estado 2 (Trata qi = s e qj = 3)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

82

𝑟𝑒𝑚𝑜𝑣𝑒 2

f

s 𝑎 𝑎𝑎|𝑏

3

𝑎𝑎|𝑏

f 2

s

𝜀

𝜀 𝑎

𝑏

𝑎𝑏

𝑏𝑎|𝑎

𝑏𝑏

3

(83)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

 Remoção do estado 2 (Trata qi = 3 e qj = f)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

83

𝑟𝑒𝑚𝑜𝑣𝑒 2

f

s 𝑎 𝑎𝑎|𝑏

3 𝑎𝑎|𝑏 f 2 s 𝜀 𝜀 𝑎 𝑏 𝑎𝑏 𝑏𝑎|𝑎 𝑏𝑏 3

𝑎 𝑎𝑎|𝑏 ∗ab|b

(84)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

 Remoção do estado 2 (Trata qi = 3 e qj = 3)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

84

𝑟𝑒𝑚𝑜𝑣𝑒 2

f

s 𝑎 𝑎𝑎|𝑏

3 𝑎𝑎|𝑏 f 2 s 𝜀 𝜀 𝑎 𝑏 𝑎𝑏 𝑏𝑎|𝑎 𝑏𝑏 3

𝑎 𝑎𝑎|𝑏 ∗ab|b

𝑏𝑎|𝑎 𝑎𝑎|𝑏 ∗|𝜀

(85)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

 Remoção do estado 3 (Trata qi = s e qj = f)

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

85

𝑟𝑒𝑚𝑜𝑣𝑒 3

f

s 𝑎 𝑎𝑎|𝑏

3

𝑎 𝑎𝑎|𝑏 ∗𝑎𝑏|𝑏

𝑏𝑎|𝑎 𝑎𝑎|𝑏 ∗|𝜀

𝑏𝑎|𝑎 𝑎𝑎|𝑏 ∗𝑎𝑏|𝑏𝑏

(86)

Equivalência entre ER’s e AF’s

 Exemplo 2. Dado o AFD de 3 estados, determinar a

ER equivalente.

 Obtém-se, finalmente, a ER do AFD

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

86

𝑎 𝑎𝑎|𝑏 ∗𝑎𝑏|𝑏 𝑏𝑎|𝑎 𝑎𝑎|𝑏 ∗𝑎𝑏|𝑏𝑏 ∗ 𝑏𝑎|𝑎 𝑎𝑎|𝑏 ∗|𝜀 |𝑎 𝑎𝑎|𝑏 ∗

(87)

Equivalência entre ER’s e AF’s

 Exercícios. Dado o AFD abaixo, determinar a ER

equivalente.

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

87

A2

q2

1

0 0

1

q1

q0

q3

0 0

(88)

Equivalência entre ER’s e AF’s

 Exercícios. Dados os AFDs abaixo, determinar a ER

equivalente.

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

88

q1 b q2

a q0 qf a a a b b b q1 1 0 0 1 0

q2 q3

23

q1

0

0 1

(89)

Equivalência entre ER’s e AF’s

 Exercícios. Dados os AFDs abaixo, determinar a ER

equivalente.

Linguagens Regulares – Gramáticas Regulares e Autômatos Finitos

89

q2

b

b a

a

4 s

r1 q1

r2

a a b b

b

a q0

a

a b

q2 q1

Referências

Documentos relacionados

Inseridos na área de LA, também encontramos vertentes teóricas como a Pragmática (LEVINSON, 2007; MEY, 2001; TAVARES, 2006) e a Sociolinguística Interacional que, apesar de

Portanto, conclui-se que o princípio do centro da gravidade deve ser interpretado com cautela nas relações de trabalho marítimo, considerando a regra basilar de

 Desmembrar as formas sentenciais de comprimento 3 ou mais em uma cascata de produções, cada uma com uma forma sentencial consistindo em 2

A aplicação da Análise Preliminar de Riscos foi importante para conhecer os riscos em potencial das atividades realizadas pela empresa nos setores de descarga,

Essa geometria é frequentemente utilizada para a inspeção de diferença de cores entre dois produtos que não são feitos durante o mesmo processo ou com os mesmos materiais..

introduzido por seus orifícios e daí se descarrega no difusor secundário e depois no difusor principal, e a seguir para o coletor de admissão e cilindros... 8-C

@XmlAttribute(name = "ANO" ) protected Integer ano; @XmlAttribute(name = "PAIS" ) protected String pais; @XmlAttribute(name = "DOI" ) protected String DOI;

(Arthur Schopenhauer, s/d).. Mesmo com medidas de controles e higiene, surtos de doenças transmitidas pelos alimentos, como salmonelose estão aumentando