Wie kann man zeigen, dass eine Funktion nicht berechenbar ist?


Antworten:


57

Bevor ich Ihre allgemeine Frage beantworte, möchte ich zunächst einen Schritt zurücktreten, einen Hintergrund zur Vorgeschichte geben und eine vorläufige Frage beantworten: Gibt es überhaupt nicht berechenbare Funktionen?

[Anmerkung: Wir können jede Funktion mit einer Sprache in und dann die Entscheidbarkeit von und nicht die von diskutieren. ]fLf={(x,y)y=f(x)}Lff


Unentscheidbare Sprachen tun exist

Es gibt einige Sprachen, über die sich keine Turing-Maschine entscheiden kann. Das Argument ist einfach: Es gibt "nur" unzählig viele verschiedene TMs, aber unzählig viele verschiedene Sprachen. Es gibt also höchstens entscheidbare Sprachen, und der Rest (unendlich viele) ist unentscheidbar. Weitere Lektüre:(0)()0

Um einer bestimmten, unentscheidbaren Sprache die Hand zu geben, wird eine Technik namens Diagonalisierung (Georg Cantor, 1873) verwendet, die ursprünglich verwendet wurde, um zu zeigen, dass es mehr reelle Zahlen als ganze Zahlen gibt, oder mit anderen Worten, dass .>0

Die Idee, die erste unentscheidbare Sprache zu konstruieren, ist einfach: Wir listen alle Turing-Maschinen auf (was möglich ist, da sie nacheinander aufzählbar sind!) Und erstellen eine Sprache, die bei mindestens einer Eingabe nicht mit jedem TM übereinstimmt.

ε0100M110101M201000M300010

Oben ist jede Zeile ein TM und jede Spalte eine Eingabe. Der Wert der Zelle ist 0, wenn der TM diese Eingabe ablehnt oder niemals anhält, und 1, wenn der TM diese Eingabe akzeptiert. Wir definieren die Sprache so, dass die te Eingabe genau dann enthält, wenn das te TM diese Eingabe nicht akzeptiert.D i iDDii

Nach der obigen Tabelle da akzeptiert . Ebenso , aber da nicht akzeptiert .M 1 ε 0 D 1 D M 3 1εDM1ε0D1DM31

Es sei nun angenommen entscheidet und Linie sieht in der Tabelle: Wenn es in der - ten Spalte, dann akzeptiert , dass die Eingabe , aber es ist nicht in , und wenn es eine ist gibt, ist der Eingang in aber akzeptiert es nicht. Deshalb entscheidet nicht über und wir sind zu einem Widerspruch gekommen. D k 1 k M k D 0 D M k M k DMkDk1kMkD0DMkMkD

Nun zu deiner Frage. Es gibt verschiedene Möglichkeiten, um zu beweisen, dass eine Sprache unentscheidbar ist. Ich werde versuchen, die gebräuchlichsten zu berühren.

1. Direkter Beweis

Die erste Methode besteht darin, direkt zu zeigen, dass eine Sprache unentscheidbar ist, indem gezeigt wird, dass kein TM darüber entscheiden kann. Dies folgt üblicherweise der oben gezeigten Diagonalisierungsmethode.

Beispiel.

Zeigen Sie, dass die (Ergänzung der) diagonalen Sprache unentscheidbar ist.

LD¯={MML(M)}

Beweis.
Angenommen, ist entscheidbar, und sei sein Entscheider. Es gibt zwei Fälle: MDLD¯MD

  1. M DMD akzeptiertMD : aber dann also . So kann dies nicht passieren , wenn entscheidet .M ¯ L D M D ¯ L DMDL(MD)MLD¯MDLD¯
  2. M DMD akzeptiert nichtMD : also und somit . Aber wenn es in ist , sollte sie angenommen haben, und wir Widerspruch wieder erreicht.M ¯ L D L D M DMDL(MD)MLD¯LDMD

2. Verschlusseigenschaften

Manchmal können wir Schließungseigenschaften verwenden, um zu zeigen, dass eine Sprache nicht entscheidbar ist, basierend auf anderen Sprachen, von denen wir bereits wissen, dass sie nicht entscheidbar sind.

