Como provar que uma linguagem não é livre de contexto?


88

Aprendemos sobre a classe de linguagens livres de contexto CFL . É caracterizado por gramáticas livres de contexto e autômatos de empilhamento, portanto é fácil mostrar que um determinado idioma é livre de contexto.

Como mostro o oposto? Meu AT foi firme em afirmar que, para fazer isso, teríamos que mostrar para todas as gramáticas (ou autômatos) que eles não podem descrever o idioma em questão. Parece uma grande tarefa!

Eu li sobre algum lema de bombeamento, mas parece realmente complicado.


Ntpick: é indecidível mostrar se um idioma é livre de contexto.
Reinierpost

1
@reinierpost Não vejo como o seu comentário se relaciona com a pergunta. É sobre provar coisas, não decidir (algoritmicamente).
Raphael

Basta fazer o ponto que é não fácil mostrar que a linguagem é livre de contexto, em geral . Se é fácil para o frafl, isso deve-se a certas condições especiais que não são válidas para os idiomas em geral, como receber um autômato de empilhamento que descreve o idioma.
Reinierpost

@reinierpost Essa linha de raciocínio parece assumir que indecidível implica (igual a?) difícil de provar. Eu me pergunto se isso é verdade.
Raphael

Respostas:


69

Que eu saiba, o lema de bombeamento é de longe a técnica mais simples e mais usada. Se você acha difícil, tente a versão regular primeiro, não é tão ruim assim. Existem outros meios para idiomas que estão longe de ser livres de contexto. Por exemplo, linguagens indecidíveis não são trivialmente livres de contexto.

Dito isto, também estou interessado em outras técnicas além do lema de bombeamento, se houver.

EDIT: Aqui está um exemplo para o lema de bombeamento: suponha que a linguagem seja livre de contexto ( P é o conjunto de números primos). O lema de bombeamento possui muitos quantificadores / , então vou fazer isso um pouco como um jogo:L={akkP}P/

  1. O lema de bombeamento fornece um p
  2. Você fornece uma palavra da língua de comprimento pelo menos psp
  3. O lema de bombeamento reescreve-o assim: com algumas condições ( | v x y |p e | v y |1 )s=uvxyz|vxy|p|vy|1
  4. Você fornece um número inteiro n0
  5. Se não está em L , você vence, L não é livre de contexto.uvnxynzLL

Por esta linguagem particular para qualquer um k (com k p e k é um número primo) irá fazer o truque. Então o lema de bombeamento fornece u v x y z com | v y | 1 . Não refute a transparência do contexto, você precisa encontrar n tais que | u v n x y n z | não é um número primo.sakkpkuvxyz|vy|1n|uvnxynz|

|uvnxynz|=|s|+(n1)|vy|=k+(n1)|vy|

E então fará: k + k | v y | = K ( 1 + | v y | ) não é tão privilegiada u v N x y N z L . O lema de bombeamento não pode ser aplicado, portanto L não é livre de contexto.n=k+1k+k|vy|=k(1+|vy|)uvnxynzLL

Um segundo exemplo é o idioma . Nós (é claro) temos que escolher uma string e mostrar que não há como ela ser dividida nessas cinco partes e que cada string bombeada derivada permaneça no idioma.{www{a,b}}

A string é uma escolha adequada para esta prova. Agora, basta ver onde v e y podem estar. As partes principais são que v ou y precisa conter algo (talvez ambos) e que v e y (e x ) estão contidos em uma substring de comprimento p - para que não possam estar muito distantes.s=apbpapbpvyvyvyxp

