Gödels (erster) Unvollständigkeitssatz und das Halteproblem - Wie einschränkend ist es?


8

Als ich zum ersten Mal von diesen Dingen hörte, war ich sehr fasziniert, als ich dachte, dass dies der Mathematik und den Naturwissenschaften im Allgemeinen wirklich Grenzen setzt. Aber wie praktisch relevant sind diese Dinge?

Für das Halteproblem: Gibt es mehr als einige künstlich konstruierte Fälle, in denen man nicht entscheiden kann, ob der Algorithmus beendet wird oder nicht?

Zum Unvollständigkeitssatz: Gibt es mehr als einige künstlich konstruierte Fälle, in denen man Aussagen nicht beweisen / widerlegen kann?

Ich frage dies, weil es den Anschein hat, dass es in den meisten Bereichen der Wissenschaft nicht wirklich wichtig ist, dass es solche grundlegenden Einschränkungen gibt. Sind sie überhaupt da? Ich würde gerne wissen, wo dies wirklich Grenzen setzt und wo es wirklich relevant ist.


4
Das Ergebnis des Stoppproblems besagt nicht, dass Sie nicht entscheiden können, ob ein bestimmtes TM nicht angehalten wird. Es heißt, dass es keinen allgemeinen Algorithmus gibt, der dies für alle TM entscheiden kann.
Babou

2
Nun ja, aber was sind die praktischen Auswirkungen davon? Ist es wirklich relevant oder spielt es nur in künstlich konstruierten Fällen eine Rolle?
Nocta

Vielleicht sollte man sich mit der voll funktionsfähigen Programmierung befassen, die nur das Beenden von Programmen erlaubt. Dann können Sie sehen, wie oft Praktiker auf schwache funktionale Programmierung (Turing complete) zurückgreifen müssen, um Probleme zu lösen. Was allgemeine Programmiersprachen betrifft, habe ich nur von Idris gehört - der Rest scheint Theorembeweiser zu sein.
Guildenstern

1
Viele interessante und schwierige mathematische Probleme könnten leicht gelöst werden, wenn das Halteproblem gelöst werden könnte. Zum Beispiel Fermats letzter Satz. Ich brauche 5 Minuten, um ein Programm zu schreiben, das genau dann angehalten wird, wenn es eine Lösung für a ^ n + b ^ n = c ^ n mit a, b, c> 0 und n> = 3 gibt. Wenn Sie beweisen oder widerlegen dass es anhält, ist FLT bewiesen. "Es gibt unendlich viele Doppelprimzahlen" ist nur geringfügig schwieriger zu beweisen, wenn das Halteproblem gelöst ist.
Gnasher729

2
Bitte beschränken Sie sich auf eine Frage pro Beitrag. Die beiden Sätze, auf die Sie sich beziehen, haben wenig miteinander zu tun. Ihre Formulierung deutet auch darauf hin, dass Sie nicht wirklich verstanden haben, was sie sagen (siehe Babous Kommentar); du musst noch etwas lesen! Dies sind zutiefst mathematisch-formale Aussagen, die popwissenschaftlich nicht richtig erfasst werden können.
Raphael

Antworten:


9

Das Unentscheidbarkeitsproblem ist von großer praktischer Relevanz. Hier ein kurzes Beispiel:

Das Schreiben von Antivirensoftware ist schwierig: Wir können nicht entscheiden, ob ein bestimmter Code schädlich ist, denn wenn wir könnten, könnten wir das Problem des Anhaltens entscheiden.

M.wM.w

Dies bedeutet, dass es keine perfekte Antivirensoftware gibt, dies ist nicht möglich. Das bedeutet nicht, dass wir nicht versuchen sollten, Antiviren-Sotware zu schreiben, nur dass wir niemals in der Lage sein werden, eine perfekte zu schreiben. Tatsächlich ist jede Aussage über die Entscheidung, was Programme tun, unentscheidbar (siehe Theorem von Rice ).

In Bezug auf den Satz von Godel ist der Satz von Goodstein ein Beispiel für eine Aussage, die mit den Peano-Axiomen nicht beweisbar ist.


5
In Bezug auf Respekt denke ich, dass diese Antwort ein perfektes Beispiel dafür ist, dass die vom OP geforderte Unterscheidung nicht getroffen wurde: Sie verwenden das Stopp-Problem auf eine Weise, die keine praktische Relevanz hat. In der Praxis gibt es keinen Grund für einen harmlosen Code, Anweisungen zu enthalten, die eine böswillige Aktion ausführen. Es spielt also keine Rolle, dass wir nicht herausfinden können, ob diese Anweisungen jemals ausgeführt werden oder nicht. Wenn sie dort sind, kann der Code als bösartig angesehen werden.
Harry Johnston