Insbesondere wenn nicht entscheidbar ist (wir schreiben ), dann ist auch sein Komplement unentscheidbar: Wenn es den Entscheider für , könnten wir es einfach verwenden, um zu entscheiden, indem wir wann immer akzeptieren lehnt ab und umgekehrt. Da immer mit einer Antwort stehen bleibt (es ist ein Entscheider), können wir seine Antwort immer umkehren.L R ¯ L M ¯ L L M MLLRL¯ML¯LMM

Fazit: Die diagonale Sprache unentscheidbar, . L DRLD={MML(M)}LDR

Ein ähnliches Argument kann angewendet werden, indem festgestellt wird, dass beide entscheidbar sind , wenn sowohl als auch sein Komplement rekursiv aufzählbar sind. Dies ist besonders nützlich, wenn wir beweisen möchten, dass eine Sprache nicht rekursiv aufzählbar ist, eine starke Eigenschaft als Unentscheidbarkeit.¯ LLL¯

3. Reduzierung eines unentscheidbaren Problems

Normalerweise ist es ziemlich schwierig, direkt zu beweisen, dass eine Sprache unentscheidbar ist (es sei denn, sie ist bereits "diagonal" aufgebaut). Die letzte und häufigste Methode, Unentscheidbarkeit zu beweisen, ist die Verwendung einer anderen Sprache, von der wir bereits wissen, dass sie unentscheidbar ist. Die Idee ist, eine Sprache auf eine andere zu reduzieren: um zu zeigen, dass wenn eine entscheidbar ist, dann muss auch die andere entscheidbar sein, aber eine davon ist bereits als unentscheidbar bekannt, was zu der Schlussfolgerung führt, dass die erste auch unentscheidbar ist. Weitere Informationen zu Reduktionen finden Sie unter "Welche Techniken sind üblich, um Probleme miteinander zu reduzieren?". .

Beispiel.

Zeigen Sie, dass die diagonale Sprache unentscheidbar ist.

HP={M,xM halts on x}

Beweis.
Wir wissen, dass unentscheidbar ist. Wir reduzieren zu (dies bezeichnet ), das heißt, wir zeigen , dass , wenn entscheidbar war , dass wir seine decider nutzen könnten , um zu entscheiden , was ein Widerspruch ist.L D H P L DH P H P L DLDLDHPLDHPHPLD

Die Reduktion funktioniert, indem ein Kandidat für (dh eine Eingabe für einen möglichen Entscheider / Akzeptor für ) in einen Kandidaten für so dass genau dann, wenn . Wir stellen sicher, dass diese Konvertierung berechenbar ist. So entscheiden sagt uns , ob oder ob nicht , also wenn wir HP entscheiden , können wir auch in der Lage sein würde , um zu entscheiden .¹L D L D w ' H P w L D w 'H P w ' w L D L DwLDLDwHPwLDwHPwwLDLD

Die Umwandlung ist wie folgt. Nehmen Sie etwas und geben Sie , ² wobei ein TM ist, das sich genau wie verhält , aber wenn ablehnt, dann geht in eine Endlosschleife.w ' = M ' , M M ' M M M 'w=Mw=M,MMMMM

Lassen Sie uns sehen, dass die Anforderungen erfüllen. Wenn , bedeutet dies, dass anhält und die Eingabe akzeptiert . Daher hält auch an und akzeptiert den Input . Also . Wenn andererseits dann lehnt entweder ab oder hält niemals auf . In beiden Fällen geht auf in eine Endlosschleife . Also w L D M M M 'M Mw,w
wLDM MMMw L D M M M 'M M ' , M H P w L D w H PM,MHP
wLDMMMMM,MHP, und wir sind damit fertig, das genau dann zu zeigen, wenn , und haben somit gezeigt, dass .wLDwHPHPR

