{"id":468,"date":"2012-10-04T18:34:06","date_gmt":"2012-10-04T16:34:06","guid":{"rendered":"http:\/\/fernuni.digreb.net\/?p=468"},"modified":"2020-10-28T22:30:58","modified_gmt":"2020-10-28T21:30:58","slug":"ti-normale-und-allgemeine-registermaschinen","status":"publish","type":"post","link":"https:\/\/fernuni.digreb.net\/?p=468","title":{"rendered":"TI: normale und allgemeine Registermaschinen (Update)"},"content":{"rendered":"<p><strong>Update<\/strong>: im Hinblick auf die Lernziele zu Kurseinheit 1, habe ich diesen Eintrag etwas \u00fcberarbeitet um ihn im <a href=\"https:\/\/fernuni.digreb.net\/?p=2093\">neuen Beitrag<\/a> verwenden zu k\u00f6nnen.<\/p>\n<p><strong>Wichtig vorab<\/strong>: lasst euch nicht von den mathematischen Definitionen erschrecken. Sie werden nach der Einf\u00fchrung der formalen Definition noch einmal informell (und hoffentlich verst\u00e4ndlich) erl\u00e4utert. Auch wenn euch die Definitionen unn\u00f6tig erscheinen, ist es in der Mathematik \u00fcblich etwas unmissverst\u00e4ndlich auszudr\u00fccken. Die formale Definition ist daher leider notwendig und durchaus hilfreich bei den Pr\u00fcfungen und den Einsendeaufgaben. Aber mal Butter bei die Fische:<\/p>\n<p>Wir unterscheiden die Maschinen in normale Registermaschinen und allgemeine Registermaschinen. Der Unterschied zwischen den beiden ist, dass die allgemeinen Registermaschinen zus\u00e4tzliche, komplexe Funktionen anbieten. Diese m\u00fcssen jedoch durch normale Registermaschinen ausgedr\u00fcckt werden k\u00f6nnen. Als Beispiel dient der (komplexe) Vergleich von zwei Registern, welcher durch eine normale Registermaschine ausgedr\u00fcckt werden kann.<\/p>\n<p>Die Registermaschine verf\u00fcgt \u00fcber Register $$R_0, R_1, R2, &#8230;$$ zum Speichern nat\u00fcrlicher Zahlen. Eine Belegung der Register wird mit einer Funktion $$d: \\mathbb{N} \\rightarrow \\mathbb{N}$$ realisiert.&nbsp;$$d(i)$$ ist der Inhalt des Registers $$R_i$$. Die Datenmenge der Registermaschine ist damit $$D := \\mathbb{N}^{\\mathbb{N}} = \\{d \\mid d : \\mathbb{N} \\rightarrow \\mathbb{N}\\}$$. Die Funktion $$d(i)$$ l\u00e4sst sich auch als konkrete Belegung der Register mit $$(d(0), d(1), d(2), &#8230;)$$ darstellen, z.B. &#8222;(3, 1, 5, &#8230;)&#8220;. Man verwendet hier so viele Funktionswerte, d.h. belegte Register wie notwendig. Alle anderen Register sind mit 0 belegt. Zus\u00e4tzlich wird mit der Ausgabecodierung $$AC: D \\rightarrow \\mathbb{N}$$ mit $$AC(d) := d(0)$$ definiert, dass das Ergebnis stets im Register $$R_0$$ stehen soll.<\/p>\n<p>Die einzigen Operationen, die eine <strong>normale Registermaschine<\/strong> kann ist<\/p>\n<ol style=\"padding-left: 30px;\">\n<li>addiere 1 in $$R_i$$ ($$R_i := R_i + 1$$)<\/li>\n<li>subtrahiere 1 in $$R_i$$ ($$R_i := R_i \\dot{-} 1$$), arithemtische Differenz ($$a &#8211; b := ( a &#8211; b$$ falls $$a \\geq b$$, 0 sonst), z.B. 5 $$\\dot{-}$$ 7 = 0, aber 7$$\\dot{-}$$ 5 = 2<\/li>\n<li>teste ob in $$R_i$$ eine 0 steht. ($$R_i = 0$$)<\/li>\n<\/ol>\n<p>Alle anderen Operationen finden sich in einer allgemeinen Registermaschine wieder und werden, wie erw\u00e4hnt, durch die drei Operationen der normalen Registermaschine ausgedr\u00fcckt. Nun definieren wir die beiden Arten der Registermaschine formal und erkl\u00e4ren die Definition. Anschlie\u00dfend folgt ein Beispiel f\u00fcr eine Funktion, deren Berechenbarkeit wir durch eine allgemeine Registermaschine beweisen. Ihre komplexen Funktionen bilden wir dann mit einer normalen Registermaschine nach.<\/p>\n<h1>Definition Registermaschine<\/h1>\n<p>Eine k-stellige ($$k \\in \\mathbb{N} $$) Registermachine ist wie folgt definiert: $$M = (F, \\mathbb{N}^k, \\mathbb{N}, EC^{(k)}, AC) $$. Stelligkeit bedeutet einfach nur die Anzahl der verwendeten Register. Ist die Stelligkeit mit $$k = 0$$ angegeben, gilt $$D:=\\{\\}$$, d.h. die Registerbelegung ist $$(0,0,&#8230;)$$.<\/p>\n<ul style=\"list-style-type: square; padding-left: 30px;\">\n<li>$$D := \\mathbb{N}^{\\mathbb{N}} = \\{d \\mid d : \\mathbb{N} \\rightarrow \\mathbb{N}\\}$$ als die Menge der Registerbelegungen.<\/li>\n<li>$$F$$: ist ein Flussdiagramm (siehe Beispiel im &#8222;berechenbare Zahlenfunktion&#8220;)<\/li>\n<li>$$EC^{(k)}: \\mathbb{N}^k \\rightarrow D$$ mit $$EC^{(k)}(x_1,&#8230;,x_k)=(0,x_1,&#8230;,x_k,0,&#8230;)$$: Eingabecodierung mit $$k$$ Stellen und der Menge $$D$$ als Datenmenge auf der operiert wird.<br \/>\n<strong>Beispiel<\/strong>:&nbsp;$$EC^{(3)}(3,5,1)=(0,3,5,1,0,&#8230;)$$<br \/>\nWir belegen die Register $$1-3$$ der Registermaschine also mit $$3,5,1$$, wobei das erste (Ausgaberegister) und alle anderen&nbsp;Register mit $$0$$ belegt werden.<\/li>\n<li>$$AC : D \\rightarrow \\mathbb{N}$$: als Ausgabecodierung mit $$AC(a_0,a_1,&#8230;):=a_0$$<br \/>\nD.h. im 1. Register der Registermaschine $$R_0$$ steht die Ausgabe.<\/li>\n<li>Die Funktionen und Tests wie oben beschrieben.<\/li>\n<\/ul>\n<p>Damit haben wir die Registermaschine auch schon definiert.<\/p>\n<h1>Verallgemeinerte Registermaschine<\/h1>\n<p>Die verallgemeinerte Registermaschine ist ebenfalls k-stellig und hat die gleiche Definition $$M = (F, \\mathbb{N}^k, \\mathbb{N}, EC^{(k)}, AC) $$. Der einzige Unterschied ist, dass statt den drei rudiment\u00e4ren Funktionen (Addition, Subtraktion\/arithmetische Differenz, Test auf 0) zus\u00e4tzlich noch weitere, komplexe Funktionen und Tests definiert sind. Wir lassen nun folgende Operationen zus\u00e4tzlich zu:<\/p>\n<ul style=\"list-style-type: square; padding-left: 30px;\">\n<li>$$R_n:=g(R_{i1},&#8230;,R_{im})$$: das bedeutet nichts anderes, als dass wir ein Register auf ein Wert setzen k\u00f6nnen, der durch eine Funktion $$g$$ errechnet worden ist, wobei die Eingabeparameter f\u00fcr $$g$$ aus den Registern $$R_{i1},&#8230;,R_{im}$$ stammen.<br \/>\n<strong>Beisipel<\/strong>: $$g(x,y)=x+y$$ mit Registermaschinenbelegung $$EC^3(4,1,2)=(0,4,1,2,&#8230;)$$<br \/>\nDie Zuweisung $$R_0=g(R_1,R_3)$$ ist damit g\u00fcltig und das Ergebnis ist $$R_0=6$$<\/li>\n<li>$$R_i\\neq R_j$$: wir k\u00f6nnen nicht mehr nur auf $$0$$ testen, sondern k\u00f6nnen schauen ob der Registerinhalt von $$R_i$$ ungleich dem Registerinhalt von $$R_j$$ ist.<\/li>\n<\/ul>\n<p>Im Beitrag&nbsp; \u00fcber <a title=\"TI: Beweis der Multiplikation mit einer Registermaschine\" href=\"https:\/\/fernuni.digreb.net\/?p=515\">berechenbare Zahlenfunktionen<\/a> kommt ein Beweis einer dieser komplexen Funktionen der allgemeinen Registermaschine vor: der Multiplikation. Wer noch etwas Nachhilfe bei der vollst\u00e4ndigen Induktion bei den Maschinen braucht, dem k\u00f6nnte der Beitrag vielleicht helfen.<\/p>\n<p>Wie immer gilt: bei Fehlern bitte melden!<\/p>\n<h3>Buchempfehlung<\/h3>\n<p><a class=\"amazonlink\" target=\"_blank\" href=\"https:\/\/www.amazon.de\/gp\/product\/3446412603\/ref=as_li_tl?ie=UTF8&amp;camp=1638&amp;creative=6742&amp;creativeASIN=3446412603&amp;linkCode=as2&amp;tag=fernblog09-21&amp;linkId=c02dd6c9eddb64e8c6ef98a4cb32d01f\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"amazonimg\" border=\"0\" src=\"\/\/ws-eu.amazon-adsystem.com\/widgets\/q?_encoding=UTF8&amp;MarketPlace=DE&amp;ASIN=3446412603&amp;ServiceVersion=20070822&amp;ID=AsinImage&amp;WS=1&amp;Format=_SL110_&amp;tag=fernblog09-21\"><\/a><a class=\"amazonlink\" target=\"_blank\" href=\"https:\/\/www.amazon.de\/gp\/product\/3446426396\/ref=as_li_tl?ie=UTF8&amp;camp=1638&amp;creative=6742&amp;creativeASIN=3446426396&amp;linkCode=as2&amp;tag=fernblog09-21&amp;linkId=c02dd6c9eddb64e8c6ef98a4cb32d01f\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"amazonimg\" border=\"0\" src=\"\/\/ws-eu.amazon-adsystem.com\/widgets\/q?_encoding=UTF8&amp;MarketPlace=DE&amp;ASIN=3446426396&amp;ServiceVersion=20070822&amp;ID=AsinImage&amp;WS=1&amp;Format=_SL110_&amp;tag=fernblog09-21\"><\/a><a class=\"amazonlink\" target=\"_blank\" href=\"https:\/\/www.amazon.de\/gp\/product\/3827418240\/ref=as_li_tl?ie=UTF8&amp;camp=1638&amp;creative=6742&amp;creativeASIN=3827418240&amp;linkCode=as2&amp;tag=fernblog09-21&amp;linkId=c02dd6c9eddb64e8c6ef98a4cb32d01f\" rel=\"noopener noreferrer\"><img decoding=\"async\" class=\"amazonimg\" border=\"0\" src=\"\/\/ws-eu.amazon-adsystem.com\/widgets\/q?_encoding=UTF8&amp;MarketPlace=DE&amp;ASIN=3827418240&amp;ServiceVersion=20070822&amp;ID=AsinImage&amp;WS=1&amp;Format=_SL110_&amp;tag=fernblog09-21\"><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Update: im Hinblick auf die Lernziele zu Kurseinheit 1, habe ich diesen Eintrag etwas \u00fcberarbeitet um ihn im neuen Beitrag verwenden zu k\u00f6nnen. Wichtig vorab: lasst euch nicht von den mathematischen Definitionen erschrecken. Sie werden nach der Einf\u00fchrung der formalen Definition noch einmal informell (und hoffentlich verst\u00e4ndlich) erl\u00e4utert. Auch wenn euch die Definitionen unn\u00f6tig erscheinen, &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/fernuni.digreb.net\/?p=468\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eTI: normale und allgemeine Registermaschinen (Update)\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-468","post","type-post","status-publish","format-standard","hentry","category-theoretische-informatik"],"_links":{"self":[{"href":"https:\/\/fernuni.digreb.net\/index.php?rest_route=\/wp\/v2\/posts\/468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fernuni.digreb.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fernuni.digreb.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fernuni.digreb.net\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/fernuni.digreb.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=468"}],"version-history":[{"count":53,"href":"https:\/\/fernuni.digreb.net\/index.php?rest_route=\/wp\/v2\/posts\/468\/revisions"}],"predecessor-version":[{"id":3210,"href":"https:\/\/fernuni.digreb.net\/index.php?rest_route=\/wp\/v2\/posts\/468\/revisions\/3210"}],"wp:attachment":[{"href":"https:\/\/fernuni.digreb.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fernuni.digreb.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fernuni.digreb.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}