Der Fehler in Ihrer Argumentation ist, dass "Überschreiten" nicht nur bedeutet, dass Sie alle Algorithmen ausführen können sollten, sondern auch einen Begriff der Komplexität enthält, dh wie viele Zeitschritte Sie zur Simulation eines Algorithmus benötigen.
Wie simuliert man einen Algorithmus mit einer Turingmaschine? Eine Turingmaschine besteht aus einer endlichen Zustandsmaschine und einem unendlichen Band. Eine Turingmaschine führt zwar einen Algorithmus aus, der durch ihren Anfangszustand und die Zustandsübergangsmatrix bestimmt wird, aber ich denke, Sie sprechen von Universal Turing Machines (UTM), die "Code" lesen können (was normalerweise eine Beschreibung einer anderen Turingmaschine ist) ) auf ein "Codesegment" des Bandes geschrieben und dann diese Maschine anhand von Eingabedaten simuliert, die auf das "Datensegment" des Bandes geschrieben wurden.
Turing-Maschinen können sich in der Anzahl der Zustände in ihren endlichen Zustandsmaschinen unterscheiden (und auch in dem Alphabet, das sie auf das Band schreiben, aber jedes endliche Alphabet kann leicht binär codiert werden, so dass dies nicht der große Grund für Unterschiede zwischen Turing-Maschinen sein sollte). Sie können also UTMs mit größeren Zustandsautomaten und UTMs mit kleineren Zustandsautomaten verwenden. Die größere UTM könnte möglicherweise die kleinere übertreffen, wenn sie dieselbe Codierung für den "Code" -Teil des Bandes verwenden.
Sie können auch mit dem Code herumspielen, der zur Beschreibung des zu simulierenden TM verwendet wird. Dieser Code kann beispielsweise C ++ oder ein neuronales Netzwerk sein, dessen Synapsenstärke als Matrix angegeben ist. Welche Beschreibung für die Berechnung besser ist, hängt vom Problem ab.
Ein Beispielvergleich zwischen UTMs mit unterschiedlichen Zustandsautomaten: Berücksichtigen Sie unterschiedliche Compiler für dieselbe Sprache, z. B. C ++. Beide kompilieren zuerst C ++ zur Assembly und führen dann eine andere UTM aus, die die Assembly liest und ausführt (Ihre physische CPU). Ein besserer Compiler führt also denselben Code schneller aus.
Zurück zu Menschen gegen Computer, Menschen sind neuronale Netze, die Algorithmen ausführen, wie Sie sie in C ++ schreiben würden. Dies beinhaltet eine kostspielige und ineffiziente Umwandlung des Algorithmus in Handbewegungen. Ein Computer verwendet einen Compiler, um C ++ in eine Assembly zu konvertieren, die nativ ausgeführt werden kann, sodass C ++ - Code wesentlich effizienter implementiert werden kann. Alternativ haben Menschen eine Menge Neuronen, und der neuronale Code, dh die Synapsenstärke, ist schwer zu lesen, sodass aktuelle Computer diesen Code noch nicht ausführen können.