Weiterführende Literatur: Viele Beispiele für Kürzungen und den Nachweis der Unentscheidbarkeit von Sprachen finden Sie über das Tag.


  1. Es gibt weitere Einschränkungen hinsichtlich der Gültigkeit der Ermäßigung. Die Konvertierung selbst muss berechenbar und für jede Eingabe genau definiert sein.

  2. Eine Eingabe von sieht aus wie , wobei ein TM und eine Zeichenfolge ist. Also wählen wir hier die Zeichenkette als Kodierung der Maschine , die nur eine Zeichenkette ist.M , x M x x MHPM,xMxxM


4. Satz von Rice

"Also müssen wir jedes Mal, wenn wir beweisen wollen, dass unentscheidbar ist, (oder ) darauf reduzieren ? Gibt es keine Abkürzung?"L D H PLLDHP

Nun, in der Tat gibt es. Dies ist der Satz von Rice .

Der Satz besagt, dass viele Sprachen, die eine bestimmte Struktur haben, unentscheidbar sind. Da alle diese Sprachen diese bestimmte Struktur haben, können wir die Reduktion einmal durchführen und auf jede Sprache anwenden, die eine ähnliche Struktur zulässt.

Der Satz ist formell wie folgt angegeben:

Satz (Reis). Bei gegebener Eigenschaft ist die folgende Sprache unentscheidbar SREL S = { M | L ( M ) S }LS

LS={ML(M)S}

Die Menge ist eine Teilmenge von Sprachen in ; wir nennen es eine Eigenschaft, weil es eine Eigenschaft der akzeptierten Sprache . Alle TMs, deren Sprache diese Eigenschaft erfüllt, gehören zu .R E L ( M ) L SSREL(M)LS

Beispielsweise kann die Eigenschaft sein, dass die akzeptierte Sprache genau zwei Wörter enthält:L ( M )SL(M)

L S 2 L S 2 = { M | L ( M ) S } = { M | | L ( M ) | = 2 } .

S2={L|L|=2,LRE}.
In diesem Fall ist die Menge aller TMs, deren Sprache aus genau zwei Wörtern besteht: LS2
LS2={ML(M)S}={M|L(M)|=2}.

Die Eigenschaft kann sehr einfach sein, es können jedoch nicht alle RE-Sprachen oder keine der RE-Sprachen sein. Wenn oder wird die Eigenschaft als trivial bezeichnet , und das induzierte ist berechenbar. Ein Beispiel für ein einfaches ist eines, das nur eine einzige Sprache enthält, beispielsweise . Beachten Sie, dass es, obwohl nur eine einzige Sprache enthält, unendlich viele Maschinen deren Sprache , sodass unendlich und unentscheidbar ist.S = R ES=S=RE S S c o m p l e t e = { Σ * } S M Σ * L S c o m p e t eLSSScomplete={Σ}SMΣLScompete


Der Satz ist sehr mächtig, um die Unentscheidbarkeit vieler Sprachen zu beweisen.

Beispiel.

Die Sprache ist unentscheidbarL={MM never reaches the accepting state}

