Unäre Sprachen, die von deterministischen Gegenautomaten erkannt werden


17

2dcas (bidirektionale deterministische Ein-Zähler-Automaten) (Petersen, 1994) können die folgende unäre Sprache erkennen:

POWER={02nn0}.

Gibt es eine andere nichttriviale Sprache, die von 2dca erkannt wird?

Beachten Sie, dass noch nicht bekannt ist, ob 2dca .SQUARE={0n2n0}


DEFINITION: Ein 2dca ist ein deterministischer endlicher Zwei-Wege-Automat mit einem Zähler. Ein 2dca kann testen, ob der Wert des Zählers Null ist oder nicht, und den Wert des Zählers in jedem Schritt um 1 erhöhen oder verringern.


3
Könnten Sie einen Link zu einer Definition einer 2DCA hinzufügen?
Suresh Venkat

3
@SureshVenkat: Ich habe eine Referenz und auch eine Definition hinzugefügt.
Abuzer Yakaryilmaz

1
@AbuzerYakaryilmaz: für jedes festgelegte erkennt es { 0 k n : n 0 }k{0kn:n0}
Marzio De Biasi

@MarzioDeBiasi: Der Algorithmus für kann leicht verallgemeinert werden , um P O W E R k = { 0 k n | n 0 } , wobei k 3 . Daher sind diese Sprachen für mich ziemlich trivial. POWERPOWERk={0knn0}k3
Abuzer Yakaryilmaz

1
Hm, in der Tat denke ich, dass ich auf diese Weise zu der gleichen Beobachtung komme, die Marzio bereits gemacht hat, also nichts Neues in dem, was ich gesagt habe. Ich bin jedoch immer noch daran interessiert, ob wir den Endmarker mehr als eine begrenzte Anzahl von Malen lesen müssen.
Domotorp

Antworten:


6

Dies ist nur eine Idee, die mir beim Lesen von Marvin L. Minsky, "Rekursive Unlösbarkeit des Post'schen Tag-Problems und anderer Themen in der Theorie der Turing-Maschinen", in den Sinn gekommen ist. insbesondere der berühmte Satz Ia:

Theorem Ia: Wir können jede partielle rekursive Funktion durch ein Programm darstellen, das mit zwei ganzen Zahlen S 1 und S 2 arbeitet, indem wir Anweisungen I j der folgenden Formen verwenden: (i) ADDIERE 1 zu S j und gehe zu I j 1 ( ii) SUBTRAKTIERE 1 von S j , wenn S j0 und gehe zu I j 1 , andernfalls gehe zu I j 2. Das heißt, wir können ein solches Programm konstruieren, das mit S 1 beginntf(n)S1S2Ij
SjIj1
SjSj0Ij1Ij2
und S 2 = 0 und endet schließlich mit S 1 = 2 f ( n ) und S 2 = 0S1=2nS2=0S1=2f(n)S2=0

Wenn Sie einen Zwei-Wege-DFA mit einem Zähler über einem (halb-) unendlichen Band haben, dessen Eingabe unär gegeben ist: dann kann der DFA:$12n000...

  1. lese die unäre Eingabe (und speichere sie im Zähler);
  2. Bearbeiten Sie den Teil des Bandes und verwenden Sie den Abstand von der 1 s als zweiten Zähler.01

So kann eine Turing-Maschine mit zwei Zählern simuliert werden.

f(n)T(n) $1m$m=2n3T(n)T(n)T(n)

  1. lese die unäre Eingabe (und speichere sie im Zähler);
  2. kehre zum Symbol ganz links zurück;
  3. 2nqz0,qz1,qz2qz0qz1qz2
  4. 2n
  5. 2f(n)T(n)$

Mit der oben beschriebenen speziellen Eingabecodierung, die genügend Platz auf dem endlichen Band bietet, kann ein Zweiwege-DFA mit einem Zähler und einem unären Alphabet jede rekursive Funktion berechnen.

T(n)T(n)k21mm=2nkn


-1

Mit nicht-trivial meine ich eine Sprache L, die von einem 1dca nicht akzeptiert werden kann. Hier scheint eine solche Sprache zu sein:

MITTE = {w | w ist über {0,1} * und w = x1y für einige x, y, so dass | x | = | y |}

Diese Sprache kann von 1dca nicht akzeptiert werden, kann aber von 1nca akzeptiert werden. Es kann von einem 2dca akzeptiert werden. Details bleiben als Übung.


2
$1n$
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.