Encontrando exemplos de idiomas "anti-palindrômicos"

15

Seja Σ={0,1} . Uma linguagem LΣ é dito ter a propriedade "anti-palíndromo" se por todos os textos w que é um palíndromo, wL . Além disso, para cada string u que não seja um palíndromo uL ou Reverse(u)L , mas não ambos (!) (Exclusivo ou).

Entendo a propriedade anti-palíndromo, mas não consegui encontrar nenhum idioma que possua essa propriedade. O mais próximo que eu poderia encontrar é ΣL , mas ele não tem o exclusivo ou parte ... que é, por exemplo, ambos e estão em .10 L0110L

Alguém poderia me dar um exemplo de uma linguagem que possua essa propriedade? Ou possivelmente até mais do que um único exemplo, porque não vejo que tipo de limitações isso coloca em um idioma. (Deve ser não regular? Livre de contexto? Ou nem mesmo em ? E etc.)R

Marik S.
fonte
"Não foi possível encontrar nenhum idioma que possua essa propriedade." - você acabou de definir um, fornecendo a propriedade, assumindo que exista algum idioma que atenda à condição.
Raphael
7
Eu discordo, o que ele definiu foi uma classe de idiomas. Isso não constitui uma definição bem definida para um idioma.
Shreesh 11/02

Respostas:

12

Um exemplo será .L={x  |  binary(x)<binary(xR),x[0,1]}

E ainda outro exemplo .L={x  |  binary(x)>binary(xR),x[0,1]}

A idéia é que, se você estabelecer uma regra para escolher apenas um deles. Você precisa escolher a regra de modo que os palíndromos sejam rejeitados ( f ( x ) < f ( x R ) , para palíndromos você deve ter f ( x ) = f ( x R ) ). Você também pode alterar o alfabeto. alfabeto binário apenas para obter uma resposta rápida.xxRf(x)<f(xR)f(x)=f(xR)

e L ' acima não são regulares. E todalinguagemanti-palíndricaserá não regular e pode ser tão ruim quanto uma linguagem não RE. Exemplo de uma linguagem indecidível: L = { x | de tal modo que b i n a r y ( x ) < b i n a r y ( X R ) , se ambos x e x R Halt ou ambos x e x R Halt, caso contrário, seLLL={x  |  binary(x)<binary(xR)xxR xxR Parar }x}

Klaus Draeger explicou no comentário abaixo que a linguagem anti-palindrômica dada no início da resposta é livre de contexto: L={x0y1xR | x,y{0,1}}

Shreesh
fonte
Entendo, é verdade que toda linguagem anti-palíndromo não é regular. Mas pode-se dizer que deve estar em ? porque mesmo expandindo essa idéia, toda ordem / função que usaremos pode ser computada com uma TM em R .. certo? RR
Maric S.
@ Marik Existem funções bem definidas, mas incontestáveis . Por exemplo, mapeamento de números que representam M, w no problema de parada para [0,1].
Shreesh 12/02
Sim, mas essas funções poderão definir um pedido total em ? Σ
Maric S.
11
Sim. Por exemplo , se ambos x e x R ou Halt, caso contrário, x ou x R o que for em Halt } . Halt é tudo ( M , w ) tal que ML={x|xxR,binary(x)<binary(xR)xxRxxR}(M,w)Mpára em . w
Shreesh 12/02
11
E se você usar uma linguagem de diagonalização, ela se tornará não RE.
Shreesh 12/02
10

Sobre como gerar alguns exemplos:

Com base na resposta de @shreesh, podemos provar que toda linguagem anti-palíndromo deve ter a forma paraalgunspedidos estritos e totais < .

L={x | x<xR}()
<

De fato, dado qualquer anti-palíndromo , podemos definir um < associado da seguinte maneira. Começamos com qualquer enumeração x 0 , x 1 , de { 0 , 1 } , onde cada palavra ocorre exatamente uma vez. Em seguida, alteramos a enumeração: para cada par de não palíndromos x , x R , trocamos sua posição para fazer com que aquele que pertence a L apareça antes do outro. A nova enumeração induz uma ordem total < satisfatória ( ) .L<x0,x1,{0,1}x,xRL<()

Como todo definido como ( ) é não palíndromo, é trivial, portanto ( ) é uma caracterização completa de idiomas não palíndromos.L()()

Dirigindo-se à pergunta original, agora sabemos que podemos obter vários exemplos de linguagens anti-palíndromo elaborando pedidos < . Também sabemos que, ao fazer isso, não estamos nos restringindo a uma subclasse de idiomas, perdendo generalidade.L<


Sobre a pergunta "esses idiomas podem ser regulares?":

Para provar que qualquer anti-palíndromo não é regular, assuma por contradição que é regular.L

  1. Desde regularidade é preservada pela reversão , também é regular.LR
  2. Como a regularidade é preservada pela união, , que é o conjunto de todos os não-palíndromos, também é regular.LLR
  3. Como a regularidade é preservada pelo complemento, o conjunto de todos os palíndromos é regular.

Da última afirmação, podemos derivar uma contradição bombeando. (Veja aqui, por exemplo, uma solução)

chi
fonte
11
Or more simply, you can observe that in order for a DFA to accept the language of palindromes, it needs to consider the first half of the string while parsing the second half -- but a DFA has a finite number of states and cannot store an arbitrarily long string. It's the same reasoning that shows the language of balanced parentheses is non-regular (paren-depth can be arbitrarily large).
Kevin
Entendo, mas se algum que tiver essa propriedade se for do formato L = { x | x < x R } indica que todo idioma também é livre de contexto? Ou, se não for CFL, deve estar em R ? já que todo pedido < pode ser calculado em R com uma TM. LL={x|x<xR}R<R
Maric S.
@MarikS. A gramática de rici abaixo prova que pode ser livre de contexto. Tenho certeza que alguns L é não-recursivo, uma vez que existem uncountably muitas dessas línguas - em minha prova acima, podemos fazer escolhas infinitos contáveis sobre o que colocar em primeiro lugar entre x e x R , e cada combinação dá um distinto L . Portanto, a cardinalidade de tais idiomas é igual a { 0 , 1 } N , o que é incontável. LLxxRL{0,1}N
qui
9

Para o que vale, aqui está uma gramática simples, livre de contexto, para uma linguagem anti-palindrômica:

S0S01S10X1XϵX0X1

(In fact, this is the anti-palindromic language proposed by @shreesh, using lexicographic comparison for the less-than operator.)

rici
fonte
8
Which leads to an even more explicit description: eu={x0 0y1 1xR | x,y{0 0,1 1}}.
Klaus Draeger