3. Mathematische Maschinen

Ähnliche Dokumente
Mathematische Maschinen

Alan Mathison Turing ( )

10. Der Äquivalenzsatz

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 3. TURINGMASCHINEN. Prof. Dr. Klaus Ambos-Spies. Sommersemester 2012

2 Turingmaschinen 6. Eine nd. k-band-turingmaschine M zur Erkennung einer m-stelligen Sprache L (Σ ) m ist ein 8-Tupel

Universelle Maschinen und universelle Funktionen

Die Prädikatenlogik erster Stufe: Syntax und Semantik

19. Nichtdeterministische Turingmaschinen und ihre Komplexität

3. Turingmaschinen FORMALISIERUNG VON ALGORITHMEN. Turingmaschinen Registermaschinen Rekursive Funktionen UNTERSCHEIDUNGSMERKMALE DER ANSÄTZE:

Automaten und Formale Sprachen SoSe 2013 in Trier

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

2. Algorithmen: Berechenbarkeit, Entscheidbarkeit und Aufzählbarkeit

Kapitel 1.4. Exkurs: Entscheidbarkeit und Komplexität. Mathematische Logik (WS 2012/3) K. 1.4: Entscheidbarkeit und Komplexität 1/10

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Fragen 1. Muss eine DTM ein Wort zu Ende gelesen haben, um es zu akzeptieren? a) Ja! b) Nein!

Endliche Automaten. Endliche Automaten J. Blömer 1/24

Automaten und Formale Sprachen SoSe 2007 in Trier. Henning Fernau Universität Trier

6. Varianten des Turingmaschinen-Konzeptes II: Varianten der Speicherstruktur

Endliche Automaten. Endliche Automaten J. Blömer 1/23

c) {abcde, abcfg, bcade, bcafg} d) {ade, afg, bcde, bcfg} c) {abcabc} d) {abcbc, abc, a} c) {aa, ab, ba, bb} d) {{aa}, {ab}, {ba}, {bb}}

GTI. Hannes Diener. 18. Juni. ENC B-0123,

5.2 Endliche Automaten

Reduktion. 2.1 Abstrakte Reduktion

Formale Sprachen und endliche Automaten

Kontextsensitive und Typ 0 Sprachen Slide 2. Die Turingmaschine

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Die mathematische Seite

Algorithmus. Was ist ein Algorithmus? Ibn Musa Al-Chwarismi persischer Mathematikers 9. Jahrhundert Buch: Regeln der Wiedereinsetzung und Reduktion.

Theoretische Grundlagen der Informatik. Vorlesung am 17. Januar INSTITUT FÜR THEORETISCHE INFORMATIK

Einführung in die Informatik Turing Machines

8. Der Äquivalenzsatz

Einführung in die Theoretische Informatik

Theoretische Informatik II

Informatik III - WS07/08

Kapitel 1.5 und 1.6. Ein adäquater Kalkül der Aussagenlogik

Informatik. Teil 1 Wintersemester 2011/2012. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

1.5 Turing-Berechenbarkeit

1.5 Turing-Berechenbarkeit

Theoretische Grundlagen der Informatik

1 Einführung. 2 Typ-0- und Typ-1-Sprachen. 3 Berechnungsmodelle. 4 Unentscheidbarkeit. 5 Unentscheidbare Probleme. 6 Komplexitätstheorie

Einführung in die Informatik

Wir suchen Antworten auf die folgenden Fragen: Was ist Berechenbarkeit? Wie kann man das intuitiv Berechenbare formal fassen?

Komplexitätstheorie WiSe 2011/12 in Trier. Henning Fernau Universität Trier

Einführung in die Informatik Turing Machines

Turing-Maschinen: Ein abstrakes Maschinenmodell

Klausur zur Vorlesung Einführung in die Theoretische Informatik

Informatik 1. Teil 1 - Wintersemester 2012/2013. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

Vorlesung Diskrete Strukturen Die natürlichen Zahlen

Kapitel 9: Lineare Gleichungssysteme

Grundlagen der theoretischen Informatik

3 Endliche Muster und Konfigurationen

Dezimaldarstellung ganzer Zahlen (Division mit Rest) 1 Division mit Rest in der Hochschule

Algorithmen mit konstantem Platzbedarf: Die Klasse REG

