Ich versuche, die Existenz nicht erkennbarer Sprachen zu verstehen. Um dies zu erreichen, muss ich wissen, warum eine Turing-Maschine nur eine Sprache erkennt, nicht mehrere. Warum ist das?
Ich versuche, die Existenz nicht erkennbarer Sprachen zu verstehen. Um dies zu erreichen, muss ich wissen, warum eine Turing-Maschine nur eine Sprache erkennt, nicht mehrere. Warum ist das?
Antworten:
Die von einer Turing-Maschine erkannte Sprache ist per Definition die Menge der Zeichenfolgen, die sie akzeptiert. Wenn eine Eingabe an die Maschine gesendet wird, wird diese entweder akzeptiert oder nicht. Jede bestimmte Eingabe in diese Maschine wird entweder immer akzeptiert (in der Sprache) oder immer nicht akzeptiert (nicht in der Sprache). Es gibt also keinen Mechanismus, mit dem eine einzelne Turing-Maschine mehr als eine Sprache aufnehmen könnte.
Stellen Sie sich das so vor: Ein TM ist wie ein Computer mit einer geladenen Software. Jede Software macht eine Sache, oder? Denken Sie beispielsweise an Ihren Computer und nehmen Sie an, dass nur 1 Programm darauf geladen ist. Dann macht PC + "Photoshop" nur Photoshop, während PC + "Mine Sweeper" nur Minen fegt.
Eine Turingmaschine ist also eine sehr einfache Kreatur, die bei jedem Lauf eine einzige Eingabe erhält und entweder eine Ja oder eine Nein ausgibt . An welchen Eingängen es Ja sagt und an welchen Nein sagt - dies wird durch das "Programm" des TM eingestellt, das durch seine Zustände und seine Übergangsfunktion bestimmt wird. Sobald diese behoben sind, ist das "Programm" festgelegt, und für eine bestimmte Eingabe gibt es nur eine Antwort: Ja oder Nein (akzeptieren / ablehnen). Dies definiert genau eine einzelne Sprache = alle Eingaben, die ein Ja ergeben, wenn sie dem TM übergeben werden.
Auf der anderen Seite das Set von allen ist TMs entspricht den Satz von Computern + „Software“ mit allen möglichen Programmen. Jetzt können mehr Sprachen entschieden werden - aber dennoch entscheidet (oder erkennt) jedes spezifische TM nur eine Sprache.
Turing Machine funktioniert genauso wie sie, weil wir sie so definieren. Wir könnten differenziertere Definitionen haben, aber die Frage ist, ob dies einen Zweck erfüllen würde, ob es uns erlauben würde, mehr Dinge zu tun. Und soweit wir wissen, lautet die Antwort nein.
Es ist sehr einfach, Modelle von Turing-Maschinen herzustellen, die zwei Sprachen erkennen. Bei gegebenen Sprachen und L 2 könnten wir ein TM mit zwei Arten von Akzeptanzzuständen definieren: einen für L 1 und einen für L 2 . Man würde sagen, dass ein TM akzeptiertwenn es irgendwann in einen entsprechenden Akzeptanzzustand eintritt. Es würde jedoch die Berechnung wieder aufnehmen, um zu sehen, ob es auch in die andere Art des Akzeptanzzustands eintreten kann. Und wir könnten verlangen, dass es später anhält oder möglicherweise nicht. Sie könnten dann die gesamte Theorie auf solchen Maschinen aufbauen. Es würde funktionieren und viel komplizierter sein als das, was wir normalerweise tun.
Um die Aussage von David Richerby zu beantworten , dass " es keinen Mechanismus gibt, durch den eine einzelne Turing-Maschine sogar mehr als eine Sprache akzeptieren könnte ", liegt es nur daran, dass wir uns dafür entscheiden, solche Mechanismen nicht in Betracht zu ziehen. Selbst wenn Sie TM auf das Standardmodell beschränken, können Sie sagen, dass die Eingabe in der Sprache erkannt wird, wenn das TM in einem akzeptierenden Zustand mit einer ungeraden Anzahl von Schritten anhält und in L ist wenn das TM akzeptiert mit einer geraden Anzahl von Schritten. Dank des Nichtdeterminismus würde dies das TM nicht daran hindern, beide sich überschneidenden Sprachen zu erkennen.
Der Punkt ist, dass alle Arten von Varianten verwendet werden können, um die Theorie zu tun. Es wurden auch sehr unterschiedliche Ansätze zur Modellierung von Berechnungen versucht, z.
Es hat sich immer gezeigt, dass keiner von ihnen etwas tut, was mit unserem einfachen Modell, bei dem TM nur eine Sprache erkennt, nicht möglich ist. In einem solchen Ausmaß, dass vermutet wurde, dass es alles tut, was getan werden kann. Das nennt man die Church-Turing-These . Es ist der Eckpfeiler der Berechenbarkeitstheorie, der nach unserem Kenntnisstand bestimmt, welche Sprachen erkennbar sind oder nicht.
Wir könnten also genauso gut ein einfaches Modell verwenden, da ein komplexes unser Leben ohne wirklichen Nutzen erschweren wird.
Natürlich verwenden wir manchmal andere Modelle, weil sie es uns ermöglichen, einige Probleme besser zu verstehen.
Ich möchte auf einen Punkt in Richerbys Antwort eingehen:
Wenn eine Eingabe an die Maschine gesendet wird, wird diese entweder akzeptiert oder nicht.
Der Grund dafür ist, dass die Turing-Maschine deterministisch ist: Wenn Sie dieselbe Eingabe und denselben Startstatus ausführen, wird sie immer dasselbe tun (entweder im selben Akzeptanzstatus oder im selben Ablehnungsstatus beenden oder eine Endlosschleife ausführen ).
Außerdem können wir leicht nachweisen, dass jede Turing-Maschine genau eine Sprache erkennt:
Angenommen, eine Turingmaschine M erkennt im Widerspruch zwei verschiedene Sprachen L1 und L2. Da L1 und L2 verschieden sind, muss eine Zeichenkette S existieren, die in L1 aber nicht in L2 ist (ohne Verlust der Allgemeinheit - es könnte umgekehrt sein, aber der Beweis würde in der gleichen Weise von hier mit L1 und L2 ablaufen, die ausgetauscht werden ). Führen Sie nun M auf S aus. Wenn es akzeptiert, dann ist ein Widerspruch erreicht, weil dann S in L2 wäre. Wenn es nicht akzeptiert (verwirft oder schleift), dann ist ein Widerspruch erreicht, weil S nicht in L1 wäre.
Eine Turingmaschine erkennt eine Sprache, weil dies die Definition des Wortes " erkennen" ist : Die Sprache, die eine Turingmaschine erkennt, ist die Menge aller Zeichenfolgen / Eingaben, für die die Turingmaschine akzeptiert.
Die Antwort darauf hängt davon ab, was Sie genau verstehen, wenn Sie "Turing-Maschine" meinen. Jedes Rechenmodell besteht aus drei Komponenten (hier auf Entscheider / Akzeptoren beschränkt):
Bei Turing-Maschinen ist die Syntax das Tupel aus Statusmenge, Alphabeten, Übergangsfunktion usw. Die Semantik wäre die Definition einer Berechnung , dh zu beschreiben, wie die Übergangsfunktion angewendet wird, um den Bandinhalt nach einigen Schritten abzuleiten. Das Akzeptanzkriterium lautet: "Wenn dies geschieht, hören wir auf und das Ergebnis ist das".
Sind Turing-Maschinen für Sie nur Syntax und Semantik, oder enthalten Sie auch das Akzeptanzkriterium? Wenn Sie das erstere tun, kann jedes TM mehrere Sprachen akzeptieren, indem verschiedene Akzeptanzkriterien verwendet werden. Sie können sich sogar Akzeptanzkriterien ausdenken, die mehrere akzeptierte Sprachen zulassen (z. B. Zwei-Parameter-TMs). Wenn Sie Letzteres tun, gibt es keinen Spielraum und das übliche Akzeptanzkriterium erlaubt tatsächlich genau eine Sprache pro TM (dieses Typs).
Die übliche Definition und Verwendung des Begriffs in TCS umfasst alle drei Komponenten. Das macht Sinn , weil sich insbesondere die Akzeptanzkriterium Änderung der Klasse von Objekten ändern der Automat stellt drastisch , so dass wir brauchen das Kriterium festlegen, um zu wissen, worüber wir sprechen.
Vergleichen Sie beispielsweise endliche Automaten und Büchi-Automaten . Syntax und Semantik sind genau gleich, aber einer akzeptiert endliche Wörter, während der andere unendliche Wörter akzeptiert!
Versuchen Sie herauszufinden, was passiert, wenn Sie das Akzeptanzkriterium von Büchi-Automaten in die TM-Definition einfügen.
Warum ist nun das übliche Akzeptanzkriterium sinnvoll? Solange Sie sich auf die Sprache der endlichen Zeichenketten beschränken, ändert sich auf konzeptioneller Ebene nicht viel, wenn Sie mehrere Sprachen pro TM haben: Wir werden weiterhin die gleichen Sprachen akzeptieren können. Wir bleiben also beim einfacheren Modell. Das heißt jedoch nicht, dass ein komplizierteres Modell für die Modellierung in Anwendungen nicht nützlich sein kann - dies würde jedoch den Rahmen von TCS (das die definitorische Autorität besitzt) sprengen.
Eine Sprache ist eine Reihe von Zeichenfolgen. Ist die Vereinigung der beiden Sprachen L1 und L2 nicht eine Reihe von Zeichenfolgen (nennen wir sie L3) und wäre das auch eine andere Sprache? Wenn die Turing-Maschine dann beide Sprachen erkennt, erkennt sie L3, eine einzelne Sprache.
Keine anderen Antworten weisen auf die Existenz der Universal-Turing-Maschine (n) hin, wie sie zuerst von Turing in seinem stoppenden Beweis beschrieben / entdeckt wurden. ja, ein TM akzeptiert eine einzige rekursiv aufzählbare Sprache, aber die UTM kann jede rekursiv aufzählbare Sprache erkennen, wenn sie in der Eingabe zusammen mit der Eingabezeichenfolge codiert ist. Die Frage hat also eine gewisse zenartige Qualität. TMs akzeptieren nur eine Sprache und alle möglichen codierbaren Sprachen.