Es sei die akzeptierende Turing-Maschine

´M = ({a,b,c}, Z, z_0, {q_1, q_2}, delta, {q_1})´

mit

´Z = {z_0, z_1, z_2, z_3, z_4, z_5, z_a, z_a^', z_b, z_b^', z_E, z_E^' , z_(kE), z_(kE)^', q_1, q_2}´

und

´bb delta´ ´z_0´ ´z_1´ ´z_2´ ´z_3´ ´z_4´ ´z_5´
´∗´ ´(q_2,∗,N)´ ´(q_2,∗,N)´ ´(z_3,∗,L)´ ´(z_4,∗,R)´ ´(q_2,∗,R)´ ´(z_E,∗,L)´
´a´ ´(z_1,a,R)´ ´(z_1,a,R)´ ´(z_2,a,R)´ ´(z_3,a,L)´ ´(z_a,∗,R)´ ´(z_(kE),a,L)´
´b´ ´(z_1,b,R)´ ´(z_1,b,R)´ ´(z_2,b,R)´ ´(z_3,b,L)´ ´(z_b,∗,R)´ ´(z_(kE),b,L)´
´c´ ´(q_2,c,R)´ ´(z_2,c,R)´ ´(q_2,c,N)´ ´(z_3,c,L)´ ´(q_2,c,R)´ ´(q_2,c,N)´
´bb delta´ ´z_a´ ´z_a^'´ ´z_b´ ´z_b^'´
´∗´ ´(q_2,∗,N)´ ´(z_a^',∗,R)´ ´(q_2,∗,N)´ ´(z_b^',∗,R)´
´a´ ´(z_a,a,R)´ ´(z_5,∗,R)´ ´(z_b,a,R)´ ´(q_2,a,N)´
´b´ ´(z_a,b,R)´ ´(q_2,b,N)´ ´(z_b,b,R)´ ´(z_5,∗,R)´
´c´ ´(z_a^',c,R)´ ´(q_2,c,N)´ ´(z_b^',b,R)´ ´(q_2,c,N)´
´bb delta´ ´z_E´ ´z_E^'´ ´z_(kE)´ ´z_(kE)^'´
´∗´ ´(z_E,∗,L)´ ´(q_1,∗,N)´ ´(z_(kE),∗,L)´ ´(q_2,∗,N)´
´a´ ´(z_E,a,L)´ ´(q_2,∗,N)´ ´(z_(kE),a,L)´ ´(z_3,a,L)´
´b´ ´(z_E,b,L)´ ´(q_2,∗,N)´ ´(z_(kE),b,L)´ ´(z_3,a,L)´
´c´ ´(z_E^',c,L)´ ´(q_2,∗,N)´ ´(z_(kE)^',c,L)´ ´(q_2,c,N)´

gegeben.

Bestimme folgende Mengen:

  1. Die von ´M´ akzeptierten Wörter ´T(M)´
  2. Die Wörter, auf denen ´M´ stoppt, aber nicht akzeptiert
  3. Die Wörter, auf denen ´M´ nicht stoppt
Approach

Mittels der Zustände ´z_0, z_1, z_2´ läuft die Maschine von links nach rechts über das Wort und prüft dabei, dass auf dem Band ein Wort ´xcy´ mit ´x in {a,b}^+´ und ´y in {a,b}^(**)´ steht (durch ´z_0´ und den Übergang zu ´z_1´ wird gesichert, dass am Anfang ein ´a´ oder ´b´ steht; durch den Übergang von ´z_1´ zu ´z_2´ wird ein ´c´ im Wort gesichert; ´z_2´ sichert, dass nach ´c´ nur noch ´a´s und ´b´s kommen). Entsprechend ´z_3´ erfolgt ein Rücklauf an den Wortanfang. Im Zustand ´z_4´ steht der Kopf nun über dem ersten Buchstaben, sagen wir ´x´. Dieser wird gelöscht und sich in ´z_x´ gemerkt. Nun erfolgt ein Lauf nach rechts - beim Lesen von c ein Wechsel in ´z_x^'´ - bis der erste von ´**´ verschiedene Buchstabe hinter ´c´ gefunden ist. Wird ein solcher gefunden, so wird getestet, ob es ´x´ ist; im negativen Fall wird nicht akzeptiert, im positiven Fall wird der Buchstabe auch gelöscht und ein Schritt nach rechts gegangen. Mittels ´z_5´ wird festgestellt, ob der gelöschte Buchstabe das Wortende war (Zustand ´z_E´ = Ende) oder nicht (Zustand ´z_(kE)´ = kein Ende). Nun erfolgt ein Rücklauf, wobei am ´c´ in ´z_E^'´ bzw. ´z_(kE)^'´ übergegangen wird. War das Wortende schon erreicht (´z_E´ und ´z_E^'´), wird akzeptiert, falls vor dem ´c´ kein ´a´ oder ´b´ steht; ansonsten wird abgelehnt. War das Wortende noch nicht erreicht, wird endlos nach links gegangen, falls vor dem ´c´ nichts mehr steht, ansonsten wird der Prozess (mittels ´z_3´ und ´z_4´) erneut eingeleitet.


Solution
    1. ´T(M) = {xcx | x in {a,b}^+}´
    2. ´{xyzcxy'z' | x in {a, b}^(**),´´y, y' in {a, b}, y != y', z, z' in {a, b}^(**)} uu ´´{xycx | x,y in {a,b}^+} uu ´´{a,b}^(**) uu ´´{cw | w in {a,b,c}^(**) | ´´{w | w in {a,b,c}^(**), ´´|w|_c > 1}´
    3. ´{xcxy | x in {a,b}^(**), y in {a,b}^+}´
  • URL:
  • Language:
  • Subjects: theoretical computer science
  • Type: Name
  • Duration: 45min
  • Credits: 6
  • Difficulty: 0.6
  • Tags: hpi turing machine
  • Note:
    HPI, 2014-04-01, Theoretische Informatik 2, Aufgabe 1
  • Created By: adius
  • Created At:
    2014-07-21 11:02:34 UTC
  • Last Modified:
    2014-07-23 19:09:38 UTC