FORMALE SYSTEME. 8. Vorlesung: Minimale Automaten. TU Dresden, 6. November Markus Krötzsch Lehrstuhl Wissensbasierte Systeme

Abschnitt 3: Mathematische Grundlagen

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2017/2018

DisMod-Repetitorium Tag 4

5. Algorithmen. K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16

Abschnitt 3: Mathematische Grundlagen

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik

1 Eliminieren von ɛ-übergängen

Grundlagen der Theoretischen Informatik

Skript und Übungen Teil II

Kapitel 3: Reguläre Grammatiken und Endliche. Automaten

Ordinalzahlen. Sei (X, ) eine total geordnete Menge und a X. Dann

8. Rekursive und primitiv rekursive Funktionen

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

Klausur zur Vorlesung Grundbegriffe der Informatik 5. März 2014

EINFÜHRUNG IN DIE THEORETISCHE INFORMATIK 8. DER ÄQUIVALENZSATZ. Prof. Dr. Klaus Ambos-Spies. Sommersemester 2017

x x y x y Informatik II Schaltkreise Schaltkreise Schaltkreise Rainer Schrader 3. November 2008

13 Auswahlaxiom und Zornsches Lemma

Ogden s Lemma: Der Beweis (1/5)

Kapitel 1. Mengen und Abbildungen. 1.1 Mengen

kontextfreie Grammatiken Theoretische Informatik kontextfreie Grammatiken kontextfreie Grammatiken Rainer Schrader 14. Juli 2009 Gliederung

Deterministische Turing-Maschinen

8. Turingmaschinen und kontextsensitive Sprachen

Relationen und Funktionen

Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier

Berechenbarkeit. Script, Kapitel 2

Grundlagen der Theoretischen Informatik

Klausur: Berechenbarkeit und Komplexität (Niedermeier/Chen/Froese/Sorge, Sommersemester 2016)

Einführung in die Theoretische Informatik

Kapitel 2. Mathematische Grundlagen. Skript zur Vorlesung Einführung in die Programmierung

2. Klausur zur Vorlesung Theoretische Grundlagen der Informatik Wintersemester 2017/2018

Einführung (1/3) Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (1) Vorlesungen zur Komplexitätstheorie.

Kapitel 1.5. Ein adäquater Kalkül der Aussagenlogik. Teil 1: Kalküle und Beweisbarkeit und die Korrektheit des Shoenfield-Kalküls

2.5 Halteproblem und Unentscheidbarkeit

Seminarvortrag über den Satz von Nielsen-Schreier

Übersicht. 3.1 Datendarstellung durch Zeichenreihen. 3.2 Syntaxdefinitionen. 3.3 Algorithmen

Entscheidungsprobleme

Vorlesung Diskrete Strukturen Die natürlichen Zahlen

Formalismen für REG. Formale Grundlagen der Informatik 1 Kapitel 7 Kontextfreie Sprachen. Das Pumping Lemma. Abschlusseigenschaften

Theoretische Informatik I

Kürzeste-Wege-Algorithmen und Datenstrukturen

a b b a Vom DFA zur TM Formale Grundlagen der Informatik 1 Kapitel 9 Turing-Maschinen Der Lese-/Schreibkopf Bedeutung der TM

Dieser Foliensatz darf frei verwendet werden unter der Bedingung, dass diese Titelfolie nicht entfernt wird.

b) Eine nd. k-band-turingmaschine M zur Erkennung einer m-stelligen Sprache L (Σ ) m ist ein 8-Tupel

Transkript:

