33
Informática Teórica Conversão AFN para AFD Expressões Regulares Algoritmos OR em ER Conversão de ER para AFN Conversão de AFD para ER

Informática Teórica

  • Upload
    yaphet

  • View
    44

  • Download
    0

Embed Size (px)

DESCRIPTION

Informática Teórica. Conversão AFN para AFD Expressões Regulares Algoritmos OR em ER Conversão de ER para AFN  Conversão de AFD para ER. Conversão AFN → AFD. Já sabemos que todo AFN tem um AFD equivalente mas como encontrá-lo? Para esse problema temos um algoritmo. Conversão AFN → AFD. - PowerPoint PPT Presentation

Citation preview

Page 1: Informática Teórica

Informática TeóricaConversão AFN para AFD

Expressões RegularesAlgoritmos OR em ER

Conversão de ER para AFN Conversão de AFD para ER

Page 2: Informática Teórica

Conversão AFN → AFDJá sabemos que todo AFN tem um AFD

equivalente mas como encontrá-lo?Para esse problema temos um algoritmo.

Page 3: Informática Teórica

Conversão AFN → AFDAlgoritmo

Cria-se o estado inicial do AFD com o estado inicial do AFN e os estados atingidos por transições ε.

Compute para os estados criados as saídas para cada estado que faz parte dele para todas as entradas do alfabeto através da função de transição e das transições ε, una os estados resultantes e crie um novo estado. Faça isso até que não se crie mais estados novos, ou seja, o AFD está completo.

Os estados finais do AFD é todo estado que possui pelo menos um estado de aceitação do AFN.

Page 4: Informática Teórica

Conversão AFN → AFDExemplo

AFN AFD1

ε

02

3

0,11

0

1,2

Estado inicial que é 1 e tem

transição ε para 2

Computando δ({1,2},0)

0

1 3

2 1,2

1,2,3

0

Page 5: Informática Teórica

1,2,3

Conversão AFN → AFDExemplo

AFN AFD1

ε

02

3

0,11

0

1,2

Computando δ({1,2},1)

1

1 Ø

2 Ø

Ø

0

1

0,1

Page 6: Informática Teórica

01,2,3

Conversão AFN -> AFDExemplo

AFN AFD1

ε

02

3

0,11

0

1,2

Computando δ({1,2,3},0)

0

1 3

2 1,2

3 Ø

1,2,30

1

0,1

Ø

Page 7: Informática Teórica

1

01,2,3

Conversão AFN → AFDExemplo

AFN AFD1

ε

02

3

0,11

0

1,2

Computando δ({1,2,3},1)

1

1 Ø

2 Ø

3 2,3

2,30

1

0,1

Ø

Page 8: Informática Teórica

2,3

1

01,2,3

Conversão AFN → AFDExemplo

AFN AFD1

ε

02

3

0,11

0

1,2

Computando δ({2,3},0)

0

2 1,2

3 Ø

0

1

0,1

Ø

1,2

0

Page 9: Informática Teórica

2,3

1

01,2,3

Conversão AFN → AFDExemplo

AFN AFD1

ε

02

3

0,11

0

1,2

Computando δ({2,3},1)

1

2 Ø

3 2,3

0

1

0,1

Ø

0

2,3

1

Não há mais estado sem transição definida

Page 10: Informática Teórica

2,3

1

01,2,3

Conversão AFN → AFDExemplo

AFN AFD1

ε

02

3

0,11

0

1,2

0

1

0,1

Ø

0

1

Onde houver estado de aceitação, no caso 2, também será estado de aceitação

Page 11: Informática Teórica

Exercícios AFN → AFD1.

2.

Page 12: Informática Teórica

Expressão RegularDefinição

É uma forma de definir uma Linguagem Regular como uma expressão.

Definição IndutivaBase

ε, Ø e os elementos do alfabetoIndução: Sejam A e B ERs

A∪B também é ER. A∘B ou AB, também é. A* também é ER

Page 13: Informática Teórica

Expressão RegularTeoremas

Toda ER gera uma LR.Toda LR tem uma ER que a reconhece

univocamente.Toda ER tem um AFN equivalente

Page 14: Informática Teórica

Operações RegularesUnião

A união de duas ERs, representada por A∪BConcatenação

A concatenação de duas ERs, representada por A∘B ou AB

