In Bezug auf das Halteproblem und den menschlichen Geist

Das Halteproblem (glaube ich) ist das Problem, einen allgemeinen Algorithmus zu finden, um zu bestimmen, ob ein bestimmtes Programm in einem Computersystem anhält. Es hat sich gezeigt, dass es dafür kein allgemeines Verfahren gibt (glaube ich). Gilt dies für die organisatorischen Fähigkeiten des Geistes? Jedes Informationsmanagementsystem wie der Geist/das Gehirn muss orchestrieren, wann bestimmte Programme „laufen“ oder geändert werden sollen, und wenn es nicht immer sagen kann, wann ein Programm anhalten wird, wie kann sich das System dann selbst organisieren?

Die Turing-Maschine ist ein mathematisches Modell des Rechnens und auch des menschlichen Rechnens. Zu extrapolieren, dass es ein Modell des menschlichen Geistes ist, ist eine sehr, sehr große Extrapolation. Gegenwärtige "Universalcomputer" sind eine ziemlich effektive Umsetzung des mathematischen Konzepts der universellen Turing-Maschine (mit offensichtlichen Einschränkungen bezüglich des Bandes ...) und sie funktionieren ziemlich gut.
Es ist nicht einfach so, dass eine allgemeine Lösung nicht bekannt ist, sondern dass es sie nicht geben kann; das Halteproblem ist "unentscheidbar" (über TMs)
Sie sollten diese Frage mit einer genaueren Beschreibung des Halteproblems aktualisieren.
In der buddhistischen Doktrin, die als uralter Diskurs des Geistes (und der Psyche) angesehen werden könnte, gibt es das, was „Saṃsāra“ genannt wird, den nie endenden Zyklus von Tod und Wiedergeburt (oder Werden-Nicht-Werden) mentaler Zustände – ein möglicher Ausgangspunkt ? Es gibt auch das, was ich den „Abhängigkeitsgraphen der Existenz“ nennen würde, der abhängige Ursprung genannt wird ( paticcasamuppada oder pratityasamutpada ), dessen duales Sein Nirvana (Befreiung vom diskreten Graphen) ist. (Ignorieren Sie diesen Kommentar frei als unwissenschaftlich, er ist lediglich und vollständig meine persönliche Meinung, afaik, und weder solide noch gut strukturiert)

Antworten (1)

Das Halteproblem sagt nichts direkt über den Verstand aus. Es sagt etwas über rekursive Mengen und rekursiv aufzählbare Mengen aus. Eine rekursiv aufzählbare Menge ist eine Menge von ganzen Zahlen, die von einer Turing-Maschine generiert (aufgezählt) werden können. (Wir können eine Turing-Maschine bauen, die jedes Mitglied des Satzes auf sein Band druckt.)

Der Satz von Turing lautet:

bei jeder Codierung von ganzen Zahlen in Rechenmaschinen die Menge von ganzzahligen Paaren

K = { < ich , j > | Programm i hält an, wenn es auf Eingabe j ausgeführt wird }

ist rekursiv aufzählbar, während sein Komplement

nicht(K) = { < ich , j > | Programm i hält nicht an, wenn es auf Eingabe j ausgeführt wird }

ist nicht.

Es sollte nicht überraschen, dass es viele Mengen von ganzen Zahlen (oder ganzzahligen Paaren) gibt, die nicht rekursiv aufzählbar sind. Es gibt nur abzählbar viele ganze Zahlen (und nur abzählbar viele ganzzahlige Paare), also nur abzählbar viele durch die ganzen Zahlen kodierbare Turingmaschinen. Aber die Menge aller Mengen ganzer Zahlen (die Potenzmenge der ganzen Zahlen) ist überabzählbar unendlich. "Die meisten" Mengen von ganzen Zahlen sind also nicht rekursiv aufzählbar.

Turings Beweis erfolgt durch Diagonalisierung und ähnelt dem Paradoxon des Lügners .

Sehen wir uns die Menge doestHaltOnItself = { i | an Programm i hält nicht an, wenn es auf Eingabe i ausgeführt wird }

Können wir eine Turing-Maschine H konstruieren, die anhält und "accept" für alle i in doestHaltOnItself ausgibt und andernfalls (wenn i anhält, wenn es auf i ausgeführt wird ) für immer läuft? Angenommen. Ist H in doestHaltOnItself? Angenommen, H ist in doestHaltOnItself. Wenn dann H am Eingang H ausgeführt wird, hält es nicht an. Aber für alle iin doestHaltOnItself sollte H anhalten und "accept" ausgeben. Also darf H nicht in doestHaltOnItself stehen. Aber das bedeutet, dass wenn H auf sich selbst läuft, es anhält. Aber wenn H auf einem Programm ausgeführt wird, das auf sich selbst anhält, soll es für immer laufen. Auch ein Widerspruch. Unsere Annahme, dass wir H konstruieren könnten, ist also falsch. Beachten Sie, dass doestHaltOnItself im Wesentlichen eine Teilmenge von not(K) ist, also ist not(K) nicht rekursiv aufzählbar.

