Escolar Documentos
Profissional Documentos
Cultura Documentos
2
Introdução
• Na aula passada vimos uma importante propriedade
das linguagens regulares – o lema do bombeamento.
3
Introdução
• Intuitivamente, vimos a propriedade de fechamento,
tema desta aula.
4
Introdução
• Estes teoremas são chamados com frequencia de
propriedades de fechamento das linguagens
regulares, pois mostra que a classe de linguagens
regulares é fechada sob a operação mencionada.
5
Introdução
• Vejamos as 9 propriedades de fechamento:
6
Introdução
• Vejamos as 9 propriedades de fechamento:
7
Fechamento de Linguagems
regulares sob Operações
Booleanas
8
Operações booleanas
• As primeiras propriedades falam de união, interseção e
complementação.
9
União Exemplo --L1
L1 = { x ∈ {0,1}* | x tem comprimento par}
0,1 0,1
10
União Exemplo –L2
L2 = { x ∈ {0,1}* | x termina com 11 }
1
1
0
0 1
11
União: Exemplo –L1∪L2
Para obter o autômato para a união, usamos
o Produto Cartesiano:
1
0
0 0 0 1 1 1
1
1
0
0
12
União: Exemplo
Vejamos como isso funciona. Comece com
os dois automata e considere o string
1101101
1
1
0
0,1 0,1 0 1
13
União: Exemplo
1
1
0
0 1
0,1 0,1
0
1 1 1 0 1 0 1
14
União: Exemplo
1
1
0
0 1
0,1 0,1
0
1 1 1 0 1 0 1
15
União: Exemplo
1
1
0
0 1
0,1 0,1
0
1 1 1 0 1 0 1
16
União: Exemplo
1
1
0
0 1
0,1 0,1
0
1 1 1 0 1 0 1
17
União: Exemplo
1
1
0
0 1
0,1 0,1
0
1 1 1 0 1 0 1
18
União: Exemplo
1
1
0
0 1
0,1 0,1
0
1 1 1 0 1 0 1
19
União: Exemplo
1
1
0
0 1
0,1 0,1
0
1 1 1 0 1 0 1
20
União: Exemplo
Rejeitado! 1
1
0
0 1
0,1 0,1
0
Rejeitado! 1 1 1 0 1 0 1
21
União: Exemplo
Resumo: Para dizer se um string pertence à união,
basta guardar os estados correntes em ambos os
automata. Ao final do processamento, o string está
na união se é aceito por pelo menos um autômato.
Seria bom se pudéssemos guardar os dois estado em
um único autômato.
1
1
0
0,1 0,1 1
0
0
22
União: Exemplo
1. Atribua rótulos aos estados de cada um
dos autômatos
1
1
0
a x y z
0 1
0,1 0,1
b 0
23
União: Exemplo
0 1
0,1 0,1
b 0
24
União: Exemplo
Par de estados corrente: (a,x)
1
1
0
a x y z
0 1
0,1 0,1
b 0
1 1 1 0 1 0 1
25
União: Exemplo
Par de estados corrente: (b,y)
1
1
0
a x y z
0 1
0,1 0,1
b 0
1 1 1 0 1 0 1
26
União: Exemplo
Par de estados corrente: (a,z)
1
1
0
a x y z
0 1
0,1 0,1
b 0
1 1 1 0 1 0 1
27
União: Exemplo
Par de estados corrente: (b,z)
1
1
0
a x y z
0 1
0,1 0,1
b 0
1 1 1 0 1 0 1
28
União: Exemplo
Par de estados corrente: (a,x)
1
1
0
a x y z
0 1
0,1 0,1
b 0
1 1 1 0 1 0 1
29
União: Exemplo
Par de estados corrente: (b,y)
1
1
0
a x y z
0 1
0,1 0,1
b 0
1 1 1 0 1 0 1
30
União: Exemplo
Par de estados corrente: (a,z)
1
1
0
a x y z
0 1
0,1 0,1
b 0
1 1 1 0 1 0 1
31
União: Exemplo
Par de estados corrente: (b,y)
Rejeitado! 1
1
0
a x y z
0 1
0,1 0,1
b 0
Rejeitado! 1 1 1 0 1 0 1
32
Operações booleanas
• As primeiras propriedades falam de união, interseção e
complementação.
33
Exemplo: produto da interseção
0 0
1 0
A B [A,C] [A,D]
0, 1 1
1 1
0
0
1
0 [B,C] [B,D]
1
0
C D
34
Operações booleanas
• As primeiras propriedades falam de união, interseção
e complementação.
35
Examplo: Produto da diferença
0 0
1 0
A B [A,C] [A,D]
0, 1 1
1 1
0
0
1
0 [B,C] [B,D]
1
0
C D
Notice: difference
1
is the empty language
36
Observação
37
E se as linguagens tiverem alfabetos
diferentes?
• Quanto tomamos a união ou interseção, elas
podem ter alfabetos diferentes. Por exemplo, é
possível que L1 = { a, b} enquanto L2 = { b, c, d}.
38
E se as linguagens tiverem alfabetos
diferentes?
• Assim, é só pensar em L1 e L2 como linguagems
sobre o alfabeto {a,b,c,d} .
39
Continuando com a
programação normal…
1. A união de duas LR é regular;
2. A interseção de duas LR é regular;
3. O complemento de uma LR é regular;
4. A diferença de duas linguagens
regulares é regular;
5. O reverso de uma linguagem regular é
regular;
40
Operações
• Propriedade sobre a diferença.
41
Exemplo: produto da diferença
0 0
1 0
A B [A,C] [A,D]
0, 1 1
1 1
0
0
1
0 [B,C] [B,D]
1
0
C D
Notice: difference
1
is the empty language
42
Operações
• Propriedade sobre a reversão
43
Propriedade sobre a reversão
• Base: Se E é um símbolo a, ε, ou ∅, então ER = E.
• Indução: Se é é
– F+G, then ER = FR + GR.
– FG, then ER = GRFR
– F*, then ER = (FR)*.
44
Exemplo: Reversão de uma ER
• Seja E = 01* + 10*.
– ER = (01* + 10*)R = (01*)R + (10*)R
– = (1*)R0R + (0*)R1R
– = (1R)*0 + (0R)*1
– = 1*0 + 0*1.
45
Operações - homomorfismo
• Propriedade sobre o homomorfismo
47
Exemplo: Fechamento sob o
homomorfismo
• Let h(0) = ab; h(1) = ε.
– Let L be the language of regular expression 01* + 10*.
– Then h(L) is the language of regular expression abε* +
ε(ab)*.
48
Exemplo – Continuação
• abε* + ε(ab)* pode ser simplificado.
• ε* = ε, so abε* = abε.
• ε é a identididade sob a concatenação.
• Ou seja, εE = Eε = E para qualquer RE E.
• Logo, abε* + ε(ab)* = abε + ε(ab)* = ab + (ab)*.
• Finalmente, L(ab) está contido L((ab)*), então a RE
para h(L) é (ab)*.
49
Homomorfismos inversos
• Homomorfismos também podem ser aplicados “ao
contrário” e, dessa maneira, também preservam
linguagens regulares. Isto é, suponha que h seja um
homomorfismo e L uma linguagem sobre um
alfabeto do qual é a saída da linguagem h.
50
Exemplo: Homomorfismo inverso
• Seja h(0) = ab; h(1) = ε.
• seja L = {abab, baba}.
• h-1(L) = a linguagem com dois 0’s e qualquer
número de 1’s = L(1*01*01*).
51
Exemplo: Construção Homomorfismo
inverso
a 1 Since
h(1) = ε
B 1 B
a
b 0
A b A
b 0 Since
C C h(0) = ab
a
1 , 0
h(0) = ab
h(1) = ε
52
Homomorfismo inverso
• Indica-se a leitura cuidadosa do livro-texto para
fixação e melhor compreensão
53
Exercícios Propostos
• 4.2.1 – a, b, c, e.
• 4.2.2
54
UNIVERSIDADE FEDERAL DO OESTE DO PARÁ
INSTITUTO DE ENGENHARIA E GEOCIÊNCIAS