Essa sequência tem várias possibilidades de onde e y podem estar, mas acontece que vários dos casos realmente parecem muito semelhantes.vy

  1. ou v y b . Então, ambos estão contidos em uma das seções contíguas a s ou b s. Esse é o caso relativamente fácil de argumentar, pois não importa em que parte eles estejam. Suponha que | v y | = k p . vyavybab|vy|=kp
    • Se eles estão na primeira seção de s, então, quando bombeamos, a primeira metade da nova corda é a p + k b p - k / 2 , e a segunda é b k / 2 a p b p . Obviamente, isso não tem a forma w w .aap+kbpk/2bk/2apbpww
    • O argumento para qualquer uma das outras três seções é praticamente o mesmo, é exatamente onde e k / 2 terminam nos índices.kk/2
  2. abrange duas das seções. Neste caso o bombeamentopara baixoé seu amigo. Novamente, há vários lugares em que isso pode acontecer (3 para ser exato), mas farei apenas um ilustrativo, e o resto deve ser fácil de entender a partir daí. vxy
    • Suponha que atravessa a fronteira entre a primeira uma secção e a primeira b secção. Seja v y = a k 1 b k 2 (não importa exatamente onde os a e b s estão em v e y , mas sabemos que eles estão em ordem). Então, quando bombeamos (ou seja, ocaso i = 0 ), obtemos a nova string s = a p - k 1 b p - k 2a p b p , mas então se s 'vxyabvy=ak1bk2abvyi=0s=apk1bpk2apbps pode ser dividido em , o ponto médio deve estar algures no segundo uma secção, de modo que a primeira metade é uma p - k 1 b p - k 2 um ( k 1 + k 2 ) / 2 , e a segunda metade é a p - ( k 1 + k 2 ) / 2 b pwwaapk1bpk2a(k1+k2)/2ap(k1+k2)/2bp. Claramente, essas não são a mesma string, portanto não podemos colocar e y ali.vy

Os casos restantes devem ser bastante transparentes a partir daí - são as mesmas idéias, apenas colocando e y nos outros 3 pontos na primeira instância e 2 pontos na segunda instância. Em todos os casos, porém, você pode bombear de tal maneira que a ordem seja claramente confusa quando você dividir a corda ao meio.vy


de fato, o jogo de kozen é o caminho a seguir.
socrates

45

Lema de Ogden

Lema (Ogden). Seja uma linguagem livre de contexto. Então existe uma constante N tal que, para todo z L e qualquer forma de marcar N ou mais posições (símbolos) de z como "posições distintas", então z pode ser escrito como z = u v w x y , de modo queLNzL Nzzz=uvwxy

  1. tem pelo menos uma posição distinta.vx
  2. tem no máximo N posições distintas.vwxN
  3. Para todos os , u v i w x i y L .i0uviwxiyL

Exemplo. Seja . Suponha que L seja livre de contexto e que N seja a constante dada pelo lema de Ogden. Seja z = a N b N + N ! c N + 2 N ! (que pertence a L ) e suponha quemarquemosL={aibjck:ij,jk,ik}LNz=aNbN+N!cN+2N!Lcomo distingue todas as posições do símbolo (isto é, as primeiras N posições de z ). Seja z = u v w x y uma decomposição de z satisfazendo as condições do lema de Ogden.aNzz=uvwxyz

  • Se ou x contiverem símbolos diferentes, então u v 2 w x 2 y L , porque haverá símbolos na ordem errada.vxuv2wx2yL
  • Pelo menos um de e x deve conter apenas símbolos de uma , porque apenas os um 's foram distinguidos. Assim, se x L ( b ) ou xvxaaxL(b) , então v L ( A + ) . Seja p = | v | . Então 1 p N , o que significa que p divide N ! . Let qxL(c)vL(A+)p=|v|1pNpN! . Em seguida, Z ' = u v 2 q + 1 w x 2 q + 1 y deve pertencer a L . No entanto, v 2 q + 1 = a 2 p q + p = a 2 N ! + p . Como u w y possui exatamente N - p símbolos a , então zq=N!/pz=uv2q+1wx2q+1yLv2q+1=a2pq+p=a2N!+puwyNpa Tem 2 N ! + N símbolos a . Mas ambos v e x não têm c 's, então z também possui 2 N ! + N símbolos c , que significa z L , e isso contradiz o lema de Ogden. Uma contradição semelhante ocorre se x L ( A + ) ou x L ( c ) . Concluímos Lz2N!+Navxcz2N!+NczLxL(A+)xL(c)L não é livre de contexto.

Exercício. Usando o Lema de Ogden, mostre que não é livre de contexto.L={aibjckd:i=0 or j=k=}

Lemma de bombeamento

Este é um caso particular do lema de Ogden, no qual todas as posições são distintas.

