Informatik: Turingmaschine, wie funktioniert das?
Moin,
ich möchte mich gerne weiterbilden im Bezug zu Informatik, und lese gerade Dinge über die Turingmaschine und deren Konfiguration.
Ich komme jedoch nicht damit zurecht, wie sowas geht:
"Entwickeln Sie eine Turingmaschine, die eine Eingabe, eine beliebige acht Bit lange positive Dualzahl, in eine negative Dualzahl wandelt. Geben Sie die Turingmaschine als 7-Tupel mit Übergangstabelle an. Lassen Sie die Turingmaschine in einer gültigen Anfangskonfiguration starten und in einer gültigen Finalkonfiguration stoppen."
Ich möchte diese Aufgabe sehr gerne lösen, aber komme einfach nicht voran. Über einen möglichen Lösungsweg oder weiterführender Hilfestellung wäre ich sehr dankbar!
2 Antworten
1.) Die Aufgabenstellung ist unzureichend. Darin steht nur, man solle irgendeine negative Zahl ausgeben. Ich vermute, es ist gemeint, man soll die gegebene Zahl negieren, davon ausgehend, dass diese in Zweierkomplementdarstellung gegeben ist.
2.) Das 7-Tupel besteht aus:
TM = (Q, Sigma, Gamma, delta, q0, F, Z);(Wobei ich nicht weiß, was Z sein soll... kenne das nur als 6-Tupel.)
Q := Menge der Zustände
Sigma := Eingabealpabeth
Gamma := Bandalpabeth
delta := Übergangsfunktion; (QxGamma -> QxGammax{L, R, N});
q0 := Startzustand
F := Menge der akzeptierenden Endzustände
Z := Ungenutzt.
Die Turingmaschine startet mit dem Kopf auf dem ersten zeichen der Eingabe und führt dann solange wie möglich mittels der Übergangsfunktionen Schritte aus. Dafür verwendet sie ihren derzeitigen Zustand und das zeichen, das sich gerade unter dem Kopf befindet und bildet dies auf einen neuen Zustand, ein neues Zeichen und eine Kopfbewegung ab.(L == links, R == rechts, N == keine Bewegung).
Du sollst jetzt entsprechend diese Werte und die Übergangsfunktion angeben, sodass die Turingmaschine entsprechend die gegebene Zahl invertiert und dann in einen akzeptierenden Endzustand übergeht.
EDIT:
Ich habe mich nocheinmal genauer erkundigt. Das Tupel müsste folgendermaßen aussehen:
TM = (Q, Sigma, Gamma, delta, q0, Z, F);
Z ist dabei das Zeichen für ein leeres feld der Turingmaschine. Dieses ist in Gamma enthalten.
Alle Felder ohne Eingabe sind anfangs mit diesem Wert gefüllt.
Lies dir am besten erst mal folgendes Beispiel ganz genau durch:
|
Oder auch diese Beispiele hier:
http://ais.informatik.uni-freiburg.de/teaching/ws12/info/lectures/material/info_15_turing.pdf