3. Mathematische Maschinen Bei den Anforderungen an Algorithmen im letzten Paragraphen haben wir bemerkt, dass ein Algorithmus im Prinzip von einer Maschine ausgeführt werden kann. Umgekehrt kann solch eine Maschine als Darstellung des zugehörigen Algorithmus aufgefasst werden, weshalb eine formale Beschreibung von Maschinen zur Ausführung von Rechenvorschriften zugleich eine Formalisierung des Algorithmus-Begriffs liefert. Um hierbei zu einer mathematischen Beschreibung zu gelangen, betrachtet man keine realen physikalischen Maschinen, sondern nur deren logische Struktur, was zum Begriff der mathematischen Maschine führt. Wenn die einen Algorithmus ausführende Maschine auch spezifisch von diesem abhängt, so erlaubt doch die gemeinsame Grundstruktur aller Algorithmen auch eine gemeinsame Struktur für die auszuführenden Maschinen anzugeben. Einzelne Maschinen werden sich dann nur in der Wahl der einzelnen Moduln unterscheiden. Ziel dieses Abschnittes ist es, solch ein abstraktes Konzept einer mathematischen Maschine zu entwickeln. Später werden wir dann konkrete Beispiele mathematischer Maschinen betrachten und damit Formalisierungen des Algorithmenbegriffs vorschlagen können. Bei der Konzeption der mathematischen Maschinen genügt es wie im letzten Abschnitt gesehen Berechnungsverfahren zu betrachten. Die Entwicklung des Konzepts wird in mehreren Schritten erfolgen: Zunächst beschreiben wir das Ablaufschema der Rechnung mit Hilfe von Umformungssystemen, die dann durch Hinzunahme von Ein-/Ausgabefunktionen zu Rechensystemen erweitert werden. Im deterministischen Fall beschreibt solch ein System eine partielle Funktion. Im nächsten Schritt führen wir hiervon unabhängig Basismaschinen B ein, die über die notwendigen Bestandteile zur Ausführung der einzelnen Schritte der Rechenvorschrift verfügen. Schließlich wird durch ein B-Programm die Basismaschine so gesteuert, dass die einzelnen Schritte in der gewünschten Reihenfolge ausgeführt werden. Die mathematische Maschine wird dann gerade aus Basismaschine und Programm bestehen. Zur Beschreibung der Arbeitsweise dieser Maschinen werden wir dann auf den am Beginn eingeführten Begriff des Rechensystems zurückgreifen. Wie wir uns im letzten Paragraphen überlegt haben läuft ein (sequentieller, deterministischer) Algorithmus schrittweise ab, wobei in jedem Schritt die aktuelle Ausführungssituation durch eine elementare Operation verändert wird. Bei einem Berechnungsverfahren wird zusätzlich durch die Eingabe eine gewisse Ausgangssituation geschaffen und im Fall der Terminierung eine Ausgabe aus der Endsituation extrahiert. Gehen wir davon aus, dass jede Situation durch eine mögliche Konfiguration der ausführenden Maschine gekennzeichnet ist, so ergibt sich folgender schematische

3 MATHEMATISCHE MASCHINEN 19 Ablauf: Eingabe Konfiguration 0 Konfiguration 1 Konfiguration n Ausgabe Ignorieren wir zunächst die Ein-/Ausgabefunktion, so können wir die Konfigurationsübergänge durch ein Umformungssystem beschreiben. 3.1 DEFINITION. Ein Umformungssystem U KON besteht aus einer Menge KON und einer 2-stelligen Relation KON KON auf KON. Die Elemente von KON heißen die Konfigurationen, die Einschritt- oder Übergangsrelation von U. Ist der Graph einer partiellen Funktion ϕ : KON KON, so ist U ein deterministisches Umformungssystem. Wir benutzen die Infixschreibweise für, d.h. schreiben c c statt c c und sagen c ist eine Nachfolgekonfiguration von c. Eine Konfiguration c heißt Stoppkonfiguration, falls es kein c KON mit c c gibt, d.h. c keine Nachfolgekonfiguration besitzt. U-Rechnungen sind Konfigurationenfolgen, die mit Hilfe der Einschrittrelation gebildet werden: Die unendliche Folge c n n 0 ist eine unendliche U-Rechnung, falls c n c n 1 für alle n 0 gilt. Entsprechend ist c 0 c n eine U-Rechnung der c m 1 für m n gilt, und wir nennen diese Rechnung terminal, Länge n, falls c m falls c n Stoppkonfiguration ist. (Insbesondere legen wir fest, dass jedes c KON eine U-Rechnung der Länge 0 ist.) Eine U-Rechnung ist maximal, falls sie terminal oder unendlich ist. Wir schreiben c n c : Es gibt eine mit c beginnende und mit c endende U-Rechnung der Länge n c c : Es gibt eine mit c beginnende und mit c endende U-Rechnung ( ist also gerade der reflexive und transitive Abschluss von.) In einem deterministischen Umformungssystem ist die Rechnung durch die Anfangskonfiguration eindeutig bestimmt: 3.2 LEMMA. Sei U KON ein deterministisches Umformungssystem und sei c KON. (i) Für jedes n 0 gibt es höchstens eine mit c beginnende U-Rechnung der Länge n. (ii) Es gibt genau eine maximale U-Rechnung, die mit c beginnt.