Lema. Seja uma linguagem livre de contexto. Então existe uma constante N tal que para todo z L , z pode ser escrito como z = u v w x y , tal queLNzLzz=uvwxy

  1. .|vx|>0
  2. .|vwx|N
  3. Para todos os , u v i w x i y L .i0uviwxiyL

Teorema de Parikh

Isso é ainda mais técnico que o Lema de Ogden.

Definição. Seja . Definimos Ψ Σ : Σ N n porΣ={a1,,an}ΨΣ:ΣNn onde m i é o número de aparências de a i em w .

ΨΣ(w)=(m1,,mn),
miaiw

Definição. Um subconjunto de N n é chamado linear se puder ser escrito: S = { u 0 + SNn

S={u0+1ikaiui: for some set of uiNn and aiN}

Definição. Um subconjunto de N n é chamado semi-linear se for a união de uma coleção finita de conjuntos lineares.SNn

Teorema (Parikh). Let L um idioma acima de . Se L é livre de contexto, em seguida, vF Σ [ L ] = { vF Σ ( w ) : w L } é semi-linear.ΣL

ΨΣ[L]={ΨΣ(w):wL}

Exercício. Usando o Teorema de Parikh, mostre que não é livre de contexto.L={0m1n:m>n or (m is prime and mn)}

Exercício. Usando o Teorema de Parikh, mostre que qualquer linguagem sem contexto sobre um alfabeto unário também é regular.


1
Aceitei a resposta de jmad porque a pergunta menciona explicitamente o Pumping Lemma. Agradeço muito a sua resposta; ter todos os principais métodos coletados aqui é ótimo.
Raphael

1
Isso é bom, mas note que o lema do bombeamento é um caso particular do Lema de Ogden ;-)
Janoma

Claro. Ainda assim, a maioria das pessoas experimentará PL primeiro; muitos nem sabem OL.
Raphael

1
Um teorema de Ginsburg e Spanier, baseado no teorema de Parikh, fornece uma condição necessária e suficiente para a ausência de contexto no caso delimitado. math.stackexchange.com/a/122472
sdcvvc

Você pode definir "posições distintas" em termos de outras operações? Ou pelo menos informalmente? Acho que a definição de OL copiado literalmente em muitos lugares diferentes, mas nenhum deles até agora se importou em explicar o que isso significa.
wvxvw

34

Propriedades de fechamento

Uma vez que você tem uma pequena coleção de idiomas não-livres de contexto muitas vezes você pode usar propriedades de fechamento de assim:CFL

Suponha . Em seguida, por fecho propriedade X (em conjunto com Y), G 'C F G . Isso contradiz L LCFLLCFL que sabemos que para manter, portanto, L C F G .LCFLLCFL

Isso geralmente é mais curto (e geralmente menos propenso a erros) do que usar um dos outros resultados que usam menos conhecimento prévio. É também um conceito geral que pode ser aplicado a todos os tipos de classe de objetos.

Exemplo 1: Interseção com idiomas regulares

Observamos o idioma regular especificado por qualquer expressão regular e .L(e)e

Seja . ComoL={ww{a,b,c},|w|a=|w|b=|w|c}

LL(abc)={anbncnnN}CFL

e é fechada sob intersecção com linguagens regulares, L C F G .CFLLCFL

Exemplo 2: Homomorfismo (inverso)

Seja . Com o homomorfismoL={(ab)2ncmd2nm(aba)nm,nN}

