Theoretische Inforatik Skript zur Vorlesung Lehrerweiterbildung WS 2006/07 Literatur: - Schöning, Uwe: Theoretische Inforatik kurzgefasst; BI Wissenschaftsverlag - Hopcroft, J.; Ullann, J.: Einführung in die Auroatentheorie, forale Sprachen und Koplexitätstheorie; Addison-Wesley 1990 - Wegener, I.: Theoretische Inforatik; Teubner 1993 - Wagner, K.: Theoretische Inforatik, Springer Gegenstand Gegenstand der theoretischen Inforatik ist es, über konkrete Einzelfragen hinaus, grundsätzliche Fragestellungen zu bearbeiten, wie z.b. Was ist das Geeinsae, das der großen Vielfalt von Coputern zu Grunde liegt? Von den konkreten Details uss dabei abstrahiert werden - es sind Modelle zu entwerfen, die dann untersucht werden können ( in ihrer Leistungskraft und in ihren Beziehungen zueinander ). Wie üssen ( oder können ) Modelle aussehen, die ohne Rücksicht auf technische Grenzen alles ausführen können, was überhaupt von eine Rechner ausführbar ist? Was ist überhaupt it eine Rechner ausführbar? Alles? D.h., sind alle Problee, die sich it Mitteln der Inforatik oder Matheatik forulieren lassen, lösbar? Wie kann an Algorithen hinsichtlich ihrer Qualität (z.b. Laufzeit, Speicherplatz) vergleichen, ohne sich dabei auf eine bestite Maschine zu beziehen? Gibt es öglicherweise Problee, die zwar i Prinzip lösbar sind, aber die - ganz gleich für welche Maschine - so viele Ressourcen erfordern, dass eine praktische Lösung unöglich ist? Kann an atheatische Beweise von eine Rechner führen lassen? Die Theoretische Inforatik verittelt hauptsächlich Einsichten. Trotzde sind viele Gebiete auch eng verbunden it praktischen Anwendungen ( etwa die Theorie der foralen Sprachen it de Copilerbau (lexikalische Analyse)). Die Theoretische Inforatik benutzt eine atheatisch exakte Darstellung und atheatische Beweisethoden. 1
I. Autoaten und forale Sprachen I.1. Endliche Autoaten it Ausgabe I.1.1. Grundlagen Autoat - Syste, das in der Lage ist, sein Verhalten ohne unittelbares Eingreifen des Menschen selbst zu steuern Verhalten des Autoaten - Menge der aufeinanderfolgenden ustände des Systes, deren Anzahl bestit ist durch die innere Struktur des Systes. Die Kounikation zwischen der Uwelt und de Autoaten erfolgt über die Einund Ausgabe von Sybolen. Die Beschreibung eines Autoaten erfordert die Beantwortung von: Welche Eingabe kann er aufnehen? Welche Ausgabe kann er ausgeben? Welche inneren ustände kann er annehen? Welchen ustand nit er an, wenn in eine bestiten ustand eine bestite Eingabe erfolgt? Welche Ausgabe acht er, wenn in eine bestiten ustand eine bestite Eingabe erfolgt? Beispiel: Mausefalle M ustandsenge = { z 1, z 2 } it z 1 : Falle gespannt z 2 : Falle nicht gespannt Menge der Eingabezeichen X = {, } Menge der Ausgabezeichen Y = { t, t } : Maus kot : Maus kot nicht t : Maus tot t : Maus nicht tot 2
Verhalten des Autoaten (Tabelle): X z 1 z 2, t z 1, t z 2 z 2, t z 2, t 1. eichen : Folgezustand 2. eichen : Ausgabezeichen ustandsgraph : z 1 t z 2 Erweiterung des Modells durch Berücksichtigung von Speck Erweiterung der ustandsenge (Autoat M ) = { z 1, z 2, z 3, z 4 } it z 1 : Speck nicht vorhanden, Falle gespannt z 2 : Speck nicht vorhanden, Falle nicht gespannt z 3 : Speck vorhanden, Falle gespannt z 4 : Speck vorhanden, Falle nicht gespannt Tabelle: X z 1 z 2, t z 1, t z 2 z 2, t z 2, t z 3 z 4, t z 3, t z 4 z 2, t z 4, t Graph: z 4 z 1 t z 2 t z 3 3
Definition: Ein Mealy - Autoat ist ein Fünftupel A = ( X, Y,, f, g ) it nichtleeren Mengen X, Y, und Abbildungen f: X g: X Y Bezeichnungen: X Eingabealphabet (Menge von Eingabezeichen) Y Ausgabealphabet (Menge von Ausgabezeichen) ustandsenge (Menge von ustandszeichen) f Überführungsfunktion, ustandsfunktion g Ergebnisfunktion, Ausgabefunktion Modell: x 4 Steuereinheit Lese- x 3 y 3 Schreibvorrichtung vorrichtung x 2 y 2 x 1 y 1 Eingabeband Ausgabeband Arbeitsweise: Anfangszustand z setzen Lesekopf auf 1. eichen der Eingabe setzen while Feld unter Lesekopf nicht leer do eichen x unter Lesekopf lesen auf Ausgabeband eichen y = g ( z, x ) schreiben Ausgabeband u 1 Feld weiterrücken ustand z := f ( z, x ) Eingabezustand u 1 Feld weiterrücken Darstellung in Tabellenfor: X = { x 1,..., x n } Y = { y 1,..., y } = { z 1,..., z k } 4
Überführungsfunktion Ausgabefunktion X x 1 x 2... x n X x 1 x 2... x n z 1 f(z 1,x 1 ) f(z 1,x 2 )... f(z 1,x n ) z 1 g(z 1,x 1 ) g(z 1,x 2 )... g(z 1,x n ) z 2 f(z 2,x 1 ) f(z 2,x 2 )... f(z 2,x n ) z 2 g(z 2,x 1 ) g(z 2,x 2 )... g(z 2,x n )........................ z k f(z k,x 1 ) f(z k,x 2 )... f(z k,x n ) z k g(z k,x 1 ) g(z k,x 2 )... g(z k,x n ) Beerkung: Oft werden die Tabellen für f und g zu einer einzigen zusaengefasst it den Eintragungen f ( z i, x j ) ; g ( z i, x j ) ( i = 1(1) k ; j = 1(1) n ) Darstellung ittels gerichteter Graphen: Definition: Das geordnete Paar G = (K, R) heißt gerichteter Graph, wenn K eine nichtleere Menge und R K K, d.h. R ist eine zweistellige Relation. K: Knotenenge, R: Kantenenge, für (k, k ) R heißt k Anfangsknoten und k Endknoten. De Mealy - Autoaten A = (X, Y,, f, g) wird der gerichtete Graph G A = (, R) it R = { (z, z ) : z, z es ex. x X : f(z, x) = z } zugeordnet. Dabei wird eine Kante (z, z ) bei f(z, x) = z it x und y = g(z, x) beschriftet. Dieser Graph heißt ustandsgraph von A. Beispiel: Es soll ein Mealy - Autoat entworfen werden, der ein Eingabewort u ein eichen versetzt reproduziert. Das Ausgabewort beginnt ier it #, das letzte eichen des Eingabewortes geht verloren. Dabei sei X = {0, 1}, also Y = {#, 0, 1} 5
z.b. Eingabe: 011011 Ausgabe: #01101 Konstruktionsprinzip: ustand z2: ustand z3: letztes eingeg. eichen 0 letztes eingeg. eichen 1 z 1 0 # Anfangszustand 1 # 0 0 0 1 1 0 1 1 z 2 z 3 Tabelle: 0 1 z 1 z 2, # z 3, # z 2 z 2, 0 z 3, 0 z 3 z 2, 1 z 3, 1 6
7