informática teórica
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 PresentationTRANSCRIPT
![Page 1: Informática Teórica](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/1.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/5.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/7.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/11.jpg)
Exercícios AFN → AFD1.
2.
![Page 12: Informática Teórica](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/15.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/16.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/17.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/18.jpg)
Conversão ER → AFNExemplos
Ø∪ε
1+0*
![Page 19: Informática Teórica](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/19.jpg)
Exemplos ER → AFN1. 0(011)*∪1
2. 0+∪(01)+
3. ∑*000∑*4. (((00)*11)∪01)*
![Page 20: Informática Teórica](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/20.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/21.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/22.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/23.jpg)
Conversão AFD → ERExemplo
4
1
02
0
10
1
0,1
3 1
Sa
ε ε
ε
ε
![Page 24: Informática Teórica](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/24.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/25.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/26.jpg)
Conversão AFD → ERExemplo
0210
Sa
ε ε
ε
11*0
11*
11*∪ ε
União
![Page 27: Informática Teórica](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/27.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/28.jpg)
Conversão AFD → ERExemplo
1
Sa
ε
ε
00*(11*∪ ε)
00*11*0
União
(00*(11*∪ ε)) ∪ ε
![Page 29: Informática Teórica](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/29.jpg)
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](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/30.jpg)
Conversão AFD → ERExemplo
Sa
Está pronta a Expressão Regular
(00*11*0)*((00*(11*∪ ε)) ∪ ε)
![Page 31: Informática Teórica](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/31.jpg)
Exemplos AFD → ER1. 2.
![Page 32: Informática Teórica](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/32.jpg)
ExemploLR → AFD → ER → AFN → AFD1. L = {w ∈ ∑ | w tem um número ímpar de
1’s}
![Page 33: Informática Teórica](https://reader035.vdocuments.com.br/reader035/viewer/2022062314/56814657550346895db37209/html5/thumbnails/33.jpg)
Informática TeóricaObrigado!