Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos...
Transcript of Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos...
![Page 1: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/1.jpg)
1
Teoria da Computação
Expressões Regulares e Autômatos Finitos
Thiago Alves
![Page 2: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/2.jpg)
2
Introdução
Expressões Regulares e Autômatos Finitos são bem diferentes
Será que são equivalentes com relação as linguagens que geram e aceitam?
O que temos que provar?
![Page 3: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/3.jpg)
3
Introdução
Temos que mostrar que qualquer Expressão Regular pode ser convertida em um Autômato Finito que aceita a mesma linguagem que ela descreve e vice-versa
Dessa forma, também provamos que uma linguagem é regular se e somente se é gerada por um ER
![Page 4: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/4.jpg)
4
ER → AF
Como converter Expressões Regulares em Autômatos Finitos?
![Page 5: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/5.jpg)
5
ER → AF
Como converter Expressões Regulares em Autômatos Finitos?
Como converter a Expressão Regular 0 em um Autômato Finito?
Como converter a Expressão Regular 1 em um Autômato Finito?
Como converter a Expressão Regular ε em um Autômato Finito?
![Page 6: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/6.jpg)
6
ER → AF
Como converter a Expressão Regular 0+1 em um Autômato Finito?
Como converter a Expressão Regular (0+1)0 em um Autômato Finito?
Como converter a Expressão Regular ((0+1)0)* em um Autômato Finito?
![Page 7: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/7.jpg)
7
ER → AFN
Como converter expressões regulares em autômatos finitos?
Qual tipo de autômato é mais adequado?
Podemos usar a definição indutiva de expressões regulares para construir um procedimento recursivo
![Page 8: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/8.jpg)
8
ER → AFN
Se uma linguagem é gerada por uma expressão regular então a linguagem é regular
Indução na definição de ER Base: E = a L(a) = {a} Qual seria um AFN equivalente?
![Page 9: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/9.jpg)
9
ER → AFN
Indução na definição de ER Base: E = a L(a) = {a} Qual seria um AFN equivalente?
![Page 10: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/10.jpg)
10
ER → AFN
Indução na definição de ER Base: E = ε L(ε) = {ε} Qual seria um AFN equivalente?
![Page 11: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/11.jpg)
11
ER → AFN
Indução na definição de ER Base: E = ε L(ε) = {ε} Qual seria um AFN equivalente?
![Page 12: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/12.jpg)
12
ER → AFN
Indução na definição de ER Base: E = ∅ L(∅) = ∅ Qual seria um AFN equivalente?
![Page 13: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/13.jpg)
13
ER → AFN
Indução na definição de ER Base: E = ∅ L(∅) = ∅ Qual seria um AFN equivalente?
![Page 14: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/14.jpg)
14
ER → AFN
Indução na definição de ERHI:
Se E1 é uma ER então existe um AFN A1 tal que L(E1) = L(A1)
Se E2 é uma ER então existe um AFN A2 tal que L(E2) = L(A2)
![Page 15: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/15.jpg)
15
ER → AFN
Indução na definição de ERPI:
Seja E = (E1 + E2)
L(E) = L(E1) U L(E2)
E1 é ER. Pela HI, existe A1 tal que L(E1) = L(A1)
E2 é ER. Pela HI, existe A2 tal que L(E2) = L(A2)
![Page 16: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/16.jpg)
16
ER → AFN
L(E) = L(A1) U L(A2)
Como fazer um AFN A tal que L(A) = L(A1) U L(A2)?
![Page 17: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/17.jpg)
17
ER → AFN
![Page 18: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/18.jpg)
18
ER → AFN
PI: Seja E = (E1E2)
L(E) = L(E1)L(E2)
E1 é ER. Pela HI, existe A1 tal que L(E1) = L(A1)
E2 é ER. Pela HI, existe A2 tal que L(E2) = L(A2)
![Page 19: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/19.jpg)
19
ER → AFN
L(E) = L(A1)L(A2)
Como fazer um AFN A tal que L(A) = L(A1)L(A2)?
![Page 20: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/20.jpg)
20
ER → AFN
![Page 21: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/21.jpg)
21
ER → AFN
PI: Seja E = (E1*)
L(E) = L(E1)*
E1 é ER. Pela HI, existe A1 tal que L(E1) = L(A1)
L(E) = L(A1)*
Como fazer um AFN A tal que L(A) = L(A1)*?
![Page 22: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/22.jpg)
22
ER → AFN
![Page 23: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/23.jpg)
23
Exemplos
Vamos converter (ab + a)* para um AFN
![Page 24: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/24.jpg)
24
Exemplos
Vamos converter (ab + a)* para um AFN
![Page 25: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/25.jpg)
25
Exemplos
Vamos converter (ab + a)* para um AFN
![Page 26: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/26.jpg)
26
Exemplos
Vamos converter (a + b)*aba para um AFN
![Page 27: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/27.jpg)
27
Exemplos
Vamos converter (a + b)*aba para um AFN
![Page 28: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/28.jpg)
28
Exemplos
Vamos converter (a + b)*aba para um AFN
![Page 29: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/29.jpg)
29
Exemplos
Vamos converter (a + b)*aba para um AFN
![Page 30: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/30.jpg)
30
AF → ER
Temos que mostrar que qualquer autômato finito A pode ser convertido em uma expressão regular E tal que L(A) = L(E)
Qual tipo de autômato finito vamos escolher?
![Page 31: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/31.jpg)
31
AF → ER
Temos que mostrar que qualquer autômato finito A pode ser convertido em uma expressão regular E tal que L(A) = L(E)
Qual tipo de autômato finito vamos escolher? Determinístico é mais simples
![Page 32: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/32.jpg)
32
AFD → ER
Como converter autômatos finitos determinísticos em expressões regulares?
![Page 33: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/33.jpg)
33
AFD → ER
Os rótulos das transições nos caminhos entre o estado inicial e os estados finais representam as strings aceitas pelo autômato finito determinístico Vamos remover estados e trocar as
transições por expressões regulares
![Page 34: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/34.jpg)
34
AFD → ER
1) Criar um novo inicial para ter apenas transições saindo dele e tirar os laços dele
2) Criar um novo estado final para ser único e ter apenas transições chegando nele
3) Incluir transições com ∅ onde não tiver transição
![Page 35: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/35.jpg)
35
AFD → ER
Transições com múltiplos rótulos podem ser convertidas para expressões regulares usando a operação + de união
![Page 36: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/36.jpg)
36
AFD → ER
Não mostramos as transições com ∅ para não poluir a figura
![Page 37: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/37.jpg)
37
AFD → ER
Tirar um estado e adaptar as transições com expressões regulares até sobrar apenas o inicial e o final A transição entre eles é a expressão
regular equivalente ao autômato finito determinístico original
![Page 38: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/38.jpg)
38
AFD → ER
Tirar um estado e adaptar as transições com expressões regulares até sobrar apenas o inicial e o final Como adaptar as transições com
expressões regulares?
![Page 39: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/39.jpg)
39
AFD → ER
Como adaptar as transições com expressões regulares? Concatenar a expressão regular
chegando no estado com a do laço e com com a saindo do estado
Fazer a união com a expressão regular da transição já existente entre os estados
![Page 40: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/40.jpg)
40
AFD → ER
![Page 41: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/41.jpg)
41
AFD → ER
Definição da nova transição qr é o estado removido
qi, qj são os outros pares de estados
δ'(qi, qj) = δ(qi, qr)(δ(qr, qr))*δ(qr, qj) + δ(qi, qj)
![Page 42: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/42.jpg)
42
AFD → ER
![Page 43: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/43.jpg)
43
Algoritmo
![Page 44: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/44.jpg)
44
Exemplo
Converta o AFD abaixo em uma ER Criar novo estado inicial e final
![Page 45: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/45.jpg)
45
Exemplo
Remover o estado 1
![Page 46: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/46.jpg)
46
Exemplo
Remover o estado 2
![Page 47: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/47.jpg)
47
Exemplo
Remover o estado 3
![Page 48: Expressões Regulares e Autômatos Finitos · 2 Introdução Expressões Regulares e Autômatos Finitos são bem diferentes Será que são equivalentes com relação as linguagens](https://reader035.fdocument.pub/reader035/viewer/2022062311/5bff7aa909d3f2c9268c1d05/html5/thumbnails/48.jpg)
48
Exemplo