Informática Teórica

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

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

Transcript of Informática Teórica

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!