Grundlagen der Informatik 1b – Mathematisch-Logische Grundlagen/Diskrete Strukturen, WS03/04 Prof. Dr. Wolfram Conen [email protected] Raum: P -1.08 Version 1.0α, 22. Januar 2005∗ ∗ Sollten Sie Fehler bemerken, dann senden Sie mir bitte eine Email – vielen Dank vorab! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen „Meine Gedankenwelt, d.h. die Gesamtheit S aller Dinge, welche Gegenstand meines Denkens sein können, ist unendlich“ (Richard Dedekind in Was sind und was sollen die Zahlen?, 1888, Vieweg) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 2 Inhalte • Mengen und das Unendliche • Logik: Die Wissenschaft vom Schließen • Graphen und das Geheimnis des kürzestens Wegs: von Problemen, Schwierigkeiten und Näherungslösungen c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 3 Ziele aus der Modulbeschreibung . . . • Erkennen der grundlegenden Bedeutung von mathematischen/theoretischen Instrumenten für das Finden und die Analyse von Problemlösungen. • Beherrschen der grundlegenden Begrifflichkeiten, der wichtigsten Resultate und der wesentlichen Beweisverfahren. • Überblicksartige Kenntnisse der grundlegenden theoretischen Resultate und Methoden, die wichtigen Einfluss auf weitere Felder der Informatik haben (z.B. auf Algorithmik, Sprachen, künstliche Intelligenz). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 4 Literatur... Kaufen Sie erstmal nichts! Aber schauen können Sie in • Deiser: Einführung in die Mengenlehre, Springer 2002 (es gibt mittlerweile eine Neuauflage) • Schöning: Logik für Informatiker, 5.Aufl., Spektrum, 2000 • Gritzmann, Brandenberg: Das Geheimnis des kürzesten Weges, Springer, 2. Aufl., 2003 Für den Blick über den Tellerrand dieser Vorlesung: • Schöning: Ideen der Informatik, Oldenbourg, 2002 (auch als Quelle für den Logikteil) • Steger bzw. Schickinger, Steger: Diskrete Strukturen, Band 1 und 2, Springer, 2001 c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 5 Formalia Vorlesung: Mo. 13:45 – 14:30 Uhr, M0.01 und Mi., 9:50 – 11:25 Uhr, M0.01 Übungen: 6 Gruppen, Beginn am 25.Oktober, Termine: 8:50-9:35 10:40-11:25 11:30-12:15 14:35-15:20 15:25-16:10 Montag AI, P2.02 (A1) Mittwoch MI, P-1.21 (M1) Freitag AI/MI, P2.02 (AM1) AI, P0.13 (A3) AI, P-1.21 (A2/Alt) MI, P-1.21 (M2) ACHTUNG: Die Abgabe der Übungsblätter ist für alle Erstsemester Pflicht. Wenn Sie ein Übungablatt nicht bis zum Abgabetermin fertig bekommen, dann können Sie die Lösung nachreichen (max. für 2 Übungsblätter) oder ganz auf die Abgabe verzichten (ebenfalls für maximal 2 Übungsblätter). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 6 Unterlagen... Für Skriptversionen, Übungsblätter, aktuelle Nachrichten usw. schauen Sie bitte unter http://www.informatik.fh-gelsenkirchen.de/conen c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 7 Mengen und das Unendliche Was ist Mengenlehre? „Die Mengenlehre ist die Untersuchung von Ordnung und Größe in der Mathematik.“ (Oliver Deiser in Einführung in die Mengenlehre, 2002, Springer) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 8 Mengen und das Unendliche Fragen zur Mengenlehre • • • • Was ist eine Menge, was ist ein Element? Wie definiert man Mengen? Wie mißt man die Größe einer Menge? Wie vergleicht man Mengen? Was kann man mit der Mengenlehre tun? c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 9 Mengen und das Unendliche Historischer Überblick Die Mengenlehre wurde im letzten Viertel des 19. Jahrhunderts von G EORG C AN TOR entwickelt - zunächst galt das (nicht unproblematische) „naive Kompressionsprinzip“: „Zu jeder Eigenschaft existiert die Menge aller Objekte, auf die diese Eigenschaft zutrifft“ E RNESTO Z ERMELO und andere (u.a. auch J OHN VON N EUMANN !) haben die Mengenlehre axiomatisch präzisiert und formalisiert. Die axiomatische Mengenlehre kann alle Objekte der Mathematik zur Verfügung stellen, z.B. Zahlen aller Art, Funktionen, geometrische Gebilde etc. - d.h. es existieren auf dem Mengenbegriff basierende Definitionen dieser Begriffe, die alle erwünschten und in der Mathematik benötigten Eigenschaften der Objekte bereitstellt. Die Mengenlehre eignet sich damit als Grundlagendisziplin für die Mathematik selbst (und auch die Informatik)! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 10 Mengen und das Unendliche Bedeutung der Mengenlehre Deiser schreibt: „Heute ist die Mengenlehre nicht nur Rahmen für die Mathematik, sondern selbst eine schillernde mathematische Theorie. Sie fasziniert ... durch die stille Schönheit ihrer ersten Konzepte und durch deren erstaunliche und anscheinend noch bei weitem nicht ausgelotete Reichweite und Tragfähigkeit.“ c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 11 Mengen und das Unendliche Menge und Element Im weiteren schreiben wir für „a ist Element von X “ a ∈ X . C ANTOR 1895 im Original: „Unter einer Menge verstehen wir jede Zusammenfassung M von bestimmten wohlunterschiedenen Objekten m unserer Anschauung oder unseres Denkens (welche die Elemente von M genannt werden) zu einem Ganzen.“ „Zwei Mengen sind genau dann gleich, wenn sie dieselben Elemente haben“ (Extensionalitätsprinzip) Den Begriff Menge hat übrigens B ERNARD B OLZANO eingeführt. Neben Menge wurden auch Mannigfaltigkeit, Gesamtheit, Inbegriff, Varietät, und Klasse verwendet (die Liste ist sicher nicht komplett). Heute gilt Menge als ein nicht weiter definierter Grundbegriff - irgendwo muss man anfangen! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 12 Mengen und das Unendliche Mengen sind Ideen . . . Nochmals C ANTOR: „Unter einer ... Menge verstehe ich nämlich allgemein jedes Viele, welches sich als Eines denken läßt, d.h. jeden Inbegriff bestimmter Elemente, welcher durch ein Gesetz zu einem Ganzen verbunden werden kann, und ich glaube hiermit etwas zu definieren, was verwandt ist dem Platonischen ... iδα.“ Mengen existieren als Ideen unabhängig von uns! (Und dies gilt allgemein für die Objekte der Mathematik) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 13 Mengen und das Unendliche Zahlen Wir setzen: • • • • N = „die Menge der natürlichen Zahlen“ Z = „die Menge der ganzen Zahlen“ Q = „die Menge der rationalen Zahlen“ R = „die Menge der reellen Zahlen“ c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 14 Mengen und das Unendliche Natürliche und ganze Zahlen • Die natürlichen Zahlen enthalten die 0 als Element. • Natürliche Zahlen schreiben wir in Dezimalschreibweise: 0,1,2,3,. . . ,10,11,. . . . • Eine ganze Zahl schreiben wir in der Form +n oder −n, wobei n eine natürliche Zahl ist. Also +0,-0,+1,-1,+2,-2 . . . . Es gilt +0 = −0. • Jede nichtleere Menge von natürlichen Zahlen hat ein kleinstes Element. Ist A eine nichtleere Menge von natürlichen Zahlen, so sei min(A) = „das (eindeutig bestimmte) kleinste Element von A (Minimum von A)“ Beispiel: min({7, 9, 15, 4, 6}) = 4. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 15 Mengen und das Unendliche Rationale Zahlen Schreibweisen: • Bruch: +n/m bzw. −n/m, mit n, m ∈ N, m 6= 0 • Endlicher Dezimalbruch: ±n, a1 . . . ak • Periodisch endender, unendlicher Dezimalbruch: ±n, b1 . . . bma1 . . . ak a1 . . . ak . . . (wobei n, m, k ∈ N und 0 ≤ ai, bj < 10 für alle 1 ≤ i ≤ k bzw. 1 ≤ j ≤ m gilt.) Beispiele: −17/8 = −2, 125, 1/7 = 0, 142857142857142857 . . . , 1/700 = 0, 00142857142857142857 . . . , 1/3 = 0, 333 . . . c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 16 Mengen und das Unendliche Reelle Zahlen • Dezimalbruch: ±n, a1a2a3 . . . , n ∈ N, 0 ≤ ai < 10 für alle i ≥ 1. • Sei x eine reelle Zahl. Ist eine Dezimaldarstellung von x in der Form ±n, a1 . . . ak 000 . . . , so sagen wir, dass diese Dezimaldarstellung von x trivial endet. • Jede reelle, von 0 verschiedene Zahl x hat eine eindeutige nicht trivial endende Dezimaldarstellung! Es gilt beispielsweise: 1,000 1,1245000. . . -1,01000 = = = 0,999. . . 1,1244999. . . -1,009999. . . Diese nicht-triviale Dezimaldarstellung nennen wir die kanonische (unendliche) Dezimaldarstellung von x. Beachte: 0,000. . . ist die kanonische, unendliche Dezimaldarstellung der 0. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 17 Mengen und das Unendliche Mathematische Objekte Wir setzten im Weiteren N, Q, Z, R, die üblichen Rechenoperationen und die natürlichen Ordnungsbeziehungen < und ≤ als gegeben voraus. Die mathematischen Grundobjekte (Urelemente) sind die natürlichen, ganzen, rationalen und reellen Zahlen. Jede Menge ist ein mathematisches Objekt. Beachten Sie: Ist b eine Menge und a ∈ b, so ist a ein Grundobjekt oder eine Menge. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 18 Mengen und das Unendliche Einige Konvention • Wir identifizieren n ∈ N mit +n ∈ Z • +n bzw. −n ∈ Z mit +n/1 bzw. −n/1 ∈ Q • ±n, a1 . . . ak ∈ Q mit ±n, a1 . . . ak 000 · · · ∈ R, d.h., jede natürliche Zahl ist eine ganze Zahl, jede ganze Zahl eine rationale Zahl und jede rationale Zahl eine reelle Zahl. • Der Betrag |x| einer reellen Zahl x ist definiert durch ( |x| = x, falls x ≥ 0, −x, sonst. Später führen wir die Mächtigkeit einer Menge M ein, diese wird mit |M | bezeichnet, der Bezug wird Verwechselungen verhindern. • Sind x1, . . . , xn reelle Zahlen, so bezeichnet min(x1, . . . , xn) die Kleinste und max(x1, . . . , xn) die Größte der Zahlen x1, . . . , xn. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 19 Mengen und das Unendliche Einfache Mengenbildungen • a ∈ b: „a ist Element von b“, „a Element b“, „a in b“ • a∈ 6 b (oder auch non(a ∈ b)): „a ist nicht Element von b“ Definition 1. [Direkte Angabe der Elemente, Einermengen, Paarmengen] Seien n ∈ N, n ≥ 1 und a1, . . . , an Objekte. Wir setzen: {a1, . . . , an} = „die Menge, die genau a1, . . . , an als Elemente enthält“. Speziell heißen für Objekte a, b die Menge {a} die Einermenge von a und {a, b} die (ungeordnete) Paarmenge von a, b. Es gilt also für alle x x ∈ {a1, . . . , an} gdw. x = ai für ein i ∈ N mit 1 ≤ i ≤ n. Hier steht gdw. für genau dann, wenn bzw. dann und nur dann, wenn. Beachte: Für die Bildung von Paarmengen ist a 6= b nicht vorausgesetzt! Nach dem Extensionalitätsprinzip gilt: {a} = {a, a} = {a, a, . . . , a} c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 20 Mengen und das Unendliche {a, b} = {b, a} {a, b} = {a} gdw. a = b Definition 2. [Leere Menge] Wir setzen: ∅ = „die Menge, die keine Elemente enthält“. ∅ heißt die leere Menge oder die Nullmenge. Sie wird auch mit {} bezeichnet. Merke: Die leere Menge kann Element einer anderen Menge sein! M = {∅} = {{}} hat ein Element (die leere Menge). M = {∅, {∅}} hat zwei (verschiedene!) Elemente. Jetzt können wir Mengen durch Aufzählung definieren (in dem wir ihre Extension, also ihre Elemente, angeben). „Einfacher“ ist es häufig, Mengen über eine Eigenschaft, die ihren Elementen gemeinsam ist, zu definieren. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 21 Mengen und das Unendliche Mengenbildung über Eigenschaften Definition 3. Sei E(x) eine Eigenschaft. Wir setzen: {x|E(x)} = „die Menge aller Objekte x, auf die E(x) zutrifft“. Wir sagen auch: {x|E(x)} ist die „Menge aller x mit E(x)“. Es gilt z.B. z ∈ {x|E(x)} gdw. E(z) (die Eigenschaft also für z gilt). Eine genaue Definition von Eigenschaften ist hier (noch) nicht nötig. Intuitiv ist eine Eigenschaft E eine mathematische Aussage über mathematische Objekte. Es gilt für jedes Objekt z und jede Eigenschaft E entweder E(z) oder non(E(z)) (d.h., z hat die Eigenschaft E oder es hat die Eigenschaft E nicht). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 22 Mengen und das Unendliche Auswahl von Elementen Man bezieht sich häufig auf eine bereits definierte Menge und wählt Elemente daraus aus, z.B. U = {x ∈ N|x ist ungerade} (alle ungeraden natürlichen Zahlen). Definition 4. [Aussonderung] Sei M eine Menge und E(x) eine Eigenschaft. Wir setzen: {x ∈ M |E(x)} = {x|x ∈ M und E(x)} Definition 5. [Parameter einer Eigenschaft] Sei E eine Eigenschaft. Die Parameter von E sind die in E vorkommenden mathematischen Objekte. In M = {x|x < 11 und x ∈ N} sind 11 und N die Parameter (und x eine Variable). Jede „aufgezählte“ Menge der Form {a1, . . . , an} können wir auch über eine Eigenschaft definieren („intensional“): {a1, . . . , an} = {x|x = a1 oder . . . oder x = an} (hier sind a1, . . . , an dann die Parameter). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 23 Mengen und das Unendliche Das naive Komprehensionsprinzip (Komprehension: lat. Zusammenfassung) Naives Komprehensionsprinzip für Eigenschaften: Ist E eine Eigenschaft über mathematische Objekte, so existiert die Menge {x|E(x)} aller Objekte x, für die E(x) erfüllt ist. Dieses Prinzip führt zu Problemen! Warum? Erinnern Sie sich an den ersten Übungszettel! Wir kommen darauf zurück. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 24 Mengen und das Unendliche Teilmengen Definition 6. [Teilmenge und Obermenge] Seien a und b Mengen. 1. a ist Teilmenge von b, in Zeichen a ⊆ b, falls für alle x ∈ a gilt x ∈ b. 2. a ist echte Teilmenge von b, in Zeichen a ⊂ b, falls a ⊆ b und a 6= b. 3. Ist a ⊆ b, so heißt b Obermenge von a, in Zeichen b ⊇ a. 4. Ist a ⊂ b, so heißt b echte Obermenge von a, in Zeichen b ⊃ a. Wenn Sie nach einer Definition für = suchen, dann erinnern Sie sich an das Extensionalitätsprinzip: zwei Mengen sind genau dann gleich, wenn Sie die gleichen Elemente haben, mit anderen Worten: Seien a und b Mengen. Dann schreiben wir a = b, falls für alle x ∈ a gilt x ∈ b und für alle x ∈ b gilt x ∈ a, oder, kürzer: Definition 7. [Gleichheitskriterium] Für alle Mengen a, b gilt: a = b gdw. a ⊆ b und b ⊆ a. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 25 Mengen und das Unendliche Beachten sie: Die leere Menge ist Teilmenge jeder Menge (mit folgender Begründung: es ist für eine Menge M zu überprüfen, ob jedes x ∈ ∅ auch in M ist. Es gibt aber gar keine x in ∅, also ist jedes x ∈ ∅ in M ! q.e.d) Die Teilmengen-„Relation“ ⊆ ist transitiv: seien Mengen a, b, c mit a ⊆ b und b ⊆ c, dann gilt auch a ⊆ c! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 26 Mengen und das Unendliche Einfache Operationen mit Mengen (1) Definition 8. [Vereinigung; Schnitt; Subtraktion; Disjunktheit] Seien a, b Mengen. Die Vereinigung a ∪ b (sprich: a vereinigt b), der Schnitt a ∩ b (a geschnitten b) und die Subtraktion a − b (oft auch: a\b, sprich a minus b bzw. a ohne b) sind definiert durch: a ∪ b = {x|x ∈ a oder x ∈ b} a ∩ b = {x|x ∈ a und x ∈ b} a − b = {x|x ∈ a und x 6∈ b} = {x ∈ a|x 6∈ b} a und b heißen disjunkt, falls a ∩ b = ∅ (d.h., ihre Schnittmenge ist leer). Assoziativgesetze für Vereinigung und Durchschnitt: Seien a, b, c Mengen. Dann gilt: (i) (a ∪ b) ∪ c = a ∪ (b ∪ c) (ii) (a ∩ b) ∩ c = a ∩ (b ∩ c) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 27 Mengen und das Unendliche Einfache Operationen mit Mengen (2) Definition 9. [Relative Komplemente] Seien a, b Mengen und a ⊆ b. Dann heißt b − a das relative Komplement von a in b. Ist b fixiert, so nennen wir b − a kurz das Komplement von a, und setzen ac = b − a. Satz 10. [Eigenschaften der relativen Komplemente] Sei d eine Menge. Weiter seien a, b ⊆ d. Dann gilt für die relativen Komplemente in d: (i) a ∪ ac = d (ii) a ∩ ac = ∅ (iii) (a ∩ b)c = ac ∪ bc (iv) (a ∪ b)c = ac ∩ bc. Die beiden letzen Aussagen werden auch als de Morgansche Regeln bezeichnet. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 28 Mengen und das Unendliche Beweise der letzten Aussagen Zu (iii): Wir zeigen zunächst (a ∩ b)c ⊆ ac ∪ bc: Sei x ∈ (a ∩ b)c, so gilt (1) x ∈ d und (2) x 6∈ a oder x 6∈ b.1 Für x 6∈ a ist wg. 1. x ∈ d − a = ac. Für x 6∈ b ist wg. 1. x ∈ d − b = bc. Also gilt immer: x ∈ ac oder x ∈ bc, also x ∈ ac ∪ bc. Nun zu (a ∩ b)c ⊇ ac ∪ bc: Sei x ∈ ac ∪ bc, dann gilt: x ∈ d − a oder x ∈ d − b. Im ersten Fall ist x ∈ d − (a ∩ b) wg. d − a ⊆ d − (a ∩ b). Im zweiten Fall ist x ∈ d − (a ∩ b) wg. d − b ⊆ d − (a ∩ b). Also gilt in beiden Fällen: x ∈ d − (a ∩ b) = (a ∩ b)c. Aus dem Gleichheitskriterium folgt die behauptete Aussage (a ∩ b)c = ac ∪ bc. (iv) läßt sich analog zeigen. 1 Warum? x ist im Komplement von (a ∩ b), d.h. x ∈ (d − (a ∩ b)), also gilt x ∈ d und x 6∈ a ∩ b. Das Zweite ist gleichbedeutend (äquivalent) mit x 6∈ a oder x 6∈ b. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 29 Mengen und das Unendliche Weitere einfache Eigenschaften Distributivgesetz: Für alle Mengen a, b, c gilt: (i) (a ∪ b) ∩ c = (a ∩ c) ∪ (b ∩ c) (ii) (a ∩ b) ∪ c = (a ∪ c) ∩ (b ∪ c) Beweis in den Übungen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 30 Mengen und das Unendliche Mengensysteme Definition 11. [Mengensysteme] Ein Mengensystem M ist eine Menge, deren Elemente alle Mengen sind, d.h. M enthält keine Grundobjekte als Elemente. Sei nun M ein Mengensystem.TDann setzen wir: Durchschnitt von M : S M = {x| Für alle a ∈ M ist x ∈ a} Vereinigung von M : M = {x| es existiert ein a ∈ M mit x ∈ a} S T Erläuterung: Streng nach Definition (so sagt Deiser) gilt: ∅ = ∅ und ∅ = {x| ist T ein Objekt }. Deiser erklärt: Sei x beliebig. Wir zeigen x ∈ ∅. Hierzu ist zu zeigen: Für alle a ∈ ∅ gilt x ∈ a. Es gibt aber gar keine a ∈ ∅, also ist die Aussage sicher richtig. So ganz streng nach der Definition ist das Zweite aber im Grunde nur unter Berücksichtigung einer Setzung, die auf einer Konvention in der (mathematischen) Logik beruht, zu der wir später noch kommen werden: eine Eigenschaft ist für alle x ∈ M genau dann erfüllt, wenn es kein x ∈ M gibt, für dass sie nicht erfüllt ist – und dies ist insbesondere immer dann erfüllt, wenn es gar kein x in M gibt – das letztere ist die Konvention, deren Sinn man philosophisch hinterfragen könnte. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 31 Mengen und das Unendliche Potenzmenge Definition 12. [Potenzmenge] Sei M eine Menge. Dann ist die Potenzmenge von M , in Zeichen P(M ), die Menge aller Teilmengen von M : P(M ) = {a|a ⊆ M } • Für alle Mengen M gilt: ∅ ∈ P(M ), M ∈ P(M ). • Weiter gilt für alle Mengen a: mit a ∈ P(M ) folgt M − a ∈ P(M ). Beispiel: M = {1, 2, 3} P(M ) = { ∅, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3} } c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 32 Mengen und das Unendliche Grundlegende Fragen (A) Was ist eigentlich ein mathematisches Objekt? – Alle mathematischen Objekte (Zahlen, Funktionen, usw.) können als Mengen interpretiert werden. (B) Welche mathematischen Objekte (=Mengen) existieren? – Axiome bestimmen grundlegende Mengen. Axiome und darin verwendete Eigenschaften von Mengen/Objekten werden als logische Formeln formuliert. Mit ihrer Hilfe kann man die Existenz von Mengen folgern und Zusammenhänge zwischen Mengen beweisen. Beispiel Potenzmengenaxiom: Zu jeder Menge M existiert die Potenzmenge von M , d.h.: Für alle M gibt es ein P mit der Eigenschaft: Für alle x gilt x ∈ P gdw. x ⊆ M. Als logische Formel: ∀M ∃P ∀x(x ∈ P ↔ ∀y(y ∈ x → y ∈ M )), zu lesen als: Für alle M existiert ein P , so dass für alle x gilt: x ist in P genau dann, wenn für alle y gilt: aus y in x folgt y in M . c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 33 Mengen und das Unendliche Mit der Abkürzung a ⊆ b für ∀c(c ∈ a → c ∈ b): ∀M ∃P ∀x(x ∈ P ↔ x ⊆ M ) Verwendete Symbole: ∀ entspricht „für alle“ ∃ entspricht „es existiert ein“ (mindestens eins, nicht genau eins!) → entspricht „(es) folgt“ (bzw. „aus . . . folgt . . . “) ↔ entspricht „gdw.“ (C) Was genau ist ein mathematischer Beweis einer Aussage? – Eine schrittweise Umformung von Formeln mit Hilfe eines Kalküls, der Regeln angibt, wie bestimmte Zeichenketten in andere verwandelt werden dürfen. Mit den Axiomen und einem präzisen Beweisbegriff kann man metamathematische Fragen stellen, z.B. Was ist beweisbar?. Wesentlich sind folgende Fragen: (L1) Ist das Axiomensystem widerspruchsfrei? (Zu bejahen, wenn die Aussagen 0 = 1 oder ∃x x 6= x sich formal nicht aus den Axiomen ableiten lassen) (L2) Ist das Axiomensystem vollständig? (Zu bejahen, wenn für jede Aussage φ ein Beweis von φ oder ein Beweis der Negation von φ, in Zeichen ¬φ, existiert – jede Aussage läßt sich also entweder beweisen oder widerlegen) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 34 Mengen und das Unendliche Glauben Sie, dass sich ein solches Axiomensystem für die Mengenlehre (und, darauf aufbauend, für die anderen Zweige der Mathematik) finden läßt? K URT G ÖDEL beantwortete in den 30er Jahren des 20. Jahrhunderts die Fragen wie folgt (aufbauend auf F REGE , H ILBERT, RUSSELL): (zu L1): Wir können es nicht sicher wissen: die Widerspruchsfreiheit der axiomatischen Mengenlehre ist unbeweisbar! (zu L2): Nein! Ist das zugrunde gelegte Axiomensystem der Mengenlehre widerspruchsfrei, so gibt es stets Aussagen, die weder beweisbar noch widerlegbar sind! (Ist es widerspruchsvoll, dann verliert die Frage ihren Sinn, denn dann ist jede Aussage beweisbar) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 35 Mengen und das Unendliche Abbildungen zwischen Mengen • Sehr nützlich ist der Begriff des geordneten Paares P von zwei Objekten a,b, in Zeichen: P = (a, b). Aber in der Mengenlehre gilt immer: {a, b} = {b, a} für zwei beliebige Objekte a,b. • Geordnete Paare müssen die folgende Eigenschaft erfüllen: (a, b) = (c, d) gdw. a = c und b = d. Definition 13. [Geordnetes Paar] 2 Seien a, b Objekte. Dann ist das geordnete Paar von a und b, in Zeichen (a, b), definiert durch: (a, b) = {{a}, {a, b}} 2 Andere Definitionen sind möglich, z.B. von Hausdorff die Obige ist von Kuratowski): (a, b) = {{a, 1}, {b, 2}}. Die ist aber nicht so schön, weil wir neue, von a und b unterscheidbare Objekte einführen müssen, und für ein Paar aus diesen Objekten 1 und 2 brauchen wir dann neue „Indikatorobjekte“ usw. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 36 Mengen und das Unendliche Kreuzprodukt Definition 14. [Kreuzprodukt oder kartesisches Produkt] Seien A, B Mengen. Dann ist das Kreuzprodukt von A, B , in Zeichen A × B (sprich: A kreuz B ), definiert durch: A × B = {(a, b)|a ∈ A, b ∈ B} = {x|x = (a, b) für ein a ∈ A und ein b ∈ B}. Beispiel: Für A = {1, 2} und B = {a, b, c} ist A × B = {(1, a), (1, b), (1, c), (2, a), (2, b), (2, c)}. Das Kreuzprodukt sammelt also alle Möglichkeiten ein, die Objekte der beiden beteiligten Mengen miteinander zu paaren. Man kann das Kreuzprodukt natürlich auch für 3 oder mehr Mengen definieren: Das n-fache kartesische Produkt über einer Menge A ist die Menge aller n-Tupel von Elementen aus A: An = A×· · ·×A = {(a1, . . . , an)|ai ∈ A, i = 1, . . . , n}. Es ist A1 = A. Analoges kann man mit n verschiedenen Mengen A1, . . . , An definieren, nur gibt es dann natürlich die abkürzende Schreibweise An nicht. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 37 Mengen und das Unendliche Relation Mit Hilfe der geordneten Paare können wir nun den Begriff der Relation definieren (wir kennen bereits die Beziehungen/Relationen =,⊆,∈ usw.): Eine Relation ist eine Menge von geordneten Paaren. D.h., jede Menge R von geordneten Paaren liefert eine Relation (genannt R). Zwei Objekte a, b stehen in der Relation R zueinander genau dann, wenn (a, b) ∈ R. Definition 15. [Relation] Eine Menge R heißt (zweistellige) Relation, falls jedes x ∈ R ein geordnetes Paar ist. Ist A eine Menge und gilt R ⊆ A × A, so heißt R Relation auf A. Sind a, b Objekte und gilt (a, b) ∈ R, so schreiben wir hierfür auch aRb (InfixNotation). Beispiel: Für A = {1, 2} und B = {a, b, c} (s. Kreuzproduktbeispiel) bestimmt jede Teilmenge von P(M ) eine Relation, z.B. R1 = {(1, a), (2, b)} oder auch R2 = {(1, a), (1, b), (2, b), (2, c)}. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 38 Mengen und das Unendliche Definitions- und Wertebereich Definition 16. [Definitionsbereich, Wertebereich] Sei R eine Relation. Wir setzen: dom(R) = {a| es existiert ein b mit (a, b) ∈ R} rng(R) = {b| es existiert ein a mit (a, b) ∈ R}. dom(R) heißt der Definitionsbereich von R (dom für engl. domain). rng(R) heißt der Wertebereich von R (rng für engl. range). Beispiel: Der Definitionsbereich dom(R1) von R1 aus dem letzten Beispiel ist {1, 2}, der Wertebereich rng(R1) ist {a, b}. • Die Ordnungsbeziehungen „kleiner“ und „kleinergleich“ auf den Zahlmengen N, Z, Q, R sind Relationen: <N= {(n, m) ∈ N × N|n ist kleiner als m} ≤Q= {(p, q) ∈ Q × Q | p ist kleiner als q oder p ist gleich q}. • Man kann nun z.B. ≤R als <R ∪{(x, x)|x ∈ R} definieren. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 39 Mengen und das Unendliche • Es gilt <N ⊆ <Z ⊆ <Q ⊆ <R (den Index lassen wir i.d.R. weg). • Zur Schreibweise: Normalerweise schreiben wir (a, b) ∈<N als a <N b, beide Schreibweisen sind austauschbar. Definition 17. [reflexiv, symmetrisch, transitiv] Sei R eine Relation auf einer Menge A. 1. R heißt reflexiv, falls für alle x ∈ A gilt xRx. 2. R heißt symmetrisch, falls für alle x, y ∈ A gilt: aus xRy folgt yRx. 3. R heißt transitiv, falls für alle x, y, z ∈ A gilt: aus xRy und yRz folgt xRz . Anmerkung: Diese Definition läßt sich auch auf Relationen zwischen zwei Mengen B, C anwenden, indem man B ∪ C = A setzt. Definition Umkehrrelation: Sei R eine Relation. Dann ist R−1 = {(b, a)|(a, b) ∈ R} die Umkehrrelation zu R. Anmerkungen: R−1 −1 = R, R ist die Umkehrrelation zu R−1. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 40 Mengen und das Unendliche Äquivalenzrelation Definition 18. [Äquivalenzrelation] Sei R eine Relation auf einer Menge A. R heißt Äquivalenzrelation auf A, falls R reflexiv, symmetrisch und transitiv ist. Für jedes x ∈ A ist dann die Äquivalenzklasse von x bzgl. der Äquivalenzrelation R, in Zeichen x/R (sprich: x modulo R), definiert durch x/R = {y ∈ A|xRy}. Weiter ist A/R (Sprich: A modulo R) definiert durch A/R = {x/R|x ∈ A}. x/R ist also die Menge aller Elemente aus A, die mit x in Relation R stehen. A/R ist die Menge all dieser Klassen. Beispiel: für ein festes m ∈ N, m ≥ 1, sei die Relation %m auf N definiert durch: %m = {(a, b) ∈ N × N| a und b haben den gleichen Rest bei Division durch m }. Dann ist %m eine Äquivalenzrelation auf N (prüfen sie: %m ist reflexiv, symmetrisch und transitiv). Für m = 3 gilt z.B. 2 %3 5 (denn beide lassen sich mit Rest 1 durch 3 teilen) und es gibt genau drei Äquivalenzklassen (welche? Natürlich die natürlichen Zahlen, die sich mit Rest 0, 1 oder 2 durch 3 teilen lassen) – übrigens bilden diese drei Klassen eine Zerlegung von N (vgl. die Aufgabe Zerlegungsbegriff). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 41 Mengen und das Unendliche Der Funktionsbegriff Intuition: eine Funktion kann man als eine „Vorschrift“ ansehen, die Objekten andere Objekte eindeutig zuordnet. Aber zunächst definieren wir den Begriff „extensional“: Definition 19. [Funktion] Sei f eine Menge von geordneten Paaren. f heißt Funktion, falls für alle a, b1, b2 gilt: aus (a, b1) ∈ f und (a, b2) ∈ f folgt b1 = b2. (Rechtseindeutigkeit) Funktionen sind rechtseindeutige Relationen! Wir schreiben auch f (a) = b für (a, b) ∈ f . Definition 20. [Bild unter einer Funktion] Ist f eine Funktion und f (a) = b, so heißt b das Bild von a unter f . Definition 21. [Funktion von A nach B ] Sei f eine Funktion und seien A, B Mengen. f heißt Funktion von A nach B , in Zeichen f : A → B , falls gilt: dom(f ) = A und rng(f ) ⊆ B . Die Menge B werden wir auch Zielbereich nennen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 42 Mengen und das Unendliche Beispiel: Bei f (n) = 0 für alle n ∈ N schreibt man z.B. f : N → N. Definition 22. [injektiv,surjektiv,bijektiv] Sei f eine Funktion. 1. f heißt injektiv, falls für alle a1, a2, b gilt: aus f (a1) = b und f (a2) = b folgt a1 = a2. (Linkseindeutigkeit: es werden nur verschiedene b „getroffen“!) 2. f heißt surjektiv nach B , falls gilt rng(f ) = B , d.h. für alle b ∈ B existiert ein a ∈ dom(f ) mit f (a) = b. (Alle b aus B werden getroffen!) 3. f heißt bijektiv von A nach B , falls gilt: f ist injektiv und surjektiv von A nach B . (Jedes b aus B wird genau einmal getroffen!) Beachten Sie: die Eigenschaft injektiv benötigt keinen Zielbereich, um gelten zu können (also können alle Funktionen nach Def. 19 diese Eigenschaft haben). Surjektivität und Bijektivität machen hingegen nur Sinn, wenn man sich für einen bestimmten Zielbereich interessiert (also können nur Funktionen, für die ein solcher Bezug nach Def. 21 angegeben wurde, auf Surjektivität und Bijektivität untersucht werden). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 43 Mengen und das Unendliche Einige einfache Folgerungen (s. auch Übung): 1. Ist f : A → B , so ist f : A → rng(f ) surjektiv. 2. Ist f : A → B injektiv, so ist f : A → rng(f ) bijektiv. 3. Ist f : A → B bijektiv, so existiert ein bijektives g : B → A. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 44 Mengen und das Unendliche Einfache Operationen auf Funktionen (I) Definition 23. [Einschränkung und Fortsetzung einer Funktion] Seien f : A → B und C ⊆ A. Dann setzen wir f |C = {(a, b) ∈ f |a ∈ C}. f |C heißt die Einschränkung von f auf C . Sind f, g Funktionen mit f ⊆ g , so heißt g eine Fortsetzung von f . Definition 24. [Umkehrfunktion] Sei f eine injektive Funktion. Dann ist die Umkehrfunktion von f , in Zeichen f −1, definiert durch f −1 = {(b, a)|(a, b) ∈ f }. −1 Es gilt: f −1 ist injektiv, dom(f −1) = rng(f ), rng(f −1) = dom(f ), f −1 = f. Beachten Sie: Injektivität und Umkehrbarkeit bauen auf dem allgemeinen Funktionsbegriff aus Def. 19 auf, sie benötigen also keinen Zielbereich, um zu „funktionieren“. Definition 25. [Verkettung/Verknüpfung von Funktion] Seien f : A → B und g : B → C . Dann ist die Verkettung g ◦ f der Funktionen f und g (sprich: g nach f), definiert durch: g ◦ f = {(a, c)|a ∈ A, (f (a), c) ∈ g}. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 45 Mengen und das Unendliche Einfache Operationen auf Funktionen (II) Definition 26. [Identität] Sei A eine Menge. Dann ist die Identität auf A, in Zeichen idA, definiert durch idA = {(a, a)|a ∈ A}. Es gilt idA : A → A. idA ist natürlich eine Bijektion von A nach A. Satz 27. [Verkettung zur Identität] (a) Die folgenden Aussagen sind äquivalent: (i) f : A → B ist injektiv (ii) Es existiert eine Funktion g : B → A mit g ◦ f = idA (b) Die folgenden Aussagen sind äquivalent: (i) f : A → B ist surjektiv (ii) Es existiert eine Funktion g : B → A mit f ◦ g = idB c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 46 Mengen und das Unendliche Beweis zur ersten Äquivalenz Beweis: Beachten Sie zunächst, dass zwei Aussagen (i) und (ii) äquivalent sind, in Zeichen (i) ⇔ (ii), wenn die eine jeweils aus der anderen folgt, also (i) ⇒ (ii) und (ii) ⇒ (i). Äquivalenzen von drei oder mehr Aussagen kann man zeigen, indem man Ringe von Schlüssen bildet. Bei drei Aussagen (i),(ii),(iii) zeigt man dann z.B. (i) ⇒ (ii), (ii) ⇒ (iii) und (iii) ⇒ (i). Aus der Transitivität der logischen Implikation folgt dann auch (i) ⇒ (iii), (iii) ⇒ (ii) und (ii) ⇒ (i), und damit folgen die gewünschten Äquivalenzen. Hier ist aber nur die Äquivalenz von zwei Aussagen zu zeigen. Nun zu (a): Wir zeigen zunächst (i) ⇒ (ii), d.h. wir zeigen, dass aus der Injektivität einer Funktion f : A → B folgt, dass eine Funktion g : B → A existiert mit g ◦ f = idA.3 Seien B 0 = rng(f ) und a ∈ A beliebig. Definiere nun g : B → A durch g|B 0 = f −1 (das sind also die Fälle, in denen b aus dem Range von f stammt) und g(b) = a 3 Unsere Aufgabe ist es, eine Funktion g tatsächlich anzugeben, die die gewünschte Eigenschaft hat. Intuitiv ist klar, dass die Umkehrfunktion von f eine wichtige Rolle spielen wird. Allerdings trifft f nicht notwendigerweise alle Elemente von B , deshalb müssen wir die Umkehrfunktion noch sinnvoll erweitern für die Fälle, in denen ein b ∈ B nicht im Range von f liegt. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 47 Mengen und das Unendliche für b 6∈ B 0. Dann ist natürlich g ◦ f = idA. Nun zur Richtung (ii) ⇒ (i): Sei f (a1) = b = f (a2) für a1, a2 ∈ A. Dann ist g(b) = g(f (a1)) = idA(a1) = a1 und g(b) = g(f (a2)) = idA(a2) = a2, also a1 = a2. Also ist f injektiv.4 Ganz ähnlich gehen wir beim Beweis von (b) vor: (i) ⇒ (ii): Definiere g : B → A durch g(b) = „ein a ∈ A mit f (a) = b“. Beachte: Ein a ∈ A mit f (a) = b existiert wg. rng(f ) = B nach Voraussetzung. Dann gilt g : B → A und nach Definition von g ist f (g(b)) = b für alle b ∈ B . Also f ◦ g = idB . (ii) ⇒ (i): Sei b ∈ B . Wg. f ◦ g = idB ist f (g(b)) = b. Also ist b ∈ rng(f ), denn f (a) = b für a = g(b). Also ist f : A → B surjektiv. 4 Hier wird also die Injektivitätbedingung geprüft – eine Funktion ist injektiv, wenn es kein Objekt in ihrem Range gibt, das von zwei Objekten des Domains getroffen wird – mit anderen Worten: wenn für zwei beliebig ausgewählte Objekte aus dem Domain die Bilder gleich sind, dann müssen die Objekte selbst identisch sein. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 48 Mengen und das Unendliche Forts. zu Funktionen Definition 28. [Bild, Urbild] Sei f eine Funktion. Weiter seien A ⊆ dom(f ) und B eine beliebige Menge. Wir 00 00 setzen f A = {f (a)|a ∈ A} und f −1 B = {a ∈ dom(f )|f (a) ∈ B}. 00 00 f heißt das Bild von A unter f (sprich: f zwei Strich von A). f −1 B heißt das Urbild von B unter f . 00 00 Es gilt f A ⊆ rng(f ) für alle A ⊆ dom(f ) und f −1 B ⊆ dom(f ) für alle Mengen B . (Warum?) Manche sprechen anstelle von Funktion auch von Abbildung, Transformation, Zuordnung oder auch Operator. Das suggeriert irgendeine „Tätigkeit“ – wir nehmen hier anstelle einer etwas vagen, leicht geheimnisvoll scheinenden Position, die einer Funktion etwas Dynamisches zuschreibt, eine Position ein, in der die Funktion nichts tut, sondern (im statischen Sinne) nur ist. [In Anlehnung an P.R.Halmos, 1982, in „Naive Mengenlehre“] c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 49 Mengen und das Unendliche Größenvergleiche Wie vergleichen Neandertaler zwei große Haufen Nüsse? Große Zahlen kennen Sie nicht! Wiegen können Sie nicht! Der Algorithmus des Abtragens: Nimm je eine Nuss von Haufen H1 und eine von Haufen H2 weg und lege sie beiseite. Wiederhole diese Paarbildung, bis einer der beiden Haufen aufgebraucht ist. Mögliche Resultate: (I) H1 ist am Ende aufgebraucht. (II) H2 ist am Ende aufgebraucht. (III) H1 und H2 sind am Ende aufgebraucht. Das entspricht den drei Fällen: (I) H1 hat weniger oder ebensoviele Nüsse wie H2. (II) H2 hat weniger oder ebensoviele Nüsse wie H1. (III) H1 und H2 haben gleichviele Nüsse. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 50 Mengen und das Unendliche Diese Entsprechung bezeichnen wir als Korrektheit der Algorithmus, von der wir intuitiv überzeugt sind (hoffentlich ;) Übersetzen wir das bisher gesehene in unsere Sprache der Mengenlehre: Der Algorithmus erzeugt eine Funktion: Sei f die Menge aller Paare (a, b) ∈ H1 × H2, die während des Abtragens entstehen. Im Fall (I) ist f : H1 → H2 injektiv. Im Fall (II) ist g = f −1 = {(b, a)|(a, b) ∈ f }. Dann ist g : H2 → H1 injektiv. Im Fall (III) ist f : H1 → H2 bijektiv. Aus der Korrektheit des Algorithmus folgt, dass das Ergebnis nicht vom Verlauf der Paarbildung abhängt, d.h. jede mögliche Durchführung bzw. Funktion f , liefert das gleiche Resultat. Wir setzen: |H1| ≤ |H2|, falls (I) eintritt. |H2| ≤ |H1|, falls (II) eintritt. |H1| = |H2|, falls (III) eintritt. Beachte: Die Begriffe mehr, weniger, gleichviel beruhen nicht auf dem Zahlbegriff! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 51 Mengen und das Unendliche Definition 29. [Größenvergleich] Seien A und B Mengen. Dann ist die Mächtigkeit von A kleinergleich der Mächtigkeit von B , in Zeichen |A| ≤ |B|, falls gilt: Es existiert ein injektives f : A → B . Definition 30. [Gleichmächtig] Seien A und B Mengen. Dann ist A gleichmächtig zu B , in Zeichen |A| = |B|, falls gilt: Es existiert ein bijektives f : A → B . Wir kommen jetzt zu einem wichtigen Satz, den C ANTOR 1883 formulierte und den der 19-jährige F ELIX B ERNSTEIN 1897 bewies, den Satz von Cantor-Bernstein. Der Satz selbst besagt etwas scheinbar triviales: Aus |M | ≤ |N | und |N | ≤ |M | folgt |N | = |M |, d.h., wenn es zwei Injektionen f : M → N und g : N → M gibt, so gibt es auch eine Bijektion h : M → N . Dies ist allerdings keineswegs klar! B ERNSTEIN benötigte zunächst einen vorbereitenden Satz: Satz 31. [Inklusionssatz(**)] 5 Seien M, N Mengen mit N ⊆ M und |N | = |M |. Weiter sei N 0 eine Menge mit N ⊆ N 0 ⊆ M . Dann gilt |N 0| = |M | = |N |. 5 (**)Gibt es solche Mengen N, M, N 0 überhaupt? Nehmen wir mal an, dass alle Mengen paarweise verschieden sind. Dann folgt aus N ⊆ M , dass jedes Element von N auch in M ist. Wir können also in jedem Fall eine Injektion von N nach M finden, nämlich die Identität, die jedem Element aus dem Definitionsbereich sich selbst zuordnet. Aus |N | = |M | folgt, dass es sogar eine Bijektion zwischen M und N gibt. Im Endlichen folgt hier unmittelbar N = M ! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 52 Mengen und das Unendliche Satz 32. [Inklusionssatz, alternative Formulierung**] Seien A, B, C paarweise disjunkte Mengen mit |A ∪ B ∪ C| = |A|. Dann gilt auch |A ∪ B ∪ C| = |A ∪ B|. Satz 33. [Äquivalenzsatz von C ANTOR -B ERNSTEIN] Seien M, Q Mengen mit |M | ≤ |Q| und |Q| ≤ |M |. Dann gilt |M | = |Q|. Definition 34. [Echt kleinere Mächtigkeit] Seien A, B Mengen. A ist von echt kleinerer Mächtigkeit als B , in Zeichen |A| < |B|, falls |A| ≤ |B| und |A| 6= |B|. Folgerung: Aus |A| < |B| und |B| < |C| folgt |A| < |C|. Satz 35. [Vergleichbarkeitssatz] Seien M, N Mengen. Dann gilt |M | ≤ |N | oder |N | ≤ |M |. Und damit ergibt sich der Rest von selbst (denn aus N ⊆ N 0 ⊆ M und N = M folgt unmittelbar N 0 = M – und der Inklusionssatz ist ziemlich inhaltsleer). Allerdings können wir das noch gar nicht so genau zeigen, denn der Begriff der Endlichkeit ist noch nicht definiert. Aber im Unendlichen wird der Inklusionssatz wieder interessant (fragen sie sich einmal, ob es mehr natürliche Zahlen gibt, als gerade natürliche Zahlen!) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 53 Mengen und das Unendliche Unendliche Mengen (I) Seien N = {0, 1, 2, 3, . . . } und G = {0, 2, 4, 6, . . . } die Menge der geraden Zahlen. Definiere f : N → G durch f (n) = 2n für n ∈ N. Dann ist f : N → G bijektiv! Es gilt also: |N| = |G|. Zudem ist G ⊂ N. Beachten Sie, dass beide „Größenbegriffe“ (Mächtigkeit und Inklusion) durchaus sinnvoll sind. Bedenken Sie aber auch, dass manche Mengen hinsichtlich der Inklusion gar nicht in eine Ordnung gebracht werden können – die Teilmengenbeziehung ist weniger „universell“ als der Mächtigkeitsbegriff (wenn es um „Größe“ geht), z.B. können Sie mit der Teilmengenrelation nicht eine Menge von Äpfeln und eine Menge von Birnen vergleichen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 54 Mengen und das Unendliche Unendliche Mengen (II) Definition 36. [Unendlichkeit nach Dedekind] Sei M eine Menge. M heißt unendlich, falls es eine echte Teilmenge N von M gibt, die sich bijektiv auf M abbilden läßt, d.h. es gibt ein N ⊂ M mit |N | = |M |. Hilbert’sche Hotel: Dieses sehr spezielle Hotel hat für jede natürliche Zahl ein Zimmer – allerdings sind alle Zimmer belegt! Dennoch schafft es der Portier immer wieder, neue Gäste unterzubringen: (i) Jeder alte Gast zieht von Zimmer n nach Zimmer n + 1. (ii) Der neue Gast wird in Zimmer 0 einquartiert. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 55 Mengen und das Unendliche Einige Sätze über unendliche Mengen Satz 37. [Übertragung der Unendlichkeit auf Obermengen] Seien A, B Mengen und es gelte A ⊆ B . Dann gilt: Ist A unendlich, so ist auch B unendlich. Beweis: Sei A unendlich. Dann existieren A0 ⊂ A und f : A → A0 bijektiv. Definiere g : B → B durch: ( g(b) = f (b), falls b ∈ A b, falls b 6∈ A. Also g = f ∪ idB−A. Wg. f : A → A injektiv ist g injektiv. Weiter ist rng(g) = rng(f ) ∪ (B − A) = A0 ∪ (B − A) ⊂ B wegen A0 ⊂ A, A ⊆ B . Also ist g eine Bijektion von B auf die echte Teilmenge rng(g) von B , und damit ist B unendlich. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 56 Mengen und das Unendliche Satz 38. [Übertragung der Unendlichkeit auf gleichmächtige u. größere Mengen] Seien A, B Mengen und es gelte |A| ≤ |B|. Dann gilt: Ist A unendlich, so ist auch B unendlich. Satz 39. [Entfernen eines Elementes] Sei A eine unendliche Menge. Weiter seien a ∈ A und B = A − {a}. Dann ist auch B unendlich. Korollar 40. [Hinzufügen eines Elementes] Sei B eine endliche Menge, a ein beliebiges Objekt, a 6∈ B . Weiter sei A = B ∪ {a}. Dann ist auch A endlich. Der Apparat, der uns zur Verfügung steht, ist bisher ein wenig schwerfällig. Wir verknüpfen jetzt die Endlichkeit enger mit den natürlichen Zahlen: c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 57 Mengen und das Unendliche Endlichkeit und natürliche Zahlen Definition 41. [Die Mengen n̄ für n ∈ N] Für n ∈ N sei n̄ = {0, 1, . . . , n − 1} = {m ∈ N |m < n}. Übrigens: Funktioniert der Algorithmus des Abtragens eigentlich, wenn beide Mengen unendlich sind? Satz 42. [Endlichkeit von n̄] Jede Menge n̄ ⊂ N ist endlich. Korollar 43. Seien n, m ∈ N und sei f : n̄ → m̄ bijektiv. Dann gilt n = m. Satz 44. [Einbettbarkeit der natürlichen Zahlen in unendliche Mengen] Sei M eine Menge. Dann sind äquivalent: (i) M ist unendlich (ii) |N| ≤ |M |. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 58 Mengen und das Unendliche Satz 45. [Charakterisierung der endlichen Mengen mit Hilfe der natürlichen Zahlen] Sei M eine Menge. Dann sind äquivalent: (i) M ist endlich (ii) Es existiert ein n ∈ N mit |M | = |n̄|. Die Vereinigung zweier endlicher Mengen ist endlich. Die Vereinigung endlich vieler endlicher Mengen ist endlich. Alternative Definition von Endlichkeit/Unendlichkeit: Eine Menge M ist endlich, falls es ein n ∈ N gibt mit |M | = |n̄|. Eine Menge ist unendlich, falls sie nicht endlich ist. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 59 Mengen und das Unendliche Anmerkungen zur Unendlichkeit DAVID H ILBERT, 1925: „Durch diese Bemerkung wollte ich nur dartun, daß die endgültige Aufklärung über das Wesen des Unendlichen weit über den Bereich spezieller fachwissenschaftlicher Interessen vielmehr zur Ehre des menschlichen Verstandes selbst notwendig geworden ist . . . “ „Die Endlichkeit des Wirklichen haben wir nun in zwei Richtungen festgestellt: nach dem Unendlichkleinen und dem Unendlichgroßen. Dennoch könnte es sehr wohl zutreffen, daß das Unendliche in unserem Denken einen wohlberechtigten Platz hat und die Rolle eines unentbehrlichen Begriffs einnimmt . . . “ c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 60 Mengen und das Unendliche Abzählbare Mengen Definition 46. [Abzählbare Mengen] Eine Menge M heißt abzählbar, falls gilt: (i) M ist endlich, oder (ii) es existiert ein f : N → M bijektiv. Satz 47. Sei M eine Menge. Dann sind äquivalent: M ist abzählbar, |M | ≤ |N|. Beweis: (i) ⇒ (ii): Sei M abzählbar. Ist M endlich, so existiert ein n̄ mit |M | = |n̄|, und dann gilt offenbar |M | ≤ |N|. Ist |M | = |N|, so ist trivialerweise |M | ≤ |N| (ii) ⇒ (i): Sei |M | ≤ |N| und f : M → N injektiv. Definiere, solange möglich, x0 = min(rng(f )), xn+1 = min(rng(f ) − {x0, . . . , xn}). Ist n minimal mit xn nicht definiert, so ist |M | = |n̄|. Ist xn definiert für alle n ∈ N, so gilt |M | = |N|, denn g : N → N mit g(n) = xn für n ∈ N ist bijektiv. Also ist M abzählbar. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 61 Mengen und das Unendliche Satz 48. Sei M eine unendliche Menge. Dann existiert eine abzählbar unendliche Teilmenge von M . c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 62 Mengen und das Unendliche Forts. Abzählbarkeit Die „entscheidende“ Frage: Ist jede Menge abzählbar? Es folgen einige Beispiel: Sind die ganzen Zahlen abzählbar? Z = {. . . , −1, 0, 1, . . . } f : Z → N definiert durch f (x) = ( 2x, falls x ≥ 0, −2x − 1 falls x < 0 (1) Dann ist f bijektiv! Also ist Z abzählbar! Satz 49. Seien A und B abzählbar, dann ist auch A ∪ B abzählbar! Beweis: Übung! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 63 Mengen und das Unendliche Forts. Abzählbarkeit Ist N × N abzählbar? Satz 50. N × N ist abzählbar. Beweis: Hier hilft die berühmte Cantor’sche Paarungsfunktion: definiere π : N × N → N bijektiv durch π(a, b) = 1/2(a + b)(a + b + 1) + a. Beispiel: π(1, 2) = 1/2(1 + 2)(1 + 2 + 1) + 1 = 7 Übrigens: Es gibt nur dieses eine Polynom zweiten Grades, dass N xN aufzählen kann (und natürlich seine symmetrische Form). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 64 Mengen und das Unendliche Forts. Abzählbarkeit Das Ergebnis kann man auf höhere Dimensionen verallgemeinern: ein πn : Nn → N existiert für alle n ≥ 2! (und ist dann ein Polynom n-ten Grades). Satz 51. Eine abzählbare Vereinigung abzählbarer Mengen ist abzählbar! Beweis: Seien An, n ∈ N, abzählbare Mengen. Für jedes n ∈ N fixieren wir ein fn : An → N injektiv. Sei A = funktion). S n∈N An. Sei π : N × N → N bijektiv (etwa die Cantor’sche Paarungs- Wir definieren g : A → N durch: g(x) = π(n, fn(x)), wobei n = „das kleinste n ∈ N mit x ∈ An“ ist. Dann ist g injektiv, also |A| ≤ |N|. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 65 Mengen und das Unendliche Forts. Abzählbarkeit Sind die rationalen Zahlen abzählbar? Satz 52. Q ist abzählbar. Beweis: Für q ∈ Q seien N (q) bzw. Z(q) Nenner bzw. Zähler des gekürzten Bruches |q| = q für q ≥ 0, |q| = −q für q < 0. Wir setzen für n ∈ N An = {q ∈ Q|N (q) + Z(q) = n}. S Dann ist jedes An abzählbar (sogar endlich!), und Q = n∈N An. Also ist Q abzählbar! Anmerkung: Hinter diesem Beweis steht die folgende Spiral-Aufzählung des Z20 Gitters. Für n ∈ N setzen wir An = {(a, b) ∈ R2 | |a| + |b| = n und 0 |a|, |b| ≤ n}. Die Mengen An sind Quadrate im Raum R2 mit den Ecken (n, 0), (0, n), (−n, 0), (0, −n). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 66 Mengen und das Unendliche Forts. Abzählbarkeit Sind die reellen Zahlen abzählbar? Zunächst ein wenig Vorbereitung: Definition 53. [Überabzählbare Mengen] Sei M eine Menge. M heißt überabzählbar, falls M nicht abzählbar ist. Anmerkungen – offenbar sind die folgenden Aussagen äquivalent: (i) M ist überabzählbar. (ii) non(|M | ≤ |N|), d.h. es existiert kein injektives f : M → N. (iii) Es existiert kein surjektives f : N → M (iv) |N| < |M |. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 67 Mengen und das Unendliche Forts. Abzählbarkeit der reellen Zahlen? Satz 54. [Satz von C ANTOR über die Überabzählbarkeit der reellen Zahlen] Die Menge R der reellen Zahlen ist überabzählbar. Beweis: Es genügt zu zeigen: Es existiert kein surjektives f : N → R. Sei hierzu f : N → R beliebig. Wir finden ein x ∈ R mit x 6∈ rng(f ) wie folgt. Für n ∈ N schreiben wir f (n) in kanonischer unendlicher Dezimaldarstellung (mit 0 = 0, 0000 . . . ). Sei also f (0) = z0, a0,0a0,1a0,2 . . . f (1) = z1, a1,0a1,1a1,2 . . . f (2) = z2, a2,0a2,1a2,2 . . . f (3) = z3, a3,0a3,1a3,2 . . . ... f (n) = zn, an,0an,1an,2 . . . ... c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 68 Mengen und das Unendliche Wir definieren x = 0, b0b1b2 · · · ∈ R durch ( bn = 1, falls an,n = 2, 2, falls an,n 6= 2. Dann ist x in kanonischer Dezimaldarstellung (also eine reele Zahl), die sich aber von jeder Zahl im Range von f an mindestens einer Stelle unterscheidet, denn für jedes f (n) gilt, an,n 6= bn – also wird nicht jedes Element von R getroffen, d.h., f ist nicht surjektiv, da x 6∈ rng(f )! Diese Beweismethode heißt Diagonalisierung, weil wir eine Zahl konstruiert haben, die von Ziffern auf der Diagonale der angenommenen Tabelle abweicht. Merken sie sich: es geht darum, eine Zahl (oder später auch etwas anderes) zu konstruieren, die nicht im Range einer vermeintlich surjektiven Funktion liegen kann. Korollar 55. [Jedes reelle Intervall ist überabzählbar] Seien x, y ∈ R, x < y . Dann ist ]x, y[= {z ∈ R|x < z < y} überabzählbar. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 69 Mengen und das Unendliche Weitere Resultate zur Überabzählbarkeit Satz 56. [Subtraktion abzählbarer Mengen] Sei M eine überabzählbare Menge. Weiter sei A ⊆ M abzählbar. Dann gilt |M − A| = |M |. Satz 57. Es gilt |R| = |P(N)|. Satz 58. [Satz von C ANTOR über die Potenzmengen] Sei M eine Menge und P(M ) = {X|X ⊆ M } die Potenzmenge von M . Dann gilt |M | < |P(M )|. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 70 Mengen und das Unendliche Exkurs: Das Kontinuumsproblem Cantors Kontinuumsproblem: Folgen die reellen Zahlen in der Hierarchie der Mächtigkeiten unmittelbar nach den natürlichen Zahlen oder gibt es eine Menge M , für die gilt |N| < |M | < |R|? H ILBERT (ein berühmter Mathematiker, der lange in Göttingen lebte und lehrte und 1900 auf einem Mathematiker-Kongress in Paris eine berühmte Rede hielt, in der er eine Liste mit den 23 seiner Ansicht nach wichtigsten Problemen, die die Mathematik im nächsten Jahrhundert lösen sollte, formulierte) stellte das Kontinuumsproblem an den Anfang seiner Liste! Es wurde erst 1938 (K URT G ÖDEL) bzw. 1963 (PAUL C OHEN) gelöst - und zwar durch den Beweis seiner Unlösbarkeit! (trotzdem beschäftigen sich Mathematiker auch heute noch intensiv mit verwandten Fragestellungen - wir aber in dieser Veranstaltung nicht) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 71 Mengen und das Unendliche Ordnungen Definition 59. [Lineare Ordnung] Sei M eine Menge und sei < ⊆ M × M eine zweistellige Relation auf M . < heißt lineare Ordnung auf M , falls für alle a, b, c ∈ M gilt: (i) non(a < a) (Irreflexivität) (ii) aus a < b und b < c folgt a < c (Transitivität) (ii) a < b oder a = b oder b < a (Linearität) Beispiele: (N, <) etc. Anmerkung: Relationen, die irreflexiv und transitiv sind, heißen auch partielle Ordnungen (d.h., alle linearen Ordnungen sind auch partiell, aber nicht umgekehrt). Beispiele s. Übungen. Zur Sprechweise: Ist X ⊆ M und s ∈ M , so bedeutet X < s, dass x < s für alle x ∈ X . Analog sind X ≤ s, s < X und s ≤ X definiert. s heißt <-kleinstes Element der Ordnung, falls s ≤ M . Analog ist das <-größte Element definiert. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 72 Mengen und das Unendliche Wohlordnungen Definition 60. [Wohlordnung] Sei (M, <) eine lineare Ordnung. (M, <) heißt Wohlordnung auf M , falls jede nichtleere Teilmenge M 0 von M ein <-kleinstes Element hat, d.h. es gibt ein m ∈ M mit m ∈ M 0 und m ≤ x für alle x ∈ M 0. (R, <) ist keine Wohlordnung, z.B. ist 0 die kleinste untere Schranke für die Menge M 0 = {1/n|n ∈ N, n > 1} ⊆ R, aber 0 6∈ M 0. Bemerkung: Es gilt der folgende Wohlordnungssatz von Z ERMELO: Sei M eine Menge, dann existiert eine Wohlordnung < auf M . c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 73 Mengen und das Unendliche Beweis des Induktionsprinzips Induktionsprinzip: Sei E(n) eine Aussage. Es gelte: (1) E(0) (2) Für alle n ∈ N gilt: aus E(n) folgt E(n + 1) Dann gilt E(n) für alle n ∈ N . Beweisbar in der Mengenlehre (hier durch Widerspruch): Angenommen, es gibt ein l ∈ N mit non E(l), d.h. die Eigenschaft gilt nicht für dieses l. Dann ist A = {l ∈ N| non E(l)} = 6 ∅. Da (N, <) wohlgeordnet ist, hat A ein kleinstes Element k, d.h. die Wohlordnungseigenschaft garantiert uns, dass wir ein konkretes Element aus der Menge A „in die Hand“ nehmen können. Nach (1) ist k 6= 0, denn sonst wäre die Eigenschaft ja erfüllt. Sei also k = m + 1 – ein solches m aus N existiert immer, denn k ist ja größer als 0 und zu jedem Element n aus N − {0} gibt es einen Nachfolger n + 1. Nach Definition von A und k gilt E(m), denn m muss ausserhalb von A liegen, c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 74 Mengen und das Unendliche sonst könnte k nicht das kleinste Element aus N sein, für das die Aussage nicht erfüllt ist. Nach (2) folgt aus E(m) aber E(m + 1), also E(n) wg. m + 1 = n im Widerspruch zur Annahme! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 75 Mengen und das Unendliche Ein Paradox droht! Erinnern Sie sich an unseren Barbier! Hier eine Variante – das RUSSELL Z ERMELO ’ SCHE PARADOX: Sei R = {x ist eine Menge und x 6∈ x} die Menge aller Mengen, die nicht Element von sich selbst sind. Dann gilt für alle Mengen y : y ∈ R gdw. y 6∈ y . Insbesondere gilt dies auch für y = R. Dies ergibt aber R ∈ R gdw. R 6∈ R. Widerspruch! Eine „Lösung“ ist, solche selbst-referentiellen Konstrukte nicht zuzulassen in der Formulierung von Eigenschaften – man kann dann R nicht mehr als „Ganzes“ im Sinne der Mengenlehre betrachten (dies passt zu der Definition C ANTORS, die wir zu Beginn gesehen haben: Eine Menge ist jede Vielheit, die als Ganzes aufgefasst werden kann, sie sagt nicht etwa, dass jede Vielheit als Ganzes aufgefasst werden kann. Wir werden im folgenden sehr knapp eine Axiomatisierung („gesetzte“ Regeln) der Mengenlehre betrachten, die die Paradoxien vermeidet (nicht durch Verbote, sondern durch Konstruktionsvorschriften „von unten“, die sicher stellen, das selbstreferentielle Paradoxien nicht auftreten können). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 76 Mengen und das Unendliche Axiomatische Mengenlehre Alle Objekte sind Mengen und die einzigen Grundrelationen zwischen Mengen sind die Gleichheit „a = b“ und die Elementbeziehung „a ∈ b“. F RAENKEL (1928): „Dieser Aufbau der Mengenlehre verläuft nach der sog. axiomatischen Methode, die vom historischen Bestand einer Wissenschaft (hier der Mengenlehre) ausgeht, um durch logische Analyse der darin enthaltenen Begriffe, Methoden und Beweise die zu ihrer Begründung erforderlichen Prinzipien – die Axiome – aufzusuchen und aus ihnen die Wissenschaft deduktiv herzuleiten. . . . “ c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 77 Mengen und das Unendliche Axiome der Mengenlehre – die ZFC-Axiome Extensionalitätsaxiom (EXT): Zwei Mengen sind genau dann gleich, wenn sie die gleichen Elemente haben. Existenz der leeren Menge (LM): Es existiert eine Menge, welche keine Elemente hat. Paarmengenaxiom (PA): Zu je zwei Mengen x, y existiert eine Menge z , die genau x und y als Elemente hat. Vereinigungsmengenaxiom (VER): Zu jeder Menge x existiert eine Menge y , deren Elemente genau die Elemente der Elemente von x sind.6 Aussonderungsschema (AUS): Zu jeder Eigenschaft E und jeder Menge x gibt es eine Menge y , die genau die Elemente von x enthält, auf die E zutrifft.7 6 Bedenken Sie, dass unsere Objekte alle Mengen sind. Hier geht es also um eine Menge y , die die Elemente der Mengen, die in x enthalten sind – wie bei einer Vereinigung über die Mengen eines Mengensystems, s. Def. 11. 7 Beachten Sie: Dieses Schema „generiert“ unendlich viele Axiome, eines pro Eigenschaft, deshalb ist ein sog. Axiomenschema! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 78 Mengen und das Unendliche Unendlichkeitsaxiom (UN: Es existiert eine Menge x, die die leere Menge als Element enthält und die mit jedem ihrer Elemente y auf {y} als Element enthält. (Also sind z.B. ∅, {∅}, {{∅}}, . . . Elemente von x). Natürliche Zahlen: Sei E(u) die Eigenschaft „∅ ∈ u und mit jedem y ∈ u ist auch {y} ∈ u.“. Wir setzen U = {u ∈ P(x)|E(u) (das ist das x aus dem Axiom). U existiert nach POT und AUS und besteht aus allen Teilmengen von x, die ∅, {∅}, . . . T enthalten. Insbesondere ist x ∈ U . Wir definierten nun: Z0 = U . Dann besteht Z0 genau aus den Mengen ∅, {∅}, . . . und jede Menge x0 aus dem Unendlichkeitsaxiom enthält Z0 als Teilmenge (Z0 ist die kleinste unendliche Menge). Z0 kann man als Menge der natürlichen Zahlen auffassen: 0 = ∅, 1 = {∅}, 2 = {{∅}}, 3 = {{{∅}}} . . . , also 0 = ∅, 1 = {0}, 2 = {1}, 3 = {2}, . . . Aus der Definition der Ordinalzahlen nach von N EUMANN und Z ERMELO folgt eine andere Definition der natürlichen Zahlen (beides geht!): 0 = ∅, 1 = {0}, 2 = {0, 1}, 3 = {0, 1, 2}, . . . Hier hat jedes n genau n Elemente und die ∈-Relation ordnet die natürlichen Zahlen linear (jede Zahl ist hier eine Menge, die in allen größeren Zahlen als Element c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 79 Mengen und das Unendliche vorkommt). Potenzmengenaxiom (POT): Zu jeder Menge x existiert eine Menge y , die genau die Teilmengen von x als Elemente besitzt. Ersetzungsschema (ERS): Zu jeder funktionalen Eigenschaft E und jeder Menge M existiert eine Menge N , die genau diejenigen y als Elemente enthält, für welche ein x ∈ M existiert mit E(x, y). [Funktionale Eigenschaft: Ist E(x, y) eine Eigenschaft in zwei Variablen x und y , so heißt E(x, y) funktional, falls es für jedes x genau ein y gibt mit E(x, y).] Fundierungsaxiom (FUN): Jede nichtleere Menge x hat ein Element y , das mit x kein Element gemeinsam hat. Auswahlaxiom (AC): Ist x eine Menge, deren Elemente nichtleer und paarweise disjunkt sind, so existiert eine Menge y , die mit jedem Element von x genau ein Element gemeinsam hat. Diese Axiome bilden die sogenannten ZFC-Axiome (Zermelo-Fraenkel-Choice). Verschiedene Auswahlen aus diesen Axiomen wurden auch benannt: Z = ZFC ohne ERS, FUN, AC; ZF = ZFC ohne AC; ZFC− = ZFC ohne POT; ZF− = ZF ohne POT. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 80 Mengen und das Unendliche ZFC und die Antinomien In ZFC lösen sich die Antinomien auf: Für alle x existiert ein y ⊆ x mit y 6∈ x (Satz nach Z ERMELO, 1908). Beweis: Sei x beliebig. Nach dem Aussonderungsschema existiert y = {z ∈ x|z 6∈ z}. Dann gilt y 6∈ x, denn anderenfalls hätten wir y ∈ y gdw. y 6∈ y – ein Widerspruch wie bei der RUSSELL -Z ERMELO-Paradoxie! Daraus folgt z.B. unmittelbar, dass es kein x gibt mit der Eigenschaft: Für alle y ist y ∈ x (denn ein solches x würde alle seine Teilmengen als Elemente enthalten, im Widerspruch zum eben gezeigten Satz). Ende des Mengenlehre-Kapitels! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 81 Logik: Die Wissenschaft vom Schließen Syntax der Aussagenlogik Definition 61. [Syntax der Aussagenlogik] Eine atomare Formel hat die Form Ai (mit i = 1, 2, 3, . . . ). Formeln werden durch folgenden induktiven Prozess definiert: 1. Alle atomaren Formeln sind Formeln. 2. Für alle Formeln F und G sind (F ∧ G) und (F ∨ G) Formeln. 3. Für jede Formel F ist ¬F eine Formel. Sprechweisen: Eine Formel der Bauart ¬F heißt Negation von F , (F ∧ G) heißt Konjunktion von F und G, (F ∨ G) heißt Disjunktion von F und G. Eine Formel F , die als Teil einer Formel G auftritt, heißt Teilformel von G. Beispiel: F = ¬((A5 ∧ A6) ∨ ¬A3) ist eine Formel und sämtliche Teilformeln von F sind F , ((A5 ∧ A6) ∨ ¬A3), (A5 ∧ A6), A5, A6, ¬A3, A3 c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 82 Logik: Die Wissenschaft vom Schließen Wir vereinbaren die folgenden abkürzenden Schreibweisen (F1, F2 . . . sind beliebige Formeln): A, B, C, . . . statt A1, A2, A3, . . . (F1 → F2) statt (¬F1 ∨ F2) (F1 ↔ F2) statt ((F1 ∧ F2) ∨ (¬F1 ∧ ¬F2)) bzw. ((F1 → F2) ∧ (F2 → F1)) Beispiel: So ist z.B. (A ↔ E) eine Abkürzung für ((A1 ∧ A5) ∨ (¬A1 ∧ ¬A5)). Beachten Sie, dass hier tatsächlich der fünfte Buchstabe des Alphabets, also E , für die atomare Formel mit der Nummer 5, also A5, verwendet wird. Bei hohen Nummern wird eine solche Entsprechung allerdings unklar, für kleine n ist das aber eine sinnvolle Konvention. Bisher haben wir nur definiert, dass Formeln bestimmten Zeichenketten entsprechen. Diese Zeichenketten haben noch keine Bedeutung, die sie durch eine Belegung erhalten werden. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 83 Logik: Die Wissenschaft vom Schließen Semantik der Aussagenlogik Definition 62. [Semantik der Aussagenlogik] Die Elemente der Menge {0, 1} heißen Wahrheitswerte. Eine Belegung ist eine Funktion A : D → {0, 1}. Hier ist D eine Teilmenge der atomaren Formeln. Wir erweitern A zu einer Funktion Ā : E → {0, 1}. Es gilt D ⊆ E . E ist die Menge aller Formeln, die nur aus atomaren Formeln in D aufgebaut ist. 1. Für jede atomare Formel A ∈ D ist Ā(A) = A(A). ( 2. Ā((F ∧ G)) = ( 3. Ā((F ∨ G)) = ( 4. Ā(¬F ) = 1, 1, falls Ā(F ) = 1 und Ā(G) = 1 0, sonst 1, falls Ā(F ) = 1 oder Ā(G) = 1 0, sonst falls Ā(F ) = 0 0, sonst Ā ist eine Fortsetzung (Def. 23) von A. Nachdem wir nun die formale Definition c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 84 Logik: Die Wissenschaft vom Schließen korrekt ausführen konnten, vereinfachen wir uns die Schreibarbeit und schreiben A für Ā. Beispiel: Es sei A(A) = 1, A(B) = 1, und A(C) = 0. Dann ergibt sich ( A(¬((A ∧ B) ∨ C)) = = = = ( 0, sonst 0, falls A(((A ∧ B) ∨ C)) = 1 ( 1, sonst 0, falls A((A ∧ B)) = 1 oder A(C) = 1 ( 1, sonst 0, falls A((A ∧ B)) = 1 (da A(C) = 0) ( 1, sonst 0, falls A(A) = 1 und A(B) = 1 = = 1, falls A(((A ∧ B) ∨ C)) = 0 1, sonst 0 c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 85 Logik: Die Wissenschaft vom Schließen Wahrheitstafeln Die Operationen (bzw. Verknüpfungen) lassen sich auch durch Wahrheitstafeln darstellen: A(F ) 0 0 1 1 A(G) 0 1 0 1 A((F ∧ G)) 0 0 0 1 A((F ∨ G)) 0 1 1 1 c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen A((F → G)) 1 1 0 1 A((F ↔ G)) 1 0 0 1 A(¬F ) 1 1 0 0 Version 1.0α, 22. Januar 2005, Seite 86 Logik: Die Wissenschaft vom Schließen Induktion: eine Anmerkung Die Definition von Formeln ist eine induktive Definition: Es werden zunächst die einfachsten Formeln definiert (die atomaren Formeln) und dann wird der Aufbau zusammengesetzter Formeln aus diesen einfachen Formeln mit Hilfe von Verknüpfungen erklärt. Ebenso induktiv ist die Belegung A definiert. Dieses Induktionsprinzip kann man auch in Beweisen verwenden: Um zu beweisen, dass eine Behauptung B(F ) für jede Formel F gilt, führt man folgende Schritte durch: 1. Man zeigt, dass B(Ai) für jede atomare Formel Ai gilt 2. Man zeigt, dass unter der Induktionsannahme, dass B(H) und B(G) gelten, folgt, dass B(¬H), B((H ∧ G)), und B((H ∨ G)) gelten. Ein Beispiel für die Anwendung dieser Form der Induktion findet sich beim Ersetzbarkeitstheorem (Satz 67). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 87 Logik: Die Wissenschaft vom Schließen Einige wichtige Begriffe (1) Definition 63. [Passend, Modell] Sei F eine Formel und A eine Belegung. Falls A für alle in F vorkommenden atomaren Formeln definiert ist, so heißt A zu F passend. [Zur Erinnerung hier in der Sprache der Mengenlehre: Sei M die Menge aller in F vorkommenden atomaren Formeln. Dann ist die Belegung A, die ja eine Funktion ist, genau dann passend zu F , wenn M ⊆ dom(A).] Falls A zu F passend ist und A(F ) = 1 gilt, so sagen wir: F gilt unter der Belegung A, oder: A erfüllt F , oder auch (wichtiger!): A ist ein Modell für F , symbolisch: A |= F . Falls A(F ) = 0, so sagen wir: Unter A gilt F nicht oder: A ist kein Modell für F , symbolisch: A 6|= F . Sei F eine Menge von Formeln (die auch unendlich groß sein kann!). Dann ist A ein Modell für F, falls für alle F ∈ F gilt, dass A |= F . c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 88 Logik: Die Wissenschaft vom Schließen Einige wichtige Begriffe (2) Definition 64. [Erfüllbar, unerfüllbar, gültig (Tautologie)] Eine Formel F (oder eine Formelmenge F) heißt erfüllbar, falls sich für F (bzw. F) mindestens ein Modell finden läßt, anderenfalls heißt F (bzw. F) unerfüllbar. [Anmerkung: Eine Formel F ist also dann erfüllbar, wenn man eine Belegung A finden kann, die zu F passt und ein Modell für F ist – mit anderen Worten: die Belegung muß die Formel F wahr werden lassen.] Eine Formel F heißt gültig, falls jede zu F passende Belegung ein Modell für F ist. Dann sagt man auch, dass F eine Tautologie ist, symbolisch |= F . Falls F keine Tautologie ist, schreiben wir 6|= F (Vorsicht, das steht für „keine Tautologie“ und nicht für „unerfüllbar“!) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 89 Logik: Die Wissenschaft vom Schließen Negationen von Tautologien sind unerfüllbar! Satz 65. Eine Formel F ist eine Tautologie gdw. ¬F unerfüllbar ist. Beweis: Es gilt: F ist eine Tautologie gdw. jede zu F passende Belegung ist ein Modell für F gdw. jede zu F (und damit zu ¬F ) passende Belegung ist kein Modell für ¬F gdw. ¬F besitzt kein Modell gdw. ¬F ist unerfüllbar. Merke: Die Negierung einer gültigen Formel führt zu einer unerfüllbaren Formel (und umgekehrt). Die Negierung einer erfüllbaren, aber nicht gültigen Formel führt wieder zu einer erfüllbaren, aber nicht gültigen Formel. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 90 Logik: Die Wissenschaft vom Schließen Wahrheitstafeln Um zu prüfen, ob eine Formel erfüllbar, gültig oder unerfüllbar ist, genügt es, die endlich vielen verschiedenen Belegungen, die man zu den in F vorkommenden atomaren Formeln finden kann, auf ihre Konsequenz für den Wahrheitswert von F hin zu testen. Falls F n verschiedene atomare Formeln enthält, so sind dies genau 2n zu testende Belegungen. A1: A2: . . A2n : A1 0 0 A2 0 0 1 1 ... ... ... . . ... An−1 0 0 An 0 1 1 1 F A1(F ) A2(F ) . . A2n (F ) F ist erfüllbar, falls der Wahrheitswerteverlauf von F (also die Spalte unter F ) mindestens eine 1 enthält [Anmerkung: Wenn man schreibt, dass etwas eine 1 enthält, dann meint man immer mindestens eine, und nicht genau eine – man könnte also das mindestens im vorigen Satz auch weglassen]. F ist eine Tautologie, wenn dort nur Einsen stehen, F ist unerfüllbar, wenn dort nur Nullen stehen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 91 Logik: Die Wissenschaft vom Schließen Beispiel zur Verwendung von Wahrheitstafeln Beispiel: Es sei F = (¬A → (A → B)). A 0 0 1 1 B 0 1 0 1 ¬A 1 1 0 0 (A → B) 1 1 0 1 F 1 1 1 1 F ist also eine Tautologie! Anmerkung: Wir lassen die Notation A() in der ersten Zeile der Wahrheitstafeln zur Vereinfachung ab jetzt weg, es sollte jetzt klar sein, dass es letztlich um Belegungen geht. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 92 Logik: Die Wissenschaft vom Schließen Exkurs: Von der Schwere des Erfüllbarkeitsproblems Die Wahrheitstafelmethode ist ein algorithmisches Verfahren, um die Erfüllbarkeit einer Formel zu prüfen. Es ist aber sehr schnell sehr aufwendig – für 100 atomare Formel wäre auch der schnellste heutige Rechner tausende Jahre beschäftigt! Unglücklicherweise ist dieses Exponentialverhalten der Rechenzeit vermutlich nicht generell einzudämmen (ausser für Einzelfälle), denn das Erfüllbarkeitsproblem für die Aussagenlogik ist ein sogenanntes NP-vollständiges Problem (das heißt in etwa, dass bis heute kein Algorithmus bekannt ist, der das Problem zum einen löst und dessen Laufzeit sich zum anderen für eine gegebene Eingabe der Größe n durch ein Polynom abschätzen läßt, also z.B. durch n3 + 7000. Man kann aber andererseits sehr leicht prüfen, ob eine einzelne Belegung eine Formel erfüllt (mit linearem Aufwand), deshalb gehört das Problem zu einer Klasse von „schweren“ Problemen, für die noch nicht abschließend geklärt ist, ob es nicht doch effiziente Algorithmen geben kann, die das Problem mit polynomialem Aufwand lösen können. Mehr hierzu hören sie im zweiten Semester in GIN2. Bis dahin können Sie aber auch schon mal z.B. in Uwe Schönings Ideen der Informatik schmökern, wenn sie mögen). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 93 Logik: Die Wissenschaft vom Schließen Äquivalenzen und Normalformen Definition 66. [Semantische Äquivalenz] Zwei Formeln F und G heißen (semantisch) äquivalent, falls für alle Belegungen A, die sowohl für F als auch für G passend sind, gilt A(F ) = A(G). Symbolisch: F ≡ G. Achtung! Auch Formeln, die auf ungleichen Mengen von atomaren Formeln basieren, können äquivalent sein (Tautologien). Satz 67. [Ersetzbarkeitstheorem (ET)] Seien F und G äquivalente Formeln. Sei H eine Formel mit (mindestens) einem 0 0 Vorkommen der Teilformel F . Dann ist H äquivalent zu H , wobei H aus H hervorgeht, indem (irgend) ein Vorkommen von F in H durch G ersetzt wird. Beweis durch Induktion über den Formelaufbau: Induktionsanfang: Falls H eine atomare Formel ist, dann kann nur H = F sein. 0 0 Und damit ist klar, dass H äquivalent zu H ist, denn H = G. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 94 Logik: Die Wissenschaft vom Schließen Induktionsschritt: Falls F gerade H selbst ist, so trifft dieselbe Argumentation wie beim Induktionsanfang zu. Sei also angenommen, dass F 6= H (aber F ist natürlich weiterhin eine Teilformel von H ). Dann muß man drei Fälle unterscheiden: Fall 1: H hat die Bauart H = ¬H1. Nach Induktionsannahme ist H1 äquivalent 0 0 zu H1, wobei H1 aus H1 durch Ersetzung von F durch G hervorgeht. Nun ist aber 0 0 0 H = ¬H1. Aus der (semantischen) Definition von ¬ folgt dann, dass H und H äquivalent sind. Fall 2: H hat die Bauart H = (H1 ∨ H2). Dann kommt F entweder in H1 oder in H2 vor. Nehmen wir den ersten Fall an (der zweite ist völlig analog, deshalb können wir dies ohne Beschränkung der Allgemeinheit tun). Dann ist nach Induktionsannahme 0 0 H1 wieder äquivalent zu H1, wobei H1 aus H1 durch Ersetzung von F durch G 0 0 hervorgeht. Mit der Definition von ∨ ist dann klar, dass H ≡ (H1 ∨ H2) = H . Fall 3: H hat die Bauart H = (H1 ∧ H2). Beweis analog zu Fall 2. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 95 Logik: Die Wissenschaft vom Schließen Nützliche Äquivalenzen (F ∧ F ) (F ∨ F ) (F ∧ G) (F ∨ G) ((F ∧ G) ∧ H) ((F ∨ G) ∨ H) (F ∧ (F ∨ G)) (F ∨ (F ∧ G)) (F ∧ (G ∨ H)) (F ∨ (G ∧ H)) ¬¬F ¬(F ∧ G) ¬(F ∨ G) (F ∧ G) (F ∨ G) (F ∧ G) (F ∨ G) ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ ≡ F F (G ∧ F ) (G ∨ F ) (F ∧ (G ∧ H)) (F ∨ (G ∨ H)) F F ((F ∧ G) ∨ (F ∧ H)) ((F ∨ G) ∧ (F ∨ H)) F (¬F ∨ ¬G) (¬F ∧ ¬G) G, falls F Tautologie F , falls F Tautologie F , falls F unerfüllbar G, falls F unerfüllbar c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen (Idempotenz) (Kommutativität) (Assoziativität) (Absorption) (Distributivität) (Doppelnegation) deMorgansche Regeln (Tautologieregeln) (Unerfüllbarkeitsregeln) Version 1.0α, 22. Januar 2005, Seite 96 Logik: Die Wissenschaft vom Schließen Beweisen der Äquivalenzen Beweise: Alle Äquivalenzen können leicht mittels Wahrheitstafeln nachgeprüft werden. Bsp. erste Absorptionsregel F 0 0 1 1 G 0 1 0 1 (F ∨ G) 0 1 1 1 (F ∧ (F ∨ G)) 0 0 1 1 Die erste (für F ) und die vierte Spalte (für (F ∧ (F ∨ G))) stimmen überein, also (F ∧ (F ∨ G)) ≡ F . c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 97 Logik: Die Wissenschaft vom Schließen Vereinfachung von Formeln Beispiel: Mit den Äquivalenzen und dem Ersetzbarkeitstheorem können wir nun viele Formeln vereinfachen. So können wir z.B. nachweisen, dass ((A ∨ (B ∨ C)) ∧ (C ∨ ¬A)) ≡ ((B ∧ ¬A) ∨ C) Beweis: Es gilt ((A ∨ (B ∨ C)) ∧ (C ∨ ¬A)) ≡ (((A ∨ B) ∨ C) ∧ (C ∨ ¬A)) (Assoziativität und ET) ≡ ((C ∨ (A ∨ B)) ∧ (C ∨ ¬A)) (Kommutativität und ET) ≡ (C ∨ ((A ∨ B) ∧ ¬A)) (Distributivität) ≡ (C ∨ (¬A ∧ (A ∨ B))) (Kommutativität und ET) ≡ (C ∨ ((¬A ∧ A) ∨ (¬A ∧ B))) (Distributivität und ET) ≡ (C ∨ (¬A ∧ B)) (Unerfüllbarkeitsregel und ET) ≡ (C ∨ (B ∧ ¬A)) (Kommutativität und ET) ≡ ((B ∧ ¬A) ∨ C) (Kommutativität) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 98 Logik: Die Wissenschaft vom Schließen Nieder mit den Klammern . . . Das Assoziativgesetz ermöglicht uns, die Klammerung zu vereinfachen: die Schreibweise F =A∧B∧C∧D soll etwa für eine beliebige Formel der folgenden Aufzählung stehen: F = (((A ∧ B) ∧ C) ∧ D) F = ((A ∧ B) ∧ (C ∧ D)) F = ((A ∧ (B ∧ C)) ∧ D) F = (A ∧ ((B ∧ C) ∧ D)) F = (A ∧ (B ∧ (C ∧ D))) Analoges gelte für Disjunktionen (und natürliche auch für längere oder kürzere Konjunktionen bzw. Disjunktionen). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 99 Logik: Die Wissenschaft vom Schließen . . . aber nicht mit allen!! Wenn F eine Teilformel ist, dann müssen die äußeren Klammer erhalten bleiben! (z.B., wenn sie das F von oben als Teil von z.B. G betrachten, wie in G = F ∨ H , also G = (A ∧ B ∧ C ∧ D) ∨ H , und nicht G = A ∧ B ∧ C ∧ D ∨ H , denn dann wäre nicht mehr klar, ob Sie . . . C ∧ (D ∨ H) oder (. . . C ∧ D) ∨ H meinen – und das macht einen Unterschied! Wir verzichten also nicht ganz auf Klammern. Insbesondere haben wir keine sogenannte „Präzedenz“ der Operatoren vereinbart (eben deshalb ist im Beispiel eben nicht klar, welche Variante gemeint ist). Klammern haben gegenüber einer Präzedenzregel den Vorteil, dass immer unmittelbar klar ist, was zusammengehört (das vermeidet Fehler und Missverständnisse! Denken Sie hier auch an die Klammerung der Boole’schen Ausdrücke, die von SUNs Code Conventions für Java empfohlen wird! Sonst fragt man sich regelmäßig: wusste der Codierer des Programms tatsächlich, in welcher Reihenfolge die Auswertung seines ungeklammerten Ausdrucks stattfindet?) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 100 Logik: Die Wissenschaft vom Schließen Nützliche Verallgemeinerungen Zunächst führen wir die abkürzende Schreibweisen ( Wn und ( i=1 Gi) für G1 ∨ · · · ∨ Gn ein. Dann gilt: Vn i=1 Gi) für G1 ∧ · · · ∧ Gn Satz 68. [Verallgemeinerte deMorgan’sche Regeln, verallg. Distributitivtät] ¬( Wn ¬( (( (( Vn Wm Wn Vm Vn i=1 Fi ) ∧ ( i=1 Fi ) ∨ ( i=1 Fi ≡ ( i=1 Fi ) ≡ ( Vn i=1 ¬Fi) i=1 ¬Fi) Wn j=1 Gj )) ≡ ( j=1 Gj )) ≡ ( c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Wm Wn i=1 ( j=1 (Fi ∧ Gj ))) i=1 ( j=1 (Fi ∨ Gj ))) Vm Vn Version 1.0α, 22. Januar 2005, Seite 101 Logik: Die Wissenschaft vom Schließen Normalformen Jede Formel, auch wenn sie noch so kompliziert aussieht, kann in „einfacher“ strukturierte Normalformen gebracht werden. Das ist eine wichtige Voraussetzung, um dann möglichst einfach algorithmisch die Erfüllbarkeit oder andere Eigenschaften der Formel prüfen zu können. Definition 69. [Literal, Normalformen] Ein Literal ist eine atomare Formel oder die Negation einer atomaren Formel (auch positives Literal bzw. negatives Literal genannt). Eine Formel F ist in konjunktiver Normalform (KNF), falls sie eine Konjunktion von Disjunktionen von Literalen ist, F hat also die Form Vn Wmi . F = ( i=1( j=1 Li,j )) mit Li,j ∈ {A1, A2, . . . } ∪ {¬A1, ¬A2, . . . } Eine Formel F ist in disjunktiver Normalform (DNF), falls sie eine Disjunktion von Konjunktionen von Literalen ist, F hat also die Form Wn Vmi F = ( i=1( j=1 Li,j )), mit Li,j wie eben. Beispiel DNF: (A ∧ B) ∨ (A ∧ C) ∨ (B ∧ ¬D) Beispiel KNF: (A ∨ B) ∧ (¬A ∨ ¬C) ∧ (B ∨ D) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 102 Logik: Die Wissenschaft vom Schließen Äquivalente Normalformen Satz 70. [Existenz äquivalenter Normalformen] Für jede Formel F gibt es eine äquivalente Formel in KNF und eine äquivalente Formel in DNF. Der Beweis funktioniert wieder mittels Induktion über den Formelaufbau und ist konstruktiv (für endliche Formeln), d.h. er liefert ein rekursives Verfahren, um Formeln in DNF bzw. KNF zu überführen. Wir schauen uns aber eine etwas direktere Umformungsmethode an (für sehr Neugierige: der Beweis findet sich z.B. auf den Seiten 27 und 28 der fünften Auflage von Uwe Schönings Buch Logik für Informatiker, 2000, Spektrum Verlag). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 103 Logik: Die Wissenschaft vom Schließen Eine Umformungsmethode zur Herstellung der KNF Gegeben: Eine Formel F. Erster Schritt: Ersetze in F jedes Vorkommen einer Teilformel der Bauart ¬¬G ¬(G ∧ H) ¬(G ∨ H) durch durch durch G (¬G ∨ ¬H) (¬G ∧ ¬H) bis keine derartige Teilformel mehr vorkommt. Zweiter Schritt: Ersetze jedes Vorkommen einer Teilformel der Bauart (F ∨ (G ∧ H)) ((F ∧ G) ∨ H) durch durch ((F ∨ G) ∧ (F ∨ H)) ((F ∨ H) ∧ (G ∨ H)) bis keine derartige Teilformel mehr vorkommt. Die resultierende Formel ist in KNF (es kommen eventuell noch überflüssige, aber zulässige Disjunktionen vor, die Tautologien sind). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 104 Logik: Die Wissenschaft vom Schließen Beispiel für eine Umformung in KNF Gegeben: F = ¬(A ∨ B) ∨ (¬C ∧ D). Umformung in KNF, 1. Schritt: ¬(A ∨ B) ersetzen: (¬A ∧ ¬B) ∨ (¬C ∧ D) = F 1. 2. Schritt: F 1 hat die Form G ∨ (¬C ∧ D) mit G = (¬A ∧ ¬B). Also läßt sich die erste Umformungsregel anwenden (die zweite Regel wäre auch anwendbar): F 2 = (G ∨ ¬C) ∧ (G ∨ D) = ((¬A ∧ ¬B) ∨ ¬C) ∧ ((¬A ∧ ¬B) ∨ D)). Die Anwendung der zweiten Regel auf beide Teile der top-level Konjunktion und Vereinfachung der Klammerung bringt das gewünschte Ergebnis: F 3 = (¬A ∨ ¬C) ∧ (¬B ∨ ¬C) ∧ (¬A ∨ D) ∧ (¬B ∨ D). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 105 Logik: Die Wissenschaft vom Schließen Ableiten von DNF/KNF aus einer Wahrheitstafel Ableiten einer DNF: Jede Zeile der Wahrheitstafel mit Wahrheitswert 1 wird zu einer Konjunktion. Jede atomare Aussage Ai, die in der Zeile mit einer 1 belegt ist, wird als Ai in die Konjunktion übernommen, die mit 0 belegten Ai werden zum Literal ¬Ai. Die Konjunktionen werden anschließend zu einer Disjunktion verknüpft. Ableiten einer KNF: Analog zu oben: Jede Zeile mit dem Wahrheitswert 0 wird zu einer Disjunktion. Jede atomare Aussage Ai, die mit einer 1 belegt ist, wird als ¬Ai in die Disjunktion übernommen, die mit 0 belegten Ai werden zum Literal Ai. Die Disjunktionen werden anschließend zu einer Konjunktion verknüpft. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 106 Logik: Die Wissenschaft vom Schließen Beispiel für KNF/DNF-Ableitung per Wahrheitstafel Beispiel: Eine (unbekannte) Formel F habe die Wahrheitstafel A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 1 0 0 0 1 1 0 0 Äquivalente Formel F D in DNF: (¬A ∧ ¬B ∧ ¬C) ∨ (A ∧ ¬B ∧ ¬C) ∨ (A ∧ ¬B ∧ C) Äquivalente Formel F K in KNF: (A ∨ B ∨ ¬C) ∧ (A ∨ ¬B ∨ C) ∧ (A ∨ ¬B ∨ ¬C) ∧ (¬A ∨ ¬B ∨ C) ∧ (¬A ∨ ¬B ∨ ¬C) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 107 Logik: Die Wissenschaft vom Schließen Kontrolle der DNF Frage: Sind Sie überzeugt, dass das stimmt? Wenn Ihnen das Vertrauen fehlt, kontrollieren Sie mittels Wahrheitstafel! Hier für F D : A 0 0 0 0 1 1 1 1 ¬A 1 1 1 1 0 0 0 0 B 0 0 1 1 0 0 1 1 ¬B 1 1 0 0 1 1 0 0 C 0 1 0 1 0 1 0 1 ¬C 1 0 1 0 1 0 1 0 F 1 0 0 0 1 1 0 0 ¬A ∧ ¬B ∧ ¬C A ∧ ¬B ∧ ¬C A ∧ ¬B ∧ C 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 Das ist unmittelbar einleuchtend: jede „wahre“ Zeile für F führt in der DNF-Formel zu einem erfüllten Disjunktionsglied, alle anderen Zeilen werden ignoriert. „Spannender“ ist dies bei der KNF-Formel (s. nächste Folie). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 108 FD 1 0 0 0 1 1 0 0 Logik: Die Wissenschaft vom Schließen Kontrolle der KNF A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 1 0 0 0 1 1 0 0 A ∨ B ∨ ¬C 1 0 1 1 1 1 1 1 A ∨ ¬B ∨ C 1 1 0 1 1 1 1 1 A ∨ ¬B ∨ ¬C 1 1 1 0 1 1 1 1 ¬A ∨ ¬B ∨ C 1 1 1 1 1 1 0 1 ¬A ∨ ¬B ∨ ¬C 1 1 1 1 1 1 1 0 Diese KNF führt zu einer 1, wenn alle Zeilen der Ausgangstabelle, die zu einer 0 führen, gleichzeitig nicht zu dieser 0 führen. So führt z.B. die Belegung A(A) = A(B) = 0, A(C) = 1 zu einer 0, also genau dann, wenn die Formel ¬A ∧¬B ∧ C erfüllt ist. Wir dürfen in der KNF also keine 1 produzieren, wenn dieser Fall (oder einer der vier anderen) eintritt, d.h. die Negation dieser Formel muss erfüllt sein (und die der anderen vier 0-Fälle). Die Negation ist eben ¬(¬A ∧ ¬B ∧ C) = ¬¬A ∨ ¬¬B ∨ ¬C = A ∨ B ∨ ¬C , unser erstes Konjunktionsglied! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 109 FK 1 0 0 0 1 1 0 0 Logik: Die Wissenschaft vom Schließen Hornformeln Definition 71. [Hornformeln] Eine Formel F ist eine Hornformel, falls F in KNF ist und jede Disjunktion in F höchstens ein positives Literal aufweist. Beispiel: Eine Hornformel ist F = (A ∨ ¬B) ∧ (¬C ∨ ¬A ∨ D) ∧ (¬A ∨ ¬B) ∧ D ∧ ¬E Das kann man anschaulicher als Konjunktion (oder Menge) von Implikationen darstellen (diese Form wollen wir die Implikationsform nennen, erlaubt sind nur Implikationen mit einer 0 oder einem/dem positiven Literal auf der rechten Seite der Implikation): F = (B → A) ∧ (C ∧ A → D) ∧ (A ∧ B → 0) ∧ (1 → D) ∧ (E → 0) Hier steht die 0 für eine beliebige unerfüllbare Formel, z.B. (A ∧ ¬A) und 1 für eine beliebige Tautologie, z.B. (A ∨ ¬A). Zudem lassen wir die Klammern um die inneren Konjunktionen weg (d.h., ∧ bindet stärker, als →). [Diese Schreibweisen werden wir uns ab jetzt generell gestatten!] c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 110 Logik: Die Wissenschaft vom Schließen Tests des Wahrheitsgehaltes von Formeln Wir suchen nach algorithmischen Tests auf Gültigkeit, Erfüllbarkeit, Unerfüllbarkeit einer gegebenen Formel (beachte: einen Test auf Gültigkeit von F kann man durch einen Unerfüllbarkeitstest von ¬F ersetzen und umgekehrt!). Die Erfüllbarkeit oder Unerfüllbarkeit von aussagenlogischen Formeln läßt sich immer überprüfen, aber i.A. nur mit großem Aufwand (s. Wahrheitstafeln). Für Hornformeln gibt es aber einen sehr effizienten Erfüllbarkeitstest! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 111 Logik: Die Wissenschaft vom Schließen Ein Erfüllbarkeitstest für Hornformeln Eingabe: eine Hornformel F in Implikationsform. Schritt 1: Markiere jedes Vorkommen einer atomaren Formel A in F , falls es in F eine Teilformel der Form (1 → A) gibt. Schritt 2: Tue das Folgende Falls es in F eine Teilformel G der Form (A1 ∧ · · · ∧ An → B), n ≥ 1, gibt und alle Ai, 1 ≤ i ≤ n bereits markiert sind und B noch nicht markiert ist, dann markiere B . Falls es in F eine Teilformel G der Form (A1 ∧ · · · ∧ An → 0), n ≥ 1, gibt und alle Ai, 1 ≤ i ≤ n bereits markiert sind, dann gib unerfüllbar aus und stoppe. bis es keine Formel der beiden Bauarten mehr gibt. Schritt 3: Gib erfüllbar aus und stoppe. Die Markierung gibt die erfüllende Belegung an: A(Ai) = 1 gdw. Ai hat eine Markierung (und 0 sonst). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 112 Logik: Die Wissenschaft vom Schließen Ist der Algorithmus korrekt? Satz 72. Der obige Markierungsalgorithmus ist für die vorgesehene Eingabe korrekt und stoppt immer nach spätenstens n Markierungsschritten (n = Anzahl der atomaren Formeln in der Eingabeformel). Beweisskizze: Zuerst zeigt man, dass der Algorithmus terminiert: es können höchstens n atomare Formeln markiert werden. Dann geht es um die Frage, ob der Algorithmus die richtige Antwort liefert: Wenn es überhaupt Modelle für F gibt, dann müssen sie die vom Algorithmus markierten atomaren Formeln mit 1 belegen (offensichtlich für 1 → Ai und, in der Konsequenz, dann auch für A1 ∧ · · · ∧ An → B , wenn A1 bis An bereits markiert sind). Hieraus folgt auch, dass der Algorithmus bei A1 ∧ · · · ∧ An → 0 und markierten Ai korrekterweise unerfüllbar ausgibt. Der gegebenenfalls folgende Schritt 3 antwortet dann korrekt mit einem Modell (alle Konjunktionsglieder von F müssen 1 sein): Sei G ein beliebige Disjunktion in F . Ist G eine atomare Formel, dann ist G markiert, also A(G) = 1. Hat G die Form c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 113 Logik: Die Wissenschaft vom Schließen A1 ∧ · · · ∧ An → B , so sind entweder alle atomaren Formeln markiert (inkl. B), und damit A(G) = 1, oder für mindestens ein j , 1 ≤ j ≤ n gilt A(Aj ) = 0. Auch dann folgt A(G) = 1. Weil in Schritt 2 nicht unerfüllbar ausgegeben wurde, gilt die Argumentation so auch für A1 ∧ · · · ∧ An → 0 (also A(G) = 1 und damit A(F ) = 1, denn alle denkbaren Varianten für Konjunktionsglieder führen zu einer 1). Anmerkung: Der Markierungsalgorithmus konstruiert das kleinste Modell A für F 0 (falls existent), d.h. für alle Modelle A und alle atomaren Formeln B gilt A(B) ≤ 0 A (B). [Beachte: 0 und 1 sind natürliche Zahlen und ≤ ist hier die ganz gewöhnliche Kleiner-Gleich-Relation über natürlichen Zahlen]. Beispiel (s. Übung): F = (¬A ∨ ¬B ∨ ¬D) ∧ ¬E ∧ (¬C ∨ A) ∧ C ∧ B ∧ (¬G ∨ D) ∧ G c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 114 Logik: Die Wissenschaft vom Schließen Erfüllbarkeitstest durch syntaktische Umformung: Resolution Die Resolution ist ein sogenannter Kalkül: eine Menge von rein mechanisch anwendbaren syntaktischen Umformungsregeln. Die Resolution generiert (wenn die nötigen Voraussetzungen erfüllt sind) in einem Schritt aus zwei Formeln eine dritte Formel. Sie soll die Frage nach der Unerfüllbarkeit einer gegebenen Formelmenge beantworten. Wichtige Fragen: Ist der Kalkül korrekt und vollständig? Korrektheit bedeutet, dass keine erfüllbare Formelmenge durch den Kalkül als unerfüllbar bezeichnet wird. Vollständigkeit bedeutet, dass jede unerfüllbare Formelmenge auch als solche erkannt wird. Zur Einnerung: Mittels eines Unerfüllbarkeitstest kann man z.B. testen, ob eine Formel F eine Tautologie ist, indem man ¬F auf Unerfüllbarkeit prüft. Oder man kann die Frage beantworten, ob eine Formel G aus einer Formelmenge {F1, F2, . . . , Fk } folgt – aus einer Übungsaufgabe wissen wir, dass dies der Frage nach der Unerfüllbarkeit von F1 ∧ F2 ∧ · · · ∧ Fk ∧ ¬G entspricht. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 115 Logik: Die Wissenschaft vom Schließen Details zur Resolution (I) Aufgabe: Prüfen, ob eine beliebige Formel F unerfüllbar ist. 0 Vorgehen: Zunächst muß aus F eine äquivalente Formel F in KNF erzeugt werden, also z.B. 0 F = (L1,1 ∨ · · · ∨ L1,n1 ) ∧ · · · ∧ (Lk,1 ∨ · · · ∨ Lk,nk ). Diese Formel wird nun in eine sogenannte Klauselform gebracht – sie wird als Menge von Klauseln wie folgt dargestellt F k = {{L1,1, . . . , L1,n1 }, . . . , {Lk,1, . . . , Lk,nk }}. Jedes Element von F k heißt Klausel und repräsentiert eine Disjunktion der enthaltenen Literale. Durch die Mengendarstellung verschwinden mehrfach auftretende Elemente und syntaktische Unterschiede, die sich aus Kommutativität, Assoziativität und Idempotenz ergeben würden (s. das folgende Beispiel). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 116 Logik: Die Wissenschaft vom Schließen Details zur Resolution (II) Beispiel: Die folgenden äquivalenten KNF-Formeln führen alle zur selben Darstellung in Klauselform, {{A3}, {A1, ¬A2}}: ((A1 ∨ ¬A2) ∧ (A3 ∨ A3)) (A3 ∧ (¬A2 ∨ A1)) (A3 ∧ ((¬A2 ∨ ¬A2) ∨ A1)) usw. 0 Unsere Begriffe wie Erfüllbarkeit etc. lassen sich unmittelbar von der Formel F auf die Klauselform übertragen. Beispielsweise ist A genau dann ein Modell für F k , 0 0 wenn es ein Modell für F (und damit für F ) ist. Weiter folgt z.B. für jede Formel F in 0 KNF und jedes Modell A von F , dass A auch ein Modell für jedes Konjunktionsglied von F ist – und damit auch ein Modell für jede Klausel in F k . Zur Vereinfachung bezeichnen wir die Klauselform einer Formel F ebenfalls mit F . c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 117 Logik: Die Wissenschaft vom Schließen Resolventen Definition 73. [Resolvent] Seien K1, K2 und R Klauseln. Dann heißt R Resolvent von K1 und K2, falls es ein Literal L gibt mit L ∈ K1 und L̄ ∈ K2 und R die folgende Form hat: R = (K1 − {L}) ∪ (K2 − {L̄}). ( Hierbei ist L̄ definiert als L̄ = ¬Ai, falls L = Ai Ai , falls L = ¬Ai. Sprechweise: R wird aus K1, K2 nach L resolviert. Die leere Menge, die als Resolvent zweier Klauseln K1 = {L}, K2 = {L̄} auftreten kann, wird mit bezeichnet. Tritt diese leere Menge als Element einer Klauselmenge auf, dann ist diese Menge (bzw. die durch sie repräsentierte Formel) unerfüllbar (wie wir gleich sehen werden). Wir werden auch als die leere Klausel bezeichnen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 118 Logik: Die Wissenschaft vom Schließen Das Resolutionslemma der Aussagenlogik Satz 74. [Resolutionslemma] Sei F eine Formel in KNF, dargestellt als Klauselmenge. Ferner sei R ein Resolvent zweier Klauseln K1 und K2 in F . Dann sind F und F ∪ {R} äquivalent. Beweis: Zu zeigen ist nun, dass jedes Modell für F auch Modell für F ∪ {R} ist und umgekehrt. Sei A eine zu F (und damit auch zu F ∪ {R} passende Belegung. Die Richtung A |= F ∪ {R} ⇒ A |= F ergibt sich unmittelbar, denn wenn A jede Klausel in F ∪ {R} erfüllt, dann erfüllt sie natürlich auch jede Klausel in F . Noch zu zeigen bleibt die Richtung A |= F ⇒ A |= F ∪ {R}. Wir nehmen also an, dass A |= F und damit auch A |= Ki für alle Klauseln Ki in F . Der Resolvent R habe die Form aus der Definition, d.h. R = (K1 − {L}) ∪ (K2 − {L̄}) mit K1, K2 ∈ F und L ∈ K1, L̄ ∈ K2. Nun müssen wir zwei Fälle unterc 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 119 Logik: Die Wissenschaft vom Schließen scheiden – entweder ist unter A das Literal L oder seine Negation L̄ erfüllt (beides zugleich geht natürlich nicht!) Fall 1: A |= L. Dann folgt wg. A |= K2 und A 6|= L̄, dass A |= K2 − {L̄} und damit A |= R (weil der Rest von K2, der wahr sein muß, natürlich auch die ganze Klausel R wahr macht, die ja für eine Disjunktion steht!) Fall 2: A 6|= L. Dann folgt wg. A |= K1, dass A |= K1 − {L} und damit A |= R (mit einer analogen Begründung zu oben). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 120 Logik: Die Wissenschaft vom Schließen Mengen von Resolventen Definition 75. Sei F eine Klauselmenge. Dann ist Res(F ) die Vereinigung von F mit den Resolventen, die man zu den Klauseln in F finden kann. Res(F ) ist definiert als Res(F ) = F ∪ {R|R ist Resolvent zweier Klauseln in F }. Außerdem setzen wir: Res0(F ) = F Resn+1(F ) = Res(Resn(F )) für n ≥ 0 und schließlich S Res∗(F ) = n≥0 Resn(F ). Die Mengen Res(F ), Res0(F ), . . . sind natürlich ebenfalls Klauselmengen. Übrigens: Für jede endliche Klauselmenge F kommt irgendwann der Punkt, an dem man keine neuen Resolventen mehr findet, d.h. es existiert ein (kleinstes) k ∈ N, so dass Res∗ = Resk (F ) = Resk+1(F ) = . . . . c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 121 Logik: Die Wissenschaft vom Schließen Resolution in der Aussagenlogik Satz 76. [Resolutionssatz der Aussagenlogik] Eine Klauselmenge F ist unerfüllbar genau dann, wenn ∈ Res∗(F ).8 Aus dem Resolutionssatz leitet sich der folgende Algorithmus ab, der für eine Formel F in KNF entscheidet, ob sie unerfüllbar ist: Eingabe: eine Formel F in KNF. Algorithmus: Bringe F in Klauselform. Wiederhole G := F F := Res(F ) bis ( ∈ F ) oder (F = G) Falls ( ∈ F ) dann gib „F ist unerfüllbar“ aus sonst gib „F ist erfüllbar“ aus 8 Der Beweis des Satzes ist konstruktiv und führt zu einem korrekten und vollständigen Verfahren, um die Unerfüllbarkeit von Klauselmengen zu untersuchen. Die Korrektheit zeigt man direkt, die Vollständigkeit mittels Induktion über die Anzahl der in F vorkommenden atomaren Formeln. Der Beweis ist nicht kompliziert, aber langwierig. Interessierte finden ihn auf Seite 41f in Schönings Logik für Informatiker, 5. Aufl., Spektrum. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 122 Logik: Die Wissenschaft vom Schließen Merke: Der Algorithmus kann in manchen Fällen sehr schnell zu einer Entscheidung führen, in anderen müssen erst exponentiell viele Klauseln erzeugt werden! Beachte: Falls F unerfüllbar ist, so wird irgendwann die leere Klausel erzeugt. An der sogenannten Herleitung dieser leerer Klausel waren möglicherweise wesentlich weniger Klauseln beteiligt, als von obigem Algorithmus erzeugt werden. Für einen Beweis der Unerfüllbarkeit einer Formel kann man sich auf diese Klauseln beschränken: Definition 77. [Deduktion/Herleitung/Beweis] Eine Deduktion (oder Herleitung oder Beweis) der leeren Klausel aus einer Klauselmenge F ist eine Folge K1, K2, . . . , Km von Klauseln mit folgenden Eigenschaften: Km ist die leere Klausel und für jedes i = 1, . . . , m gilt, dass Ki entweder Element von F ist oder aus gewissen Klauseln Ka, Kb mit a, b < i resolviert werden kann. Satz 78. Eine Klauselmenge F ist genau dann unerfüllbar, wenn eine Deduktion der leeren Klausel aus F existiert. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 123 Logik: Die Wissenschaft vom Schließen Merke: Um zu beweisen, dass eine Klauselmenge F unerfüllbar ist, genügt es, eine Herleitung der leeren Klausel anzugeben. Bei der Angabe einer solchen Herleitung sollte nicht nur die nackte Folge angegeben werden, sondern auch deutlich werden, welche Klauseln resolviert werden: Beispiel: F = {{A, B, ¬C}, {¬A}, {A, B, C}, {A, ¬B}}. F ist unerfüllbar, denn die leere Klausel kann man z.B. wie folgt herleiten: K1 K2 K3 K4 K5 K6 K7 = = = = = = = {A, B, ¬C} {A, B, C} {A, B} {A, ¬B} {A} {¬A} (Klausel aus F ) (Klausel aus F ) (Resolvent von K1, K2) (Klausel aus F ) (Resolvent von K3, K4) (Klausel aus F ) (Resolvent von K5, K6) Übrigens: es müssen nicht immer die beiden direkten Vorgänger in der Folge sein, die zu einem Resolventen führen, K9 könnte z.B. Resolvent von K4 und K8 sein. Es ist natürlich auch möglich, die graphische Darstellung aus der Vorlesung zu verwenden! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 124 Logik: Die Wissenschaft vom Schließen Mengenlehre und Logik: Das Klassenkalkül Manchmal reicht die Aussagenlogik nicht unmittelbar [s. Mitschrieb]. Alle folgenden Sätze sind aus rein logischen Gründen richtig. Sie lassen sich nicht sinnvoll so mit der Aussagenlogik formalisieren, dass man diese logisch begründete Allgemeingültigkeit anhand der entstehenden Aussagen erkennen könnte. Den Sätzen folgt jeweils eine Formalisierung im sogenannten Klassenkalkül, die den logischen Gehalt der Sätze korrekt wiedergibt (für welche einzelnen Eigenschaften bzw. Klassen welche Klassenbezeichnung steht, ergibt sich unmittelbar). “Wenn der Löwe ein Raubtier ist und wenn Raubtiere Fleisch fressen, so frißt der Löwe Fleisch” (α ⊆ β) ∧ (β ⊆ γ) → (α ⊆ γ). Hier steht z.B. α für die Klasse der Löwen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 125 Logik: Die Wissenschaft vom Schließen “Wenn die ungeraden Primzahlen alle natürlichen Zahlen umfassen und wenn eine ungerade Zahl eine natürliche Zahl ist und wenn eine Primzahl eine natürliche Zahl ist, so umfassen die ungeraden Zahlen alle natürlichen Zahlen umfassen die Primzahlen alle natürlichen Zahlen” (γ ⊆ α ∩ β) ∧ (α ⊆ γ) ∧ (β ⊆ γ) → (γ ⊆ α) ∧ (γ ⊆ β). Hier stehen α für die Klasse der ungeraden Zahlen, β für die Klasse der Primzahlen und γ für die Klasse der natürlichen Zahlen. “Tiere, die nicht im Wasser leben, sind Tiere, die kein Fleisch fressen, oder Fleischfresser, die nicht im Wasser leben” (α ∩ β) ⊆ (α ∩ γ) ∪ (γ ∩ β). Hier steht z.B. β für die Klasse der im Wasser lebenden Wesen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 126 Logik: Die Wissenschaft vom Schließen Formalisierung des Klassenkalküls Einzelne Klassen werden durch kleine griechische Buchstaben, z.B. α, β, γ , bezeichnet. Anstelle von Aussagenvariablen verwenden wir nun Klassenvariablen a,b,c,. . . .9 Definition 79. [Klassenterme] 1. Klassenvariablen sind Klassenterme. 2. Ist a ein Klassenterm, dann ist a ein Klassenterm (das drückt das Komplement einer Klasse aus, also alle Gegenstände aus der Allklasse, s. unten, die nicht in a liegen) 3. Sind a und b Klassenterme, so sind auch (a ∪ b) und (a ∩ b) Klassenterme. 4. Ein Klassenterm ist nur das, was sich durch eine endliche Anwendung der 3 obigen Regeln ergibt. 9 In der Sprechweise von Hilbert und Ackermann, Grundzüge der theoretischen Logik, Springer, 6. Aufl., 1972, die wir hier verwenden, entsprechen Klassen im wesentlichen unseren Mengen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 127 Logik: Die Wissenschaft vom Schließen Wir lassen in der Regel die Klammern dann weg, wenn sie nicht nötig sind, um den zusammengehörenden Teilterm zu erkennen, insbesondere dann, wenn der Teilterm negiert ist. Beispiel: Klassenterme sind also a, b, a ∪ b ∩ c, (a ∪ b) ∩ c usw. Achtung: Klassenterme bestehen aus den Operatoren, Klammern und “normalen” Buchstaben. Wenn wir über Klassenterme reden, dann verwenden wir den anderen Zeichensatz, also a, b, c usw. Allklasse – beachten Sie: Wir haben jetzt das Komplement a einer Klasse a ohne Bezug zu einer bestimmten Klasse d ⊇ a eingeführt. Wir denken uns aber einen solchen Bezug jeweils als gegeben, diesen nennen wir die Allklasse. Es gilt für jede Klasse a, dass a ∪ a die Allklasse ist und dass a ∩ a die Nullklasse (= leere Klasse bzw. Menge) ist. Wenn wir in einem Ausdruck (den wir gleich definieren werden) ein, zwei oder mehr Komplemente verwenden, dann denken wir uns immer einen Bezug zu ein und derselben Allklasse. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 128 Logik: Die Wissenschaft vom Schließen Ausdrücke des Klassenkalküls Definition 80. [Ausdrücke des Klassenkalküls] 1. Sind a und b Klassenterme, so sind a = b und a ⊆ b Ausdrücke. 2. Ist A ein Ausdruck, dann ist ¬A ein Ausdruck. 3. Sind A und B Ausdrücke, so sind auch (A ∧ B), (A ∨ B), (A → B) und (A ↔ B) Ausdrücke. 4. Ein Ausdruck ist nur das, was sich durch eine endliche Anwendung der 3 obigen Regeln aus Klassentermen ergibt. Beispiel: Ausdrücke sind also (a = b ∪ b) ∨ (b ∪ b ⊆ a), (a = b → a ∪ c = b ∪ c) usw. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 129 Logik: Die Wissenschaft vom Schließen Erfüllbarkeit und Gültigkeit Idee: Ein Ausdruck soll allgemeingültig (oder einfach: gültig) sein, falls er jedesmal in eine wahre Aussage übergeht, wenn die Klassenvariablen durch beliebige spezielle Klassen ersetzt werden. Hier spielt aber die Größe der Klassen, die eingesetzt werden, eine Rolle! Beispiel: Nehmen wir einen Individuenbereich (=Allklasse), der nur ein Element enthält und untersuchen wir den Ausdruck (a = a ∪ a) ∨ (a = a ∩ a). Aus einem Individuenbereich mit nur einem Element können wir nur die Allklasse (bezeichnet durch 1) und die Nullklasse (bezeichnet durch 0) bilden. Belegen wir nun a mit 1, so erhalten wir (1 = 1 ∪ 1) ∨ (1 = 1 ∩ 1). Nun ist natürlich 1 = 0, also (1 = 1 ∪ 0) ∨ (1 = 1 ∩ 0). Es gilt klarerweise 0 ∪ 1 = 1 und 1 ∩ 0 = 0, also ist der erste Klassenterm erfüllt. Ebenso erfüllt eine Belegung von a mit 0 den Ausdruck, und zwar diesmal den zweiten Term (wie sie leicht nachvollziehen können). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 130 Logik: Die Wissenschaft vom Schließen Der Ausdruck ist also erfüllt bei Ersetzung mit beliebigen Klassen, die im gegebenen Individuenbereich gebildet werden können, d.h. er ist gültig in diesem Individuenbereich. 1-gültig: Da der Individuenbereich genau ein Element hat, nennen wir den Ausdruck auch 1-gültig. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 131 Logik: Die Wissenschaft vom Schließen 1-Gültigkeit Verfahren zum Feststellen von 1-Gültigkeit: Alle Klassenvariablen werden in beliebiger Weise durch 0 bzw. 1 ersetzt (natürlich so, dass jedes Vorkommen einer Variable durch den selben Wert ersetzt wird). Nun werden alle Operatoren nach und nach entfernt: ersetze 0 durch 1, 1 durch 0, 0 ∪ 0, 0 ∩ 1, 1 ∩ 0, 0 ∩ 0 durch 0 und 1 ∪ 1, 1 ∩ 1, 0 ∪ 1, 1 ∪ 0 durch 1. Es bleiben nur noch Elementaraussagen der Form 0 = 0, 1 = 1, 0 ⊆ 0, 0 ⊆ 1, 1 ⊆ 1 (die sind alle wahr) und 1 ⊆ 0, 0 = 1, 1 = 0 (die sind alle falsch) übrig. Wenn für jede mögliche Belegung der Klassenvariablen durch Klassen nur wahre Aussagen entstehen, dann ist der Ausdruck 1-gültig, wenn wenigstens für eine Belegung eine wahre Aussage entsteht, dann ist er 1-erfüllbar, sonst ist er 1-unerfüllbar. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 132 Logik: Die Wissenschaft vom Schließen Gültigkeit Der Ausdruck (a = a ∪ a) ∨ (a = a ∩ a) ist 1-gültig. Gilt er aber auch in einem anderen (sprich: größeren) Individuenbereich? Nein! Sei α eine Klasse, die sowohl von der Nullklasse, als auch von der Allklasse verschieden ist. Eine solche Klasse existiert in jedem Individuenbereich, der mehr als ein Element hat. Dann ist α sowohl von der Nullklasse (also α ∩ α) als auch von der Allklasse (also α ∪ α) verschieden, d.h. der Ausdruck ist dann nicht erfüllt! Insgesamt nennen wir den Ausdruck daher nicht allgemeingültig. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 133 Logik: Die Wissenschaft vom Schließen Äquivalenz Wenn A ↔ B allgemeingültig ist, dann gilt A ≡ B (die beiden Ausdrück sind also äquivalent). Es gilt: 1. a ⊆ b ≡ a ∪ b = b ∪ b 2. a = b ≡ (a ⊆ b) ∧ (b ⊆ a) 3. (a = b ∪ b) ∧ (c = d ∪ d) ≡ (a ∩ c = d ∪ d) 4. a = a, a ∪ b = a ∩ b, a ∩ b = a ∪ b c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 134 Logik: Die Wissenschaft vom Schließen Allgemeingültigkeit von Ausdrücken Erläuterung zum Vorgehen: Mit den Ausdrücken des Klassenkalküls können wir mengenalgebraische Aussagen auf ihre Gültigkeit untersuchen. Doch zunächst müssen wir untersuchen, wann Ausdrücke des Klassenkalküls allgemeingültig sind. Hierzu führen wir die Frage der Allgemeingültigkeit auf Fragen nach der 1-Gültigkeit zurück. Wir zeigen zunächst, wie jede mögliche Form von Disjunktionen von einfachen Ausdrücken und negierten einfachen Ausdrücken auf Gültigkeit untersucht werden kann – und dann sind wir auch bereits fertig, denn wir können jeden beliebigen Ausdruck des Klassenkalküls in eine konjunktive Normalform bringen, in der jedes Konjunktionsglied eine Disjunktionen einfacher Ausdrücke (die auch negiert auftreten können) ist. Die Gültigkeit dieser Konjunktion ergibt sich natürlich genau dann, wenn jede Disjunktion (also jedes Konjunktionsglied) gültig ist. Genaueres hierzu s. Punkt 7 weiter unten. Es werden folgende Formen untersucht: einfache (positive) Ausdrücke; negierte einfache Ausdrücke; eine Disjunktion negierter einfacher Ausdrücke; Disjunktionen mit keinem, einem oder mehreren negierten einfachen Ausdrücken und einem positiven c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 135 Logik: Die Wissenschaft vom Schließen einfachen Ausdruck; und zuletzt Ausdrücke mit keinem, einem, oder mehreren negierten einfachen Ausdrücken und mehr als einem positiven Ausdruck. Nur die Gültigkeit dieser letzten Form läßt sich nicht durch Ersetzung (zur Ersetzung s. Punkt 1 unten) direkt auf 1-Gültigkeit zurückführen. Achten Sie auf die Analogie zu Hornformeln, nur die letzte (problematische) Disjunktionsform ist nicht “horn” und erfordert mehr Aufwand! 1. Ein (einfacher positiver) Ausdruck der Form a = b oder a ⊆ b ist allgemeingültig genau dann, wenn er 1-gültig ist. Wichtiger Hinweis: Die 1-Gültigkeit eines Ausdrucks im Klassenkalkül kann man überprüfen, indem man folgende Ersetzungen vornimmt: ∪ durch ∨, ∩ durch ∧, ¯ durch ¬, ⊆ durch ←, und = durch ↔. und dann die Gültigkeit der resultierenden aussagenlogischen Formel überprüft (man kann wahr und falsch mit 1 und 0, also wie oben mit der Allklasse und der Nullklasse identifizieren, und jeweils zeigen, dass die Ersetzungen den Wahrheitsgehalt nicht ändern). [Die einzelnen Beweise schenken wir uns, sie sind teilweise länglich, aber nicht so fürchterlich spannend.] 2. Ein (einfacher negativer) Ausdruck der Form ¬(a = b) oder ¬(a ⊆ b) ist allgemeingültig genau dann, wenn er 1-gültig ist. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 136 Logik: Die Wissenschaft vom Schließen 3. Ein Ausdruck der Form ¬A1 ∨ · · · ∨ ¬An, wobei jedes Ai die Form a = b oder a ⊆ b hat, ist genau dann allgemeingültig, wenn er 1-gültig ist. 4. Ein Ausdruck der Form ¬A ∨ B, wobei A und B die Form a = b oder a ⊆ b haben, ist genau dann allgemeingültig, wenn er 1-gültig ist. 5. Ein Ausdruck der Form ¬A1 ∨ · · · ∨ ¬An ∨B, wobei jedes Ai und B die Form a = b oder a ⊆ b hat, ist genau dann allgemeingültig, wenn er 1-gültig ist. 6. Ein Ausdruck der Form ¬B1 ∨ · · · ∨ ¬Bm ∨A1 ∨ · · · ∨ An , n ≥ 2, wobei jedes Bi und jedes Aj die Form a = b oder a ⊆ b hat, ist dann und nur dann allgemeingültig, wenn wenigstens einer der Ausdrücke ¬B1 ∨ · · · ∨ ¬Bm ∨A1, . . . , ¬B1 ∨ · · · ∨ ¬Bm ∨An allgemeingültig ist (also 1-gültig, s. den Fall unmittelbar oben). Hinweis: Dies ist der einzige Fall, in dem wir nicht direkt von der Nicht-1Gültigkeit (also der Nichtgültigkeit der aussagenlogischen Umschreibung) auf die Nichtgültigkeit des Ausdrucks im Klassenkalkül schließen können. 7. Gegeben sei nun ein beliebiger Ausdruck des Klassenkalküls. Jeder Ausdruck besteht aus einfachen Ausdrücken der Form a = b oder a ⊆ b , die durch die Aussagenverknüpfungen verbunden bzw. negiert sind. Um die konjunktive Normalform bzgl. der einfachen Ausdrücke zu erhalten, ersetzen wir zunächst die Verbindungen der Form →, ↔ zwischen den einfachen Ausdrücken in der bec 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 137 Logik: Die Wissenschaft vom Schließen kannten Weise und bilden dann mit dem bekannten Umformungsverfahren eine konjunktive Normalform (hierbei betrachten wir die einfachen Ausdrücke als unveränderliche, atomare Bestandteile der zusammengesetzten Ausdrücke). Es entsteht ein Ausdruck der Form C1 ∧ · · · ∧ Cn. Jedes Ci ist von einer der Formen, die unter 1.-6. behandelt wurde. Der gesamte Ausdruck ist dann und nur dann allgemeingültig, wenn jedes Ci allgemeingültig ist. Wann das der Fall ist, haben wir bereits unter 1.-6. untersucht. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 138 Logik: Die Wissenschaft vom Schließen Anwenden des Klassenkalküls [Weitere Beispiele s. auch Mitschrieb] 1. (a = a ∪ a) ∨ (a = a ∩ a) ist nach 6. genau dann gültig, wenn mindestens einer der einfachen Ausdrücke (a = a ∪ a) bzw. (a = a ∩ a) gültig ist. Das ist nach 1. genau dann der Fall, wenn einer der beiden Ausdrücke 1-gültig ist. Das ist aber nicht gegeben (für je eine der beiden möglichen Belegungen für a, nämlich 1 oder 0, ist einer der Ausdrücke nicht erfüllt), also ist der Gesamtausdruck nicht gültig (aber 1-gültig, wie wir schon gezeigt haben – hier liegt also ein Fall vor, in dem eine direkte Ersetzung durch Aussagenlogik nicht zu einem richigen Resultat führen würde – probieren Sie es z.B. mit einem Individuenbereich mit 2 Elementen!) 2. Wir haben in einem der einleitenden Beispielen (zu den Löwen) gefragt, ob (α ⊆ β) ∧ (β ⊆ γ) → (α ⊆ γ) (also für spezielle Klassen α, β , γ ) aus rein logischen Gründen richtig ist. Das wäre der Fall, wenn (a ⊆ b) ∧ (b ⊆ c) → (a ⊆ c) allgemeingültig sein sollte. Das ist in der Tat der Fall: durch Umwandlung in KNF erkennt man, dass die c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 139 Logik: Die Wissenschaft vom Schließen Formel vom Typ 5 ist, also direkt auf 1-Gültigkeit untersucht werden kann. Das können wir auch durch Umformung in Aussagenlogik tun (unter 1 haben wir das Ersetzung genannt): ((A → B) ∧ (B → C)) → (A → C), und dies ist eine Tautologie (kontrollieren Sie!), also ist die Aussage tatsächlich aus rein logischen Gründen wahr! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 140 Logik: Die Wissenschaft vom Schließen Zusammenfassung zum Klassenkalkül Mit dem Klassenkalkül können wir Fragen der Mengenlehre sehr präzise formulieren! Und wir können sie ebenso präzise mit den Instrumenten der Aussagenlogik beantworten! • Ausdrücke des Klassenkalkül bestehen aus einfachen Ausdrücken, die mit aussagenlogischen Operatoren verbunden werden. • Einfache Ausdrücke bestehen aus zwei Klassentermen, die mit = oder ⊆ zu einander in Bezug gesetzt werden. • Einfache Ausdrücke können auch negiert auftreten, dann steht ein ¬ vor dem einfachen Ausdruck. • Klassenterme bestehen aus mengenalgebraischen Operatoren und Klassenvariablen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 141 Logik: Die Wissenschaft vom Schließen Wie beantworten wir mengen-algebraische Fragestellungen? Beispielaufgabe aus einer Klausur: Seien a, b, c nicht-leere Mengen. Dann gilt c − (a − b) = c genau dann, wenn c ∩ a ⊆ b. 1. Übersetzen der beiden mengenalgebraischen Formeln in einfache Ausdrücke: (a) Klassenvariablen a, b, c. (b) Terme a1 = c ∩ a ∩ b, a2 = c, b1 = c ∩ a, b2 = b 2. Einfacher Ausdruck A := a1 = a2 := c ∩ a ∩ b = c 3. Einfacher Ausdruck B := b1 ⊆ b2 := c ∩ a ⊆ b 4. Das Genau-Dann-Wenn übersetzen wir natürlich als Äquivalenz der beiden Ausdrücke. Die gesamte Behauptung als Ausdruck: A ↔ B := c ∩ a ∩ b = c ↔ c ∩ a ⊆ b c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 142 Logik: Die Wissenschaft vom Schließen 5. Jetzt bringen wir den Ausdruck in konjunktive Normalform (in Bezug auf die einfachen Ausdrücke). A ↔ B ≡ (A → B) ∧ (A ← B) ≡ (¬A ∨ B) ∧ (A ∨ ¬B) 6. Beide Disjunktionen sind von der 4. Form, die oben betrachtet wurde. Sie sind also beide genau dann allgemeingültig, wenn sie 1-gültig sind. Wir können Sie also einzeln (sie müssen beide gültig sein) oder in diesem Fall auch als Gesamtausdruck in Aussagenlogik überführen und auf aussagenlogische Gültigkeit untersuchen: 7. Gesamtausdruck: c ∩ a ∩ b = c → c ∩ a ⊆ b ∧ c ∩ a ∩ b = c ← c ∩ a ⊆ b, umgesetzt in Aussagenlogik: (((c ∧ ¬(a ∧ ¬b)) ↔ c) → ((c ∧ a) → b)) ∧ (((c ∧ ¬(a ∧ ¬b)) ↔ c) ← ((c ∧ a) → b)) 8. Wir hätten auch unmittelbar die nicht-aufgelöste Form des Gesamtausdrucks in Aussagenlogik überführen können (weil die Disjunktionen harmlos sind): ((c ∧ ¬(a ∧ ¬b)) ↔ c) ↔ ((c ∧ a) → b) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 143 Logik: Die Wissenschaft vom Schließen 9. Beide Formen können wir nun auf Gültigkeit untersuchen, entweder, indem wir eine Wahrheitstafel verwenden oder die Negation auf Unerfüllbarkeit prüfen (mit Resolution, oder wenn die negierte Formel horn ist, dann auch mit dem Markierungsalgorithmus). 4. a b c ((c ∧ 0 0 0 0 0 0 1 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 1 0 1 1 1 1 1 1 3. 2. 1. 5. 6. 1. 2. ¬ (a ∧ ¬ b)) ↔ c) ↔ ((c ∧ a) → b) 1 0 1 1 1 0 1 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 0 1 1 0 0 1 1 0 1 1 0 0 1 1 1 1 10. Es folgt die Gültigkeit der Behauptung. Man kann das deutlich abkürzen, wenn man gleich erkennt (und glaubhaft macht), dass die konjunktive Normalform des Gesamtausdrucks keine Disjunktionen der 6. Form enthält. Dann kann man direkt zur Aussagenlogik übergehen (so, wie unter 8.). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 144 Logik: Die Wissenschaft vom Schließen Logik und Beweise • Logische Schlüße sind die Grundlage aller Wissenschaften (auch, wenn man das vielleicht nicht immer bei jeder Wissenschaft gleich merkt...) • Beweise sind nichts anderes, als das Anwenden logischer Schlüße. Einige Beweistypen: 1. Wenn Sie wüßten, dass “Wenn A dann B ” eine gültige Aussage ist und außerdem A gilt, dann könnten Sie auf die Gültigkeit von B schließen (Schlußweise: Modus ponens). Beweisen müssen sie also die “Wenn-Dann”-Regel, z.B. in dem sie sich jeden möglichen Fall, der auftreten kann, anschauen (direkter Beweis). Manchmal ist das leichter möglich für eine Umformulierung der Regel: 2. Wieder gelte “Wenn A, dann B ”. Das können wir wie folgt umschreiben: A → B ≡ ¬A ∨ B ≡ ¬¬(¬A ∨ B) ≡ ¬(A ∧ ¬B) ≡ ¬A ∨ ¬¬B ≡ ¬¬B ∨ ¬A ≡ ¬B → ¬A. Die letzte Form können wir dann für einen Schluß nutzen: Wenn ¬B und ¬B → ¬A gelten, dann gilt auch ¬A. Wenn es uns nun gelingt, zu zeigen, dass die Regel ¬B → ¬A gilt, dann c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 145 Logik: Die Wissenschaft vom Schließen haben wir damit auch bewiesen, dass die Regel A → B gilt! 3. Wir können auch zeigen, dass die Negation der Regel unerfüllbar ist, also ¬(A → B) ≡ ¬(¬A ∨ B) ≡ A ∧ ¬B immer zu einem Widerspruch führt (dann muß die Ausgangsregel selbst eine Tautologie sein). Auch das ist manchmal leichter, als ein direkter Beweis der Folgerung A → B . Als weitere Beweistechniken haben wir Induktionsbeweise und Diagonalisierung kennengelernt. Beide Beweistypen folgen natürlich auch logischen Prinzipien, bei der Induktion können sie das nachvollziehen am Beweis des Induktionsprinzip selbst, den sie gegen Ende des Mengenlehre-Kapitels finden. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 146 Logik: Die Wissenschaft vom Schließen Was kann das Klassenkalkül nicht? (1) Versuchen Sie, den folgenden Satz mit dem Klassenkalkül zu formulieren: “Wenn es einen Präsidenten aller Vereine einer Stadt gibt, dann hat jeder Verein der Stadt einen Präsidenten”. Dieser Schluß ist mit Sicherheit “aus rein logischen Gründen richtig” (vgl. Hilbert/Ackermann) – man erkennt den logischen Charakter des Satzes daran, dass der Inhalt der Begriffe “Präsident” und “Verein der Stadt” für die Richtigkeit des Satzes unerheblich ist. Das können wir mit dem Klassenkalkül nicht formalisieren – es geht nicht um Eigenschaften von Dingen (die eine Klassifizierung erlauben würden), sondern um eine Beziehung zwischen mehreren Dingen: • Der Begriff “Präsident” enthält eine solche Beziehung, nämlich zwischen einer Person und einem Verein. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 147 Logik: Die Wissenschaft vom Schließen Was kann das Klassenkalkül nicht? (2) Betrachten wir auch noch den folgenden Satz der elementaren Geometrie: “Wenn y zwischen x und z liegt, dann liegt y auch zwischen z und x” (hier sind A,B,C beliebige Punkte auf einer Geraden). [Aussagen] Aussagenlogisch könnte man versuchen, das mit zwei Aussagenvariablen beschreiben: A → B , mit A = “y zwischen x und z”, B = “y zwischen z und x”. Aus der Formalisierung A → B kann man aber die Generalität des Satzes nicht erkennen! [Eigenschaften] Mit dem Klassenkalkül könnten wir den Satz als α ⊆ β für die Eigenschaften α = “zwischen x und z liegen” und β = “zwischen y und x liegen” formalisieren. Aber auch jetzt ist die behauptete allgemeine Symmetrie für beliebige Punkte auf fest gewählten, aber ebenfalls beliebigen Geraden nicht erkennbar – wir haben die Symmetrie nur für fest gewählte x und z auf einer bestimmten Geraden formuliert! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 148 Logik: Die Wissenschaft vom Schließen Was kann das Klassenkalkül nicht? (3) [Gegenstände, Eigenschaften und Beziehungen] Prädikatenlogisch könnte das so aussehen: ∀x, y, z(zwischen(y, x, z) → zwischen(y, z, x)) (gegebenenfalls erweitert um Informationen zur Zugehörigkeit von Punkten zu Geraden etc.). Hier ist zwischen(a, b, c) ein Prädikat, dass für eine Beziehung zwischen drei Punkten a, b, c steht und besagt, dass a zwischen b und c liegt. ∀ ist ein Quantor, der besagt, dass die Aussage für alle x, y, z gilt, die zwischen(y, x, z) erfüllen. Ein weiteres Beispiel für eine solche Symmetrieeigenschaft ist die “Vater-vonKind/Kind-von-Mann”-Beziehung, in der jeweils die eine Beziehung die Inverse der anderen Beziehung ist. Auch dies läßt sich nicht mit dem Klassenkalkül formalisieren. (Denken Sie auch unsere Aussagen vom ersten Übungsblatt zu grünhaarigen Marsianern!) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 149 Logik: Die Wissenschaft vom Schließen Prädikatenlogik 1. Ordnung Diese Sachverhalte kann man mit Hilfe der Prädikatenlogik 1. Ordnung (First order logic) formulieren. Beispiele hierzu haben sie bereits auf dem ersten Übungsblatt gesehen. Wir werden das in dieser Veranstaltung nicht weiter vertiefen. Bei der Prädikatenlogik kommen zu möglichen Effizienzproblemen noch Entscheidbarkeitsprobleme hinzu (s. Vorlesung zu Turing etc.). Sie ist aber die Grundlage für viele Anwendungen der Logik. Auch hier gibt es Unterklassen von eingeschränkter Ausdrucksmächtigkeit, die sich aber leichter (entscheidbar!) auswerten lassen (Hornformeln, also Wenn-Dann-Regeln; Description Logik, eine Erweiterung des Klassenkalküls). Ebenso gibt es auch Erweiterungen, die sich manchmal wieder auf Prädikatenlogik 1. Ordnung abbilden lassen (manche Modallogik), manchmal aber auch echte Erweiterungen sind und Prädiktenlogik höherer Ordnung erfordern (Quantifikation über Relationen, nicht nur über Elementen). Beispiele hierfür sind manche Logiken, die mit Zeit und Aktionen umgehen können (Situation Calculus). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 150 Logik: Die Wissenschaft vom Schließen Wichtige Anwendungsgebiete für Logik • Schaltungsentwurf/Bool’sche Funktionen • Expertensysteme (Regelsysteme, Logikprogrammierung/Prolog, Wissenserhebung, Wissensrepräsentation), Quellen: – Einführendes zu Expertensysteme z.B. hier, suchen Sie auch mit Google. – Freie und gute Prolog-Implementierung von Jan Wielemakers, U Amsterdam: SWI-Prolog. – Sehr schönes Buch von zwei wichtigen Wissenschaftlern zu Wissenrepräsentation: Brachman, Levesque – Knowledge Representation and Reasoning, Morgan Kaufman, 2004. • Deduktive Datenbanken (Datalog, Logikbasierte Abragesprachen), Quellen: – Ein Übersichtsartikel zu deduktiven Datenbanksprachen von 1999: http: //www.scs.carleton.ca/~mengchi/papers/ddb-CS99.pdf mit Angaben zu weiterer Literatur. – Mit einer Google-Suche zu deduktiven Datenbanken finden Sie auch diverse “einschlägige” deutsche Lehrveranstaltungen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 151 Logik: Die Wissenschaft vom Schließen • Semantic Web (Internet/XML + Bedeutung mit RDF, OWL; Intelligentes, MetaDaten-basiertes Suchen; Finden und Verbinden von Web Services; etc.), Quellen: – Ein einführender Artikel aus dem Scientific American von Tim Berners-Lee, dem Vater des WWW, und anderen. – Ein Link zur Semantic-Web-Activity des W3C (die wichtigste, “unabhängige” Institution zur Weiterentwicklung von WWW-Standards, wie z.B. XML, XMLSchema, XHTML, RDF, OWL, WebServices/WSDL. Eine weitere wichtige Standardisierungsorganisation rund um’s Web ist die OASIS – und natürlich die IETF, über die die RFCs abgewickelt werden, z.B. zum EMail-Format (RFC 822), zum SMTP – Simple Mail Transfer Protocol, zum HTTP – Hypertext Transfer Protocol 1.1 etc. • (Ausführbare) Spezifikation von reaktiven Systemen mit logik (TLA+ von Lamport; Situation Calculus/GOLOG von Reiter und anderen, spielt mittlerweile auch eine Rolle bei der semantischen Spezifikation von Web Services mit OWL-S, s. auch Semantic Web), Quellen: – Leslie Lamports Buch zu TLA/TLA+, online, frei verfügbar. – Ray Reiters Buch Knowledge in Action, leider nicht frei verfügbar. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 152 Logik: Die Wissenschaft vom Schließen Exkurs: Relationale Datenbanken Ein Datenbankmanagementsystem (DBMS) hat10 • die Fähigkeit, persistente (d.h. dauerhaft abgelegte) Daten zu verwalten und • die Fähigkeit, auf große Mengen von Daten effizient zuzugreifen. 10 Wir folgen in der Darstellung einem sehr schönen, aber nicht mehr ganz aktuellen Buch von Jeffrey D. Ullman (Stanford U.): Principles of Database- and Knowledge-Base Systems, 1988. Sie finden in der Bibliothek aber in jedem Buch zu Datenbanken etwas über das relaltionale Datenbankmodell, Relationale Algebra und SQL, wenn sie später weitere Details interessieren sollten. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 153 Relationale Algebra/SQL Exkurs: Relationale Datenbanken Weiter wichtige Fähigkeit von DBMS sind: • Unterstützung wenigsten eines Datenmodells (eine mathematischen Abstraktion, die der User nutzen kann, um mit den Daten umzugehen, s. unten). • Unterstüzung bestimmter Hochsprachen zum Definition der Strukuren der Daten, zum Zugriff auf Daten und zur Manipulation von Daten. • Transaktions-Management, d.h. die Fähigkeit, korrekten konkurrierenden parallelen Zugriff vieler Nutzer gleichzeitig zu ermöglichen. • Zugriffskontrolle, d.h. die Fähigkeit, den Zugang zu Daten einzuschränken für unzureichend autorisierte Nutzer und die Validität von Daten zu prüfen. • Resiliency, d.h. die Fähigkeit, sich von Systemfehlern bzw. Crashes zu erholen ohne Daten zu verlieren. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 154 Relationale Algebra/SQL Exkurs: Relationale Datenbanken Datenmodelle: Ein Datenmodell ist ein zweiteiliger mathematischer Formalismus, der 1. eine Notation zum Beschreiben von Daten beinhaltet und 2. eine Menge von Operationen bereitstellt, um diese Daten zu manipulieren. Zum abstakten Modellieren von Datenbank-Inhalten ist das von Chen entwickelte Entity-Relationship-Modell sehr hilfreich. Dieses kann man mehr oder weniger präzise auch ins relationale Modell nach Codd (1970) abbilden, das als Basis für viele Implementierungen von DBMS (sogenannte relationale Datenbanken) diente (und dient). Das relationale Datenmodell ist nichts als angewandte Mengenlehre plus ein wenig Logik ... c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 155 Relationale Algebra/SQL Exkurs: Relationale Datenbanken • Ausgangspunkt sind einfache Mengen, die Wertebereiche angeben, sogenannte Domains. • Domains sind z.B. integer, string, String der Länge 20, die Menge {0, 1} usw. • Wenn wir Domains D1,. . . ,Dk haben, dann können wir dazu das Kreuzprodukt bilden: D1 × · · · × Dk . • Eine Relation im Sinne des relationalen Datenmodells ist nun unsere übliche Relation, also eine beliebige Teilmenge des Cartesischen Produkts der Domains. • Die Stelligkeit (arity, degree) der Relationen zum obigen Kreuzprodukt ist k. • Elemente der Relation sind k-Tupel der Form (v1, . . . , vk ), manchmal auch als v1v2 · · · vk geschrieben. Ein solches Tupel hat k Komponenten, die i-te Komponente ist vi. • Man kann sich die Relation gut als Tabelle vorstellen. • Die Spalten der Tabelle (also die Positionen im Tupel der Relation) werden in aller Regel benannt, diese Namen nennt man auch Attribute, die Menge der Attribute zu einer Relation nennen wir Schema. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 156 Relationale Algebra/SQL • Sei REL eine k-stellige Relation mit den Attributen A1,. . . ,Ak . Dann schreiben wir das Schema als REL(A1, . . . , Ak ). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 157 Relationale Algebra/SQL Operatoren der relationalen Algebra [s. Mitschrieb] Schnitt, Vereinigung, Kartesisches Produkt, Projektion, Selektion. Aus diesen elementaren Operatoren können wir weitere Operatoren definieren, z.B. den sogenannten Quotienten. Wichtig für uns sind die Joins: Join bzw. Theta-Join R ./iθj S = σ$iθ$(r+j)(R×S). Hier ist θ ein (arithmetischer) Vergleichsoperator und r die Stelligkeit von R. Natural Join R ./ S = πi1,i2,...,im σR.A1=S.A1∧···∧R.Ak =S.Ak (R × S). Ai sind hier die Attribute, die in R und in S vorkommen, unterschieden jeweils durch das Präfix Relationsname. und i1 bis im sind alle Attribute aus R × S ohne die Attribute S.A1 bis S.Ak (d.h. m = r + s − k). Semijoin R semijoin S = R ./ πR∩S (S). Hier steht (R ∩ S) im Subskript von π für alle Attributenamen, die R und S gemeinsam haben und nicht für den Schnitt der Relationen! Hinweis: Beachten Sie, dass man in Implementierungen der Join-Operationen in aller Regel das kartesische Produkt nicht bestimmt! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 158 Relationale Algebra/SQL Beispiele: Selektion Wählt Zeilen aus einer Tabelle aus, die einer bestimmten Bedingung genügen. Relation Mitarbeiter: Nachname Milke Huber Trunstein Vorname Lise Karl Helga Geburtsdatum 3.6.1934 16.12.1964 30.7.1956 Ergebnisrelation: Nachname Trunstein Vorname Helga Geburtsdatum 30.7.1956 Relationale Algebra: σN achname=0T runstein0 (M itarbeiter) Mit SQL 92: SELECT * FROM Mitarbeiter WHERE Nachname = ’Trunstein’ Mit Datalog: result(X,Y,Z) ← mitarbeiter(X,Y,Z) ∧ X = ’Trunstein’. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 159 Relationale Algebra/SQL Beispiele: Projektion Wählt bestimmte Spalten einer Tabelle aus. Relation Mitarbeiter: Nachname Milke Huber Trunstein Vorname Lise Karl Helga Geburtsdatum 3.6.1934 16.12.1964 30.7.1956 Ergebnisrelation: Nachname Milke Huber Trunstein Geburtsdatum 3.6.1934 16.12.1964 30.7.1956 Relationale Algebra: π1,3(Mitarbeiter) oder πN ame,Geburtsdatum(Mitarbeiter) SQL 92: SELECT Nachname, Geburtsdatum FROM Mitarbeiter Mit Datalog: result(X,Y) ← mitarbeiter(X,Z,Y). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 160 Relationale Algebra/SQL Union bzw. Vereinigung Fügt die Zeilen zweier Tabellen mit gleicher Spaltenzahl in einer Tabelle zusammen. Die Namen der jeweiligen Spalten der zwei Tabellen müssen nicht identisch sein, lediglich der Datentyp bzw. Wertebereich des Inhalts. Relation Mitarbeiter: Nachname Milke Huber Trunstein Vorname Lise Karl Helga Geburtsdatum 3.6.1934 16.12.1964 30.7.1956 Relation Kunden: Nachname Kelz Huber Ernsbach Vorname Andreas Karl Elli Geburtsdatum 21.7.1965 16.12.1964 29.6.1956 Ergebnisrelation: Nachname Milke Huber Trunstein Kelz Ernsbach Vorname Lise Karl Helga Andreas Elli Geburtsdatum 3.6.1934 16.12.1964 30.7.1956 21.7.65 29.6.1956 Relationale Algebra: Mitarbeiter ∪ Kunden c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 161 Relationale Algebra/SQL SQL 92: SELECT * FROM Mitarbeiter UNION SELECT * FROM Kunden Datalog: result(X,Y,Z) ← mitarbeiter(X,Y,Z) ∨ kunden(X,Y,Z). Doppelte Zeilen werden in SQL automatisch unterdrückt (bei den Mengenorientierten Formalismen Algebra und Logik natürlich sowieso!). Mit UNION ALL werden sie angezeigt. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 162 Relationale Algebra/SQL Beispiel Intersection bzw. Schnitt Liefert die Zeilen, die in beiden angegebenen Tabellen enthalten sind (gleiche Stelligkeit vorausgesetzt). Relation Mitarbeiter: Nachname Milke Huber Trunstein Vorname Lise Karl Helga Geburtsdatum 3.6.1934 16.12.1964 30.7.1956 Relation Kunden: Nachname Kelz Huber Ernsbach Vorname Andreas Karl Elli Geburtsdatum 21.7.1965 16.12.1964 29.6.1956 Ergebnisrelation: Nachname Huber Vorname Karl Geburtsdatum 16.12.1964 Relationale Algebra: Mitarbeiter ∩ Kunden SQL 92: SELECT * FROM Mitarbeiter INTERSECT SELECT * FROM Kunden Datalog: result(X,Y,Z) ← mitarbeiter(X,Y,Z) ∧ kunden(X,Y,Z). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 163 Relationale Algebra/SQL Minus bzw. Differenz Liefert die Zeilen der ersten Tabelle, die in der zweiten Tabelle nicht enthalten sind (vorausgesetzt, die Stelligkeiten stimmen überein). Relation Mitarbeiter: Nachname Milke Huber Trunstein Vorname Lise Karl Helga Geburtsdatum 3.6.1934 16.12.1964 30.7.1956 Relation Kunden: Nachname Kelz Huber Ernsbach Vorname Andreas Karl Elli Geburtsdatum 21.7.1965 16.12.1964 29.6.1956 Ergebnisrelation: Nachname Milke Trunstein Vorname Lise Helga Geburtsdatum 3.6.1934 30.7.1956 Relationale Algebra: Mitarbeiter - Kunden SQL 92: SELECT * FROM Mitarbeiter MINUS SELECT * FROM Kunden Datalog plus Negation (nicht horn!): result(X,Y,Z) ← mitarbeiter(X,Y,Z) ∧ ¬ kunden(X,Y,Z). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 164 Relationale Algebra/SQL Beispiele zu verschiedenen Joins Cross Join = Kartesisches Produkt Relationale Algebra Verbindet jede Zeile der ersten Tabelle mit jeder Zeile der zweiten Tabelle. Relation Mitarbeiter: Nachname Milke Huber Trunstein Relation Projekte: Projekt Neubau Werbung Design Vorname Lise Karl Helga Nachname Huber Trunstein Kohlmeier Geburtsdatum 3.6.1934 16.12.1964 30.7.1956 Vorname Anna Helga Johann Relationale Algebra: Mitarbeiter × Projekte SQL 92: SELECT * FROM Mitarbeiter CROSS JOIN Projekte Älteres SQL: SELECT * FROM Mitarbeiter, Projekte c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 165 Relationale Algebra/SQL Datalog: result(X1,Y1,Z1,X2,Y2,Z2) ← mitarbeiter(X1,Y1,Z1) ∧ projekte(X2,Y2,Z2). Mitarbeiter.Nachname Milke Milke Milke Huber Huber Huber Trunstein Trunstein Trunstein Mitarbeiter.Vorname Lise Lise Lise Karl Karl Karl Helga Helga Helga Geburtsdatum 3.6.1934 3.6.1934 3.6.1934 16.12.1964 16.12.1964 16.12.1964 30.7.1956 30.7.1956 30.7.1956 Projekt Neubau Werbung Design Neubau Werbung Design Neubau Werbung Design Projekte.Nachname Huber Trunstein Kohlmeier Huber Trunstein Kohlmeier Huber Trunstein Kohlmeier Projekte.Vorname Anna Helga Johann Anna Helga Johann Anna Helga Johann Gleichnamige Spalten der zwei Tabellen werden durch Voranstellen des Tabellennamens referenziert, also z. B. ’Mitarbeiter.Nachname’. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 166 Relationale Algebra/SQL Natural Join Alle gleichlautenden Spalten zweier Tabellen werden auf Gleichheit getestet, Tuple aus dem Kreuzprodukt mit gleichen Werten für diese Spalten werden in die Ergebnisrelation übernommen. Dort kommt allerdings nur jeweils eine Spalte je zweier gleichnamiger Spalten vor. Relation Mitarbeiter: Nachname Milke Huber Trunstein Vorname Lise Karl Helga Relation Projekte: Projekt Neubau Werbung Design Ergebnisrelation: Mitarbeiter.Nachname Trunstein Nachname Huber Trunstein Kohlmeier Geburtsdatum 3.6.1934 16.12.1964 30.7.1956 Vorname Anna Helga Johann Mitarbeiter.Vorname Helga Geburtsdatum 30.7.1956 Projekt Werbung Relationale Algebra: Mitarbeiter ./ Projekte SQL 92: c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 167 Relationale Algebra/SQL SELECT Mitarbeiter.*, Projekte.Projekt FROM Mitarbeiter INNER JOIN Projekte ON (Mitarbeiter.Nachname = Projekte.Nachname AND Mitarbeiter.Vorname = Projekte.Vorname) Datalog: result(X,Y,Z,W) ← mitarbeiter(X,Y,Z) ∧ projekte(W,X,Y). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 168 Relationale Algebra/SQL Semi- und Theta-Join Semi-Join in SQL 92: SELECT Mitarbeiter.* FROM Mitarbeiter INNER JOIN Projekte ON (Mitarbeiter.Nachname = Projekte.Nachname AND Mitarbeiter.Vorname = Projekte.Vorname) Theta-Join in SQL 92: SELECT * FROM Mitarbeiter INNER JOIN Projekte ON Mitarbeiter.Nachname <= Projekte.Nachname Datalog: result(X1,Y1,Z1,X2,Y2,Z2) ← mitarbeiter(X1,Y1,Z1) ∧ projekte(X2,Y2,Z2) ∧ (X1 ≤ X2). Anmerkung: Vergleich sind auch auf Strings definiert, hier geht es um die lexikographische Ordnung, also die Frage, welcher String im Lexikon vor dem anderen String steht (der ist dann kleiner). Es gibt noch weitere Join-Arten in SQL, die auf dem OUTER JOIN beruhen (es c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 169 Relationale Algebra/SQL werden Nullwerte eingeführt, wenn es keine passenden ergänzenden Tupel zu den “Hälften” gibt). Man kann auch Joins über mehr als zwei Relationen ausführen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 170 Relationale Algebra/SQL Exkurs: Relationale Datenbanken • Relationale Datenbanken bilden die Grundlage für die meisten Datenhaltungssysteme! • Praktisch alle bieten SQL an, meist Superset zu einem der SQL-Standards (es gibt mittlerweile einen Standard zu SQL3, der auf SQL92 gefolgt ist). • Weder die relationale Algebra noch das alte SQL92 sind so ausdrucksmächtig, wie man es manchmal wünschen würde: sie können z.B. nicht die transitive Hülle einer Relation bestimmen (also z.B. alle Vorfahren eines Menschen in einem Eltern-Kind-Baum unbestimmter Höhe finden). Das kann man aber bewerkstelligen, wenn man SQL “einbettet” in eine andere Sprache und dann auf eine schlaue Art iteriert. • Sehr schön formulieren läßt sich das mit Datalog: vorfahr(X,Y) ← eltern teil(Z,Y) ∧ vorfahr(X,Z). • Die Auswertung von Datalog kann man (wenn man nicht zuviel Negation verwendet...) auf die iterative Auswertung von Ausdrücken in relationaler Algebra mittels SQL zurückführen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 171 Relationale Algebra/SQL • Datenbanken, die Datalog oder etwas ähnliches unmittelbar unterstützen, nennt man “deduktive Datenbanken” (Deduktion: Schlußfolgerung, Herleitung). In die großen kommerziellen Produkte (IBM DB2, IBM Informix, Oracle, SAP DB (ehemals SAG ADABAS, jetzt MAX DB, ein Entwicklungszweig von MySQL), Microsoft SQLServer) ist das aber bisher meines Wissens nach leider nicht eingebaut worden. • Es gibt aber “Bridges” zu Logik-Programmierungssystemen wie SWI-Prolog, XSB-Prolog, Sicstus-Prolog etc., die eine elegante, knappe Logikbasierte Formulierung von Anfragen erlaubt (nicht so leicht ist es, die Anfragen optimiert zu beantworten). • Es gibt mittlerweile ordentliche bis gute frei verfügbare Datenbanksysteme, s. z.B. http://www.mysql.com/ oder http://www.postgresql.org/. Werfen Sie ruhig einmal einen Blick darauf, wenn sie Daten zu schaufeln haben! • Mehr zu dem “angewandte Mengenlehre und Logik, also-known-as Datenbanken” hören sie bei Prof. Drosten! Aber sie wissen jetzt: zumindest die grundlegenden Abfragen sind keine Hexerei! (Natürlich müssen die Tupel erstmal in die Relationen gelangen, man muß die Relationen anlegen, Transaktionen für Folgen von Operationen ausführen, die man zurücknehmen kann und und und...aber im Kern geht es um Operationen auf unseren guten alten Relationen!) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 172 Graphen, kürzeste Wege und andere Probleme Graphen und das Geheimnis des kürzestens Wegs: von Problemen, Schwierigkeiten und Näherungslösungen Ruth: „. . . Aber praktisch brauchbare und gleichzeitig einfache Mathematik, gibt’s sowas?“ Vim: “Ich habe nicht gesagt, dass die Mathematik einfach ist. Ich sagte nur, dass die Probleme leicht zu verstehen sind. Die Mathematik dahinter kann sehr schwierig sein. Glücklicherweise gibt es aber einige Probleme, bei denen auch die Mathematik nicht zu schwierig ist.“ Ruth: “Also gut, worum geht es?“ Vim: “Um Routenplanung.“ [Dialog zwischen Ruth und Vim in Das Geheimnis des kürzesten Weges, 2. Aufl., Springer, von Peter Gritzmann und Rene Brandenberg] c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 173 Graphen, kürzeste Wege und andere Probleme Routenplanung Typische Fragestellungen: • Finden Sie den kürzesten Weg von der FH Gelsenkichen nach Düsseldorf. • Finden Sie den schnellsten Weg von der FH Gelsenkirchen nach Düsseldorf. Antworten hierzu z.B. unter http://www.map24.de. Problem 1: Datenbeschaffung (das interessiert uns hier nicht) Problem 2: Welches Lösungsverfahren bzw. welcher Algorithmus bestimmt eine optimale Lösung? (das interessiert uns!) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 174 Graphen, kürzeste Wege und andere Probleme Ein Routenplanungs-Problemtyp: Kürzeste Wege finden Das informelle Problem: Finde einen kürzesten Weg von s, wie Start, nach z , wie Ziel. Das ist das Kürzeste-Wege-Problem. Wir suchen einen Algorithmus zur Lösung des Problems, der eben zum einen den kürzesten Weg findet (also optimal ist), dies zum anderen aber auch möglichst effizient tut (den Begriff der Effizienz werden wir noch genauer untersuchen). Eine erste Annäherung an den Begriff des Algorithmus11 (von http://www. xipolis.de): Algorithmus, der: systematisches Rechenverfahren, das zu einer Eingabe nach endlich vielen Schritten ein Ergebnis liefert. 11 Eine wichtige Präzisierung des Algorithmus-Begriffs, die Turing-Maschinen, werden wir im nächsten Semester kennenlernen und vertieft im Fach theoretische Informatik betrachten. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 175 Graphen, kürzeste Wege und andere Probleme Beispiele für Routenplanungs-Probleme • Das Problem der kürzesten Auto-Route ist natürlich ein kürzeste-Wege-Problem. • Das Problem, eine schnellste Bahnverbindung zu finden, ist auch eines (Umsteigezeiten werden ins Wegeprobleme „hineinkodiert“). • Auch das Finden von Strassenverbindungen in Satellitenbildern kann man als kürzeste-Wege-Problem auffassen, indem man die Pixel als Orte ansieht und Farbunterschiede in Abstände umrechnet (s. Beispiel Satellitenbild Boston). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 176 Graphen, kürzeste Wege und andere Probleme Routenplanung Weitere Beispiele für Routenplanungsprobleme: • Stadt- und Verkehrsplanung: welche Infrastruktur, z.B. Straßen, in welcher Dimension wo plazieren? • optimale Routen für Müllabfuhr, Postboten, Straßenreinigung usw. • Telekommunikation (z.B. Routing im Internet für das Verschicken von Emails, oder allgemeiner: Paketen) • und viele mehr! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 177 Graphen, kürzeste Wege und andere Probleme Beispiel Hausbau Nr. 1 2 3 4 5 6 7 8 .. . Aufgabe Baugrube Fundamente Mauerwerk Keller Decke Keller Mauerwerk Erdgeschoss Decke Erdgeschoss Dachstuhl Wasserinstallation (roh) .. . Dauer 5 5 10 5 10 5 10 5 .. . Aufgaben, die erledigt sein müssen — 1 1,2 1,2,3 1-4 1-5 1-6 1-6 .. . 12 13 .. . Dachdecken Fenster .. . 20 5 .. . 1-7 1-7,12 .. . 26 Einzug 5 1-25 Das Hausbau-Problem ist ein sogenanntes Projektplanungsproblem. Hier ist das Beachten von Reihefolgebedingungen wichtig! Es kann als Routenplanungsproblem formuliert werden (wie?) Weitere Beispiele: Fertigung von Leiterplatten (Bohrung von Löchern: kürzeste Wege, Positionierung von Verbindungen: Routenplanung), und viele mehr! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 178 Graphen, kürzeste Wege und andere Probleme Wie modelliert man Routenplanungsprobleme? Was ist ein Modell? • Intuitiv: Ein Modell ist eine Nachbildung irgendeiner Sache. • Diese Nachbildung soll helfen, Probleme zu lösen, die die eigentliche Sache betreffen (und die sich nicht direkt mit Hilfe der Sache selbst lösen lassen). • Modelle sind schlecht, wenn die Aussagen/Lösungen, die man gewinnt, auf die Sache nicht anwendbar sind (weil man z.B. den kürzesten Weg mit dem Modell gar nicht findet)! • Idealerweise vereinfachen Modelle die Problemlösung, weil sie Unwesentliches weglassen (z.B. sollte für eine Fahrt von München nach Hamburg die Frankfurter Innenstadt irrelevant sein).12 12 . . . wenn man nicht gerade am Frankfurter Kreuz im Stau steht. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 179 Graphen, kürzeste Wege und andere Probleme Modelle (Forts.) Beispiel Routenplan für ein Nahverkehrsnetz (München) – das ist eine Abstraktion von den wirklichen Gegebenheiten (Entfernungen nur annähernd maßstäblich, Streckenführungen „linearisiert“, usw.) Schnellbahnnetz Freising Pulling Neufahrn Petershausen VierkirchenEsterhofen Hallbergmoos Garching-Hochbrück Kleinberghofen Oberschleißheim Fröttmaning Röhrmoos Erdweg Nannhofen Münchner Verkehrsund Tarifverbund Unterschleißheim Isar Altomünster Flughafen München Flughafen Besucherpark Eching Lohhof Ismaning Erding Kieferngarten Hasen- Dülferbergl straße Harthof Am Hart Arnbach Hebertshausen Markt Indersdorf Malching Bachern Schwabhausen OEZ GeorgBrauchleRing Moosach Karlsfeld im Bau Milbertshofen Olympiazentrum Scheidplatz Bonner Platz Olympiapark Nord Petuelring Allach Gern Olching Puchheim Eichenau Lochhausen Langwied GilchingArgelsried Schöngeising Neugilching Stockdorf Türkenfeld Weßling Steinebach Starnberg Nord Holzapfelkreuth Westpark Haderner Aidenbachstraße Stern Großhadern Starnberg Klinikum Großhadern Herrsching Ammersee Feldafing Prinzregentenplatz Max-Weber-Platz Machtlfinger Straße Forstenrieder Allee Basler Straße Fürstenried West Isartor Grub Leuchtenbergring Riem Berg am Laim Kreillerstraße Marienplatz Kolumbus- Untersbergstraße platz Hauptbahnhof (Central Station) Implerstraße Harras Fraunhoferstraße Goetheplatz Candidplatz St.-Martin-Straße Wettersteinplatz Brudermühlstraße Silberhornstraße Giesing Karl-PreisPlatz Ebenhausen-Schäftlarn Josephsburg nur bei Großmessen Innsbrucker Ring Michaelibad Vaterstetten Baldham Perlach Unterhaching Therese-Giehse-Allee Neuperlach Süd Neubiberg Ottobrunn Zorneding Eglharting Hohenbrunn Taufkirchen Wächterhof Großhesselohe Isartalbf Pullach Furth Deisenhofen Tarifzonen: Innenraum Außenraum S20 Sauerlach Bahnhof Grenze Tageskarte München XXL Starnberger See Kirchseeon HöhenkirchenSiegertsbrunn Dürrnhaar Aying Grafing Bahnhof Grafing Stadt Peiß Otterfing Icking Wolfratshausen MESSE MUNCHEN INTERNATIONAL Gronsdorf Quiddestraße Fasangarten Fasanenpark St.-Quirin-Platz Mangfallplatz Thalkirchen (Zoo) Siemenswerke Solln Buchenhain MessestadtMoosfeld West Ost Trudering Neuperlach Zentrum Poccistraße Mittersendling Obersendling Baierbrunn Heimstetten Haar Sendlinger Tor Schwanthalerhöhe Hohenschäftlarn Tutzing Poing Daglfing Feldkirchen Rosenheimer Platz Höllriegelskreuth Possenhofen Seefeld-Hechendorf Geltendorf Hackerbrücke TheresienHeimeranpl. wiese Westendstraße Partnachplatz Laimer Platz Gauting Mühlthal Grafrath Laim Friedenheimer Str. Lochham Markt Schwaben Englschalking Böhmerwaldplatz Ostbahnhof S20 Neuaubing Harthaus Germering-Unterpfaffenhofen Fürstenfeldbruck Gräfelfing Geisenbrunn Buchenau Planegg Karlsplatz (Stachus) Ottenhofen RichardStrauss-Straße Giselastraße Universität Theresienstraße Odeonsplatz Lehel Königspl. Stiglmaierplatz Donnersbergerbrücke Pasing Aubing Leienfelsstr. Westkreuz Münchner Freiheit Josephsplatz St. Kolomann Johanneskirchen Arabellapark Dietlindenstraße Is ar Gröbenzell Maillingerstraße Rotkreuzplatz Obermenzing Nordfriedhof Hohenzollernplatz Westfriedhof Esting Aufhausen Alte Heide Dachau Dachau Stadt Altenerding Unterföhring Studentenstadt Frankfurter Ring Fasanerie Niederroth Maisach Gernlinden Feldmoching Freimann Holzkirchen Großhelfendorf Ebersberg Kreuzstraße c MVV / Stand: Oktober 2003 . c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 180 Graphen, kürzeste Wege und andere Probleme Modelle (Forts.) Diese Form der Abstraktion ist von großer Bedeutung für alle genannten Probleme – es ist ein sogenannter Graph: Definition 81. [Ungerichteter Graph] Ein (endlicher) ungerichteter Graph G = (V, E) besteht aus einer endlichen Menge V von Knoten (engl. vertices) und einer (endlichen) Menge E von Kanten (engl. edges), die jeweils zwei Knoten miteinander verbinden, d.h. E ist eine Menge von zweielementigen Teilmengen von V , also E ⊆ {{u, v} | u, v ∈ V }. Beachte: Die Kanten in dieser ersten Definition sind ungerichtet (wie wir ja wissen, ist {a, b} = {b, a}). Es kann jeweils nur max. eine Verbindung zwischen zwei Knoten geben (E ist eben eine „ganz normale“ Menge). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 181 Graphen, kürzeste Wege und andere Probleme Graphen Definition 82. Sei G = (V, E) ein ungerichteter Graph. Die Anzahl der Knoten, n = |V |, ist die Ordnung des Graphen. Die Anzahl der Kanten, m = |E| ist seine Größe. Eine Kante e = (u, v) ∈ E nennt man auch inzident zu u und v , u und v nennt man benachbart (oder adjazent). Wenn es zu zwei Kanten e1,e2 einen Knoten u gibt, so dass beide inzident zu u sind, dann nennt man auch e1 und e2 benachbart. Der Grad grad(v) eines Knotens v ist die Anzahl der zu ihm inzidenten Kanten, d.h. grad(v) = |{e ∈ E|e ist inzident zu v}|. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 182 Graphen, kürzeste Wege und andere Probleme Graphen In der obigen Definition 81 sind Kanten erlaubt, die einen Knoten mit sich selbst verbinden (sogennante Schleifen). In vielen Aufgabenstellungen kommt das nicht vor: Definition 83. [Ungerichteter Graph ohne Schleifen] Ein ungerichteter Graph heißt schleifenfrei, wenn für alle {u, v} ∈ E gilt, dass u 6= v . Definition 84. [Teilgraph; Untergraph] 0 0 Sei G = (V, E) ein Graph. Sei nun V ⊆ V und E ⊆ E ∩ {{u, v}|u, v ∈ 0 0 0 0 0 V }, dann heißt H = (V , E ) Teilgraph von G. Gilt für E sogar E = E ∩ 0 0 {{u, v}|u, v ∈ V }, dann nennt man H auch den von V aufgespannten (oder induzierten) Untergraphen von G. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 183 Graphen, kürzeste Wege und andere Probleme Modelle (Forts.) Bei der Abstraktion werden z.B. Autobahnabfahrten und Autobahnkreuze zu Knoten, oder Bahnhöfe/Haltepunkte, oder Pixel in Bildern, oder Aufgaben in einem Projektplan usw. Das kann natürlich zu einer sehr großen Anzahl von Knoten führen! Häufig ergeben sich die Kanten als Verbindungen zwischen „benachbarten“ Knoten auf natürliche Weise. Manchmal ist es nicht ganz so offensichtlich – bei der Suche nach einer Strasse im Satellitenbild erhält man über die Pixelknoten eine Gitterstruktur, wenn man horizontal und vertikal unmittelbar benachbarte Knoten miteinander verbindet (hier könnte man diskutieren, ob nicht auch diagobal versetzte Knoten unmittelbare Nachbarn sein sollten!) Wichtig ist: Wenn man eine einheitliche Abstraktionsform für verschiedene Probleme (besser: Problemtypen) findet, dann kann man nach einem Algorithmus suchen, der direkt auf dieser Abstraktion arbeitet und damit alle abstrahierten Probleme verschiedenen Typs lösen kann! c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 184 Graphen, kürzeste Wege und andere Probleme Eigenschaften von Graphen Die betrachteten Graphen sollen zusammenhängend sein. Ein Graph ist zusammenhängend, wenn es von jedem Knoten eine Verbindung (auch Weg oder Pfad genannt) zu jedem anderen Knoten gibt. Definition 85. [Nachbarn] Sei G = (V, E) ein Graph und v ∈ V ein beliebiger Knoten. Dann ist N (v) = {u|{v, u} ∈ E} die Menge der Nachbarn von v . Jedes u ∈ N (v) heißt Nachbar von v . Definition 86. Sei G = (V, E) ein Graph und seien v1, v2 ∈ V . Dann sind v1 und v2 verbunden, wenn entweder v2 ein Nachbar von v1 ist oder wenn ein Nachbarn von v1 mit v2 verbunden ist. Definition 87. [Zusammenhängend] Ein Graph G = (V, E) ist zusammenhängend, wenn jedes Paar verschiedener Knoten miteinander verbunden ist (Merke: ein Graph, der nur aus einem Knoten besteht, ist auch zusammenhängend: es gibt kein Paar verschiedener Knoten, das die Bedingung verletzen könnte). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 185 Graphen, kürzeste Wege und andere Probleme Eigenschaften von Graphen Man kann natürlich auch konkrete Verbinungen angeben (und nachweisen, dass ein Graph zusammenhängend ist, indem man für jedes Paar unterschiedlicher Knoten eine solche Verbindung angibt). Definition 88. [Kantenzug; Weg; Kreis; Pfad; Zyklus] Sei G = (V, E) ein Graph. Eine Folge13 (v0, v1, . . . , vn) von Knoten aus V heißt Kantenzug (walk), wenn ei = {vi, vi+1} ∈ E gilt für 0 ≤ i ≤ n − 1. Im Fall v0 = vn handelt es sich um einen geschlossenen, sonst um einen offenen Kantenzug. Wenn die Kanten ei alle paarweise verschieden sind, dann wird der Kantenzug auch Weg (trail) genannt. Ein Weg mit v0 = vn wird auch geschlossener Weg oder Kreis genannt. 13 Eine Folge der Länge m ist ein geordnetes m-Tupel der Form (a , . . . , a ). Unser geordnetes Paar aus der m 1 Mengenlehre ist ein 2-Tupel. m-Tupel lassen sich in als Mengen durch mehrfache Anwendung der Definition 13 erzeugen und erfüllen den gleichen Zweck, wie unser geordnetes Paar: sie ordnen Objekte an (beachten Sie, dass in Folgen (auch Sequenzen, Vektoren, Arrays . . . genannt) Objekte mehrfach vorkommen können). So, wie man den Begriff des geordneten Paares erweitern kann, kann man auch den Begriff des kartesischen Produktes erweitert verwenden: es gilt (a1 , . . . , am ) ∈ A1 × · · · × Am (unter der Annahme, dass ai ∈ Ai für 1 ≤ i ≤ m). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 186 Graphen, kürzeste Wege und andere Probleme Wenn (v0, . . . , vn) ein Weg ist, die Knoten v1, . . . , vn−1 alle paarweise verschieden sind und wenn v0, vn 6∈ {v1, . . . , vn−1}, dann ist der Kantenzug ein Pfad (pfad, oder auch einfacher Weg. Gilt zudem v0 = vn, dann ist der Pfad ein geschlossener Pfad bzw. ein Zyklus (cycle, oder auch einfacher Kreis). Die Länge eines Kantenzugs ist die Anzahl der in ihm enthaltenen Kanten. Der Kantenzug (v0, . . . , vn) hat also die Länge n (und eben n + 1 Knoten). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 187 Graphen, kürzeste Wege und andere Probleme Eigenschaften von Graphen (Forts.) Manchmal ist auch ein gewisser Grad an Zusammenhang (Redundanz!) von Interesse, denken Sie an die Probleme beim Ausfall von Leitungen oder Strecken in Netzen! Definition 89. [Ausfallsicherheit] Ein (zusammenhängender) Graph G = (V, E) ist (einfach)14 ausfallsicher, wenn er nach der Entfernung einer beliebigen Kante weiterhin zusammenhängend ist. Beachte: Die Eigenschaft zusammenhängend stellt sicher, dass es von jedem Knoten zu jedem anderen Knoten eine Verbindung gibt. In einem (kanten-)ausfallsicheren Graphen gibt es zudem eine weitere, alternative Verbindung zwischen jedem Paar verschiedener Knoten. Eine Ausfallsicherheit kann man auch für Knoten fordern (die z.B. Kreuzungen darstellen können). Wenn man in einem zusammenhängenden Graphen nach Entfernung eines beliebigen Knotens und der unmittelbar in diesen eingehenden Kanten noch einen zusammenhängenden Graphen hat, dann spricht man von ausfallsicher mit Bezug auf die Knoten (oder knoten-ausfallsicher). 14 Das kann man natürlich weitertreiben: wenn er bei Entfernung zweier beliebiger, verschiedener Kanten noch zusammenhängend ist, dann ist er zweifach ausfallsicher usw. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 188 Graphen, kürzeste Wege und andere Probleme Multigraphen In manchen Kontexten ist es natürlich, Graphen zu betrachten, in denen es mehrere Kanten zwischen zwei Knoten geben kann (z.B. mehrere Stromleitungen, mehrere parallele U-Bahn-Strecken). Beispiel nochmals S-Bahn/U-Bahn-Netz München. Trotzdem werden wir uns im folgenden (meist) auf „normale“ Graphen beschränken. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 189 Graphen, kürzeste Wege und andere Probleme Gerichtete Graphen Häufig ist es sinnvoll, den Kanten eine Richtung zu geben. Dann spricht man auch von Bögen (oder Pfeilen). Definition 90. [Gerichteter Graph] Ein (endlicher) gerichteter Graph G = (V, E) besteht aus einer endlichen Menge V von Knoten und einer Menge E von gerichteten Kanten (Bögen) zwischen diesen Knoten, d.h. E ist eine Teilmenge des kartesischen Produkts V × V , also E ⊆ V × V . Gerichtete Graphen werden auch als Digraphen bezeichnet (engl. directed graph). Sei e = (u, v) eine Element von V . Dann nennt man u auch Anfangs- und v Endknoten von e. Häufig schreibt man auch uv anstelle von (u, v). Beachte: E besteht also aus einer Menge von geordneten Paaren. Jetzt kann es zwar zwei Kanten zwischen zwei Knoten geben, diese müssen dann aber eine unterschiedliche Orientierung (oder Richtung) aufweisen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 190 Graphen, kürzeste Wege und andere Probleme Gerichtete Graphen Definition 91. [Gerichteter Graph ohne Schleifen] Sei G = (V, E) ein gerichteter Graph, so dass für alle (u, v) ∈ E gilt, dass u 6= v . Dann ist G ein gerichteter Graph ohne Schleifen. Beachte weiter: Jede (zweistellige) Relation kann man unmittelbar als gerichteten Graph auffassen. Welche Eigenschaften hat der Graph z.B., wenn die zugrundeliegende Relation eine injektive Funktion ist? c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 191 Graphen, kürzeste Wege und andere Probleme Gerichtete Graphen Einem gerichteten Graphen kann man die Richtung wieder nehmen... Definition 92. [Darunter liegender Graph] Jedem gerichteten Graphen G = (V, E) kann man eindeutig einen ungerichteten Graphen Gu = (V, Eu) zuordnen mit Eu = {{u, v}|(u, v) ∈ E}. Man kann aber auch aus einem ungerichteten Graphen einen gerichteten Graphen machen... Definition 93. [Alternative Definition ungerichteter Graphen] Ein (gerichteter) Graph G = (V, E) heißt ungerichtet, falls E symmetrisch ist, d.h., zu jeder Kante e = (u, v) ∈ E existiert eine Kante (v, u) ∈ E . Definition 94. [Kantenzug, Weg, Kreis] Sei G = (V, E) ein gerichteter Graph. Eine Knotenfolge (v0,. . . ,vn) heißt Kantenzug des gerichteten Graphen, wenn für für alle i, 0 ≤ i ≤ n−1, gilt (vi, vi+1) ∈ E . Ebenso analog zu den ungerichteten Graphen definiert man Wege, Kreise, Pfade, und Zyklen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 192 Graphen, kürzeste Wege und andere Probleme Gerichtete Graphen Definition 95. [Erreichbar] Zwei Knoten v1 und v2 sind verbunden, wenn es einen Weg zwischen v1 und v2 im ungerichteten Graphen Gu gibt. Wenn es einen gerichteten Weg von v1 nach v2 gibt, dann ist v2 erreichbar von v1. Definition 96. [Zusammenhängend; stark zusammenhängend] Ein gerichteter Graph G heißt zusammenhängend, wenn Gu zusammenhängend ist. Er heißt stark zusammenhängend, wenn für je zwei verschiedene Knoten u,v gilt: v ist erreichbar von u und u ist erreichbar von v . Die Begriffe ausfallsicher und Multigraph kann man unmittelbar an gerichtete Graphen anpassen. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 193 Graphen, kürzeste Wege und andere Probleme Die Suche nach kürzesten Wegen Wir wollen vom Marienplatz zur Hackerbrücke mit U- oder S-Bahn fahren. Welches ist die kürzeste Verbindung? S-Bahn/U-Bahn-Netz München. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 194 Graphen, kürzeste Wege und andere Probleme Die Suche nach kürzesten Wegen (Forts.) Gerade gab es mehrere Streckenführungen zum Stachus (eine Zwischenstation auf dem Weg zur Hackerbrücke). Uns interessiert bei der Suche nach dem kürzesten Weg zur Hackerbrücke aber auch nur die kürzeste Verbindung zu den (möglichen und tatsächlichen) Zwischenstationen! Im Beispiel ist also nur der direkte Weg vom Marienplatz zum Stachus interessant, nicht die Verbindung über den Odeonsplatz (oder gar die über Sendlinger Tor, und Hauptbahnhof, oder über Sendlinger Tor, Harras, Heimerplatz und Hauptbahnhof). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 195 Graphen, kürzeste Wege und andere Probleme Die Suche nach kürzesten Wegen (Forts.) Das gilt generell: wenn wir einmal einen Weg von x nach y gefunden haben, dann können wir längere Wege dorthin ignorieren – wenn wir den kürzesten Weg gefunden haben, dann können wir sogar alle anderen Wege von x nach y ignorieren! Warum? Weil längere Wege zu einem Zwischenhalt unsere Lösung nicht verbessern können! Wir werden zu dieser Beobachtung (B ELLMANS Prinzip der Optimalität) noch zurückkehren. Man muß sich auch klar machen, dass wir in der Kodierung des Problems als Graph keine Richtungsinformationen haben – ein Lösungsverfahren kann also nicht sehen, welche Richtungen vielversprechend sind und welche nicht – es muss also auch „falsche“ Richtungen erkunden, um auszuschließen, dass sich dort ein kürzerer Weg verbirgt. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 196 Graphen, kürzeste Wege und andere Probleme Kombinatorische Explosion Lösungsidee: Alle Wege generieren und den Kürzesten auswählen! Wieviele Wege gibt es hier? (s. die nächsten Folien) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 197 Graphen, kürzeste Wege und andere Probleme Kombinatorische Explosion (Forts.) Wieviele Möglichkeiten gibt es, vom Startknoten loszulaufen? Wieviele Möglichkeiten, den Weg fortzusetzen, gibt es dann? Und wieviele Möglichkeiten in den folgenden Schichten? Wieviele Wege ergibt das insgesamt? c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 198 Graphen, kürzeste Wege und andere Probleme Kombinatorische Explosion (Forts.) Mit einer Schicht mehr gibt es doppelt so viele Wege! (25 = 32) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 199 Graphen, kürzeste Wege und andere Probleme Kombinatorische Explosion (Forts.) Jetzt sind es bereits 250 = 1.125.899.906.842.624 mögliche Wege! Kann der Rechner in jeder Sekunde eine Millionen Wege durchtesten, dann würde er mehr als eine Milliarde Sekunden benötigen . . . das sind ca. 1.125.899.906.8/31.536.000 Jahre, also fast 36 Jahre. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 200 Graphen, kürzeste Wege und andere Probleme Kombinatorische Explosion (Forts.) Im allgemeinen Fall für Graphen dieser Struktur sind es 2n mögliche Wege. Für n = 100 sind es bereits 40 Millionen Jahre. Um ein Gefühl für die Größenrelation solcher exponentiell explodierter kombinatorischer Probleme z.B. zur Anzahl der Atome im Menschen, in der Erde und der Sonne zu erhalten, kann man sich z.B. den folgenden Link anschauen: http://www.harri-deutsch.de/verlag/hades/clp/kap09/cd236b.htm. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 201 Graphen, kürzeste Wege und andere Probleme Gewichtete Graphen Um die uns interessierenden Probleme modellieren zu können, brauchen wir noch Informationen im Graphen zu Weglängen (oder Kapazitäten oder Zeiten oder Kosten etc.). Definition 97. [Gewichteter Graph] Sei G = (V, E) ein Graph (gerichtet oder ungerichtet, Multi oder nicht) und w : E → N eine Bewertungsfunktion (die auch z.B. in R abbilden könnte). Dann nennt man N = (G, w) einen gewichteten Graphen oder auch ein Netzwerk. Beachte: die Bewertungsfunktion w ordnet jeder Kante e aus E ein Gewicht w(e) zu. Wir betrachten im folgenden meist nicht-negative, ganzzahlige Gewichte (in manchen Algorithmen nennen wir w() auch Bogenlänge() oder Kantenlänge().) c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 202 Graphen, kürzeste Wege und andere Probleme Die Suche nach kürzesten Wegen Grundidee: Zunächst kürzeste Wege zu (vermeintlichen und wirklichen) Zwischenstationen finden – und überflüssige Arbeit vermeiden! Dijkstra.htm [Original unter: http://www-m9.ma.tum.de/dm/java-applets/routenplanung/ Algorithmen/Dijkstra] c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 203 Graphen, kürzeste Wege und andere Probleme Dijkstras Algorithmus (1) Input: Gewichteter Digraph G = (V, E) Output: Output: Ein kürzester s, z -Weg und dessen Länge Distanz(z ) BEGIN S ← {s}, Distanz(s) ← 0 FOR ALL v ∈ V /{s} DO Distanz(v ) ← Bogenlänge(s, v ) Vorgänger(v ) ← s /* Vorgänger im kürzesten Weg */ END FOR WHILE z 6∈ S DO finde v ∗ ∈ V \S mit Distanz(v ∗) = min{Distanz(v ): v ∈ V \S} S ← S ∪ {v ∗} FOR ALL v ∈ V \S DO IF Distanz(v ∗)+Bogenlänge(v ∗, v ) < Distanz(v ) THEN Distanz(v ) ← Distanz(v ∗)+Bogenlänge(v ∗, v ) Vorgänger(v ) ← v ∗ END IF END FOR END WHILE END c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 204 Graphen, kürzeste Wege und andere Probleme Dijkstras Algorithmus (2) Input: Gewichteter Digraph G = (V, E) Output: Ein kürzester s, z -Weg und dessen Länge Distanz(z ) /* S sammelt alle ein Knoten, zu denen wir bereits kürzeste Wege kennen - zu Beginn ist das natürlich s. */ BEGIN S ← {s}, Distanz(s) ← 0 FOR ALL v ∈ V /{s} DO Distanz(v ) ← Bogenlänge(s, v ) Vorgänger(v ) ← s END FOR WHILE z 6∈ S DO finde v ∗ ∈ V \S mit Distanz(v ∗) = min{Distanz(v ): v ∈ V \S} S ← S ∪ {v ∗} FOR ALL v ∈ V \S DO ... c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 205 Graphen, kürzeste Wege und andere Probleme Dijkstras Algorithmus (3) Input: Gewichteter Digraph G = (V, E) Output: Ein kürzester s, z -Weg und dessen Länge Distanz(z ) BEGIN S ← {s}, Distanz(s) ← 0 /* Distanz(v ) merkt sich die Länge des bisher gefundenen kürzesten Weges von s zu v , wenn es keinen Bogen sv gibt, wird es mit ∞ initialisiert. Vorgänger(v ) gibt den Vorgänger auf dem bisher gefundenen kürzesten Weg von s nach v an. */ FOR ALL v ∈ V /{s} DO Distanz(v ) ← Bogenlänge(s, v ) Vorgänger(v ) ← s */ END FOR WHILE z 6∈ S DO finde v ∗ ∈ V \S mit Distanz(v ∗) = min{Distanz(v ): v ∈ V \S} S ← S ∪ {v ∗} ... c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 206 Graphen, kürzeste Wege und andere Probleme Dijkstras Algorithmus (4) Input: Gewichteter Digraph G = (V, E) Output: Ein kürzester s, z -Weg und dessen Länge Distanz(z ) BEGIN S ← {s}, Distanz(s) ← 0 ... /* Die WHILE-Schleife fügt nach und nach alle benötigten Knoten zu S hinzu (S enthält alle Knoten, zu denen wir die kürzesten Wege von s bereits kennen). Hierzu bestimmt sie zunächst den (oder einen der) Knoten mit der kürzesten gefundenen Weglänge, v ∗. Dieser wird zu S hinzugefügt und dann . . . (s. nächste Seite) */ WHILE z 6∈ S DO finde v ∗ ∈ V \S mit Distanz(v ∗) = min{Distanz(v ): v ∈ V \S} S ← S ∪ {v ∗} FOR ALL v ∈ V \S DO IF Distanz(v ∗)+Bogenlänge(v ∗, v ) < Distanz(v ) THEN ... c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 207 Graphen, kürzeste Wege und andere Probleme Dijkstras Algorithmus (5) Input: Gewichteter Digraph G = (V, E) Output: Ein kürzester s, z -Weg und dessen Länge Distanz(z ) BEGIN S ← {s}, Distanz(s) ← 0 ... WHILE z 6∈ S DO finde v ∗ ∈ V \S mit Distanz(v ∗) = min{Distanz(v ): v ∈ V \S} S ← S ∪ {v ∗} /* . . . wird geprüft, ob man mit den Bögen, die aus v ∗ herausführen, kürzere Weg zu den damit unmittelbar erreichbaren Knoten finden kann, als bisher bekannt waren. Wenn ja, dann werden die Informationen in diesen Knoten upgedated, also Distanz (nun die Länge eines Weges über v ∗) und Vorgänger (nun v ∗) korrigiert. */ FOR ALL v ∈ V \S DO /* sogenanntes Update */ IF Distanz(v ∗)+Bogenlänge(v ∗, v ) < Distanz(v ) THEN Distanz(v ) ← Distanz(v ∗)+Bogenlänge(v ∗, v ) Vorgänger(v ) ← v ∗ ... c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 208 Graphen, kürzeste Wege und andere Probleme Dijkstras Algorithmus für Wege zu allen Knoten Input: Gewichteter Digraph G = (V, E) mit positiven Gewichten Output: Kürzeste s, v -Wege und deren Längen Distanz(v ) für alle v ∈ V BEGIN S ← {s}, Distanz(s) ← 0 FOR ALL v ∈ V /{s} DO Distanz(v ) ← Bogenlänge(s, v ) Vorgänger(v ) ← s END FOR WHILE S 6= V DO /* ⇐= Hier auf alle Knoten erweitert! */ finde v ∗ ∈ V \S mit Distanz(v ∗) = min{Distanz(v ): v ∈ V \S} S ← S ∪ {v ∗} FOR ALL v ∈ V \S DO IF Distanz(v ∗)+Bogenlänge(v ∗, v ) < Distanz(v ) THEN Distanz(v ) ← Distanz(v ∗)+Bogenlänge(v ∗, v ) Vorgänger(v ) ← v ∗ END IF END FOR END WHILE END c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 209 Graphen, kürzeste Wege und andere Probleme Resultate zu Dijkstras Algorithmus • Der Algorithmus findet kürzeste Wege in endlichen Graphen mit positiven Kantengewichten – er ist korrekt, d.h. er terminiert und liefert immer die richtige Antwort! [Details in GIN2] • Er funktioniert natürlich auch für ungerichtete Graphen! (Man kann z.B. (generell) eine ungerichtete Kante durch zwei gerichtete ersetzen - er funktioniert aber auch ohne solch eine Ersetzung) • Der Algorithmus braucht nie mehr als n2 elementare Operationen (also ist er in der Komplexitätsklasse O(n2))15 [s. Mitschrieb] 15 Zu den Komplexitätsklassen s. Veranstaltung GIN1a oder z.B. diese Quelle. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 210 Graphen, kürzeste Wege und andere Probleme Edsger W. Dijkstra Veröffentlicht wurde der Algorithmus 1959 in der ersten Auflage von Numerische Mathematik (wo er nicht wirklich hineinpaßte). Er stammt vom leider mittlerweile verstorbenen E DSGER W YBE D IJKSTRA (EWD), einem wichtigen Pionier der mathematisch orientierten Informatik. Eine kleine, nette Geschichte von EWD zur Entdeckung der beiden Algorithmen (ein Weg/Alle Weg = ein Baum) finden sie hier. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 211 Graphen, kürzeste Wege und andere Probleme Weiteres zu kürzesten Wegen • Problematisch sind Graphen mit Kreisen mit insgesamt negativem Gewicht (dort ist unendlich schnelles Reisen möglich!) • Solche Kreise findet der F LOYD -WARSHALL-Algorithmus (s. z.B. http:// www-m9.ma.tum.de/dm/java-applets/floyd-warshall/Algorithmen/ FloydWarshall). • Dieser findet auch kürzeste Wege, wenn es keine solchen Kreise (aber negative Gewichte) gibt. Er gehört in die Komplexitätsklasse O(n3). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 212 Graphen, kürzeste Wege und andere Probleme Das Projektplanungsproblem Kehren wir zurück zum Hausbau-Problem. Wann können Sie mit dem Einzug beginnen? Dazu stellen wir das Problem als Digraph dar: • Die Knoten repräsentieren die Aktivitäten. • Die gerichteten Kanten die Beziehung unmittelbarer-Vorgänger-von. • Gewichtet werden die Kanten mit dem minimalen Abstand zwischen den Startzeiten der an der Kante beteiligten Aktivitäten. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 213 Graphen, kürzeste Wege und andere Probleme Das Projektplanungsproblem (Forts.) Jetzt würde uns der längste Weg von der ersten zur letzten Aktivität die Lösung lieferen – die Mindestdauer des Hausbaus! Das kann man in ein kürzeste-Wege-Problem umwandeln! Wie? c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 214 Graphen, kürzeste Wege und andere Probleme Das Projektplanungsproblem (Forts.) • Jetzt würde uns der längste Weg von der ersten zur letzten Aktivität die Lösung lieferen – die Mindestdauer des Hausbaus! • Das kann man in ein kürzeste-Wege-Problem umwandeln, indem man alle Gewichte mit −1 multipliziert (damit wird der längste zum kürzesten Weg!). • Das Problem kann übrigens keine Kreise mit insgesamt negativen Kantengewichten haben (d.h. er hat eine sogenannte konservative Bewertungsfunktion, manchmal auch konservative Gewichte genannt), denn der Graph muss immer ein Baum sein (s. Vorlesungen zu GIN1a) – sonst müßte eine Aktivität sich selbst vorausgehen . . . . • Für solche Graphen (mit negativen Gewichten, aber ohne Kreise mit negativem Gesamtgewicht) liefert z.B. der M OORE -B ELLMAN -F ORD-Algorithmus kürzeste Wege (und zwar alle). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 215 Graphen, kürzeste Wege und andere Probleme M OORE -B ELLMAN -F ORD-Algorithmus Input: Gewichteter Digraph G = (V, E) mit konservativen Gewichten (also ohne Kreise mit negativem Gesamtgewicht) Output: Kürzeste s, v -Wege (über Vorgänger(v ) generierbar) und deren Längen Distanz(v ) für alle v ∈ V BEGIN S ← {s}, Distanz(s) ← 0 FOR ALL v ∈ V /{s} DO Distanz(v ) ← ∞, Vorgänger(v ) ← s END FOR FOR i = 1 TO |V|-1 DO FOR EACH (v, w) ∈ E DO IF Distanz(w) > Distanz(v ) + Bogenlänge((v, w)) THEN Distanz(w) ← Distanz(v ) + Bogenlänge((v, w)) Vorgänger(w) ← v END IF END FOR EACH END FOR END c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 216 Graphen, kürzeste Wege und andere Probleme M OORE -B ELLMAN -F ORD-Algorithmus (Forts.) Aufwand: Der Algorithmus benötigt (klarerweise) einen Aufwand in der Größenordnung O(nm) (n = Zahl der Knoten, m = Zahl der Kanten – das m kann deutlich größer als n sein, genauer n ∗ (n − 1) im gerichteten und (n − 1) + (n − 2) + · · · + 1 im ungerichteten Fall). Korrektheit: Klarerweise terminiert der Algorithmus für endliche Graphen, zudem bestimmt er die gewünschten kürzesten Wege (vgl. z.B. Combinatorial Optimization, Korte, Vygen, Springer 2000, Seite 142f). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 217 Graphen, kürzeste Wege und andere Probleme Näherungslösungen „Man kann ungefähr in die Richtung der Luftlinie fahren und das ist dann auch am Kürzesten“ Jein . . . In der Praxis genügt es oft, eine „gute“ Lösung zu finden, die nicht unbedingt optimal ist. Wir möchten gern sagen, wie weit so eine „Näherungslösung“ vom Optimum (höchstens) entfernt ist ohne dieses zu kennen – können wir das? c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 218 Graphen, kürzeste Wege und andere Probleme Näherungslösungen (Forts.) Das geht recht oft – selbst bei vielen der NP-schweren Probleme! Beispiel: „graphische“ Probleme, deren optimale Lösungsgüte durch die Luftlinienentfernung nach unten beschränkt sind und in der die angegebenen bzw. aus ihrer Position folgende Entfernung der Luftlinienentfernung entspricht. Idee: Erstmal eine erste „ordentliche“ Lösung finden und dann den Suchbereich stark einschränken! Näherungsweise geht das auch für das S-Bahn/U-Bahn-Netz. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 219 Graphen, kürzeste Wege und andere Probleme Preprocessing Gelingt es, die Suche nach Lösungen weiter zu vereinfachen? Suchen wir nach Kanten, die für die Ausfallssicherheit kritisch sind: Z.B. die Verbindung Pasing–Laim. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 220 Graphen, kürzeste Wege und andere Probleme Preprocessing (Forts.) Fällt diese Verbindung aus, so ist der Graph in zwei nicht miteinander verbundene Teilgraphen getrennt (sagen wir in A für den Teil mit Passing und B für den Rest). Wenn wir nach einem kürzesten Weg von x ∈ A(V ) nach y ∈ B(V ) suchen, dann können wir diesen zusammensetzen aus einem kürzesten Weg von x nach Passing, einem kürzesten Weg von Laim nach y und der Kante Passing, Laim). Wir lösen also zwei Teilprobleme anstelle eines großen Gesamtproblems. Was bringt das? Wenn wir 1000 Knoten haben und in jedem Teil jeweils 500 davon liegen, und annehmen, dass eine konkrete Implementierung des DijkstraAlgorithmus etwa 10 ∗ n2 Operationen erfordert, dann lösen wir jetzt nur noch ein Problem in der Größe 2 ∗ 10 ∗ 5002 = 5.000.000 anstelle eines in der Größe 10 ∗ 10002 = 10.000.000. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 221 Graphen, kürzeste Wege und andere Probleme Weitere Vereinfachung Im S-Bahn/U-Bahn-Problem sind viele Knoten irrelevant (weil man nicht umsteigen kann)! Diese Knoten kann man entfernen und durch Kantengewichte ersetzten (die die Haltestellen auf einem Teilstück zählen). Das reduziert die Knoten von 214 auf 52, das ist für den Dijkstra-Algo eine etwa 16-fache Beschleunigung! Das geht allerding nicht für Start- und Zielknoten (man muß also auch noch wissen, welche Haltestellen auf zusammengefaßten Streckenabschnitten liegen). Problem: Das finden kritischer Kanten oder das Entfernen von Knoten kostet Zeit! Für einzelne Probleme oft zuviel Zeit – aber wenn die vereinfachte Problemstellung oft verwendet wird (Bahnverbindungen suchen, Travelpiloten o.ä.), dann lohnt sich das sehr schnell! Übrigens: Einen solchen Trade-off gibt es häufig.16 16 Tarjan, ein weiterer wichtiger Informatiker, entwickelte den Begriff der amortisierten Kosten, um Algorithmen auch in Situationen wiederholter Anwendung vergleichen zu können). c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 222 Graphen, kürzeste Wege und andere Probleme Bäume Ein ungerichteter Graph G = (V, E), der keinen Kreis enthält, heißt kreisfrei. Ist er zusammenhängend und kreisfrei, dann nennt man ihn auch Baum (wenn er nicht zusammenhängend ist, dann besteht er aus mehreren Bäumen, ist also ein Wald). Der Dijkstra-Algorithmus, der alle kürzesten Wege von einem Knoten s zu allen anderen Knoten findet, generiert einen Baum (aus allen Knoten das Ausgangsgraph und den Kanten der kürzesten Wege). Weil alle Knoten enthalten sind und der Graph zusammenhängend, ist der entstehende Teilgraph ein Spannbaum (er spannt die Knotenmenge V auf). Ist der Graph gewichtet, dann nennt man die Suche nach einem Spannbaum mit minimaler Kantensumme Spannbaumproblem – relevant ist es z.B. beim Mieten von Leitungen für ein Telefonnetz durch Mitbewerber der Telekom. c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 223 Graphen, kürzeste Wege und andere Probleme Spannbaumprobleme Liefert der Dijkstra-Algorithmus minimale Spannbäume? [s. Mitschrieb] c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 224 Graphen, kürzeste Wege und andere Probleme Prims Algorithmus Input: Gewichteter Graph G = (V, E) mit positiven Gewichten Output: Minimaler Spannbaum des Graphen G BEGIN S ← {s}, Distanz(s) ← 0 FOR ALL v ∈ V /{s} DO Distanz(v ) ← Kantenlänge(s, v ) Vorgänger(v ) ← s END FOR WHILE S 6= V DO finde v ∗ ∈ V \S mit Distanz(v ∗) = min{Distanz(v ): v ∈ V \S} S ← S ∪ {v ∗} FOR ALL v ∈ V \S DO IF Kantenlänge(v ∗, v ) < Distanz(v ) THEN Distanz(v ) ← Kantenlänge(v ∗, v ) Vorgänger(v ) ← v ∗ END IF END FOR END WHILE END c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 225 Graphen, kürzeste Wege und andere Probleme Prims Algorithmus (Forts.) • R OBERT C. P RIM ist der Schöpfer dieses Algorithmus. • Laufzeit natürlich wie Dijkstras Algorithmus (für alle kürzesten Wege von einem s zu den anderen Knoten). • Korrektheit? Beweis durch Widerspruch: Angenommen, der Algorithmus liefert keinen minimalen Spannbaum, macht also einen ersten (und möglicherweise weitere) Fehler. Gezeigt wird, dass das nicht eintreten kann – und wenn es keinen ersten Fehler gibt, dann gibt es natürlich auch keine weiteren! [s. Mitschrieb] c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 226 Graphen, kürzeste Wege und andere Probleme Letzte Seite Ende der Foliensammlung c 2004, Dr. W. Conen — Nutzung nur an der FH Gelsenkirchen Version 1.0α, 22. Januar 2005, Seite 227