Registermaschine (Komplexitätstheorie)

Registermaschine (Komplexitätstheorie)

Die Registermaschine (auch RAM für engl. random access machine) ist ein Rechnermodell der theoretischen Informatik, das einem realen Rechner (PC) sehr ähnlich ist.

Eine Registermaschine kann alles, was auch ein realer Rechner kann. Da man auch beweisen kann, dass sich die Registermaschine und die Turingmaschine gegenseitig mit polynomieller Laufzeit simulieren können, gelten Aussagen, die man für die Turingmaschine beweisen kann, auch für die Registermaschine und damit auch für reale Rechner. Dies ist in der theoretischen Informatik von Vorteil, da man viele Aussagen anhand der Turingmaschine leichter beweisen kann.

Die hier vorgestellte Registermaschine stammt aus dem Bereich der Komplexitätstheorie. Dies wird im weiteren Text nicht mehr erwähnt.

Definition

Die Registermaschine besteht formal aus

  • einem Programm bestehend aus endlich vielen durchnummerierten Befehlen (beginnend mit Nummer 1)
  • einem Befehlszähler b
  • einem Akkumulator c(0)
  • und einem unendlich großem Speicher aus durchnummerierten Speicherzellen (Register) c(1), c(2), c(3), …

Alle Register (incl. b und c(0)) enthalten beliebig große natürliche Zahlen.

Zu Beginn enthält der Befehlszähler b den Wert 1, der Akkumulator den Wert 0. Die Speicherzellen ab Nummer 1 enthalten zu Beginn die endliche Eingabe. Die restlichen Speicherzellen enthalten den Wert 0.

Das Programm kann aus folgenden Befehlen bestehen.

Befehl Wirkung
LOAD i c(0):=c(i) b:=b+1
CLOAD i c(0):=i b:=b+1
INDLOAD i c(0):=c(c(i)) b:=b+1
STORE i c(i):=c(0) b:=b+1
INDSTORE i c(c(i)):=c(0) b:=b+1
ADD i c(0):=c(0)+c(i) b:=b+1
CADD i c(0):=c(0)+i b:=b+1
INDADD i c(0):=c(0)+c(c(i)) b:=b+1
SUB i c(0): = max(c(0) − c(i),0) b:=b+1
CSUB i c(0): = max(c(0) − i,0) b:=b+1
INDSUB i c(0): = max(c(0) − c(c(i)),0) b:=b+1
MUL i c(0):=c(0)*c(i) b:=b+1
CMUL i c(0):=c(0)*i b:=b+1
INDMUL i c(0):=c(0)*c(c(i)) b:=b+1
DIV i c(0):=\lfloor c(0)/c(i)\rfloor b:=b+1
CDIV i c(0):=\lfloor c(0)/i\rfloor b:=b+1
INDDIV i c(0):=\lfloor c(0)/c(c(i))\rfloor b:=b+1
GOTO i b:=i
IF c(0) α l GOTO i
\alpha \in \{<, \leq, =, \geq, >\}
b:=i falls Bedingung wahr, b:=b+1 sonst.
END b:=b

Die Registermaschine führt dann nacheinander die Befehle des Programms aus. Es wird immer der Befehl mit der Nummer b ausgeführt. Wie man aus der Tabelle entnehmen kann, erhöhen fast alle Befehle den Befehlszähler um 1, so dass der nächste Befehl ausgeführt werden kann. Die Registermaschine endet, sobald sie auf den Befehl END ausführt. Das Ergebnis der Berechnung steht dann in (zuvor) definierten Registern.


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Registermaschine — Die Registermaschine (auch RAM für engl. random access machine) ist ein Rechnermodell der theoretischen Informatik, das einem realen Rechner (PC) sehr ähnlich ist. Das Modell geht auf eine Arbeit von John C. Shepherdson und Howard E. Sturgis aus… …   Deutsch Wikipedia

  • Komplexitätstheorie — Die Komplexitätstheorie als Teilgebiet der Theoretischen Informatik befasst sich mit der Komplexität von algorithmisch behandelbaren Problemen auf verschiedenen mathematisch definierten formalen Rechnermodellen. Die Komplexität von Algorithmen… …   Deutsch Wikipedia

  • Random Access Machine — Die Registermaschine (auch RAM für engl. random access machine) ist ein Rechnermodell der theoretischen Informatik, das einem realen Rechner (PC) sehr ähnlich ist. Das Modell geht auf eine Arbeit von John C. Shepherdson und Howard E. Sturgis aus… …   Deutsch Wikipedia

  • Computer Science — Informatik ist die Wissenschaft von der systematischen Verarbeitung von Informationen, insbesondere der automatischen Verarbeitung mit Hilfe von Rechenanlagen. Historisch hat sich die Informatik als Wissenschaft aus der Mathematik entwickelt,… …   Deutsch Wikipedia

  • Computerwissenschaft — Informatik ist die Wissenschaft von der systematischen Verarbeitung von Informationen, insbesondere der automatischen Verarbeitung mit Hilfe von Rechenanlagen. Historisch hat sich die Informatik als Wissenschaft aus der Mathematik entwickelt,… …   Deutsch Wikipedia

  • Abstrakte Maschine — Ein Automat oder eine abstrakte Maschine ist in der Informatik das Modell eines digitalen, zeitdiskreten Rechners. Ob es möglich oder sinnvoll ist, eine solche Maschine tatsächlich zu bauen, ist dabei zunächst unerheblich. Die Vereinfachung der… …   Deutsch Wikipedia

  • Abstrakter Automat — Ein Automat oder eine abstrakte Maschine ist in der Informatik das Modell eines digitalen, zeitdiskreten Rechners. Ob es möglich oder sinnvoll ist, eine solche Maschine tatsächlich zu bauen, ist dabei zunächst unerheblich. Die Vereinfachung der… …   Deutsch Wikipedia

  • Automatenmodell — Ein Automat oder eine abstrakte Maschine ist in der Informatik das Modell eines digitalen, zeitdiskreten Rechners. Ob es möglich oder sinnvoll ist, eine solche Maschine tatsächlich zu bauen, ist dabei zunächst unerheblich. Die Vereinfachung der… …   Deutsch Wikipedia

  • Maschinenmodell — Ein Automat oder eine abstrakte Maschine ist in der Informatik das Modell eines digitalen, zeitdiskreten Rechners. Ob es möglich oder sinnvoll ist, eine solche Maschine tatsächlich zu bauen, ist dabei zunächst unerheblich. Die Vereinfachung der… …   Deutsch Wikipedia

  • Rechnermodell — Ein Automat oder eine abstrakte Maschine ist in der Informatik das Modell eines digitalen, zeitdiskreten Rechners. Ob es möglich oder sinnvoll ist, eine solche Maschine tatsächlich zu bauen, ist dabei zunächst unerheblich. Die Vereinfachung der… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”