Formale Grundlagen der Informatik Formale Grundlagen der Informatik Was ist Logik? Was ist Logik? • Geschichte der Logik ist eng verknüpft mit (Sprach-) Philosophie • Logik stellt Sprachen zur Darstellung von Wissen, Problemen, Lösungen zur Verfügung • Begriff Logik wird im Alltag vielseitig verwendet • Logik erlaubt, nach festen Regeln aus wahren Aussagen andere wahre Aussagen abzuleiten • Logik untersucht, wie aus wahren Aussagen andere wahre Aussagen folgen • Beschränkung auf "Aussage folgt notwendigerweise" • Logik als Grundlage für andere Gebiete: Mathematik, Informatik, künstliche Intelligenz • Beispiele Wenn es regnet, dann wird die Strasse nass. Es regnet. ----------------------------Die Strasse wird nass. • Logik zur Darstellung der Semantik natürlicher und künstlicher Sprachen • Logik als Modell für menschliches Denken? Vögel können fliegen. Tweetie ist ein Vogel. ----------------------------Tweetie kann fliegen. • verallgemeinert zur universellen Schlussregel "modus ponens" Wenn A gilt, dann gilt B. A ist wahr. ---------------------------B ist wahr. • es gibt andere Logiken Einführung in die Logik: Aussagenlogik 1 Einführung in die Logik: Aussagenlogik 2 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Aussagenlogik Logische Konnektoren • atomare Aussagen sind einfache deklarative Sätze • mit Hilfe von Konnektoren können aus Aussagen zusammengesetzte Aussagen konstruiert werden Die Sonne scheint. • Wahrheitwert zusammengesetzter Aussagen wird eindeutig durch die Wahrheitwerte der beteiligten Teilaussagen bestimmt Es regnet. die wahr oder falsch sind • in natürlichen Sprachen gibt es auch Satzarten, denen kein Wahrheitwert zugeschrieben werden kann, z.B. • in der Aussagenlogik gibt es unter anderen die folgenden Konnektoren Scheint die Sonne ? Negation ("nicht") ¬ Öffnen Sie bitte das Fenster. Konjunktion ("und") ∧ Disjunktion ("oder") ∨ Implikation ("wenn ... dann ...") → • zusammengesetzte Aussagen Die Sonne scheint oder es regnet. • formal mit logischen Konnektoren Die Sonne scheint. ∨ Es regnet. • Wahrheitwert zusammengesetzter Aussagen wird aus den Wahrheitwerten der beteiligten Teilaussagen bestimmt, z.B. ist Die Sonne scheint. ∨ Es regnet. wahr, wenn mindestens eine der beiden Teilaussagen wahr ist. Einführung in die Logik: Aussagenlogik 3 • die logische Bedeutung dieser Konnektoren wird durch Wahrheitstabellen definiert • die logische Bedeutung entspricht nicht in jedem Fall der Bedeutung des entsprechenden natürlichsprachlichen Ausdrucks • Aussagen werden durch Grossbuchstaben dargestellt • Wahrheitswerte: wahr (W), falsch (F) Einführung in die Logik: Aussagenlogik 4 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Wahrheitstabellen: Negation Wahrheitstabellen: Konjunktion • Negation • Konjunktion P (¬P) P Q (P ∧ Q) W F W W W F W W F F F W F F F F Der Konnektor Negation wirkt auf eine einzelne Aussage und kehrt deren Wahrheitswert um. Die logische Konjunktion ist wahr, wenn beide Teilaussagen wahr sind. Während für die logische Konjunktion das kommutative Gesetz (P ∧ Q) ≡ (Q ∧ P) gilt, hat das natürlichsprachliche "und" oft eine zusätzliche zeitliche Bedeutung. Die Sätze Ich werde schläfrig und gehe ins Bett. und Ich gehe ins Bett und werde schläfrig. drücken zwei verschiedene Sachverhalte aus. Einführung in die Logik: Aussagenlogik 5 Einführung in die Logik: Aussagenlogik 6 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Wahrheitstabellen: Disjunktion Wahrheitstabellen: Implikation • Disjunktion • Implikation P Q (P ∨ Q) P Q (P → Q) W W W W W W W F W W F F F W W F W W F F F F F W Die logische Disjunktion ist inklusiv, d.h. sie ist wahr, wenn eine der beiden Aussagen oder beide Aussagen gelten. Die logische Implikation ist nur dann falsch, wenn die Voraussetzung P wahr und die Konsequenz Q falsch ist. In allen anderen Fällen, insbesondere wenn die Voraussetzung P falsch ist, ist die Implikation wahr. In der natürlichen Sprache hat "oder" oft auch die exklusive Bedeutung; so wird Der Fall F → Q wird als "ex falso quodlibet" bezeichnet. Er kommt heute oder morgen. Diese "materiell" genannte Implikation hat eine vollkommen logische Bedeutung, die allein durch die Wahrheitstabelle gegeben ist. Die Implikation hat keinerlei kausale Bedeutung, d.h. die Aussage als Er kommt entweder heute oder morgen. d.h. als Er kommt (heute und nicht morgen) oder (morgen und nicht heute). verstanden. Die letzte Formulierung zeigt, wie das exklusive "oder" in Logik ausgedrückt werden kann. Einführung in die Logik: Aussagenlogik 7 Wenn der Mond aus grünem Käse ist, dann ist vier eine Primzahl. ist logisch wahr, obwohl beide Aussagen falsch sind und zwischen ihnen kein kausaler Zusammenhang besteht. Einführung in die Logik: Aussagenlogik 8 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Implikation Formale Syntax der Aussagenlogik • (P → Q) sei wahr • Sprache der Aussagenlogik besteht aus den – oft wohlgeformt genannten – Aussagen (Formeln) wenn P wahr ist, dann muss auch Q wahr sein wenn P falsch ist, dann kann Q wahr oder falsch sein • P wird als stärker, Q als schwächer bezeichnet • W ist die schwächste Aussage, F die stärkste (F → W) • atomare Aussagen – dargestellt durch Buchstaben p, q, ... (möglicherweise mit Indizes) – sind wohlgeformt • ⊥ (Widerspruch) ist eine wohlgeformte atomare Aussage; ihr Wahrheitswert ist F • wenn P und Q wohlgeformt sind, dann sind auch • falls (P → Q), wird P hinreichend für Q genannt, Q notwendig für P (¬ P ) • falls (P → Q) ∧ (Q → P), wird P hinreichend und notwendig für Q genannt (P ∨ Q) (P ∧ Q) (P → Q) wohlgeformt. (P und Q sind Platzhaltervariablen, die für Aussagen stehen) • es gibt keine weiteren wohlgeformten Aussagen Einführung in die Logik: Aussagenlogik 9 Einführung in die Logik: Aussagenlogik 10 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Vorrangsregeln Formale Syntax der Aussagenlogik • zusammengesetzte Ausdrücke mit mehreren Konnektoren, z.B. • Syntaxregeln der Aussagenlogik erzwingen, dass für einen wohlgeformten Ausdruck, z.B. ((p ∧ (q → r)) → ((p ∧ (¬ q)) → ((¬ q) ∨ (¬ r)))) • A∧¬B∨C→D sind möglicherweise unklar • Klärung schaffen Vorrangsregeln oder Klammern • Vorrangsregeln alle Klammern gepaart sein müssen – für jede linke Klammer muss es eine entsprechende rechte geben und jeder geklammerte Ausdruck vollständig in dem umgebenden Ausdruck enthalten sein muss Negation • wie wir später sehen werden, wird die Grammatik einer solchen Sprache kontextfrei genannt vor Konjunktion • in der Praxis werden wir oft Klammern weglassen, wenn keine Unklarheiten bestehen vor Disjunktion vor Implikation • Vorrang kann durch Klammerung angedeutet werden A ∧ ¬ B ∨ C → D ≡ (((A ∧ (¬ B)) ∨ C) → D) • im Zweifelsfall sollte man Klammern setzen; deswegen tauchen diese Klammern in der Definition der Sprache auf Einführung in die Logik: Aussagenlogik 11 Einführung in die Logik: Aussagenlogik 12 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Formale Syntax der Aussagenlogik Semantik der Aussagenlogik • geschachtelte Klammerung führt Baumstruktur von Ausdrücken, z.B. zu einer • atomaren Ausdrücken werden durch eine Funktion v Wahrheitswerte {W, F} zugewiesen, z.B. (1 (2 p ∧ (3 q → r)4 )5 → v(p) = W (6 (7 p ∧ (8¬ q)9 )10 → (11 (12¬ q)13∨ (14¬ r)15 )16 )17 )18 v(q) = F mit dem Gesamtausdruck als Wurzel des Baumes, den Teilausdrücken als Knoten und den atomaren Ausdrücken als Blättern ((p ∧ (q → r)) → ((p ∧ (¬ q)) → ((¬ q) (¬ r)))) 1 18 (p ∧ (q → r)) 2 ((p ∧ (¬ q)) → ((¬ q) ∨ (¬ r))) 5 6 (q → r) p 3 q 4 7 r p 17 ((¬ q) ∨ (¬ r)) 10 16 (¬ q) (¬ q) (¬ r) 8 9 12 13 14 15 q q • nachdem den atomaren Ausdrücken Wahrheitswerte zugewiesen wurden, kann man mit Hilfe der elementaren Wahrheittabellen den Wahrheitswert jedes Ausdrucks bestimmen • Beispiel (p ∧ (q → r)) (p ∧ (¬ q)) 11 (Man spricht auch von einer Interpretation oder einer Belegung mit Wahrheitswerten.) r • Knoten sind auch mit den entsprechenden Klammerpaaren bezeichnet; die jeweiligen Hauptkonnektoren sind hervorgehoben p ∧ q → r W W W W W W F W F F W W F W W W W F W F F F W W W F F W F F F F F W W F F F W F Einführung in die Logik: Aussagenlogik 13 Einführung in die Logik: Aussagenlogik 14 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Semantik Semantik: Tautologie, Kontradiktion • im Prinzip kann man jedem aussagenlogischen Ausdruck einen Wahrheitswert zuweisen • Tautologien sind Aussagen, die immer wahr sind, z. B. • in der Praxis jedoch nicht, da Wahrheitstabellen exponentiell wachsen: für Ausdrücke, die n atomare Ausdrücke enthalten, entstehen Wahrheitstabellen mit 2n Zeilen (P ∨ ¬ P) P ∨ ¬ P W W F W F W W F (Man spricht auch von gültigen Aussagen. ) • Wenn eine Aussage P eine Tautologie ist, schreibt man |= P • Kontradiktionen sind Aussagen, die immer falsch sind, z.B. (P ∧ ¬ P) P ∧ ¬ P W F F F W F W F Die atomare Aussage ⊥ ist eine Kontradiktion. • Eine Aussage ist genau dann eine Kontradiktion, wenn ihre Negation eine Tautologie ist. Einführung in die Logik: Aussagenlogik 15 Einführung in die Logik: Aussagenlogik 16 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Semantik: Erfüllbarkeit, Widerlegbarkeit Semantik: logische Konsequenz • Aussagen sind erfüllbar, wenn sie durch eine Belegung mit Wahrheitwerten wahr gemacht werden können • eine Aussage P ist die logische Konsequenz einer Menge von Aussagen M, wenn jede Zuordnung von Wahrheitswerten, die M wahr macht, auch P wahr macht Beispiel (P ∨ Q) M |= P ist erfüllbar, z.B. durch v(P) = W und v(Q) = F • Aussagen sind widerlegbar, wenn sie durch eine Belegung mit Wahrheitwerten falsch gemacht werden können • Beispiel 1: M={p → q, q → ¬ r, r → (p ∨ s)} P=q→s Gilt M |= P ? Beispiel (P ∨ Q) ist durch v(P) = F und v(Q) = F widerlegbar direkter Beweis (es gibt eine Zuordnung von Wahrheitswerten, die M wahr und P falsch macht): aus v(q → s) = F folgt v(q) = W, v(s) = F aus v(q → ¬ r) = W und v(q) = W folgt v(r) = F aus v(q) = W folgt v(p → q) = W aus v(r) = F folgt v(r → (p ∨ s)) = W mit v(p) beliebig, v(q) = W, v(r) = v(s) = F erhalten wir v(M) = W und v(P) = F P ist keine logische Konsequenz von M Einführung in die Logik: Aussagenlogik 17 Einführung in die Logik: Aussagenlogik 18 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Semantik: logische Konsequenz Logische Äquivalenz: Umformungen • Beispiel 2: • zwei Aussagen P und Q sind logisch äquivalent M={p → q, q → ¬ r, r → (p ∨ s)} P = ¬ p ∨ (q ∧ ¬ r) P≡ Q wenn sie die gleiche Wahrheitstabelle haben • ≡ ist kein Element der Sprache der Aussagenlogik, sondern ein metasprachliches Zeichen Gilt M |= P ? Beweis durch Widerspruch (wenn wir eine Zuordnung finden, die M wahr und P falsch macht, dann kann P nicht die logische Konsequenz von M sein): Annahme: v(p → q) = v(q → ¬ r) = v(r → (p ∨ s)) = W und v(¬ p ∨(q ∧ ¬ r)) = F daraus folgt v(p) = W, v(q) = W, v(q ∧ ¬ r) = F, weiterhin v(r) = F daraus folgt v(q ∧ ¬ r) = W und somit ein Widerspruch, d.h. es gibt die obige Zuordnung nicht P ist logische Konsequenz von M • zwei Aussagen sind logisch äquivalent, wenn jede die logische Konsequenz der anderen ist • Idempotenz (P ∨ P) ≡ P (P ∧ P) ≡ P • Kommutativität (P ∧ Q) ≡ (Q ∧ P) (P ∨ Q) ≡ (Q ∨ P) • Assoziativität (P ∨ (Q ∨ R)) ≡ ((P ∨ Q) ∨ R) ≡ (P ∨ Q ∨ R) (P ∧ (Q ∧ R)) ≡ ((P ∧ Q) ∧ R) ≡ (P ∧ Q ∧ R) • Distributivität (P ∨ (Q ∧ R)) ≡ ((P ∨ Q) ∧ (P ∨ R)) (P ∧ (Q ∨ R)) ≡ ((P ∧ Q) ∨ (P ∧ R)) Einführung in die Logik: Aussagenlogik 19 Einführung in die Logik: Aussagenlogik 20 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Logische Äquivalenz: Umformungen Adäquate Mengen von Konnektoren • doppelte Negation • Wieviele verschiedene Konnektoren gibt es überhaupt? (¬ (¬ (P)) ≡ P Konnektoren werden durch Wahrheitstabellen definiert • de Morgan Regeln Wahrheitstabelle für n Aussagen hat 2n Einträge (¬ (P ∨ Q)) ≡ (¬ P) ∧ (¬ Q) jeder Eintrag kann wahr oder falsch sein (¬ (P ∧ Q)) ≡ (¬ P) ∨ (¬ Q) n • Implikation kann durch Negation und Disjunktion ausgedrückt werden (P → Q) ≡ (¬ P) ∨ Q also gibt es für n Aussagen 22 verschiedene n Wahrheitstabellen, d.h. 22 verschiedene Konnektoren 2 für zwei Aussagen gibt es also 22 =16 verschiedene Konnektoren • Konnektoren ¬ , ∧ , ∨, → sind offensichtlich nicht unabhängig • Sind diese 16 Konnektoren unabhängig? Wieviele braucht man mindestens? • man kann sich leicht überzeugen, dass man mindestens die Negation braucht und einen Konnektor, der zwei Aussagen miteinander verknüpft • adäquate Mengen von Konnektoren sind z.B. { ¬, ∨} { ¬, ∧} • andere Konnektoren erhält man mit Hilfe der eingeführten Identitäten, z.B. ∧ aus { ¬, ∨} (P ∧ Q) ≡ (¬ ((¬ P) ∨ (¬ Q))) Einführung in die Logik: Aussagenlogik 21 Einführung in die Logik: Aussagenlogik 22 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Adäquate Mengen von Konnektoren Adäquate Mengen von Konnektoren • adäquate Mengen von Konnektoren können aus einem einzigen der 16 Konnektoren bestehen z.B. • andere Konnektoren erhält man mit Hilfe von Identitäten, z.B. (P nand Q) ≡(¬ (P ∧ Q)) {nand} (¬ P) ≡ (P nand P) ≡ (P nor P) (P ∧ Q) ≡ (P nand Q) nand (P nand Q) mit der Wahrheitstabelle (P ∨ Q) ≡ (P nand P) nand (Q nand Q) P Q (P nand Q) W W F W F W F W W F F W • adäquate Mengen von Konnektoren sind für die Entwicklung logischer Schaltkreise von grosser Bedeutung: wie viele verschiedene Komponenten braucht man mindestens, um alle logischen Konnektoren darzustellen? • und (P nor Q) ≡ (¬ (P ∨ Q)) {nor} mit der Wahrheitstabelle P Q (P nor Q) W W F W F F F W F F F W Einführung in die Logik: Aussagenlogik 23 Einführung in die Logik: Aussagenlogik 24 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Normalformen Umwandlung in Normalform • unterschiedliche Formen der gleichen Aussage, z.B. • systematische Umwandlung in konjunktive Normalform in drei Schritten P ≡(¬ (¬ P)) Beispiel ¬ ((P ∨ Q)) ≡ (¬ P ) ∧ (¬ Q) erschweren die Lesbarkeit und führen zum Wunsch nach Standardformen • Konjunktion (Disjunktion) von Aussagen P1, P2, ... , Pn ist die Aussage P1 ∧ P2 ∧ ... ∧ Pn (bzw. P1 ∨ P2 ∨ ... ∨ Pn). (Wegen der Kommutativität sind Klammern unnötig.) • Literale sind atomare Aussagen oder negierte atomare Aussagen • konjunktive Normalform: Konjunktion von Disjunktionen von Literalen (A → ¬(B → C)) (1) 1. Schritt: Elimination von → (A → ¬ (B → C)) ≡ [Regel: P → Q ≡ ¬ P ∨ Q] (¬ A ∨ ¬ (¬ B ∨ C)) (2) 2. Schritt: Verteilung von ¬ auf atomare Ausdrücke (¬ A ∨ ¬ (¬ B ∨ C)) ≡ [Regel: ¬ (P ∨ Q) ≡ ¬ P ∧ ¬ Q)] (¬ A ∨ (¬ ¬ B∧ ¬ C)) ≡ [Regel: ¬ ¬ P ≡ P] (¬ A ∨ (B ∧ ¬ C)) (3) D1 ∧ D2 ∧ ... ∧ Dn 3. Schritt: Umwandlung in eine Konjunktion von Disjunktionen durch distributive Regel Di = Li1 ∨ Li2 ∨ ... ∨ Lim (¬ A ∨ (B ∧ ¬ C)) ≡ Lij (negierte) atomare Aussage ((¬ A ∨ B) ∧ (¬ A ∨ ¬ C)) (4) • disjunktive Normalform: Disjunktion von Konjunktionen von Literalen K1 ∨ K2 ∨ ... ∨ Kn Ki = Li1 ∧ Li2 ∧ ... ∧ Lim Lij (negierte) atomare Aussage [Regel: P ∨ (Q ∧ R) ≡ (P ∨ Q) ∧ (P ∨ R)] • alternativ: Umwandlung in disjunktive Normalform Disjunktion von Konjunktionen - durch distributive Regel (¬ A ∨ (B ∧ ¬ C)) [3 ist schon disjunktive Normalform] Einführung in die Logik: Aussagenlogik 26 Einführung in die Logik: Aussagenlogik 25 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Normalformen Karnaugh Diagramme • Theorem: zu jeder aussagenlogischen Formel gibt es (mindestens) eine logisch äquivalente disjunktive Normalform und (mindestens) eine logisch äquivalente konjunktive Normalform. • Karnaugh Diagrammen erzeugen systematisch minimale disjunktive Normalformen für Formeln mit bis zu 4 atomaren Ausdrücken • nicht jede Umwandlung ergibt die kürzeste Normalform Beispiel Umwandlung der konjunktiven Normalform (4) in disjunktive Normalform durch Distribution ergibt ((¬ A ∨ B) ∧ (¬ A∨ ¬ C)) ≡ [Regel: P ∧ (Q ∨ R) ≡ (P ∧ Q) ∨ (P ∧ R)] (¬ A ∨ (¬ A ∧ ¬ C) ∨ (B ∧ ¬ A) ∨ (B∧ ¬ C)) während die logisch äquivalente disjunktive Normalform (3) (¬ A ∨(B ∧ ¬ C)) erheblich kürzer ist • Beispiel 1 Wahrheitstabelle für einen Ausdruck A mit 3 Ausdrücken P, Q, R P Q R A W W W W W W F W W F W F W F F F F W W W F W F W F F W F F F F W • (kurze) Normalformen erleichtern nicht nur die Lesbarkeit, sondern sind auch für die Entwicklung logischer Schaltkreise wichtig: wieviele Komponenten braucht man höchstens, um eine logische Funktion zu erzeugen? • konjunktive Normalformen spielen auch in der logischen Programmierung eine Rolle Einführung in die Logik: Aussagenlogik 27 Einführung in die Logik: Aussagenlogik 28 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Karnaugh Diagramme Karnaugh Diagramme • dazugehöriges Karnaugh Diagram • Beispiel 2 Q W W F F R W F F W W W W F F • Wahrheitstabelle für einen Ausdruck A mit 3 Ausdrücken P, Q, R P F W W W F • Wahrheitwerte für Q und R sind so angeordnet, dass sich immer nur ein Wahrheitswert ändert • gesucht wird die minimale Anzahl von Rechtecken mit der Kantenlänge 1, 2 oder 4, die nur den Wert W enthalten Q W W F F R W F F W W W W F F F W W W F P Q R A W W W W W W F F W F W W W F F F F W W W F W F W F F W W F F F F • dazugehöriges Karnaugh Diagram P • minimale disjunktive Normalform für A Q W W F F R W F F W W W F F W F W W F W P A ≡ (P ∧ Q ∧ R) ∨ (¬P ∧ Q ∧ R) ∨ (P ∧ Q ∧ ¬ R) ∨ (¬ P ∧ Q ∧ ¬ R) ∨ (¬ P ∧ Q ∧ ¬ R) ∨ (¬ P ∧ ¬ Q ∧ ¬ R) ≡ (Q ∧ R) ∨ ( Q ∧ ¬ R) ∨ (¬ P ∧ ¬ R) ≡ Q ∨ (¬ P ∧ ¬ R) [Regel: (P ∧ Q) ∨ (P ∧ ¬ Q) ≡ P ∧ (Q ∨ ¬ Q)] ≡ P] (Die leichtgrauen Felder gehören zusammen.) Einführung in die Logik: Aussagenlogik 29 Einführung in die Logik: Aussagenlogik 30 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Karnaugh Diagramme Anwendung: Schaltkreise • minimale disjunktive Normalform für A • Schaltkreise haben n Eingänge und m Ausgänge A ≡ (P ∧ Q ∧ R) ∨ (¬ P ∧ Q ∧ R) ∨ (P ∧ ¬ Q ∧ R) ∨ (¬ P ∧ ¬ Q ∧ R) ∨ (¬ P ∧ Q ∧ R) ∨ (¬ P ∧ Q ∧ ¬ R) jeder Eingang (Ausgang) ist entweder wahr oder falsch ≡ (Q ∧ R) ∨ ( ¬ Q ∧ R) ∨ (¬ P ∧ Q) Ausgänge hängen logisch von den Eingängen ab ≡ R ∨ (¬ P ∧ Q) [Regel: (P ∧ Q) ∨ (P ∧ ¬ Q) ≡ P ∧ (Q ∨ ¬ Q)] ≡ P] • Schaltkreise werden aus logischen Komponenten zusammengesetzt, z.B. • Beispiel Eingänge A und B, Ausgänge C und D Schaltkreis verwendet ¬, ∧, ∨, und nor Einführung in die Logik: Aussagenlogik 31 Einführung in die Logik: Aussagenlogik 32 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Anwendung: Schaltkreise Anwendung: Schaltkreise • Beispiel (Forts.) • welche Optimierung – Reduzierung der Zahl der Komponenten oder Reduzierung der Zahl der verschiedenen Komponenten – gewählt wird, hängt von der Situation ab aus dem Schema folgt C ≡ (A ∨ B) ∧ (A nor (A nor B)) D ≡ ¬ (A ∨ B) • Reduzierung der Zahl der Komponenten von 5 auf 4 durch Umwandlung in konjunktive Normalform • Reduktion der Zahl der verschiedenen Komponenten erhöht allerdings die Zahl Komponenten und die Zahl der Verbindungen C≡¬A∧B D≡¬ A∧¬B • Reduzierung der Zahl der Komponenten auf 3 durch Verwendung von nor C≡¬A∧B D ≡ A nor B • Reduzierung der Zahl der verschiedenen Komponenten auf 1 durch alleinige Verwendung von nand C ≡ ((A nand A) nand B) nand ((A nand A) nand B) D ≡ ((A nand A) nand (B nand B)) nand ((A nand A) nand (B nand B)) Einführung in die Logik: Aussagenlogik 34 Einführung in die Logik: Aussagenlogik 33 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Anwendung: Analyse natürlichsprachlicher Sätze Anwendung: Analyse natürlichsprachlicher Sätze • (Aussagen-) Logik kann helfen, Fragen zu beantworten, die in natürlicher Sprache formuliert sind • Probleme bei der logischen Analyse von Sätzen Identifizierung der Konnektoren, die die logische Struktur des Satzes bestimmen Identifizierung der Satzteile, die als atomare Aussagen dargestellt werden sollen korrekte Schachtelung der Teilaussagen Ambiguitäten • Beispiel Die Versammlung findet statt, wenn alle Teilnehmer rechtzeitig informiert wurden und die Versammlung beschlussfähig ist. Die Versammlung ist beschlussfähig, wenn mindestens 15 Teilnehmer anwesend sind. Die Teilnehmer sind rechtzeitig informiert worden, wenn es keinen Streik der Postbeamten gab. Wenn die Versammlung nicht stattfand, dann waren weniger als 15 Teilnehmer anwesend oder es gab einen Streik der Postbeamten. Wir führen die atomaren Aussagen s die Versammlung findet statt t alle Teilnehmer wurden rechtzeitig informiert f mindestens 15 Teilnehmer sind anwesend b die Versammlung ist beschlussfähig p es gab einen Streik der Postbeamten ein und übersetzen Satz für Satz. 1. Die Versammlung findet statt, wenn alle Teilnehmer rechtzeitig informiert wurden und die Versammlung beschlussfähig ist. P1 ≡ (t ∧ b) → s 2. Die Versammlung ist beschlussfähig, wenn mindestens 15 Teilnehmer anwesend sind. P2 ≡ f → b Einführung in die Logik: Aussagenlogik 35 Einführung in die Logik: Aussagenlogik 36 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Anwendung: Analyse natürlichsprachlicher Sätze Anwendung: Analyse natürlichsprachlicher Sätze 3. Die Teilnehmer sind rechtzeitig informiert worden, wenn es keinen Streik der Postbeamten gab. • Beispiel mag wie ein Spiel wirken P3 ≡ ¬ p → t • Realität: wichtiges Problem "natürlichsprachliche Schnittstellen" zu formalen Systemen 4. Wenn die Versammlung nicht stattfand, dann waren weniger als 15 Teilnehmer anwesend oder es gab einen Streik der Postbeamten. Datenbanken P4 ≡ ¬ s → (¬ f ∨ p) Handbücher, Hilfefunktionen Informationssysteme Automaten Gilt { P1, P2, P3} |= P4_? Spezifikationen Beweis durch Widerspruch: Annahme P1, P2, P3 wahr und P4 falsch ... aus v(P4) = v(¬ s → (¬ f ∨ p)) = F folgt v(s) = F, v(f) = W, v(p) = F • Computerlinguistik automatisiert die Übersetzung von natürlicher Sprache in Logik, meistens in Prädikatenlogik aus v(P2) = v(f → b) = W und v(f) = W folgt v(b) = W aus v(P3) = v(¬ p → t) = W und v(p) = F folgt v(t) = W damit ist v(P1) = v((t ∧ b) → s) = F Widerspruch zur Annahme v(P1) = W also gibt es keine derartige Zuordnung und der Schluss { P1, P2, P3} |= P4 ist gültig Einführung in die Logik: Aussagenlogik 37 Einführung in die Logik: Aussagenlogik 38 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Prädikatenlogik Quantoren • Aussagen wie • Quantoren erlauben Aussagen über Mengen von Objekten, für die ein Prädikat gilt Die Sonne scheint. die in der Aussagenlogik atomar sind, werden in der Prädikatenlogik in Terme (sonne) und Prädikate (scheint) aufgelöst scheint(sonne) • Terme Alle Menschen sind sterblich. Es gibt sterbliche Menschen. • universelle Quantifizierung macht eine Aussage über alle Elemente einer Menge; sie ist genau dann wahr, wenn die quantifizierte Aussage für jedes Element der Menge gilt Namen von Objekten des Diskursbereichs Alle Menschen sind sterblich. (Subjekte, Objekte des natürlichsprachlichen Satzes) ∀X (mensch(X) → sterblich(X)) • Prädikate Namen von Eigenschaften, Relationen, Klassen (Verben, Attribute des natürlichsprachlichen Satzes) • Prädikatenlogik führt Variablen ein, die für (noch) nicht bekannte Objekte des Diskursbereichs stehen • existentielle Quantifizierung macht eine Aussage über einzelne Elemente einer Menge; sie ist genau dann wahr, wenn die quantifizierte Aussage für mindestens ein Element der Menge gilt Es gibt sterbliche Menschen. ∃X (mensch(X) ∧ sterblich(X)) scheint(X) Diese Variablen ähneln den aus der Mathematik bekannten. Sie sind nicht zu verwechseln mit Variablen in prozeduralen Programmiersprachen, die für Speicherstellen stehen. (Prädikatenlogik 2. Ordnung kennt auch Variablen für Prädikate) Einführung in die Logik: Prädikatenlogik 1 Einführung in die Logik: Prädikatenlogik 2 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Quantoren Quantoren • man kann Quantoren auch mit expliziten Bereichsangaben versehen • Skopus sei M die Menge aller Menschen ∀X (mensch(X) → sterblich(X)) ∀X ∈M (sterblich(X)) In den Ausdrücken ∀X (P) oder ∃X (P) heisst P der Skopus (Gültigkeitsbereich) der Variablen X. Eine Variable im Skopus eines Quantors heisst gebunden. Eine nicht gebundene Variable heisst frei. Ein Ausdruck ohne freie Variable heisst geschlossen. analog ∃X (mensch(X) ∧ sterblich(X)) ∃X∈M (sterblich(X)) • Beispiel ∃X (gerade(X)) ∨ null(X) • bei einem endlichen Bereich M = {m1, m2, ...., mn} sieht man ∀X∈M (p(X)) ≡ (p(m1) ∧ p(m2) ∧ ... ∧ p(mn)) ∃X∈M (p(X)) ≡ (p(m1) ∨ p(m2) ∨ ... ∨ p(mn)) Erstes Vorkommen von X ist gebunden, zweites frei. (Besser: Variablen eindeutig benennen.) • Beispiel ∀X (mensch(X) → ∃Y (mensch(Y) ∧ liebt(X,Y) ) ) ---------------------- Skopus X ------------------------------- Skopus Y ------Ausdruck ist geschlossen Einführung in die Logik: Prädikatenlogik 3 Einführung in die Logik: Prädikatenlogik 4 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Quantoren Umformungen quantifizierter Ausdrücke • Schachtelung von Quantoren • Negation von Quantoren ∀X (∀Y (p(X,Y))) ¬ (∀X (p(X))) ≡ ∃X (¬ (p(X))) ∀X (∃Y (p(X,Y))) ¬ (∃X (p(X))) ≡ ∀X (¬ (p(X))) • geschachtelte universelle (existentielle) Quantoren können vertauscht werden ∀X (∀Y (p(X,Y))) ≡ ∀Y (∀X (p(X,Y))) ∃X (∃Y (p(X,Y))) ≡ ∃Y (∃X (p(X,Y))) • universelle und existentielle Quantoren dürfen im allgemeinen nicht vertauscht werden Alle Menschen lieben einen Menschen. (M Menge aller Menschen) • Skopusveränderungen (X taucht in P auf, nicht in Q) ∀X (P) ∧ Q ≡ ∀X (P ∧ Q) ∀X (P) ∨ Q ≡ ∀X (P ∨ Q) ∃X (P) ∧ Q ≡ ∃X (P ∧ Q) ∃X (P) ∨ Q ≡ ∃X (P ∨ Q) ∀X (P) → Q ≡ ∃X (P → Q) ∃X (P) → Q ≡ ∀X (P → Q) Q → ∀X (P) ≡ ∀X (Q → P) ∀X∈M (∃Y∈M (liebt(X,Y))) Bedeutung: Für jeden Menschen gibt es einen – nicht notwendigerweise denselben – Menschen, den er liebt. Q → ∃X (P) ≡ ∃X (Q → P) • Name der quantifizierten Variablen ist belanglos ∃Y∈M (∀X∈M (liebt(X,Y))) ∀X (p(X)) ≡ ∀Z23 (p(Z23)) Bedeutung: Es gibt (mindestens) einen Menschen, der von allen Menschen geliebt wird. ∃Y (p(Y)) ≡ ∃XYZ (p(XYZ)) (N Menge aller natürlichen Zahlen) ∀X∈N (∃Y∈N (Y > X)) [wahr] ∃Y∈N (∀X∈N (Y > X)) [falsch] Einführung in die Logik: Prädikatenlogik 5 Einführung in die Logik: Prädikatenlogik 6 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Syntax der Prädikatenlogik Syntax der Prädikatenlogik • zwei Alphabete • Sprache der Prädikatenlogik besteht aus Termen und wohlgeformten Ausdrücken (Formeln) logische Zeichen Theoriezeichen (abhängig vom Diskursbereich) • Terme Jede Variable ist ein Term. • logische Zeichen Menge von Variablen: X, X23, ... X (Variablen stehen für (noch) nicht bekannte Objekte des Diskursbereiches.) Konnektoren: ¬, ∧, ∨, → logisches Atom: ⊥ Quantoren: ∀, ∃ Jede Konstante ist ein Term. Trennzeichen: "," "(" ")" a, sokrates • Theoriezeichen (Konstante stehen für bekannte Objekte des Diskursbereiches.) Menge von Konstanten Menge von Funktionszeichen mit Arität (f/N) Menge von Relationszeichen mit Arität (p/N) Wenn t1 , ..., tn Terme sind und f ein n-stelliges Funktionszeichen – meistens geschrieben als f/n – dann ist f(t1, ..., tn) ein zusammengesetzter Term. vater_von(sokrates) vater_von(vater_von(sokrates)) (Zusammengesetzte Terme stehen für aus anderen Objekten "konstruierte" Objekte des Diskursbereiches.) Es gibt keine weiteren Terme. Einführung in die Logik: Prädikatenlogik 7 Einführung in die Logik: Prädikatenlogik 8 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Syntax der Prädikatenlogik Bemerkungen zur Syntax • (wohlgeformte) Ausdrücke • Syntax der Prädikatenlogik ist nicht standardisiert: jedes Textbuch verwendet eine (leicht) andere Notation ⊥ ist ein atomarer Ausdruck. • Meine Notation: Wenn t1, ..., tn Terme sind und r ein n-stelliges Relationszeichen – meistens geschrieben als p/n – dann ist r(t1, ..., tn) ein atomarer Ausdruck. Klammern geben jeweils den Skopus an ¬ (P) ∀X (P) rot(X) oder fassen zusammengehörende Ausdrücke zusammen liebt(anton, maria) ¬ (P ∧ Q) (Relationszeichen werden auch Prädikate genannt.) Wenn P und Q Ausdrücke sind, dann auch ¬ (P) P∧Q P∨Q P→Q (P und Q sind Platzhaltervariable, die für Aussagen stehen.) Ist P ein Ausdruck und X eine Variable, dann sind auch ∀X (P) • Klammern sollten immer gesetzt werden, wenn der Ausdruck sonst unklar ist • Klammern können weggelassen werden, wenn der Ausdruck eindeutig ist, z.B. ¬ (∀X (P)) ≡ ¬ ∀X (P) ∀X (p(x)) ≡ ∀X p(x) ¬ (p(x)) ≡ ¬ p(x) ∃ X (P) Ausdrücke. Es gibt keine weiteren Ausdrücke. Einführung in die Logik: Prädikatenlogik 9 Einführung in die Logik: Prädikatenlogik 10 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Beispiel: Peano Arithmetik Baumstruktur • Theoriezeichen • Terme haben eine Baumstruktur, z.B. Konstante: +(X, s(0)) 0 + Funktionszeichen: s/1 (= Nachfolgerfunktion) +/2 (= Addition) */2 (= Multiplikation) X s 0 Relationszeichen: =/2 (= Gleichheitsrelation) • Formeln haben eine Baumstruktur, z.B. ∃X (mensch(X) ∧ sterblich(X)) • Beispiele Terme: 0 s(0) ∃X s(s(0)) +(X, s(0)) (Präfixnotation) ≡ X + s(0) (Infixnotation) *(s(s(0)), X) (Präfixnotation) ≡ s(s(0)) * X (Infixnotation) ∧ mensch(X) sterblich(X) Ausdrücke: =(X + s(Y), s(X + Y)) (Präfixnotation) ≡ X + s(Y) = s(X + Y) (Infixnotation) Einführung in die Logik: Prädikatenlogik 11 Einführung in die Logik: Prädikatenlogik 12 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Substitutionen Normalformen • Substitutionen • prädikatenlogische Ausdrücke können in äquivalente Ausdrücke umgeformt werden Ersetzen einer Variablen in einem Ausdruck durch einen Term. • Beispiel Seien X eine Variable, T ein Term und P ein Ausdruck. ∀X (mensch(X) → sterblich(X)) (P){X/T} ist der Ausdruck, den man erhält, wenn man jedes freie Auftreten von X in P durch T ersetzt. ∀X (¬ mensch(X) ∨ sterblich(X)) (P){X/T} wird Instanz von P genannt. ≡ ≡ ∀X (¬ (mensch(X) ∧ ¬ sterblich(X))) • Beispiele (∀X (gerade(X)) ∨ null(X)) {X/0} ≡ ≡ ∀X (gerade(X)) ∨ null(0) ¬ ∃ X (mensch(X) ∧ ¬ sterblich(X))) (vater(X)) {X/vater(anton)} • gesucht: Normalformen für prädikatenlogische Ausdrücke ≡ vater(vater(anton)) Einführung in die Logik: Prädikatenlogik 14 Einführung in die Logik: Prädikatenlogik 13 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Normalformen: Pränexform Anwendung: Analyse natürlichsprachlicher Sätze • Pränexform • natürlichsprachliche Sätze können auch in Prädikatenlogik übersetzt werden Ein prädikatenlogischer Ausdruck ist in Pränexform, wenn er die Form Q1X1 (Q2X2 .... (QnXn (A) ...) Jeder im Raum spricht Französisch oder Deutsch. hat, wobei Qi Quantoren sind, Xi Variable und A keine Quantoren enthält. • Beispiel ¬ ∀X (p(X,Y)) ∧ q(U) ∧ ¬ (∀Z (r(Z)) ∨ s(W)) ≡ • Beispiel 1 Umformulierung in halbformale Darstellung Für alle X gilt, wenn X eine Person im Raum ist, dann spricht X Französisch oder spricht X Deutsch. [Regel: ¬ ∀X (p(X)) ≡ ∃X (¬ p(X))] [Regel: ¬ (P ∧ Q) ≡ (¬ P ∨ ¬ Q)] Einführung von Prädikaten ∃X (¬ p(X,Y)) ∧ q(U) ∧ ¬ ∀Z (r(Z)) ∧ ¬ s(W) r/1 "ist eine Person im Raum" ≡ f/1 "spricht Französisch" d/1 "spricht Deutsch" [Regel: ¬ (∀X (p(X))) ≡ ∃X (¬ p(X))] ∃X (¬ p(X,Y)) ∧ q(U) ∧ ∃Z (¬ r(Z)) ∧ ¬ s(W) ≡ [Regel: (∃X P) ∧ Q ≡ ∃X (P ∧ Q)] [Regel: Assoziativität von ∧] ∃X ∃Z (¬ p(X,Y) ∧ q(U) ∧ ¬ r(Z) ∧ ¬ s(W)) prädikatenlogische Formel ∀X (r(X) → (f(X) ∨ d(X))) • Zu jeder prädikatenlogischen Formel gibt es (mindestens) eine logisch äquivalente Pränexform. Einführung in die Logik: Prädikatenlogik 15 Einführung in die Logik: Prädikatenlogik 16 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Anwendung: Analyse natürlichsprachlicher Sätze Semantik der Prädikatenlogik • Beispiel 2 • Wann sind Ausdrücke wie Einige Personen sagen einige Zeit die Wahrheit, andere lügen nie. Umformulierung liebt(anton, maria) X>2 wahr? Es gibt eine Person P1 und es gibt einen Zeitpunkt T1, an dem P1 die Wahrheit sagt. Es gibt eine Person P2, die verschieden von P1 ist und zu allen Zeitpunkten T2 nicht lügt. Einführung von Prädikaten p/1 "ist eine Person " z/1 "ist ein Zeitpunkt" w/2 • Ausdrücke erhalten ihren Wahrheitswert durch eine Interpretation I und eine Variablenabbildung (Variablenzuordnung) V in einem Wertebereich (Diskursbereich) D • Interpretation I Konstante c I(c) ∈ D "sagt die Wahrheit zu einem Zeitpunkt" Funktionszeichen f mit Arität n I(f): Dn → D l/2 "lügt zu einem Zeitpunkt" Relationszeichen r mit Arität n I(r) ⊆ Dn v/2 "sind verschieden" prädikatenlogische Formel ∃P1 (∃T1 (p(P1) ∧ z(T1) ∧ w(P1,T1)) ∧ ∃P2 (p(P2) ∧ v(P1,P2) ∧ ∀T2 (z(T2) → ¬ l(P2,T2)))) Die Information, dass sich w/2 und l/2 gegenseitig ausschliessen, ist nicht explizit bekannt, und kann deshalb nicht zur Vereinfachung verwendet werden. • Variablenbelegung V V(X) ∈ D Variable X • Abbildung eines Terms t Konstante c I(t) = I(c) ∈ D Variable X I(t) = V(X) ∈ D f(t1, ..., tn) I(t) = I(f)(I(t1), ..., I(tn)) ∈ D Einführung in die Logik: Prädikatenlogik 18 Einführung in die Logik: Prädikatenlogik 17 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Semantik der Prädikatenlogik Semantik der Prädikatenlogik • Beispiel • Wahrheitswerte prädikatenlogischer Ausdrücke Term p(X, q(a)) D sei die Menge der Peano Zahlen mit den Funktionen s/1 und +/2 In der Interpretation I und der Variablenbelegung V kann jedem prädikatenlogischen Ausdruck P ein Wahrheitswert I(P) ∈ {W, F} zugeordnet werden. • atomare Ausdrücke Ausdruck ist r(t1 , ..., tn) mit dem Relationszeichen r/n und den Termen t1, ..., tn. I(r(t1 , ..., tn)) = W genau dann, wenn Tupel <I(t1), ..., I(tn)> ∈ I(r) Wir wählen I(a) = s(0) I(p/2) = +/2 I(⊥) = F I(q/1) = s/1 • komplexe Ausdrücke V(X) = s(s(s(0))) I(P ∧ Q) = I(P) ∧ I(Q) I(P ∨ Q) = I(P) ∨ I(Q) Damit gilt I(p(X, q(a))) = +(s(s(s(0))), s(s(0))) = s(s(s(s(s(0))))) ∈ D I(P →Q) = I(P) →I(Q) I(¬(P)) = ¬I(P) I(∀X (P)) = W genau dann, wenn I(P) = W und das auch für alle anderen Variablenbelegung gilt, die man erhält, wenn man V an der Stelle X beliebig abändert. I(∃X (P)) = W genau dann, wenn I(P) = W oder das für mindestens eine andere Variablenbelegung gilt, die man erhält, wenn man V an der Stelle X beliebig abändert. Einführung in die Logik: Prädikatenlogik 19 Einführung in die Logik: Prädikatenlogik 20 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Semantik der Prädikatenlogik Modelle • Beispiel • Modelle Ausdruck even(p(X, q(a))) D sei ein Wertebereich, I eine Interpretation D sei die Menge der Peano Zahlen mit den Funktionen s/1 und +/2 Ein Ausdruck P wird in der Interpretation I wahr genannt und I heisst ein Modell dieses Ausdrucks, wenn P für alle Variablenbelegungen wahr ist. Ist ein geschlossener Ausdruck für eine Variablenbelegung wahr, dann gilt das für alle Variablenbelegungen. Wir wählen I(a) = s(0) I(p/2) = +/2 • Es kann mehr als ein Modell geben. I(q/1) = s/1 • Eine Interpretation I, die eine Menge von Ausdrücken M für alle Variablenzuordnungen wahr macht, heisst ein Modell von M. V(X) = s(s(s(0))) I(even) = {0, s(s(0)), s(s(s(s(0)))), ...} ⊆ D p(X, q(a)) --> +(s(s(s(0))), s(s(0))) = s(s(s(s(s(0))))) ∈ D • Menge von prädikatenlogischen Ausdrücken heisst erfüllbar, wenn sie mindestens ein Modell hat widerlegbar, wenn es mindestens eine Interpretation gibt, die kein Modell ist Damit gilt I(even(p(X, q(a)))) = F denn s(s(s(s(s(0))))) ∉ I(even) tautologisch oder gültig, wenn jede Interpretation ein Modell ist inkonsistent, wenn sie kein Modell hat Einführung in die Logik: Prädikatenlogik 22 Einführung in die Logik: Prädikatenlogik 21 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Modelle: Beispiel Folgerungsrelation • gegeben sei die Menge von Ausdrücken • Folgerungsrelation, logische Konsequenz {p(a), ∀X (p(X) →q(X))} M und N sind Mengen prädikatenlogischer Ausdrücke • Modell 1 I1(a) = Sokrates I1(p) = menschlich: {Sokrates, Platon, Meier, ...} I1(q) = sterblich: {Sokrates, Platon, Meier, ...} • Modell 2 Es gilt die logische Konsequenz M |= N, wenn jedes Modell der Menge M auch ein Modell der Menge N ist, d.h. • Beispiel {p(a), ∀X (p(X) →q(X))} |= q(a) I2(a) = 8 wenn jedes Modell der linken Seite auch Modell der rechten Seite ist I2(p) = durch_4_teilbar: {0, 4, 8, ...} Problem: es gibt unendlich viele Modelle I2(q) = gerade: {0, 2, 4, ...} • es gibt unendlich viele Modelle • man interessiert sich jedoch meistens nur für das i n t e n d i e r t e Modell und wählt die Namen von Konstanten, Funktionen und Prädikaten entsprechend • Lösung durch Beweis, z.B. mit Modus Ponens Wenn A gilt, dann gilt B. A ist wahr. ---------------------------B ist wahr. {menschlich(sokrates), ∀X (menschlich(X) →sterblich(X))} • Wahl der Namen erhöht nur die Lesbarkeit; Namen sind jedoch beliebig; es gibt nach wie vor unendlich viele Modelle • Schluss: logische Aussagen legen den Diskursbereich nicht eindeutig fest Einführung in die Logik: Prädikatenlogik 23 Einführung in die Logik: Prädikatenlogik 24 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Gliederung Mengen • Mengen und –operationen • Definition (Naive Mengenlehre) Knorr/Fuchs SS 2000 „Eine Menge ist die Zusammenfassung von Elementen unserer Anschauung zu einem wohldefinierten Ganzen.“ (Georg Cantor) • Relationen • Funktionen • Grundprinzipien • Kardinalität von Mengen Axiom der Extensionalität: Zwei Mengen sind genau dann gleich, wenn sie die gleichen Elemente enthalten. A = B O ( [x : x § A O x § B ) Beispiel: { 1 , 2 , 3 } = { n | n § Á n < 4 } Axiom der Komprehension: Für jede Eigenschaft können wir eine Menge bilden, die genau die Elemente enthält, die diese Eigenschaft haben. • Notation 1. Aufzählung aller Elemente: { 1 , { 2 } , { 3 , 4 } , { 5 } } 2. Beschreibung der Eigenschaften der Elemente: { x | x mod 2 = 0 } Informell wird auch geschrieben: { 2, 4, 6, 8, … } Mengen, Relationen, Funktionen 1 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Mengen, Relationen, Funktionen 2 Formale Grundlagen der Informatik Eigenschaften Prominente Mengen • Mengenzugehörigkeit • Á = Menge der natürlichen Zahlen Die Mengenzugehörigkeit eines Elements zu einer Menge wird durch das Zeichen § ausgedrückt. [x : ( x § { a1, … an } O x = a1 … x = an ) [x : ( x § { y | P(y) } O P(x) ) Knorr/Fuchs SS 2000 Á = { 1 , 2 , 3 ,…} • Í = Menge der ganzen Zahlen (eng. integers) Í = { 0 , 1 , -1 , 2 , -2 , 3 , -3 ,…} • Ä = Menge der rationalen Zahlen • Teilmengen Die Menge T heisst eine (unechte) Teilmenge der Menge A, wenn jedes Element, das in der Teilmenge T liegt, auch in der Menge A liegt: T 5 A O ( [x : x § T L x § A ) Ä = { a / b |a § Í b § Á } • Å = Menge der reellen Zahlen • ¶ = Menge der komplexen Zahlen Die Menge T heisst eine echte Teilmenge der Menge A, wenn T eine Teilmenge von A ist, aber nicht gleich A ist: T = A O ( [x : x § T L x § A ) T ¬ A • Obermenge Falls A 5 B schreibt man auch B 6 A. B ist dann eine Obermenge von A. Die echte Obermenge wird analog definiert. Mengen, Relationen, Funktionen 3 Mengen, Relationen, Funktionen 4 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Spezielle Mengen (1) Spezielle Mengen (2) • Durchschnittsmenge • Potenzmenge Der Durchschnitt zweier Mengen A und B ist die Menge aller Elemente, die sowohl in A als auch in B enthalten sind. Knorr/Fuchs SS 2000 Sei A eine Menge. Die Potenzmenge einer beliebigen Menge A ist die Menge s(A) aller Teilmengen von A. AB={x|x§Ax§B} s(A) = { U | U 5 A } Beispiel: s( { 1 , 2 } ) = { ^ , { 1 } , { 2 } , { 1 , 2 } } • Vereinigungsmenge Die Vereinigung zweier Mengen A und B ist die Menge aller Elemente, die in A und/oder B enthalten sind. A~B={x|x§Ax§B} • Leere Menge • Differenzmenge Seien A und B beliebige Mengen. Die Differenz A – B, gesprochen A minus B, ist die Menge aller Elemente, die in A aber nicht in B liegen. A-B={x|x§AxèB} Die leere Menge ist die Menge, die kein Element enthält. Sie wird ^ oder {} geschrieben: ^ = { x | x ≠ x } oder[x : x è ^ • Komplementärmenge Ist eine Grundmenge G und eine Menge A mit A 5 G gegeben, so ist die Komplementärmenge Ac definiert durch: Ac = { x | x è A x § G } Beispiel: { 1 , 2 , 3 } - { 3 , 4 } = { 1 , 2 } • Symmetrische Differenzmenge Die symmetrische Differenz zweier Mengen A und B ist die Menge A + B aller Elemente, die genau in einer der beiden Mengen liegen. A+B=(A~B)–(AB) Beispiel: { 1 , 2 , 3 } + { 3 , 4 } = { 1 , 2 , 4 } Mengen, Relationen, Funktionen 5 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Mengen, Relationen, Funktionen 6 Formale Grundlagen der Informatik Weitere Eigenschaften „Mengen-Gesetze“ • Kardinalität einer Menge Idempotenz Kommutativität Assoziativität Sei A eine Menge mit endlich vielen Elementen. Die Anzahl | A | nennt man die Mächtigkeit oder Kardinalität der Menge. Zwei endliche Mengen haben dieselbe Kardinalität, wenn die Anzahl Elemente in beiden Mengen gleich ist. Die Kardinalität von unendlichen Mengen wird später definiert. • Disjunktheit Zwei Mengen A und B heissen disjunkt, wenn ihr Durchschnitt leer ist. AB=^ • Paarweise Disjunktheit Eine Menge X von Mengen heisst paarweise disjunkt, wenn der Durchschnitt von jedem Paar von Mengen leer ist. [A, B § X : A ≠ B L A B = ^ Mengen, Relationen, Funktionen 7 Distributivität Absorption Reflexivität Kontraktion Monotonie Knorr/Fuchs SS 2000 AA=A AB=BA (A B) C = A (B C) A (B ~ C) = (A B) ~ (A C) A (A ~ B) = A A5A (A B) 5 A A5BL AC5BC A~A=A A~B=B~A (A ~ B) ~ C = A ~ (B ~ C) A ~ (B C) = (A ~ B) (A ~ C) A ~ (A B) = A A6A (A ~ B) 6 A A6BL A~C6B~C Existiert eine Grundmenge G mit A,B 5 G, so gelten ferner: Neutrale Elemente Invariable Elemente Extremalität De Morgansche Regeln Komplement AG=A A^=^ ^5A (A B)c = Ac ~ Bc A~^=A A~G=G G6A (A~ B)c = Ac Bc Ac ~ A = G A c A = ^ Mengen, Relationen, Funktionen 8 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Beweise in der Mengenlehre • Venn Diagramme: graphische Veranschaulichung • Direkter Beweis durch Anwendung von Definitionen, Axiomen und Gesetzen. • Indirekter Beweis durch Negation der Aussage und Angabe eines Gegenbeispiels. • Tableau Methode: Tabelle von Fallunterscheidungen • Transfer Methode: Eine mengentheoretische Formel wird in eine äquivalente aussagenlogische Formel umgewandelt, die dann bewiesen wird. Diese Methode beruht auf der Verwandtschaft zwischen Aussagenlogik und Mengenlehre, die damit zu tun hat, dass beide Systeme boolesche Algebren sind. Mengenlehre ~ Aussagenlogik 5 L 6 K Formale Grundlagen der Informatik Direkter Beweis: ^ ist Teilmenge jeder Menge • Gegeben: 1. T 5 A O [x : x § T L x § A 2. [x : x è ^ • Zu beweisen: ^5A • Beweis: ^ 5 A O [x : x § ^ L x § A (1) ^ 5 A O [x : ⊥ L x § A (2) (1) Definition von 5, (2) Axiom für ^ [x : ⊥ L x § A ist eine Tautologie. Mengen, Relationen, Funktionen 9 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Knorr/Fuchs SS 2000 Indirekter Beweis: ^ ist nicht echte Teilmenge jeder Menge • Gegeben: Mengen, Relationen, Funktionen 10 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Direkter Beweis: (A~B)–(AB)=(A–B)~(B–A) • Gegeben: Die Definitionen von , ~, –, è, § 1. T ⊂ A O ( [x : x § T L x § A ) T ¬ A 2. [x : x è ^ • Zu beweisen: ¬(^⊂A) • Beweis: Annahme des Gegenteils: ^ ⊂ A • Beweis: {x|xUAxUB}–{x|xUAxUB}= (A–B)~(B–A) (1) {x|(xUAxUB)¬(xUAxUB)}= (A–B)~(B–A) (2) {x|(xUAxUB)(xèAxèB)}= (A–B)~(B–A) (3) Gegenbeispiel: A = ^ {x|(xUAxèA)(xUAxèB) Einsetzen in der Definition: (xUBxèA)(xUBxèB)}= (A–B)~(B–A) (4) {x|(xUAxèB)(xUBxèA)}= (A–B)~(B–A) (5) ^ ⊂ ^ O ( [x : x § ^ L x § ^ ) ^ ¬ ^ ( [x : x § ^ L x § ^ ) ^ ¬ ^ ist ein Widerspruch. (1) Definition und ~, (2) Definition –, (3) Definition è und U, de Morgan, (4) Distributivität, (5) Vereinfachung, Definitionen und ~, –. Mengen, Relationen, Funktionen 11 Mengen, Relationen, Funktionen 12 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Geordnete Paare und n-Tupel Relationen • Geordnete Paare • Kartesisches Produkt ( a , b ) heisst das geordnete Paar der Elemente a und b. • Gleichheit von Paaren Die Paare ( a1 , b1 ) und ( a2 , b2 ) sind genau dann gleich, wenn a1 = a2 b1 = b2. Knorr/Fuchs SS 2000 Das kartesische Produkt der beiden Mengen A und B ist die Menge A % B aller geordneten Paare (a , b) mit a § A, b § B. A%B={(a,b)|a§Ab§B} Man schreibt A2 = A % A, A3 = A % A % A, usw. • Binäre Relationen • n-Tupel ( a1 , …, an ) heisst das geordnete n-Tupel der Elemente a1 bis an. • Gleichheit von n-Tupel Die n-Tupel ( a1 , …, an ) und ( b1 , … , bn ) sind genau dann gleich, wenn a1 = b1 … an = bn. Sei A eine Menge. Eine binäre Relation R auf A ist eine Teilmenge des kartesischen Produkts der Menge A mit sich selbst. R5A%A Seien A1 und A2 Mengen. Eine binäre Relation R auf A1 % A2 ist eine Teilmenge des kartesischen Produkts A1 % A2. R 5 A1 % A2 • n-stellige Relationen Seien A1, A2, …, An Mengen. Eine n-stellige Relation R auf A1, A2, …, An ist eine Teilmenge des kartesischen Produkts der Mengen A1, A2, …, An. R 5 A1 % A2 % … % An Mengen, Relationen, Funktionen 13 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Die 16 binären Relationen auf A = {1,2} Mengen, Relationen, Funktionen 14 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Spezielle Relationen R1 ^ R9 {(1,2),(2,1)} R2 {(1,1)} R10 {(1,2),(2,2)} R3 {(1,2)} R11 {(2,1),(2,2)} R4 {(2,1)} R12 {(1,1),(1,2),(2,1)} R5 {(2,2)} R13 {(1,1),(1,2),(2,2)} R6 {(1,1),(1,2)} R14 {(1,1),(2,1),(2,2)} R7 {(1,1),(2,1)} R15 {(1,2),(2,1),(2,2)} [ a § A, c § C : R8 {(1,1),(2,2)} R16 {(1,1),(1,2),(2,1),(2,2)} ( a , c ) § R1 1 R2 O \ b § B : ( a , b ) § R1 ( b , c ) § R2 Mengen, Relationen, Funktionen 15 • Umkehrrelation Sei R 5 A % B eine Relation. Die Umkehrrelation zur Relation R ist die Relation R-1 5 B % A mit R-1 = { ( b , a ) | ( a , b ) § R } • Komposition von Relationen Seien R1 5 A % B und R2 5 B % C Relationen. Die Komposition R1 1 R2 5 A % C von R1 und R2 wird definiert durch Mengen, Relationen, Funktionen 16 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Eigenschaften von Relationen Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Beispiel: Ein/Ausgabe Relation von Programmen Eine Relation R 5 A % B ist • Linkstotal: Jedes Element a § A tritt in mindestens einem Paar ( a , b ) § R links auf. [a § A : \ b § B : ( a , b ) § R • Rechtstotal: Jedes Element b § B tritt in mindestens einem Paar ( a , b ) § R rechts auf. [b§B:\a§A:(a,b)§R • Linkseindeutig: Für ein b § B zu dem es ein a § A gibt mit ( a , b ) § R ist dieses linke a eindeutig. [a1, a2 § A : ( \ b § B : ( a1 , b ) § R ( a2 , b ) § R ) L INTEGER A READ (A) WHILE (A <> 0) DO A := A - 2 OD WRITE (A) • Datentyp INTEGER: beliebig grosse ganze Zahlen • Ein/Ausgabe Relation: R 5 Í % Í mit ( x , y ) § R genau dann, wenn das Programm auf die Eingabe von x mit der Ausgabe von y reagiert. Ist das Programm linkstotal, rechtstotal, linkseindeutig, rechtseindeutig? a1 = a2 • Rechtseindeutig: Für ein a § A zu dem es ein b § B gibt mit ( a , b ) § R ist dieses rechte b eindeutig. [b1, b2 § B : ( \ a § A : ( a , b1 ) § R ( a , b2 ) § R ) L b1 = b2 Mengen, Relationen, Funktionen 17 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Mengen, Relationen, Funktionen 18 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Eigenschaften von binären Relationen Äquivalenzrelationen Eine binäre Relation R 5 X % X ist • Eine Äquivalenzrelation auf einer Menge M ist eine binäre Relation ;5 M % M die reflexiv, symmetrisch und transitiv ist. • Reflexiv: Jedes Element x steht zu sich selber in Relation. [x § X : ( x , x ) § R • Irreflexiv: Kein Element steht zu sich selber in Relation. [x § X : ( x , x ) è R • Symmetrisch: Zu jedem Paar in der Relation ist auch das gespiegelte Paar in der Relation. [x, y § X : ( x , y ) § R L ( y , x ) § R • Antisymmetrisch (identitiv): Zu jedem Paar in der Relation ist das gespiegelte Paar nur dann in der Relation, wenn die Elemente gleich sind. [x, y § X : ( x , y ) § R ( y , x ) § R L x = y • Asymmetrisch: Zu jedem Paar in der Relation ist das gespiegelte Paar nicht in der Relation. [x, y § X : ( x , y ) § R L ( y , x ) è R • Transitiv: [x, y, z § X : ( x , y ) § R ( y , z ) § R L ( x , z ) § R Mengen, Relationen, Funktionen 19 • Partition: Sei M eine Menge. Eine Partition von M ist eine Menge P von Teilmengen von M, also P 5 s (M), für die die folgenden Eigenschaften gelten: 1. Keine Teilmenge der Partition ist leer. 2. Die Teilmengen der Partition sind paarweise disjunkt. 3. Die Vereinigung aller Teilmengen der Partition ist die Menge M. Eine Teilmenge einer Partition heisst Zelle. • Äquivalenzklassen: Sei ; 5 M % M eine Äquivalenzrelation. Zu jedem Element m § M heisst die Menge (m); = { x § M | x ; m } die von m erzeugte Äquivalenzklasse. • Für jede Äquivalenzrelation ; auf einer Menge X bildet die Menge der Äquivalenzklassen von ; eine Partition P; von X. Mengen, Relationen, Funktionen 20 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Beispiele von Äquivalenzrelationen Hüllen 1. Sei X die Menge aller syntaktisch korrekten Pascal Programme, die einen Eingabewert lesen und entweder in eine Endlosschleife gehen oder einen Wert ausgeben. Welche der folgenden Relationen sind Äquivalenzrelationen? Sei M eine Menge und R 5 M % M eine Relation. • ;1 5 X % X mit P ;1 Q genau dann, wenn P und Q für dieselben Eingabewerte terminieren. • ;2 5 X % X mit P ;2 Q genau dann, wenn P und Q für jene Eingabewerte, für die beide Programme terminieren, dieselben Ausgabewerte ergeben. 2. Geben sei die Menge aller Menschen. Welche der folgenden Relationen sind Äquivalenzrelationen? 1. Die transitive Hülle von R ist die Relation <R>t 5 M % M definiert durch: ( x , y ) § <R>t O ( x , y ) § R \ n § Á : \ t1, t2, …, tn : ( x , t1 ), ( t1 , t2 ), …, ( tn-1 , tn ), ( tn , y ) § R 2. Die symmetrische Hülle von R ist die Relation <R>s 5 M % M definiert durch: ( x , y ) § <R>s O ( x , y ) § R ( y , x ) § R 3. Die reflexiv-transitive Hülle von R ist die Relation <R>rt 5 M % M definiert durch: • x steht zu y in Relation, falls x und y die gleiche Sprache sprechen. • x steht zu y in Relation, falls x älter oder genauso alt wie y ist. • x steht zu y in Relation, falls x und y sich gegenseitig kennen. ( x , y ) § <R>rt O ( x , y ) § <R>t x = y 4. Die reflexiv-symmetrisch-transitive Hülle von R ist die Relation <R>rst 5 M % M definiert durch: <R>rst = <<R> s > rt <R>rst ist die „kleinste“ Erweiterung von R zu einer Äquivalenzrelation. Mengen, Relationen, Funktionen 21 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Mengen, Relationen, Funktionen 22 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Funktionen Spezielle Funktionen • Eine Funktion f ist eine binäre Relation f 5 A % B, die linkstotal und rechtseindeutig ist: Zu jedem a § A gibt es genau ein b § B mit (a , b) § f. Bei Funktionen schreibt man f : A D B anstatt f 5 A % B und f(a) = b anstatt (a , b) § f. • Identität • Terminologie 1. A heisst der Definitionsbereich von f. Die Funktion idA : A D A, die durch idA(a) = a definiert ist, heisst die Identität. • Konstante Funktion Eine Funktion c : A D B, die für alle Werte des Arguments denselben Wert hat, heisst konstant. • Umkehrfunktion 2. B heisst der Wertebereich von f. 3. Die Menge f(A) = { f(a) | a § A } heisst das Bild von f. Eine Funktion g : B D A heisst eine Umkehrfunktion einer Funktion f : A D B, wenn g 1 f : A D A gleich idA ist, und • Eigenschaften von Funktionen 1. Eine Funktion ist surjektiv, wenn sie rechtstotal ist. 2. Eine Funktion ist injektiv, wenn sie linkseindeutig ist. 3. Eine Funktionen ist bijektiv, wenn sie surjektiv und injektiv ist. • Sind f : A D B und g : B D C Funktionen, so bezeichnet g 1 f : A D C die Komposition von f und g, die durch (g 1 f)(a) = g(f(a)) definiert ist. Mengen, Relationen, Funktionen 23 f 1 g : B D B gleich idB ist. Eine Funktion hat genau dann eine Umkehrfunktion, wenn sie bijektiv ist. Diese Umkehrfunktion ist eindeutig. • Charakteristische Funktion Gegen sei eine Menge A und ein Element a§ A. Die Funktion a: A D {0,1} ist definiert als a(a) = 1 und a(b) = 0 für b ¬ a und heisst die charakterische Funktion von a. Mengen, Relationen, Funktionen 24 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Funktionenräume Funktionen mit mehreren Variablen Ein Funktionenraum ist eine Menge von Funktionen. Eine Funktion kann von mehreren Variablen abhängen, und der Wertebereich kann mehrdimensional sein. Formal: Der Funktionenraum AB ist definiert als f: A1 % … % An D B1 % … % Bm . AB = {f | f : B D A }. Man schreibt dann für die Funktionswerte Er beinhaltet alle Funktionen, die die Menge B auf die Menge A abbilden. f(a1 , … , an ) = ( b1 , … , bm) = ( f1 (a1 , … , an ) , … , fm (a1 , … , an ) ) . Wie viele Elemente hat AB ? Die Funktionen f1 ,…, fm heissen Koordinatenfunktionen. Beispiele: • Additionsfunktion: +: Í % Í D Í mit +(a,b)= a + b . • Multiplikationsfunktion: k: Í % Í D Í mit k(a,b)= a • b . • „Spiralfunktion“: sp: Å D Å % Å % Å mit sp(t)=( sin(t) , cos(t) , t ). Mengen, Relationen, Funktionen 25 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Mengen, Relationen, Funktionen 26 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Kardinalität von Mengen Kardinalität von Mengen (2) • Anzahl von Elementen (informell) • Formaler: Sei A eine Menge mit endlich vielen Elementen. Die Anzahl | A | nennt man die Mächtigkeit oder Kardinalität der Menge. • Zwei endliche Mengen haben dieselbe Kardinalität, wenn die Anzahl der Elemente in beiden Mengen gleich ist. Nimmt man je ein Element aus beiden Mengen heraus, bleiben am Ende zwei leere Mengen. • Cantor hat diese Idee für unendliche Mengen weiterentwickelt: Zwei unendliche Mengen haben dieselbe Kardinalität, wenn sich die Elemente beider Mengen zu Pärchen zusammenfassen lassen: 1 2 2 4 3 6 4 8 5 10 6 12 7 14 8 16 9 18 10 … 20 | X | = | Y | O es gibt eine Bijektion zwischen X und Y | X | 7 | Y | O es gibt eine injektive Funktion von X nach Y • Die Relation ; definiert durch X ; Y O es gibt eine Bijektion zwischen X und Y ist eine Äquivalenzrelation. • Wir definieren nun | X | als die Äquivalenzklasse ( X ); • Die Kardinalität von Á ist c0 (Aleph null). c0 ist die kleinste unendliche Kardinalzahl. Mengen mit der Kardinalzahl c0 werden abzählbar unendlich genannt. • Eine weitere Kardinalzahl ist c. Dies ist die Kardinalität von s(Á) und Å. Mengen mit der Kardinalzahl c werden überabzählbar genannt. • Cantors Diagonalisierungsargument beweist c <> c0. Mengen, Relationen, Funktionen 27 Mengen, Relationen, Funktionen 28 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Cantors Diagonalisierungsargument für |s s(Á Á)| > |Á Á| Russelsches Paradox in der naiven Mengenlehre Beweis durch Widerspruch. Wir nehmen an, das |s(Á)| 7 |Á|. D.h., man kann jeder Teilmenge von Á eine Zahl aus Á so zuordnen, dass jede Zahl aus Á höchstens einmal benutzt wird. • Axiom der Komprehension: Für jede Eigenschaft können wir eine Menge bilden, die genau die Elemente enthält, die diese Eigenschaft haben. Uns interessieren die Paare, bei denen die Teilmenge von Á die Zahl aus Á nicht enthält, mit der sie gepaart wird. Beim Paar (1 , { 2 }) z.B. enthält die Teilmenge die Zahl nicht, beim Paar (2 , { 2 , 3 }) enthält sie sie. • Der Begriff der Eigenschaft muss eingeschränkt werden, sonst entsteht ein Widerspruch. • Beispiel: Man definiere M als die Mengen aller Mengen, die sich selbst nicht enthalten: Wir definieren eine Teilmenge M 5 Á so, dass M die Zahlen enthält, die entweder nicht gepaart sind oder mit einer Teilmenge von Á gepaart sind, die die Zahl nicht enthalten. M ist eine Teilmenge von Á. Also muss es ein Paar (z , M) geben. Ist z ein Element von M? Frage: Enthält M sich selber? Ja: Dann ist z gepaart mit einer Menge, die z enthält. Das ist eine Widerspruch zur Definition von M. Nein. Wenn M sich selbst nicht enthält, dann muss M sich selbst enthalten Nein: Dann ist z gepaart mit einer Menge aus |s(Á)| (nämlich M), die z nicht enthält. Nach der Definition von M muss z dann aber ein Element von M sein. Widerspruch. Wir wissen aber aus der Logik, dass aus einem Widerspruch alles abgeleitet werden kann. M={X|XèX} Ja. Wenn M sich selbst enthält, dann darf M sich selbst nicht enthalten Also muss |s(Á)| > |Á| gelten. Mengen, Relationen, Funktionen 29 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Rechnen mit Kardinalitäten Für endliche Mengen gilt: • |A~B|=|A|+|B|–|AB| • |A~B~C|=|A|+|B|+|C| – | A B |– | A C |– | B C | + | A B C | • | A - B | = | A | - | B |, falls A 5 B • |A%B|=|A|2|B| Für abzählbar unendliche Mengen gilt: • c0 + c0 = c0 • c0 2 c 0 = c0 • Was ist mit c0 - c0 ? Mengen, Relationen, Funktionen 31 Mengen, Relationen, Funktionen 30 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Gliederung Ordnungsrelationen auf Mengen • Ordnungsrelationen • Eine Ordnungsrelation oder kurz Ordnung O auf einer Menge M ist eine Relation, die reflexiv, antisymmetrisch und transitiv ist. • Bäume Beispiel: M = { 1 , 2 , 3 }, O={(1,1),(2,2),(3,3),(1,2),(1,3)} • Boolesche Algebren • Verbände • Eine Ordnungsrelation O auf einer Menge M ist total, wenn zusätzlich gilt: [ x, y § M : ( x , y ) § O ( y , x ) § O Beispiel: M = { 1 , 2 }, O = { ( 1 , 1 ) , ( 2 , 2 ) , ( 1 , 2 ) } • Bekannte Beispiele von Ordnungsrelationen: 1. 5 auf Mengen 2. 7 auf ganze Zahlen. • (X, 7) ist eine partiell geordnete Menge wenn 7 eine Ordnungsrelation auf X ist. Ordnungen 1 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Ordnungen 2 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Beispiel einer Ordnungsrelation Spezielle Elemente von Ordnungen Sei X die Menge aller syntaktisch korrekten Pascal Programme, die einen Eingabewert lesen und entweder in eine Endlosschleife gehen oder einen Wert ausgeben. Die Relation 5 X % X definieren wir als: Spezielle Elemente von Ordnungen: 1. s § M heisst kleinstes Element. wenn s kleiner als alle anderen Elemente ist. [x§M:(s,x)§O P Q genau dann, wenn das Programm Q für alle Eingabewerte terminiert, für die das Programm P auch terminiert, und in diesem Fall auch dasselbe Ergebnis ausgibt wie P. 2. s § M heisst grösstes Element, wenn s grösser als alle anderen Elemente ist. Ist eine Ordnungsrelation? 3. s § M heisst minimales Element, wenn es kein Element gibt, das kleiner als s ist. [x§M:(x,s)§O [x§M:(x,s)§OLx=s 4. s § M heisst maximales Element, wenn es kein Element gibt, das grösser als s ist. [x§M:(s,x)§OLx=s Ordnungen 3 Ordnungen 4 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Strikte und reflexive partielle Ordnungen Weitere spezielle Elemente von Ordnungen • Eine strikte Ordnungsrelation O auf einer Menge M ist eine Relation, die asymmetrisch und transitiv ist. • Seien x und y Elemente einer partiell geordneten Menge M. Falls es ein Element z aus M gibt, so dass 1. z 7 x Beispiel: M = { 1 , 2 , 3 }, O = { (2 , 1) , (2 , 3) , (1 , 3) } 2. z 7 y • Wenn 7 eine partielle Ordnung auf der Menge M ist, dann ist < definiert durch 3. [ t § M : t 7 x t 7 y L t 7 z dann heisst z die grösste untere Schranke (Infimum) von x und y. x<yOx7yx¬y z=xRy eine strikte partielle Ordnung auf M. • Wenn < eine strikte partielle Ordnung auf der Menge M ist, dann ist 7 definiert durch • Seien x und y Elemente einer partiell geordneten Menge M. Falls es ein Element z aus M gibt, so dass x7yOx<yx=y 1. x 7 z eine (reflexive) partielle Ordnung auf M. 2. y 7 z 3. [ t § M : x 7 t y 7 t L z 7 t dann heisst z die kleinste obere Schranke (Supremum) von x und y. z=xSy Ordnungen 5 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Ordnungen 6 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Bäume als partielle Ordnungen Endliche, geordnete, binäre Bäume Ein Baum ist eine partiell geordnete Menge T mit einem grössten Element, so dass für jedes x § T die Menge { y § T | x 7 y } eine endliche, total geordnete Teilmenge von T ist. • Binäre Bäume sind solche, bei denen kein Knoten mehr als zwei Kinder hat. Das grösste Element heisst Wurzel, die minimalen Elemente heissen Blätter. Ordnungen 7 • Geordnete Bäume sind solche, bei denen die Knoten auf gleicher Ebene ebenfalls geordnet sind. • Endliche Bäume haben eine endliche Anzahl Knoten. Ordnungen 8 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Beispiel für einen Baum Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Anwendungen • Filesystem, allgemeiner Datenspeicherung • Suchbäume • Wahrscheinlichkeitsbäume • Sportturniere mit K.O.-System • Stammbaum • Flussdiagramme Ordnungen 9 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Rekursive Definition von Bäumen • Ein einziger Knoten x ist ein binärer Baum geordnet durch x 7 x. • Wenn T1 und T2 binäre Bäume sind und x ∉ T1 ~ T2 , dann ist die partielle Ordnung auf { x } ~ T1 ~ T2 , gegeben durch y 7 x für alle y und y 7 z wenn y 7 z in T1 oder T2 , ebenfalls ein binärer Baum. Ordnungen 10 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Traversierung von endlichen, geordneten, binären Bäumen Eine Traversierung eines Baumes ist eine endliche Folge aller Knoten des Baums, die mit der Wurzel beginnt. • Inorder Zuerst den linken Teilbaum traversieren, dann die Wurzel in die Folge schreiben, und zum Schluss den rechten Teilbaum traversieren • Preorder Zuerst die Wurzel in die Folge schreiben, dann den linken Teilbaum traversieren und zuletzt den rechten Teilbaum traversieren. • Postorder Zuerst den linken Teilbaum traversieren, dann den rechten Teilbaum traversieren und zuletzt die Wurzel in die Folge schreiben. Ordnungen 11 Ordnungen 12 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Traversierung von endlichen, geordneten Bäumen: Tiefensuche Traversierung von endlichen, geordneten Bäumen: Breitensuche 1. Beginne mit der Wurzel als aktuellen Knoten. Schreibe die Wurzel in die Traversierung. 1. Beginne mit der Wurzel als einzigem Knoten in einer Arbeitsliste. Schreibe die Wurzel in die Traversierung. 2. Wähle von den noch nicht in die Traversierung geschriebenen Kindern des aktuellen Knotens das kleinste als neuen aktuellen Knoten. Schreibe den neuen aktuellen Knoten in die Traversierung. 2. Ersetze der Reihe nach jeden Knoten der Arbeitsliste durch seine Kinder in der durch die Ordnung vorgegebenen Reihenfolge und schreibe diese gleichzeitig in die Traversierung. 3. Hat ein aktueller Knoten keine noch nicht in die Traversierung geschriebenen Kinder, dann wähle seinen Vater zum aktuellen Knoten. 3. Hat ein Knoten keine Kinder, so verschwindet er aus der Arbeitsliste. 4. Verfahre gemäss Regel 2 und 3, bis die Arbeitsliste leer ist. 4. Verfahre gemäss 2 und 3, bis alle Knoten des Baums aktuelle Knoten waren. Ordnungen 13 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Boolesche Algebren 1. Kommutativität: xRy=yRx xSy=ySx 2. Assoziativität: x R (y R z) = (x R y) R z x S (y S z) = (x S y) S z 3. Distributivität: x R (y S z) = (x R y) S (x R z) x S (y R z) = (x S y) R (x S z) 4. Idempotenz xRx=xSx=x – (x S y) = – x R – y – (x R y) = – x S – y 6. Doppelte Negation ––x=x Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Boolesche Algebren als partielle Ordnungen Eine boolesche Algebra besteht aus einer Menge µ mit zwei ausgezeichneten Elementen  (Nullelement) und ¼, zwei binären Operationen R und S und einer unären Operation –. Für x, y, z 0 µ wird vorausgesetzt: 5. De Morgan Ordnungen 14 • Wir definieren a 7 b, wenn a b = a ist. • Dann gilt: 1. 7 ist eine partielle Ordnung auf µ 2. a 7 b genau dann, wenn a S b = b 3. a 7 b genau dann, wenn – b 7 – a 4. Unter der partiellen Ordnung 7 sind a R b bzw. a S b die grösste untere Schranke bzw. die kleinste obere Schranke von a und b 7. Invariable Elemente x R  =  xS¼=¼ 8. Neutrale Elemente xR¼=x xSÂ=x 9. Komplementarität xR–x= xS–x=¼ 10.  ≠ ¼,  = – ¼ Ordnungen 15 Ordnungen 16 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Beispiele boolescher Algebren 1 Beispiele boolescher Algebren 2 • Aussagenlogik: Die Menge aller Wahrheitsfunktionen auf einer Menge p = { p1, p2, … , pn } von aussagelogischen Variablen, mit S = , R = , – = ] bildet ebenfalls eine boolesche Algebra.  ist die Wahrheitsfunktion, die immer b zurückgibt, ¼ die Wahrheitsfunktion, die immer a zurückgibt. µ = { a, b } ,  = b, ¼ = a, S = , R = , – = ] • Mengenlehre: Sei X eine nichtleere Menge. µ = s(X) ,  = ^, ¼ = X, S = ~, R = , – = c (c steht dabei für das Komplement) Für P = { p, q } z.B. gibt es 16 mögliche Wahrheitsfunktionen: p q  p nor q ]p q p ]q p q ]p a a b b a b a b b b b b b b b a b b a b b a b b a b b b b b a a p q pOq q p p nand q ]p q p ]q pq ¼ a a b b a b a b a b b a a b a b a a b b b a a a a b a a a a b a a a a b a a a a Ordnungen 17 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 ]q p O ]q b a b a b a a b Ordnungen 18 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Beispiele boolescher Algebren 3 Verbände Die Menger aller Teiler von 105 (genannt T105) bildet mit den folgenden Vereinbarungen ebenfalls eine boolesche Algebra: • Gegeben sei eine partielle Ordnung 7 auf einer Menge X. Falls für beliebige x und y eine grösste untere Schranke x R y und eine kleinste obere Schranke x S y existiert, dann ist ( X , 7 ) ein Verband. µ = T105 Â=1 • Jede boolesche Algebra ist ein Verband, aber nicht jeder Verband ist eine boolesche Algebra. ¼ = 105 Beispiel: S =kgV X = Á \ { 0 } mit R =ggT x S y = kleinstes gemeinsames Vielfaches von x und y x R y = grösster gemeinsamer Faktor von x und y x 7 y wenn y mod x = 0 –x = 105/x ist keine boolesche Algebra, weil es kein grösstes Element gibt. Ordnungen 19 Ordnungen 20 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Distributive Verbände • Bei distributiven Verbänden gelten die Distributivgesetze: Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Schranken für beliebige Teilmengen geordneter Mengen • Verallgemeinerung der Begriffe grösste untere Schranke und kleinste obere Schranke. xR(ySz)=(xRy)S(xRz) xS(yRz)=(xSy)R(xSz) • Gegeben seien eine partiell geordnete Menge ( X, 7 ) und eine Menge A mit A 5 X und A ≠ ∅. Dann ist x §X die kleinste obere Schranke von A, x = NA, wenn 1. y § A : y 7 x (d.h. x ist eine obere Schranke) 2. [ t § X : ( [ y § A : y 7 t ) L x 7 t (d.h. x ist kleiner als alle anderen oberen Schranken) und z §X die grösste untere Schranke von A, z = MA, wenn 1. [ y § A : z 7 y 2. [ t § X : ( [ y § A : t 7 y ) L t 7 z Ordnungen 21 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Ausblick: CPOs • Eine Teilmenge D einer partiell geordneten Menge ( X, 7 ) ist gerichtet, wenn es für alle x, y § D ein z § D gibt, so dass x, y 7 z. • ( X, 7 ) ist eine complete partial order (cpo), wenn 1. X ein kleinstes Element hat 2. Jede gerichtete Teilmenge von X eine kleinste obere Schranke hat. • Beispiel: X sei die Menge aller Funktionen von einer Teilmenge von Á nach Á, und f 7 g wenn 1. dom f 5 dom g 2. für ein beliebiges n § dom f, f(n) = g(n) • CPOs sind das Grundwerkzeug der denotationellen Semantik Ordnungen 23 Ordnungen 22 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Deduktion Semantische Folgerungsbeziehung • Menge von Ausdrücken der Aussagenlogik oder der Prädikatenlogik beschreibt einen bestimmten Sachverhalt, quasi eine "Theorie" des Anwendungsbereiches. Was folgt logisch aus dieser Theorie? • Wenn in einer bestimmten Situation Aussagen A wahr sind, sind dann notwendigerweise auch andere Aussagen T wahr? • Deduktion: aus wahren Aussagen andere notwendigerweise wahre Aussagen ableiten • Beispiele • Folgerung sollte für alle Fälle gelten, in denen A und T wahr sind • Aussagenlogik A und T sind Mengen aussagenlogischer Ausdrücke Wenn es regnet, dann wird die Strasse nass. Es regnet. ----------------------------------------------------Die Strasse wird nass. Vögel können fliegen. Tweetie ist ein Vogel. -------------------------Tweetie kann fliegen. Es gilt die logische Konsequenz A |= T, wenn jede Zuordnung von Wahrheitswerten, die A wahr macht, auch T wahr macht. • Prädikatenlogik A und T sind Mengen prädikatenlogischer Ausdrücke • verallgemeinert zur universellen Schlussregel "modus ponens" Es gilt die logische Konsequenz A |= T, wenn jedes Modell der Menge A auch ein Modell der Menge T ist. Wenn A gilt, dann gilt B. A gilt. -----------------------------B gilt. • Wie kann man diese und andere Schlussregeln formalisieren? Weitere Logik: Resolution 1 Weitere Logik: Resolution 2 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Syntaktische Folgerungsbeziehung Zusammenhang zwischen semantischer und syntaktischer Folgerung • nach festen syntaktischen Regeln – Deduktionsregeln oder Inferenzregeln – werden rein mechanisch aus Aussagen andere Aussagen hergeleitet • Aussagen T sind aus einer Menge von Aussagen A herleitbar, wenn man T nach endlichen vielen Anwendungen der Regeln auf A erhält A |− T Ausgangsaussagen A werden Axiome genannt, hergeleitete Aussagen T Theoreme Ableitung wird auch Beweis genannt • Beweis ist endliche Folge von Aussagen P1, P2, ..., Pn • Deduktionssystem muss korrekt sein, d.h. jedes hergeleitete Theorem muss logische Konsequenz der Axiome sein M |− P → M |= P • Deduktionssystem sollte vollständig sein, d.h. jede logische Konsequenz der Axiome sollte auch hergeleitet werden können M |= P → M |− P • wenn ein Deduktionssystem korrekt und vollständig ist, dann kann man die logische Konsequenz durch einen Beweis ersetzen wobei jedes Pi ein Axiom oder eine nach den Regeln hergeleitete Aussage ist Beweis gelingt, wenn die letzte Aussage Pn das zu beweisende Theorem ist • Beweisstrategie effizient – möglichst kurze Beweise zielgerichtet – möglichst wenig fehlschlagende Beweisversuche Weitere Logik: Resolution 3 Weitere Logik: Resolution 4 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Deduktionssysteme Resolution • Deduktionssystem besteht aus Axiomen, Deduktionsregeln und – was oft vergessen wird – einer Beweisstrategie • Resolution ist ein Deduktionssystem mit einer einzigen Deduktionsregel • axiomatische Deduktionssysteme enthalten meistens mehrere Deduktionsregeln zusätzlich zu den Axiomen, die den Diskursbereich beschreiben, werden sogenannte logische Axiome verwendet, d.h. Tautologien zur Umformung von Ausdrücken axiomatische Systeme eignen sich in erster Linie für theoretische Untersuchungen sie sind für praktische und speziell für automatische Beweise schlecht geeignet • natürliche Deduktionsysteme enthalten Deduktionsregeln, die das menschliche Beweisen widerspiegeln sollen gut für das Arbeiten mit Papier und Bleistift basieren auf menschlicher Intuition, sind daher schlecht zu automatisieren • Resolution entstand beim Versuch, Deduktion zu automatisieren, d.h. Beweise durch den Computer automatisch ausführen zu lassen • Grundidee der Resolution: aus den beiden wahren Aussagen P∨Q ¬P∨R kann man die wahre Aussage Q∨R schliessen, denn entweder ist P wahr, dann muss R wahr sein, oder P ist falsch, dann muss Q wahr sein; in jedem Fall ist dann Q ∨ R wahr • Resolution setzt voraus, dass Aussagen in der Klauselform, d.h. als konjunktive Normalform, dargestellt werden • Resolutionssysteme Grundlage für automatisches Beweisen und für logische Programmiersprachen • Tableaux-Systeme können manuell wie automatisch verwendet werden Weitere Logik: Resolution 6 Weitere Logik: Resolution 5 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Klauselform der Aussagenlogik Klauselform der Aussagenlogik • konjunktive Normalform einer aussagenlogischen Formel: Konjunktion von Disjunktionen von atomaren und negierten atomaren Aussagen • Klausel ist Aussage der Form D1 ∧ D2 ∧ ... ∧ Dn (Di heissen Klauseln) Di = Li1 ∨ Li2 ∨ ... ∨ Lim (Lij heissen Literale) • systematische Umwandlung in Klauselform • äquivalente Formen ≡ P1 ∨ P2 ∨ ... ∨ Pn ∨ ¬ (N1 ∧ N2 ∧ ... ∧ Nm) ≡ (N1 ∧ N2 ∧ ... ∧ Nm) → (P1 ∨ P2 ∨ ... ∨ Pn) • Notation der logischen Programmierung Beispiel ≡ P1 , P2 , ... , Pn ← N1 , N2 , ... , Nm A → ¬(B → C) 1. Schritt: Elimination von → A → ¬ (B → C) ≡ P1 ∨ P2 ∨ ... ∨ Pn ∨ ¬ N1 ∨ ¬ N2 ∨ ... ∨ ¬ Nm [Regel: P → Q ≡ ¬ P ∨ Q] (Kommata auf der linken Seite bedeuten Disjunktion, auf der rechten Seite Konjunktion) ¬ A ∨ ¬ (¬ B ∨ C) 2. Schritt: Verteilung von ¬ auf atomare Ausdrücke ¬ A ∨ ¬ (¬ B ∨ C) ≡ ¬ A ∨ (¬ ¬ B∧ ¬ C) ≡ [Regel: ¬ (P ∨ Q) ≡ ¬ P ∧ ¬ Q] [Regel: ¬ ¬ P ≡ P] ¬ A ∨ (B ∧ ¬ C) 3. Schritt: Umwandlung in eine Konjunktion von Disjunktionen ¬ A ∨ (B ∧ ¬ C) ≡ [Regel: P ∨ (Q ∧ R) ≡ (P ∨ Q) ∧ (P ∨ R)] (¬ A ∨ B) ∧ (¬ A ∨ ¬ C) 4. Schritt: Darstellung als Menge von Klauseln {(¬ A ∨ B) , (¬ A ∨ ¬ C)} Weitere Logik: Resolution 7 Weitere Logik: Resolution 8 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Schlussregel Resolution Andere Schlussregeln als Resolution • Resolutionsregel (Robinson) • Resolution ist eine mächtige Schlussregel, die andere Schlussregeln als Spezialfälle enthält Klausel K1 mit dem positiven Literal L Klausel K2 mit dem negativen Literal ¬ L Aus den Klauseln K1 und K2 leitet man die Resolvente, d.h. die Klausel {K1 - {L}} ∪ { K2 - {¬ L}} ab. K1 K2 -----------------------------------{K1 - {L}} ∪ { K2 - {¬ L}} • modus ponens P→Q P --------------------Q als Resolution ¬P∨Q P --------------------Q • Beispiel p∨q∨¬r s∨¬p -----------------------------------q∨¬r∨s • modus tollens P→Q ¬Q --------------------¬P als Resolution ¬P∨Q ¬Q --------------------¬P Weitere Logik: Resolution 9 Weitere Logik: Resolution 10 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Leere Klausel Leere Klausel • leere Klausel {}, d.h. Klausel ohne positive und negative Literale, steht für die widersprüchliche Aussage ⊥, d.h. für Inkonsistenz • Beispiel Klauselmenge M = {¬p ∨ q, p, ¬ q} Resolutionen • Wie kann man das verstehen? ¬p ∨ q p ----------------q ¬q ------------------{} Es gilt A∨⊥≡A A∧¬⊥≡A Dann (N1 ∧ N2 ∧ ... ∧ Nm) → (P1 ∨ P2 ∨ ... ∨ Pn) ≡ (N1 ∧ N2 ∧ ... ∧ Nm ∧ ¬ ⊥) → (P1 ∨ P2 ∨ ... ∨ Pn ∨ ⊥) leere Klausel enthält keine N und keine P ≡¬⊥→⊥ ≡¬¬⊥∨⊥ ≡⊥∨⊥ d.h. die Klauselmenge M ist inkonsistent andere Ableitung der leeren Klausel ¬p ∨ q ¬q ----------------¬p p ------------------{} • Eine Klauselmenge ist inkonsistent, wenn man durch Resolution auf irgendeine Weise die leere Klausel {} ableiten kann. ≡⊥ Weitere Logik: Resolution 11 Weitere Logik: Resolution 12 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Deduktionstheorem Deduktion mit Resolution • Deduktionstheorem • Deduktion mit Resolution verwendet Beweise durch Widerspruch (Refutation) M ∪ {A} |− B genau dann, wenn M |− (A → B) • Vorgehensweise • M |− P genau dann, wenn M ∪ {¬P} inkonsistent ist Spezialfall des Deduktionstheorems M ∪ {A} |− B genau dann, wenn M |− (A → B) setze A = ¬P und B = ⊥ M ∪ {¬P} |− ⊥ genau dann, wenn M |− (¬P → ⊥), d.h. wenn M |− P M |− P genau dann, wenn M ∪ {¬P} inkonsistent ist Um nachzuweisen, dass M ∪ {¬P} inkonsistent ist, transformiert man M ∪ {¬P} in Klauselform. Dabei verwendet man den Satz: Eine Menge M von aussagenlogischen Formeln kann in eine Menge von Klauseln transformiert werden, die genau dann konsistent ist, wenn M konsistent ist. Wenn man aus den aus M ∪ {¬P} entstandenen Klauseln durch Resolution die leere Klausel ableiten kann, dann ist diese Klauselmenge inkonsistent. Damit ist auch M ∪ {¬P} inkonsistent, und somit gilt M |− P. Falls man die leere Klausel nicht ableiten kann, dann ist M ∪ {¬P} konsistent und somit kann P nicht aus M abgeleitet werden. Weitere Logik: Resolution 13 Weitere Logik: Resolution 14 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Deduktion mit Resolution: Beispiele Deduktion mit Resolution: Beispiele • Beispiel • Beispiel (Umkehrung der Aussagen) Beweis von (p → q) → r |− p → (q → r) Beweis von p → (q → r) |− (p → q) → r Ist Ist {(p → q) → r, ¬ (p → (q → r))} { p → (q → r), ¬ ((p → q) → r)} inkonsistent? inkonsistent? Umwandlung in Klauselform Umwandlung in Klauselform ≡ {¬ (¬ p ∨ q) ∨ r, ¬ (¬p ∨ (¬ q ∨ r))} ≡ {¬ p ∨ (¬ q ∨ r), ¬ (¬ (¬p ∨ q) ∨ r)} ≡ {(p ∧ ¬ q) ∨ r, p ∧ q ∧ ¬ r} ≡ {¬ p ∨ ¬ q ∨ r, (¬p ∨ q) ∧ ¬ r } ≡ {(p ∨ r) ∧ (¬ q ∨ r), p ∧ q ∧ ¬ r} ≡ {¬ p ∨ ¬ q ∨ r, ¬p ∨ q, ¬ r} ≡ { p ∨ r, ¬ q ∨ r, p, q, ¬ r} Resolution führt in diesem Fall nicht zur leeren Klausel; man kann sich leicht überzeugen, dass immer eine Resolvente ¬p übrigbleibt Resolution ¬q∨r ¬r -----------------¬q q ------------------------------{} D.h. die obige Ableitung gilt nicht. Beweis wurde erbracht Weitere Logik: Resolution 15 Weitere Logik: Resolution 16 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Korrektheit und Vollständigkeit der Resolution in der Aussagenlogik Klauselform der Prädikatenlogik • Korrektheit der Resolution in der Aussagenlogik Wenn eine Klausel K aus einer Menge M von Klauseln durch Resolution abgeleitet werden kann, dann ist K eine logische Konsequenz von M. • Pränexform Ein prädikatenlogischer Ausdruck ist in Pränexform, wenn er die Form Q1 X1 (Q2X2 ....QnXn A) ...) hat, wobei Qi Quantoren sind, Xi Variable und A keine Quantoren enthält. • Klauselform • Korollar Wenn die leere Klausel aus einer Menge M von Klauseln durch Resolution abgeleitet werden kann, dann ist die leere Klausel eine logische Konsequenz von M, d.h. M inkonsistent. • Vollständigkeit der Resolution bezüglich Refutation in der Aussagenlogik Wenn eine Menge von Klauseln inkonsistent ist, dann kann man aus ihr durch Resolution die leere Klausel ableiten. Ein geschlossener prädikatenlogischer Ausdruck ist in Klauselform, wenn er die Form ∀X1 (∀X2 ....∀Xn A) ...) hat, wobei Xi alle Variablen sind, die in A auftauchen, A keine Quantoren enthält und die Form einer Disjunktion von atomaren Ausdrücken oder deren Negation hat. • Beispiel Ausdruck ∀X (mensch(X) → sterblich(X)) Pränexform wie gegeben Klauselform ∀X (¬ mensch(X) ∨ sterblich(X)) Weitere Logik: Resolution 17 Weitere Logik: Resolution 18 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Umwandlung in Klauselform Umwandlung in Klauselform • Eine Menge von prädikatenlogischen Ausdrücken kann in eine Menge von Klauseln transformiert werden, die genau dann konsistent ist, wenn die Ausgangsmenge konsistent ist. • Die Umwandlung eines Ausdrucks in Klauselform geschieht in 8 Schritten 4. Wir eliminieren alle existentiellen Quantoren. Wenn ein existentieller Quantor nicht im Gültigkeitsbereich eines universellen Quantors vorkommt, ersetzen wir jedes Auftauchen der quantifizierten Variablen durch eine bisher nicht verwendete Konstante. ∃ X p(X) → p(a) • Beispiel ∀ X (∀ Y p(X, Y) → ¬ (∀ Y (q(X, Y) → r(X, Y)))) 1. Wir eliminieren → und erhalten ∀ X (¬ ∀ Y p(X, Y) ∨ ¬ (∀ Y (¬ q(X, Y) ∨ r(X, Y)))) 2. Wir verteilen die Negationen, sodass jede Negation nur auf ein Atom wirkt, und erhalten ∀ X (∃ Y ¬ p(X, Y) ∨ ∃ Y (q(X, Y) ∧ ¬ r(X, Y))) Wenn ein existentieller Quantor im Gültigkeitsbereich universeller Quantoren vorkommt, dann ist es möglich, dass die existentiell quantifizierte Variable von den universell quantifizierten abhängt. Wir ersetzen sie daher durch eine bisher nicht verwendete Funktion der universell quantifizierten Variablen. ∀ X (∃ Y p(X, Y)) → ∀ X p(X, f(X)) Ergebnis für das Beispiel: 3. Wir benennen die Variablen um, sodass jede Variable nur einmal quantifiziert wird, und erhalten ∀ X (¬ p(X, f1(X)) ∨ (q(X, f2(X)) ∧ ¬ r(X, f2(X)))) ∀ X (∃ Y ¬ p(X, Y) ∨ ∃ Z (q(X, Z) ∧ ¬ r(X, Z))) 5. Alle verbleibenden Variablen sind nun universell quantifiziert. Wir können die universellen Quantoren daher auch fortlassen. Alle Variablen werden implizit als universell quantifiziert betrachtet. ¬ p(X, f1(X)) ∨ (q(X, f2(X)) ∧ ¬ r(X, f2(X))) Weitere Logik: Resolution 19 Weitere Logik: Resolution 20 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Umwandlung in Klauselform Klauselform der Prädikatenlogik 6. Wir bringen den Satz in konjunktive Normalform d.h. eine Konjunktion von Disjunktionen. (¬ p(X, f1(X)) ∨ q(X, f2(X))) ∧ (¬ p(X, f1(X)) ∨ ¬ r(X, f2(X))) 7. Wir eliminieren alle konjunktiven Konnektoren und schreiben die Konjunktion als eine Menge von Klauseln. {¬ p(X, f1(X)) ∨ q(X, f2(X)), ¬ p(X, f1(X)) ∨ ¬ r(X, f2(X))} 8. Zum Schluss benennen wir die Variablen noch einmal um, sodass keine Variable in mehr als einer Klausel auftaucht. • Klausel ist Aussage der Form P1 ∨ P2 ∨ ... ∨ Pn ∨ ¬ N1 ∨ ¬ N2 ∨ ... ∨ ¬ Nm alle Variablen sind implizit vor der Klausel universell quantifiziert • äquivalente Formen ≡ P1 ∨ P2 ∨ ... ∨ Pn ∨ ¬ (N1 ∧ N2 ∧ ... ∧ Nm) ≡ N1 ∧ N2 ∧ ... ∧ Nm → P1 ∨ P2 ∨ ... ∨ Pn • Notation der logischen Programmierung ≡ P1 , P2 , ... , Pn ← N1 , N2 , ... , Nm {¬ p(X, f1(X)) ∨ q(X, f2(X)), ¬ p(Y, f1(Y)) ∨ ¬ r(Y, f2(Y))} (Kommata auf der linken Seite bedeuten Disjunktion, auf der rechten Seite Konjunktion) Weitere Logik: Resolution 21 Weitere Logik: Resolution 22 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Resolution mit Variablen Substitutionen, Unifikatoren • gegeben zwei Klauseln • Begriffe p(X1) ∨ q(X1) [L] s bedeutet Anwendung der Substitution s auf das Literal L ¬ p(a) ∨ r(X2, Y2) Literal [L] s = L' ist eine Instanz von L • Resolvente? Literal L subsumiert seine Instanz L' • Da alle Variablen universell quantifiziert sind, kann man jede Variable durch einen Term aus dem Wertebereich der Variablen substituieren. • Im Beispiel ergibt die Substitution {X1/a} die Klauselinstanzen p(a) ∨ q(a) • Unifikator Wenn es für zwei Literale L1 und L2 eine Substitution s gibt, sodass [L1] s = [L2] s dann nennen wir s einen Unifikator von L1 und L2. ¬ p(a) ∨ r(X2, Y2) • allgemeinster Unifikator (most general unificator, mgu) • Resolvente Der Unifikator s ist genau dann der allgemeinste Unifikator für L1 und L2 ist, wenn für jeden anderen Unifikator s' gilt, dass das Literal [L1] s das Literal [L1] s' subsumiert. q(a) ∨ r(X2, Y2) Der allgemeinste Unifikator ist bis auf Variablenumbenennungen eindeutig. Weitere Logik: Resolution 23 Weitere Logik: Resolution 24 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Beispiel für allgemeinsten Unifikator Wann unifizieren zwei Literale? • Literale • Relationszeichen (Prädikatsname) und Arität müssen übereinstimmen p(a, Y, Z) • alle Argumente müssen unifiziert werden können p(X, b, Z) Unifikation gelingt, wenn ein oder beide Argumente Variable sind werden durch die Substitution s {X/a, Y/b, Z/c} Unifikation gelingt, wenn beide Argumente die gleiche Konstante sind unifiziert [p(a, Y, Z)] {X/a, Y/b, Z/c} ≡ [p(X, b, Z)] {X/a, Y/b, Z/c} ≡ p(a, b, c) Aber s ist nicht der allgemeinste Unifikator. Der allgemeinste Unifikator ist in diesem Fall Unifikation gelingt, wenn beide Argumente zusammengesetzte Terme mit dem gleichen Funktionszeichen (Funktionsnamen, Funktor) und der gleichen Arität sind und alle Argumente unifizieren {X/a, Y/b} mit der Instanz [p(a, Y, Z)] {X/a, Y/b} ≡ [p(X, b, Z)] {X/a, Y/b} ≡ p(a, b, Z) Weitere Logik: Resolution 25 Weitere Logik: Resolution 26 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Resolution mit Unifikation Beispiel (Truss p. 313) • Gegeben • Beweis der Addition 2 + 2 = 4 in Peano Arithmetik durch Resolution Literal L1 in einer Klausel K1 Axiome Literal ¬ L2 in einer Klausel K2 L1 und L2 haben allgemeinsten Unifikator u • Resolvente besteht aus der Vereinigungsmenge aller Literale von K1 und K2 abzüglich L1 und ¬ L2, auf die u angewandt wurde K1 K2 ------------------------------------[{K1 - {L1}} ∪ {K2 - {¬L2}}] u X+0=X X + s(Y) = s(X + Y) Theorem s(s(0)) + s(s(0)) = s(s(s(s(0)))) • Mit den Abkürzungen sX für s(X) • Beispiel p(X,f(2)) ∨ q(X) ∨ ¬ r(X,Y) s(V) ∨ ¬ p(4,V) -----------------------------------------------------------------q(4) ∨ ¬ r(4,Y) ∨ s(f(2)) allgemeinster Unifikator ist {X/4, V/f(2)} denn es gilt p(X,f(2)) {X/4, V/f(2)} = p(4,V) {X/4, V/f(2)} add(X, Y, Z) für X+Y=Z lauten die Axiome add(X, 0, X) add(X, Y, Z) → add(X, sY, sZ) und das Theorem add(ss0, ss0, ssss0) • Umwandlung in Klauselform (1) add(X, 0, X) (2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ) (3) ¬ add(ss0, ss0, ssss0)} Weitere Logik: Resolution 27 (negiertes Theorem) Weitere Logik: Resolution 28 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Beispiel (Truss p. 313) Beispiel (Truss p. 313) • Für den ersten Resolutionsschritt verwenden wir das negierte Theorem (3) und die einzige passende Klausel (2). (Das Literal der Klausel (3) unifiziert mit dem Literal der Klausel (1) nicht.) • Für den dritten Resolutionsschritt verwenden wir die Resolvente (5) und Klausel (1). (2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ) (5) ¬ add(ss0, 0, ss0) (1) add(X, 0, X) Mit dem mgu = {X/ss0} erhalten wir die Resolvente (3) ¬ add(ss0, ss0, ssss0) mit dem mgu = {X/ss0, Y/s0, Z/sss0} erhalten wir die Resolvente (4) ¬ add(ss0, s0, sss0) • Für den zweiten Resolutionsschritt verwenden wir die Resolvente (4) und Klausel (2). Klausel (1) kommt wieder nicht in Frage. (4) ¬ add(ss0, s0, sss0) (2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ) Mit dem mgu = {X/ss0, Y/0, Z/ss0} erhalten wir die Resolvente (6) {} • Die leere Resolvente bedeutet, dass die Klauselmenge {(1), (2), (3)} inkonsistent ist und dass das Theorem aus den Axiomen folgt, d.h. dass 2 + 2 = 4 in der Peano Arithmetik gilt. • Der Resolutionsbeweis hat eine Kombination von zwei Beweisstrategien benutzt, um effizient und effektiv zur leeren Klausel zu gelangen: set-of-support man benutzt das negierte Theorem als eine der beiden Klauseln beim ersten Resolutionsschritt lineare Resolution man verwendet ab dem zweiten Resolutionsschritt immer die Resolvente des vorherigen Schrittes als eine der beiden Klauseln; die andere Klausel ist eines der Axiome oder eine vorherige Resolvente (5) ¬ add(ss0, 0, ss0) Weitere Logik: Resolution 29 Weitere Logik: Resolution 30 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Berechnung als Beweis Berechnung als Beweis • Im Beispiel wurde die Addition 2+2=4 überprüft. Nun wollen wir den Resolutionsbeweis konstruktiv verwenden, d.h. einen Wert "durch Beweis berechnen". • Dritter Resolutionsschritt: Welchen Wert muss W haben, damit W + 2 = 4? (5) ¬ add(W, 0, ss0) mgu = {X/W, X/ss0} • Klauselform (6) {} (1) add(X, 0, X) (2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ) (3) ¬ add(W, ss0, ssss0)} (1) add(X, 0, X) (negiertes Theorem) X wurde an ss0 gebunden, W an X, d.h. W an ss0. Damit haben wir W de facto als ss0 berechnet. • Erster Resolutionsschritt: (2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ) (3) ¬ add(W, ss0, ssss0) mgu = {X/W, Y/s0, Z/sss0} (4) ¬ add(W, s0, sss0) • Zweiter Resolutionsschritt: (2) ¬ add(X, Y, Z) ∨ add(X, sY, sZ) (4) ¬ add(W, s0, sss0) mgu = {X/W, Y/0, Z/ss0} (5) ¬ add(W, 0, ss0) Weitere Logik: Resolution 31 Weitere Logik: Resolution 32 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Korrektheit und Vollständigkeit der Resolution in der Prädikatenlogik Implementierung der Resolution in Prolog • Korrektheit der Resolution in der Prädikatenlogik Wenn eine Klausel K aus einer Menge M von Klauseln durch Resolution abgeleitet werden kann, dann ist K eine logische Konsequenz von M. • Korollar Wenn die leere Klausel aus einer Menge M von Klauseln durch Resolution abgeleitet werden kann, dann ist M inkonsistent. • Programmiersprache Prolog: Versuch, Resolution effizient und effektiv zu machen • Einschränkungen der Sprache auf Hornklauseln • Verwendung der SLD Resolutionsstrategie • Gewinn in Effizienz und Effektivität wird durch Unvollständigkeit erkauft, d.h. es können nicht mehr alle Lösungen durch Resolution gefunden werden • Vollständigkeit der Resolution bezüglich Refutation in der Prädikatenlogik Wenn eine Menge von Klauseln inkonsistent ist, dann kann man aus ihr durch Resolution die leere Klausel ableiten. Weitere Logik: Resolution 33 Weitere Logik: Resolution 34 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Definite Klauseln Definite Programme • definite Klauseln enthalten genau ein positives Literal • definites Programm: endliche Menge von definiten Klauseln ∀(H∨ ¬B1∨ ¬B2 ∨ ... ∨ ¬Bn) werden meistens als nach links gerichtete Implikation geschrieben H ‹– B1, B2, ... , Bn. (n≥0) (Prolog: :- statt ‹– ) pfad(X, Y) ‹– verbunden(X, Y). pfad(X, Y) ‹– verbunden(X, Z), pfad(Z, Y). verbunden(a, b). verbunden(b, c). Atom H heisst Kopf • Prolog-Programme sind definite Programme Konjunktion B1, B2, ... , Bn Körper Kommata stehen für die logische Konjunktion alle Variablen sind implizit vor der Klausel universell quantifiziert Klausel heisst Regel, wenn n>0 Klausel heisst Fakt, wenn n=0 (‹– wird dann oft fortgelassen) Fakt kann als Regel mit dem Körper true betrachtet werden Weitere Logik: Resolution 35 Weitere Logik: Resolution 36 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Zielklauseln, Anfragen SLD Resolution • Klauseln, die nur negative Literale enthalten • gegeben sei das Prolog Programm ∀ X1 ... Xk (¬G1 ∨ ¬G2 ∨ ... ∨ ¬Gm) pfad(X, Y) ‹– verbunden(X, Y). pfad(X, Y) ‹– verbunden(X, Z), pfad(Z, Y). können zu ¬∃ X1 ... Xk (G1∧ G2 ∧ ... ∧ Gm) verbunden(a, b). umgeformt werden, wobei X1 ... Xk die Variablen der Klausel sind • Bedeutung: es gibt keine Instanzen der Variablen X1 ... Xk, sodass die Konjunktion der Ziele Gi wahr ist • ∀(¬G1 ∨ ¬G2 ∨ ... ∨ ¬G m ) wird definite Zielklausel genannt und als Anfrage verstanden, die durch Widerspruch beantwortet werden kann • meistens geschrieben ‹– G1, G2, ... , Gn (Prolog: ?- G1, G2, ... , Gn.) verbunden(b, c). und die Anfrage ‹– pfad(a, Wohin). • Anfrage ‹– pfad(a, Wohin) wird durch Resolution beantwortet und die Variable Wohin wird während des Resolutionsbeweises an die Konstante b gebunden – der Wert von Wohin wird als b berechnet • Prolog verwendet eine Kombination von set-of-support Resolution mit linearer Resolution • wenn eine Resolvente aus mehr als einem Literal besteht, wird immer das am weitesten links stehende Literal für den nächsten Resolutionsschritt verwendet • Beispiel ‹– pfad(a, b). • definite Klauseln und definite Zielklauseln werden zusammen Horn-Klauseln genannt • Resolventen bilden den SLD Baum; Wurzel des Baumes ist die ursprüngliche Anfrage, Blätter des Baumes sind entweder leere Resolventen – Refutationsbeweis ist gelungen – oder nichtleeere Resolventen, für die kein weiterer Resolutionsschritt möglich ist Weitere Logik: Resolution 37 Weitere Logik: Resolution 38 Formale Grundlagen der Informatik SLD Resolution • Prolog verwendet Tiefensuche, um den SLD Baum abzusuchen, bzw. zu generieren • wenn ein Blatt eine nichtleere Resolvente ist, dann wird automatisch Backtracking ausgelöst, d.h. der Beweis wird am nächsten vorangehenden Knoten des Baumes vorgesetzt, der alternative Zweige hat; gibt es keine alternativen Zweige, dann ist der Refutationsbeweis misslungen • Prolog ist nichtdeterministisch, d.h. Anfragen können mehr als eine Lösung generieren; konkret hat die Anfrage ‹– pfad(a, Wohin). die Lösungen Wohin = b Wohin = c • wenn im SLD Baum unendliche Zweige auftauchen, dann verhindert die Tiefensuche, dass Zweige abgesucht werden, die rechts vom unendlichen Zweig sind; d.h. mögliche Lösungen werden nicht gefunden; Prolog ist also potentiell unvollständig Weitere Logik: Resolution 39 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Tableaux-Beweise in der Aussagenlogik Einführung • Wie kann man auf syntaktische Weise eine Belegung mit Wahrheitswerten finden, die einen gegebenen Ausdruck wahr oder falsch macht? • Wie können wir zeigen, dass der aussagenlogische Ausdruck • Die Frage schliesst Beweise durch Widerspruch – keine Belegung existiert – mit ein, ist aber allgemeiner. • Frage kann mit Hilfe von (analytischen/semantischen) Tableaux beantwortet werden p∨¬p eine Tautologie ist? • Wahrheitstabellen sind unpraktikabel, da sie exponentiell wachsen • stattdessen versuchen wir, die Aussage mit Hilfe von Tableaux syntaktisch zu falsifizieren • Notation: signierter Ausdruck F P bedeutet, dass wir versuchen, den (unsignierten) Ausdruck P als falsch nachzuweisen signierter Ausdruck T P bedeutet, dass wir versuchen, den (unsignierten) Ausdruck P als wahr nachzuweisen Weitere Logik: Tableaux 1 Weitere Logik: Tableaux 2 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Beispiel 1 Beispiel 1 • wir beginnen ein Tableau • weitere Expansion ist nicht möglich, da alle signierten Aussagen atomar sind 1 F (p ∨ ¬ p) das wir im Folgenden durch Expansionsregeln erweitern • Expansionsregel F∨ : eine Disjunktion ist falsch, wenn beide Disjunkte falsch sind 1 F (p ∨ ¬ p) √ 2 Fp 1, F∨ 3 F (¬ p) 1, F∨ • Tableau enthält die signierten Audrücke F p und T p, die verlangen, dass wir p gleichzeitig wahr und falsch machen, d.h. einen Widerspruch; ein solches Tableau wird geschlossen genannt • F (p ∨ ¬ p) schlägt daher fehl, d.h. p ∨ ¬ p ist eine Tautologie • Notation √ bedeutet, dass die entsprechende Zeile expandiert wurde 1, F∨ bedeutet, dass die entsprechende Zeile aus der Zeile 1 unter Anwendung der Expansionsregel F∨ entstand • Expansionsregel F¬: eine Negation ist falsch, wenn die negierte Aussage wahr ist 1 F (p ∨ ¬ p) √ 2 Fp 1, F∨ 3 F (¬ p) 1, F∨ 4 Tp 3, F¬ √ Weitere Logik: Tableaux 3 Weitere Logik: Tableaux 4 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Beispiel 2 Beispiel 2 • Ist der aussagenlogische Ausdruck • weitere Expansion mit F¬ ¬ (q ∧ r) → (¬ q ∨ ¬ r) eine Tautologie? • Tableau 1 F ¬ (q ∧ r) → (¬ q ∨ ¬ r) • Expansionsregel F→ : eine Implikation ist falsch, wenn die Vorbedingung wahr und die Konsequenz falsch ist 1 F ¬ (q ∧ r) → (¬ q ∨ ¬ r) 2 T ¬ (q ∧ r) 1, F→ 3 F (¬ q ∨ ¬ r) 1, F→ √ 1 F ¬ (q ∧ r) → (¬ q ∨ ¬ r) 2 T ¬ (q ∧ r) 1, F→ 3 F (¬ q ∨ ¬ r) 1, F→ √ 4 F¬q 3, F∨ √ 5 F¬r 3, F∨ √ 6 Tq 4, F¬ 7 Tr 5, F¬ • Expansionsregel T¬: eine Negation ist wahr, wenn die negierte Aussage falsch ist • weitere Expansion von Zeile 3 mit F∨ √ 1 F ¬ (q ∧ r) → (¬ q ∨ ¬ r) √ 2 T ¬ (q ∧ r) 1, F→ √ 3 F (¬ q ∨ ¬ r) 1, F→ √ 4 F¬q 3, F∨ √ √ 1 F ¬ (q ∧ r) → (¬ q ∨ ¬ r) 2 T ¬ (q ∧ r) 1, F→ 3 F (¬ q ∨ ¬ r) 1, F→ 4 F¬q 3, F∨ 5 F¬r 3, F∨ 5 F¬r 3, F∨ 6 Tq 4, F¬ (Zeilen müssen nicht notwendigerweise in der textuellen Reihenfolge expandiert werden.) 7 Tr 5, F¬ 8 F (q ∧ r) 2, T¬ √ Weitere Logik: Tableaux 6 Weitere Logik: Tableaux 5 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Beispiel 2 Beispiel 3 • Zeile 8 enthält F (q ∧ r); eine Konjunktion ist falsch, wenn mindestens ein Konjunkt falsch ist, d.h. wir müssen beide Fälle untersuchen und erhalten damit zwei Zweige im Tableau • Der aussagenlogische Ausdruck • Expansionsregel F∧: eine Konjunktion ist falsch, wenn mindestens ein Konjunkt falsch ist • Tableau 9 Fq 1 F ¬ (q ∧ r) → (¬ q ∨ ¬ r) √ 2 T ¬ (q ∧ r) 1, F→ √ 3 F (¬ q ∨ ¬ r) 1, F→ √ 4 F¬q 3, F∨ √ 5 F¬r 3, F∨ √ 6 Tq 7 8 (p ∧ q) → (r ∨ s) ist keine Tautologie. Was liefert der Tableau-Beweis? 1 F (p ∧ q) → (r ∨ s) √ 2 T (p ∧ q) 1, F→ 3 F (r ∨ s) 1, F→ • Expansionsregel T∧: eine Konjunktion ist wahr, wenn beide Konjunkte wahr sind 1 F (p ∧ q) → (r ∨ s) 4, F¬ 2 T (p ∧ q) 1, F→ Tr 5, F¬ 3 F (r ∨ s) 1, F→ F (q ∧ r) 2, T¬ √ 4 Tp 2, T∧ 8, F∧ 5 Tq 2, T∧ 8, F∧ √ 10 Fr √ √ • weitere Expansion ist nicht möglich • Tableau ist geschlossen, denn beide Zweige enthalten einen Widerspruch (T q/Fq, bzw. T r/F r) • Ausdruck ¬ (q ∧ r) → (¬ q ∨ ¬ r) kann nicht falsifiziert werden und ist somit eine Tautologie Weitere Logik: Tableaux 7 Weitere Logik: Tableaux 8 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Beispiel 3 Tableau Expansionsregeln • weitere Expansion mit F∨ • unäre Regeln (P ist ein aussagenlogischer Ausdruck) 1 F (p ∧ q) → (r ∨ s) √ 2 T (p ∧ q) 1, F→ √ 3 F (r ∨ s) 1, F→ √ 4 Tp 2, T∧ 5 Tq 2, T∧ 6 Fr 3, F∨ 7 Fs 3, F∨ T¬P ------FP F¬P ------TP (Der signierte Ausdruck über dem Strich wird bei Anwendung der Expansionsregel durch den signierten Ausdruck unter dem Strich ersetzt.) • binäre konjunktive Regeln verlängern Zweige (P und Q sind aussagenlogische Ausdrücke) • weitere Expansion ist nicht möglich • wir erhalten kein geschlossenenes Tableau • stattdessen erhalten wir die Instruktionen (= Wahrheitsbelegungen) T p, T q, F r und F s, um den Ausdruck (p ∧ q) → (r ∨ s) zu falsifizieren T (P ∧ Q) -----------TP TQ F (P ∨ Q) -----------FP FQ F (P → Q) -----------TP FQ Weitere Logik: Tableaux 9 Weitere Logik: Tableaux 10 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Tableau Expansionsregeln Tableaux • binäre disjunktive Regeln ergeben Verzweigungen (P und Q sind aussagenlogische Ausdrücke) • Ein Tableau ist ein Baum, dessen Knoten signierte Ausdrücke sind. Ein Zweig des Tableau ist der entsprechende Zweig des Baumes. F (P ∧ Q) -----------FP|FQ • Das Tableau wird durch Anwendungen von Expansionsregeln auf noch nicht expandierte Knoten aufgebaut. Für jeden nichtexpandierten, nichtatomaren Knoten gibt es genau eine Expansionsregel. T (P ∨ Q) -----------TP|TQ • Konjunktive Expansionsregeln verlängern den entsprechenden Zweig, disjunktive Expansionsregeln führen eine Verzweigung jedes Zweiges ein, der den expandierten Knoten enthält. T (P → Q) -----------FP|TQ • Jedes Tableau ist nach endlich vielen Schritten vollständig expandiert. • Ein Tableau heisst geschlossen, wenn jeder Zweig geschlossen ist, d.h. eine atomare Aussage enthält, die gleichzeitig wahr und falsch sein soll. • Eine Aussage P ist durch ein Tableau beweisbar, wenn die signierte Aussage F P zu einem geschlossenen Tableau führt. • Tableaux-Beweise sind korrekt und vollständig. Weitere Logik: Tableaux 11 Weitere Logik: Tableaux 12 Formale Grundlagen der Informatik Formale Grundlagen der Informatik Erweiterungen Erweiterungen • Um zu beweisen, dass ein Ausdruck P aus einer Menge {M1, …, Mn} von Ausdrücken folgt, verwenden wir das Deduktionstheorem • Tableau können auch Wahrheitsbelegungen generieren {M1, …, Mn} |− P genau dann, wenn |− {M1, …, Mn} → P Wenn wir |− {M1, …, Mn} → P durch ein Tableau beweisen können, dann folgt daraus {M1, …, Mn} |− P • Wie wird der Ausdruck ¬ p ∧ (r ∨ q) wahr? • Tableau • Direkter Beweis: um zu zeigen, dass ein Ausdruck P aus einer Menge {M1, …, Mn} von Ausdrücken folgt, beginnen wir mit dem Tableau T M1 … 5Tr T Mn FP Wenn dieser Beweis durch Widerspruch misslingt, dann gilt {M1, …, Mn} |− P. Weitere Logik: Tableaux 13 Formale Grundlagen der Informatik Schlussbemerkungen • Tableaux können durch Expansionregeln für Quantoren auch für die Prädikatenlogik verwendet werden; alle Ergebnisse gelten entsprechend • Expansionsregeln für Quantoren führen zu praktischen Schwierigkeiten, die auf verschiedene Weise gelöst werden und Varianten des Verfahrens ergeben • Tableaux können manuell verwendet und auch effizient auf dem Computer implementiert werden • heuristische Regeln: immer zuerst konjunktive Expansionsregeln verwenden und dann erst die disjunktiven, die zu Verzweigungen des Baumes führen • Tableaux können auch mit unsignierten Ausdrücken arbeiten Anstelle von T P schreibt man P. Anstelle von F P schreibt man ¬ P. Weitere Logik: Tableaux 15 1 T ¬ p ∧ (r ∨ q) 2 T¬p 1, T∧ √ 3 T (r ∨ q) 1, T∧ √ 4 Fp 2, T¬ 3, T∨ √ 6Tq 3, T∨ • Ausdruck ¬ p ∧ (r ∨ q) ist wahr, wenn p falsch und r wahr sind, oder aber wenn p falsch und q wahr sind. Weitere Logik: Tableaux 14 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Gliederung Elementare Definitionen • Graphen und Digraphen • Ein Graph besteht anschaulich aus Knoten und Kanten, die die Knoten verbinden. • Färben von Graphen • Adjanzenzmatrizen und Hüllen • Eulersche und Hamiltonsche Graphen • Petri Netze • Kanten können • Anhang: Induktionsbeweis 1. Gerichtet oder ungerichtet sein 2. Mehrfach oder einfach sein 3. Einen Knoten mit sich selbst verbinden oder nicht (Schlaufen) • Arten von Graphen (jeweils mit oder ohne Schlaufen) 1. Einfache Graphen (ungerichtete Einfachkanten) 2. Digraphen (gerichtete Einfachkanten) 3. Multigraphen (ungerichtete Mehrfachkanten) 4. Dimultigraphen (gerichtete Mehrfachkanten) Version 3, 26.05.2000, 14:30 Uhr Graphen 1 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Graphen 2 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Anwendungen Formalisierung von Graphen • Hasse Diagramme Ein einfacher Graph G = ( V , E ) ohne Schlaufen kann formalisiert werden als ein Paar aus einer endlichen Menge V (vertex, Knoten) und einer Menge E (edge, Kante) von Mengen von zwei Elementen aus V. • Versorgungsnetze • Computernetzwerke • Petri-Netze • Entity-Relationship Diagramme • elektrische Schaltpläne • Automaten G = ({A, B, C, D, E, F}, {{A, E}, {B, E}, {A, C}, {A, F}, {F, D}, {D, C}}) • Syntaxbäume für Programmiersprachen Alternative Formalisierung: Ein einfacher Graph (ohne Schlaufen) ist ein Paar G = ( V , ! ) aus einer endlichen Menge V und einer symmetrischen (und irreflexiven) Relation ! 5 V % V. • Entscheidungsbäume • Strassen- und Verkehrsnetze G = ({A, B, C, D, E, F}, {(A, E), (B, E), (A, C), (A, F), (F, D), (D, C), (E, A), (E, B), (C, A), (F, A), (D, F), (C, D)}) Graphen 3 Graphen 4 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formalisierung von Digraphen Formalisierung von Multigraphen Ein Digraph G = ( V , ! ) (ohne Schlaufen) ist ein Paar aus einer endlichen Menge V und einer (irreflexiven) Relation ! 5 V % V. • Ein ungerichteter Multigraph ohne Schlaufen G = ( V , E , , ) ist ein Tupel aus den endlichen Mengen V (Knoten) und E (Kanten) mit V E = ^ und einer Funktion , : E D { P 5 V | | P | = 2 }, die für jede Kante e die Endpunkte ,(e) angibt. G = ({A, B, C, D, E, F}, {a, b, c, d, e, f, g, h, i}, {(a, {F, A}), (b, {F, A}), (c, {F, A}), (d, {A, B}), (e, {E, B}), (f, {E, D}), (g, {E, D}), (h, {D, C}), (i, {D, C})}) G = ({A, B, C, D, E, F}, {(A, E), (B, E), (C, A), (A, F), (F, D), (C, D)}) • Ein gerichteter Multigraph mit Schlaufen G = ( V , E , i , f ) ist ein Tupel aus den endlichen Mengen E und V mit E V = ^ und den Funktionen i , f : E D V. Für eine Kante e gibt i(e) den Anfangs- und f(e) den Endpunkt. G = ({A, B, C, D, E, F}, {a, b, c, d, e, f, g, h, i}, {(a, A), (b, F), (c, F), (d, B), (e, B), (f, D), (g, D), (h, C), (i, C)}, {(a, F), (b, A), (c, A), (d, A), (e, E), (f, E), (g, E), (h, D), (i, C)}) Graphen 5 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Graphen 6 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Verbindungen in (Di-)Graphen Zusammenhang in (Di-)Graphen • In einem (Di-)Graph sei e eine Kante von x nach y. Dann sind x und y inzident zu e, e ist inzident zu x und y, und x und y sind adjazent. • Die Relation G 5 V % V, für die x G y genau dann gilt, wenn x und y zusammenhängend sind, heisst die Zusammenhangsrelation eines (Di-)Graphs. • Ein Weg in einem (Di-)Graph ist ein n-Tupel ( x1 , x2 , … xn )§ Vn mit n > 1 von Knoten xi § V, bei dem alle ( xI , xi+1 ) Kanten sind. Die Länge des Wegs ist n-1, der Anfangspunkt ist x1 und der Endpunkt ist xn. • Die Zusammenhangsrelation ist eine Äquivalenzrelation. • Ein Zyklus ist ein Weg, dessen Anfangs- und Endpunkt gleich sind, der mindestens die Länge drei hat, und in dem eine Kante höchstens einmal vorkommt. • Eine Zusammenhangskomponente eines (Di-)Graphs ist eine Äquivalenzklasse der Zusammenhangsrelation auf dem (Di-)Graph. • Ein Knoten y ist in einem (Di-)Graph von einem Knoten x erreichbar, wenn es einen Weg mit Anfangspunkt x und Endpunkt y gibt. Ein Punkt ist immer von sich selbst aus erreichbar. • Zwei Knoten x und y in einem (Di-)Graph sind zusammenhängend, wenn x von y und y von x erreichbar sind. • Ein (Di-)Graph heisst zusammenhängend, wenn je zwei seiner Knoten zusammenhängend sind. Graphen 7 Graphen 8 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Grad und Planariät Teilgraphen • Der Grad eines Knotens in einem (Di-)Graph ist die Anzahl der Kanten, die inzident zu diesem Knoten sind. • Ein (Di-)Graph ( F , " ) heisst genau dann ein Teilgraph eines (Di-)Graphs ( E , ! ), wenn F 5 E und " 5 !. • Ein (Di-)Graph heisst planar, wenn er so in der Ebene gezeichnet werden kann, dass die Schnittpunkte der Kanten genau die Knoten des (Di-)Graphs sind. • Ein (Di-)Graph ( F , " ) heisst genau dann ein induzierter Teilgraph eines (Di-)Graphs ( E , ! ), wenn F ein Teilgraph von E ist und wenn es zwischen jedem Paar von Punkten aus F genau dann eine Kante gibt wenn es auch in ( E , ! ) eine Kante gibt. Graphen 9 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Beispiel: Phasing Traffic Lights Graphen 10 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Beispielgraphen Graphen 11 Graphen 12 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Bäume und Wälder als Graphen Eigenschaften von Bäumen • Ein Baum ist ein zusammenhängender Graph ohne Zyklen. • Ein Graph ist genau dann ein Baum, wenn • Ein Wald ist ein Graph ohne Zyklen, dessen Zusammenhangskomponenten Bäume sind. • Sei ( P , ! ) ein zusammenhängender Graph. Ein spannender Baum ist ein Teilgraph von ( P , ! ), der ein Baum ist und alle Knoten des Graphs enthält, also ein Baum der Form ( P , " ) mit " 5 !. Knorr/Fuchs SS 2000 1. Er zusammenhängend ist. 2. Wenn er unzusammenhängend wird, sobald eine Kante entfernt wird. • Sei T ein endlicher Baum mit mindestens einem Knoten. Dann gilt: 1. T hat einen Knoten mehr als Kanten. 2. T hat mindestens einen Knoten mit Grad < 2. 3. T ist planar. Graphen 13 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Graphen 14 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Bipartite Graphen Matching Ein bipartiter Graph ( A ~ B , E ) ist ein Graph, bei dem die Menge der Knoten so in zwei nicht leere, disjunkte Mengen A und B zerlegt werden kann, dass jede Kante einen Knoten in A mit einem Knoten in B verbindet, d.h., kein Paar von Knoten aus A und kein Paar von Knoten aus B ist adjazent. • Ein Matching in einem bipartiten Graph ist eine Menge von Kanten, die keine gemeinsamen Knoten haben. • Ein Matching ist vollständig, wenn alle Knoten aus A in einer Kante vorkommen. • Ein Matching ist perfekt, wenn alle Knoten in einer Kante vorkommen. • In einem bipartiten Graph ( A ~ B , E ) gibt es genau dann ein vollständiges Matching, wenn es für jede Menge C 5 A mindestens |C| Knoten in B gibt, die adjazent zu Knoten in C sind. • In einem bipartiten Graph ( A ~ B , E ) gibt es genau dann ein perfektes Matching, wenn es ein vollständiges Matching gibt, und wenn | A | = | B |. Graphen 15 Graphen 16 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Attributierte Graphen Isomorphie • Graph mit attributierten Kanten: Jeder Kante wird ein Attribut zugeordnet • Strukturelle Unterschiede zwischen Graphen, nicht Unterschiede in der Benennung interessieren uns. Graphen, die sich nur in der Benennung unterscheiden, nennt man isomorph. • Graph mit attributierten Knoten: Jedem Knoten wird ein Attribut zugeordnet • Anwendungen attributierter Graphen: Graphen mit Kosten (Wegoptimierung, z.B. traveling salesman, Schneeräumen in Zürich), Färbung, neuronale Netze • Zwei (Di-)Graphen G = (E, !) und H = (F, ") sind isomorph, wenn es eine bijektive Funktion f : G D H gibt mit [ u, v § E : (u, v) § ! O (f(u), f(v)) § " Graphen 17 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Graphen 18 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Spezielle Graphen 1 Spezielle Graphen 2 • Kn ist der vollständige Graph ohne Schlaufen mit n Knoten, d.h., mit Kanten zwischen allen Knoten • Ein Nullgraph ist ein Graph, der keine Kanten enthält. Der Nullgraph mit n Knoten wird mit Nn bezeichnet. • Ein Zyklusgraph ist ein Graph nur einen einzigen Zyklus enthält. Der Zyklusgraph mit n Knoten wird mit Cn bezeichnet. K5 • Km, n ist der vollständige bipartite Graph mit einer Partition der Menge der Knoten in eine Menge M mit m und eine Menge N mit n Knoten. Jeder Knoten aus M ist zu allen Knoten aus N adjazent. • Ein Weggraph ist ein Graph, der nur aus einem einzelnen Weg besteht. Der Weggraph mit n Knoten heisst Pn. K3,3 Graphen 19 Graphen 20 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Theorem von Euler Tests auf Planarität • Eine Fläche eines Graphs ist eine endlich grosse, durch den Graph abgegrenzte Region der Zeichenebene. • Planare Zeichnung • Sei G ein endlicher, planarer Graph mit einer Menge V von Knoten, einer Menge E von Kanten und einer Menge F von Flächen. Sei | V | > 0. Dann gilt |V|+|F|=|E|+1 Knorr/Fuchs SS 2000 • 1. Eulerkriterium: Ist die dreifache Knotenzahl kleiner als die Kantenzahl + 6, dann ist der Graph nicht planar. • 2. Eulerkriterium: Ist die zweifache Knotenzahl kleiner als die Kantenzahl + 4 und enthält der Graph keine Dreiecke, dann ist der Graph nicht planar. • 3. Eulerkriterium: Hat der Graph nur Knoten vom Grad 6 und grösser, dann ist der Graph nicht planar. • Kuratowski Kriterium: Eine Graph ist genau dann planar, wenn er weder K3,3 noch K5 noch einen Unterteilungsgraphen dieser zwei Graphen als Teilgraph enthält. Unterteilungsgraph: Seien F und G zwei Graphen. F heisst ein Unterteilungsgraph von G, wenn F aus G ausschliesslich durch Hinzufügen von Knoten vom Grad 2 entsteht, die eine bereits bestehende Kanten zweiteilen. Graphen 21 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Graphen 22 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Färbung von Graphen Färbung von planaren Graphen • Sei C eine Menge (von Farben). Eine Färbung eines Graphs G = ( V , E ) ist eine Zuweisung von Elementen aus V zu den Elementen von C so, dass adjazenten Knoten unterschiedliche Elemente von C zugewiesen werden. • Es ist relativ einfach zu zeigen, dass 5 Farben genügen, um einen planaren Graph zu färben. • Die chromatische Zahl eines Graphs G = ( V , E ) ist die kleinste Zahl von Farben, mit der er gefärbt werden kann. • Die Färbung von Karten ist äquivalent zur Färbung von Graphen. • Es gelang nicht, einen planaren Graph zu finden, der fünf Farben brauchte. • 1976 bewiesen Appel und Haken mit Computerunterstützung, dass vier Farben genügen. • Scheduling kann ebenfalls als Färbungsproblem formuliert werden. Graphen 23 Graphen 24 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Das Fünf Farben Theorem (1) Das Fünf Farben Theorem (2) • Behauptung: Jeder endliche, planare Graph G = ( V , E ) kann mit fünf (oder weniger) Farben gefärbt werden. 2. Es gibt genau eine Zusammenhangskomponente. • Beweis: Induktion über die Anzahl der Knoten | V |. Verankerung: Für | V | 7 5 kann jeder Knoten mit einer unterschiedlichen Farbe gefärbt werde. QED Induktionsschritt: Unter der Annahme, dass alle Graphen mit weniger Knoten als G mit fünf Farben gefärbt werden können (Induktionshypothese), müssen wir zeigen, dass auch G mit fünf Farben gefärbt werden kann. Man teile G in seine Zusammenhangskomponenten auf. Wir unterscheiden zwischen Graphen mit mehr als einer und mit genau einer Zusammenhangskomponente. 1. Falls es mehr als eine Zusammenhangskomponente gibt, hat jede Zusammenhangskomponente weniger Knoten als G. Gemäss Induktionshypothese können diese mit fünf Farben gefärbt werden. Da es keine Kanten zwischen den Zusammenhangskomponenten gibt, haben wir damit bereits eine Färbung von G mit fünf Farben. Es gilt das Theorem von Euler| V | + | F | = | E | + 1. (a) Wir betrachten nun die Zahl N von Paaren ( e , f ), wobei e eine Kante einer Fläche f ist. Jede Kante kann höchstens zwei Flächen begrenzen. Somit gilt N 7 2 * | E |. Jede Fläche wird von mindestens 3 Kanten begrenzt. Somit gilt N 8 3 * | F | und damit 3 *| F | 7 2 * | E |. (b) Für jedes n sei Vn die Anzahl Knoten mit Grad n. Wenn k der maximale Grad eines Knotens von G ist, so ist | V | = | V1 | + | V2 | + … + | Vk |. (c) Es gilt: In einem endlichen Graph ist die Summe der Grade der Knoten zweimal die Zahl der Kanten: 2 * | E | = | V1 | + 2 * | V2 | + … + k * | Vk |. Nun folgt 072*|E|-3*|F| | E | 7 3 * (| E | - | F |) | E | 7 3 * (| V | - 1) 2 * | E | 7 6 * (| V | - 1) Knorr/Fuchs SS 2000 Das Fünf Farben Theorem (3) | V1 | + 2 * | V2 | + … + k * | Vk | 7 6 * | V1 | + 6 *| V2 | + … + 6 *| Vk | - 6 aus (b) arithm. aus (a) arithm. | V1 | + 2 * | V2 | + … + k * | Vk | 7 6 * (| V | - 1) aus (d) Graphen 25 Formale Grundlagen der Informatik (d) Graphen 26 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Das Fünf Farben Theorem (4) aus (c) 7 * | V7 | + … + k * | Vk | 7 5 * | V1 | + 4 *| V2 | + 3 *| V3 | + 2 * | V4 | + | V5 | + 6 *| V7 | + … + 6 *| Vk | - 6 arithm. | V7 | + 2 * | V8 | … + (k – 6) * | Vk | + 6 7 5 * | V1 | + 4 *| V2 | + 3 *| V3 | + 2 * | V4 | + | V5 | arithm. 6 7 5 * | V1 | + 4 *| V2 | + 3 *| V3 | + 2 * | V4 | + | V5 | arithm. | V1 | … | V5 | können somit nicht alle gleich 0 sein. Damit muss es einen Knoten mit Grad 7 5 geben. Sei P ein Knoten mit Grad 7 5. Sei G’ = ( V’ , E’ ) der induzierte Teilgraph von G mit V’ = V \ { P }. G’ ist planar und hat weniger Knoten als G. Somit kann dieser Graph gemäss Induktionshypothese mit fünf Farben gefärbt werden. Der schwierigere Fall: Die zu P adjazenten Knoten sind mit fünf unterschiedlichen Farben gefärbt. Wir nennen sie willkürlich rot, orange, grün, jade und blau, wenn wir die die Nachbarn von P im Uhrzeigersinn mit Pr , Po , Pg , Pj und Pb bezeichnen. Wir definieren einen rot-grün Weg als einen Weg von Pr nach Pg, der nur Knoten verwendet, die rot und grün gefärbt sind. Wir definieren ebenso einen orange-jade Pfad. Diese müssen sich kreuzen, so dass es nicht beide Pfade geben kann. Nehmen wir an, dass es keinen rot-grünen Weg gibt. Wir färben dann P grün. Schliesslich färben wir jeden roten bzw. grünen Knoten, der nur über rote und grüne Knoten von P aus erreichbar ist, mit grün bzw. rot. Damit haben wir eine Färbung von G mit fünf Farben. Man nehme ein solche Färbung. Damit sind die zu P adjazenten Knoten gefärbt. Falls diese Knoten mit weniger als fünf unterschiedlichen Farben gefärbt sind, steht für P noch eine neue Farbe zur Verfügung. Graphen 27 Graphen 28 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Färbung nicht planarer Graphen Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Charakteristische Funktion einer Relation • Die charakteristische Funktion einer Relation R auf einer Menge X ist eine Funktion von X % X auf { 0 , 1 }, mit dem Wert 1, wenn das entsprechende Paar in der Relation ist, 0, wenn nicht. • Wenn n Elemente in der Menge X enthalten sind, entspricht dies einer n % n Matrix A, deren ( r , s )-tes Element 1 oder 0 ist, je nach dem, ob das Paar ( xr , xs ) in R enthalten ist oder nicht. K5 • Beispiel: X = { a , b , c }, R = { ( a , a ) , ( b , a ) , ( c , b ) } 1 0 0 A = 1 0 0 0 1 0 K3,3 Graphen 29 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Graphen 30 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Repräsentation von (Di-)Graphen als Adjazenzmatrix Repräsentation von Multigraphen als Adjazenzmatrix • Die Adjazenzmatrix eines (Di-)Graphs ist die charakteristische Funktion der Kantenrelation. • Der Eintrag in die Adjazenzmatrix ist die Anzahl Kanten zwischen den Knoten. 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 0 0 0 1 Graphen 31 2 1 0 0 1 1 0 0 1 0 0 1 Graphen 32 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Matrix mit Wegen der Länge n Konsolidierung der Kanten • Sei G ein Graph und n U Á. Der Graph Gn enthält eine Kante von x nach y genau dann, wenn es einen Weg der Länge n von x nach y gibt. Wenn uns nur interessiert, ob ein Weg existiert, und nicht wie viele, lautet die Adjazenzmatrix An von Gn • Für n = 2 und G = 0 1 1 1 0 1 1 0 0 1 0 0 1 1 1 1 lautet die Adjazenzmatrix An von Gn 0 0 0 1 2 1 0 0 0 1 1 0 × 0 0 1 0 0 0 1 1 2 1 0 0 0 1 1 1 = 0 0 1 1 0 0 1 1 0 2 3 0 0 2 0 0 1 2 1 1 Graphen 33 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Transitive und reflexiv transitive Hülle eines Graphs • Sei A die Adjazenzmatrix einer binären Relation R auf einer Menge X mit n Elementen. • Wir definieren + auf der Menge { 0 , 1 } wie folgt: 0+0=0 0+1=1 1+0=1 1+1=1 Graphen 34 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Algorithmus von Warshall • Die Berechnung der transitiven Hülle kann effizienter gemacht werden, z.B. mit dem Algorithmus von Warshall. • Sei Am eine n %n Matrix, deren ( r , s )-tes Element am( r , s ) 1 oder 0 ist, je nach dem ob es einen Weg von r nach s gibt nur über Knoten aus { 1 , 2 , … m }. An ist die Matrix der transitiven Hülle. • Wir berechnen nacheinander A0, A1, …, An. 1. A0 = A, Hauptdiagonale von A0 auf 1 setzen • Die Adjazenzmatrix der transitiven Hülle von R lautet A + A 2 + … + An 2. Die Elemente von Am mit m > 0 werden wie folgt berechnet: am(r,s) = am-1(r,s) + am-1(r,m) * am-1 (m,s) • Die Adjazenzmatrix der reflexiv transitiven Hülle von R lautet I + A + A2 + … + An-1 Graphen 35 Graphen 36 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Minimale Distanzen in gewichteten Graphen Gewichte der minimalen Wege einer bestimmten Länge • Verallgemeinerung der Berechnung der Erreichbarkeit und des Zusammenhangs durch Attributierung der Kanten mit einem Zahl. • Sei A die Matrix der Gewichte der Kanten eines Digraphs. Die Matrix der Gewichte der Kanten des Digraphs Gn ist An, wobei das Minimum anstatt +, sowie + anstatt * verwendet wird: • Zur Vereinfachung geht man von vollständigen Graphen aus, wobei Kanten, die nicht zum ursprünglichen Graph gehören, das Gewicht T bekommen. ∞ 1 3 3 2 ∞ 2 ∞ 4 ∞ ∞ 2 ∞ 3 ∞ ∞ an(r,s) = min(a(r,1) + a(1,s), a(r,2) + a(2,s), …, a(r,n) + a(n,r)) ∞ 1 3 3 3 6 2 ∞ 2 ∞ 6 3 4 ∞ ∞ 2 = ∞ 5 ∞ 3 ∞ ∞ 5 ∞ 2 5 5 4 7 7 5 ∞ 3 ∞ 1 3 3 7 4 6 2 ∞ 2 ∞ 5 7 5 4 ∞ ∞ 2 = 7 10 7 ∞ 3 ∞ ∞ 9 6 8 3 5 7 9 7 Graphen 37 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Gewichte der minimalen Wege beliebiger Länge • Um die Gewichte der minimalen Wege beliebiger Länge zwischen zwei Knoten zu bestimmen, nehmen wir das Minimum der Wege aller Längen von 1 bis n-1, min( J , A , A2 , … , An-1 ) mit Graphen 38 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Algorithmus von Floyd • Berechnung der minimalen Wege zwischen allen Knoten • Wie der Algorithmus von Warshall für die Berechnung der transitiven Hülle. Wir berechnen nacheinander A0, A1, …, An. 1. A0 = A, Hauptdiagonale von A0 auf 1 setzen 2. Die Elemente von Am mit m > 0 werden wie folgt berechnet: 0 ∞ ∞ ∞ ∞ 0 ∞ ∞ J = ∞ ∞ 0 ∞ ∞ ∞ ∞ 0 am(r,s) = min(am-1(r,s), am-1(r,m) + am-1 (m,s)) • Laufzeitverhalten O(n3) • Für das Beispiel ergibt dies 0 2 4 5 1 3 3 0 2 4 5 0 2 3 5 0 Graphen 39 Graphen 40 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Algorithmus von Dijkstra Algorithmus von Prim • Berechnung der minimalen Wege von einem Startknoten zu allen anderen Knoten • Berechnung eines minimalen Spannbaums eines Graphs • Ein „greedy“ Algorithmus mit Laufzeitverhalten O(n2) • Bei jedem Schritt haben wir eine Menge S von Knoten, für die der minimale Weg bekannt ist und zu der wir einen weiteren Knoten hinzufügen. Nach n Schritten enthält S alle Knoten. Die Länge der Wege wird in einem Array d der Länge n gespeichert. 1. Man nummeriere die Knoten des Graphs von 1 bis n, wobei der Startknoten die Nummer 1 bekommt. Man initialisiere S = { 1 }, d1 = 0, und di = a1,i für i ≠ 1. 2. Falls | S | < n, füge man den Knoten i aus {1, 2,…n} \ S hinzu, für den di minimal ist. Falls es mehr als einen solchen Knoten gibt, wähle man willkürlich einen aus. Für alle Knoten j, die nicht in S sind, setze man dj = min( dj, di + ai,j ) • Ein „greedy“ Algorithmus mit Laufzeitverhalten O(n2) • Bei jedem Schritt haben wir eine Menge S von Knoten und einen minimalen Spannbaum T auf S, und fügen einen Knoten zu S und eine Kante zu T. Nach n Schritten enthält S alle Knoten und T einen minimalen Spannbaum. 1. Man nummeriere die Knoten des Graphs von 1 bis n. Man initialisiere S = { 1 } und T = {} . 2. Falls | S | < n, suche Knoten i aus S und j aus {1, 2,…n} \ S mit minimalem ai,j. Falls es mehr als ein solches Paar gibt, wähle man willkürlich eines aus. Man füge j zu S und die Kante ( i , j ) zu T. Falls | S | = n, fertig. Falls | S | = n, fertig. • Der Algorithmus kann so erweitert werden, dass nicht nur die Länge des minimalen Wegs, sondern auch der Weg selbst berechnet wird. Die minimalen Wege bilden zusammen einen Spannbaum des Graphs. Graphen 41 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Graphen 42 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Übersicht Matrixoperationen Eulersche Graphen • Sei A eine n % n Matrix, die zu einem Graph gehört • Ein Eulerscher Weg ist ein Weg, in dem jede Verbindungskante des Graphen genau einmal auftaucht. Berechnung Elemente von A Anzahl Wege Anzahl Kanten der Länge 2 Operation A→ A' x'ij = xi1*x1j + xi2*x2j +…+ xin*xnj • Ein Eulerscher Graph ist ein Graph, in dem es einen geschlossenen Eulerschen Weg gibt, d.h., Anfangs- und Endpunkt sind gleich. • Theoreme: Existenz eines 1 wenn mind. Eine x'ij = max(xi1*x1j, xi2*x2j, …, Wegs der Kante, 0 wenn xin*xnj) Länge 2 keine Kante 1. Ein Graph ist genau dann ein Eulerscher Graph, wenn er zusammenhängend ist und jeder Knoten einen geradzahligen Grad hat. Minimaler Weg der Länge 2 2. Ein Graph enthält genau dann einen offenen Eulerschen Weg, wenn er zusammenhängend ist und höchstens zwei Knoten mit ungeradzahligem Grad besitzt. Kosten jeder Kante, ∞ wenn keine Kante x'ij = min(xi1+x1j, xi2+x2j, …, xin+xnj) 3. In jedem Graphen ist die Anzahl der Knoten mit ungeradzahligem Grad gerade. Graphen 43 Graphen 44 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Hamiltonsche Graphen • Ein Hamiltonscher Weg ist ein Weg, in dem jeder Knoten des Graphen genau einmal auftaucht. Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Beziehung zwischen Eulerschen und Hamiltonschen Graphen • Ein Hamiltonscher Graph ist ein Graph, in dem es einen geschlossenen Hamiltonschen Weg gibt. • Theoreme: 1. Ist in einem Graph mit mindestens drei Knoten der Grad jedes Knotens grösser gleich der halben Anzahl von Knoten, dann ist der Graph Hamiltonsch. 2. Ist in einem Graph mit mindestens drei Knoten für jedes Paar nicht adjazenter Knoten die Summe der Grade grösser oder gleich der Anzahl seiner Knoten, dann ist der Graph Hamiltonsch. Graphen 45 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Graphen 46 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Das Traveling Salesman Problem Petri Netze • Ein Handelsreisender soll von seinem Wohnort alle Städte auf einer Landkarte je einmal besuchen, und zwar so, dass die Anzahl zurückgelegter Kilometer minimal ist. • Petri Netze sind eine Technik zur Darstellung paralleler und verteilter Prozesse. • Dies entspricht der Suche nach einem minimalen Hamiltonschen Zyklus. • Diese Problem ist NP-vollständig, d.h., obwohl es nicht bewiesen ist, dass es nicht in polynomialer Zeit berechnet werden kann, sind alle bekannten Algorithmen von exponentieller Komplexität. • Sogar die Suche nach irgendeinem Hamiltonschen Zyklus ist ein NP-vollständiges Problem. • Bei beiden Problemen müssen im schlimmsten Fall alle Wege durch den Graph aufgezählt und getestet werden. Graphen 47 • Eine Aktion bedeutet, dass das System in einen neuen Zustand übergeführt wird. Eine Aktion wird durch eine Transition modelliert und als dicken Strich gezeichnet. • Aktionen können nur eintreten, wenn gewisse Bedingungen erfüllt sind. Eine Bedingung wird durch eine Stelle modelliert und als Kreis gezeichnet. • Gültige Bedingungen werden durch Markierung der Stellen modelliert. Markierungen werden als Token (=fette Punkte) dargestellt. Stellen können mehrere Marken tragen. Graphen 48 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Formale Grundlagen der Informatik Struktur der Petri Netze Bezeichnungen in Petri Netzen Ein Petri Netz ist ein Tripel (S, T, !) bestehend aus • Eingangsstellen der Transition t 1. einer nichtleeren, endlichen Menge S von Stellen (auch Plätze genannt). 2. einer nichtleeren, endlichen Menge T von Transitionen mit S T = ^. Knorr/Fuchs SS 2000 2t = { s § S | (s , t) § !} • Ausgangstellen der Transition t t2 = { s § S | (t , s) § !} 3. einer Relation ! 5 (S % T) ~ (T % S ) von den Stellen auf die Transitionen und den Transitionen auf die Stellen. ! heisst Flussrelation. • Eingangstransitionen der Stelle s Ein Petri Netz ist ein bipartiter Digraph. Die beiden Mengen der Bipartition sind die Stellen und Transitionen. • Ausgangstransitionen der Stelle s 2s = { t § T | (t , s) § ! } s2 = { t § T | (s , t) § !} Graphen 49 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Graphen 50 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Statik der Petri Netze Dynamik der Petri Netze • Eine Funktion M : S DÁ0 von den Stellen in die natürlichen Zahlen heisst eine Markierung eines Petri Netzes. M gibt zu jeder Stelle die Anzahl Marken an, die auf der Stelle liegen. • Ein Petri Netz trage eine Markierung. Wenn es eine Transition gibt, die durch die Markierung aktiviert ist, dann kann das Petri Netz schalten (auch feuern genannt). • Eine Stelle s § S heisst markiert unter der Markierung M, wenn s mit mindestens einer Marke belegt ist: M(s) > 0. • Eine Transition t § T heisst aktiviert durch die Markierung M, wenn jede Eingangsstelle von t markiert ist. • Sind mehrere Transitionen durch eine Markierung aktiviert, gibt es zwei Möglichkeiten: 1. Sind die Mengen der Eingangs- und Ausgangsstellen der Transitionen paarweise disjunkt, dann sind die Transitionen unabhängig und können alle schalten. 2. Sonst wählt das Petri Netz nichtdeterministisch eine unabhängige Menge von Transitionen und schaltet sie. • Schalten: Sei M eine Markierung und s eine aktivierte Transition. Schaltet s, ergibt sich eine neue Markierung M': M'(s) = M(s) – 1 O s § 2t, s è t2 M'(s) = M(s) + 1 O s § t2, s è 2t M'(s) = M(s) sonst. Graphen 51 Graphen 52 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Beispiel eines Petri Netzes Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Anhang: Induktionsbeweis Es gibt drei „Beweisarten“: 1. direkter Beweis 2. indirekter Beweis (Widerspruchsbeweis) 3. Induktionsbeweis Die Induktion liefert ein Beweisverfahren für Aussagen A(n) mit n§Á. Formal lautet das Prinzip der Induktion: A(1) ∧ (∀n§Á:A(n) LA(n+1)) L (∀n§Á: A(n)) Ein Induktionsbeweis hat folgende Teile: • Induktionsbehauptung • Induktionsverankerung: Man zeigt die Induktionsbehauptung für eine feste natürliche Zahl, etwa A(1). • Induktionsannahme: Die Aussage sei richtig für A(n). • Induktionsschluss: Beweise A(n+1) aus A(n). Formal, A(n) L A(n+1) Graphen 53 Formale Grundlagen der Informatik Knorr/Fuchs SS 2000 Anhang: Beispiel für einen Induktionsbeweis • Induktionsbehauptung: A(n) = 1 + 2 + … + n = n (n+1) /2 • Induktionsverankerung: A(1): 1 = 1 (1 + 1) / 2 ☺ • Induktionsannahme: Die Behauptung sei richtig für n. • Induktionsschluss: A(n) L A(n+1) 1 + 2 + … + n + (n+1) = n (n + 1) / 2 + (n+1) = (n + 1) (n/2 + 1) = (n + 1) 2/2 (n/2 + 1) = (n + 1) (n + 2) / 2 ☺ Graphen 55 Graphen 54 Sprachen & Automaten Grundlagen • formale Sprachen zur Formulierung von Wissen Programmiersprachen Logik Teilmengen natürlicher Sprachen ... • Alphabet A endliche, nichtleere Menge von Buchstaben • Beschreibung formaler Sprachen durch Grammatiken • leeres Wort ε • Wort endliche Aneinanderreihung (Konkatenation) von Elementen aus A • Beschreibung und Verarbeitung formaler Sprachen durch Automaten, d.h. abstrakte Maschinen • Klassifizierung formaler Sprachen Typen von Sprachen ↔ Typen von Grammatiken ↔ Typen von Automaten • Menge aller Wörter A* Menge aller endlichen Folgen von Elementen aus A A* = {a a ... a |a ∈ A} ∪ {ε} n 1 2 i A+ = A* - {ε} • Beispiel A ={a,b} A* = {ε, a, b, aa, ab, bb, aaa, aab, abb, ...} • wichtige Typen formaler Sprachen und Automaten reguläre Sprachen ↔ endliche Automaten kontextfreie Sprachen ↔ Kellerautomaten • Konkatenation zweistellige Operation · : A* x A* → A* u, v ∈ A*, u · v wird uv geschrieben • algebraische Struktur (A*, ·) ist Halbgruppe (Monoid) u, v ∈ A* ⇒ u · v = uv ∈ A* (Abgeschlossenheit) (u · v) · w = u · (v · w) = uvw ε·u=u·ε=u (Assoziativität) (neutrales Element) 2 1 Grundlagen Sprachen • Abkürzung • Sprachen L über einem Alphabet A L ⊆ A* n u = uu...u (n-mal) u =ε 0 • L1 und L2 Sprachen über A Beispiele: a = aaa, (ab) = ababab, (abc) = ε 3 3 0 • Länge eines Wortes w |w| |ε| = 0, |a1a2 ... an|= n für ai ∈ A L1 ∪ L2 = {u|u ∈ L1 oder u ∈ L2} (Vereinigung) L1 ∩ L2 = {u|u ∈ L1 und u ∈ L2} (Durchschnitt) C n |uv| =|u| + |v|, |u |= n · |u| Beispiel: |abc| = 3 L1 = A * - L 1 (Komplement) L1 L2 = {uv|u ∈ L1 und v ∈ L2} (Produkt) • Sprache L 0 L = {ε} 1 L =L L n+1 n n = LL m L L =L n m n+m (L ) = L nm Kleene-Sternoperation L* = ∪n≥0 L = {u1u2 ... | ui ∈ L} ∪ {ε} n L+ = ∪n≥1 L 3 n 4 Sprachen Grammatiken • Beispiel A = {(, ), +, -, *, /, X} • Beispielgrammatik für ARIM E→T (Expression ist Term) E→E+T (Expression ist Expression + Term) T→F (Term ist Faktor) T → T*F (Term ist Term * Faktor) F→X (Faktor ist Konstante oder Variable) F → (E) (Faktor ist Expression in Klammern) (X steht für irgendeine Konstante oder Variable) Sprache ARIM ⊆ A* der arithmetischen Ausdrücke ∈ ARIM ∈ ARIM ∉ ARIM X X/(X+X) +X*X X+*X • Grammatiken sind Regeln der Form linke Seite → rechte Seite, die die linke Seite ersetzt (Abkürzungen: LHS für linke Seite, RHS für rechte Seite) • Probleme Sprachen sind i. A. unendliche Objekte; um damit umgehen zu können, brauchen wir endliche Beschreibungen. Welche Worte gehören zur Sprache, welche nicht? Diese beiden Fragen werden durch Grammatiken oder (abstrakte) Automaten beantwortet. • Regeln enthalten Nichtterminalsymbole (z.B. E, T, F) und Terminalsymbole (z.B. X) • Regeln werden solange angewendet, bis das abgeleitete Wort nur noch aus Terminalsymbolen besteht • jedes so abgeleitete Wort gehört zu der von der Grammatik definierten (erzeugten) Sprache • Beispiel E ⇒ E + T ⇒ T + T ⇒ T*F +T ⇒ F*F +T ⇒ X*F +T ⇒ X*X +T ⇒ X*X +F ⇒ X*X +X 5 6 Grammatiken Grammatiken • Ableitung kann als Syntaxbaum dargestellt werden • (Phrasenstruktur-) Grammatik G ist ein Quadrupel G = (N, T, S, R) N endliche Menge von Nichtterminalsymbolen T endliche Menge von Terminalsymbolen N∩T=∅ S ∈ N ist das Startsymbol R ist eine endliche Menge von Regeln (Produktionen) R ⊆ (N ∪ T)+ x (N ∪ T)* E T E T F T F F X * X + X • bei der Ableitung wurde immer das am weitesten links stehende Nichtterminal ersetzt (Linksableitung) • seien u= xyz, v=xy'z mit x, z ∈ (N ∪ T)* Relation u → G v (u geht unter G unmittelbar in v über) falls y → y' eine Regel in R ist • G erzeugt (definiert) die Sprache L(G) = {w ∈ T*|S → * w} G →G* ist die reflexiv transitive Hülle von →G • Grammatiken heissen äquivalent, wenn sie die gleiche Sprache erzeugen 7 8 Grammatiken Chomsky Hierarchie • Folge von Wörtern (w0, w1, ... , wn) mit w0 = S und wn∈ T* und w0 ⇒ w1⇒... ⇒ wn heisst (maximale) Ableitung von wn • Noam Chomsky hat Grammatiken – und die damit assoziierten Sprachen – in 4 Typen eingeteilt und es gilt Typ 3 ⊂ Typ 2 ⊂ Typ 1 ⊂ Typ 0 • Anwendung einer Regel y → y', die aus dem Wort xyz das Wort xy'z macht, heisst linksmaximal (rechtsmaximal), wenn es keine Regel gibt, in der y weiter links (rechts) auftritt, als in der Zerlegung xyz • Typ 0: Phrasenstrukturgrammatiken es gibt bezüglich der Regeln keine Einschränkungen • Linksableitung (Rechtsableitung) ist eine maximale Ableitung, deren Regelanwendungen alle linksmaximal (rechtsmaximal) sind • Beispiel einer Grammatik G = (N, T, S, R) N = {S, B, C} T = {a, b, c} R = {S → aSBC, S → aBC, CB → BC, aB → ab, bB → bb, bC → bc, cC → cc} S ⇒ aSBC ⇒ aaBCBC ⇒ aabCBC ⇒ aabBCC ⇒ aabbCC 2 2 2 ⇒ aabbcC ⇒ aabbcc = a b c L(G) = {a b c | n ≥ 1} n n n • Typ 1: kontextsensitive Grammatiken für alle Regeln LHS → RHS gilt |LHS| ≤ |RHS| kontextsensitive Regel uNv → uRHSv: Nichtterminal N kann nur im Kontext u, v durch RHS ersetzt werden Sprache {a b c | n ≥ 1} ist kontextsensitiv n n n • Typ 2: kontextfreie Grammatiken für alle Regeln LHS → RHS gilt zusätzlich LHS ∈ N kontextfreie Regel N → RHS: Nichtterminal N kann bedingungslos – in jedem Kontext – durch RHS ersetzt werden L = {a b | n ≥ 1} ist kontextfrei Sprache ARIM der arithmetischen Ausdrücke ist kontextfrei n n • Typ 3: reguläre Grammatiken für alle Regeln LHS → RHS gilt zusätzlich RHS ∈ T ∪ TN, d.h. die rechten Seiten sind entweder einzelne Terminalzeichen oder ein Terminalzeichen gefolgt von einem Nichtterminalzeichen Wieso? 9 Chomsky Hierarchie 10 Chomsky Hierarchie • Sprache L ⊆ T* heisst vom Typ X, wenn eine Grammatik vom Typ X – aber keine vom Typ X+1 – die Sprache L erzeugen kann (Eine Sprache vom Typ X kann aber auch durch Grammatiken vom Typ X-1 erzeugt werden.) • alle Sprachen vom Typ 1, 2, 3 sind entscheidbar, d.h. es gibt einen Algorithmus, der bei der Eingabe einer Grammatik G und eines Wortes w nach endlicher Zeit feststellt, ob w ∈ L(G) oder nicht Typ Sprache Grammatik Maschine Sprachzugehörigkeit 3 regulär linkslinear rechtslinear endlicher Automat entscheidbar Kellerautomat entscheidbar linear beschränkte TuringMaschine entscheidbar TuringMaschine semientscheidbar linksregulär rechtsregulär 2 kontextfrei • Sprachen vom Typ 0 werden auch rekursiv aufzählbar genannt; sie sind semi-entscheidbar • Typ 0 Grammatiken sind endliche Objekte, d.h. die Menge aller Typ 0 Grammatiken ist abzählbar, d.h. hat die Kardinalität von N ; da jeder Typ 0 Sprache mindestens eine Typ 0 Grammatik zugeordnet werden kann, ist die Menge aller Typ 0 Sprachen ebenfalls abzählbar • Menge aller Sprachen ist überabzählbar, hat die Kardinalität von R – schon Potenzmenge von {0, 1}* ist überabzählbar • es gibt also Sprachen, die nicht durch Grammatiken beschrieben werden können 11 kontextfrei Chomsky Greibach reduziert 1 kontextsensitiv Kontextsensitiv Kuroda 0 rekursiv aufzählbar allgemein separiert normal 12 Chomsky Hierarchie Reguläre Sprachen (Typ 3) • in der praktischen Informatik spielen vor allem die regulären und die kontextfreien Sprachen eine Rolle • reguläre Sprachen werden durch lineare und reguläre Grammatiken beschrieben • viele Probleme sind allerdings kontextsensitiv; man versucht dann, mit kontextfreien Grammatiken zu arbeiten und die Kontextbedingungen durch nichtgrammatische Zusatzbedingungen zu behandeln Beispiele: Für Sprachen wie Pascal oder Modula werden kontextfreie Grammatiken verwendet, obwohl Typprüfungen, Kontrolle von Parametern in Prozeduraufrufen, Verwendung von vorher deklarierten Objekten etc. eigentlich kontextsensitiv sind; diese Kontrollen werden durch zusätzliche Algorithmen erledigt. Bei der Verarbeitung natürlicher Sprache durch den Computer führt die Numerusunterscheidung – Singular oder Plural – zu Kontextsensitivität; man verwendet trotzdem kontextfreie Regeln, z. B. je einen Satz von Regeln für Singular und einen für Plural. Sogenannte Definite Clause Grammatiken erlauben eine kompaktere Darstellung. • linkslineare Grammatik Jede Regel hat links genau ein Nichtterminal und rechts entweder genau ein Terminal oder genau ein Nichtterminal gefolgt von genau einem Terminal. N→T N → NT • rechtslineare Grammatik Jede Regel hat links genau ein Nichtterminal und rechts entweder genau ein Terminal oder genau ein Terminal gefolgt von genau einem Nichtterminal. N→T N → TN • linksreguläre Grammatik Jede Regel hat links genau ein Nichtterminal und rechts entweder genau ein Terminal oder genau ein Nichtterminal gefolgt von genau einem Terminal oder das leere Wort ε. N→T N → NT N→ε • rechtsreguläre Grammatik Jede Regel hat links genau ein Nichtterminal und rechts entweder genau ein Terminal oder genau ein Terminal gefolgt von genau einem Nichtterminal oder das leere Wort ε. N→T N → TN N→ε 13 14 Reguläre Sprachen (Typ 3) Automaten • für eine reguläre oder Typ 3 Sprache L ⊆ T* sind die folgenden Aussagen äquivalent L\{ε} wird durch eine linkslineare Grammatik beschrieben. L\{ε} wird durch eine rechtslineare Grammatik beschrieben. L wird durch eine linksreguläre Grammatik beschrieben. L wird durch eine rechtsreguläre Grammatik beschrieben. • Automaten sind abstrakte Maschinen • Pumping Lemma Eine Version des sogenannten Pumping Lemma wird verwendet, um nachzuweisen, dass Sprachen – z.B. n n L={a b | n≥ 1} – nicht regulär sind. • reguläre Sprachen sind unter Vereinigung, Durchschnitt, Konkatenation, Sternbildung, Komplement und Spiegelung abgeschlossen • konkrete Maschinen in Hardware und Software – z.B. Billetautomaten, Computer, Menusteuerung eines Computers, Compiler – sind oft Realisierungen von Automaten • Automaten haben endlich viele Zustände; es gibt ausgezeichnete Anfangs- und Endzustände • zwischen Zuständen kann es Übergänge geben, die durch Eingaben – z.B. das Einlesen eines Buchstaben oder eines Wortes – ausgelöst werden • liest der Automat ein Wort, dann geht er in einen neuen Zustand über, der vom vorherigen Zustand und vom eingelesenen Wort abhängt • deterministischer Automat: Folgezustand ist eindeutig bestimmt • nichtdeterministischer Automat: es gibt mehrere Folgezustände • ausserdem kann ein Automat einen Speicher haben • Automaten werden in Klassen eingeteilt, die die Chomsky Hierarchie der Sprachen widerspiegelt • jedem Sprachtyp kann eindeutig eine Automatenklasse zugeordnet werden und umgekehrt 15 16 Endliche Automaten Endliche Automaten • endlicher Automat M ist ein Quadrupel M = (Z, A, z0, t) • Darstellung als Automatentafel Z A z0 ∈ Z endliche Menge von Zuständen endliches Eingabealphabet Anfangszustand t Zustandsübergangsfunktion Z x A → P(Z) • t(z,a) ist die Menge aller Zustände, die der Automat M einnehmen kann, wenn er im Zustand z ∈ Z den Buchstaben a ∈ A liest • deterministischer endlicher Automat: t(z,a) enthält für jedes Paar (z,a) genau ein Element a b z0 z1 z3 z1 z2 z0 z2 z3 z1 z3 z0 z2 • nichtdeterministischer endlicher Automat: t(z,a) enthält für mindestens ein Paar (z,a) mehr als ein Element • graphische Darstellung • Beispiel: Z = {z0, z1, z2, z3} a A = {a,b} t(z0,a) = z1 t(z2,a) = z3 t(z0,b) = z3 t(z2,b) = z1 t(z1,a) = z2 t(z3,a) = z0 t(z1,b) = z0 t(z3,b) = z2 z3 z2 b a b b a b z0 z1 a 17 18 Endliche Automaten Endliche Automaten • akzeptierender endlicher Automat M ist ein Quintupel M = (Z, A, z0, t, E) • Beispiel: Z = {z0, z1, z2, z3} (Z, A, z0, t) endlicher Automat E⊆Z endliche Menge von Endzuständen A = {a,b} E = z3 • nichtleeres Wort aus Eingabebuchstaben wird vom Automaten akzeptiert, wenn es zu diesem Wort eine Folge von Zustandsübergängen gibt, die in einem Endzustand endet • zu jedem akzeptierenden Automaten M gibt es eine Sprache L(M) ⊆ A*, die M akzeptiert t(z0,a) = z1 t(z2,a) = z3 t(z0,b) = z3 t(z2,b) = z1 t(z1,a) = z2 t(z3,a) = z0 t(z1,b) = z0 t(z3,b) = z2 • graphische Darstellung • sei t* als Funktion Z x A* → Z definiert durch t*(z,ε) = z z∈Z a z3 z2 b t*(z,ax) = t*(t(z,a),x) a ∈ A, x ∈ A* dann akzeptiert M die Sprache L(M) = {x ∈ A*|t*(z , x) ∈ E} a b b a b 0 z0 z1 • Jede durch einen (nicht-) deterministischen endlichen Automaten akzeptierte Sprache ist regulär (Typ 3); jede reguläre Sprache wird durch einen (nicht-) deterministischen endlichen Automaten akzeptiert. • Beispielautomat landet nach den Worten b, bab, aaa, abb, bbbbb, ... im Endzustand z3, er "akzeptiert" diese Worte 19 20 a Reguläre Sprachen Minimale endliche Automaten • Konstruktion eines deterministischen endlichen Automaten M = (Z, A, SM, t, E), der die durch eine rechtslineare Grammatik G = (N, T, SG , R) erzeugte reguläre Sprache L(G) akzeptiert Z = N ∪ {accepted} ∪ {not accepted} A=T SM = SG • zwei endliche Automaten heissen äquivalent, wenn sie dieselbe Sprache akzeptieren E = accepted Grammatikregel von der Art N1 → TN2 definiert den Übergang t(N1, T) = N2 Grammatikregel von der Art N1 → T definiert den Übergang t(N1, T) = accepted für alle anderen Paare gilt t(N, T) = not accepted • Konstruktion des einfachsten äquivalenten Automaten, der eine gegebene Sprache akzeptiert Determinierung: nichtdeterministischer endlicher Automat wird durch einen äquivalenten deterministischen ersetzt Vereinfachung: Elimination unerreichbarer Zustände Reduzierung: Elimination von funktionsgleichen Teilautomaten • Determinierung: zu jedem nichtdeterministischen endlichen Automaten M = (Z, A, z0, t, E) gibt es einen äquivalenten deterministischen M' = (Z', A', z0', t', E'), der Potenzautomat genannt wird. Z' = P(Z)\{∅} A' = A z0' = {z0} • Beispiel: Grammatik S → aS|aA, A → bA|b über Alphabet {a,b} Z = {S, A, accepted, not accepted} S→aS definiert t(S,a)=S S→aA definiert t(S,a)=A A→bA definiert t(A,b) =A A→b definiert t(A,b) =accepted t(S,b) = t(A,a) = not accepted t'(X) = ∪z∈X t(z) mit X ⊆ Z E' = {X ⊆ Z| X ∩ E ≠ ∅} • analog konstruiert man eine reguläre Grammatik der von einem endlichen Automaten akzeptierten Sprache 22 21 Minimale endliche Automaten Minimale endliche Automaten • Beispiel für Determinierung • Vereinfachung: zu jedem endlichen Automaten gibt es einen äquivalenten, aus dem die nicht erreichbaren Zustände entfernt wurden z1 a b c z1, z3 z1, z2 z3 z2 z1, z2 z3 z1 z3 z2, z3 z2 z2, z3 a b c {z1} {z1, z3} {z1, z2} {z3} {z2} {z1, z2} {z3} {z1} {z3} {z2, z3} {z2} {z2, z3} {z1, z2} {z1, z2, z3} {z1, z2, z3} {z1, z3} {z1, z3} {z1, z2, z3} {z1, z2} {z2, z3} {z2, z3} {z1, z2, z3} {z2, z3} {z1, z2, z3} {z1, z2, z3} {z1, z2, z3} {z1, z2, z3} {z1, z2, z3} • Beispiel: a b c z1 z2 z2 z3 z2 z3 z3 z3 z3 z1 z1 z1 z4 z2 z3 z4 • Zustand z4 ist nicht erreichbar, d.h. es gibt keinen Übergang von einem der anderen Zustände z1, z2, z3 • Streichen der letzten Zeile führt wieder zu einem sinnvollen Automaten 23 a b c z1 z2 z2 z3 z2 z3 z3 z3 z3 z1 z1 z1 24 Minimale endliche Automaten Minimale endliche Automaten • zwei Zustände z1, z2 ∈ Z eines endlichen Automaten (Z, A, z0, t, E) heissen äquivalent, wenn die Automaten (Z, A, z1, t, E) und (Z, A, z2 , t, E) äquivalent sind, d.h. die Teilautomaten, die in z1 bzw. z2 starten, akzeptieren die gleiche Sprache • Beispiel für Reduzierung • ein endlicher Automat heisst reduziert, wenn er keine äquivalenten Zustände enthält • Zu jedem deterministischen endlichen Automaten gibt es einen äquivalenten, der reduziert ist und Quotientenautomat genannt wird. Die Konstruktion des Quotientenautomaten geschieht über die rekursive Definition von Äquivalenzklassen von Zuständen (Details in Cap). a b z1 z2 z3 z2 z2 z4 z3 z3 z5 z4 z2 z7 z5 z6 z3 z6 z6 z6 z7 z7 z4 • man erhält folgende Äquivalenzklassen K1 = {z1}, K2 = {z2, z4, z7}, K3 = {z3, z5, z6} und den reduzierten Automaten a b K1 K2 K3 K2 K2 K2 K3 K3 K3 26 25 Minimale endliche Automaten Endliche Automaten mit Ausgabefunktionen • Minimalautomaten: bis auf Isomorphie – d.h. Umbenennung der Zustände – gibt es zu jedem endlichen Automaten genau einen äquivalenten deterministischen Automaten, der einfach und reduziert ist. Der Minimalautomat kann durch Determinierung, Vereinfachung und Reduzierung bestimmt werden. Dieses Verfahren kann automatisiert werden. • endliche Automaten können um Ausgabefunktionen zur Berechnung von Werten erweitert werden • Moore Automaten M = (Z, E, z0, t, A, w) haben eine Ausgabefunktion, die vom Zustand abhängt Z endliche Menge von Zuständen E endliches Eingabealphabet Anfangszustand z0 ∈ Z t A w Zustandsübergangsfunktion Z x E → Z endliches Ausgabealphabet Ausgabefunktion: Z → A • Mealy Automaten M = (Z, E, z0 , t, A, w) haben eine Ausgabefunktion, die vom Zustand und vom zuletzt gelesenen Eingabewert abhängt Z endliche Menge von Zuständen E endliches Eingabealphabet Anfangszustand z0 ∈ Z t A w Zustandsübergangsfunktion Z x E → Z endliches Ausgabealphabet Ausgabefunktion: Z x E → A • Moore und Mealy Automaten wandeln eine Eingabe in eine gleich lange Ausgabe um • beide Automaten sind gleichwertig 27 28 Kontextfreie Sprachen (Typ 2) Kontextfreie Sprachen (Typ 2) • kontextfreie Sprachen werden durch kontextfreie, Chomsky Normalform, Greibach Normalform und reduzierte Grammatiken beschrieben • für eine kontextfreie oder Typ 2 Sprache L ⊆ T* sind die folgenden Aussagen äquivalent L wird durch eine kontextfreie Grammatik beschrieben. L\{ε} wird durch eine Grammatik in Chomsky Normalform beschrieben. L\{ε} wird durch eine Grammatik in Greibach Normalform beschrieben. L wird durch eine reduzierte Grammatik beschrieben. • kontextfreie Grammatik Jede Regel hat links genau ein Nichtterminal. N→R • Chomsky Normalform Jede Regel hat links genau ein Nichtterminal und rechts entweder genau ein Terminal oder genau zwei Nichtterminale. N→T N → NN • Greibach Normalform Jede Regel hat links genau ein Nichtterminal und rechts entweder genau ein Terminal oder genau ein Terminal gefolgt von einem oder mehr Nichtterminalen. N→T N → TN N → TNN ... • Pumping Lemma Eine Version des Pumping Lemma wird verwendet, um n n n nachzuweisen, dass Sprachen – z.B. L={a b c | n≥ 1} – nicht kontextfrei sind. • kontextfreie Sprachen sind unter Vereinigung, Konkatenation und Sternbildung abgeschlossen • reduzierte Grammatik Jede Regel hat links genau ein Nichtterminal; wenn es sich nicht um das Startsymbol handelt, stehen rechts nur Terminale; jedes Nichtterminal taucht rechts in einer Regel auf, in der links das Startsymbol steht. 29 30 Kellerautomaten Kellerautomaten • Kellerspeicher (stack): abstrakter Datentyp über endlichem Kelleralphabet K. Keller wird durch Worte K* ∪ {ε} repräsentiert. • Anfang: Zustand z0, Keller enthält nur # Operationen push: K* x K* → K* pop: top: K* \ {ε} → K* K* \ {ε} → K push(w,k) = wk pop(k0 k1 ... kn) = k1 ... kn top(k0 k1 ... kn) = k0 • Kellerautomat M = (Z, A, K, z0, #, E, t) ist ein endlicher Automat mit einem Kellerspeicher. Z endliche Menge von Zuständen A endliches Eingabealphabet K endliches Kelleralphabet Anfangszustand z0 ∈ Z #∈K E⊆Z t Anfangskellerzeichen endliche Menge von Endzuständen Zustandsübergangsfunktion Z x (A ∪ {ε}) x K → P(Z x K*) 31 • später: Zustand z, oberstes Kellerzeichen k, nächstes Eingabezeichen a Übergang mit Lesen eines Eingabezeichens: Menge t(z,a,k) ist nicht leer: Kellerautomat wählt ein Element (z', k') aus dieser Menge, geht in Zustand z', entfernt k durch pop vom Keller, schreibt mit push k' auf den Keller spontaner Übergang ohne Lesen eines Eingabezeichens: Menge t(z,ε,k) ist nicht leer: Kellerautomat wählt ein Element (z', k') aus dieser Menge, geht in Zustand z', entfernt k durch pop vom Keller, schreibt mit push k' auf den Keller • deterministischer Kellerautomat: in jeder Situation gibt es nur genau einen Übergang entweder Übergang mit Lesen oder Übergang ohne Lesen Menge der möglichen Übergänge enthält nur ein Element 32 Kellerautomaten Kellerautomaten • Kellererautomat hält an, wenn ein Endzustand erreicht oder der Keller leer oder das ganze Eingabewort gelesen worden ist • Beispiel: Palindrom, geschachtelte Ausdrücke Kellerautomat für L={a1a2...an$an...a2a1|ai ∈{a,b}} • nichtleeres Wort aus Eingabebuchstaben wird vom Kellerautomaten akzeptiert, wenn er das ganze Wort liest und dann hält; es gibt drei gleichwertige Formen der Akzeptanz: akzeptiert: Endzustand erreicht und Keller leer zustandsakzeptiert: Endzustand erreicht kellerakzeptiert: Keller leer (am praktischsten) • sei k ∈ Z x A* x K* eine Konfiguration eines Kellerautomaten M, dann bewirkt eine Anwendung der Zustandsübergangsfunktion t einen Übergang von k zu k', ausgedrückt als Relation k ⇒ k'. Sei ⇒ * die reflexiv transitive Hülle von ⇒. M = ({z0, z1}, {a,b,$}, {#, A, B}, z0 , #, t) (Endzustand wird nicht gebraucht) Zustandsübergangsfunktion t als Übergänge zwischen Tupeln (Z, A, K) → (Z', K') geschrieben z0a# → z0A# z0b# → z0B# z0$# → z1# z1aA → z1ε z0aA → z0AA z0bA → z0BA z0$A → z1A z1bB → z1ε z0aB → z0AB z0bB → z0BB z0$B → z1B z1ε# → z1 ε Wort ba$ab ∈L(M), denn (z0, ba$ab, #) ⇒ (z0, a$ab, B#) ⇒ (z0, $ab, AB#) ⇒ (z1, ab, AB#) ⇒ (z1, b, B#) ⇒ (z1, ε, #) ⇒ (z1, ε, ε) • Kellerautomat M akzeptiert dann die Sprache L(M) = {x ∈ A*|(z0, x,#) ⇒*(z, ε, ε) für z ∈Z} • Jede durch einen nichtdeterministischen Kellerautomaten akzeptierte Sprache ist kontextfrei (Typ 2); jede kontextfreie Sprache wird durch einen nichtdeterministischen Kellerautomaten akzeptiert. 33 34 Kellerautomaten Kellerautomaten • Sprache der Palindrome über dem Alphabet {a,b, $} wird durch die folgende kontextfreie Grammatik erzeugt • Wird w durch die obige Grammatik erzeugt, dann ist es ein Palindrom. A(n) sei "jede Ableitung der Länge n oder kürzer enthält nur Palindrome" A(1) gilt Zu zeigen: ∀ n∈ N (A(n) ⇒ Α(n+1)) Sei S ⇒ S1... ⇒ S n⇒ Sn+1 eine Ableitung der Länge n+1. Laut Induktionsvoraussetzung A(n) enthält die Ableitung der Länge n S ⇒ S1... ⇒ Sn nur Palindrome. Da auf Sn eine Grammatikregel anwendbar ist, muss es ein S enthalten. Dieses S muss in der Mitte stehen, da Sn ein Palindrom ist. Die Grammatikregeln ersetzen S durch aSa, bSb oder $. D.h. Sn+1 ist wieder ein Palindrom. D.h. jedes durch die Grammatik erzeugte Wort der Länge n≥ 1 ist ein Palindrom. S → aSa | bSb | $ Beweis durch vollständige Induktion • Wiederholung: Vollständige Induktion A: N0 → {W, F} eine Eigenschaft natürlicher Zahlen A(n0) gilt (Induktionsverankerung) Für beliebiges n gilt: falls A(n) gilt, dann gilt auch A(n+k) (Induktionsschritt) dann gilt ∀ n∈ N0 (A(n0 + n*k)) • Ist w ein Palindrom, dann kann es durch die obige Grammatik erzeugt werden. A(n) sei "jedes Palindrom der Länge n kann durch die Grammatik erzeugt werden" A(1) gilt Zu zeigen: ∀ n∈N (A(n) ⇒ A(n+2)) Sei w Palindrom der Länge n+2, dann muss es die Form ara oder brb haben, wobei r ein Palindrom der Länge n sein muss. Das kann aber laut Induktionsvoraussetzung A(n) erzeugt werden, also kann auch mit Hilfe der ersten beiden Grammatikregeln ein Palindrom der Länge n+2 erzeugt werden. Also kann jedes Palindrom der Länge ≥ 1 erzeugt werden. 35 36 Kellerautomaten Syntaxbäume • Kellerautomat M heisst deterministisch, wenn für alle z∈Z, a∈A und k∈K gilt |t(z,a,k)|+ |t(z,ε,k)| ≤ 1 und der Kellerautomat zustandsakzeptiert • einer Ableitung eines Wortes w in einer Typ 2 oder 3 Grammatik G kann ein Syntaxbaum (Ableitungsbaum) zugeordnet werden sei w ∈ L(G) und S = w0 ⇒ w1⇒ ... ⇒ wn = w eine Ableitung von w S bildet die Wurzel des Syntaxbaums falls im i-ten Ableitungsschritt wi-1 ⇒ w i das Nichtterminal N durch ein Wort x ersetzt wird, dann erhält der Knoten N des Syntaxbaums |x| Töchter, die mit den einzelnen Zeichen von x beschriftet werden Blätter des Baumes sind die Symbole von w • deterministische Kellerautomaten definieren die deterministisch kontextfreien Sprachen, eine echte Teilmenge der kontextfreien Sprachen • Sprache L={a1...an$an...a1|ai∈A*} ist deterministisch kontextfrei • Sprache L={a1...anan...a1| ai∈A*} ist kontextfrei, aber nicht deterministisch kontextfrei • deterministisch kontextfreie Sprachen werden auch LR(k) Sprachen genannt und spielen im Compilerbau eine grosse Rolle 37 38 Beispiel Syntaxbäume • Beispielgrammatik für ARIM E→T (Expression ist Term) E→E+T (Expression ist Expression + Term) T→F (Term ist Faktor) T → T*F (Term ist Term * Faktor) F→X (Faktor ist Konstante oder Variable) F → (E) (Faktor ist Expression in Klammern) • verschiedenen Ableitungen kann der gleiche Syntaxbaum zugeordnet werden, der dann verschieden traversiert wird • es gilt: w ∈ L(G) ⇔ es gibt eine Ableitung von w ⇔ es gibt einen Syntaxbaum mit w an den Blättern • Beispielableitungen E ⇒ E + T ⇒ T + T ⇒ T*F +T ⇒ F*F +T ⇒ X*F +T ⇒ X*X +T ⇒ X*X +F ⇒ X*X +X ⇔ es gibt eine Linksableitung von w ⇔ es gibt eine Rechtsableitung von w E ⇒ E + T ⇒ E + F ⇒ E +X ⇒ T +X ⇒ T*F +X ⇒ T*X +X ⇒ F*X +X ⇒ X*X +X haben den gleichen Syntaxbaum E T E T F T F F X * X + X einmal links und einmal rechts abgeleitet 39 40 Mehrdeutige Grammatiken (Extended) Backus Naur Form • eine Grammatik heisst mehrdeutig, wenn es für dasselbe Wort w verschieden strukturierte Syntaxbäume gibt; andernfalls heisst die Grammatik eindeutig • Backus und Naur entwickelten die Extended Backus Naur Form EBNF zur kompakten Darstellung von Typ 2 Grammatiken. (Eine einfachere Version ist als BNF bekannt.) • Beispiel S → aB S → Ac A → ab B → bc • Zusammenfassung von Regeln mit gleicher linker Seite A → R1 A → R2 ... A → Rn für das Wort abc gibt es zwei verschiedene Ableitungen mit verschiedenen Syntaxbäumen S ⇒ Ac ⇒ abc S ⇒ aB ⇒ abc zu A → R1 | R2| ... |Rn Mehrdeutigkeit kann in diesem Fall beseitigt werden, da eine eindeutige Grammatik existiert, die dieselbe Sprache generiert S → abc • Sprache L heisst inhärent mehrdeutig, wenn jede Grammatik G mit L = L(G) mehrdeutig ist • Zusammenfassung von Regeln mit optionalen Elementen (ein Wort O kann, aber muss nicht, auftauchen) A → R1R2 A → R1OR2 zu i j k Beispiel L = {a b c | i=j oder j=k} A → R1[O]R2 41 42 (Extended) Backus Naur Form Kontextsensitive Sprachen (Typ 1) • Zusammenfassung von Regeln mit wiederholten Elementen (ein Wort W kann beliebig oft, auch 0 Mal, auftauchen) A → R1R2 • kontextsensitive Sprachen werden durch kontextsensitive Grammatiken oder durch Kuroda Normalform Grammatiken beschrieben A → R1WRR2 WR→ W WR→ WWR • kontextsensitive Grammatik keine Regel ist verkürzend, d.h. für jede Regel LHS → RHS gilt |LHS| ≤ |RHS| RHS ≠ ε • Kuroda Normalform jede Regel hat eine der vier Formen N→T N → N N → NN NN → NN zu A → R1{W}R2 • (E)BNF und kontextfreie Grammatiken sind gleichwertig, d.h. durch (E)BNF werden genau die kontextfreien Sprachen dargestellt 43 • kontextsensitive Sprachen sind unter Vereinigung, Durchschnitt, Konkatenation, Komplement und Sternbildung abgeschlossen 44 Rekursiv aufzählbare Sprachen (Typ 0) Turingmaschinen • rekursiv aufzählbare Sprachen werden durch allgemeine, separierte oder normale Grammatiken beschrieben • Turingmaschinen sind endliche Automaten mit einem beliebig grossen, sequentiell zugreifbaren Speicher • allgemeine Grammatik beliebige Regeln • Turings Vorstellung: endlicher Automat mit einem unendlichen Speicherband, das aus einzelnen Feldern besteht, und einem Lese- und Schreibkopf, der sich auf dem Band bewegen kann. Die Felder enthalten Buchstaben des Bandalphabets. Zeichen, die sich unter dem Kopf befinden, können gelesen und verändert werden. Der Kopf kann sich um ein Feld nach rechts oder links bewegen oder an der gleichen Stelle bleiben. • separierte Grammatik jede Regel hat eine der Formen N→T N→ε N1N2 ...Nn → ε • Turingmaschine M wird formal durch ein 7-Tupel beschrieben M=(Z, A, B, t, z0, #, E) Z endliche Menge von Zuständen A endliches Eingabealphabet B endliches Bandalphabet, A⊆B z0 ∈ Z Anfangszustand # ∈ B-A Leerzeichen E⊆Z endliche Menge von Endzuständen t Zustandsübergangsfunktion Z x B → P(Z x B x (L, R, N)) L=Bewegung nach links, R=Bewegung nach rechts, N=keine Bewegung N1N2 ...Nn → Nn+1 Nn+2 ... Nn+m • normale Grammatik jede Regel hat eine der Formen Reduktionsregel: N→ε Terminierungsregel: N → T Expansionsregel: N → NN Doppelsubstitution: NN → NN 46 45 Turingmaschinen Turingmaschinen • Befindet sich M im Zustand z und ist unter dem Kopf der Buchstabe a, dann geht M im nächsten Schritt in einen Zustand z' über, schreibt anstelle von a einen Buchstaben b auf das Band und führt dann eine Bewegung x ∈ (L, R, N) aus, formal t(z,a) ist ein Element der Menge (z',b,x) • Spezialfälle • Konfiguration der Turingmaschine ist k ∈ B*x Z x B* k=b1zb2 b1 schon besuchter Teil des Bandes z aktueller Zustand b2 Rest des Bandes, Kopf steht auf erstem Zeichen von b2 • Anfangskonfiguration z0x: auf dem Band steht die Eingabe x ∈ A und die Turingmaschine ist im Zustand z0 • später: Konfiguration a1...amzb1...bn Übergang ohne Bewegung des Kopfes: t(z,b1)= (z',c,N), neue Konfiguration a1...amz'cb2...bn Übergang mit Bewegung nach rechts: t(z,b1)= (z',c,R), neue Konfiguration a1...amcz'b2...bn n=1 und Übergang mit Bewegung nach rechts: t(z,b1)= (z',c,R), neue Konfiguration a1...amcz'# m=0 und Übergang mit Bewegung nach links: t(z,b1)=(z',c,L), neue Konfiguration z'# cb2 ...bn • Beispiel: Turingmaschine, die Eingabe x∈{0,1} als binäre Zahl interpretiert und eine 1 dazu addiert. M=({z0, z1, z2, z3}, {0,1}, {0, 1, #}, t, z 0, #, {z 3}) t(z0, 0) = (z0, 0, R) t(z0, 1) = (z0, 1, R) t(z0, #) = (z 1, #, L) t(z1, 0) = (z2, 1, L) t(z1, 1) = (z1, 0, L) t(z1, #) = (z 3, 1, N) t(z2, 0) = (z2, 0, L) t(z2, 1) = (z2, 1, L) t(z2, #) = (z 3, #, R) startet M mit 101 auf dem Band, dann hält sie mit 110 auf dem Band und dem Kopf auf dem ersten Zeichen z0101 ⇒ z1001 ⇒ 10 z01 ⇒ 101z0# ⇒ 10z11# ⇒ 1z100# ⇒ z2110# ⇒ z2#110# ⇒ #z 3110# Übergang mit Bewegung nach links: t(z,b1)=(z',c,L), neue Konfiguration a1...am-1 z'amcb2 ...bn 47 48 Turingmaschinen Linear beschränkte Turingmaschinen • Anwendung der Zustandsübergangsfunktion t bewirkt einen Übergang von Konfiguration k zu Konfiguration k', ausgedrückt als Relation k ⇒ k'. Sei ⇒* die reflexive und transitive Hülle von ⇒. • Linear beschränkte Turingmaschinen verlassen nie den Teil des Bandes, auf dem die Eingabe steht. • Turingmaschine M akzeptiert Sprache L(M) = {x ∈ A*|z0x ⇒*b1zb2 für b1,b2∈B und z ∈E} • Eine nichtdeterministische Turingmaschine heisst linear beschränkt, wenn für alle a1...an-1an∈A *, die rechts durch ein Kontrollzeichen c begrenzt sind und alle Konfigurationen b1zb2 mit z0a1...an-1anc ⇒*b1zb2 gilt |b1b2|=n. • Linear beschränkte Turingmaschine M akzeptiert Sprache • Die durch nichtdeterministische Turingmaschinen akzeptierten Sprachen sind genau die rekursiv aufzählbaren Sprachen (Typ 0). L(M) = {a1...an-1an∈A*|z0a1...an-1anc⇒*b1zb2 für b1,b2∈B und z ∈E} • Die durch linear beschränkte, nichtdeterministische Turingmaschinen akzeptierten Sprachen sind genau die kontextsensitiven Sprachen (Typ 1). 49 50 Typen von Programmiersprachen Elementare Funktionen • Berechenbarkeitstheorie: Formalisierung des intuitiven Berechenbarkeitsbegriffs • Nullfunktion • man kann vier Typen von Programmiersprachen zum Berechnen von Zahlenfunktionen unterscheiden: Programmiersprache LOOP: enthält als wesentliches Element Schleifen mit fester Durchlaufzahl Programmiersprache WHILE: enthält als wesentliches Element Schleifen mit bedingungsabhängiger Durchlaufzahl Programmiersprache GOTO: enthält als wesentliches Element bedingte Sprungbefehle Programmiersprache RECUR: enthält als wesentliches Element rekursive Funktionsdefinitionen • offensichtlich mächtig sind diese Sprachen Z: N 0 → N 0 mit ∀n∈N0 (Z(n) := 0) • Nachfolgerfunktion S: N 0 → N 0 mit ∀n∈N0 (S(n) := n'=n+1) • Projektionsfunktion ∀m,k∈N, k≤m (Pk : N0 → N0) m m mit ∀x1,...,xm∈N0 (Pk (x1,...,xm) := xk) m unterschiedlich • Mächtigkeit der Sprachen drückt sich durch die Funktionen aus, die man mit ihnen berechnen kann • Welche Funktionen sind das? 1 2 Primitiv rekursive Funktionen Primitiv rekursive Funktionen • primitiv rekursive Funktionen sind eine induktiv definierte n Teilmenge aller Funktionen N0 → N0 mit n∈N • Fall n=0: elementare Funktionen sind primitiv rekursiv Nullfunktion, Nachfolgerfunktion, Projektion • Beispiel g=0, h(x,y) =x m g: N0 → N0 n 2 r(0) = g r(y+1) = h(y, r(y)) Komposition sind für m, n∈N die Funktionen fi: N0 → N0 g∈N 0 eine Konstante, h: N 0 → N 0 primitiv rekursiv, dann ist r: N0 → N0 primitiv rekursiv i=1, ..., m r(0) = g = 0 r(y+1) = h(y, r(y)) = y d.h. r(y) = y-1 (Vorgängerfunktion für y>0) primitiv rekursiv, dann ist auch die Funktion m r: N0 → N0 r(x1,..., xn) := g(f1(x1,..., xn), ...., fm(x1,..., xn)) • folgende weitere Funktionen sind primitiv rekursiv Addition Subtraktion Multiplikation Exponentialfunktion Signumfunktion Fakultät primitiv rekursiv primitive Rekursion sind für n∈N0 die Funktionen n g: N0 → N0 n+2 h: N0 → N0 primitiv rekursiv, dann ist auch die Funktion n+1 r: N0 → N0 • Funktionen sind genau dann primitiv rekursiv, wenn sie durch ein LOOP Programm berechnet werden können r(x1,..., xn, 0) := g(x1,..., xn) r(x1,..., xn, y+1) := h(x1,..., xn, y, r(x1,..., xn, y)) • Sind alle Funktionen primitiv rekursiv? primitiv rekursiv 3 4 Ackermann Funktion Partiell rekursive Funktionen • Ackermann Funktion A: N0 → N0 • partiell rekursive Funktionen sind eine induktiv n definierte Teilmenge aller partiellen Funktionen N 0 → N 0 mit n∈N 2 A(0, 0) = 1 A(0, 1) = 2 A(0, y+2) = y+4 elementare Funktionen sind partiell rekursiv Nullfunktion, Nachfolgerfunktion, Projektion A(x+1, 0) = A(x, 1) A(x+1, y+1) = A(x, A(x+1, y)) • verschiedene Autoren definieren leicht abweichende Versionen der Ackermann Funktion • Ackermann Funktion ist – anders als die primitiv rekursiven Funktionen – rein rekursiv definiert • Ackermann Funktion ist nicht primitiv rekursiv, sondern gehört in die Klasse der partiell rekursiven Funktionen Komposition Komposition partiell rekursiver Funktionen ist partiell rekursiv primitive Rekursion primitive Rekursion partiell rekursiver Funktionen liefert wieder partiell rekursive Funktionen Minimierung ist für n∈N die Funktion f: N 0 dann auch die Funktion n+1 → N 0 partiell rekursiv, µ(f) : N0 → N0 n Dabei gilt: [µ(f)](x1,..., xn) = x wobei x die kleinste Lösung von f(x1,..., xn, x) = 0 ist; sonst ist [µ(f)](x1,..., xn) undefiniert 5 6 Church These Programmiersprachen • Funktionen sind genau dann partiell rekursiv, wenn sie durch ein WHILE oder durch ein GOTO oder durch ein RECUR Programm berechnet werden können. • WHILE, GOTO und RECUR Programmiersprachen sind gleich mächtig • in keiner Programmiersprache kann man mehr Funktionen berechnen als die partiell rekursiven • These von Church Eine Funktion kann genau dann "nach vorgegebenen Regeln" berechnet werden, wenn sie partiell rekursiv ist, d.h. es gibt keine weiteren berechenbaren Funktionen. These von Church verbindet den intuitiven Begriff der Berechenbarkeit mit einer formalen Definition. • Grundlage für strukturierte Programmierung Substituierung von (bedingten) Sprüngen durch strukturierte Konstrukte für Sequenz, Iteration und Selektion • Grundlage für die Substituierung von Rekursion durch Iteration Speicherplatz wird eingespart: Rekursion braucht für jeden Schritt zusätzlichen Speicherplatz, während Iteration Speicherplatz wieder verwenden kann • neben der Mächtigkeit gibt es aber noch weitere Kriterien für die Wahl einer Programmiersprache, z.B. Ausdrucksfähigkeit: wie direkt kann man die Konzepte des Anwendungsbereiches in Konstrukten der Programmiersprache ausdrücken, wie lesbar ist das Programm? Strukturierungsmöglichkeiten, Wiederverwendung effiziente Implementierung 7 8 Turingmaschinen Berechenbarkeit und formale Sprachen • Beispiel zeigte, dass Turingmaschinen zur Berechnung verwendet werden können • Theorie der Berechenbarkeit kann von natürlichen Zahlen auf formale Sprachen ausgedehnt werden • partielle Funktion f: (A ) → (A ) heisst Turingberechenbar, wenn es eine Turingmaschine mit dem Eingabealphabet A ∪ {%,#} gibt, die mit dem Bandinhalt w1% w2% ...%wn startet, genau dann hält, wenn (w1, w2, ..., wn) im Definitionsbereich von f liegt und den Bandinhalt u1%u2%...%um schreibt. • Gödelisierung: Wörter einer formalen Sprache werden als natürliche Zahlen kodiert A endliches Alphabet Gödelisierung über A ist eine linkseindeutige * (injektive) Turing-berechenbare Funktion G: A → N0 * n * m • Standard-Gödelisierung: A endliches Alphabet Es gilt dann f(w1,w2, ...,wn) = (u1,u2,...,um) • Funktionen sind genau dann Turing-berechenbar, wenn sie partiell rekursiv sind α: A → {1, 2, ... , #A} eine linkseindeutige Funktion pn sei die n-te Primzahl (p1 = 2, p2=3, p3=5, ...) Gödelisierung : A → N0 mit * G(ε) :=0 G(a1a2..ak) := p1α(a1)p2α(a2)... pkα(ak) 5 14 4 Beispiel: G(ende) = 2 * 3 * 5 * 7 9 5 10 Halteproblem Halteproblem • Programme können in eine unendliche Schleife oder in eine unendliche Rekursion geraten • P ist die Menge aller W HILE Programme und G: P → N 0 eine bijektive Gödelisierung, d.h. • Wie kann man überhaupt feststellen, ob ein Programm terminiert? zu jedem Programm p ∈ P gibt es genau eine natürliche Zahl G(p) ∈ N0 • Testen: man prüft für bestimmte Eingabewerte, ob das Programm nach endlicher Zeit terminiert Resultat ja: OK Resultat nein: keine Aussage möglich • Frage: gibt es einen Algorithmus, der für ein gegebenes Programm und gegebene Eingabewerte nach endlicher Zeit feststellt, ob das Programm terminiert oder nicht? • Antwort: nein, es gibt keinen solchen Algorithmus: das Halteproblem ist nicht entscheidbar, aber semientscheidbar • Testen ist – zusätzlich zu seiner Bedeutung bei der Validierung von Programmen gegenüber den Anforderungen – das mächtigste Verfahren, um die Terminierung eines Programms festzustellen jede natürliche Zahl n kann als das WHILE Programm -1 G (n) ∈ P interpretiert werden • Gegeben ein WHILE Programm p ∈ P und eine natürliche Zahl x. Terminiert p für x? • Angenommen, es gibt ein WHILE Programm T, das diese Frage für beliebige WHILE Programme p und Engabewerte x entscheidet. • T bekommt 2 Eingabewerte: x1=G(p) und x2=x • T terminiert mit x0=1, wenn p für x terminiert • T terminiert mit x0=0, wenn p für x nicht terminiert • T' ist das Programm x2 := x1; T; WHILE x0 ≠ 0 DO x0 := x0 OD • wir starten T' mit der Eingabe G(T') • T' terminiert für diese Eingabe genau dann, wenn T terminiert, d.h. wenn T für x1= G(T') und x2= G(T') mit x0=1 terminiert • aber genau für diesen Fall terminiert T' nicht • Widerspruch ⇒ Programm T kann nicht existieren 1 Äquivalenzproblem & Korrektheitsproblem • Äquivalenz: zwei Programme heissen äquivalent, wenn sie für dieselben Eingaben terminieren und dabei die gleichen Ausgaben erzeugen • Äquivalenzproblem ist nicht entscheidbar • Korrektheit: ein Programm berechnet eine gegebene Funktion • Korrektheitsproblem ist nicht entscheidbar 3 2