Es sei die deterministische akzeptierende 1-Band-Turing-Maschine M gegeben, die wie folgt arbeitet:

  • ´M´ läuft über das Eingabewort und kopiert es auf das Arbeitsband. Dabei testet ´M´ durch einen Wechsel zwischen zwei Zuständen noch, ob das Eingabewort gerade Länge ´> 1´ hat. Ist die Eingabe leer oder ist ihre Länge ungerade, so geht ´M´ in den ablehnenden Stoppzustand.
  • Hat das Wort gerade Länge bewegt sich der Kopf des Eingabebandes zurück an den Anfang der Eingabe und geht in den Zustand ´v´, wobei der Kopf des Arbeitsbandes über dem letzten Buchstaben verharrt.
  • Wird nun auf dem Eingabeband und dem Arbeitsband der gleiche Buchstabe ´x != **´ gelesen, verbleibt ´M´ in ´v´, bewegt den Kopf über der Eingabe eine Position nach rechts und den des Arbeitsbandes um eine Position nach links. Wird auf Eingabe- und Arbeitsband ein verschiedener Buchstabe gelesen, geht ´M´ in den ablehnenden Stoppzustand. Wird auf Eingabe- und Arbeitsband ´**´ gelesen, so geht ´M´ in den akzeptierenden Stoppzustand.

Bestimme:

  1. ´T(M)´
  2. ´t_M(w)´ und ´s_M(w)´ für ´w = "aabbba"´ und ´w = "abaaba"´
  3. ´t_M(n)´ und ´s_M(n)´ für ´n >= 0´
Hint 1
Für ´n >= 2´ gilt ´sum\_(r = 1)^(n - 1) r2^(n − r − 1) = 2^n - n - 1´

Approach

Teil 1

Es werden weder das Leerwort noch Wörter ungerader Länge akzeptiert. Hat das Wort ´x_1 x_2 … x_n´ gerade Länge, so wird überprüft, ob ´x_i = x_(n−i+1)´ für ´1 <= i <= n´ gilt. Gilt für alle ´i´ die Gleichheit, so wird akzeptiert, anderenfalls abgelehnt. Somit gilt:

´T(M) = {x_1 x_2 … x_n | n " gerade ", x_i = x_(n−i+1) " für " 1 <= i <= n} = {w {:|:} |w| " gerade ", w = w^R}´

Teil 2

´w = "aabbba"´:

  • Die Maschine läuft über das Wort und kopiert es auf das Arbeitsband und läuft auf dem Arbeitsband zurück zum Wortanfang: ´((2n + 2) = 14´ Schritte und ´n = 6´ Zellen werden beschrieben und eine Zelle dahinter betreten).
  • Übereinstimmung des ersten und letzten Buchstabens (´1´ Schritt).
  • Übereinstimmung des vorletzten und letzten Buchstaben nicht gegeben (´1´ Schritt).

Folglich gilt:

  • ´t_M("aabbba") = 14 + 1 + 1 = 16´
  • ´s_M ("aabbba") = 6 + 1 = 7´

´w = "abaaba"´:

  • Die Maschine läuft über das Wort und kopiert es auf das Arbeitsband und läuft auf dem Arbeitsband zurück zum Wortanfang: ´((2n + 2) = 14´ Schritte und ´n = 6´ Zellen werden beschrieben und eine Zelle dahinter betreten).
  • Übereinstimmung des ersten und letzten Buchstabens, des zweiten und zweitletzten, dritten und drittletzten usw. wird überprüft und jeweils festgestellt (´n´-mal, also ´6´-mal je ´1´ Schritt; insgesamt ´n = 6´ Schritte).
  • ´**´ hinter dem Wort auf dem Eingabeband und vor dem Wort auf dem Arbeitsband werden gelesen, und ´M´ akzeptiert (´1´ Schritt und eine zusätzliche Zelle betreten).

Folglich gilt:

  • ´t_M("abaaba") = 14 + 6 + 1 = 21´
  • ´s_M("abaaba") = 6 + 1 + 1 = 8´

Teil 3

Ist ´w´ das Leerwort, wird beim Lesen des ´**´ sofort in den nichtakzeptierenden Zustand gegangen. Somit gilt:

  • ´t_M(lambda) = t_M(0) = 1´
  • ´s_M(lambda) = s_M(0) = 0´

