Ich versuchte , zu beweisen , dass die folgende rekursive Sprache ist: für , eine positive ganze Zahl: , wo
Es ist leicht zu beweisen, weil endlich ist, aber ich habe dies nicht bemerkt und versucht, es zu beweisen, indem ich ein Decider TM dafür gefunden habe. Ich dachte, da die Codierung des TM die Länge hat, kann es nicht mehr als Zustände haben, und indem es für Schritte auf epsilon ausgeführt wird, wenn es bis dahin anhält, dann akzeptieren Sie anderweitig ablehnen. Mir wurde gesagt, dass es falsch ist - ist es eine falsche Lösung. Wie kann ich dies mit dieser Methode beweisen (und nicht mit der Art und Weise, wie ich erwähnt dass endlich ist)?
Antworten:
Es gibt keine allgemeine Möglichkeit, ein Decider TM für zu findenLk
Sie haben Recht damitLk ist rekursiv, weil es eine Teilmenge der endlichen Menge ist Σk es ist auch endlich.
Sie möchten lieber einen Entscheider TM für findenLk und Sie schlagen einige Techniken vor. Ohne auf die Details dieser Techniken einzugehen und zu erklären, warum sie nicht funktionieren, haben Sie keine Chance, jemals Erfolg zu haben.
Das erste, was Sie bemerken sollten, ist, dass das Endlichkeitsargument Ihnen sagt, dass es einen Entscheider TM gibtMk für die Sprache Lk , aber es sagt Ihnen nicht, was dieses TM ist. Es ist ein Beispiel für einen nicht konstruktiven Beweis: Sie beweisen, dass ein Entscheider existiert, aber Sie können nicht sagen, um welchen es sich handelt.
Nehmen wir nun an, dass gegebenk Sie haben eine Prozedur P(k) einen solchen Entscheider zu finden Mk für die Sprache Lk (anstatt nur zu beweisen, dass es existiert). Dann gegeben jede TuringmaschineM dann gibt es eine ganze Zahl k′ so dass |⟨M⟩|=k′ , damit ⟨M⟩∈Σk′ . Dann können Sie das Verfahren anwendenP
um einen Entscheider TM zu finden Mk′ das kann bestimmen, ob ⟨M⟩∈Lk′ . So haben Sie eine Möglichkeit zu entscheiden, ob das TMM
wird bei leerer Eingabe angehalten. Und das funktioniert für jedes TMM . Dies ist jedoch nicht möglich, da nicht entschieden werden kann, ob ein bestimmtes TM vorliegtM wird bei leerer Eingabe angehalten.
Also das VerfahrenP kann nicht existieren.
Da suchen Sie nach einem allgemeinen Weg, um den Entscheider TM zu findenMk′ , können Sie nicht erfolgreich sein, weil diese Methode genau eine Prozedur wie wäre P .
Beachten Sie, dass dieser Beweis immer noch die (sehr entfernte) Möglichkeit lassen kann, einen Entscheider für bestimmte Werte von zu findenk , aber Sie müssten die betroffenen Werte genau identifizieren, und die Methode würde nicht für alle Werte von funktionieren k . Ich rate Ihnen nicht, es zu versuchen.
quelle
Sie können Ihren Beweis mit der Busy-Beaver-Funktion "reparieren". LassenBk ist die maximale Anzahl von Schritten, die eine Turingmaschine mit Beschreibungsgröße höchstens hat k wird vor dem Anhalten ausgeführt, wenn die leere Eingabe gegeben wird. Wenn du weißtBk (oder auch nur eine Obergrenze Bk das heißt, einige Tk≥Bk ) dann können Sie die Halteprobleme für Turingmaschinen mit Beschreibungsgröße lösen k (und die leere Eingabe) durch Ausführen der angegebenen Maschine für bis zu Bk (oder Tk ) Schritte. Wenn es zu diesem Zeitpunkt nicht anhält, wissen Sie, dass es niemals anhält.
Da das Stoppproblem nicht entscheidbar ist, wissen wir, dass die FunktionBk kann nicht berechenbar sein. In der Tat keine berechenbare FunktionTk befriedigt Tk≥Bk für alle k . Mit anderen Worten, für jede berechenbare Funktionf(k) ist es der Fall, dass Bk>f(k) für unendlich viele k . Grob gesprochen,Bk wächst schneller als jede berechenbare Funktion.
In der Tat kann man das durch Diagonalisierung zeigenBk wächst schneller als jede berechenbare Funktion: für jede berechenbare f(k) es gibt K so dass Bk>f(k) für alle k≥K . Dies wurde zuerst von Rado bewiesen .
quelle
Der Hauptfehler besteht darin, dass Sie davon ausgehen, dass die Anzahl der Zustände, die ein TM hat, seine Laufzeit (vor der Beendigung) in irgendeiner Weise begrenzt. Das ist falsch.
In diesem Fall gibt es universelle Turing-Maschinen , also endlich beschriebene TMs, die jedes Verhalten zeigen können , von schnellem Beenden über einen beliebig langen Lauf bis hin zu Schleifen, wenn die richtige Eingabe erfolgt.
Aus technischer Sicht werden universelle TMs normalerweise so beschrieben, dass sie zwei Parameter verwenden, eine TM-Codierung und die Eingabe, um sie zu simulieren. Es ist einfach, sie zu einem Parameter zusammenzuführen, daher gibt es tatsächlich unäre universelle TMs.
Insbesondere ignorieren Sie die Eingabe des codierten TM, die beliebig groß (und verschlungen) sein kann. Der tatsächliche Zustand eines TM ist das Produkt aus Kontrollzustand und Bandinhalt, sodass ein einfaches kombinatorisches Argument, das auf der Anzahl der Kontrollzustände allein basiert, nicht ausreicht. Insbesondere befindet sich ein TM nicht in einer unausweichlichen Schleife, wenn es zum zweiten Mal einen Zustand besucht.
quelle