TI: normale und allgemeine Registermaschinen (Update)
Update: im Hinblick auf die Lernziele zu Kurseinheit 1, habe ich diesen Eintrag etwas überarbeitet um ihn im neuen Beitrag verwenden zu können.
Wichtig vorab: lasst euch nicht von den mathematischen Definitionen erschrecken. Sie werden nach der Einführung der formalen Definition noch einmal informell (und hoffentlich verständlich) erläutert. Auch wenn euch die Definitionen unnötig erscheinen, ist es in der Mathematik üblich etwas unmissverständlich auszudrücken. Die formale Definition ist daher leider notwendig und durchaus hilfreich bei den Prüfungen und den Einsendeaufgaben. Aber mal Butter bei die Fische:
Wir unterscheiden die Maschinen in normale Registermaschinen und allgemeine Registermaschinen. Der Unterschied zwischen den beiden ist, dass die allgemeinen Registermaschinen zusätzliche, komplexe Funktionen anbieten. Diese müssen jedoch durch normale Registermaschinen ausgedrückt werden können. Als Beispiel dient der (komplexe) Vergleich von zwei Registern, welcher durch eine normale Registermaschine ausgedrückt werden kann.
Die Registermaschine verfügt über Register zum Speichern natürlicher Zahlen. Eine Belegung der Register wird mit einer Funktion realisiert. ist der Inhalt des Registers . Die Datenmenge der Registermaschine ist damit . Die Funktion lässt sich auch als konkrete Belegung der Register mit darstellen, z.B. "(3, 1, 5, ...)". Man verwendet hier so viele Funktionswerte, d.h. belegte Register wie notwendig. Alle anderen Register sind mit 0 belegt. Zusätzlich wird mit der Ausgabecodierung mit definiert, dass das Ergebnis stets im Register stehen soll.
Die einzigen Operationen, die eine normale Registermaschine kann ist
- addiere 1 in ()
- subtrahiere 1 in (), arithemtische Differenz ( falls , 0 sonst), z.B. 5 7 = 0, aber 7 5 = 2
- teste ob in eine 0 steht. ()
Alle anderen Operationen finden sich in einer allgemeinen Registermaschine wieder und werden, wie erwähnt, durch die drei Operationen der normalen Registermaschine ausgedrückt. Nun definieren wir die beiden Arten der Registermaschine formal und erklären die Definition. Anschließend folgt ein Beispiel für eine Funktion, deren Berechenbarkeit wir durch eine allgemeine Registermaschine beweisen. Ihre komplexen Funktionen bilden wir dann mit einer normalen Registermaschine nach.
Definition Registermaschine
Eine k-stellige () Registermachine ist wie folgt definiert: . Stelligkeit bedeutet einfach nur die Anzahl der verwendeten Register. Ist die Stelligkeit mit angegeben, gilt , d.h. die Registerbelegung ist .
- als die Menge der Registerbelegungen.
- : ist ein Flussdiagramm (siehe Beispiel im "berechenbare Zahlenfunktion")
- mit : Eingabecodierung mit Stellen und der Menge als Datenmenge auf der operiert wird.
Beispiel:
Wir belegen die Register der Registermaschine also mit , wobei das erste (Ausgaberegister) und alle anderen Register mit belegt werden. - : als Ausgabecodierung mit
D.h. im 1. Register der Registermaschine steht die Ausgabe. - Die Funktionen und Tests wie oben beschrieben.
Damit haben wir die Registermaschine auch schon definiert.
Verallgemeinerte Registermaschine
Die verallgemeinerte Registermaschine ist ebenfalls k-stellig und hat die gleiche Definition . Der einzige Unterschied ist, dass statt den drei rudimentären Funktionen (Addition, Subtraktion/arithmetische Differenz, Test auf 0) zusätzlich noch weitere, komplexe Funktionen und Tests definiert sind. Wir lassen nun folgende Operationen zusätzlich zu:
- : das bedeutet nichts anderes, als dass wir ein Register auf ein Wert setzen können, der durch eine Funktion errechnet worden ist, wobei die Eingabeparameter für aus den Registern stammen.
Beisipel: mit Registermaschinenbelegung
Die Zuweisung ist damit gültig und das Ergebnis ist - : wir können nicht mehr nur auf testen, sondern können schauen ob der Registerinhalt von ungleich dem Registerinhalt von ist.
Im Beitrag über berechenbare Zahlenfunktionen kommt ein Beweis einer dieser komplexen Funktionen der allgemeinen Registermaschine vor: der Multiplikation. Wer noch etwas Nachhilfe bei der vollständigen Induktion bei den Maschinen braucht, dem könnte der Beitrag vielleicht helfen.
Wie immer gilt: bei Fehlern bitte melden!
Buchempfehlung