(Ich vermute, Sie können die gleiche Schlussfolgerung besser ziehen, indem Sie stattdessen Sätze von Anweisungen betrachten, deren kombinierte Wirkung entweder harmlos oder böswillig sein kann, je nachdem, welche Kombination von Anweisungen ausgeführt wird, und dann argumentieren, dass Sie unter den richtigen Umständen nicht herausfinden können Welche Kombinationen sind möglich? Aber ich bin mir nicht sicher, wie ich das alles genau zusammensetzen soll.)
Harry Johnston

@ HarryJohnston Eine Möglichkeit besteht darin, böswillige Anweisungen in Daten zu verschleiern. Bei einigen Programmen können wir möglicherweise nicht entscheiden, ob diese Daten jemals als Code ausgeführt werden oder ob es sich lediglich um eine harmlose Zeichenfolge handelt, die zufällig wie böswillige Anweisungen aussieht. Natürlich gibt es in gängigen Betriebssystemen (und sogar Prozessoren) eine erzwungene Trennung zwischen schreibgeschütztem ausführbarem Speicher und beschreibbarem Datenspeicher, aber es gibt Szenarien, in denen dies nicht der Fall ist.
WaelJ

@ HarryJohnston: Das wäre wahr, wenn wir das böse Stück der Anweisung abfragen könnten, aber wir können nicht. Meine beliebige Software liest eine Konfigurationsdatei aus ~ / Documents und unterstützt das Löschen einer eigenen Konfiguration. Es gibt einen Ausführungspfad, in dem die "zu löschende Datei" auf ~ / Documents gesetzt ist, bevor "delete" aufgerufen wird. Dies ist äußerst bösartig, aber es gibt keine Möglichkeit zu sagen: "Hey, diese Anwendung hat diese beiden Dinge, sie muss bösartig sein ! " ohne zu schauen, was es mit ihnen macht. Was Sie im allgemeinen Fall nicht tun können, weil das Problem angehalten wird.
Phoshi

@Phoshi: Ja, das ist ein Beispiel für das Argument, das ich in meinem zweiten Kommentar beschreibe. Ich vermute, dass es unter bestimmten Voraussetzungen möglich ist, dies rigoros zu machen, obwohl mir nicht klar ist, wie ich es am besten angehen soll. OTOH, es kann sein, dass Sie der Anwendung erlauben müssen, sich selbst zu analysieren (dh ihren eigenen Code zu überprüfen), um es streng zu machen, und es sollte in der Praxis sicher sein, dies nicht zuzulassen.
Harry Johnston

6

Für das Halteproblem: Gibt es mehr als einige künstlich konstruierte Fälle, in denen man nicht entscheiden kann, ob der Algorithmus beendet wird oder nicht?

Es gibt einige "grob praktische / angewandte" Kontexte mit aktiver Forschung, in denen das Problem des Stillstands eine Rolle spielt:

  • automatisierte Theoremprüfung . Der Beweis von Theoremen durch Computer stößt auf die gleichen Unentscheidbarkeitsgrenzen des Stoppproblems.

  • Der Nachweis der Programmbeendigung für reale Programme ist ein Forschungsgebiet und zeigt sich beispielsweise in der Compilerlogik und der Programmanalyse.

  • Die Kolmogorov-Komplexität versucht, die theoretischen Grenzen von Datenkomprimierungsalgorithmen zu untersuchen. Das Finden einer optimalen Komprimierung (in gewissem Sinne, dh das Finden des kleinsten TM, das eine Zeichenfolge komprimiert) ist unentscheidbar.

  • Unentscheidbarkeit zeigt sich in einigen körperlichen Problemen. zB dynamische Systeme .

  • Ein Grundproblem, das untersucht wurde und als "das Problem des beschäftigten Bibers" bezeichnet wird . immer noch theoretisch, aber weniger abstrakt als das Halteproblem und insbesondere auf seinen Zusammenhang untersucht. Forscher haben jahrzehntelang versucht, dies für "kleine" TMs mit wenigen Zuständen / Symbolen zu lösen.

Hier ist ein verwandtes / interessantes Zitat aus einem kürzlich erschienenen Artikel über das Problem der beschäftigten Biber "Probleme in der Zahlentheorie aus dem Wettbewerb mit beschäftigten Bibern" von Michel (S. 3):

Tatsächlich ist das Halteproblem für Turing-Maschinen, die auf einem leeren Band gestartet wurden, m-vollständig, und dies impliziert, dass dieses Problem genauso schwierig ist wie das Problem der Beweisbarkeit einer mathematischen Aussage in einer logischen Theorie wie ZFC (Zermelo Fraenkel-Mengenlehre mit Axiom der Wahl). Wenn also Turingmaschinen mit immer mehr Zuständen und Symbolen untersucht werden, werden möglicherweise alle Sätze der Mathematik erfüllt. Wenn immer mehr nicht anhaltende Turing-Maschinen untersucht werden, um sich als nicht anhaltend zu erweisen, muss man damit rechnen, dass in der Mathematik schwierige offene Probleme auftreten, dh Probleme, die mit den aktuellen mathematischen Kenntnissen nicht gelöst werden können.

