Wir erhielten die folgende Übung.
Lassen
Beweisen Sie, dass berechenbar ist.
Wie ist das möglich? Soweit ich weiß, wissen wir nicht, ob jede Ziffernfolge enthält (oder welche), und ein Algorithmus kann mit Sicherheit nicht entscheiden, dass eine bestimmte Folge nicht auftritt. Deshalb denke ich, dass nicht berechenbar ist, weil das zugrunde liegende Problem nur halbentscheidbar ist.f
computability
undecidability
Raphael
quelle
quelle
Antworten:
Es gibt nur zwei Möglichkeiten zu prüfen.
Für jede positive ganze Zahl erscheint die Zeichenfolge in der Dezimaldarstellung von . In diesem Fall ist der Algorithmus, der immer 1 zurückgibt, immer korrekt.n 0n π
Es gibt eine größte Ganzzahl , sodass in der Dezimaldarstellung von . In diesem Fall ist der folgende Algorithmus (mit dem Wert fest codiert) immer korrekt:N 0N π N
Wir haben keine Ahnung, welche dieser Möglichkeiten richtig ist oder welcher Wert von im zweiten Fall der richtige ist. Trotzdem ist garantiert, dass einer dieser Algorithmen korrekt ist. Somit gibt es einen Algorithmus, um zu entscheiden, ob eine Folge von Nullen in ; Das Problem ist entscheidbar.N n π
Beachten Sie den subtilen Unterschied zu der folgenden von gallais vorgeschlagenen Beweisskizze :
Alex ten Brink erklärt:
sepp2k fügt hinzu:
quelle
Posten Sie einfach eine kurze Erläuterung der Antwort von JeffE.
Wir wissen, dass zwei Funktionen / Fälle existieren, die die Funktion f (n) berechnen können:
Eine und nur eine dieser Funktionen kann korrekt sein. Wir wissen nicht welche, aber wir wissen mit Sicherheit, dass es eine Antwort gibt. Die Berechenbarkeit setzt voraus, dass eine Funktion vorhanden ist, die die Antwort innerhalb einer begrenzten Anzahl von Schritten bestimmen kann.
Die Anzahl der Schritte in Fall 1 ist trivial an die Rückgabe von 1 gebunden.
In Fall 2 ist auch die Anzahl der Schritte endlich. Für jede ganze Zahl wir eine Turing-Maschine konstruieren , die akzeptiert, wenn und andernfalls in endlicher Zeit ablehnt. Es spielt also keine Rolle , eine obere Schranke für . Für jedes gibt es eine Turing-Maschine, nämlich , die korrekt berechnet, ob (wir wissen nicht, welche davon korrekt sind, aber es spielt keine Rolle, es gibt eine).T N ( n ) n < N N N T N ( n ) n < NN TN(n) n<N N N TN(n) n<N
Obwohl es möglicherweise nicht möglich ist, zwischen den beiden Fällen zu wählen (obwohl einer wahrscheinlicher ist als der andere), wissen wir, dass genau einer der Fälle korrekt sein muss.
Als Randnotiz: Unsere Lösung geht davon aus, dass wir zwar nicht bestimmen können, welche Funktion einen korrekten Wert hervorruft, das Wesen der Berechenbarkeit jedoch nicht von der Konstruierbarkeit des Beweises abhängt. Reine Existenz ist ausreichend.
quelle
Schritt 5 des folgenden Beweisversuchs ist nicht gerechtfertigt und in der Tat falsch - ein Gegenbeispiel finden Sie hier . (Danke, Yuval; es fühlte sich wie der skizzenhafteste Teil der Skizze an). Ich habe die Antwort hier gelassen, da ich denke, dass der Fehler aufschlussreich ist.
Zunächst einmal: JeffEs Antwortpaar ist ausreichend; f ist so oder so berechenbar.
Ein kurzer Umweg über den Versuch, einen Beweis durch Induktion zu skizzieren:π
π
π
π würde beginnen, sich bei 1 oder 0 zu wiederholen . Ebenso können Sie nicht aufhören zu finden , 11 oder 00 , denn sonst beginnt es zu wiederholen 1010101 ... π
Prämisse R : wiederholt sich nicht. 1. Sehen Sie sich in base 2 an. Dies dient hauptsächlich dazu, die Anzahl der Fälle zu verringern. 2. Egal wie weit Sie gehen, Sie werden immer irgendwo eine weitere 1 finden : Die Alternative sind alle Nullen, was bedeuten würde, dass anfängt, sich zu wiederholen, was gegen R geht . 3. Gleiches gilt für das Durchgehen und Finden von 0 . 4. Erweitern Sie auf zweistellige Sequenzen: Sie können weder 01 noch 10 (d. H. Stellen, an denen umgeschaltet wird) finden, da dies sonst der Fall istπ π π π
5. Der induktive Schritt: jede endliche Folge eine unendliche Anzahl von Zeiten erscheinen muss, denn die Alternative ist , dass auf startet Wiederholung eine der kürzeren Sequenzen, die R widerspricht .
quelle