Repetitorium zur Informatik IV
|
|
|
- Thilo Dieter
- vor 10 Jahren
- Abrufe
Transkript
1 Repetitorium zur Informatik IV Christoph Kreitz September 1993 Zusammenfassung Diese Wiederholung geht nicht nach didaktischen Gesichtspunkten vor sondern faßt systematisch in Stichworten die wichtigsten Themen der Vorlesung und Ergebnisse der Übungen zur Informatik IV zusammen. Einzelne Teilthemen greifen auf Vorkenntnisse zurück, die erst zu einem späteren Zeitpunkt wiederholt werden. Das Repetitorium ist in 2 Phasen gegliedert. Vormittags wollen wir den Stoff der Informatik IV aufarbeiten, zusammenfassen und die Gelegenheit geben, Fragen von allgemeinerem Interesse im Plenum zu klären. Dafür habe ich jeweils 3-1/2 Stunden reserviert. Der Nachmittag soll dazu dienen, daß Sie versuchen dieses Wissen umzusetzen, indem Sie selbstständig ggf. in kleineren Gruppen Aufgaben bearbeiten, die sich in etwa auf Klausurniveau bewegen. Es stehen Tutoren zur Verfügung, denen Sie Fragen stellen können, wenn Sie nicht weiterkommen. Sinn ist aber nicht, noch einmal neuen Stoff zu sammeln oder vorzuführen. Die Tutoren werden sich daher sehr stark zurückhalten und Lösungen sind nur skizziert. Wir haben hierfür die Räume 11/9, 11/10 und 11/11 jeweils von reserviert. Am Freitag fällt der Raum 11/9 weg und wir haben dafür 11/100. Unsere Themen richten sich nach dem, was ich für besonders relevant halte. Manche Teilthemen der Vorlesung werden bewußt sehr kurz gehalten oder ganz weggelassen. Montag: Berechenbarkeitsmodelle, Turingmaschinen, etwas zu anderen Maschinenmodellen. Dienstag: primitiv- und µ-rekursive Funktionen, etwas zu Logik und arithmetischer Räpräsentierbarkeit Mittwoch: Entscheidbarkeit, Aufzählbarkeit und unlösbare Probleme Donnerstag: NP-Vollständigkeit und etwas zu den Randthemen Freitag: Automaten und formale Sprachen
2 2 Inhaltsverzeichnis 1 Mathematische Standardnotationen und Begriffe Worte über einem Alphabet Mengen und Funktionen Codierungen und Numerierungen Berechenbarkeit Berechenbarkeitsmodelle und Church sche These Turingmaschinen Programmiertechniken für Turingmaschinen Die Universelle Turingmaschine Andere Maschinenmodelle Die µ-rekursiven Funktionen Repräsentierbarkeit in der Theorie der Arithmetik Entscheidbarkeit und Aufzählbarkeit Definitionen und wichtige Eigenschaften Unlösbare Probleme Einige wichtige Beispiele NP-Vollständigkeit Wichtige Probleme Polynomielle Algorithmen Nichtdeterministisch-polynomielle Algorithmen Nachweise der NP-Vollständigkeit Ergänzende Themen zur NP -Vollständigkeit Formale Sprachen Grammatiken Typ-3 Sprachen, endliche Automaten und reguläre Ausdrücke Kontextfreie Sprachen
3 Informationen zur Veranstaltung Informatik IV Prof. W. Bibel / Dr. Chr. Kreitz Technische Hochschule Darmstadt Sommersemester Mathematische Standardnotationen und Begriffe Als Menge der natürlichen Zahlen haben wir die Menge IN = {0, 1, 2,...} bezeichnet. 1.1 Worte über einem Alphabet Alphabet Σ: Menge von Symbolen, z.b. Σ = {0, 1}, Σ = {0,..., 9}, Σ = {A,..., Z, a,..., z,,?,!,...} Σ : Worte über dem Alphabet Σ: Menge der endlichen Zeichenketten mit Symbolen aus Σ. Σ := n=0 Σ n, wobei Σ 0 = {ɛ}, Σ n+1 = {a w a Σ, w Σ n }. (oder Σ n := {1..n} Σ) ɛ : Das leere Wort (ohne jedes Symbol) Σ + : Menge der nichtleeren Worte über Σ: Σ {ɛ} x y : Konkatenation (Aneinanderhängung) der Worte x und y. x : Länge des Wortes x (Anzahl der Symbole): x ist das eindeutige n mit x Σ n. Die kanonische oder lexikographische Ordnung auf den Worten über einem Alphabet Σ ist wie folgt definiert: Man ordnet die Worte nach Länge, bei gleicher Länge gilt die Reihenfolge wie im Lexikon. Für Σ = {0, 1} heißt das ɛ < 0 < 1 < 00 < 01 < 10 < 11 < 000 < 001 < 010 <... In dieser kanonischen Ordnung hat jedes Wort w Σ eine eindeutig bestimmte Position. Wir schreiben w j um das j-te Wort in dieser Ordnung zu bezeichnen. 1.2 Mengen und Funktionen Der Begriff der Menge wird als elementar vorausgesetzt. Im Rahmen dieser Vorlesung wird eine Menge von Worten (also eine Teilmenge von Σ z.b. die Menge der PASCAL Programme) auch als Sprache angesehen. Typische Bezeichner sind L (language) und S (set). Eine Funktion f : S S ist eine Abbildung zwischen den zwei Grundmengen S und S, die nicht unbedingt auf allen Elementen von S definiert ist. Meist ist S = S = Σ oder S = S = IN. Der domain von f ist die Menge aller Argumente, auf denen f definiert ist: domain(f)= {x S f(x) definiert}. f ist total, wenn f überall definiert ist (domain(f)= S). Ansonsten heißt f partiell. Der range von f ist die Menge Funktionswerte von f: range(f)= {y S x S. f(x) = y}. f ist injektiv, wenn verschiedene Argumente auch verschiedene Werte liefern (x y f(x) f(y)). f ist surjektiv, wenn range(f)= S. f ist bijektiv, wenn f injektiv und surjektiv ist. Für eine injektive Funktion f : S S ist die Umkehrfunktion f 1 : S S erklärt durch f 1 (y) ist das eindeutige x S mit f(x) = y. Für X S ist f 1 (X) = {x S f(x) X} das Urbild von X unter f. (Achtung: keine Funktion) Die charakteristische Funktion χ S einer Menge S Σ ist definiert durch χ S (w) = { 1 wenn w S 0 sonst { 1 Die partielle charakteristische Funktion χ von S Σ ist definiert durch χ (w) = S S undef iniert Ähnlich gibt es charakteristische Funktionen für Teilmengen von IN. wenn w S sonst
4 Vorlesung Informatik IV 2 Informationen 1.3 Codierungen und Numerierungen Eine Codierung einer Menge S durch Σ ist eine surjektive Abbildung f cod : Σ S. Jede natürliche Zahl läßt sich durch ein Worteüber einem beliebigen Alphabet Σ codieren. Üblich ist die (partielle) Binärcodierung von natürlichen Zahlen durch Worte über Σ = {0, 1} ohne führende Nullen. 1 Eine Numerierung einer Menge S ist eine surjektive Abbildung ν : IN S. Die Standardnumerierung der Wortmenge Σ ist die Abbildung, die jeder Zahl j das Wort w j in der kanonischen Ordnung zuweist. Die Standardnumerierung der Menge IN 2 von Paaren natürlicher Zahlen ist die Umkehrfunktion der bijektiven Standard-Tupelfunktion : IN 2 IN mit x, y := (x + y)(x + y + 1)/2 + y (vgl. Ü6). { n/2 Die Standardnumerierung der ganzen Zahlen Z ist definiert durch ν Z (n) = (n + 1)/2 falls n gerade falls n ungerade Eine weitere oft benutze Numerierung ist die Numerierung der Turingprogramme, die jeder Zahl i das i-te Wort M j in der kanonischen Ordnung von {0, 1} zuweist, welches eine Gödelnummer darstellt. Codierungen und Numerierungen müssen nicht injektiv sein. Jedoch sind bijektive Codierungen und Numerierungen gut geeignet um Funktionen auf beliebigen Grundmengen durch Funktionen über Worten bzw. natürlichen Zahlen zu simulieren (und entsprechend die Berechenbarkeitsbegriffe zu übertragen). So lässt sich z.b. eine Funktion f : S S durch f : IN IN mit ν(f (n)) = f(ν(n) ) simulieren. 1 Die Codierung ist die Umkehrfunktion der Funktion bin, die jeder natürlichen Zahl ihre Binärdarstellung ohne führende Nullen zuweist.
5 Vorlesung Informatik IV 3 Informationen 2 Berechenbarkeit 2.1 Berechenbarkeitsmodelle und Church sche These In der theoretischen Informatik kennt man eine Reihe verschiedener Konzepte um den Begriff der Berechenbarkeit mathematisch zu formalisieren. Jedes Modell hat einen anschaulichen Hintergrund, wird aber davon losgelöst als mathematisches Objekt (xx-tupel) formal definiert. Die wichtigsten Modelle sind die folgenden: Maschinenorientierte Modelle Grundlage von maschinennahen, d.h. imperativen Programmiersprachen RAM ein Modell der heutigen Computer. Es gibt Register zum Lesen und Schreiben, in denen Zahlen stehen. Die Befehle entsprechen einem elementaren Assembler. Es gibt keine Begrenzung auf die Größe der Registerinhalte oder die Anzahl der Register. Turingmaschine (TM oder DTM) ein mathematische Maschine, welche die einfachste Form der Berechnung mit Papier und Bleistift beschreibt. Pro Blatt kann ein Symbol verarbeitet werden. Man kann lesen, schreiben, im Papierstapel blättern und an den Enden des Stapels ggf. neue Blätter dazunehmen. Das Programm legt fest, was in einem Zustand zu tun ist, wenn ein bestimmtes Zeichen gelesen wurde. Eine andere Anschauung ein unbegrenztes Bandes, auf dem sich ein Schreib-/Lesekopf bewegen kann. Nichtdeterministische Turingmaschine (NTM) arbeitet wie die gewöhnliche Turingmaschine. Das Programm legt nicht eindeutig fest, was zu tun ist, sondern erlaubt manchmal mehrere Alternativen. Abakus Erweiterung des mechanischen Abakus auf ein Modell mit beliebig vielen Stangen auf denen beliebig viele Kugeln aufgeschoben werden können. Es gibt nur zwei Befehle: eine Kugel hinzunehmen oder eine wegnehmen (wenn noch eine vorhanden ist). Mathematisch orientierte Modelle Grundlage funktionaler bzw. logischer Programmierpsrachen µ-rekursive Funktionen ein mathematischer Funktionenkalkül. Gewisse intuitiv-berechenbare Grundfunktionen werde vorgegeben, weitere Funktionen werden aus bekannten durch Anwendung dreier elementarer Funktionale erzeugt. Der Kalkül benötigt keine Funktionsargumente um Funktionen zu beschreiben, da jedem Symbol eine feste Interpretation als Funktion bzw. Funktional zugeordnet ist. 2 Bei Eingabe von Argumenten wird gerechnet durch schrittweises Einsetzen der Interpretation der Symbole. λ-kalkül ein elementarer mathematischer Kalkül der symbolischen Berechnung: Es gibt nur zwei Operationen: Abstraktion (Definition einer Funktion durch Argument und Funktionskörper) und Applikation (Anwenden einer Funktion auf ein Argument). Gerechnet wird durch Reduktion der Anwendung von Abstraktionen auf Argumente (Einsetzen in den Funktionskörper). Markov-Algorithmen ein Grammatik-orientierter Mechanismus basierend auf Produktionsregeln. Im Gegensatz zu Grammatiken gibt es eine feste Strategie, welche Produktion wann anzuwenden ist. Verarbeitet werden Eingabeworte, statt nur mit einem Startsymbol zu beginnen. Arithmetische Repräsentierbarkeit Spezifikation von Funktionen in einem arithmetisch-logischen Kalkül Q. Die Symbole der Sprache haben keine feste Bedeutung, aber es gibt Axiome, welche ihre Interpretationen einschränken. Eine Funktion ist repräsentierbar, wenn es eine Formel gibt, welche das Ein-/Ausgabeverhalten eindeutig spezifiziert. Eindeutigkeit muß logisch aus den Axiomen ableitbar sein. Mit diesen Modellen haben wir definiert Berechenbarkeit von Funktionen auf Worten (f : Σ Σ ) und Zahlen (f : IN IN). Je nach Modell heißen solche Funktione Turing-berechenbar, RAM-berechenbar, Abakus-berechenbar, µ-rekursiv,.... Wegen der Äquivalenz dieser Begriffe (Satz 2.1) heißt eine berechenbare Funktion auch einfach nur rekursive Funktion. Eine rekursive Funktion, die überall definiert ist (also total ist) heißt auch total-rekursiv. Eine rekursive Funktion, die nicht überall definiert ist heißt auch partiell-rekursiv. rekursiv ist im Rahmen der Vorlesung der Oberbegriff für beides. (Achtung: in der Literatur ist zuweilen partiell-rekursiv der Oberbegriff) 2 Man vergleiche dies mit dem Ableitungsoperator d/dx in der Analysis
6 Vorlesung Informatik IV 4 Informationen Berechenbarkeit von Mengen von Worten (L Σ, auch Sprache genannt) bzw. Mengen von Zahlen (L IN). Dabei bezieht sich die Berechenbarkeit auf das Problem, zu entscheiden, ob ein Objekt zu der Menge gehört oder nicht, d.h. eigentlich auf die Berechenbarkeit der charakteristischen Funktion der Menge. Gibt es einen Algorithmus, der auf diese Frage immer korrekt mit ja oder nein (oder mit 0 und 1 o.ä.) antwortet, so heißt die Menge entscheidbar (oder ebenfalls rekursiv). Da dieser Begriff relativ stark ist, definiert man ein schwächeres zweites Konzept. Eine Menge heißt semientscheidbar (oder rekursiv-aufzählbar), wenn es einen Algorithmus gibt, der immer hält und ja antwortet, wenn die Eingabe zur gesuchten Menge gehört, und ansonsten entweder nicht hält oder nein antwortet. Über Codierungen bzw. Numerierungen kann der Begriff der Berechenbarkeit auf Funktionen bzw. Mengen über anderen Grundmengen wie den ganzen Zahlen oder Tupel fortgesetzt werden. Es zeigt sich, daß die durch die verschiedenen Modelle definierten Berechenbarkeitsbegriffe alle äquivalent sind. Theorem 2.1 Die Klassen der Turing-berechenbaren, Abakus-berechenbaren, RAM-berechenbaren, µ-rekursiven, und arithmetisch räpräsentierbaren Funktionen sind identisch. Die grundsätzliche Beweisidee ist jeweils eine Simulation des jeweiligen Berechenbarkeitsbegriffes durch einen anderen. Wir haben gezeigt RAM-berechenbar Turing-berechenbar. Einzelschrittsimulation einer beliebigen RAM durch eine TM: Auf einem Band wird gearbeitet und auf einem zweiten codieren wir den derzeitigen Zustand der RAM (welche Register sind in Benutzung und was sind ihre Inhalte). NTM-berechenbar Turing-berechenbar. Simulation aller möglichen Rechenwege einer NTM durch eine TM: Die Rechenzeit wächst exponentiell. Turing-berechenbar RAM-berechenbar. Einzelschrittsimulation einer beliebigen halbseitigen TM durch eine RAM: Jede Bandzelle wird durch ein Register dargestellt. Zusätzlich verwalten 3 Arbeitsregister die Kopfposition, den Zustand und das aktuell gelesene Symbol. Abakus-berechenbar RAM-berechenbar. Einzelschrittsimulation eines beliebigen Abakusprogramms durch eine RAM: Die Abakusregister sind RAM register, Befehle eines Abakus sind praktisch auch RAM-Befehle. µ-rekursiv Abakus-berechenbar. Angabe von Abakusprogrammen für die Grundfunktionen und für Komposition, Primitive Rekursion und Minimalisierung Turing-berechenbar µ-rekursiv. Beschreibung der Einzelschrittfunktion für Konfigurationsübergänge einer beliebigen TM durch eine komplexe primitiv-rekursive Funktion. Einsatz der Minimalisierung zur Bestimmung der Anzahl der Iterationen dieser Funktion bis zur Terminierung. µ-rekursiv arithmetisch räpräsentierbar. Darstellung von Grundfunktionen und Operatoren durch logische Formeln. Elimination der Primitiven Rekursion durch das Zwischenkonzept min-rekursiv Der Nachweis, daß alle wichtigen Berechenbarkeitsbegriffe äquivalent sind, führte zu der Vermutung, daß es keinen weitergehenden Berechenbarkeitsbegriff mehr geben kann. Church sche These: Die Klasse der rekursiven Funktionen stimmt mit der Klasse der intuitiv berechenbaren Funktionen überein. Dies ist natürlich keine Aussage, die man (im Gegensatz zur Äquivalenz der Berechenbarkeitsbegriffe) beweisen, sondern bestenfalls nur widerlegen kann. Neben ihrer eigentlichen Bedeutung ( egal welches Modell man versucht aufzustellen man wird über die rekursiven Funktionen nicht hinauskommen ) birgt diese These auch eine wichtige Arbeitshypothese in sich, welche das Führen von Beweisen in der theoretischen Informatik erheblich erleichtert. Die These was intuitiv berechenbar ist, ist auch Turing-berechenbar, µ-rekursiv,... entbindet einen von der Verpflichtung, Beweise über die Existenz gewisser Turingprogramme bis ins letzte Detail führen zu müssen. Dies erlaubt Beweise der Art Es gibt eine TM, die folgendes tut..., da man sicher ist, die entsprechenden Details ggf. nachreichen zu können (vorausgesetzt, man ist in der Lage, eine intuitive Berechnungsmethode anzugeben). In der Komplexitätstheorie ist diese Vorgehensweise unerläßlich, da sonst die Beweise unüberschaubar werden.
7 Vorlesung Informatik IV 5 Informationen 2.2 Turingmaschinen Für die formale Ausformulierung von Turingmaschinen gibt es mindestens 10 verschiedene Varianten. Unterschiede liegen in Ein/Ausgabekonventionen, Stop-Bedingungen, der Art der Befehle usw. In der Vorlesung haben sie mindestens 2 kennengelernt und das Buch von Wegener ist in sich selbst nicht sehr einheitlich, da die meisten Informationen im Fließtext zu finden sind und er immer wieder auf verschiedene Varianten zurückgreift, gerade was Stop-Bedingungen angeht. Da hierdurch eine Menge Unsicherheiten entstanden sind, will ich hier eine Variante mathematisch präzise ausformulieren in etwa im Stil des letzten Drittels der Vorlesung. Die Definition, die ich gebe, ist so im Wegener nicht zu finden, formuliert aber einige der dort gegebenen Gedanken aus. Ich lege damit einige Dinge fest, die im Wegener freier gehalten werden. Natürlich sind Sie nicht verpflichtet, diese Definitionen zu verwenden, aber ich bin sicher, daß dadurch eine präzisere Beschreibung erleichtert wird. Wegener 9-13, Folien 6 13 Definition 2.2 Eine Turingmaschine ist ein 7-Tupel M = (Q, Σ, Γ, B, q 0, δ, F ) mit Q endliche Zustandsmenge Σ endliches (Eingabe-)Alphabet Γ Σ endliches (Band-)Alphabet B Γ Σ (Blankbuchstabe) q 0 Q (Startzustand) δ : Q Γ Q Γ {R, L, N} (Zustandsüberführungsfunktion) F Q (Menge der akzeptierenden Endzustände) Wesentlich bei ist die Zustandsüberführungsfunktion δ, da alle anderen Komponenten implizit in ihr enthalten sind. δ kann je nach Bedarf als Funktion, Tabelle, oder als Graph angegeben werden. Definition Eine Konfiguration einer Turingmaschine M ist ein Wort α q β mit α, β Γ, q Q. ( M befindet sich im Zustand q, links vom Kopf befindet sich das Wort α, rechts vom Kopf das Wort β, wobei der Kopf über dem ersten Symbol von β steht ). 2. Unmittelbare Nachfolgekonfiguration α q β von α q β: α q β α q β. ( Konfiguration α q β entsteht aus α q β durch Anwendung eines Rechenschrittes ). Formale Definition durch Fallunterscheidung: αa q aβ α q a bβ falls δ(q, a) = (q, b, L) αa q aβ αa b q β falls δ(q, a) = (q, b, R) αa q aβ αa q bβ falls δ(q, a) = (q, b, N) 3. Nachfolgekonfiguration α q β von α q β: α q β α q β n IN. α q β n α q β wobei α q β 0 α q β und α q β n+1 α q β q, α, β. α q β α q β α q β n α q β 4. Stopzustände: Q s = {q Q a Γ.δ(q, a) = (q, a, N)} 3 Eingabecodierung: EC(w) = q 0 w für w Σ Ausgabecodierung: AC(α q wbβ) = w, wobei q Q. α, β Γ, w Σ ( Ausgabe des Wortes beginnend ab der Kopfposition bis zum ersten Blank ) ( Der Kopf ist über dem ersten Symbol des Eingabewortes ) Eine Turingmaschine beginnt ihre Berechnung in der durch die Eingabecodierung erzeugten Konfiguration und rechnet, bis ein Stopzustand erreicht ist. Dann gibt sie ihr Ergebnis entsprechend der Ausgabecodierung aus. 3 Wegener kennt noch Stopkonfigurationen: K s = {α q aβ δ(q, a) = (q, a, N)}, die wir hier aber nicht verwenden wollen
8 Vorlesung Informatik IV 6 Informationen Definition 2.4 Eine Turingmaschine M berechnet eine Funktion f : Σ Σ (möglicherweise partiell) genau dann, wenn für alle Worte w domain(f) gilt α, β Γ. q Q s. q 0 w α q f(w) Bβ M berechnet eine Funktion f : IN IN genau dann, wenn sie die Funktion f : {0, 1} {0, 1} mit der Eigenschaft f (bin(n)) = bin(f(n)) berechnet. Eine Funktion f heißt Turing-berechenbar genau dann, wenn es eine Turingmaschine M gibt, die f berechnet. Eine Turingmaschine M akzeptiert ein Wort w Σ genau dann, wenn α, β Γ. q F. q 0 w α q β 4 M akzeptiert eine Zahl n IN genau dann, wenn sie das Wort bin(n) akzeptiert. Ähnliche Definitionen können für Berechenbarkeit auf Tupeln von Worten oder Zahlen bzw. das Akzeptieren von Tupeln gegeben werden. Beispiel: Eine Turingmaschine, die für jedes Wort w {0, 1} den lexikographischen Vorgänger w v berechnet ist zu konstruieren und ihre Korrektheit ist zu beweisen. Idee: Ersetze von rechts nach links Nullen durch Einsen bis die erste Eins kommt, die durch Null ersetzt wird. Der Rest des Wortes bleibt unverändert. Besteht das Wort nur aus Nullen, so muß die erste Eins wieder gelöscht werden. Im Detail: 1. Zunächst bewegen wir den Kopf über das letzte Symbol des Wortes (Ein Durchlauf in q 0 ) 2. Beim Durchlauf von rechts nach links ersetze in q 1 Nullen durch Einsen, bis eine Eins kommt. Diese ersetze durch eine Null und laufe in q 2 an das linke Ende des Wortes. 3. Kommt keine Eins, so gehe in q 3 zurück auf das erste Symbol (eine Eins), lösche diese und gehe auf das zweite Symbol. Für die spezielle Eingabe ɛ ist das erste Symbol ein Blank und nichts ist zu tun. Übergangstabelle δ 0 1 B q 0 (q 0,0,R) (q 0,1,R) (q 1,B,L) q 1 (q 1,1,L) (q 2,0,L) (q 3,B,R) q 2 (q 2,0,L) (q 2,1,L) (q 4,B,R) q 3 (q 4,B,R) (q 4,B,N) q 4 Korrektheit: Es sei w = w 1...w n das Eingabewort (w = ɛ für n = 0) Startkonfiguration ist q 0 w 1...w n. Nach i n Schritten ist w 1...w i q 0 w i+1...w n erreicht (Induktionsbeweis). Also q 0 w 1...w n n w 1...w n q 0. Nächster Schritt: w 1...w n q 0 1 w 1...w n 1 q 1 w n (bzw. w 1...w n q 0 1 q 1 für w = ɛ) Für die weitere Untersuchung unterscheiden wir drei Fälle: 1. w = w 1...w n k k für ein k {0..n 1}. Dann ist w v = w 1...w n k k der lexikographische Vorgänger von w und M rechnet wie folgt weiter: w 1...w n 1 q 1 w n k w 1...w n k 1 q k 1 w 1...w n k 2 q 2 w n k k n k 1 q 2 B w 1...w n k k 1 q 4 w 1...w n k k = q 4 w v M stoppt und gibt w v aus. 2. w = 0 n, wobei n > 0. Dann ist w v = 1 n 1 : w 1...w n 1 q 1 w n n q 1 B 1 n 1 q 3 1 n 1 q 4 1 n 1 = q 4 w v 3. w = ɛ. Dann ist w v = ɛ: q 1 1 q 3 1 q 4 = q 4 w v In allen Fällen ist also bewiesen q 0 w q 4 w v. Damit berechnet M den lexikographischen Vorgänger. Übung: Konstruiere Turingmaschinen über Σ={0, 1} für die folgenden Probleme und beweise ihre Korrektheit. Berechnung der Nullfunktion z mit z(n) = 0 Akzeptieren von ungeraden Zahlen (in Binärdarstellung) Berechnung der Funktion f mit f(n) = n + 2 (welche Fälle sind im Beweis zu unterscheiden?) Berechnung der Funktion f mit f(n) = 8n 4 Die Definition von akzeptiert macht natürlich nur Sinn, wenn alle akzeptierenden Endzustände auch Stopzustände sind, also F Q s gilt. Wegener gibt noch eine weitere Definition, die i.w. der Berechenbarkeit der charakteristischen Funktion entstpricht.
9 Vorlesung Informatik IV 7 Informationen Programmiertechniken für Turingmaschinen Wegener gibt eine Reihe von Programmiertechniken an, die eine Beschreibung von Turingmaschinen erleichtern sollen. Dies ist i.w. für Beweiszwecke gedacht, weniger für das konkrete Programmieren komplexerer Aufgaben was sowieso keiner machen sollte. Wichtig ist, daß diese Techniken zu verstehen sind als abkürzende Beschreibung einer gewöhnlichen Turingmaschine vielleicht in der Art wie die Verwendung von Macros im Assembler. Leider gab es da (auch bei mir) am Anfang etwas Verwirrung. Auf den Folien haben wir beschrieben, wie das entsprechende Konzept arbeitet (d.h. als ob es ein neues Modell wäre) und dann gezeigt, wie man dieses durch eine gewöhnliche Turingmaschine simuliert. 5 Das bedeutet, daß man ab jetzt diese Techniken verwenden darf als ob das Modell zur Verfügung stände. Die wichtigsten Konzepte sind: Wegener 14-16, Folien Erweitertes Bandalphabet: Hinzunahme beliebig vieler neuer Symbole. Simulation in linearer Zeit durch Codierung des erweiterten Bandalphabets in Γ Dies erlaubt es einerseits einen beliebig großen Zeichensatz für die Programmierung zu benutzen, bei theoretischen Betrachtungen aber die Annahme zu verwenden, daß Σ = {0, 1} und Γ = {0, 1, B} ist. Mehrspurmaschinen: Das Arbeitsband mit Bandalphabet Γ besitzt mehrere (k) Spuren über die sich der Kopf gleichförmig bewegt. Ein/Ausgabe auf der ersten Spur. Simulation in linearer Zeit durch Erweiterung des Bandalphabets auf Γ k Γ. Im ersten Schritt muß die Eingabe w Σ umgewandelt werden in k-tupel, welche die Symbole von w in der ersten Komponente haben. Im letzten Schritt müssen die k-tupel wieder in Symbole aus Γ umgewandelt werden, wobei nur die erste Komponente übrigbleibt. Mehrspurmaschinen erlauben, sich auf die Betrachtung von Turingmaschinen mit einem halbseitigen Band einzuschränken (das ein linkes aber kein rechtes Ende hat), was manche theoretische Überlegung erleichtert. Mehrbandmaschinen: Die Maschine besitzt mehrere (k) Arbeitsbänder mit Bandalphabet Γ und sich unabhängig bewegenden Köpfen. Simulierbar in quadratischer Zeit durch eine 2k+1-Spur Maschine mit Markern für die aktuellen Kopfpositionen und das jeweilige Bandende. Verwendung einer anderen Turingmaschine M als Unterprogramm. M darf als black box angesehen werden. Simulation durch eine Zweibandmaschine: Modifiziere das Programm von M so, daß alle Zustände verschieden sind und M nur auf dem zweiten Band arbeitet. Kopiere Eingabedaten für M auf das zweite Band. Gehe in den Anfangszustand von M und arbeite bis M stoppt. Kopiere das Ergebnis in den vorgesehenen Bereich des ersten Bandes. Gehe in den Folgezustand des rufenden Programms Die Universelle Turingmaschine Für theoretische Überlegungen ist es wichtig zu wissen, daß es eine Turingmaschine gibt, welche die Berechnungen jeder anderen Turingmaschine simulieren kann. Diese Erkenntnis ist nicht so überraschend. Wichtig aber ist, daß man sie beweisen kann. Das geschieht, indem man das Programm einer Turingmaschine als Wort über Σ codiert und dann eine Mehrbandmaschine baut, welche die Abarbeitung dieses Programms simuliert. Definition 2.5 Die Gödelnummer M einer Turingmaschine M ist die Codierung von M als Wort über {0, 1}. Mit M i bezeichnen wir die Turingmaschine, deren Gödelnummer M i das i-te Wort in der kanonischen Ordnung von {0, 1} ist, welches eine Gödelnummer beschreibt. M i liefert somit auch eine totale Numerierung aller Turingmaschinen und aller berechenbaren Funktionen. 5 D.h. man gibt eine Vorschrift an, wie eine äquivalente Turingmaschine zu bauen ist indem man das ursprüngliche Programm (abstrakt) aufschlüsselt und sagt wie daraus ein neues Programm zu konstruieren ist und wie die anderen Komponenten der neuen Turingmaschine auszusehen haben (vgl. Übung 2.4)
10 Vorlesung Informatik IV 8 Informationen Theorem 2.6 (utm-theorem) Es gibt eine Turingmaschine UT M, die für alle Worte w {0, 1} und alle Gödelnummern M bei Eingabe des Wortes M w genau dasselbe Ergebnis berechnet wie die Turingmaschine M bei Eingabe des Wortes w. 6 Ein zweites Theorem wurde in Reduktionsbeweisen oft implizit benutzt aber nie ausformuliert. Will man die Berechnung zweier Turingmaschinen M i und M j koppeln, so kann man immer den Index (die Gödelnummer) des resultierenden Programms aus i und j berechnen. Dies ist nicht verwunderlich, da man ja aus zwei separaten Programmen das kombinierte Programm als Gödelnummer codieren kann Theorem 2.7 (smn-theorem) Es gibt eine berechenbare Funktion s : IN 2 IN mit der Eigenschaft: Für alle Worte w {0, 1} und alle Indizes m, n IN berechnet die Turingmaschine M s(m,n) bei Eingabe von w dasselbe wie die Turingmaschine M m bei Eingabe des Wortes w n w Hiervon gibt es auch eine Variante, die auf Worten arbeitet statt auf Zahlen. Der Effekt ist, daß man wie z.b. in Reduktionsbeweisen wie für das spezielle Halteproblem H ɛ einen Teil der Eingabe verschwinden lassen kann und dann stattdessen im Index der Maschine wieder auftaucht. Das Theorem hat nur eine technische Bedeutung, liefert aber keine eigenständigen theoretischen Einsichten. 2.3 Andere Maschinenmodelle RAM: Im wesentlichen dasselbe wie ein einfacher Assembler. Die Befehle sind im Wegener bzw. auf den Folien aufgelistet. Wir haben außer der intuitiven Erklärung keine formale Bedeutung angegeben. Deshalb kann man hierzu auch bestenfalls kleine Programme schreiben lassen, aber keine Korrektheitsbeweise geben. Ich gehe davon aus, daß Sie Assembler programmieren können und will deshalb nicht weiter darauf eingehen. Folien 3 4, Wegener 7 8 Abakus: Es gibt unendlich viele Register, die durch zwei Arten von Befehlen verändert werden können. Addiere 1 zu Register n und fahre fort mit Befehl b Wenn Register n leer ist fort mit Befehl b. Ansonsten subtrahiere 1 im Register n und fahre fort mit Befehl b Die Befehle entsprechen den Additions und Subtraktionsbefehlen der RAM gekoppelt mit IF und GOTO. Daher bietet sich an, Programme als Flußdiagramme zu zeichnen anstatt eine Befehlsliste anzugeben. Deshalb haben wir eine kurze graphische Form für die beiden Befehle und verzichten auf Befehlsnummern. b b n+ n- e b b b Folien 22 28, Boolos/Jeffrey 52 60, Non-Skript 9 13 Übung: Man gebe Abakusprogramme als Diagramme für folgende Aufgaben (ohne Beweis) Leere das Register m Addiere 3 zum Register m Addiere Register m auf Register n (der Inhalt von Register m interessiert danach nicht) Verdoppele Register m (der Inhalt anderer Register interessiert danach nicht) Quadriere Register m (der Inhalt anderer Register interessiert danach nicht) 6 Im folgenden bezeichnen wir kurz mit M(w) das Ergebnis der Turingmaschine M bei Eingabe des Wortes w
11 Vorlesung Informatik IV 9 Informationen 2.4 Die µ-rekursiven Funktionen Primitiv und µ-rekursive Funktionen sind vielleicht der älteste konkrete Ansatz überhaupt zur Erklärung von Berechnungsvorschriften (Dedekind 1888). Sie entstanden lange, bevor man über Maschinenmodelle nachdachte und sind ein mathematischer Ansatz, um berechenbare Funktionen zu beschreiben. Grundidee ist, einen Funktionenkalkül zu verwenden, also einen Kalkül, der über die Funktionen selbst spricht, aber auf die Argumente gar nicht konkret eingeht. D.h. bei der Definition der Berechnungsvorschrift kommen Argumente nicht vor, sondern nur dann, wenn konkret gerechnet wird. Dadurch wird der Ansatz relativ abstrakt, weil man nur noch mit Symbolen Kombinatoren operiert, die wenig Anschauung mit sich bringen. Dafür kann man sich dann aber die Algebra zunutze machen. Betrachten Sie deshalb die Beschreibung der µ-rekursiven Funktionen als eine sehr abstrakte mathematische Programmiersprache, die nur mit Symbolen arbeitet, denen eine feste Bedeutung als Funktion bzw. Operator zugeordnet ist. Sie kennen dies vielleicht aus der Analysis, wo der Ableitungsoperator d/dx ebenfalls nur auf Funktionssymbole ohne Argumente angewandt wird. Boolos-Jeffrey Die wesentliche Schwierigkeit für die meisten ist hierbei das Umdenken: wie beschreibe ich Funktionen, ohne ihre Argumente zu nennen? Man nennt diesen Prozess Abstraktion Statt +(x, y) = Ausdruck ohne Argumente(x, y) schreiben wir kurz + = Ausdruck ohne Argumente. Dieser Ausdruck ohne Argumente muß vollständig aus Elementen der Programmiersprache, d.h. in der Sprache der µ-rekursiven Funktionen aufgebaut sein. Im Kalkül der µ-rekursiven Funktionen gibt es ein paar Grundfunktionen, die so einfach sind, daß jeder überzeugt ist, daß sie berechenbar sind. Alles andere baut man nun aus diesen Funktionen zusammen und wählt dazu einige wenige Operationen, die Funktionen in neue Funktionen umwandlen. Natürlich müssen diese ebenfalls so einfach sein, daß man sich genau weiß, wie man die zusammengesetzen Funktionen auf dem Papier ganz schematisch ausrechnen kann. Diese Operatoren entsprechen den elementaren Programmstrukturen einer Programmiersprache: Hintereinanderausführung, For-Schleife und While Schleife. Definition 2.8 (Grundfunktionen) Die Konstanten 0, 1, 2,... IN gelten als nullstellige Funktionen (d.h. 0 IN 0 IN). Die Nullfunktion z : IN IN ist definiert durch z(n) = 0 für alle n IN Die Nachfolgerfunktion s : IN IN ist definiert durch s(n) = n + 1 für alle n IN Die Projektionsfunktionen id n m : INn IN (m n) sind definiert durch id n m (x 1,..., x n ) = x m G = IN {z, s} {id n m n, m IN 1 m n} heißt Menge der Grundfunktionen. Konstanten, Nullfunktion und Nachfolgerfunktion sind notwendig für Arithmetik. Die Projektionsfunktionen sind notwendig um Argumente herauszuprojezieren oder zu vertauschen. Definition 2.9 (Operatoren) Für alle n, m IN sind folgende Operatoren definiert: Die Komposition Cn : (IN n IN) (IN m IN) n (IN m IN) durch Cn[f, g 1...g n ](x 1,..., x m ) = f( g 1 (x 1,..., x m ),..., g n (x 1,..., x m ) ) Die primitive Rekursion P r : (IN n IN) (IN n+2 IN) (IN n+1 IN) durch P r[f, g]( x, 0) = f( x) und P r[f, g]( x, y + 1) = g( x, y, P r[f, g]( x, y)) 7 Die Minimierung Mn : (IN n+1 IN) (IN n IN) durch { min{y f( x, y) = 0} falls dies existiert und alle f( x, i), i < y definiert sind Mn[f]( x) = undefiniert sonst 7 x ist abkürzend für ein n-tupel von Zahlen
12 Vorlesung Informatik IV 10 Informationen D.h. die Komposition entspricht der Hintereinanderausführung mehrerer einfacher Funktionen. Cn nimmt eine Funktion f : IN n IN und n Funktionen g 1...g n : IN m IN und konstruiert eine neue Funktion h : IN m IN für die gilt: h(x 1,..., x m ) = f( g 1 (x 1,..., x m ),..., g n (x 1,..., x m ) ) Schreibweise: h = Cn[f, g 1...g n ] Die primitive Rekursion P r nimmt eine Funktion f : IN n IN und eine Funktion g : IN n+2 IN mit zwei Argumenten mehr und liefert eine Funktion h : IN n+1 IN für die gilt: h( x, 0) = f( x) und h( x, y + 1) = g( x, y, h( x, y)). Schreibweise: h = P r[f, g] D.h. primitive Rekursion entspricht einer einfachen Iteration von g über einem von f berechneten Startwert. Die Minimierung entspricht einer While-Schleife (unbegrenzte Suche) und liefert die Anzahl der Durchläufe bis zum Abbruch. { Mn nimmt eine Funktion f : IN n+1 IN und erzeugt eine Funktion h : IN n IN für die gilt: das kleinste y für das gilt f( x, y) = 0 falls dies existiert und alle f( x, i), i y definiert sind h( x) = undefiniert sonst Schreibweise: h = Mn[f] Ursprünglich war der Kalkül ohne die Minimierung definiert worden, da man lange Zeit keine totale Funktion kannte, die nicht alleine aus den Grundfunktionen, Komposition und primitiver Rekursion aufgebaut werden konnte. Dieser Kalkül spielt heute noch eine wichtige Rolle. Definition 2.10 (primitiv-rekursive Funktionen) Die Menge PR der primitiv-rekursiven Funktionen ist definiert als die Klasse aller Funktionen, die aus den Grundfunktionen durch Anwendung von Komposition und primitiver Rekursion aufgebaut werden können. PR = n=0 PR n wobei PR 0 = G und PR n+1 = PR n {Cn[f, g 1...g m ] m IN f, g 1...g m PR n } {P r[f, g] f, g PR n } Der Grund dafür, daß fast alle totalen berechenbaren Funktionen primitiv-rekursiv sind, liegt darin, daß man eine beschränkte Minimierung als primitiv-rekursiv nachweisen kann (vgl. Ü5.4-j). Da dieser Operator in praktischen Beispielen eine wichtige Rolle spielt habe ich in der Musterlösung der Probeklausur das Symbol Mn b eingeführt. Definition 2.11 (beschränkte Minimierung) Für alle n IN ist die beschränkte Minimierung Mn b : (IN n+1 IN) (IN n+1 IN) definiert durch { min{y t f( x, y) = 0} falls dies existiert und alle f( x, i), i y definiert sind Mn b [f]( x, t) = t + 1 sonst Die beschränkte Minimierung entspricht einer While-Schleife mit einer oberen Grenze für die Anzahl der Durchläufe (begrenzte Suche). 8 Solche Schleifen können prinzipiell auch durch FOR-Schleifen (primitive Rekursion) ersetzt werden, sind oft aber erheblich eleganter. Mn b nimmt { also eine Funktion f : IN n+1 IN und erzeugt eine neue Funktion h : IN n+1 IN für die gilt: das kleinste y t für das gilt f( x, y) = 0 falls dies existiert h( x, t) = t + 1 sonst Im Gegensatz zur unbeschränkten Minimierung ist die Anzahl der Argumente von f und h gleich. Jedoch ist das letzte Argument von h die Grenze, welche den Laufparameter (das letzte Argument von f) limitiert. Es ist Mn b [f]( x, t) = Mn t [f]( x) in der Schreibweise von Ü5.4-j. Die Schreibweise Mn b [f] benötigt aber im Gegensatz zu Mn t keine Argumente mehr. Erst mit derackermann-funktion (vgl. Ü5) wurde 1928 bewiesen, daß die Klasse der primitiv-rekursiven Funktionen zu klein ist, um alle berechenbaren Funktionen zu beschreiben (das war immer noch vor den anderen Modellen). Dies führte dann zur Hinzunahme der Minimierung und den µ-rekursiven Funktionen. 8 Den Unterschied zwischen den beiden Minimierungen kann man an folgenden Programmstücken erklären: Unbeschränkte Minimierung x := 0; WHILE bed(x) Beschränkte Minimierung x := 0; WHILE bed(x) and x t DO x=x+1 ;... END DO x=x+1 ;... Return x. Return x. END
13 Vorlesung Informatik IV 11 Informationen Definition 2.12 (µ-rekursive Funktionen) Die Menge R der µ-rekursiven Funktionen ist definiert als die Klasse aller Funktionen, die aus den Grundfunktionen durch Anwendung von Komposition, primitiver Rekursion und Minimierung aufgebaut werden können. R = n=0 R n wobei R 0 = G und R n+1 = R n {Cn[f, g 1...g m ] m IN f, g 1...g m R n } {P r[f, g] f, g R n } {Mn[f] f R n } Es ist relativ leicht, eine vorgegebene Funktion auf bestimmten Argumenten auszurechnen. Man muß nur schrittweise die Interpretation der Funktionen einsetzen bis ein Ergebnis dasteht, was allerdings recht stupide ist (wer spielt schon gerne Computer). Beispiel: Um P r[id 1 1, Cn[s, id3 3 ]](5, 2) zu berechnen, schauen wir zunächst auf den äußere Operator. Dies ist P r und das zweite Argument ist größer als 0. Wir müssen also die zweite Gleichung in der Definition von P r einsetzen solange bis ein zweites Argument 0 herauskommt und anschließend die erste. Danach simplifizieren wir wir die Komposition. 9 Es geht auch übersichtlicher, wenn wir die Komposition frühzeitig simplifizieren, soweit dies möglich ist. P r[id 1 1, Cn[s, id3 3 ]](5, 2) P r[id 1 = Cn[s, id 3 1, Cn[s, id3 3 ]](5, 2) 3 ](5, 1, P r[id1 1, Cn[s, id3 3 ]](5, 1)) = Cn[s, id 3 = Cn[s, id 3 3 ](5, 1, P r[id1 1, Cn[s, id3 3 ]](5, 1)) 3 ](5, 1, Cn[s, id3 3 ](5, 0, P r[id1 1, Cn[s, id3 3 ]](5, 0))) = s(id 3 = Cn[s, id 3 3 (5, 1, P r[id1 1, Cn[s, id3 3 ]](5, 1))) 3 ](5, 1, Cn[s, id3 3 ](5, 0, id1 1 (5))) = s(p r[id 1 = Cn[s, id 3 1, Cn[s, id3 3 ]](5, 1)) 3 ](5, 1, Cn[s, id3 3 ](5, 0, 5)) = s(cn[s, id 3 = Cn[s, id 3 3 ](5, 0, P r[id1 1, Cn[s, id3 3 ]](5, 0))) 3 ](5, 1, s(id3 3 (5, 0, 5))) = s(s(id 3 = Cn[s, id 3 3 (5, 0, P r[id1 1, Cn[s, id3 3 ]](5, 0)))) 3 ](5, 1, s(5)) = s(s(p r[id 1 = Cn[s, id 3 1, Cn[s, id3 3 ]](5, 0))) 3 ](5, 1, 6) = s(s(id 1 = s(id 3 1 (5))) 3 (5, 1, 6)) = s(s(5)) = s(6) = s(6) = 7 = 7 Meist ist die Problemstellung jedoch umgekehrt. Sie bekommen eine Funktion vorgegeben und sollen zeigen, daß diese primitiv- oder µ-rekursiv ist (letzteres ist aus o.g. Gründen recht selten). Wie bei einer Programmieraufgabe müssen Sie also die Beschreibung der Funktion in die Syntax der primitiv-rekursiven Funktion übersetzen, d.h. ein Programm in der Sprache PR schreiben. Das größte Problem ist dabei erfahrungsgemäß die primitive Rekursion: sie kennen h und müssen f und g finden mit h = P r[f, g] und die Rahmenbedingungen einhalten. f muß immer eine Stelle weniger haben als h und g eine mehr und die Rekursion muß über das letzte Argument gehen. Davon darf nicht abgewichen werden. Deswegen brauchen wir Projektionsfunktionen und Komposition, um die Argumente in der richtigen Anzahl und an der richtigen Stelle einsetzen zu können. Es empfiehlt sich dabei zunächst eine Funktionsgleichung für die vorgegeben Funktion aufzustellen, in der nur bereits bekannte Funktionen und die Argumente auftauchen. Dies kann eine Rekursionsgleichung sein oder eine Minimierungsgleichung oder eine einfache Hintereinanderausführung mehrerer Funktionen. Gelingt dies nicht unmittelbar, so muß das Problem eventuell zerlegt werden, z.b. wenn die Funktion zusammengesetzt ist aus mehreren anderen, von denen eine durch eine Rekursionsgleichung zu beschreiben ist, eine andere durch Minimierung usw. Die Funktion ergibt sich dann durch Komposition dieser anderen Funktionen. Sind alle Gleichungen aufgestellt so kann man schrittweise umwandeln in die Operatorschreibweise indem man schrittweise die Argumente nach außen schiebt und hierfür ggf. Komposition und Projektionen einsetzt. { 1 falls x Primzahl ist Beispiel: In der Probeklausur hatten wir die Funktion prim mit prim(x) = 0 sonst x ist eine Primzahl g.d.w. keine Zahl y mit 1 < y < x ein Teiler von x ist. Die Funktion teilt ergibt sich also als Unterproblem, auf die sich alles andere abstützen wird. Wir müssen also eine Beschreibung für teilt finden und zeigen, wie diese zur Konstruktion des Primzahltest eingesetzt werden kann. In der Klausur war die Funktion teilt unmittelbar davor genannt worden, also können wir sie benutzen (Das ist wichtig!). 9 Man darf die Rekursion auch durch eine Iteration ersetzen und die Werte P r[id 1 1, Cn[s, id 3 3]](5, i) für i = 0, 1, 2 der Reihe nach berechnen. Damit entfällt zwar die geschlossene Gleichungskette, aber es mag für manche übersichtlicher sein.
14 Vorlesung Informatik IV 12 Informationen Die Bedingung keine Zahl y mit 1 < y < x ist Teiler von x ist etwas umständlich zu handhaben, da wir einen beschränkten All-quantor brauchen, den wir aber noch nicht haben. Man könnte nun das generelle Produkt oder die generelle Summe aus Übung 5.4 einsetzen oder eben die beschränkte Minimierung. Letztere finde ich am einfachsten zu handhaben, da sie am elegantesten eine Suche ausdrückt. Da wir wissen, daß x Teiler von x ist können wir statt keine Zahl y mit 1 < y < x ist Teiler von x sagen die kleinste Zahl y > 1, die x teilt ist die Zahl x selbst, also x = min{y > 1 y teilt x}. Jetzt müßsen wir nur noch eine obere Grenze angeben und wir haben unsere Gleichung. Diese Grenze ist natürlich x, denn weiter brauchen wir nicht zu suchen. { 1 falls min{y x y > 1 y teilt x} = x prim(x) = 0 sonst Wir wandeln zunächst den min -Ausdruck um, um die Form der beschränkten Minimierung zu erhalten. Dazu müßsen wir etwas jonglieren, um die innere Bedingung durch einen Ausdruck h(x, y) = 0 zu beschreiben. Da die Funktion teilt nur im Mißerfolgsfall eine 0 liefert vergleichen wir erst einmal mit 0. min{y x y > 1 y teilt x} = min{y x y. 1 0 teilt(x, y) 0} Jetzt ersetzen wir das durch eine Multiplikation und y. 1 durch p(y), wobei p die bekannte Vorgängerfunktion ist. Anschließend vertauschen wir die Werte 0 und 0 mit der Signumfunktion. min{y x y. 1 0, teilt(x, y)) 0} = min{y x p(y) teilt(x, y) 0} = min{y x sg(p(y) teilt(x, y)) = 0} Sei f(x, y) = sg(p(y) teilt(x, y)). Dann ist f = Cn[sg, Cn[, Cn[p, id 2 1 ], teilt]] und { 1 falls min{y x f(x, y) = 0} = x prim(x) = 0 sonst Es bleibt also noch der Test auf Gleichheit, der eine 1 liefern muß im Erfolgsfall. Wir bilden dazu die absolute Differenz, ersetzen den min-ausdruck durch Mn b [f](x, x) und wenden die Signumfunktion an. prim(x) = sg( Mn b [f](x, x) x ) also prim= Cn[sg, Cn[absdiff, Cn[Mn b [f], id, id], id]](x) Insgesamt also und das muß man nicht unbedingt mehr einsetzen prim= Cn[sg, Cn[absdiff, Cn[Mn b [ Cn[sg, Cn[, Cn[p, id 2 1], teilt]] ], id, id], id]](x) Das war jetzt ein etwas aufwendiges Beispiel mit einer etwas anderen Lösung als in der Klausur. Es gibt auch ganz andere Lösungen dazu und nicht alle Gedanken müssen wirklich so ausführlich durchdacht werden. Übung: Berechne durch schrittweise Abarbeitung P r[1, Cn[z, id 2 1 ]](3) P r[id 1 1, Cn[p, id3 3 ]](4, 2) Übung: Zeige, daß die folgenden Funktionen primitiv-rekursiv bzw. µ-rekursiv sind. Gib dazu zunächst eine Funktionsgleichung mit Argumenten, welche die Funktion durch bereits bekannte Funktionen ausdrückt und wandle diese in einem letzten Schritt um in einen Ausdruck des Kalküls. kgv mit kgv (x, y) = das kleinste gemeinsame Vielfache von x und y ggt mit ggt (x, y) = der größte gemeinsame Teiler von x und y { 1 falls x ungerade odd mit odd(x) 0 sonst { Rest der Division von x durch y falls y > 0 mod mit mod(x, y) = x sonst { x/y falls y > 0 Div mit Div(x, y) = undefiniert sonst alle Funktionen aus Übung 5.4 und der Klausuraufgabe 4
15 Vorlesung Informatik IV 13 Informationen 2.5 Repräsentierbarkeit in der Theorie der Arithmetik Wir hatten ein weiteres Berechenbarkeitsmodell angegeben, das auf Logik und Beweisbarkeit oder Ableitbarkeit beruht. Man versucht, eine Formel anzugeben, welche das Verhalten einer Funktion eindeutig beschreibt. Als Zusatzbedingung kommt hinzu, daß diese Eindeutigkeit logisch aus den Axiomen der zugrundeliegenden Theorie ableitbar sein muß und diese Ableitbarkeit ist im Endeffekt der Berechnungsmechanismus. Boolos/Jeffrey , Folien Zusatzfolien Logische Formeln und Quantoren haben wir in der Vorlesung kurz eingeführt. Sie können die Aufstellung auf den Folien gut als Referenz verwenden. Die Prädikatenlogik besteht aus einer formalen Sprache und ihrer Semantik. Die Sprache kennt logische Symbole wie,,,,,,, =, (, ) und Variablennamen, die eine ganz eindeutig festgelegt Interpretation haben, und nichtlogische Funktions- und Prädikatszeichen (Konstante sind nullstellige Funktionszeichen), deren Interpretation noch gewählt werden kann. In der Sprache der Prädikatenlogik kann man nun Terme und Formel bilden und schließlich Sätze das sind Formeln ohne freie Variablen aufstellen. Die Semantik einer Formel bzw. eines Satzes ergibt sich nun dadurch, daß man alle nichtlogischen Symbole in einem Universum interpretiert und dann gemäß der Regeln für die logischen Symbole die Bedeutung ausrechnet. Ergibt diese Berechnung für einen Satz eine 1, dann sagen wir der Satz ist wahr unter der Interpretation. Natürlich gibt es für alle nichtlogischen Symbole normalerweile eine intendierte Bedeutung so wird + normalerweise als Addition interpretiert aber darauf läßt sich die Logik an sich nicht ein. Solange es um Beweisbarkeit oder Ableitbarkeit geht, darf die konkrete Interpretation keine Rolle spielen. Das ist sehr wichtig, da sonst Logik für Rechnerunterstützung unbrauchbar wäre Rechner verstehen keine Bedeutung. Beispiel: = 9 hat eine gewünschte Interpretation aber sie könnten diese Symbole auch mit siebzehn, acht und neun interpretiern und das +-Symbol mit der Subtraktion. Ableitbarkeit ist ein rein logischer Begriff: Ein Satz S ist ableitbar aus einer Menge T von Formeln, wenn jede Interpretation, welche die Formeln aus T wahr macht, auch S erfüllt also den Wert 1 liefert. Wir haben dafür das Symbol = T S eingeführt. T heißt oft auch Theorie oder Menge von Axiomen, je nach Verwendung. Axiome schränken mögliche Interpretationen der Symbole sehr stark ein, legen sie aber nicht immer eindeutig fest. D.h. prinzipiell kann man die Symbole auch anders interpretieren als in der Standardinterpretation und deswegen nicht alles ableiten, was in der Standardinterpretation gilt. Darauf sind wir in der 7.Übung kurz eingegangen Sie sollten dies nur als kleine Warnung merken. All dies war der notwendige Begriffsapparat, um das Konzept Repräsentierbarkeit in der Theorie der Arithmetik vorzubereiten. Wir haben dann die Theorie Q definiert, die zusätzlich zu den logischen Symbolen nur die Zeichen o,,+, kennt. Die intendierte Bedeutung dieser Symbole ist klar, wird aber eben keineswegs durch die Axiome eindeutig festgelegt. Eine Abkürzung haben wir noch eingeführt: wir schreiben kurz n für den Term o... die zwei Unterstriche sollen andeuten, daß dies ein Term, keine Zahl ist. } {{ } n mal 7 Axiome reichen, um ein Berechenbarkeitskonzept zu erzeugen, das dem der rekursive Funktionen äquivalent ist. Sie haben dazu eine Tabelle und ich will nur zwei herausgreifen: x y(x = y x = y) heißt: die Nachfolgerfunktion muß injektiv sein, xx + o = x heißt: das o-symbol ist neutrales Element der +-Operation. Kommutativität dagegen wird nicht gefordert und folgt auch nicht. Definition 2.13 Eine Funktion f : IN k IN heißt repräsentierbar in Q, wenn es eine k + 1-stellige Formel F gibt, so daß für jedes Tupel x IN k und jede Zahl z gilt: f( x) = z gilt genau dann, wenn = Q y(f ( x, y) y = z) In anderen Worten: die Formel F beschreibt die Relation zwischen den Ein- und Ausgaben von f und dies so eindeutig, daß bei Einsetzen von Termen für die Eingaben von f aus den Axiomen von Q abgeleitet werden kann, daß genau ein Wert nämlich der Term für den Funktionswert für das letzte Argument die Formel wahr macht. Dies liefert dann auch den Berechnungsmechanismus.
16 Vorlesung Informatik IV 14 Informationen Das Ganze wirkt etwas abstrakt, ist aber eine solche Formel zu finden ist verwandt mit dem, was sie zu tun haben, wenn sie die Funktionsgleichung für µ-rekursive Funktionen aufstellen, besonders dann, wenn Sie eine Minimierung beschreiben. Bei der Minimierung suchen Sie das erste Element, was eine Bedingung erfüllt, bei der Repräsentierbarkeit müssen sie zusätzlich sicherstellen, daß es kein weiteres gibt, das die Bedingung ebenfalls erfüllt. Daß dies auch noch ableitbar ist, können sie natürlich nicht so leicht überprüfen, aber sie dürfen sich darauf verlassen, daß alles ableitbar ist, was Sie auch als wahr erkennen. D.h. in der obigen Bedingung dürfen Sie die Terme durch Zahlen ersetzen und das = Q ignorieren und erhalten so die richtige Formel. Ich gebe ein paar Beispiele { undefiniert falls x < y Die partielle Funktion mit (x, y) = wird repräsentiert durch die 3-stellige x y sonst Formel F mit F (x, y, z) y + z = x. Denn es gilt für alle n, m, k n m = k m + k = n. Deshalb ist aus den Axiomen ableitbar = Q y(m + y = n) y = k) genau dann, wenn (n, m) = k ist, während für n < m die Formel für keinen Wert wahr ist. Die entsprechende totale Funktion. ist etwas aufwendiger, da Sie x < y auch in der Formel abfangen müssen. { 1 falls x y Die Funktion t mit t (x, y) = wird wie folgt dargestellt. Es ist x y z.x + z = y. Die 0 sonst Fallunterscheidung müssen wir explizit machen: F (x, y, v) ( z.x+z =y v =1) ( ( z.x+z =y) v =o) { x/y falls y > 0 Die Funktion Div mit Div(x, y) = erfüllt die Gleichung undefiniert sonst Div(x, y) = z z y x < (z+1) y y 0. Für gegebenes (x, y) wird die Formel z y x x < (z+1) y also genau dann für ein z wahr, wenn z der Integerdivisionswert x/y ist, aber niemals, wenn y = 0 ist. Damit repräsentiert die Formel D(x, y, z) z y x x < (z + 1) y y 0 die Funktion Div. Gerade die Quantoren sind wichtig, weil sie in ihrer Verwendung der Minimierung nahekommen. Minimierung heißt: es exisytiert ein Wert t, der das Problem löst und alle Werte, die größer als t sind, sind keine Lösung. Soweit zu diesem Thema: Was Sie hierbei unbedingt wissen sollten ist, wie man eine logische Formel interpretiert d.h. sie sollten ihre Bedeutung erfassen und die Standardinterpretation geben können was der Begriff der Repräsentierbarkeit bedeutet. Auch sollten Sie für ganz einfache Funktionen eine Formel hinschreiben können. Übung: Gib Formeln an, welche die folgenden Funktionen repräsentieren. z mit z(x) = 0 {. mit. (x, y) = x. 0 falls x y y := x y sonst { x falls x y max mit max(x, y) = y sonst kgv mit kgv (x, y) = das kleinste gemeinsame Vielfache von x und y ggt mit ggt (x, y) = der größte gemeinsame Teiler von x und y
17 Vorlesung Informatik IV 15 Informationen 3 Entscheidbarkeit und Aufzählbarkeit Bisher haben wir uns mit der Berechenbarkeit von Funktionen beschäftigt. Darüber hinaus interessiert man sich besonders für die Berechenbarkeit von Eigenschaften, also der Frage gibt es einen Algorithmus, der entscheidet, ob eine Eingabe eine vorgegebene Eigenschaft hat. Formal kann man Eigenschaften durch die Menge aller Elemente ausdrücken, welche diese Eigenschaft besitzen und deswegen entspricht dieses Problem der Frage nach der Entscheidbarkeit der Elementrelation auf Mengen. 3.1 Definitionen und wichtige Eigenschaften Formal ist dieser Begriff durch akzeptierende Turingmaschinen (siehe Definition 2.4) erklärt. Definition 3.1 (Entscheidbarkeit und Aufzählbarkeit) Eine Menge S Σ heißt entscheidbar (oder rekursiv) genau dann, wenn es eine Turingmaschine M gibt, die auf allen Eingaben w Σ stoppt und w akzeptiert genau dann, wenn w S gilt. Eine Menge S Σ heißt rekursiv-aufzählbar (oder semi-entscheidbar) genau dann, wenn es eine Turingmaschine M gibt, die Eingaben w Σ genau dann akzeptiert, wenn w S gilt. Eine Menge S IN heißt entscheidbar (rekursiv-aufzählbar) wenn die Menge bin(s) = {bin(n) n S} {0, 1} entscheidbar (bzw. rekursiv-aufzählbar) ist. Der wichtige Unterschied zwischen Entscheidbarkeit und Semi-entscheidbarkeit ist, daß die akzeptierende Turinmaschine im zweiten Fall auf Eingaben w S nicht unbedingt halten muß. Der Begriff rekursiv-aufzählbar entstammt eine äquivalenten Charakterisierung, die wir in Übung 3 bewiesen hatten. Theorem 3.2 (Äquivalente Charakterisierung von Entscheidbarkeit und Aufzählbarkeit) 1. S Σ ist entscheidbar die (totale) charakteristische Funktion χ S : Σ {0, 1} mit χ S (w) = { 1 wenn w S 0 sonst ist berechenbar S endlich oder es gibt eine streng monotone, total-rekursive Funktion f : Σ Σ mit S = range(f) 2. S Σ ist rekursiv-aufzählbar { 1 wenn w S die partielle charakteristische Funktion χ S mit χ (w) = S undefiniert sonst es gibt eine partiell-rekursive Funktion f : Σ Σ mit S = domain(f) S = oder es gibt eine total-rekursive Funktion f : Σ Σ mit S = range(f) ist berechenbar Die äquivalenten Charakterisierungen sind oft erheblich leichter zu handhaben als die Originaldefinition. Insbesondere lohnt es sich, in konkreten Fällen die Charakterisierungen über rekursive Funktionen zu wählen anstatt über Turingmaschinen, weil gerade aus dem Bereich der µ-rekursiven Funktionen viele Funktionen als berechenbar bekannt sind. In Beweisen benötigt man allerdings oft die Originaldefinition. Durch Verwendung der unterschiedlichen Charakterisierungen lassen sich leicht eine Reihe von wichtigen Zusammenhängen beweisen. 10 Wegener 2.7/2.8 Theorem 3.3 (Abschlußeigenschaften) 1. Entscheidbare Mengen sind abgeschlossen unter Komplementbildung, Vereinigung, Durchschnitt, Differenz und Urbildbildung: Wenn S 1, S 2 Σ entscheidbar sind und f : Σ Σ eine total rekursive Funktion dann sind auch die Mengen S 1, S 1 S 2, S 1 S 2, S 1 S 2, f 1 (S 1 ) = {w f(w) S 1 } entscheidbar. Die Menge f(s 1 ) = {f(w) w S 1 } dagegen ist nicht notwendigerweise entscheidbar. 10 Man beachte daß aus der Teilmengenbeziehung S 1 S 2 keinerlei Schlüsse gezogen werden können über die Entscheidbarkeit und Aufzählbarkeit von S 1 oder S 2 selbst dann, wenn etwas über die andere Menge bekannt ist.
18 Vorlesung Informatik IV 16 Informationen 2. Rekursiv-aufzählbare Mengen sind abgeschlossen unter Vereinigung, Durchschnitt, Urbildbildung und Abbbild, aber nicht unter Differenz und Komplementbildung: Wenn S 1, S 2 Σ rekursiv-aufzählbar sind und f : Σ Σ eine total rekursive Funktion dann sind auch die Mengen S 1 S 2, S 1 S 2, f 1 (S 1 ), f(s 1 ) rekursiv-aufzählbar Die Mengen S 1, S 1 S 2 dagegen sind nicht notwendigerweise rekursiv-aufzählbar. 3. Eine Menge S Σ ist entscheidbar genau dann, wenn S und ihr Komplement S rekursiv-aufzählbar sind. Besonders die Abschlußeigenschaft durch Urbildbildung hat eine große Bedeutung für Entscheidbarkeits- bzw. Unent scheidbarsbeweise. Denn durch die Verwendung einer Funktion f kann eine Menge S 2 in eine völlig andersartige Menge S 1 transformiert werden. Wichtig ist nur, daß alle Elemente von S 2 innerhalb von S 1 landen und alle anderen außerhalb. Das genau ist die Urbildeigenschaft S 2 = f 1 (S 1 ). f Σ S 1 S 2 = f 1 (S 1 ) S 1 Σ S 2 f Weil diese Abschlußeigenschaft so wichtig ist für Beweise, hat sie einen Namen bekommen. Statt S 2 = f 1 (S 1 ) sagt man kurz S 2 reduziert auf S 1 und schreibt S 2 S 1. Das Symbol ist so zu verstehen, daß S 2 leichter als S 1 ist und damit alle guten Eigenschaften von S 1 auch für S 2 gelten. Definition 3.4 Eine Menge S 2 Σ heißt reduzierbar auf S 1 Σ (S 2 S 1 ) genau dann, wenn eine totalrekursive Funktion f : Σ Σ existiert mit der Eigenschaft: w Σ. w S 2 f(w) S 1 (in anderen Worten: S 2 = f 1 (S 1 )). Der Vorteil dieser Notation ist, daß f nicht mehr konkret angegeben werden muß. Es folgt Lemma 3.5 Seien S 1, S 2 Σ und es gelte S 2 S 1. Wenn S 1 entscheidbar (bzw. rekursiv-aufzählbar) ist, dann gilt dies auch für S 2 Wichtig ist, daß man dieses Lemma in zwei Richtungen anwenden kann, wenn man S 2 S 1 bewiesen hat: ist bekannt, daß S 1 entscheidbar ist, dann darf man dies auch für S 2 folgern; ist bekannt, daß S 2 nicht entscheidbar ist, dann kann auch S 1 nicht entscheidbar sein. Diese Beweistechnik nennt man Reduktionsbeweis. Wir haben diese Technik in vielen Beweisen implizit benutzt, indem wir z.b. gezeigt haben, wie wir eine Entscheidungsprozedur (genauer, die entsprechende Turingmaschine) für das spezielle Halteproblem H ɛ für die Entscheidung des allgemeine Halteproblem H verwenden, indem wir die Eingaben des Halteproblems H in solche für die Entscheidungsprozedur für H ɛ umwandeln. Die dabei angegebene Umwandlung ist genau die Reduktionsfunktion, d.h. wir haben ohne es explizit zu sagen H H ɛ gezeigt und dann praktisch noch einmal das obige Lemma für den jeweiligen Spezialfall bewiesen. Es ist daher erheblich eleganter allerdings auch abstrakter, eine Reduktion nachzuweisen und dann das Lemma zu verwenden, anstatt in Beweisen direkte Konstruktionen und Argumente zu führen. 11 Für Fragen nach Entscheidbarkeit und Aufzählbarkeit haben wir jetzt eine Reihe von Beweistechniken: Angabe einer Entscheidungsfunktion entweder als Turingmaschine oder als µ-rekursive Funktion. Angabe einer berechenbaren Funktion für eine der anderen Charakterisierungen. Verwendung der Abschlußeigenschaften und bekannter Beispiele insbesondere Reduktion auf eine als entscheidbar/aufzählbar bekannte Menge Zur Widerlegung der Allgemeingültigkeit von Aussagen reicht ein Gegenbeispiel 11 Es sei allerdings darauf hingewiesen, daß manche Reduktionsbeweise wie der vom Halteproblem auf die Diagonalsprachhe nicht auf obigem Reduktionsbegriff basieren sondern eher auf einer Art Turing-Reduzierbarkeit, da nach der Befrageung der Entscheidungsprozedur noch weitergearbeitet wird.
19 Vorlesung Informatik IV 17 Informationen 3.2 Unlösbare Probleme Ein wesentlicher Aspekt der theoretischen Informatik ist es abzugrenzen, was prinzipiell machbar ist und was nicht. Dies betrifft sowohl die Frage nach der Berechenbarkeit im allgemeinen, was wir heute besprechen werden, als auch die Frage was ist in vernünftiger Zeit berechenbar das machen wir morgen. Der direkte Nachweis, daß etwas nicht berechenbar ist, ist im allgemeinen sehr schwer. Deshalb bedient man sich einer einfachen Technik: man zeigt für ein paar abstrakte Probleme, daß sie nicht berechenbar sind und zeigt die Unlösbarkeit der praktisch interessanten Probleme dann durch Reduktion. (Das ist dieselbe Idee wie bei NP-Vollständigkeit). Schlüsseltechnik für den direkten Nachweis der Unlösbarkeit eines Problems ist neben dem Wachstumsargument, das wir beim Busy Beaver Problem benutzt haben die Diagonalisierung. Wegener 2.6, Ü3/4 Diagonalisierung ist eine Technik, die durch Verwendung der Diagonalen einer (fiktiven) Tabelle aller Möglichkeiten aus der Annahme der Lösbarkeit einen Widerspruch herleitet. Sie greift daher besonders gut, wenn das Problem etwas mit allen Berechnungen von Turingmaschinen M i auf Worten w j oder vergleichbaren Aufzählungen zu tun hat. Ich will die Technik ausführlich an einem Beispiel illustrieren. Weitere Beispiele findet man in Übung 3.2 und 3.3. Die Menge U = { M w M akzeptiert w} ist nicht entscheidbar. 1. Wir nehmen an U sei entscheidbar. Dann ist χ U, die charakteristische Funktion von U, berechenbar. 2. Zur Konstruktion der Diagonalen trägt man zunächst alle relevanten Fälle in eine (fiktive) Tabelle von Funktionsberechnungen ein. In unserem Fall steht in der Tabelle an der Stelle i, j eine 1, wenn M i das Wort w j akzeptiert und sonst irgendetwas anderes oder gar nichts. (In anderen Fällen muß man Funktionswerte M i (w j ) oder etwas ähnliches eintragen z.b. M 2i (w j ) ) 3. Konstruiere durch Abwandlung der Diagonalen eine neue Funktion, die von der Art her zu den in der Tabelle aufgelisteten Funktionen gehört, sich aber von allen in der Tabelle genannten Funktionen unterscheidet. Man kann Nullen mit Einsen tauschen oder auf den Funktionswert eine Eins addieren oder das Symbol 1 anhängen. { 1 wenn Mi das Wort w In unserem Fall setzen wir f(w i ) = i nicht akzeptiert 0 sonst Diese Funktion ist berechenbar nur dann, wenn das genannte Problem lösbar ist Wir berechnen f(w i ), indem wir die charakteristische Funktion von U mit Eingabe ( M i, w i ) berechnen und dann die Funktion sg auf das Ergebnis anwenden. 4. Wir zeigen, daß die konstruierte Funktion als Horizontale in der Tabelle auftauchen müsste und betrachten den Schnittpunkt dieser Horizontalen mit der Diagonalen. Per Konstruktion gibt es an dieser Stelle einen Widerspruch. Also muß die Annahme falsch sein. Da f berechenbar ist, gibt es eine Turingmaschine M i, die ein Wort w akzeptiert, genau dann wenn f(w) = 1 ist und sonst verwirft. Wir betrachten den Wert der Tabelle an der Stelle i, i und unterscheiden 2 Möglichkeiten. Wenn f(w i ) = 1 ist, dann akzeptiert nach Definition von f M i das Wort w i nicht, d.h. an der Stelle i, i keine 1. Da M i aber f berechnet, folgt f(w i ) 1 (f(w i ) ist genau der Wert an der Stelle i, i). Wenn f(w i ) = 0 ist, dann akzeptiert nach Definition von f M i das Wort w i. Da M i aber f berechnet, folgt f(w i ) = 1 0. In beiden Fällen ergibt sich also ein Widerspruch. Natürlich führt man normalerweise den konkreten Beweis ohne über diese Tabelle zu reden, aber sie hilft bei der Veranschaulichung, bis man das Problem sauber aufgeschrieben hat. Die Kurzform dieses Beweises geht dann mit Turingmaschinen wie folgt Wir nehmen an U = { M w M akzeptiert w} sei entscheidbar. Dann gibt es eine immer haltende Turingmaschine M U, die ein Wort M w akzeptiert genau dann, wenn M w U.
20 Vorlesung Informatik IV 18 Informationen Dann können wir eine Turingmaschine M konstruieren, die bei Eingabe eines Wortes w den Index i mit w = w i bestimmt und genau dann akzeptiert, wenn M U die Eingabe M i w nicht akzeptiert. Da M eine Turingmaschine ist gibt es einen Index j mit M = M j. Wir betrachten das Verhalten von M auf ihrem eigenen Index j, d.h. bei Eingabe von w j : Falls M das Wort w j akzeptiert, dann akzeptiert M U die Eingabe M j w j nicht. Also ist M j w j U, d.h. M = M j akzeptiert das Wort w j nicht. Falls M das Wort w j nicht akzeptiert, dann akzeptiert M U die Eingabe M j w j. Also ist M j w j U, d.h. M = M j akzeptiert das Wort w j. In beiden Fällen ergibt sich also ein Widerspruch. Also muß die Annahme falsch sein. Das allgemeine Schema wäre also: Annahme, das Problem sei entscheidbar über eine TM M P. Wir konstruieren eine widersprüchliche Maschine M mit M P als Black Box. Bei Eingabe von w wird das Problem so umgewandelt, daß eine Eingabe für M P entsteht. Dann wird M P laufengelassen und die Antowrt so umgewandelt, daß ein Widerspruch entsteht. D.h. sagt M P ja, dann sei die Ausgabe so, daß M eine Funktion berechnet, die auf w nicht zur Problemklasse gehört. Sagt M P nein, dann sei die Ausgabe so, daß M eine Funktion berechnet, die auf w zur Problemklasse gehört. Da M aufgrund unserer Annahme eine Turingmaschine ist, hat sie einen Index. Wir fragen: was macht M auf dem eigenem Index und finden dort den Widerspruch. Das waren jetzt mehrere Versuche, ihnen die Technik auf verschiedene Arten klar zu machen. Ich hoffe, daß jeder jetzt eine Form gefunden hat, die einleuchtet. Die ersten Probleme, die als unlösbar bewiesen wurden, hat man so konstruiert, daß sie zu dieser Technik passen sie haben keine eigene Bedeutung darüber hinaus. Die sogenannte Diagonalsprache ist genau die Diagonale innerhalb der Menge U. Sie ist definiert als D = {w i M i akzeptiert w i } 12 Bei D steckt die Diagonalisierung schon in der Definition und somit ist die Menge direkt bereit für den Widerspruchsbeweis: Wir nehmen an D sei entscheidbar. Dann ist auch D = {w i M i akzeptiert w i nicht} entscheidbar. Damit gibt es eine Turingmaschine M = M j, die immer hält und eine Eingabe w i akzeptiert genau dann, wenn w i D. Wir betrachten das Verhalten von M bei Eingabe von w j : Falls M = M j das Wort w j akzeptiert, dann darf nach Definition von D die Maschine M j das Wort w j nicht akzeptieren. Falls M = M j das Wort w j nicht akzeptiert, dann muß nach Definition von D die Maschine M j das Wort w j akzeptieren. In beiden Fällen ergibt sich also ein Widerspruch. Also muß die Annahme falsch sein. Alle anderen Probleme haben wir auf diese Sprache durch Reduktion zurückgeführt allerdings ohne diese Technik explizit zu machen. Das kam erst später. Ich will das auch an einem Beispiel illustrieren Das Halteproblem: H = { M w M hält auf w} ist nicht entscheidbar. Der Originalbeweis war eine Reduktion der Diagonalsprache D auf H. Wir nehmen an H sei entscheidbar. Damit gibt es eine Turingmaschine M H, die immer hält und eine Eingabe M w akzeptiert genau dann, wenn M w H. Dann läßt sich wie folgt eine Turingmaschine M konstruieren, die D entscheidet: Bei Eingabe von w berechne M den Index i mit w = w i und wendet M H auf M i w an. Falls M H nicht akzeptiert, dann hält M i auf w i nicht, also folgt w D. In diesem Fall verwirft M. Andernfalls hält M i auf w i und M wendet die universelle Turingmaschine UT M auf M i w an. Stoppt UT M in einem akzeptierenden Endzustand von M i dann folgt w D und M akzeptiert. Andernfalls folgt w D und M verwirft. Da D nicht entscheidbar ist, entsteht ein Widerspruch. Also kann H nicht entscheidbar sein. 12 Hier gibt es eine Umbenennung zu Wegener, der diese mit D benannt hat.
21 Vorlesung Informatik IV 19 Informationen Für die Vorbereitung des Satz von Rice haben wir einen Speziallfall von H als nicht entscheidbar nachgewiesen. H ɛ = { M M hält auf ɛ} ist nicht entscheidbar. Sie haben den Reduktionsbeweis im Buch von Wegener. Ich zeige hier: H H ɛ. Es gibt eine rekursive Funktion f : Σ Σ mit Die Gödelnummer der Turingmaschine M g(v), welche bei Eingabe falls v = M w 13 f(v) = von ɛ so rechnet wie die Turingmaschine M bei Eingabe von w ɛ sonst Wir zeigen v Σ. v H f(v) H ɛ. Sei v H. Dann gilt v = M w und M hält auf w. Dann hält M g(v) auf ɛ, also f(v) = M g(v) H ɛ. Sei v H. Falls v nicht die Form M w hat folgt f(v) = ɛ H ɛ Sonst ist v = M w und M hält nicht auf w. Dann hält M g(v) nicht auf ɛ, also f(v) = M g(v) H ɛ. Da H nicht entscheidbar ist und H H ɛ kann auch H ɛ nicht entscheidbar sein. Mit Hilfe dieser Menge haben wir dann den Satz von Rice bewiesen Theorem 3.6 Sei S eine nichttriviale Menge berechenbarer Funktionen (d.h. S R). Dann ist die Sprache L(S) = { M M berechnet eine Funktion f S} nicht entscheidbar. Auf den Beweis will ich nicht weiter eingehen. Wichtig aber ist die Bedeutung. Wann immer ich die Menge aller Turingprogramme für eine Menge von berechenbaren Funktionen sei sie nun endlich oder unendlich betrachte, dann habe ich eine nicht entscheidbare Menge. Kurz keine extensionale Eigenschaft von Programmen kann mit einem Verfahren entschieden werden, welches beliebige Programme verarbeiten muß. Korrektheit, ein bestimmtes Verhalten, Terminierung, etc. nichts ist entscheidbar. Für den Nachweis der Unlösbarkeit haben wir also folgende Beweistechniken: Diagonalisierung Reduktionsbeweise explizit mit der Definition von oder durch Konstruktion eines Entscheidungsverfahrens für ein als unlösbar bekanntes Problem, in dem die Entscheidungsprozedur für das neue Problem benutzt wird. Anwendung des Satzes von Rice: Wenn Sie eine Menge von Funktionen vorgesetzt bekommen und die Frage ist die Menge aller Programme dafür entscheidbar, dann müssen Sie nur darauf hinweisen, daß die Menge nicht leer und nicht vollständig ist und schon ist der Satz anwendbar und Sie können mit nein antworten. Das Komplement nicht-entscheidbarer Mengen, die aber rekursiv aufzählbar sind, ist nicht rekursiv aufzählbar 3.3 Einige wichtige Beispiele Diagonalsprache D = {w j M j akzeptiert w j } nicht entscheidbar, aber rekursiv aufzählbar D = {w j M j akzeptiert w j nicht} nicht entscheidbar, nicht rekursiv aufzählbar Halteproblem: H = { M w M hält auf w} nicht entscheidbar, aber rekursiv aufzählbar Halteproblem für leere Eingabe: H ɛ = { M M hält auf ɛ} nicht entscheidbar, aber rekursiv aufzählbar Spezielles Halteproblem SH = { M M hält auf M } nicht entscheidbar, aber rekursiv aufzählbar Universelle Menge U = { M w M akzeptiert w} nicht entscheidbar, aber rekursiv aufzählbar RG = { M w x Σ. M(x) = w} nicht entscheidbar, aber rekursiv aufzählbar Post sches Korrespondenzproblem P KP nicht entscheidbar, nicht rekursiv aufzählbar Programme der total-rekursiven Funktionen T R = { M M hält auf jeder Eingabe} nicht entscheidbar, nicht rekursiv aufzählbar 13 f konstruiert aus M w ein Programmstück, welches zuerst w auf das Band schreibt, den Kopf zurücksetzt, in den Anfangszustand von M wechselt und dann M ausführt. Der Index g(v) besagt, daß für jedes v ein anderes Turingprogramm erzeugt wird.
22 Vorlesung Informatik IV 20 Informationen P ROG f = { M M berechnet f} für f total-rekursiv nicht entscheidbar, nicht rekursiv aufzählbar T IME = { M bin(t)w M hält bei Eingabe w nach maximal t Schritten} entscheidbar Übung: Zeige durch Diagonalisierung: { M i.m(w i ) {0, 1}} ist nicht entscheidbar. Zeige durch Diagonalisierung: { M i.m(w i ) < M(w i+1 )} ist nicht rekursiv-aufzählbar. Zeige durch Reduktion: EQ = { M M M und M berechnen die gleiche Funktion} ist nicht rekursivaufzählbar. Zeige: RG ɛ = { M x Σ. M(x) = ɛ} ist nicht entscheidbar.
23 Vorlesung Informatik IV 21 Informationen 4 NP-Vollständigkeit Neben der Frage nach der prinzipiellen Lösbarkeit von Problemen interessiert sich die theoretische Informatik auch dafür, welche Probleme denn mit einem vertretbaren Aufwand gelöst werden können und welche nicht. Hierzu ist es nötig, die Komplexität von Algorithmen abzuschätzen, und als Maß bietet sich an, diese an der Größe des Problems (also der Größe einer Eingabe) zu messen. Während die allgemeine Komplexitätstheorie intensiv und detailliert die Komplexität verschiedener Programmkonstrukte untersucht, ist NP-Vollständigkeit der Schlüsselbegriff bei der Frage, was denn überhaupt praktisch realisierbar ist. Da die hierbei untersuchten Probleme aus der Praxis diverser Anwendungsgebiete kommen, ist eine genaue Beschreibung der Lösungsalgorithmen in den uns bekannten Kalkülen nicht möglich. An ihre Stelle tritt eine Grobbeschreibung von Algorithmen und genauso eine grobe Komplexitätsanalyse und entsprechend grobe Beweise. Ohne diese Vereinfachung wäre es nicht möglich, überhaupt Ergebnisse zu erzielen. Diese Methode läßt sich wie folgt rechtfertigen: Aufgrund der Church schen These dürfen wir davon ausgehen, daß eine grobe Beschreibung von Algorithmen ausreicht, um eine Lösung anzugeben. Die Frage der Machbarkeit entscheidet sich i.w. am asymptotischen Verhalten eines Algorithmus. Polynomieller Aufwand im Verhältnis zur Größe der Eingabe gilt als vertretbar. Alles darüber hinaus ist zu komplex. Daher interessieren wir uns nur für die Frage polynomiell oder nicht? Die Simulation eines Berechenbarkeitsmodells durch ein anderes, z.b. eine Turingmaschine, erzeugt maximal eine quadratische oder kubische Erhöhung der Rechenzeit. Damit würde ein Ausprogrammieren einer Grobbeschreibung keine signifikante Verschlechterung der Rechenzeit gegenüber der Grobanalyse bringen, solange wir uns nur für die Frage polynomiell oder nicht? interessieren. Dies erlaubt, Turingmaschinen für die Definition der Komplexität heranzuziehen, bei der Analyse aber erheblich grober vorzugehen. So wird oft nur die Anzahl der Schleifendurchläufe gezählt und der Einfachheit halber nach oben abgeschätzt. Der Begriff der NP-Vollständigkeit klassifiziert eine große Menge von etwa 1000 Problemen aus verschiedensten Anwendungsbereichen (Graphentheorie, Operations research, Scheduling, Beweistheorie...), für die es bisher nicht gelungen ist, einen polynomiellen Lösungsalgorithmus zu finden. Alle Probleme sind äquivalent in dem Sinne, daß ein polynomieller Algorithmus für eines dieser Probleme auch polynomielle Lösungen für alle anderen liefert. Deswegen wird sehr intensiv auf diesem Gebiet geforscht, aber man ist der Lösung nicht nähergekommen und ebensowenig einem Beweis, daß dies nicht geht. Dies ist auch die praktische Bedeutung dieses Themas. Sollten Sie einmal an ihrem Arbeitsplatz vor der Aufgabe stehen, einen effizienten Algorithmus für ein gegebenes Problem schreiben zu müssen, kommen aber über ineffiziente Lösungen nicht hinaus, dann lohnt es sich zu prüfen, ob das Problem NP-vollständig ist. Zwar können Sie ihrem Auftraggeber damit nicht beweisen, daß eine gute Lösung unmöglich ist, aber darauf verweisen, daß es bisher trotz intensiver Forschung niemanden in der Welt gibt, der eine effiziente Lösung finden kann. Das Wort NP bedeutet dabei, daß es immerhin möglich ist, eine einmal vorgegebene Löung in polynomieller Zeit zu prüfen. D.h. es ist immer möglich, Algorithmen zu schreiben, die ganz brutal nach Lösungen suchen und anhalten, sobald sie eine (geprüfte) gefunden haben. 4.1 Wichtige Probleme Ein Großteil der NP-vollständigen Probleme stammt mehr oder weniger direkt aus der Graphentheorie. Ich fasse daher ein paar elementare Vorkenntnisse aus der Graphentheorie zusammen: Ein (ungerichteter) Graph ist ein Paar G = (V, E), wobei V eine endliche Menge (Vertices=Ecken/Knoten) und E { {v, v } v, v V v v } (Edges=Kanten) ist. Ein Graph läßt sich darstellen als Liste v 1,..., v n, {v i1, v i 1 },..., {v im, v i m }, die wiederum als Wort über dem ASCII-Alphabet angesehen werden kann. Ein Graph H = (V H, E H ) ist genau dann Subgraph des Graphen G = (V, E) (kurz H G), wenn alle Ecken und Kanten von H auch Ecken bzw. Kanten in G sind: (V H, E H ) (V, E) : V H V E H E
24 Vorlesung Informatik IV 22 Informationen Ein Graph H = (V H, E H ) ist isomorph zum Graphen G = (V, E) (kurz: H = G) genau dann, wenn die Graphen durch Umbenennung der Ecken (eine bijektive Abbildung h : V 2 V ) ineinander überführt werden können: (V H,, E H, ) = (V, E) : h : V V H,.(h bijektiv E H = {{h(u), h(v)} {u, v} E}) Die Größe G eines Graphen G = (V, E) ist die Anzahl E seiner Kanten. Der Komplementärgraph des Graphen G = (V, E) ist der Graph G c = (V, E c ) mit E c = { {v, v } v, v V } E. Eine Clique der Größe k im Graphen G = (V, E) ist eine vollständig verbundene Knotenmenge V V mit V = k. (Dabei heißt vollständig verbunden: v, v V. v v {v, v } E) Eine Knotenüberdeckung (Vertex cover) des Graphen G = (V, E) ist eine Knotenmenge V V mit der Eigenschaft {v, v } E. v V v V Ein Hamilton scher Kreis im Graphen G = (V, E) ist ein Kreis, der nur aus Kanten aus E besteht und jeden Knoten genau einmal berührt. (D.h. eine Permutation π : {1..n} {1..n} mit i < n. {v π(i), v π(i+1) } E {v π(n), v π(1) } E Ein gerichteter Graph ist ein Paar G = (V, E), wobei V eine endliche Menge und E V V ist. Ein Hamilton scher Kreis im gerichteten Graphen G = (V, E) ist ein gerichteter Kreis, der nur aus Kanten aus E besteht und jeden Knoten genau einmal berührt. (Formal ähnlich zu oben) Die meisten Probleme gibt es als Entscheidungs- und als Optimierungsproblem. Lösungen für beide Varianten sind i.a. gleich schwer. Das Optimierungsproblem ist das praktisch interessantere, aber der Komplexitätsbegriff läßt sich leichter für Entscheidungsprobleme erklären. Wegener Kap , Übung 8 Die Entscheidungsprobleme werden charakterisiert durch eine Charakterisierung der zulässigen Eingaben und eine Fragestellung, die zu entscheiden ist. Die zugehörige Sprache, die es zu entscheiden gilt, ist L = {w Σ w zulässige Eingabe w besitzt positive Antwort }. Clique: Gegeben ein Graph G = (V, E) und eine Zahl k IN. Gibt es eine Clique der Größe k? CLIQUE = {(G, k) G Graph k IN G hat Clique der Größe k } Die entsprechenden Optimierungsvarianten lauten: Gegeben ein Graph G = (V, E). Berechne das größte k, so daß G eine Clique der Größe k hat. Gegeben ein Graph G = (V, E). Berechne eine Clique V maximaler Größe Vertex Cover: Gegeben ein Graph G = (V, E) und eine Zahl k IN. Gibt es eine Teilmenge V höchstens k Elementen, so daß aus jeder Kante in G mindestens eine Ecke in V liegt? V C = { (G, k) G Graph k IN V V. V k V Knotenüberdeckung von G } Die Optimierung fragt nach der kleinsten Überdeckung. V mit Hamiltonkreis: Gegeben ein Graph G = (V, E). Gibt es einen Hamilton schen Kreis in G? HC = {G = (v 1,.., v n, E) G Graph π : {1..n} {1..n}. π Hamilton scher Kreis in G } Gerichteter Hamiltonkreis: Gegeben ein gerichteter Graph G. Gibt es einen Hamilton schen Kreis in G? DHC = {G = (v 1,.., v n, E) G gerichteter Graph π : {1..n} {1..n}. π Hamilton scher Kreis in G } Subgraph-Isomorphie: Gegeben zwei Graphen G 1 = (V 1, E 1 ) und G 2 = (V 2, E 2 ). Existiert ein Subgraph H von G 1, der isomorph zu G 2 ist? SGI = {(G 1, G 2 ) G 1, G 2 Graphen H Graph. H G 1 H = G 2 } Die Optimierung fragt nach dem größten isomorphen Subgraphen. Binpacking: Gegeben n Objekte der Größe a 1,...a n und k Behälter der Größe b. Gibt es eine Aufteilung der Objekte auf die Behälter, so daß in keinem Fall die Summe b überschritten wird? BP P = {(a 1,...a n, b, k) a i, b, k IN f : {1..n} {1..k}. j k. i {i f(i)=j} a i b} Die Optimierung fragt nach der kleinsten Anzahl nötiger Behälter.
25 Vorlesung Informatik IV 23 Informationen Knapsack: Gegeben n Objekte mit Gewichten g 1,..., g n und Nutzwerten a 1,...a n sowie ein Rucksack mit Gewichtsschranke G. Gibt es zu einem vorgegebenen Minimalnutzwert A eine Bepackung des Rucksacks, die mindestens den Nutzen A ergibt und die Gewichtsschranke einhält? KP = {(g 1,..., g n, a 1,...a n, G, A) g i, a i, G, A IN J {1,..., n}. ( i J g i G i J a i A) } Die Optimierung fragt nach dem größten erreichbaren Nutzen. Travelling Salesman: Gegeben n Orte und Kosten c ij um vom Ort i zum Ort j zu reisen. Gibt es zu vorgegebenen Maximalkosten B eine Rundreise durch alle Städte, deren Kosten durch B beschränkt sind. T SP = {c 12,..., c n 1,n, B B, c ij IN π : {1..n} {1..n}. π bijektiv n 1 i=1 c π(i)π(i+1) + c π(n)π(1) B } Die Optimierung fragt nach der kostengünstigsten Rundreise. Satisfiability: Ist eine aussagenlogische Formel in KNF erfüllbar? Gegeben m Klauseln c 1,..., c m über n Variablen x 1,..x n. Gibt es eine Belegung a 1,..., a n {0, 1} der Variablen x 1,..x n, welche alle Klauseln erfüllt? (Eine Klausel über x 1,..x n ist die Disjunktion einiger Literale x i bzw. x i. Eine Belegung erfüllt eine Klausel c j, wenn ihre Auswertung den Boole schen Wert 1 ergibt.) SAT = {c 1,..., c m c i Klausel über Variablen x 1,..x n a 1,..., a n {0, 1}. j m. a 1,..., a n erfüllt c j } 3-SAT: Gegeben m Klauseln c 1,..., c m mit je 3 Literalen. Gibt es eine Belegung a 1,..., a n {0, 1} der in den Klauseln vorkommenden Variablen x 1,..x n, welche alle Klauseln erfüllt? Partition: Gegeben n Objekte mit Wert b 1,..., b n. Gibt es eine Aufteilung I {1..n} der Objekte in zwei gleichwertige Teile (d.h. i I b i = i {1..n} I b i )? P ART = {b 1,..., b n b i IN I {1..n}. i I b i = i {1..n} I b i } Multiprozessor-Scheduling: Gegeben n unabhängige Jobs j i mit voraussichtlicher Rechenzeit t(j i ) und m Prozessoren. Gibt es eine Verteilung der Jobs auf die Prozessoren, so daß bei Startzeit t 0 alle Prozesse vor einer gegebenen Deadline t D beendet sind MSP = {j 1,..., j n, t(j 1 ),..., t(j n ),, m, t 0, t D j i, t(j i ), t D, m IN J 1,..., J m. J 1... J m = {j 1,..., j n } i m. t 0 + j J i t(j) t D } Die Optimierung fragt der kleinsten Anzahl von Prozessoren, die nötig ist oder nach der kürzesten Rechenzeit. 4.2 Polynomielle Algorithmen Unsere Komplexitätsbetrachtungen interessieren sich ausschließlich für den schlechtesten Fall (d.h. wir machen eine Worst Case Analyse). Definition 4.1 Die Rechenzeit { der Maschine M bei Eingabe von w ist definiert durch das eindeutig bestimmte k mit q0 w k α q β für ein q Q t M (w) := s falls dies existiert undefiniert sonst Maximale Rechenzeit von M für Eingaben der Länge n: t M (n) := max{t M (w) w = n} (worst case) Eine Funktion f : Σ Σ ist in polynomieller Zeit berechenbar genau dann, wenn eine Turingmaschine M existiert, die f berechnet, und es ein Polynom p : IN IN gibt, so daß t M (w) p( w ) für alle Worte w domain(f) gilt. P ist die Klasse der Probleme, deren Lösung sich immer in polynomieller Zeit gemessen an der Größe der Eingabe berechnen läßt. (P := {Q M, p. M TM und löst Q p Polynomfunktion n.t M (n) p(n)} Für Entscheidungsprobleme: P := {L Σ M, p. χ L ist in polynomieller Zeit berechenbar} Die meisten interessanten Probleme der Praxis liegen leider nicht in P. Für die o.g Probleme sind bisher nur Algorithmen bekannt, die im schlimmsten Fall exponentiell viel Zeit brauchen.
26 Vorlesung Informatik IV 24 Informationen 4.3 Nichtdeterministisch-polynomielle Algorithmen Eine interessante Beobachtung bei diesen Problemen war, daß es sehr leicht ist, die Korrektheit einer Lösung zu überprüfen, sobald diese einmal bekannt war und daß jede mögliche Lösung leicht zu generieren ist. D.h. wäre man in der Lage, zufällig oder durch genügend stark parallele Verarbeitung ein richtige Lösung zu generieren, so würde Generieren und Überprüfen in polynomieller Zeit durchführbar sein. Wegener 3.2 Da alle Probleme auf diese Art handhabbar waren, lohnte es sich, das entsprechende Maschinenmodell genauer zu untersuchen und zu versuchen, die Komplexität in diesem Modell mit der gewöhnlichen in Beziehung zu setzen. Die Betrachtung der sogenannten nichtdeterministischen Turingmaschinen brachte zwar leider nicht den gewünschten Erfolg (man kann weder die Verschiedenartigkeit noch die Identität der entsprechenden polynomiellen Komplexitätsklassen beweisen)aber die Einsicht, daß alle obigen Probleme äquivalent und die schwierigsten nichtdeterministisch polynomiell lösbaren sind. Eine nichtdeterministische Turingmaschine arbeitet wie die gewöhnliche Turingmaschine, legt in δ jedoch nicht mehr eindeutig fest, was zu tun ist. Stattdessen kann es mehrere Alternativen geben. (Möglichkeit einer Parallelverzweigung). Formal drücken wir dies durch eine Relation aus anstelle einer Funktion. Zur Abgrenzung nennen wir die gewöhnliche Turingmaschine auch deterministische Turingmaschine (DTM) und die nichtdeterministische Turingmaschine NTM. Definition 4.2 Eine nichtdeterministische Turingmaschine ist ein 7-Tupel M = (Q, Σ, Γ, B, q 0, δ, F ) mit Q endliche Zustandsmenge Σ endliches (Eingabe-)Alphabet Γ Σ endliches (Band-)Alphabet B Γ Σ (Blankbuchstabe) q 0 Q (Startzustand) δ (Q Γ) (Q Γ {R, L, N}) (Zustandsüberführungsrelation) F Q (Menge der akzeptierenden Endzustände) Eine NTM rechnet so, daß im Zustand q bei gelesenem Symbol a ein beliebiges q, b, op ausgewählt wird mit (q, a, q, b, op) δ und verhält sich dann genauso, wie eine DTM M für die δ (q, a) = (q, b, op) wäre. Wir müssen also nur den Begriff der unmittelbaren Nachfolgekonfiguration entsprechend anpassen und erhalten statt einer Funktion eine Relation. Definition config config α, β Γ. a, a, b Γ. q, q Q. config = αa q aβ config {α q a bβ (q, a, q, b, L) δ} {αa b q β (q, a, q, b, R) δ} {αa q bβ (q, a, q, b, N) δ} (config ist eine mögliche unmittelbare Nachfolgekonfiguration von config) config config n IN. config n config, wobei config 0 config und config n+1 config config. config config config n config 2. Eine NTM M akzeptiert ein Wort w Σ genau dann, wenn α, β Γ. q F. q 0 w α q β 3. Eine NTM M entscheidet L Σ g.d.w. M auf allen Eingaben w Σ stoppt und w akzeptiert genau dann, wenn w L gilt. Man beachte, daß nun eine Relation ist und die Definition des Akzeptierens nun bedeutet es gibt einen Rechenweg, der zu einem akzeptierenden Endzustand führt. Bei deterministischen Maschinen liegt dieser Rechenweg fest, da in jedem Schritt festliegt, was die nächste Konfiguration ist. Unter den nichtdeterministischen Turingmaschinen hat sich die Sonderform der Rate-Verifikations-Maschinen (RV-NTM) als besonders wichtig herausgestellt. Sie bestehen aus zwei Phasen. In der ersten Phase wird nichtdeterministisch ein Wort konstruiert (die mögliche Lösung geraten) und in der zweiten Phase nur noch deterministisch gerechnet (die Lösung verifiziert). Die RV-NTM entspricht dem ursprünglichen Gedanken, der bei den o.g. Problemen aufkam, nämlich der Frage kann ich denn wenigstens in polynomieller Zeit prüfen, wenn mir jemand eine Lösung vorgibt?. Auch für Beweise sind sie einfacher zu handhaben, da man die nichtdeterministische Phase abtrennen kann. Übung 9.1
27 Vorlesung Informatik IV 25 Informationen Die Rechenzeit nichtdeterministischer Maschinen wird nur an akzeptierenden Berechnungen gemessen. Worte, die nicht akzeptiert werden, spielen keine Rolle. Definition 4.4 Die Rechenzeit { der NTM M bei Eingabe von w ist definiert durch min{k q F. q t M (w) := 0 w k α q β} falls M w akzeptiert 0 sonst t M (n) := max{t M (w) w = n} (maximale Rechenzeit von M für Eingaben der Länge n, worst case) N P := Klasse der Sprachen, deren Worte nichtdeterministisch in polynomieller Zeit gemessen an der Größe der Eingabe erkannt werden können. NP := {L Σ M, p. M NTM und entscheidet L p Polynom n IN.t M (n) p(n)} N P ist also die Klasse der Probleme, deren Lösungen man in polynomieller Zeit raten und verifizieren kann. Man fragt sich nun immer noch, ob N P -Probleme auch deterministisch polynomiell zu lösen oder nicht. In anderen Worten: ist es wirklich aufwendiger, eine Lösung (deterministisch) zu konstruieren als eine gegebene Lösung als solche nachzuweisen oder nicht? Die meisten Informatiker vermuten, daß diese Frage mit ja zu beantworten ist, d.h. daß P N P gilt (, da ansonsten der Einfallsreichtum, der für die Konstruktion neuer Lösungen nötig ist, nicht größer wäre als der für das Nachvollziehen einer einmal vorgeführten Lösung. wer Lösungen versteht ist genauso intelligent wie derjenige, der sie findet ). Es gibt aber immer noch die leise Hoffnung, daß vielleicht doch P = N P ist und damit effiziente Algorithmen für fast alle schwierigen Probleme gefunden werden. Weder das eine noch das andere konnte man bis heute beweisen. Sicher ist nur, daß P NP gilt und daß man alle N P Probleme deterministisch in exponentieller Zeit lösen kann. 4.4 Nachweise der NP-Vollständigkeit Was man aber tun kann, ist die Komplexität verschiedener Probleme in N P zu vergleichen und somit Aufschlüsse über ihre Schwierigkeit zu gewinnen. Dabei beschränken wir uns bis auf weiteres auf Entscheidungsprobleme. Um deren Komplexität zu vergleichen, wurde das Konzept der Reduktion, daß wir von der Entscheidbarkeit und Aufzählbarkeit kennen, spezialisiert auf eine Reduktion, die in polynomieller Zeit ausgeführt werden kann. Die Definitionen sind identisch bis darauf, daß die Rechenzeit hinzukommt. Wegener 3.3 Definition 4.5 Eine Sprache L 2 Σ heißt polynomiell reduzierbar auf L 1 Σ (L 2 p L 1 ) genau dann, wenn eine totalrekursive Funktion f : Σ Σ existiert, die in polynomieller Zeit berechenbar ist und für die gilt: w Σ. w L 2 f(w) L 1 Eine Sprache L 1 heißt NP -hart gdw. für alle L 2 NP gilt L 2 p L 1 Eine Sprache L 1 heißt NP -vollständig gdw. gilt L 1 NP L 1 NP -hart. NP C = {L Σ L NP -vollständig } Wie vorher kann man L 2 p L 1 so lesen, daß L 2 eine leichtere Sprache ist als L 1 und daß somit alle guten Eigenschaften von L 1 auch für L 2 gelten und umgekehrt alle schlechten Eigenschaften von L 2 auch für L 1 gelten. N P -harte Probleme sind mindestens so schwer wie Probleme, die in N P liegen, und N P -vollständige Probleme sind die schwersten Probleme, die noch in N P liegen. Per Definition sind alle N P -vollständigen Probleme äquivalent in dem Sinne, daß sie gegenseitig aufeinander polynomiell reduzierbar sind. Lemma L 2 p L 1 L 1 P L 2 P 2. P = NP L NP C. L P P NP L NP C. L P 3. L 1, L 2 NP -vollständig L 2 p L 1 L 1 p L 2 4. L NP -vollständig L NP L 2 NP C. L 2 p L 5. L NP -vollständig L 2 NP C. L 2 p L L p L 2
28 Vorlesung Informatik IV 26 Informationen Die N P Vollständigkeit von Problemen beweist man von der Methode her wie die Unentscheidbarkeit. Für einige wenige, meist konstruierte Probleme wird ein direkter Beweis gegeben, der einiges an neuer Methodik verlangt. Die meisten realen Probleme dagegen beweist man als N P -vollständig, indem man gemäß Lemma ein bekanntes N P -vollständiges Problem auf sie reduziert ( darunterschiebt ). Natürlich darf man nicht vergessen zu zeigen, daß die Probleme auch in NP liegen. Wichtig ist auch, daß man auch für Reduktionsbeweise nur grobe Algorithmen angeben kann, deren Komplexität man abschätzen muß. Es liegt in der Natur der untersuchten Probleme, daß man nicht heruntergehen kann bis auf das Niveau der Turingmaschine. Die Beweise erfordern also ein gewisses Feingefühl dafür, welche Abschätzungen zulässig sind und welche nicht. Der einzige direkte Beweis wurde für die N P -Vollständigkeit des Erfüllbarkeitsproblems SAT gegeben. Der Beweis stellte sich als extrem aufwendig heraus, da alle Berechnungen nichtdeterministischer Turingmaschinen als Formel zu codieren sind. Es ist unrealistisch zu erwarten, daß man einen solchen Beweis selbst entwickeln kann. Sie sollten aber einigermaßen nachvollziehen können, was die Grundidee des Beweises ist. Theorem 4.7 (Satz von Cook) SAT ist NP -vollständig Beweis: Gegeben eine NTM M, die ein beliebiges Problem in polynomieller Zeit löst. Wir stellen die Berechnung von M bei Eingabe von w durch eine aussagenlogische Formel in KNF dar, die erfüllbar ist gdw. M die Eingabe w akzeptiert. Die Formel darf maximal polynomielle Länge gemessen an w haben und muß in polynomieller Zeit berechnet werden können. Das geht ähnlich wie die Simulation von Turingmaschinen durch µ-rekursive Funktionen und dann deren Repräsentierbarkeit als Formel der Arithmetik außer daß wir ohne Quantoren auskommen müssen. Man beschreibt die Übergänge der Konfigurationen, wovon es maximal polynomiell viele geben darf. Dazu brauchen wir Literale für Zustand, Kopfposition und Bandinhalt. Der Rest ist eine ziemliche Detailfummelei immerhin war es ein berühmter Vortrag. Alle anderen Probleme wurden über Reduktionen als N P vollständig bewiesen. Manche Reduktionen sind naheliegend das ist, was wir von Ihnen erwarten manche andere brauchen extrem trickreiche Codierungen. Das Prinzip ist immer das gleiche: Wegener 3.4, Folien Gegeben sei eine Sprache L, die als NP -vollständig zu beweisen ist. 2. Man zeigt, daß L in NP liegt, indem man erklärt wie eine Lösung geraten und verifiziert wird und daß dies in polynomieller Zeit geschieht. (Zuweilen bedarf dies einer kurzen Erklärung). 3. Man transformiert zulässige Eingaben eines anderen NP -vollständigen Problems L 2 in zulässige Eingaben für L. Anders geartete unzulässige Eingaben brauchen nicht betrachtet zu werden. Sie lassen sich leicht erkennen und dann in unzulässige Eingaben für L abbilden (z.b. das leere Wort). Da dies bei jeder Reduktion im Prinzip auf die gleiche Art getan wird, sehen wir das Abfangen unzulässiger Eingaben als unnötigen Ballast an, der nichts zum eigentlichen Beweis beiträgt. Die Transformation ergibt eine Funktion f. 4. Man erklärt, warum die Funktion f in polynomieller Zeit berechnet werden kann. 5. Man zeigt w Σ. w L 2 f(w) L entweder als Äquivalenzkette oder in zwei getrennten Implikationen. Beispiele 3 SAT NP C: 3 SAT NP : man rate eine Belegung der n Variablen und verifiziere dann in polynomieller Zeit (durch boolesches Auswerten), daß alle Klauseln erfüllt werden. SAT p 3 SAT : Jede Klausel von SAT kann in eine äquivalente Menge von Dreierklauseln transformiert werden, die erfüllbar sind, genau dann wenn die Originalklausel erfüllbar ist. Wegener Satz CLIQUE NP C: CLIQUE NP : Bei Eingabe von (G, k) mit G = (V, E) rate man eine Teilmenge V V durch Auswählen (lineare Zeit) und überprüfe dann in quadratischer Zeit, ob v, v V. {v, v } E gilt. 3 SAT p CLIQUE: Eine Eingabe für 3 SAT eine Formel in KNF mit je 3 Literalen pro Klausel muß in eine Zahl k und einen Graphen G = (V, E) umgewandelt werden, der eine k-clique hat, genau dann, wenn die Formel erfüllbar ist.
29 Vorlesung Informatik IV 27 Informationen Sei C = c 1,..., c m mit c i = z i1 z i2 z i3 und z ij {x 1, x 1,..., olx n } eine Eingabe für 3 SAT Wir konstruieren daraus einen Graphen G = (V, E) wie folgt. V := {(i, j) i {1..m} j {1..3} } und E := { {(i, j), (i, j )} i i z ij z i 14 j }. Sei f(c) := (G, m). Dann ist f in polynomieller Zeit berechenbar, da jeder Eintrag (i, j), (i, j ) mit einem Durchlauf der Tabelle für C überprüft werden kann, und es gilt C 3 SAT f(c) CLIQUE: C 3 SAT Es gibt eine Belegung a 1,..., a n der Variablen, die jede Klausel c i erfüllt Es gibt eine Belegung a 1,..., a n, die in jeder Klausel mindestes ein Literal z ij erfüllt (d.h. zu 1 macht) Es gibt Literale z 1j1,..., z mj1, die alle mit 1 belegt werden können Es gibt m Literale z 1j1,..., z mj1 mit z iji z kjk i k z iji z kjk Es gibt eine Menge V = {(1, j 1 ),..., (n, j n )} mit V V, V = m und v, v V. v v {v, v } E Es gibt eine Clique der Größe m in G f(c) = (G, m) CLIQUE Wegener Satz 3.2.5, KP NP C: KP NP ist leicht zu zeigen. (Übung!) Für die Vollständigkeit zeigt man 3 SAT p KP. Dabei wird jede Formel in eine Reihe sehr großer Zahlen transformiert die nur dann einen Nutzen A überschreiten und dabei eine Gewichtsgrenze G einhalten, wenn die Formel erfüllbar ist. Dabei liefert die Belegung der Variablen eine Bepackung des Rucksacks und umgekehrt. Details sind trickreich. Wegener Satz 3.2.5, P ART NP C: P ART NP ist leicht zu zeigen. Für die Vollständigkeit zeigt man KP p P ART, wobei KP die im Beweis der NP -Vollständigkeit von KP konstruierte Teilsprache von KP ist. Wegener Satz BP P NP C: BP P NP ist leicht zu zeigen. Für die Vollständigkeit zeigt man P ART p BP P, indem man die Zahlen b 1,..., b n als Größen der Objekte für BP P ansieht und zwei Behälter der Größe i = 1 n b i / 2 wählt. Details sauber auszuarbeiten stelle ich als Übung. Wegener Satz 3.2.5, DHC NP C: DHC NP ist leicht zu zeigen. Für die Vollständigkeit zeigt man 3 SAT p DHC. Wieder ist die Transformation sehr trickreich Wegener Satz HC NP C: HC NP ist leicht zu zeigen. (Übung!) Für die Vollständigkeit zeigt man DHC p HC. Dabei wird der gerichtete Graph in einen ungerichteten verwandelt, indem einlaufende Kanten von herausgehenden getrennt werden. Gerichtete Kreise im Originalgraphen entsprechen ungerichteten im transformierten Graphen und umgekehrt. Wegener Satz T SP NP C: T SP NP ist leicht zu zeigen. (Übung!) Für die Vollständigkeit zeigt man HC p T SP : Sei G = {(V, E) mit V = {v 1,..., v n } eine Eingabe für HC. 1 wenn {vi, v Dann setzen wir f(g) := (c 12,..., cn 1, n, n) wobei c ij = j } E. 2 sonst (D.h. wir codieren die Existenz von Kanten durch geringere Wegekosten). f ist in linearer Zeit berechenbar, weil simultan zum Lesen von E die Werte der c ij aufgeschrieben werden können. Es folgt G HC π : {1..n} {1..n}. π Hamilton scher Kreis in G π : {1..n} {1..n}. π bijektiv i < n. {v π(i), v π(i+1) } E {v π(n), v π(1) } E π : {1..n} {1..n}. π bijektiv i < n. c π(i)π(i+1) =1 c π(n)π(1) =1 π : {1..n} {1..n}. π bijektiv n 1 i=1 c π(i)π(i+1) + c π(n)π(1) n f(g) := (c 12,..., cn 1, n, n) T SP Wegener Satz 3.2.5, , In anderen Worten: der Graph enthält pro Literal einen Knoten und zwei Knoten sind immer dann verbunden, wenn sie zu verschiedenen Klauseln gehören und nicht komplementär sind.
30 Vorlesung Informatik IV 28 Informationen V C NP C: V C NP : Bei Eingabe von (G, k) mit G = (V, E) rate man durch Auswahl eine Menge V V und überprüfe deterministisch, ob V k gilt und von jeder Kante aus E in G mindestens eine Ecke in V liegt ( {v, v } E. v V v elv ). Hierzu muß man alle Kanten aus E und jeweils alle Knoten aus V überprüfen, wozu V E V 3 Schritte nötig sind (also polynomielle Zeit). Zum Nachweis der NP Vollständigkeit zeigen wir CLIQUE p V C. Es stellt sich sogar heraus, daß die Probleme praktisch äquivalent sind, wenn man auf den Komplementärgraphen übergeht, denn es gilt: V Knotenüberdeckung von G {v, v } E. v V v elv {v, v } E. {v, v } V v, v V V. {v, v } E v, v V V. v v {v, v } E c V V ist Clique im Graphen G c = (V, E c ) Da (G c ) c = G ist, läßt sich obiges Argument auch umkehren, damit es für die Reduktion brauchbar ist, die von CLIQUE aus beginnt. V ist Clique in G genau dann, wenn V V Knotenüberdeckung von G c ist. Außerdem ist V k genau dann, wenn V V V k gilt. Damit liegt die Reduktionsfunktion auf der Hand: Bei Eingabe von (G, k) mit G = (V, E) für CLIQUE sei also f(g, k) = (G c, V k). f ist in polynomieller Zeit berechenbar (man konstruiere E c durch Streichen) und es gilt: (G, k) CLIQUE Es gibt in G eine Clique V der Mindestgröße k Es gibt für G c eine Knotenüberdeckung V V der Maximalgröße V k f(g, k) = (G c, V k) V C Übung 8.6 SGI N P C: wurde ausführlich im Tutorium abgehandelt. Übung 8.7 M SP N P C: bis auf eine andere Formulierung identisch mit Binpacking Klausuraufgabe 5 Übung: Zeige KP NP, HC NP und T SP NP Zeige P ART p MSP Zeige, daß Binpacking N P -vollständig ist. Der Beweis soll den des Satzes etwas klarer ausführen. Größter gemeinsamer Subgraph: Gegeben zwei Graphen G 1 = (V 1, E 1 ) und G 2 = (V 2, E 2 ) sowie eine Zahl k IN. Existieren Subgraphen H 1 von G 1 und H 2 von G 2, mit H 1 = H 2 k, die isomorph sind? LCS = {(G 1, G 2, k) G 1, G 2 Graphen k IN H 1, H 2 Graphen. H 1 G 1 H 2 G 2 H 1 = H2 H 1 k} Zeige, daß LCS NP -vollständig ist. 15 Zeige (ohne die Lösung anzusehen) SGI NP C und MSP NP C 4.5 Ergänzende Themen zur N P -Vollständigkeit Starke NP-vollständigkeit und pseudopolynomielle Algorithmen Wegener 3.5 Das ist der Versuch, den Schwierigkeitsgrad N P -vollständige Probleme genauer zu charakterisieren. Manche Probleme, wie KP und P ART sind eigentlich nur schwach NP -vollständig, da die NP -Vollständigkeit auf der Tatsache beruht, daß extrem große Zahlen gewählt werden können (exponentiell relativ zur ihrer Länge als Binärwort). Beide Probleme besitzen pseudopolynomielle Lösungen, d.h. Algorithmen, die polynomielle Laufzeit relativ zur größten vorkommenden Zahl haben und sind damit in der Praxis effizient lösbar. 15 Lösungsidee: LCS ist verwandt zum Subgraph-Isomorpheproblem. Man muß nur die Zahl k so groß wählen, daß H 2 = G 2 sein muß. Alternativ: Reduktion von CLIQU E wie im Beweis von SGI
31 Vorlesung Informatik IV 29 Informationen Zur Abgrenzung davon haben wir den Begriff stark N P -vollständig geprägt. Da bedeutet: selbst wenn ich ein Problem so einschränke, daß die größte vorkommenden Zahl nur polynomiell in der Länge der Eingabe wächst, bleibt das Problem N P -vollständig. Beispiele hierfür sind T SP und alle Probleme wie SAT, HC, CLIQU E, die keine Zahlprobleme sind, d.h. in denen überhaupt keine großen Zahlen vorkommen. Such- und Optimierungsprobleme Wegener 3.6 Dies behandelt die Optimierungsvarianten der verschiedenen Probleme. Statt nur eine Entscheidung zu treffen gibt es eine Lösung, möchte man diese Lösung konkret berechnen z.b. den tatsächlichen Hamiltonkreis, die TSP-Rundreise, die konkrete Clique... Ein solches Problem wird charakterisiert als Suchproblem Π, also i.w. die Spezifikation eines Algorithmus. Ich will gar nicht genau darauf eingehen. Wichtig ist nur, daß wir die Begriffe der Reduzierbarkeit und der NP -Vollständigkeit entsprechend ergänzen mußten. Das führte dann zur Turing-Reduzierbarkeit T, die wir über Orakelturingmaschinen definiert haben, einem veränderten Begriff von N P -hart über Turing- Reduzierbarkeit einem neuen Begriff NP -leicht und dem Begriff NP -äquivalent anstelle von NP -vollständig. Beispiele für NP -äquivalente Probleme sind alle Varianten von T SP und von CLIQUE Alle N P -vollständigen Probleme sind N P -äquivalent, aber nicht umgekehrt, da N P -äquivalente Probleme nicht unbedingt in NP liegen müssen, sondern nur NP -leicht zu sein haben. (Da co-np auch NP-leicht ist und man NP co NP annimmt, ist zu vermuten, daß da ein echter Unterschied ist). Fast gute Lösungen für NP-Probleme Wegener 3.7,3.8, Folien Ergänzung 41 Um das NP -Problem zu umgehen, gibt es die Möglichkeit, sich mit sub-optimalen Lösungen zufriedenzugeben. Für Optimierungsprobleme wie T SP, KP, BP P sind dies Approximationsalgorithmen, welche in polynomieller Zeit eine Lösung berechnen, die nur wenig von der optimalen Lösung abweichen. Begriffe wie Güte das Verhältnis des berechneten Wertes zum Optimum spielen eine Rolle und ich habe an einigen Beispielen gezeigt, was NICHT geht. Wird bei ganzzahligen Problemen eine Approximation zu gut, dann wird sie zur Entscheidungsfunktion. Es gibt sehr gute Approximationen für KP, aber keine mit konstantem Fehler Für Binpacking kann man die Güte 11/9 erreichen, aber nicht in kleinen Fällen. Für T SP gibt es keine endliche Güte, solange die Dreiecksungleichung nicht gilt. Ansonsten kann man 3/2 erreichen. Bei Entscheidungsproblemen kann man Probabilistische Algorithmen für fast sichere Entscheidungen konstruieren. Diese arbeiten mit Zufallsvariablen und treffen ihre Entscheidungen in polynomieller Zeit, wobei sie nur in extrem wenigen Fällen falsche Entscheidungen treffen die Fehlerwahrscheinlichkeit des Algorithmus liegt unter der für einen Hardwarefehler. Ein Beispiel hierfür ist ein Primzahltest, der linear in der Bitlänge der Zahl arbeitet und bei k Durchläufen einen Fehler von weniger als 2 k hat. Wir haben 4 Kriterien, oder Sprachklassen angegeben, die wir PP, BPP, RP und ZPP genannt haben (Fehler weniger als 1/2, weniger als 1/2 - ɛ, kein falsches ja sonst 1/2, keine Falschaussage aber weiß nicht). Sobald man einen BPP-Algorithmus angeben kann, lohnt es sich zu iterieren und man kann den Fehler beliebig drücken. Bei RP Algorithmen reichen sogar nur k Durchläufe für den Maximalfehler 2 k.
32 Vorlesung Informatik IV 30 Informationen 5 Formale Sprachen In unserem letzten Block wollen wir uns der Beschreibung von Algorithmen widmen, also die Eigenschaften der formalen Sprachen ansehen, die man braucht um Programme so zu schreiben, daß ein Compiler analysieren kann, was gemeint ist. Es gibt im wesentlichen 3 Arten, eine formale Sprache zu charakterisieren: Spezifikation durch mathematische Beschreibung: z.b. L = {w Σ n IN. w = 0 n 1 n } Akzeptierung der Worte der Sprache z.b. durch eine Turingmaschine, die L erkennt. Generierung der Worte der Sprache durch ein Erzeugungsverfahren, z.b. als die Worte, die durch die folgenden zwei Regeln konstruiert werden: 1. ɛ L 2. w L 0 w 1 L Die dritte Form führt uns zu den sogenannten Grammatiken, die zweite dann zu verschiedenen Maschinenmodellen, welche alle als Spezialisierung der Turingmaschinen aufgefasst werden können. 5.1 Grammatiken Grammatiken sind Regelsysteme, die Beschreiben, wie die Worte einer Sprache zu generieren sind. Ich fasse die Definitionen knapp zusammen, da viele Stichworte auf den Folien genannt sind. Wegener 5.1 Definition 5.1 (Grammatik) Folie 43 Eine Grammatik ist ein 4-Tupel G = (T, V, S, P ) mit T, V disjunkte endliche Alphabete (T : Terminalzeichen der Sprache, V : Hilfszeichen (Variablen) ) S V (Startsymbol) P (V T ) + (V T ) endliche Menge (Produktionen) Statt (l, r) P schreiben wir l r P Die von G erzeugt Sprache ist L(G) {w T S w} wobei w z n IN. w n z w 0 z w =z w n+1 z x (V T ). w x x w z x, y (V T ). l r P. w =x l y z =x r y n z D.h. Grammatiken erzeugen Worte durch sukzessive Anwendung der Regeln bis Worte entstanden sind, die ausschließlich aus Terminalsumbolen bestehen. Alle anderen Zwischenerzeugnisse oder Sackgassen interessieren nicht. Die formale Definition ist ähnlich zu der, die wir bei den Turingmaschinen benutzt haben. Wichtig aber ist, daß der Begriff der Ableitung kein Verfahren ist. Es liegt nicht fest, welche Regel wann anzuwenden ist. Aber das ist ja auch egal, den wir interessieren uns für die Gesamtheit aller erzeugten Worte über T. Beispiel: G = ({0, 1}, {S, A, B, C}, S, P ) mit P = {S B, S CA, A 0B, B C1, B 0, C0 ɛ} Ableitungen: S B C1 (kein Terminalwort) S CA C0B B 0 Wie die Überführungsfunktionen bei den Turingmaschinen ist das Regelsystem bei Grammatiken das wichtigste. Alles andere ergibt sich aus dem Kontext oder durch Konventionen. Gibt man eine Grammatik für eine vorgegebene Sprache an, so muß man auch beweisen, daß die erzeugte Sprache die gewünschte Sprache ist. Beispiel: L = {w {0, 1} n IN. w = 0 n 1 n }. Die Grammatik hierzu formalisiert das Beispiel von eben. G = ({0, 1}, {S}, S, {S ɛ, S 0 S 1}). Beispiele einer Ableitung: S 0 S S Um zu beweisen, daß L(G) = L gilt, analysieren wir die Grammatik und sehen: wenn G in n+1 Schritten ein Terminalwort ableitet, dann hat es die Form 0 n 1 n und umgekehrt. w {0, 1}. n IN. S n+1 w w = 0 n 1 n Wir zeigen dies durch Induktion über n.
33 Vorlesung Informatik IV 31 Informationen Für w {0, 1} und n = 0 gilt: S 1 w S w (S w) P w = ɛ = Es gelte w {0, 1}. S n+1 w w = 0 n 1 n und es sei v {0, 1} S n+2 v x {0, 1, S} +. S x x n+1 v S 0 S 1 n+1 v w {0, 1}. S n+1 w v = 0w1 v = 0 n+1 1 n+1 Da S kein Terminalsymbol ist gilt w {0, 1}. (S 0 w) und daraus folgt L(G) = {w {0, 1} S w} = {w {0, 1} n IN.S n+1 w} = {w {0, 1} n IN.w = 0 n 1 n } = L
34 Vorlesung Informatik IV 32 Informationen Im Normalfall sind Korrektheitsbeweise für Grammatiken verhältnismäßig aufwendig, wenn man nicht auf die Induktion verzichtet. Es lohnt sich daher erst einmal die nötigen Behauptungen aufzustellen, welche die Struktur einer Ableitung beschreiben und ggf. auf die Ausführung der Detailsbeweise bis auf weiteres zu verzichten. Im Prinzip könnten Grammatiken beliebig komplizerte Regeln verwenden, insbesondere also auch Terminalworte wieder umwandeln. Für die Beschreibung Von Programmiersprachen ist dies jedoch unpraktisch, da eine automatische Analyse dann nicht mehr durchzuführen ist. Es haben sich daher gewisse Einschränkungen an die Regeln herauskristallisiert, welche für verschiedene Verwendungszwecke sinnvoll sind. Definition 5.2 (Klassifizierung von Grammatiken) Folie 44 Eine Grammatik G=(T, V, S, P ) heißt allgemein (Typ 0), wenn es keine Einschränkung an P gibt kontextsensitiv (Typ 1), wenn gilt p P. p= S ɛ p= x A y x v y (A V, v ɛ, x, y (V T ) ) (S ɛ ist nur erlaubt, wenn S nicht rechts in einer anderen Regel auftaucht) expansiv, wenn gilt p P. p= S ɛ p= u v u v (u (V T ) +, v (V T {S}) + ) kontextfrei (Typ 2), wenn gilt p P. p= A v (A V ) linear, wenn gilt p P. p= A ɛ p= A u B v (A, B V, u, v T ) rechtslinear (Typ 3), wenn gilt p P. p= A ɛ p= A v B linkslinear, wenn gilt p P. p= A ɛ p= A B v (jeweils A, B V, v T ) Die Klassifizierung der Sprachen geschieht analog Die Grammatik aus dem Beispiel eben war linear und kontextfrei. Achtung: Die Definition von Wegener für kontextsensitiv ist eigentlich die Definition für expansiv und noch ein wenig eingeschränkter. Das macht aber nichts, da von den eben genannten Klassen einige zusammenfallen. Lemma 5.3 Folie L rechtslinear L linkslinear (L regulär) 2. L kontextsensitiv L expansiv (Vgl Übung 11.1-a) Damit bleiben 4 bedeutende Sprachklassen übrig, nämlich die allgemeinen, kontextsensitiven, kontextfreien und rechtslinearen Sprachen, welche mit Typ 0 bis Typ 3 bezeichnet wurden. Für die Typ-3 Sprachen hat sich auch der Begriff regulär eingebürgert. Definition 5.4 (Chomsky Hierarchie) L i {L T G vom Typ i. L = L(G)} Die Hierarchie dieser Sprachen nennt man Chomsky Hierarchie, da jede Sprachklasse echt in derjenigen mit dem kleineren Index enthalten ist. Theorem 5.5 L 3 L 2 L 1 L 0 Auf die Einzelbeweise will ich gar nicht eingehen. Es ist nur wichtig, einige Vertreter zu kennen. {0 n 1 n n IN} L 2 L 3 {0 n 1 n 2 n n IN} L 1 L 2 {w i {0, 1} M i akzeptiert w i } L 0 L 1 Zu jeder Sprachklasse haben wir im Laufe der Vorlesung eine Klasse von Algorithmen bzw. ein Maschinenmodell angegeben, das genau die Sprachen dieser Klasse erkennen kann. Das ist Für L 0 die Turingmaschine ohne jede Einschränkung L 0 = {L T L rekursiv aufzählbar} Für L 1 die linear platzbeschränkte nichtdeterministische Turingmaschine L 1 = NT AP E(n) Für L 2 der nichtdeterministische endliche Kellerautomat (NPDA) L 2 = {L T NPDA A. L=L ɛ (A)} Für L 3 der endliche Automat (DFA,NFA) L 3 = {L T DFA A. L=L(A)} Die Beweise waren konstruktiv und ich habe sie Ihnen z.t. sehr ausführlich vorgeführt. Hier im Repetitorium will ich nicht weiter darauf eingehen. Merken Sie sich aber unbedingt die hier genannten Zusammenhänge. Folie 46, Wegener 5.2, Folie 48, Wegener 5.3, Folie 50, Wegener 5.4 Folien 58-61, Wegener 7
35 Vorlesung Informatik IV 33 Informationen Übung: Gegeben sei eine endliche Menge {w 1,.., w n } T. Gib eine rechtslineare Grammatik für L 1 = {w 1,.., w n } und zeige ihre Korrektheit Gib eine kontextfreie Grammatik für L 2 = {a 3n b n n IN} und zeige ihre Korrektheit Gib eine kontextfreie Grammatik für L 3 = {a n b m m, n IN m n} und L 4 = {w {a, b} w enthält gleich viele a s wie b s} (ohne Korrektheitsbeweis). Gib eine expansive Grammatik für L 5 = {a n b n c n n IN} (ohne Korrektheitsbeweis). Gib eine Grammatik für L 6 = {a 2n n IN} (ohne Korrektheitsbeweis). Gegeben sei die kontextfreie Grammatik G 7 = ({a, b}, {S}, S, {S a, S b, S SS}). Gib eine rechtslineare Grammatik an, welche die gleiche Sprache erzeugt (ohne Korrektheitsbeweis). 16 Gib 3 verschiedene Ableitungen für das Wort w = abba in der Grammatik G Typ-3 Sprachen, endliche Automaten und reguläre Ausdrücke Von den ebengenannten Automaten sind im Rahmen dieser Vorlesung abgesehen von den bereits besprochenen Turingmaschinen nur die endlichen Automaten von weiterer Bedeutung. Endliche Automaten arbeiten gewissermaßen umgekehrt zu rechtslinearen Grammatiken. Während diese ein Wort von links nach rechts erzeugen, verarbeiten endliche Automaten eine Eingabe von links nach rechts ohne sich viel merken zu können. D.h. sie sind etwa dasselbe wie Turingmaschinen ohne das Arbeitsband. Wegener 4.1 Definition 5.6 (Deterministischer endlicher Automat) Folie 47 Ein (deterministischer) endlicher Automat (DFA) ist ein 5-Tupel A = (Q, Σ, q 0, δ, F ) mit Q endliche Menge (Zustände) Σ endliches Alphabet q 0 Q (Startzustand) δ : (Q Σ) Q (Zustandsüberführungsfunktion) F Q (Menge der akzeptierenden Endzustände) Die von A erkannte Sprache ist die Menge L(A) = {w Σ q F. q 0 w q}, wobei q w q eine Abkürzung für δ (q, w) = q ist und δ rekursiv definiert ist: δ (q, ɛ) = q δ (q, w a) = δ(δ (q, w), a) Wie arbeitet also ein endlicher Automat? In jedem Schritt verarbeitet er ein Symbol und geht entsprechend in einen anderen Zustand über, dann liest er das nächste Symbol usw. Ein Wort wird akzeptiert, wenn man nach der Verarbeitung in einem akzeptierenden Endzustand landet. Das wird formal durch δ ausgedrückt. Das Symbol soll die Verwandschaft zu den Konfigurationsübergängen deutlich machen. Wie Turingmaschinen kann man auch endliche Automaten durch Diagramme oder Tabellen beschreiben. Ich gehe davon aus, daß Ihnen endliche Automaten als Schaltkreise schon aus frühren Vorlesunge bekannt sind und Sie in der Lage sind, endliche Automaten zu konstruieren. Wichtig ist aber auch hier ein Korrektheitsbeweis zumindest aber eine Begründung. Beispiel: Ein Automat der die Sprache L = {0 m 1 n n, m IN} erkennt. Der Automat ist so einfach, daß wir ihn direkt hinschreiben können. δ 0 1 q 0 q 0 q 1 q 1 q f q 1 q f q f q f Q, Σ, q 0, δ sind klar, F = {q 0, q 1 } (Diagramm malen!) Ich zeige L(A) = {w {0, 1} q F. q 0 w q} = L einmal extrem ausführlich. 16 L 4 siehe Salomaa, Beispiel 1.2, Seite 5: S ɛ, S asa, S bsb, S SS L 5 siehe Salomaa, Beispiel 2.1, Seite 11: S abc, S axbc, Xb bx, Xc Y bcc, by Y b, ay aax, ay aa L 6 siehe Salomaa, Beispiel 2.4, Seite 13: S Y XY, Y X Y Z, ZX XXZ, ZY XXY, X a, Y ɛ G 7 : S ax, S bx, X ax, X bx, X ɛ
36 Vorlesung Informatik IV 34 Informationen Wir stellen zunächst eine Reihe einfacher Behauptungen auf: m IN. q 0 0 m q 0 (Triviale Induktion) n IN. q 1 1 n q 1 (Triviale Induktion) m, k IN. q 0 0 m 1 k+1 q 1 (Summe der Beiden) u {0, 1}. q 1 0 u q f (Triviale Induktion) m, k IN. u {0, 1}. q m 0 1 k+1 0 u q f (Summe der drei) u {0, 1}. q f u q f (Triviale Induktion) Sei w L. Dann m, n IN. w = 0 m 1 n. Falls n = 0, dann folgt q 0 w q 0, also w L(A). Andernfalls n = k + 1, also q 0 w q 1, also w L(A). Sei w L. Dann gibt es v, v {0, 1} mit w = v 10 v und v = 0 m 1 k für gewisse m, k IN. Es folgt q 0 v 1 q 1 also q 0 v 10 q f also q 0 w = q 0 v 10 v q f, d.h. w L(A). Insgesamt folgt also w L w L(A). Bei komplexeren Sprachen muß man derartige Beweise natürlich straffen und darf einfache Loops (in einem Zustand) auch ohne Beweis in Behauptungen aufnehmen. Den Zusammenhang zwischen endlichen Automaten und Typ-3 Grammatiken habe ich ausführlich behandelt. Die Konstruktionen sind auf Folie 48 zusammengefaßt und sind sehr hilfreich wenn man schon einen Automaten für eine Sprache kennt und eine Grammatik haben will und umgekehrt. Als Mittelweg brauchten wir dafür den nichtdeterministischen endlichen Automaten. Wegener 4.4 Definition 5.7 (Nichtdeterministischer endlicher Automat) Folie 49 Ein nichtdeterministischer endlicher Automat (NFA) ist ein 5-Tupel A = (Q, Σ, q 0, δ, F ) mit Q endliche Menge (Zustände) Σ endliches Alphabet q 0 Q (Startzustand) δ : (Q Σ) P(Q) (Zustandsüberführungsfunktion) F Q (Menge der akzeptierenden Endzustände) Die von A erkannte Sprache ist die Menge L(A) = {w Σ q F. q 0 w q} = {w Σ δ (q 0, w) F }, wobei q w q eine Abkürzung für q δ (q, w) ist und δ rekursiv definiert ist: δ (q, ɛ) = {q} δ (q, w a) = q δ (q,w) δ(q, a) Nichtdeterministische Automaten können in äquivalente deterministische umgewandelt werden, wenn man eine Potenzmengenkonstruktion vornimmt. Auch dieses Verfahren ist auf der Folie 48 beschrieben. Dabei entstehen allerdings eine Menge unnötiger und redundanter Zustände, die wir wieder entfernen können. Das Verfahren ist einfach: man eliminiert erst einmal überflüssige Zustände, die von q 0 nicht erreicht werden können das kann man an einem Diagramm sofort sehen, wenn man die eingehenden Pfeile rückverfolgt und dann fassen wir äquivalente Zustände das sind die Zustände, von denen man mit exakt denselben Worten in einen Endzustand gerät zu einem zusammen. Diese Konstruktion nennt man Äquivalenzklassenautomat und das gesamte Verfahren Minimierung. Von Hand ist es leicht auszuführen. Will man es automatisieren und Beweise darüber führen, dann wird es aufwendig. Wegener 4.2 Beispiel: a,b Nach Minimierung a,b q0 a q1 a. q2 a q3 a,b a,b a q0 q1 q2 q3 b b a b b q4 q5 q6 a,b b a,b q6 a,b a b q7 Der Zustand q7 ist überflüssig. Wir stellen fest daß q2 und q5 äquivalent sind und fassen sie zusammen, und anschließend tun wir dasselbe mit q1 und q4
37 Vorlesung Informatik IV 35 Informationen Die 2-Wege Automaten Automaten die ein einmal gelesenes Symbol später noch einmal ansehen dürfen und praktisch einen Lesekopf über dem Wort hin und herbewegen dürfen Sie erst einmal vergessen. Sie solten nur wissen, daß es sie gibt und daß sie ebenfalls nur die regulären Sprachen erkennen. Wegener 4.5 Eine weitere Charakterisierung regulärer Sprachen ergeben die regulären Ausdrücke. Definition 5.8 (Reguläre Ausdrücke) Wegener Die Menge der regulären Ausdrücke über dem Alphabet Σ wird durch die folgenden Regeln definiert 1., ɛ und alle Elemente a Σ sind reguläre Ausdrücke. 2. Wenn A 1 und A 2 reguläre Ausdrücke sind, dann sind auch (A 1 )+(A 2 ), (A 1 ) (A 2 ) und (A 1 ) reguläre Ausdrücke. 3. Alle regulären Ausdrücke können nur durch endliche Anwendung der Regeln 1 und 2 erzeugt werden. Klammern dürfen unter Verwendung der folgenden Prioritäten fortgelassen werden. bindet stärker als und dies stärker als +. Das -Symbol darf weggelassen werden. Als Abkürzung dürfen folgende Ausdrücke ebenfalls verwandt werden: {a 1..a n } für a a n, A + 1 für (A 1 )(A 1 ) Die Sprache L(A) eines regulären Ausdrucks ist wie folgt definiert : 1. L( ) =, L(ɛ) = {ɛ} L(a) = {a} für a Σ 2. L( (A 1 ) + (A 2 ) ) = L(A 1 ) L(A 2 ), L( (A 1 )(A 2 ) ) = L(A 1 )L(A 2 ) = {u v u L(A 1 ) v L(A 2 )}, L( (A 1 ) ) = (L(A 1 )) Es gibt sogar ein Verfahren, das endliche Automaten in reguläre Ausdrücke umwandelt. Dies ist aber recht aufwendig und praktisch nicht zu verwenden. Sie müssen daher reguläre Ausdrücke von Hand entwerfen. Wegener Beispiel: Der im letzten Beispiel konstruierte Automat erkennt die Sprache, welche durch den regulären Ausdruck (a+b)(a+b)a(a+b) beschrieben wird. Man erzeugt diesen Ausdruck, indem man den Automaten von den Endzuständen her analysiert und bis zum Startzustand zurückgeht. Lemma 5.9 Die folgenden Aussagen über eine Sprache L Σ sind äquivalent 1. L wird durch eine rechtslineare Grammatik generiert. 2. L wird von einem deterministischen endlichen Automaten akzeptiert. 3. L wird von einem nichtdeterministischen endlichen Automaten akzeptiert. 4. L wird von einem 2-Wege Automaten akzeptiert. 5. L wird durch einen regulären Ausdruck beschrieben. Um nachzuweisen, daß eine Sprache L nicht regulär ist, kann man das Pumping Lemma verwenden. Es gibt eine notwendige Bedingung an Typ-3 Sprachen. Ist diese verletzt, so kann die Sprache nicht mehr regulär sein. Theorem 5.10 (Pumping Lemma) Für jede Sprache L L 3 gibt es ein n IN, so daß jedes z L mit z n sich schreiben läßt als z = u v w mit v ɛ, u v n und u v i w L für alle i IN. Das Kriterium ist nicht hinreichend, kann also für den Nachweis der Regulärität nicht benutzt werden. Etwas ähnliches gibt es übrigens auch für kontextfreie Grammatiken. Beispiel: L = {x x x {0, 1} } L 3 Übung 12.3 Wir zeigen, daß L das Pumping Lemma nicht erfüllt, indem wir zu jeder Konstanten n ein Wort z L angeben, welches das Pumping Lemma verletzt. Es sei n IN beliebig. Wir wählen z = x x L mit x = (10) n = } {{ }. Es gilt z = 4n n. Sei n mal z = u v w eine Zerlegung von z mit u v n und v ɛ. Wegen u v n muß u v ein Anfangsstück von x sein, da x bereits die Länge 2n hat. Wir unterscheiden 2 Fälle:
38 Vorlesung Informatik IV 36 Informationen v ist gerade: Dann hat v die Form (10) k oder (01) k. Im ersten Fall ist u v 2 w = } {{ } u Im zweiten Fall ist u v 2 w = } {{ } u } {{ } v } {{ } v } {{ } v } {{ } v v ist ungerade: Dann hat v die Form (10) k 1 oder 0(10) k. Im ersten Fall u v 2 w = } {{ } u Im zweiten Fall u v 2 w = } {{ } u } {{ } v } {{ } v } {{ } v } {{ } v } {{ x} = (10) n+k (01) n L w = (10) n+k (01) n L x } {{ } w x } {{ } w x } {{ } w In allen möglichen Fällen ist also u v 2 w L und somit das Pumping Lemma verletzt. Es folgt L L 3. Lemma 5.11 (Eigenschaften von L 3 ) Wegener Für jeden DFA A kann in linearer Zeit entschieden werden, ob L(A) = gilt. Für jeden DFA A kann in linearer Zeit entschieden werden, ob L(A) = Σ gilt. Für jeden DFA A kann in linearer Zeit entschieden werden, ob L(A) endlich ist. Für zwei DFA s A und A kann in linearer Zeit entschieden werden, ob L(A) = L(A ) ist. Für zwei DFA s A und A kann in linearer Zeit entschieden werden, ob L(A) L(A ) ist. 2. L 3 ist abgeschlossen gegen Komplement, Vereinigung, Durchschnitt, Differenz, Quotientensprachenbildung, Konkatenation, Konkatenationsabschluß, Substitutionen und inverse Homomorphismen. Es gibt effiziente Verfahren, welche die entsprechenden Automaten aus bereits gegebenen konstruieren. L L Übung: Gegeben die Sprache L 8 = {w {a, b, c} w enthält abbc als Teilwort} Gib für L 8 eine Typ-3 Grammatik, einen regulären Ausdruck, einen nichtdeterministischen endlichen Automaten und einen deterministischen endlichen Automaten an. Beweise die Korrektheit der Grammatik und des deterministischen endlichen Automaten. Die Sprache L 9 bestehe aus den Worten w {a, b}, die mit a beginnen, mit b enden, das Teilwort aaa nicht enthalten, und deren Länge durch 3 teilbar ist. Gib eine mathematische Beschreibung von L 9 und konstruiere einen endlichen Automaten, der L 9 erkennt. Gib einen regulären Ausdruck an für die Sprache, die von der Grammatik ({a, b}, {S, X, Y }, S, {S abx, S ay, X aas, X bx, Y ax, Y b}) erzeugt wird. Gib eine Typ-3 Grammatik an für die Sprache, die von dem regulären Ausdruck (aa + bb a + abb a) erzeugt wird. 5.3 Kontextfreie Sprachen Kontextfreie Sprachen sind die einzige Sprachklasse, welche sich sinnvoll als Basis für den Entwurf von Programmiersprachen verwenden lassen. Typ-1 und Typ-0 Sprachen sind dafür zu kompliziert und Typ-3 Sprachen zu einfach (diese kann man nur für die Beschreibung sehr elementarer Konstrukte wie korrekte Zahlen etc. verwenden). Sie sollten daher ihre wichtigsten Eigenschaften und Konzepte kennen. Eindeutigkeit ist eine erwünschte Eigenschaft kontextfreier Grammatiken, weil dann Worte i.w. nur auf eine Art abgeleitet werden können. Das macht die Syntaxanalyse einfacher. Nicht jede kontextfreie Grammatik ist eindeutig. Folie 51, Wegener 6.1.
39 Vorlesung Informatik IV 37 Informationen Die Chomsky-Normalform ist eine sehr wichtige Normalform kontextfreier Grammatiken. Sie erleichtert Entscheidungs- und Analyseverfahren und vor allem viele Beweise über die Eigenschaften kontextfreier Grammatiken. Bedingung ist, daß aus einem Hilfssymbol nur zwei genau Hilfssymbole oder ein Terminalsymbol abgeleitet werden. Man kann jede kontextfreie Grammatik in quadratischer Zeit auch Chomsky-Normalform bringen. Folie 52, Wegener 6.2 Einen einfachen Syntaxanalyse-Algorithmus haben wir kennengelernt. Er heißt Cocke-Younger-Kasami- Algorithmus und arbeitet in kubischer Zeit. Folie 53, Wegener 6.3 Auch für kontextfreie Sprachen gilt eine Art Pumping-Lemma. Es ist dem der regulären Sprachen sehr ähnlich, teilt aber ein Wort in 5 Teile auf von denen 2 iteriert werden. Folie 54, Wegener 6.4 Abschlußeigenschaften und Entscheidbarkeitsfragen habe ich Ihnen auf zwei Folien zusammengestellt. Bis auf Komplement und Durchschnitt sind die Typ-2 Sprachen abgeschlossen, aber fast nichts ist entscheidbar. Folie 55-56, Wegener Zum Schluß haben wir schließlich noch ein Maschinenmodell besprochen, welches genau zu den kontextfreien Sprachen paßt. Ich habe dazu zunächst eine weitere Normalform die Greibach Normalform vorgestellt und dann das Maschinenmodell die nichtdeterministischen Automaten mit Kellerspeicher (NPDA) erklärt und gezeigt, daß man eine kontextfreie Grammatik in Greibach Normalform in einen Kellerautomaten umwandeln kann, der die gleiche Sprache erkennt und umgekehrt. Sie sollten i.w. wissen, welche Automaten zu den kontextfreien Sprachen gehören und daß die Umformung zwischen Automat und Grammatik konstruktiv durchgeführt werden kann. Folie 57-61, Wegener 7.
Informationsblatt Induktionsbeweis
Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln
Primzahlen und RSA-Verschlüsselung
Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
Einführung in die Algebra
Prof. Dr. H. Brenner Osnabrück SS 2009 Einführung in die Algebra Vorlesung 13 Einheiten Definition 13.1. Ein Element u in einem Ring R heißt Einheit, wenn es ein Element v R gibt mit uv = vu = 1. DasElementv
Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395
Deterministische Turing-Maschinen (DTM) F3 03/04 p.46/395 Turing-Machine Wir suchen ein Modell zur formalen Definition der Berechenbarkeit von Funktionen und deren Zeit- und Platzbedarf. Verschiedene Modelle
Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.
Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,
1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
Gleichungen Lösen. Ein graphischer Blick auf Gleichungen
Gleichungen Lösen Was bedeutet es, eine Gleichung zu lösen? Was ist überhaupt eine Gleichung? Eine Gleichung ist, grundsätzlich eine Aussage über zwei mathematische Terme, dass sie gleich sind. Ein Term
7 Rechnen mit Polynomen
7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn
Beweisbar sichere Verschlüsselung
Beweisbar sichere Verschlüsselung ITS-Wahlpflichtvorlesung Dr. Bodo Möller Ruhr-Universität Bochum Horst-Görtz-Institut für IT-Sicherheit Lehrstuhl für Kommunikationssicherheit [email protected] 6
Grundlagen der Theoretischen Informatik, SoSe 2008
1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)
Mächtigkeit von WHILE-Programmen
Mächtigkeit von WHILE-Programmen Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 26. November 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit
Übung Theoretische Grundlagen
Übung Theoretische Grundlagen Berechenbarkeit/Entscheidbarkeit Nico Döttling November 26, 2009 INSTITUT FÜR KRYPTOGRAPHIE UND SICHERHEIT KIT University of the State of Baden-Wuerttemberg and National Laboratory
Theoretische Informatik I
Theoretische Informatik I Einheit 2.4 Grammatiken 1. Arbeitsweise 2. Klassifizierung 3. Beziehung zu Automaten Beschreibungsformen für Sprachen Mathematische Mengennotation Prädikate beschreiben Eigenschaften
Programmiersprachen und Übersetzer
Programmiersprachen und Übersetzer Sommersemester 2010 19. April 2010 Theoretische Grundlagen Problem Wie kann man eine unendliche Menge von (syntaktisch) korrekten Programmen definieren? Lösung Wie auch
8. Quadratische Reste. Reziprozitätsgesetz
O Forster: Prizahlen 8 Quadratische Reste Rezirozitätsgesetz 81 Definition Sei eine natürliche Zahl 2 Eine ganze Zahl a heißt uadratischer Rest odulo (Abkürzung QR, falls die Kongruenz x 2 a od eine Lösung
Lineare Gleichungssysteme
Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der
1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
Die Komplexitätsklassen P und NP
Die Komplexitätsklassen P und NP Prof. Dr. Berthold Vöcking Lehrstuhl Informatik 1 Algorithmen und Komplexität RWTH Aachen 3. Dezember 2009 Berthold Vöcking, Informatik 1 () Vorlesung Berechenbarkeit und
50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse 11 13. 501322 Lösung 10 Punkte
50. Mathematik-Olympiade. Stufe (Regionalrunde) Klasse 3 Lösungen c 00 Aufgabenausschuss des Mathematik-Olympiaden e.v. www.mathematik-olympiaden.de. Alle Rechte vorbehalten. 503 Lösung 0 Punkte Es seien
Theoretische Informatik SS 04 Übung 1
Theoretische Informatik SS 04 Übung 1 Aufgabe 1 Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären Codierung hat man nur ein Alphabet mit einem Zeichen - sagen wir die
Grammatiken. Einführung
Einführung Beispiel: Die arithmetischen Ausdrücke über der Variablen a und den Operationen + und können wie folgt definiert werden: a, a + a und a a sind arithmetische Ausdrücke Wenn A und B arithmetische
Mathematische Maschinen
Mathematische Maschinen Ziel: Entwicklung eines allgemeinen Schemas zur Beschreibung von (mathematischen) Maschinen zur Ausführung von Algorithmen (hier: (partiellen) Berechnungsverfahren). Mathematische
Grundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 15: Reguläre Ausdrücke und rechtslineare Grammatiken Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Wintersemester 2008/2009 1/25 Was kann man mit endlichen
Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!
Mathefritz 5 Terme und Gleichungen Meine Mathe-Seite im Internet kostenlose Matheaufgaben, Skripte, Mathebücher Lernspiele, Lerntipps, Quiz und noch viel mehr http:// www.mathefritz.de Seite 1 Copyright
6.2 Scan-Konvertierung (Scan Conversion)
6.2 Scan-Konvertierung (Scan Conversion) Scan-Konvertierung ist die Rasterung von einfachen Objekten (Geraden, Kreisen, Kurven). Als Ausgabemedium dient meist der Bildschirm, der aus einem Pixelraster
Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.
R. Brinkmann http://brinkmann-du.de Seite 1 13.0.010 Lineare Gleichungen Werden zwei Terme durch ein Gleichheitszeichen miteinander verbunden, so entsteht eine Gleichung. Enthält die Gleichung die Variable
Lineare Funktionen. 1 Proportionale Funktionen 3 1.1 Definition... 3 1.2 Eigenschaften... 3. 2 Steigungsdreieck 3
Lineare Funktionen Inhaltsverzeichnis 1 Proportionale Funktionen 3 1.1 Definition............................... 3 1.2 Eigenschaften............................. 3 2 Steigungsdreieck 3 3 Lineare Funktionen
Erwin Grüner 09.02.2006
FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife
2. Vorlesung. Slide 40
2. Vorlesung Slide 40 Knobelaufgabe Was tut dieses Programm? Informell Formal Wie stellt man dies sicher? knobel(a,b) { Wenn a = 0 dann return b sonst { solange b 0 wenn a > b dann { a := a - b sonst b
Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen
Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen Prof. Dr. Volker Schulz Universität Trier / FB IV / Abt. Mathematik 8. November 2010 http://www.mathematik.uni-trier.de/ schulz/elan-ws1011.html
Formeln. Signatur. aussagenlogische Formeln: Aussagenlogische Signatur
Signatur Formeln Am Beispiel der Aussagenlogik erklären wir schrittweise wichtige Elemente eines logischen Systems. Zunächst benötigt ein logisches System ein Vokabular, d.h. eine Menge von Namen, die
Modellbildungssysteme: Pädagogische und didaktische Ziele
Modellbildungssysteme: Pädagogische und didaktische Ziele Was hat Modellbildung mit der Schule zu tun? Der Bildungsplan 1994 formuliert: "Die schnelle Zunahme des Wissens, die hohe Differenzierung und
Grundlagen Theoretischer Informatik I SoSe 2011 in Trier. Henning Fernau Universität Trier [email protected]
Grundlagen Theoretischer Informatik I SoSe 2011 in Trier Henning Fernau Universität Trier [email protected] 1 Grundlagen Theoretischer Informatik I Gesamtübersicht Organisatorisches; Einführung Logik
x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt
- 17 - Die Frage ist hier also: Für welche x R gilt x = x + 1? Das ist eine quadratische Gleichung für x. Es gilt x = x + 1 x x 3 = 0, und man kann quadratische Ergänzung machen:... ( ) ( ) x x + = 3 +
Zeichen bei Zahlen entschlüsseln
Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren
Mathematischer Vorbereitungskurs für Ökonomen
Mathematischer Vorbereitungskurs für Ökonomen Dr. Thomas Zehrt Wirtschaftswissenschaftliches Zentrum Universität Basel Gleichungen Inhalt: 1. Grundlegendes 2. Lineare Gleichungen 3. Gleichungen mit Brüchen
LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.
Zusätze zum Gelben Rechenbuch LU-Zerlegung Peter Furlan Verlag Martina Furlan Inhaltsverzeichnis Definitionen 2 (Allgemeine) LU-Zerlegung 2 3 Vereinfachte LU-Zerlegung 3 4 Lösung eines linearen Gleichungssystems
Repetitionsaufgaben Wurzelgleichungen
Repetitionsaufgaben Wurzelgleichungen Inhaltsverzeichnis A) Vorbemerkungen B) Lernziele C) Theorie mit Aufgaben D) Aufgaben mit Musterlösungen 4 A) Vorbemerkungen Bitte beachten Sie: Bei Wurzelgleichungen
1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:
Zählen und Zahlbereiche Übungsblatt 1 1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage: Für alle m, n N gilt m + n = n + m. in den Satz umschreiben:
Das Briefträgerproblem
Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................
Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich
Herbrand-Strukturen und Herbrand-Modelle Sei F eine Aussage in Skolemform. Dann heißt jede zu F passende Struktur A =(U A, I A )eineherbrand-struktur für F, falls folgendes gilt: 1 U A = D(F ), 2 für jedes
Terme stehen für Namen von Objekten des Diskursbereichs (Subjekte, Objekte des natürlichsprachlichen Satzes)
Prädikatenlogik Man kann den natürlichsprachlichen Satz Die Sonne scheint. in der Prädikatenlogik beispielsweise als logisches Atom scheint(sonne) darstellen. In der Sprache der Prädikatenlogik werden
Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.
Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr. Kurzweil Florian Franzmann André Diehl Kompiliert am 10. April 2006 um 18:33
Probleme beim Arbeiten mit Variablen, Termen und Gleichungen
Probleme beim Arbeiten mit Variablen, Termen und Gleichungen Tage des Unterrichts in Mathematik, Naturwissenschaften und Technik Rostock 2010 Prof. Dr. Hans-Dieter Sill, Universität Rostock, http://www.math.uni-rostock.de/~sill/
Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen
Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen 1. Quadratische Gleichungen Quadratische Gleichungen lassen sich immer auf die sog. normierte Form x 2 + px + = 0 bringen, in
Plotten von Linien ( nach Jack Bresenham, 1962 )
Plotten von Linien ( nach Jack Bresenham, 1962 ) Ac Eine auf dem Bildschirm darzustellende Linie sieht treppenförmig aus, weil der Computer Linien aus einzelnen (meist quadratischen) Bildpunkten, Pixels
OECD Programme for International Student Assessment PISA 2000. Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland
OECD Programme for International Student Assessment Deutschland PISA 2000 Lösungen der Beispielaufgaben aus dem Mathematiktest Beispielaufgaben PISA-Hauptstudie 2000 Seite 3 UNIT ÄPFEL Beispielaufgaben
Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)
Einführung 3 Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Univ.-Prof. Dr. Christoph Meinel Hasso-Plattner-Institut Universität Potsdam, Deutschland Hatten den Reduktionsbegriff
Die reellen Lösungen der kubischen Gleichung
Die reellen Lösungen der kubischen Gleichung Klaus-R. Löffler Inhaltsverzeichnis 1 Einfach zu behandelnde Sonderfälle 1 2 Die ganzrationale Funktion dritten Grades 2 2.1 Reduktion...........................................
DIFFERENTIALGLEICHUNGEN
DIFFERENTIALGLEICHUNGEN GRUNDBEGRIFFE Differentialgleichung Eine Gleichung, in der Ableitungen einer unbekannten Funktion y = y(x) bis zur n-ten Ordnung auftreten, heisst gewöhnliche Differentialgleichung
Logische Folgerung. Definition 2.11
Logische Folgerung Definition 2.11 Sei 2A eine aussagenlogische Formel und F eine endliche Menge aussagenlogischer Formeln aus A. heißt logische Folgerung von F genau dann, wenn I ( ) =1für jedes Modell
Mediator 9 - Lernprogramm
Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop
Lineare Gleichungssysteme
Lineare Gleichungssysteme 1 Zwei Gleichungen mit zwei Unbekannten Es kommt häufig vor, dass man nicht mit einer Variablen alleine auskommt, um ein Problem zu lösen. Das folgende Beispiel soll dies verdeutlichen
Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester 2015. gehalten von Harald Baum
Fachschaft Mathematik und Informatik (FIM) LA I VORKURS Herbstsemester 2015 gehalten von Harald Baum 2. September 2015 Inhaltsverzeichnis 1. Stichpunkte zur Linearen Algebra I 2. Körper 3. Vektorräume
Einführung in. Logische Schaltungen
Einführung in Logische Schaltungen 1/7 Inhaltsverzeichnis 1. Einführung 1. Was sind logische Schaltungen 2. Grundlegende Elemente 3. Weitere Elemente 4. Beispiel einer logischen Schaltung 2. Notation von
Formale Sprachen und Grammatiken
Formale Sprachen und Grammatiken Jede Sprache besitzt die Aspekte Semantik (Bedeutung) und Syntax (formaler Aufbau). Die zulässige und korrekte Form der Wörter und Sätze einer Sprache wird durch die Syntax
2.11 Kontextfreie Grammatiken und Parsebäume
2.11 Kontextfreie Grammatiken und Parsebäume Beispiel: Beispiel (Teil 3): Beweis für L(G) L: Alle Strings aus L der Länge 0 und 2 sind auch in L(G). Als Induktionsannahme gehen wir davon aus, dass alle
L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016
L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016 Referentin: Dr. Kelly Neudorfer Universität Hohenheim Was wir jetzt besprechen werden ist eine Frage, mit denen viele
10 Erweiterung und Portierung
10.1 Überblick In vielen Fällen werden Compiler nicht vollständig neu geschrieben, sondern von einem Rechnersystem auf ein anderes portiert. Das spart viel Arbeit, ist aber immer noch eine sehr anspruchsvolle
Ein kausaler Zusammenhang entspricht einer speziellen wahren Implikation. Beispiel: Wenn es regnet, dann wird die Erde nass.
Implikation Implikation Warum ist die Tabelle schwer zu schlucken? In der Umgangssprache benutzt man daraus folgt, also, impliziert, wenn dann, nur für kausale Zusammenhänge Eine Implikation der Form:
Rekursionen. Georg Anegg 25. November 2009. Methoden und Techniken an Beispielen erklärt
Methoden und Techniken an Beispielen erklärt Georg Anegg 5. November 009 Beispiel. Die Folge {a n } sei wie folgt definiert (a, d, q R, q ): a 0 a, a n+ a n q + d (n 0) Man bestimme eine explizite Darstellung
Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?
Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume? Bernhard Ganter Institut für Algebra TU Dresden D-01062 Dresden [email protected] WS 2013/14 Isomorphie Zwei Graphen (V 1, E 1 ) und (V
Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.
Kontextfreie Kontextfreie Motivation Formale rundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen Bisher hatten wir Automaten, die Wörter akzeptieren Frank Heitmann [email protected]
Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt 4
Karlsruher Institut für Technologie Institut für Theoretische Informatik Prof. Dr. Peter H. Schmitt David Farago, Christoph Scheben, Mattias Ulbrich Formale Systeme, WS 2012/2013 Lösungen zu Übungsblatt
Musterlösungen zur Linearen Algebra II Blatt 5
Musterlösungen zur Linearen Algebra II Blatt 5 Aufgabe. Man betrachte die Matrix A := über dem Körper R und über dem Körper F und bestimme jeweils die Jordan- Normalform. Beweis. Das charakteristische
Mind Mapping am PC. für Präsentationen, Vorträge, Selbstmanagement. von Isolde Kommer, Helmut Reinke. 1. Auflage. Hanser München 1999
Mind Mapping am PC für Präsentationen, Vorträge, Selbstmanagement von Isolde Kommer, Helmut Reinke 1. Auflage Hanser München 1999 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 21222 0 schnell
Enigmail Konfiguration
Enigmail Konfiguration 11.06.2006 [email protected] Enigmail ist in der Grundkonfiguration so eingestellt, dass alles funktioniert ohne weitere Einstellungen vornehmen zu müssen. Für alle, die es
Einführung in die Java- Programmierung
Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger [email protected] WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113
Algorithmen II Vorlesung am 15.11.2012
Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales
Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer
Das RSA-Verschlüsselungsverfahren 1 Christian Vollmer Allgemein: Das RSA-Verschlüsselungsverfahren ist ein häufig benutztes Verschlüsselungsverfahren, weil es sehr sicher ist. Es gehört zu der Klasse der
Bestimmung einer ersten
Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,
Theoretische Grundlagen der Informatik
Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik
4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls
4.9 Deterministische Kellerautomaten Wir haben bereits definiert: Ein PDA heißt deterministisch (DPDA), falls δ(q, a, Z) + δ(q, ɛ, Z) 1 (q, a, Z) Q Σ. Die von einem DPDA, der mit leerem Keller akzeptiert,
V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x + 400 y = 520 300x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,
Aufgabenpool für angewandte Mathematik / 1. Jahrgang V B, C, D Drinks Ein gastronomischer Betrieb kauft 300 Dosen Energydrinks (0,3 l) und 400 Liter Flaschen Mineralwasser und zahlt dafür 50, Euro. Einen
Lineare Differentialgleichungen erster Ordnung erkennen
Lineare Differentialgleichungen erster Ordnung In diesem Kapitel... Erkennen, wie Differentialgleichungen erster Ordnung aussehen en für Differentialgleichungen erster Ordnung und ohne -Terme finden Die
Kapitel 15. Lösung linearer Gleichungssysteme
Kapitel 15. Lösung linearer Gleichungssysteme Lineare Gleichungssysteme Wir befassen uns nun mit der Lösung im allgemeinen nichthomogener linearer Gleichungssysteme in zweifacher Hinsicht. Wir studieren
5.1 Drei wichtige Beweistechniken... 55 5.2 Erklärungen zu den Beweistechniken... 56
5 Beweistechniken Übersicht 5.1 Drei wichtige Beweistechniken................................. 55 5. Erklärungen zu den Beweistechniken............................ 56 Dieses Kapitel ist den drei wichtigsten
Umgekehrte Kurvendiskussion
Umgekehrte Kurvendiskussion Bei einer Kurvendiskussion haben wir eine Funktionsgleichung vorgegeben und versuchen ihre 'Besonderheiten' herauszufinden: Nullstellen, Extremwerte, Wendepunkte, Polstellen
Codierungstheorie Rudolf Scharlau, SoSe 2006 9
Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets
Grundlagen der Theoretischen Informatik
Grundlagen der Theoretischen Informatik 3. Endliche Automaten (V) 21.05.2015 Viorica Sofronie-Stokkermans e-mail: [email protected] 1 Bis jetzt Determinierte endliche Automaten (DEAs) Indeterminierte
Lösungsmethoden gewöhnlicher Differentialgleichungen (Dgl.)
Lösungsmethoden gewöhnlicher Dierentialgleichungen Dgl) Allgemeine und partikuläre Lösung einer gewöhnlichen Dierentialgleichung Eine Dierentialgleichung ist eine Gleichung! Zum Unterschied von den gewöhnlichen
Wir arbeiten mit Zufallszahlen
Abb. 1: Bei Kartenspielen müssen zu Beginn die Karten zufällig ausgeteilt werden. Wir arbeiten mit Zufallszahlen Jedesmal wenn ein neues Patience-Spiel gestartet wird, muss das Computerprogramm die Karten
Theorie der Informatik
Theorie der Informatik 6. Formale Sprachen und Grammatiken Malte Helmert Gabriele Röger Universität Basel 17. März 2014 Einführung Beispiel: Aussagenlogische Formeln Aus dem Logikteil: Definition (Syntax
Statuten in leichter Sprache
Statuten in leichter Sprache Zweck vom Verein Artikel 1: Zivil-Gesetz-Buch Es gibt einen Verein der selbstbestimmung.ch heisst. Der Verein ist so aufgebaut, wie es im Zivil-Gesetz-Buch steht. Im Zivil-Gesetz-Buch
Der Zwei-Quadrate-Satz von Fermat
Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat
Gutes Leben was ist das?
Lukas Bayer Jahrgangsstufe 12 Im Hirschgarten 1 67435 Neustadt Kurfürst-Ruprecht-Gymnasium Landwehrstraße22 67433 Neustadt a. d. Weinstraße Gutes Leben was ist das? Gutes Leben für alle was genau ist das
Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster
Es gibt in Excel unter anderem die so genannten Suchfunktionen / Matrixfunktionen Damit können Sie Werte innerhalb eines bestimmten Bereichs suchen. Als Beispiel möchte ich die Funktion Sverweis zeigen.
Was ist Mathematik? Eine Strukturwissenschaft, eine Geisteswissenschaft, aber keine Naturwissenschaft.
Vorlesung 1 Einführung 1.1 Praktisches Zeiten: 10:00-12:00 Uhr Vorlesung 12:00-13:00 Uhr Mittagspause 13:00-14:30 Uhr Präsenzübung 14:30-16:00 Uhr Übungsgruppen Material: Papier und Stift wacher Verstand
Planungsblatt Mathematik für die 4E
Planungsblatt Mathematik für die 4E Woche 26 (von 09.03 bis 13.03) Hausaufgaben 1 Bis Mittwoch 11.03: Auf dem Planungsblatt stehen einige Aufgaben als Übung für die SA. Bereite diese Aufgaben vor! Vor
Universität Bonn, Institut für Angewandte Mathematik. WS 2012/2013 Prüfung Angewandte Mathematik und Statistik - Agrarwiss. /ELW
Universität Bonn, Institut für Angewandte Mathematik Dr. Antje Kiesel WS 2012/2013 Prüfung Angewandte Mathematik und Statistik - Agrarwiss. /ELW 08.03.2013 Matrikelnummer Platz Name Vorname 1 2 3 4 5 6
Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:
Tangentengleichung Wie Sie wissen, gibt die erste Ableitung einer Funktion deren Steigung an. Betrachtet man eine fest vorgegebene Stelle, gibt f ( ) also die Steigung der Kurve und somit auch die Steigung
Grundbegriffe der Informatik
Grundbegriffe der Informatik Einheit 3: Alphabete (und Relationen, Funktionen, Aussagenlogik) Thomas Worsch Universität Karlsruhe, Fakultät für Informatik Oktober 2008 1/18 Überblick Alphabete ASCII Unicode
Matrizennorm. Definition 1. Sei A M r,s (R). Dann heißt A := sup die Matrixnorm. Wir wissen zunächst nicht, ob A eine reelle Zahl ist.
Matrizennorm Es seien r,s N Mit M r,s (R bezeichnen wir die Menge der reellen r s- Matrizen (also der linearen Abbildungen R s R r, und setze M s (R := M s,s (R (also die Menge der linearen Abbildungen
5 Eigenwerte und die Jordansche Normalform
Mathematik für Physiker II, SS Mittwoch 8.6 $Id: jordan.tex,v.6 /6/7 8:5:3 hk Exp hk $ 5 Eigenwerte und die Jordansche Normalform 5.4 Die Jordansche Normalform Wir hatten bereits erwähnt, dass eine n n
Das Mathematik-Abitur im Saarland
Informationen zum Abitur Das Mathematik-Abitur im Saarland Sie können Mathematik im Abitur entweder als grundlegenden Kurs (G-Kurs) oder als erhöhten Kurs (E-Kurs) wählen. Die Bearbeitungszeit für die
Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.
1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Darstellung von Algorithmen Aus den Einführungsbeispielen und
Programmierkurs Java
Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen
Hinweise zum Übungsblatt Formatierung von Text:
Hinweise zum Übungsblatt Formatierung von Text: Zu den Aufgaben 1 und 2: Als erstes markieren wir den Text den wir verändern wollen. Dazu benutzen wir die linke Maustaste. Wir positionieren den Mauszeiger
