1 / 33

Informática Teórica

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.

yaphet
Download Presentation

Informática Teórica

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Informática Teórica Conversão AFN para AFDExpressões RegularesAlgoritmos OR em ERConversão de ER para AFN Conversão de AFD para ER

  2. Conversão AFN → AFD • Já sabemos que todo AFN tem um AFD equivalente mas como encontrá-lo? • Para esse problema temos um algoritmo.

  3. Conversão AFN → AFD • Algoritmo • 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.

  4. Conversão AFN → AFD • Exemplo AFN AFD ε 1 2 1,2 0 0 0,1 0 Estado inicial que é 1 e tem transição ε para 2 3 1 1,2,3

  5. Conversão AFN → AFD • Exemplo AFN AFD 0,1 Ø ε 1 2 1,2 0 1,2,3 0 0,1 0 1 3 1

  6. Conversão AFN -> AFD • Exemplo AFN AFD 1,2,3 ε 1 2 1,2 0 1,2,3 0 0 0,1 0 1 3 1 0,1 Ø

  7. Conversão AFN → AFD • Exemplo AFN AFD 2,3 ε 1 2 1,2 0 1,2,3 0 0 0,1 0 1 1 3 1 0,1 Ø

  8. Conversão AFN → AFD • Exemplo AFN AFD 1,2 ε 1 2 1,2 0 1,2,3 0 0 0,1 0 1 1 0 3 1 0,1 Ø 2,3

  9. Conversão AFN → AFD • Exemplo AFN AFD 2,3 ε 1 2 1,2 0 1,2,3 0 0 0,1 0 1 1 0 3 1 0,1 Ø 2,3 1 Não há mais estado sem transição definida

  10. Conversão AFN → AFD • Exemplo AFN AFD ε 1 2 1,2 0 1,2,3 0 0 0,1 0 1 1 0 3 1 0,1 Ø 2,3 1 Onde houver estado de aceitação, no caso 2, também será estado de aceitação

  11. Exercícios AFN → AFD

  12. Expressão Regular • Definição • É uma forma de definir uma Linguagem Regular como uma expressão. • Definição Indutiva • Base • ε, Ø e os elementos do alfabeto • Indução: Sejam A e B ERs • A∪B também é ER. • A∘B ou AB, também é. • A* também é ER

  13. Expressão Regular • Teoremas • Toda ER gera uma LR. • Toda LR tem uma ER que a reconhece univocamente. • Toda ER tem um AFN equivalente

  14. Operações Regulares • União • A união de duas ERs, representada por A∪B • Concatenação • A concatenação de duas ERs, representada por A∘B ou AB • Estrela • A estrela de uma ER, representada por A*

  15. Conversão LR → ER • Semelhante a conversão LR -> AFD só que tem que pensar na ER não mais no AFD, não há algoritmo. • Exemplos • L = {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 ∪0000 • L={w| w tem um único 0} • ER = 1*01*

  16. Exercícios LR → ER • L = {0, 11, 000} • L = {w| começa e termina com a letras diferentes} • L = {w| termina com 101 e tem 010 como subcadeia} • L = {w| w não tem a subcadeia 01}

  17. Conversão ER → AFN • Caso ER = Ø • Caso ER = ε • Seja ER = a, onde a é um elemento de ∑ • União, Concatenação e Estrela • Iguais aos algoritmos de AFN

  18. Conversão ER → AFN • Exemplos • Ø∪ε • 1+0*

  19. Exemplos ER → AFN • 0(011)*∪1 • 0+∪(01)+ • ∑*000∑* • (((00)*11)∪01)*

  20. 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.

  21. Conversão AFD → ER • Algoritmo • 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 FinitoNã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.

  22. Conversão AFD → ER • Algoritmo • Elimine os estados do AFD um por vez segundo a regra • Faça isso até eliminar todos os estados do AFD • Ao fim disso tudo, só temos uma transição com a ER do AFD inicial.

  23. Conversão AFD → ER • Exemplo ε 1 0 2 0 ε ε S a 1 1 0 ε 0,1 3 4 1

  24. Conversão AFD → ER • Exemplo ε 1 0 2 0 ε ε S a 1 1 0 ε 0,1 3 4 1 Cortar um estado vazio não causa alterações no autômato

  25. Conversão AFD → ER • Exemplo ε 1 0 2 0 ε ε S 11* a 1 0 ε 11*0 4 1 Neste estado passa informação de 2 → 1 e de 2 → a

  26. Conversão AFD → ER • Exemplo ε 1 0 2 0 ε ε S 11*∪ ε 11* a 11*0 União

  27. Conversão AFD → ER • Exemplo 00*11*0 ε 1 0 2 0 ε S 00*(11*∪ ε) 11*∪ ε a 11*0 Neste estado passa informação de 1 → 1e de 1 → a

  28. Conversão AFD → ER • Exemplo 00*11*0 ε 1 (00*(11*∪ ε)) ∪ ε ε S 00*(11*∪ ε) a União

  29. Conversão AFD → ER • Exemplo 00*11*0 1 (00*(11*∪ ε)) ∪ ε ε S (00*11*0)*((00*(11*∪ ε)) ∪ ε) a Neste estado passa informação de S → a

  30. Conversão AFD → ER • Exemplo S (00*11*0)*((00*(11*∪ ε)) ∪ ε) a Está pronta a Expressão Regular

  31. Exemplos AFD → ER

  32. ExemploLR → AFD → ER → AFN → AFD • L = {w ∈ ∑ | w tem um número ímpar de 1’s}

  33. Informática Teórica Obrigado!

More Related