Mit anderen Worten, das Halteproblem kodiert / kapselt tatsächlich die Herausforderung, neue mathematische Theoreme in Mathematik / CS zu beweisen, und kann daher als extrem tief / praktisch / in diesem Sinne angewendet angesehen werden. (Obwohl einige diese Beobachtung für offensichtlich oder trivial halten, ist dies im Allgemeinen auch keine allgemein vertretene / geäußerte Meinung.)


Auch z. B. argumentiert Penrose , dass Unentscheidbarkeit ein Faktor ist, der KI in Emperors neuem Geist verhindert
vzn

Ein weiterer großer Kontext, in dem Unentscheidbarkeit auftaucht, sind einige grundlegende mathematische Fragen. Das vielleicht grundlegendste / berühmteste ist Hilberts 10. Problem , diophantinische Gleichungen in Polynomen. Unentscheidbarkeit zeigt sich auch in einigen Fragen zu Fraktalen, z. B. dem Mandelbrot-Set usw.
vzn

5

Ich beantworte eine Ihrer beiden Fragen zum Problem des Anhaltens.

Erstens bedeutet die Unentscheidbarkeit des Stoppproblems nicht, dass Sie nicht entscheiden können, ob ein bestimmtes TM nicht stoppt. Es heißt, dass es keinen allgemeinen Algorithmus gibt, der dies für alle TM entscheiden kann.

Dies ist eine Aussage über unsere Modelle, was Berechnung ausmacht. Nach der These der Turing-Kirche ist dies jedoch alles, was wir zum Ausdruck bringen müssen.

In Bezug auf die Relevanz basiert es auf künstlich konstruierten Turingmaschinen. Aber dann sind alle TM ziemlich künstlich und nur konstruiert, um einige Fakten über die Berechnung zu behaupten. Ob einige TM in der Praxis relevanter sind als andere, ist eine ebenso wichtige Frage wie das Geschlecht der Engel oder die Anzahl der Engel, die auf einem Nadelkopf stehen können.

Die Unentscheidbarkeit des Stoppproblems zeigt, dass es allgemeine Fragen gibt, die nicht mit einer allgemeinen Technik gelöst werden können, die auf alle Fälle anwendbar ist. Was ich unter allgemeiner Frage verstehe, ist eine Frage, die von einigen Parametern abhängt, wobei die Antwort für einige Werte der Parameter zu finden ist.

Denken Sie daran, dass der Zweck eines Großteils unserer Mathematik darin besteht, allgemeine Techniken zur Lösung einer Familie von Problemen zu finden. Ein typisches Beispiel ist die Auflösung von Gleichungen. Die Unentscheidbarkeit des Stoppproblems zeigt uns, dass dies nicht immer möglich ist.

Beispielsweise kann damit gezeigt werden, dass es keine allgemeine Technik gibt, um zu entscheiden, ob eine kontextfreie Grammatik mehrdeutig ist.

Ihre Frage ist jedoch gültig. Es kann sein, dass ein Problem unentscheidbar ist, weil Sie es nur ein bisschen zu allgemein gemacht haben. Wenn Sie es ein wenig einschränken, können Sie es möglicherweise für eine nützliche und dennoch ausreichend große Unterfamilie entscheiden.

Ich habe kein spektakuläres Beispiel im Sinn, aber ich bin mir sicher, dass es welche geben muss.

Ich erinnere mich an einen wahren Fall eines Programmanalyseproblems, das sich als NP-vollständig erwiesen hat (es sei denn, es war unentscheidbar, ich erinnere mich nicht gut). Gegen jeden Rat entschied sich ein Doktorand, es trotzdem anzugehen. Er konnte tatsächlich zeigen, dass einige Einschränkungen des Problems, die in der Praxis nicht viel ausmachten, es zu einem sehr nachvollziehbaren Problem machten und somit die Verwendung verschiedener Programmanalyse- und Optimierungswerkzeuge ermöglichten.


4
Ein Beispiel, von dem ich denke, dass es gut zu Ihrer Antwort passt, ist die Optimierung von Compilern. Die Unentscheidbarkeit des Stoppproblems bedeutet, dass es beispielsweise keinen Algorithmus gibt, der eine perfekte Entfernung von totem Code durchführen oder die schnellstmögliche ausführbare Datei für eine bestimmte Quelldatei erstellen kann. Dies hindert Compiler jedoch nicht daran, diese Dinge in den meisten Fällen in der Praxis sehr gut zu erledigen.
David Richerby
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.