EstrelaA estrela de uma ER, representada por A*

Page 15: Informática Teórica

Conversão LR → ERSemelhante a conversão LR -> AFD só que

tem que pensar na ER não mais no AFD, não há algoritmo.

ExemplosL = {w| w tem tamanho par}

ER= (∑ ∑)*L = {w| w só tem 0 antes de 1}

ER = 0+1*, o + significa um ou mais 0+ = 00*.L = {0, 11, 0000}

ER = 0 ∪11 ∪0000L={w| w tem um único 0}

ER = 1*01*

Page 16: Informática Teórica

Exercícios LR → ER1. L = {0, 11, 000}2. L = {w| começa e termina com a letras

diferentes}3. L = {w| termina com 101 e tem 010 como

subcadeia}4. L = {w| w não tem a subcadeia 01}

Page 17: Informática Teórica

Conversão ER → AFNCaso ER = Ø

Caso ER = ε

Seja ER = a, onde a é um elemento de ∑

União, Concatenação e EstrelaIguais aos algoritmos de AFN

Page 18: Informática Teórica

Conversão ER → AFNExemplos

Ø∪ε

1+0*

Page 19: Informática Teórica

Exemplos ER → AFN1. 0(011)*∪1

2. 0+∪(01)+

3. ∑*000∑*4. (((00)*11)∪01)*

Page 20: Informática Teórica

Conversão AFD → ER Sabemos que uma LR pode ser representada

por AFD, AFN e ER que são equivalentes entre si.

Já podemos converter ER → AFN → AFD, só falta converter AFD → ER, para esse processo temos algoritmo.

Page 21: Informática Teórica

Conversão AFD → ERAlgoritmo

Crie um novo estado inicial e uma transição ε para o estado inicial do AFD

Crie um novo estado de aceitação e crie transições ε dos estados de aceitação do AFD para este novo estado e tire as antigas aceitações, agora temos um Autômato Finito Não-Determinístico Generalizado (AFNG). Um AFNG possui ER nas transições não só uma

letra.Elimine os estados do AFD um por vez até que

só fique a ER do novo estado inicial até o novo estado de aceitação.

Page 22: Informática Teórica

Conversão AFD → ERAlgoritmo

Elimine os estados do AFD um por vez segundo a regra

Faça isso até eliminar todos os estados do AFDAo fim disso tudo, só temos uma transição com

a ER do AFD inicial.

Page 23: Informática Teórica

Conversão AFD → ERExemplo

4

1

02

0

10

1

0,1

3 1

Sa

ε ε

ε

ε

Page 24: Informática Teórica

Conversão AFD → ERExemplo

1

02

0

10

1

0,1

3 1

Sa

ε ε

ε

ε

Cortar um estado vazio não causa alterações no autômato

4

Page 25: Informática Teórica

Conversão AFD → ERExemplo

1

02

0

10

1

Sa

ε ε

ε

ε

4

Neste estado passa informação de 2 → 1 e de 2 → a

11*0

11*

Page 26: Informática Teórica

Conversão AFD → ERExemplo

0210

Sa

ε ε

ε

11*0

11*

11*∪ ε

União

Page 27: Informática Teórica

Conversão AFD → ERExemplo

0210

Sa

ε

ε

11*0

11*∪ ε

Neste estado passa informação de 1 → 1 e de 1 → a

00*(11*∪ ε)

00*11*0

Page 28: Informática Teórica

Conversão AFD → ERExemplo

1

Sa

ε

ε

00*(11*∪ ε)

00*11*0

União

(00*(11*∪ ε)) ∪ ε

Page 29: Informática Teórica

Conversão AFD → ERExemplo

1

Sa

ε

00*11*0

(00*(11*∪ ε)) ∪ ε

Neste estado passa informação de S → a

(00*11*0)*((00*(11*∪ ε)) ∪ ε)

Page 30: Informática Teórica

Conversão AFD → ERExemplo

Sa

Está pronta a Expressão Regular

(00*11*0)*((00*(11*∪ ε)) ∪ ε)

Page 31: Informática Teórica

Exemplos AFD → ER1. 2.

Page 32: Informática Teórica

ExemploLR → AFD → ER → AFN → AFD1. L = {w ∈ ∑ | w tem um número ímpar de

1’s}

Page 33: Informática Teórica

Informática TeóricaObrigado!