Verwenden reale Computer den Turing Machine-Mechanismus?


7

Ich bin ein Schüler in der zwölften Klasse. Ich studiere High-Level-Programmierung und ein bisschen grundlegende Informatik.

Ich habe vor kurzem angefangen zu verstehen, was eine Turingmaschine ist. Ich wollte fragen:

Ich verstehe , dass eine Turing - Maschine ein hypothetisches Gerät verwendet , um zu erklären , die Mechanismen der Berechnung.

Aber ist eine Turingmaschine konzeptionell die eigentliche Basis von Computern? (In der grundlegendsten Ebene). Oder haben reale Computermechanismen und der Turing Machine-Mechanismus (Berechnungsmethode) sehr wenig gemeinsam?

Antworten:


10

Turingmaschinen wurden von Turing in seiner Arbeit von 1936 über berechenbare Zahlen und das Halteproblem erfunden. Es war eines der wenigen Modelle, die zu dieser Zeit (wie Kalkül, das zuvor definiert worden war). Alle diese Modelle wurden später als gleichwertig gezeigt. Wenn Sie also nur an Berechenbarkeit interessiert sind , ist das Turing-Maschinenmodell so gut wie jedes andere Modell.λ

Moderne Computer basieren nicht auf dem Turing-Maschinenmodell. Turing-Maschinen sind sehr langsam und repräsentieren nicht die Fähigkeiten von Hardware. Auf der Softwareseite ähnelt ein moderner Computer dem RAM-Computer , der eine indirekte Adressierung ermöglicht und ein unbegrenztes "Alphabet" aufweist (seine Register enthalten beliebig große Ganzzahlen), obwohl tatsächliche Computer nur begrenzte Register haben, und dies macht manchmal einen großen Unterschied ( zum Beispiel beim Rechnen mit großen Zahlen). Ich kenne kein gutes Modell für die Hardware-Seite; Boolesche Schaltungen , die in der theoretischen Informatik beliebt sind, modellieren weder Speicher noch iterative Berechnungen.

Turingmaschinen sind polynomiell äquivalent zu RAM-Maschinen mit polynomiell begrenzten Registern. Das bedeutet, dass beide Maschinen den gleichen Begriff der effizienten Berechnung (Polynomzeitberechnung) liefern , einen theoretischen Begriff, dessen Nützlichkeit in der Praxis zweifelhaft ist. Im Gegensatz dazu bilden (begrenzte) RAM-Maschinen ein vernünftiges Modell für die tatsächliche Berechnung, und daher sind Komplexitätsergebnisse für RAM-Maschinen von praktischer Relevanz. Selbst dieses Modell ignoriert jedoch einige wichtige Komplexitäten moderner Computer, wie z. B. die Geschwindigkeit des Zugriffs auf verschiedene Arten von Speicher (Festplatte, Hauptspeicher, verschiedene Caches).


Danke für deine Antwort. Ich gebe zu, ich war etwas verwirrt. Ich verstehe aus Ihrer Antwort, dass moderne Computer nicht auf Turing-Maschinen basieren. Wenn ja, würde ich gerne wissen - für den niedrigsten, berechnenden Teil des Computers (korrigieren Sie mich, wenn ich falsch liege -, aber ich gehe davon aus, dass die Fähigkeit, mathematische Berechnungen durchzuführen, die grundlegendste ist und ' Welches theoretische Modell könnte erklären, wie dies getan wird, wenn ein Computer auf niedrigem Niveau in der Lage ist, alles andere zu ermöglichen? Ich würde wirklich gerne eine vereinfachte Version des grundlegendsten Aspekts der Funktionsweise von Computern verstehen.
Aviv Cohn

1
Sie können versuchen, die Elemente von Computersystemen zu lesen . Moderne Hardware wird unter Verwendung von Transistoren implementiert, die Logikgatter, Flipflops und andere Speichervorrichtungen implementieren. Die Hardware implementiert eine RAM-Maschine in Maschinenwörtern (heutzutage normalerweise jeweils 64 Bit). Software basiert auf vielen Ebenen, aber die niedrigste Ebene, die es zu sehen gibt, ist diese RAM-Maschine.
Yuval Filmus

1
??? PTime-Berechnung "ein theoretischer Begriff, dessen Nützlichkeit in der Praxis zweifelhaft ist"? huh?
vzn

@vzn Für mich hat die Frage P vs. NP absolut keine praktische Relevanz.
Yuval Filmus

1

Alle modernen Computer basieren im Wesentlichen auf der Von Neumann-Architektur, die im Wesentlichen aus der CPU der Zentraleinheit plus Speicher und einem gespeicherten Programm besteht, in dem die CPU auch die ALU der Arithmetik- / Logikeinheit enthält .

Beachten Sie, dass die Turing-Maschine im Grunde die gleiche "Architektur" hat, insbesondere den Universalcomputer , auf dem auf dem Band gespeicherte Programme ausgeführt werden können. Die Statustabelle und der Bandkopf funktionieren ähnlich wie die CPU (in dieser Analogie wäre die ALU eine Teilmenge aller TM-Zustände, die die arithmetische Logik steuern) und das Band als Speicher. Natürlich verwendeten viele frühe reale Computer sogar "Bänder" zum Speichern von Daten (und dies setzt sich in einigen Kontexten fort, z. B. in Massenspeichersystemen). Die Analogie kann durch ein binäres "Symbolalphabet" auf dem Band weiter verstärkt werden. Es gibt auch Multihead-TMs, die genau wie bei echten Computern untersucht wurden.

Die TCS-Komplexitätstheorie untersucht physikalische Einheiten, die vom abstrakten TM bearbeitet werden, nämlich Raum und Zeit, die beide "Kontinuum / Teilbarkeit" -ähnliche Eigenschaften wie im realen physikalischen Fall haben. Das TM soll "arbeiten", während es berechnet / bewegt , auch ein physikalisches Konzept. Viele tiefe TCS-Theoreme zeigen tiefe Wechselbeziehungen zwischen Raum und Zeit, genauso wie es starke physikalische Konzepte gibt, z. B. "Geschwindigkeit". Insgesamt bestehen also tiefe Verbindungen zwischen TCS und Physik . (Vergiss niemals, dass das TM buchstäblich eine Maschine ist! )

Kurz gesagt, es gibt verschiedene starke konzeptionelle / metaphorische Ähnlichkeiten zwischen einem TM und dem modernen Computer, obwohl dies je nach Kontext entweder betont oder heruntergespielt werden kann (was nicht überraschend zu einer gewissen Verwirrung der Schüler führt). Ein wesentlicher Unterschied besteht darin, dass das TM über einen unendlichen Speicher auf dem Band verfügt. Bei Computern wird dies nur durch große Speicher "angenähert" (sozusagen).


1
Im Teilbereich der Algorithmen studieren Menschen häufig RAM-Maschinen, anscheinend weil sie ein besseres Modell für die Berechnung in der realen Welt bilden. Obwohl Turing-Maschinen RAM-Maschinen p-simulieren, sind RAM-Maschinen viel effizienter. Sie können (wahrscheinlich) keine Zahlen in mit einer Turing-Maschine sortieren . Der wahlfreie Zugriff ist in der Praxis sehr wichtig. O(nlogn)
Yuval Filmus
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.