ϕ(x)={ax=aεx=bbx=cx=d

temos ϕ(L)={a2nb2na2nnN}.

Agora com

ψ(x)={aax=ax=cbbx=bandL1={xnbnynx,y{a,c}nN},

temos .L1=ψ1(ϕ(L)))

Finalmente, cruzando com o idioma regular L 2 = L ( a b c ) , obtemos o idioma L 3 = { a n b n c nL1L2=L(abc) .L3={anbncnnN}

No total, temos .L3=L2ψ1(ϕ(L))

Agora assuma que era livre de contexto. Então, uma vez que C F G é fechada contra homomorphism, homomorphism inversa, e intersecção com conjuntos regulares, G 3 é livre de contexto, também. Mas sabemos (via Pumping Lemma, se necessário) que L 3 não é livre de contexto, então isso é uma contradição; mostrámos que G C F G .LCFLL3L3LCFL


Intercâmbio Lema

O lema do intercâmbio [1] propõe uma condição necessária para a ausência de contexto ainda mais forte que o lema de Ogden . Por exemplo, ele pode ser usado para mostrar que

{xyyzx,y,z{a,b,c}+}CFL

que resiste a muitos outros métodos. Este é o lema:

Vamos . Em seguida, existe uma constante c G tal que, para qualquer número inteiro n 2 , qualquer conjunto Q nL n = L Σ N e qualquer número inteiro m com n m 2 existem k | Q n |LCFLcLn2QnLn=LΣnmnm2 cordasziQncomk|Qn|cLn2ziQn

  1. para i = 1 , , k ,zi=wixiyii=1,,k
  2. ,|w1|=|w2|==|wk|
  3. ,|y1|=|y2|==|yk|
  4. m|x1|=|x2|==|xk|>m2 e
  5. para todos ( i , j ) [ 1 .. k ]wixjyiLn .(i,j)[1..k]2

Aplicando isso significa para encontrar en,m tal que 1.-4. segure, mas 5. é violado. O exemplo de aplicação fornecido no artigo original é muito detalhado e, portanto, é deixado de fora aqui.Qn

No momento, não tenho uma referência disponível gratuitamente e a formulação acima foi retirada de uma pré-impressão de [1] de 1981. Agradeço a ajuda na busca de melhores referências. Parece que a mesma propriedade foi (re) descoberta recentemente [2].


Outras condições necessárias

Boonyavatana e Slutzki [3] pesquisam várias condições semelhantes ao Lemma de Bombeamento e Intercâmbio.


  1. Um “Lema de Intercâmbio” para Línguas Sem Contexto por W. Ogden, RJ Ross e K. Winklmann (1985)
  2. Troca de lemas por idiomas regulares e sem contexto por T. Yamakami (2008)
  3. Os lemas de intercâmbio ou pump (DI) para linguagens sem contexto de R. Boonyavatana e G. Slutzki (1988)


19

Não existe um método geral, pois o conjunto de idiomas sem contexto não é semi-decidível (akare). Se houvesse um método geral, poderíamos usá-lo para semi-decidir esse conjunto.

A situação é ainda pior, uma vez que, dadas duas CFLs, não é possível decidir se a interseção também é uma CFL.

Referência: Hopcroft e Ullman, "Introdução à Teoria dos Autômatos, Idiomas e Computação", 1979.


2
Uma questão interessante (mas provavelmente mais avançada e aberta) seria categorizar a subclasse de não CFLs que pode ser provada como não CFL usando um método específico.
Kaveh

Não estou procurando um método computável , mas técnicas de prova de caneta e papel. O último não implica necessariamente o primeiro.
Raphael

13

Uma versão mais forte da condição de Ogden ( OC ) é a

Condição de Bader-Moura (BMC)

Uma linguagem satisfaz o BMC se existir uma constante n tal que se z L e rotularmos nela as posições "distintas" d ( z ) e e ( z ) as posições "excluídas", com d ( z ) > n e ( z ) + 1 , então podemos escrever z = u v w x y de modo que:LΣnzLd(z)e(z)d(z)>ne(z)+1z=uvwxy

  1. e e ( v x ) = 0d(vx)1e(vx)=0
  2. ed(vwx)ne(vwx)+1
  3. para cada , u v i w x i y é em L .i0uviwxiyL

Dizemos que uma linguagem se L satisfaz a condição de Bader-Moura.LBMC(Σ)L

Temos , de modo a BMC é estritamente mais forte do que OC.CFL(Σ)BMC(Σ)OC(Σ)

Referência: Bader, C., Moura, A., A Generalization of Ogden's Lemma. JACM 29, n. 2, 1982, p. 404-407


2
Porque não basta percorrer todo o caminho para o Dömösi e Kudlek generalização dx.doi.org/10.1007/3-540-48321-7_18 ...
András Salamon

@ AndrásSalamon: Eu não sabia! :-) ... talvez você possa publicá-la como uma nova resposta dizendo que OC, BMC, PC são casos especiais (todas as posições distintas ou excluídas).
Vor

você pode publicá-lo, não tem tempo agora.
András Salamon

Esta resposta se beneficiaria de um exemplo.
Raphael
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.