(Das tatenlose Stehen über dem Arbeitsband zählt als 0, obwohl man über einer Zelle steht.)

Ist ´n >= 1´ ungerade, so kopiert die Maschine das Wort auf das Band und stoppt, wenn die Zelle dahinter erreicht ist. Damit gilt für ungerades n:

  • ´t_M(n) = n + 1´
  • ´s_M(n) = n + 1´

Es seien ´n´ gerade und ´w = x_1 x_2 … x_n´. Außerdem gelte ´x_i = x_(n−i+1)´ für ´1 <= i < k <= n´ und ´x_k != x_(n−k+1)´. Dann gilt nach den Schritten aus 2. ´t_M(w) = 2n + 2 + k´ und ´s_M(w) = n + 1´ (man beachte, dass natürlich ´k <= n/2´ gilt, da bei Gleichheit der ersten ´n/2´ Buchstaben auch die der letzten folgt).

Ist ´n´ gerade und ´w = wR´ ergibt sich wie in 2. ´t_M(w) = 2n + 2 + n + 1 = 3n + 3´ und ´s_M(w) = n + 2´. Die maximalen Werte werden also im letzten Fall angenommen, woraus für gerades ´n´ resultiert:

  • ´t_M(n) = 3n + 3´
  • ´s_M(n) = n + 2´

Solutions
  • Teil 1

    ´T(M) = {x_1 x_2 … x_n | n " gerade ", x_i = x_(n−i+1) " für " 1 <= i <= n} = {w {:|:} |w| " gerade ", w = w^R}´

    Teil 2

    • ´w = "aabbba"´

      • ´t_M("aabbba") = 14 + 1 + 1 = 16´
      • ´s_M ("aabbba") = 6 + 1 = 7´
    • ´w = "abaaba"´

      • ´t_M("abaaba") = 14 + 6 + 1 = 21´
      • ´s_M("abaaba") = 6 + 1 + 1 = 8´

    Teil 3

    • w´ ist Leerwort
      • ´t_M(lambda) = t_M(0) = 1´
      • ´s_M(lambda) = s_M(0) = 0´
    • n ungerade
      • ´t_M(n) = n + 1´
      • ´s_M(n) = n + 1´
    • n gerade
      • ´t_M(n) = 3n + 3´
      • ´s_M(n) = n + 2´
  • Teil 1

    Einschränkungen:

    • ´> 1´
    • ´|w|´ ist gerade

    => Turingmaschine erkennt Palindrome gerader Länge

    ´T(M) = {ww^R | w in Sigma^+}´

    Teil 2

    Für ´w = "aabbba"´:

    • 6x Buchstabe kopieren
    • 1x Wortende erkennen
    • 6x Anfang Wechseln
    • 1x Wortende erkennen
    • 1x gleiche Buchstaben lesen
    • 1x verschiedene Buchstaben lesen => Stoppzustand wechseln

    => ´t_M(w) = 16´ => ´s_M(w) = 8´

    Für ´w = "abaaba"´:

    • 6x Buchstabe kopieren
    • 1x Wortende erkennen
    • 6x Anfang Wechseln
    • 1x Wortende erkennen
    • 6x gleiche Buchstaben lesen
    • 1x leeres Wort lesen => akzeptierenden Stoppzustand wechseln

    => ´t_M(w) = 21´ => ´s_M(w) = 8´

    Teil 3

    ´t_M(w) = 3(n + 1)´ für gerade ´t_M(w) = (n + 1)´ für ungerade ´t_M(w) = 0´ für leeres Wort

    ´s_M(w) = n + 2´

  • URL:
  • Language:
  • Subjects: theoretical computer science
  • Type: Name
  • Duration: 40min
  • Credits: 7
  • Difficulty: 0.6
  • Tags: hpi turing machine deterministic turing machine time complexity space complexity
  • Note:
    HPI, 2014-05-26, Theoretische Informatik 2, Blatt 8, Aufgabe 1
  • Created By: adius
  • Created At:
    2014-07-22 19:33:59 UTC
  • Last Modified:
    2014-07-25 06:11:27 UTC