Ich frage mich, ob es ein entscheidbares Problem ist, über die Entscheidbarkeit eines Problems zu entscheiden. Ich vermute nicht, aber nach ersten Recherchen kann ich keine Literatur zu diesem Problem finden.
Ich frage mich, ob es ein entscheidbares Problem ist, über die Entscheidbarkeit eines Problems zu entscheiden. Ich vermute nicht, aber nach ersten Recherchen kann ich keine Literatur zu diesem Problem finden.
Antworten:
Hauptbearbeitung meines Originals:
Eine naive Lektüre Ihrer Frage scheint zu sein, sei das Problem
Ist eine gegebene Sprache L entscheidbar?
Dann fragst du
Ist entscheidbar?
Wie DW und David bemerkt haben, lautet die Antwort "Ja, das ist es", obwohl wir nicht wissen, welcher der beiden trivialen Entscheider der richtige ist. Um Ihr Problem so zu gestalten, dass es nicht ganz so trivial ist, würde ich dies vorschlagen. Lassen Sie uns zunächst die Dinge einschränken, indem wir nur die Sprachen die von einigen TM M akzeptiert werden . Der Grund dafür ist, dass eine Sprache, die von keinem TM akzeptiert wird, nicht wieder (erkennbar) und daher nicht rekursiv (entscheidbar) sein kann. Dann können wir P als neu fassen
Bei einer Beschreibung, ⟨ M ⟩ eines TM, M ist L ( M ) entscheidbar?
Nun ist eine Sprache der TM-Beschreibungen und keine Sprache der Sprachen, wie es P zu sein schien (bei einer großzügigen Interpretation), und es ist jetzt völlig vernünftig zu fragen, ob die Sprache P ' entscheidbar ist. Unter dieser Lesart die Sprache { ⟨ M ⟩ | M ist ein TM und L ( M ) ist entscheidbar } bestehend aus TM Beschreibungen ist nicht entscheidbar. Dies ist eine einfache Konsequenz des Satzes von Rice . Jetzt haben wir also zwei Antworten: Mein "Nein" und das "Ja" der DW, abhängig von der Interpretation.
Wie wir in den verschiedenen Antworten gesehen haben, besteht ein Teil der Antwort darin, das richtige Problem zu formulieren.
Im Jahr 1985 schrieb Joost Engelfriet "Die Nicht-Berechenbarkeit der Berechenbarkeit" (Bulletin des EATCS Nr. 26, Juni 1985, Seiten 36-39) als Antwort auf eine Frage eines klugen Schülers. Leider war das BEATCS zu dieser Zeit nur auf Papier und der Artikel hinterließ keine elektronischen Spuren.
Der Autor übernimmt wir einen (logischen) Formalismus haben mit den üblichen Booleschen Operatoren und Variablen. Ihre genaue Definition ist nicht wichtig. Eine Formel F ( m , n ) spezifiziert eine Funktion f : N → N iff (für alle m , n ≤ N ) f ( m ) = n ≤ F ( m _ , n _ ) ist wahr, wobei m _ die Zahl ist die Zahl m darstellt .
Ich zitiere:
Satz 1 . Sei ein Formalismus, in dem sowohl eine berechenbare als auch eine nicht berechenbare Funktion N → N angegeben werden kann. Dann gibt es keinen Algorithmus, der für eine beliebig spezifizierbare Funktion f (gegeben durch eine Formel, die sie spezifiziert) entscheidet, ob f berechenbar ist.
Der lustige Teil ist in der folgenden Beobachtung in der Zeitung gemacht:
Beachten Sie, dass dieser Satz auf Formalismen insbesondere gilt , in dem alle berechenbaren Funktionen angegeben werden können (eine natürliche Bedingung für einen solchen Formalismus), weil dann auch eine nicht-berechenbare Funktion angegeben werden können.
Ja. Es ist immer entscheidbar.
Für jedes Problem P sei Q das Problem der Bestimmung, ob P entscheidbar ist oder nicht. Ich behaupte, dass Q entscheidbar ist. Hier ist der Grund. Tautologisch ist entweder P entscheidbar oder nicht. Eines der beiden Programme ist also korrekt: (1) print "yup P is decidable"
oder (2) print "nope P is not decidable"
. Es mag nicht trivial sein, herauszufinden, welches dieser beiden Programme richtig ist, eines davon ist richtig, so dass es mit Sicherheit eine Entscheidung für Q gibt . Daher ist das Problem Q entscheidbar.
Dies erinnert an die folgende klassische Frage: Ist es entscheidend zu sagen, ob Collatz 'Vermutung wahr ist? Die Antwort ist ja. Dies mag seltsam aussehen, da niemand weiß, ob Collatz 'Vermutung wahr ist (das ist ein berühmtes offenes Problem). Was wir jedoch wissen, ist, dass Collatz 'Vermutung entweder wahr ist oder nicht. Im ersten Fall ist das Programm print "yup it's true"
ein Entscheider. Im letzteren Fall ist das Programm print "nope it's not true"
ein Entscheider. Wir wissen nicht, welcher ein gültiger Entscheider ist, aber dies reicht aus, um zu beweisen, dass ein gültiger Entscheider existiert. Daher ist das Problem entscheidend.