Ich mache einen Vortrag über Turingmaschinen und wollte einige Hintergrundinformationen zu FSMs geben, bevor ich Turingmaschinen vorstelle. Das Problem ist, ich weiß wirklich nicht, was sich SEHR voneinander unterscheidet.
Ich weiß, dass es anders ist:
FSM hat sequentielle Zustände, abhängig von der entsprechenden Bedingung, die erfüllt ist, während Turing-Maschinen auf einem unendlichen "Band" mit einem Kopf arbeiten, der liest und schreibt.
Es gibt mehr Raum für Fehler in FSMs, da wir leicht auf einen nicht endenden Zustand fallen können, während es nicht so sehr für Turing-Maschinen ist, da wir zurückgehen und Dinge ändern können.
Abgesehen davon kenne ich nicht viel mehr Unterschiede, die Turing-Maschinen besser machen als FSMs.
Kannst du mir bitte helfen?
quelle
Antworten:
Der Hauptunterschied zwischen der Funktionsweise von DFAs (Deterministic Finite Automaton) und TMs besteht in der Verwendung des Speichers.
Intuitiv haben DFAs überhaupt keinen Arbeitsspeicher. Die Konfiguration eines DFA hängt vollständig von dem Zustand ab, in dem er sich gerade befindet, und von seinem aktuellen Fortschritt beim Lesen der Eingabe.
Intuitiv haben TMs einen "Kratzer" -Speicher in Form von Bändern; Die Konfiguration eines TM besteht sowohl aus seinem aktuellen Status als auch aus dem aktuellen Inhalt des Bandes, den der TM während der Ausführung ändern kann.
Ein DFA kann als TM betrachtet werden, das weder Bandsymbole ändert noch den Kopf nach links bewegt. Diese Einschränkungen machen es unmöglich, bestimmte Sprachen zu erkennen, die von TMs akzeptiert werden können.
Beachten Sie, dass ich den Begriff "DFA" anstelle von "FSM" verwende, da ich ein TM technisch als eine endliche Zustandsmaschine betrachten würde, da TMs per Definition eine endliche Anzahl von Zuständen haben. Der Unterschied zwischen DFAs und TMs besteht in der Anzahl der Konfigurationen, die der Anzahl der Status für einen DFA entspricht, für einen TM jedoch unendlich groß ist.
quelle
Turing Machines beschreiben eine viel größere Klasse von Sprachen, die Klasse von rekursiv aufzählbaren Sprachen. Finite-State-Maschinen beschreiben die Klasse der regulären Sprachen.
Endliche Zustandsmaschinen haben kein "Gedächtnis", sie sind durch ihre Zustände begrenzt.
Eine Finite-State-Maschine ist eine eingeschränkte Turing-Maschine, bei der der Kopf nur "Lese" -Operationen ausführen kann und sich immer von links nach rechts bewegt.
Nehmen Sie diese Sprache als Beispiel:
Da Zustandsmaschinen in dem Sinne begrenzt sind, dass sie keinen Speicher haben, kann eine FSM, die L akzeptiert, nicht konstruiert werden.
Zusammenfassen:
Finite-State-Maschinen beschreiben eine kleine Klasse von Sprachen, in denen kein Speicher benötigt wird.
Turing Machines sind die mathematische Beschreibung eines Computers und akzeptieren eine viel größere Klasse von Sprachen als FSMs.
Turing Machines haben mehr Rechenleistung als FSM. Es gibt Aufgaben, die kein FSM ausführen kann, die Turing Machines jedoch ausführen können.
quelle
Ich hatte den gleichen Zweifel und sah zwei sehr aufschlussreiche Videos und eine Erklärung zu Quora wie folgt:
Ich habe daraus verstanden, dass eine Turing-Maschine eine endliche Zustandsmaschine als Teil ihrer Betriebsprozedur verwendet / hat und zusätzlich einen bearbeitbaren Speicher hinzufügt.
Bitte schau dir auch diese beiden Videos an, sie sind aufschlussreich!
https://youtu.be/gJQTFhkhwPA
https://youtu.be/E3keLeMwfHY
quelle
Soweit ich die Unterschiede zwischen (Standardmodell) Turing und (Standardmodell) Mealy Machines verstehe:
quelle
Eine Turing-Maschine kann als Teil des Bands Dinge speichern, an die sie sich erinnern möchte.
quelle