Linguagens unárias reconhecidas por contra-autômatos determinísticos bidirecionais

17

Os 2dca (autômatos determinísticos bidirecionais de um contador) (Petersen, 1994) podem reconhecer a seguinte linguagem unária:

POWER={0 02nn0 0}.

Existe alguma outra linguagem unária não trivial reconhecida pelos 2dca's?

Observe que ainda não se sabe se 2dca pode reconhecer SQvocêUMARE={0 0n2n0 0} ?


DEFINIÇÃO: Um 2dca é um autômato finito determinístico de duas vias com um contador. Um 2dca pode testar se o valor do contador é zero ou não e aumentar ou diminuir o valor do contador em 1 em cada etapa.

Abuzer Yakaryilmaz
fonte
3
Você poderia adicionar um link a uma definição de 2DCA?
Suresh Venkat
3
@SureshVenkat: adicionei uma referência e também uma definição.
Abuzer Yakaryilmaz
11
@AbuzerYakaryilmaz: para cada fixo que podem reconhecer { 0 k n : n 0 }k{0kn:n0}
Marzio De Biasi
@MarzioDeBiasi: O algoritmo para pode ser facilmente generalizado para P O W E R k = { 0 k n | n 0 } , onde k 3 . Portanto, essas linguagens são bastante triviais para mim. POWERPOWERk={0knn0}k3
Abuzer Yakaryilmaz
11
Na verdade, acho que dessa maneira acabo na mesma observação que Marzio já fez, então nada de novo no que eu disse. Ainda estou interessado em saber se precisamos ler o marcador final mais do que um número limitado de vezes.
Domotorp 16/07

Respostas:

6

Essa é apenas uma idéia que me veio à mente ao ler Marvin L. Minsky, "Insolubilidade recursiva do problema de etiqueta de Post e outros tópicos da teoria das máquinas de Turing"; em particular o famoso teorema Ia:

Teorema Ia: Podemos representar qualquer função recursiva parcial por um programa operando em dois inteiros S 1 e S 2 usando as instruções I j dos formulários: (i) ADD 1 a S j e vá para I j 1 ( ii) SUBTRATO 1 de S j , se S j0 e for para I j 1 , caso contrário, vá para I j 2 Ou seja, podemos construir um programa que comece com S 1f(n)S1 1S2Euj
SjEuj1 1
SjSj0 0Euj1 1Euj2
e S 2 = 0 e, eventualmente, para com S 1 = 2 f ( n ) e S 2 = 0S1 1=2nS2=0 0S1 1=2f(n)S2=0 0

Se você tiver um DFA bidirecional com um contador em uma fita (semi) infinita, em que a entrada é dada em unário: o DFA pode:$1 12n000 ...

  1. leia a entrada unária (e guarde-a no balcão);
  2. trabalho no parte da fita e usar a distância do 1 s como o segundo balcão.01

para simular uma máquina completa de dois contadores da Turing.

Agora, se você tiver uma função recursiva que é executada no tempo T ( n ) em uma máquina de Turing padrão, um DFA bidirecional com um contador que inicia na fita finita $ 1 m $f(n)T(n) $1m$(onde e T ( n ) T ( n ) ) pode:m=2n3T(n)T(n)T(n)

  1. leia a entrada unária (e guarde-a no balcão);
  2. retornar ao símbolo mais à esquerda;
  3. divida o contador por 3 até que o contador contenha desta maneira: vá para a direita a partir dos estados q z 0 , q z 1 , q z 2 e subtraia 1; se o contador atingir 0 no estado q z 0, vá para o símbolo mais à esquerda adicionando +1 e continue o loop de divisão; caso contrário, adicione 1 (se estiver no estado q z 1 ) ou 2 (se estiver no estado q z 2 ) e vá para o símbolo mais à esquerda adicionando + 3 (ou seja, recuperar o valor anterior do contador não divisível por 3) e prossiga com a etapa 4 .;2nqz0,qz1,qz2qz0qz1qz2
  4. neste ponto, o contador contém ;2n
  5. calcule usando o espaço T ( n ) disponível à direita como segundo contador (o valor do segundo contador é a distância do símbolo mais à esquerda $ ).2f(n)T(n)$

Portanto, com a codificação de entrada especial descrita acima, que oferece espaço suficiente na fita finita, um DFA bidirecional com um contador e alfabeto unário pode calcular todas as funções recursivas.

Se a abordagem é correcta, seria interessante para raciocinar sobre como escolher ou quando é suficiente para escolher um grande ângulo diferente k » 2 e codificar a entrada como uma m , m = 2 n k nT(n)T(n)k21mm=2nkn

Marzio De Biasi
fonte
-1

Por não trivial, suponho que você queira dizer um idioma L que não pode ser aceito por um 1dca. Aqui parece haver uma linguagem assim:

CENTRO = {w | w está acima de {0,1} * e w = x1y para alguns x, y tais que | x | = | y |}

Este idioma não pode ser aceito por 1dca, mas PODE ser aceito por 1nca. Pode ser aceito por um 2dca. Os detalhes são deixados como exercício.

user14004
fonte
2
A OP pede unárias línguas (a entrada é dada como )$1n$
Marzio De Biasi