Post on 03-Dec-2018
Capítulo 4Capítulo 4
Propriedades das LinguagensPropriedades das Linguagens Regulares (RL)g ( )
4 1 P i d d d f h d RL4.1. Propriedades de fecho das RL
4 2 P t fi it d d RL4.2. Pertença e finitude das RL
4 3 Identificação de linguagens não regulares4.3. Identificação de linguagens não regulares
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 192
4.1. Propriedades de fecho das linguagens regulares (RL)regulares (RL)
4 1 1 F h l ã õ d j4.1.1. Fecho em relação a operações de conjuntos
T 4 1 S L L ã RL ã bé ãTeorema 4.1. Se L1 e L2 são RL, então também o são
L L L1L2 , L1L2 , L L L1L2 , Compl(L1) , Compl(L2) L * L * L1* , L2* , L1 – L2=L1 Compl(L2)
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 193
Teorema 4.2.A família das RL é fechada em relação à reversão.
Prova construtiva :
constrói-se um NFA com um só estado final para L
transforma-se o estado inicial em final e o final em inicial
i e te e e tid d et e t d e t d f d NFA inverte-se o sentido das setas em todas as arestas do grafo do NFA
o NFA resultante aceita LR
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 194
4 1 2 Fecho em relação a outras operações4.1.2. Fecho em relação a outras operações
4.1.2.1. Homomorfismo, h
1*2 2={0,1}
a 01h
b 110h
c 0101h
h(abbc) = h(a)h(b)h(b)h(c) = (01)(110)(110)(0101)=011101100101
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 195
Imagem homomórfica de uma linguagem L
h(L) = {h(w) : w L }
Teorema 4.3. A família das LR é fechada em relação a qualquer homomorfismo.qualquer homomorfismo.
4.1.2.2. Quociente à direita
Teorema 4.4..A família das RL é fechada em relação ao quociente à direita por uma linguagem regularquociente à direita por uma linguagem regular. Se L1 e L2 são RL no mesmo alfabeto, então L1/L2 é também LR
L2L1/L2
L /L { L l L }x y
L1/L2={x: xyL1 para algum y L2}
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 196
L1
4.2. Pertença e finitude de LR’s4.2. Pertença e finitude de LR s
São formas padrão de representar linguagens:
um autómato finito (DFA ou NFA) um autómato finito (DFA ou NFA)
uma expressão regular
uma gramática regular
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 197
4.2.1. A questão da pertença
Teorema 4.5.
Dada uma representação padrão de qualquer RL L em e dada uma qualquer cadeia w *, existe um algoritmo para determinar se w pertence ou não a L.
- constrói-se um DFA de L e verifica-se se w é aceite ou não.
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 198
4 2 2 A questão de finitude ou infinitude
Teorema 4.6.
4.2.2. A questão de finitude ou infinitude
Teorema 4.6.Existe um algoritmo para verificar se uma linguagem, dada numa forma padrão, é vazia, finita ou infinita.numa forma padrão, é vazia, finita ou infinita.
??? 0 01
início
0
1q2
0q1q0 1 0
q0
1
Existe um caminho para um estado aceitador ?Existe um caminho para um estado aceitador ?
Existem ciclos num caminho para um estado aceitador ?
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 199
p
4 2 3 A questão da igualdade de linguagens
Teorema 4 7
4.2.3. A questão da igualdade de linguagens
Teorema 4.7Dadas duas linguagens regulares L1 e L2 numa forma padrão, existe um algoritmo para determinar se L =Lexiste um algoritmo para determinar se L1=L2
L = (L1 – L2) (L2 – L1)
L é vazia ?
sim L1 = L2
não L L não L1 L2
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 200
4 3 Identificação de linguagens não regulares
4 3 1 O princípio do pombal (“pigeonhole”)
4.3. Identificação de linguagens não regulares
4.3.1. O princípio do pombal (“pigeonhole”)
di bj i ( i l b l) se dispusermos n objectos em m caixas (gaiolas no pombal) e se n > m, então pelo menos uma caixa tem que conter mais d bj tdo que um objecto.
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 201
A analogia com os autómatos finitos
têm memória limitada
não são capazes de distinguir prefixos (de cadeias) de comprimentos arbitrárioscomprimentos arbitrários.
num grafo de transição com n vértices qualquer caminho de num grafo de transição com n vértices, qualquer caminho de comprimento igual ou superior a n tem que repetir algum vértice, isto é, tem que conter um ciclo.vértice, isto é, tem que conter um ciclo.
Num autómato com n estados, qualquer cadeia mais longa , q q gdo que n produz estados repetidos.
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 202
Exemplo 1:
Provar que a linguagem L = {anbn, n N} é não regular.
Prova por contradição:
Suponha se que existe um DFA M que aceita L (L é regular)Suponha-se que existe um DFA M que aceita L (L é regular) com n estados.
Considere-se a cadeia arbr , r n:
q0 q1 q2 qr qr+1a a b b b…...…...a a q2r
Sendo r n e M tendo só n estados, tem que existir pelo menos um estado visitado duas vezes nas primeiras r transiçõesum estado visitado duas vezes nas primeiras r transições. Admita-se que esse estado foi visitado nas iésima e jésimamovidas com j > i
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 203
movidas ,com j > i.
j-ij imovidas
qi = qj
qk FUm caminho em MUm caminho em Mq0
Mas então, evitando o ciclo, a cadeia ar-(j-i)br será aceite por MMas é um absurdo porque ar-(j-i)br não faz parte de linguagem LMas é um absurdo porque ar (j i)br não faz parte de linguagem L.
... logo L é não regular
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 204
Exemplo 2:
Provar que a linguagem L = {1kk , k > 0} } é não regular ( 1 expoente k ao quadrado)expoente k ao quadrado)
Prova por contradição:p ç
Suponha-se que existe um DFA M que aceita L (L é regular) com n estadoscom n estados.
Nesse caso M também deve aceitar a cadeia 1nn
q0 q1 q2 qnn1 11 1
…...
Sendo nn n e dado que M tem só n estados terão que existirSendo nn n e dado que M tem só n estados, terão que existir pelo menos dois estados iguais desde q0 até qnn.Sejam eles qi e qj com j-i = m n, necessariamente.
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 205
Sejam eles qi e qj com j i m n, necessariamente.
m = j-ijmovidas
qi = qj
qk FUm caminho em MUm caminho em Mq0
M d i i l i iMas agora poderemos repetir o ciclo mais uma vez, e por isso 1(nn+m) será também aceite por M.O + ã é d d ó i d d i 2 éOra nn+m não é um quadrado: o próximo quadrado a seguir a n2 é (n+1)2 = nn + 2n + 1 > nn + m (note-se que m<n).E portanto 1(nn+m) não será aceite por ME portanto 1(nn+m) não será aceite por M.
l L é ã l© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC
206
... logo L é não regular
4 3 2 O L d b b (“ i l ”)4.3.2. O Lema da bombagem (“pumping lema”)
Teorema 4.8. Seja L uma RL infinita. Então existe algum inteiro positivo m tal que toda a cadeia w L com |w| mse pode decompor em
w=xyzcom
|xy| me
|y| 1t ltal que
wi=xyiz
também pertence a L para todo o i=0, 1, 2, ...
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 207
mw=xyz
yMovidas
q = q
|y| 1 z movidasqi = qj
qk Fq0
xmovidasq0
iwi=xyiz|xy| m
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 208
qualquer cadeia suficientemente longa de L pode se qualquer cadeia suficientemente longa de L pode -se partir em três partes ,
um número arbitrário de repetições da parte do meio produz outra cadeia de Lproduz outra cadeia de L,
a parte do meio não está muito longe do início, a parte do meio não está muito longe do início,
a sub-cadeia do meio é “bombeada”, e daí o nome ,do lema .
wm0
x y z
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 209
Este lema serve para provar por contradição que uma linguagemEste lema serve para provar, por contradição, que uma linguagem não é regular:
supõe-se que é regular
verifica-se o que acontece se obedecer ao lema da bombagem, i.e., procura-se uma cadeia da li i l i llinguagem igual ou maior a m, e nela uma decomposição xyz e um ciclo y (para todo o m).
se for possível produzir uma cadeia que não pertença a L l d i ã t diL , para qualquer decomposição, contradiz-se o lema (para todo o m ) e
portanto é não regular.
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 210
O L l fi ti O L l tiO Lema pela afirmativa O Lema pela negativa
existe um m tal que para para qualquer valor de m sou- existe um m tal que para - para qualquer valor de m soucapaz de encontrar
- qualquer cadeia |w| mpertencente a L existe
- (pelo menos) uma cadeia |w| m pertencente a L em quepertencente a L existe m pertencente a L em que
- uma decomposição xyz que - qualquer decomposição xyzu deco pos ção xy queproduz, pela bombagemde y, |xy|m
qu que deco pos ção xyproduz, pela bombagem dey, |xy|my, | y| y, | y|
- todas cadeias pertencentes a L
- (pelo menos) uma cadeia que não pertence à linguagema L
i 0, xyiz Lnão pertence à linguagem
i 0, xyiz L
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 211
w=xyzO Lema pela O Lema pela negativa
yMovidas
mO Lema pela
afirmativaO Lema pela negativa
- existe um m tal que - para qualquer valor ded
qi = qj
|y| 1z movidas
para m sou capaz deencontrar
- qualquer cadeia |w| - (pelo menos) uma
qk Fq0
xmovidas
q q | |m pertencente a Lexiste
(p )cadeia |w| mpertencente a L emque
wi=xyiz|xy| m
- uma decomposiçãoxyz que produz, pelabombagem de y,
- qualquer decomposiçãoxyz produz, pelabombagem de y,g y,
|xy|mg y,
|xy|m
- todas cadeias - (pelo menos) uma Contradição:pertencentes a L
i 0, xyiz Lcadeia que não pertence à linguagem
i 0, xyiz L
Para qualquer valor de m que me proponhas sou capaz de encontrar uma cadeia maior do que m , em que qualquerq , q q qdecomposição xy , com |xy|m e |y|≥1, bombeada em y, dá pelo menos umacadeia que não pertence à linguagem.
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 212
O lema garante que existe um m e uma decomposição xyzmas não diz como os encontrar. O m depende naturalmente da linguagem L, mas é uma constante em cada linguagem.
d i b d i A decomposição xyz tem que obedecer apenas às restrições |xy| m | | ã i|y| não vazia
S t ífi d i ã Se encontrarmos um m específico ou uma decomposição particular xyz que viola o lema, isso não faz prova por contradição porque pode haver um outro m que verifiquecontradição, porque pode haver um outro m que verifique o lema. Tem que se provar que o lema é contradito para todo o mtodo o m .
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 213
Se para qualquer que seja o valor de m é possível encontrar Se, para qualquer que seja o valor de m, é possível encontrar uma cadeia (da linguagem em causa) maior do que ou igual a m em que qualquer decomposição legítima xyz contraria om, em que qualquer decomposição legítima xyz contraria o lema, então quer dizer que não existe um m apropriado, e portanto o lema é contraditoportanto o lema é contradito.
Dado um m qualquer (10000 1000000000 ): Dado um m qualquer (10000, 1000000000, ...):Escolhe-se uma cadeia maior do que m.N d i f l d i ãNessa cadeia faz-se uma qualquer decomposição xyz.É possível bombear para fora da linguagem em todas as d i õ í i ?decomposições possíveis ?Se sim a linguagem não é regular.
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 214
Exemplo:
• L= {apbqcp, p,q ≥ 0 } é regular ?
Vamos à procura do m !!!
1º: m=10001 : m 1000
Seja a1000b200c1000
Decomposição : xyz=|a999|a|b200c1000|Bombeando y 0 vezes obtém-sexyz=|a999|a0|b200c1000|= xyz=a999b200c1000 ≠ L
- e é suficiente para se rejeitar m=1000Facilmente se vê que a bombagem i vezes com i ≠ 1 produz cadeias que nãoFacilmente se vê que a bombagem i vezes, com i ≠ 1, produz cadeias que não pertencem à linguagem.
E o mesmo acontece para qualquer outra decomposição tal que |xy| 1000 e |y| ≥ 1
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 215
2º: m=1000000
Seja a1000000b200c1000000
Decomposição : xyz=|a999999|a|b200c1000000| note-se que |xy|m B b d 0 btéBombeando y 0 vezes obtém-sexyz=|a999999|a0|b200c1000000|= =a999999b200c1000000 ≠ L
e é suficiente para se rejeitar m=1000000- e é suficiente para se rejeitar m=1000000.A bombagem i vezes, com i ≠ 1, produz cadeias que não pertencem à linguagem. E o mesmo acontece para qualquer outra decomposição tal linguagem. o es o co ece p qu que ou deco pos ç oque |xy| 1000000 e |y| ≥ 1.
3º: m=10000000000000000Seja a10000000000000000b200c10000000000000000
Decomposição : xyz=|a9999999999999999|a|b200c10000000000000000|
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 216
4º Para qualquer outro valor de m , com uma cadeia com a mesma estrutura, ambqcm , qualquer que seja a decomposição q q q j p çxyz legítima, a bombagem i vezes, com i ≠ 1, produz cadeias que não pertencem à linguagem (seria suficiente mesmo que isso acontecesse só par um valor de i).
Para qualquer valor de m que me dês, apresento-te a cadeia amb20cm. Nesta cadeia é impossível encontrar uma
d i ã i f L d B b
l i l l d ifi
decomposição xyz que satisfaça o Lema da Bombagem.
Conclusão: é impossível encontrar um valor de m que verifique o lema da bombagem !!!
Por isso a linguagem é não-regular.
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 217
A d ã d f i d i fA demonstração pode-se fazer genericamente da seguinte forma:
P l l d b b liProve pelo lema da bombagem que a linguagemL = {apbqcp, p,q 0 } não é regular.
• estrutura da cadeia em função de m (qualquer m) : ambqcm
• decomposição xyz : x=am-1 y=a z=bqcm• decomposição xyz : x=am 1, y=a, z=bqcm
• |xy|m: |xy|= m |y|=1_• bombagem: am-1(a)ibqcm• bombagem: a (a) bqc
• conclusão : quando (m-1+i) m a cadeia bombeada passa aconclusão : quando (m 1+i) m, a cadeia bombeada passa a ter a’s e c’s em números diferentes, e por isso essa cadeia não pertence à linguagem,contrariando o lema da bombagem. Opertence à linguagem,contrariando o lema da bombagem. O mesmo acontece para qualquer |xy| m e |y|≥1. Logo a linguagem não é regular.
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 218
g
A demonstração, usando o lema da bombagem, de que uma linguagem não é regular consiste em provar que:g g g p q
Para qualquer valor de m que me proponhas d t d i i dsou capaz de encontrar uma cadeia maior do
que m , em que qualquer decomposição xy , com |xy|m e |y|≥1, bombeada em y, dá pelo menos uma cadeia que não pertence à q plinguagem.
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 219
Poema sobre o lema da bombagem:
The Pumping Lemma by Harry Mairson
Any regular language L has a magic number pAnd any long-enough word in L has the following property:Amongst its first p symbols is a segment you can findg p y g yWhose repetition or omission leaves x amongst its kind.
So if you find a language L which fails this acid test,And some long word you pump becomes distinct from all the restAnd some long word you pump becomes distinct from all the rest,By contradiction you have shown that language L is notA regular guy, resiliant to the damage you have wrought.
But if, upon the other hand, x stays within its L,Then either L is regular, or else you chose not well.For w is xyz, and y cannot be null,And y must come before p symbols have been read in fullAnd y must come before p symbols have been read in full.
As mathematical postscript, an addendum to the wise:The basic proof we outlined here does certainly generalize.p y gSo there is a pumping lemma for all languages context-free,Although we do not have the same for those that are r.e.
de http://www cs brandeis edu/ mairson/poems/node1 html
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 220
de http://www.cs.brandeis.edu/~mairson/poems/node1.html
Bibliografia
An Introduction to Formal Languages and Automata Peter Linz 3rdAn Introduction to Formal Languages and Automata, Peter Linz, 3rd Ed., Jones and Bartelett Computer Science, 2001
Introduction to Automata Theory, Languages and Computation, 2nd Ed., John Hopcroft, Rajeev Motwani, Jeffrey Ullman, Addi W l 2001Addison Wesley, 2001.
Elements for the Theory of Computation, Harry Lewis and Christos P di it i 2 d Ed P ti H ll 1998Papadimitriou, 2nd Ed., Prentice Hall, 1998.
Introduction to the Theory of Computation, Michael Sipser, PWS P bli hi C 1997Publishing Co, 1997.
© ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 221