3 MATHEMATISCHE MASCHINEN 20 BEWEIS. (i) zeigt man durch Induktion nach n, wobei man verwendet, dass in einem deterministischen Umformungssystem jede Nichtstoppkonfiguration genau eine Nachfolgekonfiguration besitzt. (ii) lässt sich leicht aus (i) ableiten. Durch Hinzunahme eines Ein- und Ausgabemechanismus erweitern wir ein Umformungssystem zu einem Rechensystem: 3.3 DEFINITION. Ein Rechensystem R I O KON In Out besteht aus einem Umformungssystem U R KON zusammen mit Mengen I (Eingabemenge) und O (Ausgabemenge) und totalen Funktionen In : I KON (Eingabefunktion) und Out : KON O (Ausgabefunktion). R ist deterministisch, falls das zugehörige Umformungssystem U R deterministisch ist. Für x I nennen wir In x die Startkonfiguration von R bei Eingabe x. Ein Rechensystem R beschreibt eine Relation RES R I O, die, wenn R deterministisch ist, der Graph einer partiellen Funktion res R : I O ist: Nämlich x y RES R gilt dann, wenn es eine mit der Startkonfiguration In x von R bei Eingabe x beginnende terminale U R -Rechnung gibt, deren Stoppkonfiguration von Out auf y abgebildet wird. 3.4 DEFINITION. Für ein Rechensystem R wie oben ist die Resultatsrelation RES R I O definiert durch x y Res R c KON In x c & c Stoppkonfiguration & Out c y 3.5 LEMMA. Für ein deterministisches Rechensystem R ist RES R der Graph einer partiellen Funktion res R : I O, die die Resultatsfunktion von R genannt wird. BEWEIS. Da In und Out Funktionen sind, folgt aus Lemma 3.2, dass es zu jedem x I höchstens ein y O mit x y! RES R gibt. Für die Definition abstrakter Maschinen fassen wir zunächst die Funktionseinheiten zusammen, über die eine Rechenmaschine verfügen muss: Die Maschine benötigt einen Speicher zum Ablegen von (Zwischen-) Ergebnissen. Der Zugriff auf den Speicher muss ermöglichen, die Daten dort zu verändern und zu lesen. Modellieren wir den Speicher abstrakt als Menge S aller möglichen Speicherbelegungen, so ist eine Speicheroperation (oder -transformation) eine totale Funktion f : S S. Eine Maschine wird dann über einen endlichen Satz OPER von solchen Transformationen verfügen. Das Lesen aus dem Speicher kann mit Hilfe von Tests erfolgen, formal von Abbildungen t : S Σ 2. (Hierbei bezeichnet t s 1 den positiven, t s 0 den negativen Ausgang des Tests.) Auch hier steht der Maschine wiederum eine endliche Menge TEST solcher Tests zur Verfügung. Im Speicher spielt sich die Rechnung der Maschine ab. Als Schnittstelle zur Außenwelt muss man also noch eine Ein- und Ausgabeeinheit hinzufügen, die die Eingabe in den Speicher einliest bzw. aus der terminalen Speicherbelegung die Ausgabe extrahiert. 3.6 DEFINITION. Eine Basismaschine B I O S in out OPER TEST besteht aus Mengen I (Eingabemenge), O (Ausgabemenge), S (Speicher, d.h. Menge der Speicherbelegungen), totalen Funktionen in : I S (Eingabefunktion) und out : S O (Ausgabefunktion), sowie endlichen Mengen OPER f 1 "# f m (Menge der (elementaren)

