Teorema de Parikh: os CFLs “contêm” idiomas regulares?

7

A primeira frase do artigo da Wikipedia sobre o Teorema de Parikh afirma:

"O teorema de Parikh em ciência da computação teórica diz que, se olharmos apenas para o número relativo de ocorrências de símbolos terminais em uma linguagem livre de contexto, sem levar em conta sua ordem, então a linguagem é indistinguível de uma linguagem comum".

Estou tendo problemas para entender esta frase. Entendo que CFLs unárias podem ser descritas como a união finita de muitas seqüências aritméticas. Isso significa que se aplicarmos um morfismoh para algumas CFL L que, digamos, mapeia aa e cϵ para alguns aΣ e para todos cΣ com ca, então h(L)é uma linguagem regular unária? Alguém poderia elaborar isso?

David Smith
fonte

Respostas:

12

A imagem de Parikh Ψ de uma palavra é um vetor contando o número de cada uma das letras do alfabeto: por exemplo Ψ(abbabaaca)=(5,3,1) assumindo que o alfabeto é {a,b,c}.

A imagem parikh de um idioma é o conjunto de imagens parikh das strings no idioma: Ψ({anbncnn0})={(n,n,n)n0}.

O teorema afirma que as imagens parikh de linguagens livres de contexto são de fato imagens parikh de linguagens regulares, como exemplo Ψ({(ab)ncnn0})=Ψ((abc)).

(Em uma edição anterior, eu tive o exemplo Ψ({anbncnn0})=Ψ((abc)). Tecnicamente correto, mas o leitor notará que a linguagem não é livre de contexto.)

Hendrik Jan
fonte
5

Concordo que a redação da Wikipedia não é muito clara, mas acredito que se refira à seguinte relação:

Chame o equivalente em duas palavras, se for igual ao desconsiderar a ordem dos caracteres. Ou seja: classificar lexicograficamente seus caracteres (preservar duplicados) produz a mesma palavra. (Em outras palavras: as imagens do Parikh são as mesmas.)

Chame o equivalente a uma letra de duas línguas, se as palavras forem, ou seja: classificar lexicograficamente as palavras produz o mesmo idioma. (Em outras palavras: as imagens do Parikh são as mesmas.)

O teorema implica que toda linguagem sem contexto é letra equivalente a uma linguagem regular. Por exemplo,{anbnn0} é uma letra equivalente a (ab).

(A letra da noção equivalente pode ser encontrada em, por exemplo, Uma prova simplificada do teorema de Parikh , por J. Goldstine (1977) .)

reinierpost
fonte
Seria ainda melhor se você pudesse adicionar uma referência à sua resposta.
John L.
A propósito, acredito que a adição de "(preservar duplicados)" acrescenta mais confusão do que esclarecimento, porque preservar duplicados é universalmente a norma. Nenhuma classificação implica a remoção de duplicatas, a menos que seja explicitamente necessário. Em resumo, o comportamento padrão não deve ser mencionado explicitamente (exceto em casos excepcionais). Apenas meus 2 centavos. Estou falando sério, já que esse é um assunto pequeno aqui (o que me preocupa é, é claro, se você aplicar seu hábito em todos os lugares) e, uma vez que realmente não muda nada aqui.
John L.
Também estou pensando nisso; mas seus personagens são ambíguos, pode-se dizer que significa: cada personagem diferente que ocorre.
Reinierpost
OK, entendo sua preocupação. Razoável.
John L.
11
Eu adicionei a referência, mas ela incha a resposta. Não queria duplicar a resposta de Hendrik Jan.
reinierpost