Beweis.
Wir können als schreiben , das heißt für die Eigenschaft . Dies ist eine nicht triviale Eigenschaft (sie enthält die Sprache , enthält jedoch beispielsweise nicht die Sprache . Nach dem Satz von Rice ist ist unentscheidbar. { M | L ( M ) = 0 }L{ML(M)=0} S = { L R E , | L | = 0 } L = L = { 1 , 11 , 111 , } L L=LSS={LRE,|L|=0}L=L={1,11,111,}L


Wir beweisen nun den Satz. Wie oben erwähnt, zeigen wir eine Reduktion von auf (für jedes beliebige nicht-triviale ).HPLSS

Beweis.
Sei eine nicht triviale Eigenschaft, . Wir zeigen , das heißt, wir reduzieren auf so dass wir, wenn wir entscheiden , in der Lage sind, zu entscheiden (von denen wir wissen, dass sie unmöglich sind, daher kann nicht entschieden werden). Im Beweis unten gehen wir davon aus, dass die leere Sprache nicht Teil ist , das heißt . (Wenn die leere Sprache in , funktioniert ein äquivalenter Beweis für die Komplement-Eigenschaft , ich werde die Details weglassen). DaSSREHPLSHPLSLSHPLSSSSS¯=RESSist nicht trivial, enthält mindestens eine Sprache; Nennen wir diese Sprache und nehmen wir an, dass eine Maschine ist, die akzeptiert (eine solche Maschine existiert, da nur Sprachen in RE enthält).L0M0L0S

Denken Sie daran, dass wir bei einer solchen Reduktion (siehe Abschnitt 3 oben) zeigen müssen, wie eine Eingabe für in eine Eingabe für sodass wHPwLS

wHP if and only if wLS

Es sei , wir konvertieren es in wobei die Beschreibung der Maschine (auf einer Eingabe ) wie folgt lautet:w=(M,x)w=MMx

  1. Führe auf .Mx
  2. Wenn der obige Schritt 1 anhält, führen Sie auf und akzeptieren / verwerfen Sie dies entsprechend.M0x

Wir sehen, dass diese Konvertierung gültig ist. Beachten Sie zunächst, dass es einfach ist, die Beschreibung von mit zu konstruieren .Mw=(M,x)

Wenn , dann bleibt bei . In diesem Fall fährt mit Schritt 2 fort und verhält sich genauso wie . Daher seine Accepted Sprache ist . Daher ist . Wenn in dann Schleifen auf . Dieser Fall, Schlaufen an jedem Eingang - in Schritt 1. Die Sprache akzeptiert durch klemmt in diesem Fall leer ist , . Daher ist .wHPMxMM0L(M)=M0Sw=MLS
wHPMxMxML(M)=Sw=MLS

4.1 Der erweiterte Reissatz

Rice Satz gibt uns eine einfache Möglichkeit , dass eine bestimmte Sprache zu zeigen , dass bestimmte Eigenschaften erfüllt sind unentscheidbar, das heißt, . Mit der erweiterten Version von Rices Theorem können wir feststellen, ob die Sprache rekursiv aufzählbar ist oder nicht, ob , indem wir prüfen, ob einige zusätzliche Eigenschaften erfüllt.LLRLREL

Satz (Reis, erweitert). Bei gegebener Eigenschaft ist die Sprache nur dann rekursiv aufzählbar ( ), wenn alle folgenden drei Aussagen gemeinsam sind haltSRE

LS={ML(M)S}
LSRE
  1. Für jede zwei , wenn und auch dann auch .L1,L2REL1SL1L2L2S
  2. Wenn existiert eine endliche Teilmenge Teilmenge so dass .L1SL2L1L2S
  3. Die Menge aller endlichen Sprachen in ist aufzählbar (mit anderen Worten: Es gibt ein TM, das alle endlichen Sprachen ).SLS

Beweis.
Dies ist ein "wenn und nur wenn" -Satz, und wir sollten beide Richtungen beweisen. Zunächst zeigen wir, dass wenn eine der Bedingungen (1,2,3) nicht , . Danach werden wir zeigen, dass, wenn alle drei Bedingungen gleichzeitig gelten, .LSRELSRE

Wenn (1,2) gilt, (3) jedoch nicht, dann istLSRE .
Nehmen wir an, dass , und wir werden sehen, dass wir eine Möglichkeit haben, beliebige endliche Sprachen in zu akzeptieren (und somit ist die Menge all dieser Sprachen RE). Daher gilt Bedingung (3) und wir gelangen zu einem Widerspruch . Wie kann man entscheiden, ob ein endliches zu oder nicht? Einfach - wir verwenden die Beschreibung von , um eine Maschine zu konstruieren , die nur die Wörter in akzeptiert , und jetzt führen wir die Maschine von auf (denken daran - wir haben , also gibt es eine Maschine, die akzeptiertLSRESLSLMLLLSMLLSRELS!). Wenn dann und seit , sagt seine Maschine Ja auf der Eingabe , und wir sind fertig.LSMLLSLSREML

Wenn (2,3) gilt, aber (1) nicht, dann istLSRE . Wir nehmen an, dass und wir werden zeigen, dass wir einen Weg haben, zu entscheiden , was zu einem Widerspruch führt.L SREHP
LSREHP

Da die Bedingung (1) nicht gilt, gibt es eine Sprache und ein Superset davon, so dass . Jetzt wiederholen wir das in Abschnitt 4 verwendete Argument, um zu bestimmen : Bei einer Eingabe für konstruieren wir eine Maschine deren Sprache wenn oder anderweitig ist seine Sprache . Dann können wir uns für entscheiden : Entweder hält an , oder die RE-Maschine für akzeptiertL 2L 1 L 2SL1SL2L1L2SHP(M,x)HPML1(M,x)HPL2HPMxLSM; wir können beide parallel laufen und es ist garantiert, dass mindestens einer anhält.

Geben wir die Details zur Konstruktion von (bei Eingabe ) an:Mx


  1. Führen Sie parallel Folgendes aus: 1.1 Führen Sie auf . 1.2 starte die Maschine von aufMx
    L1x
  2. Wenn 1.2 anhält und akzeptiert - akzeptieren.
  3. Wenn 1.1 anhält: Führen Sie die Maschine von auf .L2x

Warum funktioniert das? Wenn dann wird 1.1 nie angehalten, und akzeptiert genau alle Eingaben, die in Schritt 1.2 akzeptiert werden, also . Wenn andererseits ist, hält Schritt 1.1 an einem bestimmten Punkt an und akzeptiert genau . Es kann vorkommen, dass vorher akzeptiert, aber da , ändert dies in diesem Fall nicht die Sprache von .(M,x)HPML(M)=L1(M,x)HPML21.2L1L2M

Wenn (1,3) gilt, aber (2) nicht, dann istLSRE .
Wir nehmen wieder und zeigen, dass entscheidbar wird, was ein Widerspruch ist.LSREHP

Wenn die Bedingung (2) nicht erfüllt ist, dann erfüllen für jedes alle seine endlichen Teilmengen (beachte, dass unendlich sein muss, da ). Um für eine bestimmte Eingabe zu bestimmen , konstruieren wir wie oben eine Maschine deren Sprache wenn und einige endliche sonst. Der Widerspruch folgt auf ähnliche Weise wie oben.L1SL2L1L2SL1L1L1HP(M,x)ML1(M,x)HPL2

Der Aufbau dieser Maschine ist dem vorherigen von uns konstruierten ziemlich ähnlich . Die Maschine (am Eingang ) macht:MMx

  1. Läuft auf fürSchritte.Mx|x|
  2. Wenn während Schritt 1 anhält - verwerfenM
  3. Andernfalls führen Sie die Maschine von auf .L1x

Es gilt, dass, wenn , irgendwann, sagen wir nach 1000 Schritten, bei anhält . Aus diesem Grund wird in Schritt 1 jede Eingabe einer Länge angehalten (und zurückgewiesen) . Daher wird in diesem Fall ist finite . Beachten Sie auch, dass , und insbesondere aufgrund unserer Annahmen zur Ungültigkeit von Bedingung (2), dass .(M,x)HPMxx>1000L(M)L(M)L1L(M)S

Wenn andererseits , wird Schritt 1 niemals angehalten, und wir lehnen Schritt 2 niemals ab. In diesem Fall ist es leicht zu erkennen, dass und in insbesondere .(M,x)HPL(M)=L1L(M)S


Wir müssen die andere Richtung des erweiterten Theorems zeigen. Das heißt, wir müssen zeigen, dass wir ein TM haben, das , akzeptiert, wenn alle Bedingungen (1,2,3) gelten . Mit anderen Worten, wir müssen eine Maschine so dass für jede Eingabe für die , die Maschine diese Eingabe akzeptiert, .LSLSREMSML(M)SMS(M)accept

So verhält sich die Maschine (bei Eingabe ):MSM

  1. Sei die Maschine, die alle endlichen Sprachen in aufzählt , garantiert durch Bedingung (3).Menum SS
  2. Führen Sie Folgendes parallel aus (durch Verzahnen, siehe z. B. dies und das ) für 2.1 Führen Sie bis die Sprache 2.2 . Überprüfen Sie, ob alle Wörter von akzeptiert (führen Sie für diese Wörter erneut parallel aus). 2.3. Wenn für einige , alle Wörter von akzeptiert - akzeptieren.i=1,2,...
    Menum SLi
    MLiM
    iMLi

Warum funktioniert es? Wenn dann eine endliche Teilmenge hat und wenn diese Teilmenge ausgibt, wird in Schritt 2.2 / 2.3 festgestellt, dass alle Wörter in dieser Sprache und akzeptiert akzeptieren.L(M)SLjSMenum SM

Wenn andererseits , kann es nicht sein, dass alle Wörter in für akzeptiert werden . In der Tat ist Bedingung (1) jedes auch in , wenn also für einige alle Wörter in akzeptiert , dann und damit , im Widerspruch.L(M)SLii=1,2,...LLiSMLiiL(M)LiL(M)S


Beachten Sie abschließend, dass das Folgende eine einfache (und sehr nützliche) Folgerung aus dem oben Gesagten ist:

Folgerung (Reis, verlängert). Bei gegebener nicht-trivialer Eigenschaft , so dass , ist die Sprache nicht rekursiv aufzählbar, .S L S = { M | L ( M ) S } L SR ESRES

LS={ML(M)S}
LSRE

Vielen Dank, dass Sie die erweiterte Version von Rices Theorem hinzugefügt haben! Ich kenne eine andere Version. Ich muss das ausgraben. Auf jeden Fall finde ich es nicht sehr wichtig oder hilfreich, die Beweise hier zu haben. Vielleicht kannst du sie referenzieren oder woanders hochladen, wenn es keine gute Referenz gibt?
Raphael

13

Ein nützliches Werkzeug ist der Satz von Rice . Hier ist was es sagt:

Es sei eine nicht triviale Menge von teilweise berechenbaren unären Funktionen und eine Gödel-Nummerierung von . Dann ist die Indexmenge von φ P PPPφPP

IP={iNφiP}

ist nicht rekursiv.

Sie finden es auch ausgedrückt in Form von Turing-Maschinen-Codierungen (oder einer anderen Turing-vollständigen Programmiersprache), . hier definiert eine Gödel-Nummerierung.IP={MM TM,fMP}.

Das heißt, Sie können den Satz von Rice verwenden, um zu beweisen, dass solche Mengen nicht rekursiv sind, die Indexmengen nicht trivialer Funktionsmengen sind (oder auf reduzierbar sind ).SSS

Beachten Sie, dass eine Erweiterung verwendet werden kann, um anzuzeigen, dass bestimmte Indexsätze nicht rekursiv aufzählbar sind.

Beispiel

Sei eine Gödel-Nummerierung. Betrachten Sie die Menge der Naturtöneφ

A={iNφi(j)=1 for all j2N} .

Jetzt da fürP={fPf(j)=1 for all j2N}

  • A=IP ,
  • (n1)P und
  • (n2)P ,

Der Satz von Rice kann angewendet werden und ist nicht entscheidbar.A

Da viele mit Gödel-Nummerierungen nicht vertraut sind, beachten Sie, dass das Beispiel auch für Turing-Maschinen (dh Programme) funktioniert, wenn .A={MfM(x)=1 for all x2N}

Unerwünschtes

Betrachten Sie die Menge der Naturtöne

A={iNφi(j)=i for all j2N}

das ist sicher nicht berechenbar. Allerdings ist kein Indexsatz für jeden ! Lassen für einige . Da eine Gödel- Nummerierung ist, gibt es (unendlich viele) mit aber für alle gilt weil .P f = φ i i A φ j i φ j = f j A f ( 2 ) = i jAPf=φiiAφjiφj=fjAf(2)=ij

Seien Sie vorsichtig! Als Faustregel gilt, dass es sich wahrscheinlich nicht um eine Indexmenge handelt, wenn der Index der Funktion "auf der rechten Seite" oder als Parameter der Funktion in der Satzdefinition verwendet wird. Möglicherweise benötigen Sie die Eigenschaft von Gödel-Nummerierungen und den Fixpunktsatz, um zu zeigen, dass eine Menge keine Indexmenge ist.smn

Siehe hier und hier für verwandte Beiträge zum Satz von Rice.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.