3 MATHEMATISCHE MASCHINEN 21 Operationen) und TEST $ t 1 % t n (Menge der (elementaren) Tests), wobei jede Operation eine totale Funktion f i : S S und jeder Test eine totale Funktion t j : S Σ 2 ist. Durch eine Basismaschine B werden die möglichen Einzelschritte der Rechnung festgelegt. Dass diese in der richtigen Reihenfolge ausgeführt werden, erfordert die Steuerung von B durch eine geeignete Kontrolleinheit. Hier realisieren wir diese mit Hilfe von Programmen. Ein Programm wird dabei eine Folge von Anweisungen (Instruktionen) sein. Jede Anweisung legt fest, welcher Speicherbefehl (d.h. Operation oder Test) als Nächstes auszuführen und welche Anweisung danach auszuführen ist. Letztere wird bei Tests vom Ausgang derselben abhängen. Zur Kennzeichnung von Anweisungen versieht man diese mit Adressen: 3.7 DEFINITION. Eine B-Instruktion I ist entweder ein Tripel I i f j (Operationsinstruktion) oder Quadrupel I & i t j k (Testinstruktion), wobei i j k (', f OPER und t TEST. Die 1. Komponente i heißt Adresse von I, j bzw. j k sind die Nachfolgeadresse bzw. möglichen Nachfolgeadressen von I. Statt Adressen sprechen wir auch von (Programm-)Zuständen. Im Zustand i kann die Instruktion I mit Adresse i ausgeführt werden. Handelt es sich dabei um die Operationsinstruktion i f j, wird f im Speicher ausgeführt und der neue Zustand j angenommen. Bei einer Testinstruktion i t j k wird der Test t durchgeführt und bei Ausgang 0 der Zustand j, bei Ausgang 1 der Zustand k angenommen. Damit die nächst auszuführende Anweisung eindeutig bestimmt ist, müssen verschiedene Anweisungen verschiedene Adressen haben. 3.8 DEFINITION. Ein (deterministisches) B-Programm P I i : i ) n ist eine endliche Folge von B-Instruktionen I i, wobei verschiedene Instruktionen verschiedene Adressen haben. (Wenn nicht anders festgelegt, ist stets i die Adresse von I i.) Eine beliebige endliche Folge von B-Instruktionen heißt nichtdeterministisches B-Programm. Damit die Abwicklung eines Programms eindeutig festgelegt ist, muss man bestimmen, welche Instruktion als erste auszuführen ist. Diese Startinstruktion soll hier immer die erste Instruktion I 0 sein. Die Ausführung des Programms stoppt, wenn ein Zustand erreicht wird, der nicht als Adresse einer Instruktion in P vorkommt. 3.9 DEFINITION. Ein Zustand eines B-Programmes P ist die Adresse, die Nachfolgeadresse oder eine mögliche Nachfolgeadresse einer Instruktion in P. Z P ist die Menge aller Zustände von P. Die Adresse von I 0 ist der Startzustand von P. Ein Zustand von P, der nicht als Adresse einer Instruktion von P vorkommt, heißt Stoppzustand von P. Den Ablauf eines Programms P I i : i ) n kann man durch ein Flussdiagramm (oder Syntaxdiagramm) veranschaulichen: Dieses ist ein markierter gerichteter Graph, dessen Knoten mit den Hauptteilen der Instruktionen markiert sind. Dabei werden Operationen üblicherweise in Rechtecken, Tests in Rauten geschrieben. Die ausgehenden Kanten führen zu den Knoten, die den durch die (möglichen) Nachfolgeadressen bezeichneten Instruktionen entsprechen, wobei die Ausgangskanten eines Tests entsprechend mit 0 und 1 markiert sind. Ist die Nachfolgeadresse ein Stoppzustand, so führt die Kante zu einem zusätzlichen Stoppknoten (Kreis). Entsprechend führt eine Kante von einem Startknoten zum Knoten der Instruktion I 0. (Siehe Beispiel 3.15 unten.) Wir können nun mathematische Maschinen definieren:

3 MATHEMATISCHE MASCHINEN 22 3.10 DEFINITION. Eine mathematische Maschine M * B P ist eine Basismaschine B zusammen mit einem B-Programm P. Die Maschine M ist (nicht-)deterministisch, wenn P (nicht-)deterministisch ist. Wenn nicht anders festgelegt, sind im folgenden Programme und Maschinen stets deterministisch. Zur Beschreibung der Arbeitsweise einer mathematischen Maschine ordnen wir dieser ein Rechensystem zu. Den einzelnen Schritten der Maschine entsprechen dabei die Übergänge des zugehörigen Umformungssystems. 3.11 DEFINITION. Sei M + B P eine (möglicherweise nichtdeterministische) mathematische Maschine, wobei B, I O S in out OPER TEST und P * I i : i ) n (und 0 die Adresse von I 0 sei). Das zu M gehörende Rechensystem R M ist wobei - KON M Z P S R M I O KON M In Out - In : I KON M mit In x & 0 in x - - Out : KON M O mit Out i s out s - M KON M KON M mit / i s. 0 1 j f s - falls i f j 2 P M j s falls i t j k 2 P &t s 0 k s falls i t j k 2 P &t s 1 Mit dieser Definition lassen sich die für Umformungs- und Rechensysteme entwickelten Begriffe auf mathematische Maschinen übertragen. Insbesondere können wir von M -Rechnungen und deren Länge sprechen. Unter einer M-Rechnung bei Eingabe x verstehen wir eine maximale (d.h. unendliche oder terminale) U M KON M M - Rechnung, die mit In x beginnt. Im deterministischen Fall ist diese eindeutig bestimmt (s.u.). Ist die M-Rechnung bei Eingabe x endlich, so sagen wir, dass M bei Eingabe x terminiert oder konvergiert (andernfalls divergiert M). Die Rechenzeit time M x von M bei Eingabe x ist die Länge der M-Rechnung bei Eingabe x. M ist total, wenn M bei jeder Eingabe terminiert. 3.12 LEMMA. Das zu einer deterministischen mathematischen Maschine M * B P gehörende Rechensystem R M ist deterministisch. BEWEIS. Da es zu jedem Zustand i höchstens eine Instruktion in P mit Adresse i gibt, ist M deterministisch. Nach Lemma 3.5 berechnet also jede mathematische Maschine eine partielle Funktion: 3.13 DEFINITION. Sei M eine mathematische Maschine wie oben. Die von M berechnete partielle Funktion ϕ M : I O ist die Resultatsfunktion res R3 M4 des zugehörigen Rechensystems R M. Entsprechend heißt für nichtdeterministisches M R M RES R3 M4 I O die von M berechnete Relation. M

