Escolar Documentos
Profissional Documentos
Cultura Documentos
Teoria da Computação
Linguagens Regulares
2
Leitura recomendada
• Capítulo 1 – Linguagens Regulares.
3
Introdução
• A teoria da computação começa com uma pergunta: O que é um
computador?
5
Autômatos Finitos - Aplicações
6
Exemplo - Visão superior de uma porta automática
7
Exemplo – Funcionamento (Diagrama de Estados)
8
Exemplo – Funcionamento (Tabela de Transições)
9
Autômatos Finitos
• Pensar em um controlador de porta automática como um Autômato finito é
útil porque sugere formas padrão de representação.
• (1) Andar no qual o elevador está; e (2) Sinais recebidos dos botões.
10
Autômatos Finitos
• Os autômatos finitos e suas contrapartidas probabilísticas cadeias de
Markov são ferramentas úteis quando estamos tentando reconhecer
padrões em dados.
• O processamento de 𝑀1 será
executado da seguinte forma:
1. Começa no estado 𝑞1 ;
2. Lê o símbolo 1, segue a transição de 𝑞1 para 𝑞2 ;
3. Lê o símbolo 1, segue a transição de 𝑞2 para 𝑞2 ;
4. Lê o símbolo 0, segue a transição de 𝑞2 para 𝑞3 ;
5. Lê o símbolo 1, segue a transição de 𝑞3 para 𝑞2 ;
6. Aceita a cadeia porque 𝑀1 está no estado de aceitação 𝑞2 no final da entrada.14
Autômatos Finitos - Funcionamento de 𝑀1
• Entrada: 1101.
• O processamento de 𝑀1 será
executado da seguinte forma:
1. Começa no estado 𝑞1 ;
2. Lê o símbolo 1, segue a transição de 𝑞1 para 𝑞2 ;
3. Lê o símbolo 1, segue a transição de 𝑞2 para 𝑞2 ;
4. Lê o símbolo 0, segue a transição de 𝑞2 para 𝑞3 ;
5. Lê o símbolo 1, segue a transição de 𝑞3 para 𝑞2 ;
6. Aceita a cadeia porque 𝑀1 está no estado de aceitação 𝑞2 no final da entrada.15
Autômatos Finitos - Funcionamento de 𝑀1
• Entrada: 1101.
• O processamento de 𝑀1 será
executado da seguinte forma:
1. Começa no estado 𝑞1 ;
2. Lê o símbolo 1, segue a transição de 𝑞1 para 𝑞2 ;
3. Lê o símbolo 1, segue a transição de 𝑞2 para 𝑞2 ;
4. Lê o símbolo 0, segue a transição de 𝑞2 para 𝑞3 ;
5. Lê o símbolo 1, segue a transição de 𝑞3 para 𝑞2 ;
6. Aceita a cadeia porque 𝑀1 está no estado de aceitação 𝑞2 no final da entrada.16
Autômatos Finitos - Funcionamento de 𝑀1
• Entrada: 1101.
• O processamento de 𝑀1 será
executado da seguinte forma:
1. Começa no estado 𝑞1 ;
2. Lê o símbolo 1, segue a transição de 𝑞1 para 𝑞2 ;
3. Lê o símbolo 1, segue a transição de 𝑞2 para 𝑞2 ;
4. Lê o símbolo 0, segue a transição de 𝑞2 para 𝑞3 ;
5. Lê o símbolo 1, segue a transição de 𝑞3 para 𝑞2 ;
6. Aceita a cadeia porque 𝑀1 está no estado de aceitação 𝑞2 no final da entrada.17
Autômatos Finitos - Funcionamento de 𝑀1
• Entrada: 1101.
• O processamento de 𝑀1 será
executado da seguinte forma:
1. Começa no estado 𝑞1 ;
2. Lê o símbolo 1, segue a transição de 𝑞1 para 𝑞2 ;
3. Lê o símbolo 1, segue a transição de 𝑞2 para 𝑞2 ;
4. Lê o símbolo 0, segue a transição de 𝑞2 para 𝑞3 ;
5. Lê o símbolo 1, segue a transição de 𝑞3 para 𝑞2 ;
6. Aceita a cadeia porque 𝑀1 está no estado de aceitação 𝑞2 no final da entrada.18
Autômatos Finitos - Funcionamento de 𝑀1
• Entrada: 1101.
• O processamento de 𝑀1 será
executado da seguinte forma:
1. Começa no estado 𝑞1 ;
2. Lê o símbolo 1, segue a transição de 𝑞1 para 𝑞2 ;
3. Lê o símbolo 1, segue a transição de 𝑞2 para 𝑞2 ;
4. Lê o símbolo 0, segue a transição de 𝑞2 para 𝑞3 ;
5. Lê o símbolo 1, segue a transição de 𝑞3 para 𝑞2 ;
6. Aceita a cadeia porque 𝑀1 está no estado de aceitação 𝑞2 no final da entrada.19
Autômatos Finitos - Funcionamento de 𝑀1
• Entrada: 1101.
• O processamento de 𝑀1 será
executado da seguinte forma:
1. Começa no estado 𝑞1 ;
2. Lê o símbolo 1, segue a transição de 𝑞1 para 𝑞2 ;
3. Lê o símbolo 1, segue a transição de 𝑞2 para 𝑞2 ;
4. Lê o símbolo 0, segue a transição de 𝑞2 para 𝑞3 ;
5. Lê o símbolo 1, segue a transição de 𝑞3 para 𝑞2 ;
6. Aceita a cadeia porque 𝑀1 está no estado de aceitação 𝑞2 no final da entrada. 20
Autômatos Finitos
• Definição. Um autômato finito é uma 5-upla (Q, , , q0, F), onde:
• : Q x → Q é a função de transição,
• q0 ∈ Q é o estado inicial, e
21
Autômatos Finitos - Exemplo 𝑀1
• Podemos descrever M1 formalmente escrevendo M1 = {Q, , , q1, F}, onde:
• Q = {q1, q2, q3},
• = {0, 1},
• é descrita como
0 1
q1 q1 q2
q2 q3 q2
q3 q2 q2
• q1 é o estado inicial, e
• F = {q2} 22
Autômatos Finitos
• Se A é o conjunto de todas as cadeias que a máquina M aceita, dizemos que A
é a linguagem da máquina M e escrever L(M) = A.
23
Qual a definição formal de 𝑀2 ?
• Podemos descrever M2 formalmente escrevendo M2 = {Q, , , q1, F}, onde:
24
Qual a definição formal de 𝑀2 ?
• Podemos descrever M1 formalmente escrevendo M1 = {Q, , , q1, F}, onde:
• Q = {q1, q2},
• = {0, 1},
• é descrita como
0 1
q1 q1 q2
q2 q1 q2
• q1 é o estado inicial, e
• F = {q2} 25
Autômatos Finitos - 𝑀2
• Uma boa maneira para começar a entender uma Máquina é testá-la com
algumas amostras de cadeias de entrada.
• 1100011
• 1010101
26
Autômatos Finitos - 𝑀2
• Uma boa maneira para começar a entender uma Máquina é testá-la com
algumas amostras de cadeias de entrada.
• 1100011
• 1010101
28
Autômatos Finitos - Exemplo 𝑀4
• Descreva L(𝑀4 ).
29
Autômatos Finitos - Exemplo 𝑀5
c) rn F.
32
Máquina 𝑀5 - Computação
• Seja a máquina 𝑀5 e a cadeia w: 10<RESET>22<RESET>012
• 𝑞0 , 𝑞1 , 𝑞1 , 𝑞0 , 𝑞2 , 𝑞1 , 𝑞0 , 𝑞0 , 𝑞1 , 𝑞0
• O que satisfaz as três condições.
33
Máquina 𝑀5 - Computação
• L(𝑀5 ) = {w |
35
Operações Regulares
• Na teoria da computação os objetos são linguagens e as ferramentas
incluem operações especificamente projetadas para manipulá-las.
36
Operações Regulares
37
Operações Regulares – Exemplo usando
Conjuntos
38
Operação de União
• Teorema: A classe de linguagens regulares é fechada sob a operação de
união.
• Em outras palavras, se A1 e A2 são linguagens regulares, o mesmo acontece
com A1 A2.
40
Operação de União - Prova
41
Operação de União - Prova
42
Operação de União – Prova Exemplo
• M1 é um AF que reconhece as cadeias w com um número par de 1s.
0 1
qq11 q2
1
• M2 é um AF que reconhece as cadeias w com um ímpar de 0s.
1
1 0
qq13 q4
0
43
Operação de União – Prova Exemplo
• Construir um M = M1 M2
• L(M) = { w | w possui um número par de 1s ou um número ímpar de 0s}.
• M1=(Q1,1,1,q1,F1) e M2=(Q2,2,2,q3,F2) 0
q1,q3 q1,q4
0
• M =(Q1Q2,,,(q1,q3),F) 1 1
1 1
• ((r1,r2),a) = (1(r1,a),2(r2,a)) 0
q2,q3 q2,q4
• F= (F1Q2) (Q1F2 ) 0
44
Operação de Concatenação
• Teorema: A classe de linguagens regulares é fechada sob a operação de
concatenação.
• Em outras palavras, se A1 e A2 são linguagens regulares, o mesmo acontece
com A1 A2.
46
Não-determinismo
47
Não-determinismo
• Até agora em nossa discussão, todo passo de uma computação segue de
uma maneira única do passo precedente.
49
Computação Não-determinística
50
Computação de Exemplo 𝑁1
• Entrada: 010110
51
Exemplo - AFN
q2 q3 q4
q1
q5 q6 q7
52
Exemplo - AFN
q2 q3 q4
q1
q5 q6 q7
53
Exemplo - AFN
q2 q3 q4
q1
q5 q6 q7
54
Exemplo - AFN
q2 q3 q4
q1
q5 q6 q7
55
Exemplo - AFN
q2 q3 q4
q1
q5 q6 q7
56
Exemplo - AFN
q2 q3 q4
q1
q5 q6 q7
57
Exemplo - AFN
q2 q3 q4
q1
q5 q6 q7
58
Exemplo - AFN
q2 q3 q4
q1
q5 q6 q7
59
Exemplo - AFN
• Como um dos caminhos
terminou em um estado final, q2 q3 q4
60
Exemplo 𝑁2
61
AFD equivalente ao AFN 𝑁2
• Todo AFN pode ser convertido num
AFD equivalente, mas às vezes
esse AFD pode ter muito mais
estados.
• Entender o funcionamento do
AFN é muito mais fácil.
62
Exemplo 𝑁3
63
Definição Formal AFN
64
Definição Formal 𝑁1
65
Definição Computação AFN
66
Equivalência entre AFD e AFN
67
Equivalência AFD e AFN
• Teorema: Todo autômato finito não-determinístico tem um autômato finito
determinístico equivalente.
68
Equivalência AFD e AFN
• Vamos converter um AFN em um AFD equivalente que o simule.
69
Equivalência AFD e AFN
• Considere o AFN 𝑁4 seguinte:
70
Equivalência AFD e AFN
• O conjunto de estados Q’ do AFD equivalente terá 23 = 8 estados.
• Q’ = {∅, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}}
• E({1}) = {1, 3}
71
Equivalência AFD e AFN
• Os novos estados de aceitação são aqueles contendo o estado de
aceitação de 𝑁4 .
• F’ = {{1}, {1,2}, {1,3}, {1,2,3}}
72
Equivalência AFD e AFN
• O estado {1} vai para estado ∅ na entrada a, porque não existe nenhuma
transição para a entrada a no estado {1}.
• O estado {3} vai para {1,3} na entrada a, pois em 𝑁4 o estado 3 vai para o
estado 1 na entrada a e 1, por sua vez, vai para 3 com uma seta 𝜀.
73
AFD equivalente ao AFN 𝑁4
74
AFD (simplificado) equivalente ao AFN 𝑁4
• Podemos simplificar o AFD observando que nenhuma seta aponta para os
estados {1} e {1,2}, portanto eles podem ser removidos sem afetar o AFD.
75
Linguagem Regular
76
Fecho sob as Operações Regulares
77
Operação de União
• Teorema: A classe de linguagens regulares é fechada sob a operação de
união.
78
Construção de um AFN para reconhecer A1 A2
79
Operação de Concatenação
• Teorema: A classe de linguagens regulares é fechada sob a operação de
concatenação.
80
Construção de um AFN para reconhecer A1 ∘ A2
81
Operação Estrela
• Teorema: A classe de linguagens regulares é fechada sob a operação
estrela.
82
Construção de um AFN para reconhecer A1*
83
Expressões Regulares
84
Expressões Regulares
• Na aritmética, podemos usar as operações + e para montar expressões
tais como (5 + 3) 4.
• Exemplo:
• (0 1)0*
85
Expressões Regulares
• O valor de uma expressão aritmética é um número.
• No exemplo (0 1)0* ➔ (0 1) ∘ 0*
• * = (0 1)*
• (R)
• R*
• R1R2
• R1 R2
88
Expressões Regulares - Definição
89
Expressões Regulares - Operadores
• Operadores de repetição:
• R𝐾 ➔ k repetições de R
90
Expressões Regulares - Operadores
• Se tomarmos R como uma expressão regular qualquer, temos as
identidades a seguir.
• R∅ =R
• R∘𝜀=R
mail: aa*(.aa*)*@aa*.aa*(.aa*)*
• cs143@cs.stanford.edu
• barack.obama@whitehouse.gov
• htao@cin.ufpe.br
• hilario.oliveira@unipe.br 92
Expressões Regulares - Exemplo
• Podemos simplificar essa ER para reconhecer e-mails.
• aa*(.aa*)*@aa*.aa*(.aa*)*
• Exemplos:
• cs143@cs.stanford.edu
• barack.obama@whitehouse.gov
• htao@cin.ufpe.br
• hilario.oliveira@unipe.br
93
Expressões Regulares - Exemplo
• Podemos simplificar essa ER para reconhecer e-mails.
• aa*(.aa*)*@aa*.aa*(.aa*)*
• a+ (. a+ )*@ a+ . a+ (. a+ )*
• Exemplos:
• cs143@cs.stanford.edu
• barack.obama@whitehouse.gov
• htao@cin.ufpe.br
• hilario.oliveira@unipe.br 94
Expressões Regulares - Exemplo
• Podemos simplificar essa ER para reconhecer e-mails
• aa*(.aa*)*@aa*.aa*(.aa*)*
• a+ (. a+ )*@ a+ . a+ (. a+ )*
• Exemplos:
• cs143@cs.stanford.edu
• barack.obama@whitehouse.gov
• htao@cin.ufpe.br
• hilario.oliveira@unipe.br 95
Expressões Regulares - Exemplo
• Podemos simplificar essa ER para reconhecer e-mails
• aa*(.aa*)*@aa*.aa*(.aa*)*
• a+ (. a+ )*@ a+ . a+ (. a+ )*
• a+ (. a+ )*@ a+ (. 𝑎+ )+
• Exemplos:
• cs143@cs.stanford.edu
• barack.obama@whitehouse.gov
• htao@cin.ufpe.br, hilario.oliveira@unipe.br
96
Equivalência entre ER e Autômatos
97
Equivalência ER e Autômatos
• Expressões regulares e autômatos finitos são equivalentes em seu poder
descritivo.
99
Equivalência ER e Autômatos
• PROVA: Vamos converter R em um AFN. Consideramos os seis casos na
descrição formal de expressões regulares.
100
Equivalência ER e Autômatos
101
Equivalência ER e Autômatos
4. R1 R2
5. R1 R2
6. R*
103
Equivalência ER e Autômatos - Exemplos
104
Equivalência ER e Autômatos
• Construindo um AFN a
partir da expressão
regular (a b)*
105
Linguagens não-regulares
• Para entender o poder dos autômatos finitos e das expressões regulares
você precisa entender também suas limitações.
• Exemplo: B = { 0𝑛 1𝑛 | n ≥ 0}
• Existe um método para provar que linguagens, como a anterior, não são
regulares.
• LEMA DO BOMBEAMENTO.
106
Dúvidas
107
Próximos Assuntos ....
• Aula 4 – Linguagens Livres de Contexto.
108