Capítulo 4 Propriedades das …cbarrico/Disciplinas...Teorema 4.2. A família das RL é fechada em...

30
Capítulo 4 Capítulo 4 Propriedades das Linguagens Propriedades das Linguagens Regulares (RL) 4 1 P idd d f h d RL 4.1. Propriedades de fecho das RL 4 2 P t fi it d d RL 4.2. Pertença e finitude das RL 4 3 Identificação de linguagens não regulares 4.3. Identificação de linguagens não regulares © ADC/TC/CAP.4/2009-10/LEI/DEIFCTUC 192

Transcript of Capítulo 4 Propriedades das …cbarrico/Disciplinas...Teorema 4.2. A família das RL é fechada em...

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