3 MATHEMATISCHE MASCHINEN 23 Wir können diese Definition erweitern und Berechenbarkeit, Entscheidbarkeit und Aufzählbarkeit relativ zu einer Basismaschine wie folgt definieren. 3.14 DEFINITION. Eine partielle bzw. totale Funktion ϕ : I O heißt partiell bzw. (total) B-berechenbar, falls es ein B-Programm P gibt, sodass ϕ ϕ3 B5 P4 die von B P berechnete Funktion ist. Eine Teilmenge A I heißt B-entscheidbar, falls die charakteristische Funktion c A von A B-berechenbar ist und A heißt B-aufzählbar, falls die partielle charakteristische Funktion χ A von A partiell B-berechenbar ist. Hier erfolgt die Rückführung von B-Entscheidbarkeit und B-Aufzählbarkeit auf die (partielle) B-Berechenbarkeit in Entsprechung zu Satz 2.10 und Satz 2.12. Mit F B und F Tot B bezeichnen wir die Klasse der partiell B-berechenbaren bzw. total B-berechenbaren Funktionen. Wir erweitern Definition 3.14 sinngemäß zu Familien 67 7 B i von Basis-Maschinen. In der Regel werden hierbei gleichartige Basismaschinen zusammengefasst. Z.B. sind die Eingaben einer Basismaschine festgelegt, sodass alle B-berechenbaren Funktionen dieselbe Stelligkeit haben. Variable Stelligkeit erfordert also eine Familie von Basismaschinen. Wir sagen, dass zwei Maschinen M und M äquivalent sind, wenn sie dieselbe partielle Funktion berechnen. Entsprechend sind zwei Basismaschinen B und B äquivalent, wenn F B F B gilt. Wir erläutern nun die obigen Definitionen anhand von einigen Beispielen: 3.15 BEISPIEL. Wir geben eine mathematische Maschine M & B P zur Ausführung der Addition bzgl. der Unärdarstellung, d.h. zur Konkatenation zweier Unärwörter an. Hierzu speichern wir Paare von Unärwörtern und erlauben bei nichtleerer 1. Komponente diese um eine 1 zu kürzen und diese an die 2. Komponente anzuhängen. Iteration dieser Operation erlaubt das Paar v w in λ vw zu überführen. Weiter können wir testen, ob die erste Komponente leer ist (und wir das Verfahren abbrechen können). Die gerade aufgeführten Anforderungen führen zu der Basismaschine B & I O S in out OPER TEST, wobei I S Σ1 Σ1 O Σ1 in v w v w, out v w w, OPER f mit f v1 w + v w1 und f λ w $ λ w sowie TEST, t mit t v1 w 0 und t λ w 1. Das B-Programm P zur Berechnung der Konkatenation besteht dann aus folgenden beiden Instruktionen: P 78 0 t 1 2 9 1 f 0. Bei Eingabe 111 11 werden folgende Konfigurationen durchlaufen: 0 111 11 : M 1 111 11 M 0 11 111 M 1 11 111 M 0 1 1111 M 1 1 1111 M 0 λ 11111 M 2 λ 11111 Das Syntaxdiagramm für P hat die Gestalt