Der Satz von Turing sagt uns ebenso wie der Satz von Gödel (und das Diagonalisierungsverfahren von Cantor) etwas Tiefes über die Grenzen von Logik, Mengenlehre und Mathematik.

Ob Turings Theorem (oder Gödels Theorem (oder die Kardinalität von Potenzmengen)) uns irgendetwas Interessantes über den menschlichen Verstand sagt, hängt von einer ganzen Reihe anderer Annahmen ab (z. B. ob Sie glauben, dass Bewusstsein von der Fähigkeit abhängt, Mengen aufzuzählen, die es nicht sind rekursiv aufzählbar.)

Ihre Frage bezog sich speziell auf den Zusammenhang zwischen Turings Theorem und "Selbstorganisation". Ich sehe keinen Zusammenhang zwischen der Fähigkeit zur "Selbstorganisation" und der Fähigkeit, Mengen aufzuzählen, die nicht rekursiv aufzählbar sind. Es ist mir nicht einmal klar, dass ein selbstorganisierendes System in der Lage sein muss, alle rekursiv aufzählbaren Mengen aufzulisten (und sicherlich keine der nicht endlichen rekursiv aufzählbaren Mengen).

Ich habe noch nie gehört, dass der Beweis zeigt, dass die Menge der Programme, die nicht anhalten, überabzählbar unendlich ist. Woher hast du das?
@senderle: :$ Ich habe das verstanden, weil ich mich geirrt habe. Ich habe meine Antwort korrigiert. Danke für den Hinweis auf meinen Fehler!
Ah, ja – und ich finde es gut, dass Sie ausdrücklich darauf hingewiesen haben, dass es eine unzählbare Anzahl (zählbarer) Teilmengen der ganzen Zahlen gibt – das hat mir einen neuen Einblick in die Rolle der Diagonalisierung im Beweis gegeben.
Wenn der Verstand wirklich wie eine kognitive Maschine mit streng definierten Regeln und Definitionen ist und die Fähigkeit zur Selbstorganisation hat, müsste er dann planen, wann bestimmte Prozesse oder Programme ausgeführt werden sollen und wann zuvor laufende Prozesse anhalten?
Das nehme ich an. Es hört sich so an, als würden Sie ein Computerbetriebssystem wie Linux beschreiben. Das "Halteproblem" verbietet es Ihnen nicht, zu beobachten, dass ein Prozess angehalten wurde. Es verbietet Ihnen auch nicht, einen laufenden Prozess zu beenden (der nicht von selbst angehalten hat). Außerdem verbietet es Ihnen auch nicht festzustellen, ob einige Programme nicht beendet werden. Es sagt auch nicht, dass die Programme, bei denen Sie nicht feststellen können, ob sie anhalten oder nicht, für irgendeinen kognitiven Prozess erforderlich sind.
Angenommen, Sie glauben, dass jeder (einschließlich Sie selbst) irgendwann sterben wird, dann wissen Sie , dass jeder physische Prozess, der im menschlichen Geist involviert ist, irgendwann zum Stillstand kommt. Das Halteproblem ist also (soweit ich das beurteilen kann) für die Frage der menschlichen Kognition irrelevant.
@ user128932, der obige Kommentar von Wandering Logic enthält eine hervorragende Liste von Dingen, die Turings Beweis nicht verbietet. Ich füge noch eines hinzu: Es gilt nicht für ein inkonsistentes formales System. Und der Verstand scheint auf eine Weise zu operieren, die weniger rigoros ist als die Arten von formalen Systemen, die Turing analysierte. Daher unterliegt der menschliche Geist möglicherweise nicht denselben Beschränkungen – nicht, weil er sie irgendwie „transzendiert“, sondern weil er nicht unbedingt konsistente Ergebnisse liefert. (Wie wir an der Tatsache sehen können, dass die Leute ständig ungültige "Beweise" akzeptieren!)
Wenn das Geist-Gehirn wie ein formales logisches System ist, wie manche Leute zu implizieren scheinen; ein neurologisch-mechanisches neuronales Stimulus-Computersystem, in dem alles dem chemischen und physikalischen Determinismus unterliegt, dann wären alle neuromechanischen „Programme“ und ihre Organisation durch das Halteproblem „begrenzt“. Wenn das Geist-Gehirn nicht wie eine formale Logik oder ein mechanisches System ist, nicht wie ein inkonsistentes formales System; es ist eher wie ein halbkonsistentes INFORMAL-Logiksystem.
Ein erfolgreiches KI-System hätte wahrscheinlich die Fähigkeit, sich selbst neu zu programmieren; das heißt, Teile von sich selbst neu programmieren, einige oder alle bestimmten wichtigen Programme neu programmieren oder bestimmte notwendige Funktionen neu programmieren, alles so, dass seine wichtigen Funktionen nicht „sabotiert“ werden. Es sollte also in der Lage sein, verschiedene „Teile“ von sich selbst zu ändern und dennoch selbsttragend zu sein. DOCH wenn ein Programmsystem wie ein KI-System sich selbst umprogrammieren kann, muss es in der Lage sein, das Problem des „Haltens“ in Bezug auf „sich selbst“ zu lösen. Es muss in der Lage sein zu erkennen, wann ein Programm, das es ändern wird, „angehalten“ wird.