A A >? A A A A? 3 MATHEMATISCHE MASCHINEN 24 Start 0? x λ? A A 1 x ;<; y =<= Stop wobei x y die beiden Komponenten der aktuellen Speicherbelegung sind und x ;B; und y =C= das De- bzw. Inkrementieren der entsprechenden Komponenten bezeichnen. 3.16 BEISPIEL. Alternativ kann eine Maschine zur Berechnung von D : Σ1 Σ1 Σ1 angegeben werden, die die Konkatenation in einem Schritt berechnet. In der formalen Definition der Basismaschine ändern sich dann OPER und TEST wie folgt: OPER g, wobei g v w $ λ vw und TEST Programm. /0. P *8 0 g 1 ist hier das gewünschte 3.17 BEISPIEL. Sei f : I O eine beliebige totale Funktion. Eine Maschine M B P, die f berechnet, erhält man durch B * I O S in out OPER TEST wobei S I in x x, out x f x, OPER id mit id x x und TEST /0 und P E 0 id 1. Die Maschine M B P mit B & I OFGIH S in out OPER TEST, wobei S I J O FKIH, in x * x -H, out x y y, OPER & g mit g x y x f x 9 und TEST /0 und mit P E 0 g 1 berechnet ebenfalls die Funktion f. Beispiel 3.17 zeigt, dass es mathematische Maschinen gibt, die (im intuitiven Sinne) nichtberechenbare Funktionen berechnen. Nicht jede mathematische Maschine beschreibt also einen Algorithmus. Damit mathematische Maschinen tatsächlich Algorithmen beschreiben, müssen ihre Komponenten effektiv sein. (Für nichtberechenbares f wird dies im obigen Beispiel von der Ausgabefunktion out von M bzw. der Operation g von M verletzt.) In der Tat sollten die Einzelschritte in Algorithmen nicht nur effektiv, sondern sehr einfach, nämlich lokal sein. Das Additionsverfahren in Beispiel 3.15 wird dem gerecht: Fasst man hier eine Speicherbelegung v w als Wort über dem Alphabet 1 L 2 L auf, so erfordert die Ausführung der Operation nur das lokale Verschieben des Kommas um eine Stelle nach links ( v1 w geht über in v 1w ).

3 MATHEMATISCHE MASCHINEN 25 Die Operation in 3.16 ist ebenfalls effektiv, für die gerade betrachtete Speicherdarstellung aber nicht lokal, wenn man g v w λ vw wiederum durch Verschieben des Kommas nach links realisiert. Hier muss das Komma um M v M Buchstaben verschoben werden, der Aufwand zur Ausführung von g hängt also von der aktuellen Länge der ersten Komponente ab. Hier wird man daher entweder eine andere lokale Realisierung von g verlangen oder die Maschine verfeinern, indem man die Operation g durch eine Schrittfolge aus lokalen elementaren Verschiebeoperationen ersetzt, was im Wesentlichen zur Maschine aus Beispiel 3.15 führt. Die Beobachtung, dass sich jede effektive Operation derart zu einer Folge elementarer Zeichenmanipulationen reduzieren lässt, liegt unserer ersten Formalisierung des Algorithmenbegriffs zugrunde, die wir im nächsten Abschnitt betrachten werden. 1 1 Der Speicherinhalt einer Maschine, die einen Algorithmus beschreibt, ist zu jedem Zeitpunkt endlich, kann also durch ein Wort beschrieben werden. Eine lokale Operation entspricht dann der Ersetzung eines bestimmten Teilwortes an einer bestimmten Stelle. Umformungssysteme, die auf solchen Termersetzungen basieren, werden im Kapitel über Formale Sprachen (s. Definition 21.1) eingeführt und näher untersucht werden.