Informatik I Tutorium WS 07/08 Vorlesung: Prof. Dr. F. Bellosa Übungsleitung: Dipl.-Inform. A. Merkel Tutorium: 2 Tutor: Jens Kehne Tutorium 7: Dienstag,. Dezember 2007
Agenda des heutigen Tutoriums Übersicht heute Rückblick Graphen Warshall-Algorithmus Boolesche Algebra 2
Organisatorisches Halbgruppen/Monoide Assoziativität ist wichtig Beispiele sind keine Beweise Schleifen Lesbarkeit ist genau so wichtig wie Geschwindigkeit String und Stringbuffer haben die gleichen Methoden 3
Theorie Relationen und Graphen 4
Aus der Vorlesung RELATIONEN - Überblick Durch Relationen werden Elemente einer oder mehrerer Mengen in Beziehung gesetzt praktisch jede Aussage enthält Relationen Beispiel: "Das Haus hat vier Außenwände" In der Informatik werden Relationen zur Modellierung von Systemen benötigt Relationen sind ein wesentlicher Bestandteil der verschiedenen Diagramme der Unified Modeling Language Aus der graphischen Darstellung von Relationen resultieren die Graphen 5
Relationen und Graphen Relationen Grundmengen U, V Notation: U V Jede Relation kann als Teilmenge des kartesischen Produkts (U V) (U V) angesehen werden Homogene Relation nur eine Grundmenge E, d.h. E E Die Informatik interessiert sich speziell für homogene Relationen mit einer endlichen Grundmenge E Durchnummerieren der Elemente e i mit i = 0,..., n - gerichtete Graphen ermöglichen eine anschauliche Darstellung 6
Aus der Vorlesung Gerichteter Graph Ein gerichteter Graph G ist ein Tupel (E,K) mit Grundmenge E = {e i } eine Menge von Ecken Relation K E E eine Menge von Kanten alternative Notationen für Kanten: (e,e ) K oder e G e e e 7
Aus der Vorlesung Zeichnerische Darstellung eines endlichen gerichteten Graphen Ein Graph heißt endlich, wenn E endlich ist Graphische Darstellung von o c Ecken als Punkte Kanten als Pfeile d o a o o b Die Positionierung der Ecken und Kanten ist beliebig Beispiel: Zwei mögliche Darstellungen des Graphen {(a,b),(a,c),(a,d),(b,c),(d,b),(d,c)} d o o c a o o b 8
Aus der Vorlesung Ungerichteter Graph Ungerichteter (allgemeiner Graph) die durch die Kanten ausgedrückte Beziehung beruht auf Gegenseitigkeit d.h. genau dann, wenn (e,e ) K ist auch (e,e) K Kanten werden in der zeichnerischen Darstellung als einfache Verbindung ohne Pfeilspitzen angegeben 9
Aus der Vorlesung Grad einer Ecke Ausgangsmenge e und Eingangsmenge e o c Menge der Kanten, die bzgl. der Ecke e aus- bzw. eingehen a o o b e heißt Ausgangsgrad, e heißt Eingangsgrad in einem ungerichteten Graphen gilt e = e = grad(e) und heißt Grad der Ecke e Für beliebige Graphen gilt: e E e e e E 0
Aufgabe 2: Graphen und Netze Gegeben ist der folgende Netzausschnitt. Es werden vier Endsysteme (,5,6,9) mit sechs Routern (0,2,3,4,7,8) teilweise vernetzt (siehe Abbildung). Die Pfeile legen die Verbindungen zwischen den Komponenten sowie die Kommunikationsrichtung für die zu übertragenden Datenpakete fest. Behalten Sie zur Bearbeitung der Teilaufgaben die Nummerierung bei. 3 0 2 9 8 7 4 5 5 6 6 a) Stellen Sie das Kommunikationsnetz als Graph dar. b) Was würde sich an der Aussage des Graphen ändern, wenn er ungerichtet wäre? c) Geben Sie für den gerichteten Graphen den Ein- und Ausgangsgrad jeder Ecke und den Grad des gesamten Graphen an.
Aufgabe 2: Graphen und Netze Lösung: a) Abstrakte Darstellung des Netzausschnitts als Graph G 3 3 9 0 8 7 4 2 5 5 9 0 8 7 2 4 5 6 6 6 b) Wenn der Graph ungerichtet ist, bedeutet das, dass in beide Richtungen Daten ausgetauscht werden können. Die Verbindungen müssen also bidirektional verwendbar sein. 2
Aufgabe 2: Graphen und Netze Lösung: c) Die Tabelle stellt die Ecke mit ihrem Eingangs- und Ausgangsgrad dar. Ecke Eingangsgrad. e Ausgangsgrad e. e0 3 e e2 3 2 e3 e4 e5 e6 e7 2 e8 e9 Gesamtgrad des Graphen: grad(g) = 3 3
Graphentheorie Adjazenzmatrix Adjazenzliste B A: [A, B] A C B: [C] C: [A] A B C A 0 B 0 0 C 0 0 "Von hier" "nach hier"
reflexive transitive Hülle Für die reflexive transitive Hülle wird der Graph um reflexive und transitive Kanten ergänzt Für bestehende "indirekte" Verbindungen wird eine "direkte" Verbindung hinzugefügt, sodass man sofort erkennen kann, welche Knoten von einem Ausgangsknoten erreichbar sind Reflexive Kanten: Jeder noch nicht mit einer Schlinge versehender Knoten wird um eine solche ergänzt Transitive Kanten: Wenn für beliebige Knoten e, e 2,, e n gilt: e e 2 e n, so wird die Kante, welche die Relation e e n repräsentiert, ergänzt B C A D
Warshall-Algorithmus Algorithmus zur Bestimmung der reflexiven transitiven Hülle Gegeben sei ein Graph mit n Knoten 0,, 2,, n- durch eine Adjazenzmatrix Anschauliche Durchführung des Algorithmus: Ergänze sämtliche Knoten um eine Schlinge (Einsen auf der Diagonalen der Matrix) Betrachte k-te Zeile der Matrix. Alle weiteren Zeilen, welche in Spalte k ebenfalls eine beinhalten müssen verändert werden: Sämtliche Nullen in diesen Zeilen werden durch eine Eins ersetzt, sofern die Ausgangszeile k an dieser Stelle eine enthält 3 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Aufgabe: Warshall-Algorithmus Geben Sie zu den folgenden Graphen die passenden reflexiven transitiven Hüllen in Form von Adjazenzmatrizen an. Dokumentieren Sie hierbei die Veränderungen nach jedem einzelnen Schritt des Algorithmus. 2 3 4 5 6 7
Lösung: Warshall-Algorithmus Lösung: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8
Boolesche Algebra 9
Boolesche Algebra 0-stellige Operationen: I, H -stellige Operationen: 2-stellige Operationen:, Bei Operationen gleicher Stelligkeit ist es wichtig, welche Operation eine stärkere Bindung hat Für die boolesche Algebra wird allgemein angenommen, dass stärker bindet als. Im Rahmen der Informatik binden die beiden Operatoren aber gleich stark! Alternative Darstellung des Komplements : Überstreichen des zu negierenden Ausdrucks (in Informatik nicht erwünscht!)
Boolesche Algebra Signatur der booleschen Algebra B = {A,I,H,,, } Gesetze V Assoziativität (x y) z = x (y z) (x y) z = x (y z) V2 Kommutativität x y = y x x y =y x V3 Idempotenz x x = x x x=x V4 Verschmelzung (x y) x = x (x y) y = y V5 Distributivität x (y z) = (x y) (x z) x y z) = (x y) (x z) V6 Modularität (falls z x gilt): x y z)= (x y) z V7 Neutrales Element x I = I x I = x x H = x x H = H V8 Komplement x x = I x x = H V9 Involution ( x) = x V0 DeMorgan (x y) = x y (x y) = x y
Aufgabe 2.: Aussagenlogik Vereinfachen (verkürzen) Sie den folgenden booleschen Ausdruck durch Anwendung von Regeln der Booleschen Algebra so weit es geht. (a (b (a b ))) Def Äquivalenz: a b = (a b) ( a b) 22
Aufgabe 2.: Aussagenlogik (a (b (a b ))) 23
Aufgabe 2: Boolesche Algebra Vereinfache folgenden booleschen Ausdruck: ( a (a b)) (Distributivität) (( a a) ( a b)) (Komplement) (I ( a b)) (neutr. Element) ( a b) (De Morgan) a b (Involution) a b
Boolesche Algebra (Kantorowitsch-Bäume) Ein Term der booleschen Algebra lässt sich durch einen sogenannten Kantorowitsch-Baum darstellen Aus diesem lässt sich leicht die Infix- Präfix- und Postfix- Schreibweise ablesen Beispiel: Stelle folgenden Term als Kantorowitsch-Baum dar: ( a (a b)) a a b
Boolesche Algebra (Kantorowitsch-Bäume) Gib den zum folgenden Kantorowitsch-Baum gehörigen Term der booleschen Algebra in Präfix- und Postfix- Schreibweise an! Präfix-Schreibweise: a a b Postfix-Schreibweise: a ab a a b
Aufgabe 3.2: Term d. booleschen Algebra u. Kantorowic-Baum Gegeben ist die in der Vorlesung eingeführte Boolesche Algebra. B = B (A, I, H,,, ) und folgender gegebenerterm ((N H) I) (P W). b) Geben Sie den Kantorowic-Baum an. Lösung b): Der Kantorowic-Baum zu dem Term lässt sich wie folgt darstellen: 27
Boolesche Algebra (Normalformen) Disjunktive Normalform: Disjunktion konjunktiv verknüpfter Teilterme z.b. ( a b c) (a b c) (a b c) Konjunktive Normalform: Konjunktion disjunktiv verknüpfter Teilterme z.b. ( a b c) (a b c) (a b c) In den Teiltermen müssen jeweils alle Variablen des gesamten Ausdrucks vorkommen!
Boolesche Algebra (Normalformen) Eine Möglichkeit, die DNF oder KNF eines booleschen Ausdrucks zu bestimmen ist das Ablesen der Normalform aus der Wahrheitstabelle Für die DNF betrachtet man die Zeilen, in denen der Ausdruck ergibt. Die Teilterme setzen sich nun so aus den links stehenden Werten zusammen, dass die Konjunktion der Variablen ergibt Für die KNF betrachtet man die Zeilen, in denen der Ausdruck 0 ergibt. Die Teilterme setzen sich nun so aus den links stehenden Werten zusammen, dass die Disjunktion der Variablen 0 ergibt a 0 b 0 a ( a b) 0 DNF: ( a b) (a b) (a b) 0 0 KNF: a b
Aufgabe 3: Boolesche Algebra (Normalformen) Weitere Möglichkeit zur Bestimmung der Normalform ist das Anwenden der booleschen Rechenregeln Beispiel: Überführe folgenden Ausdruck in disjunktive Normalform: (a b) c (a b) ( a b) c (a b H) ( a b H) c H) (a b c c)) ( a b c c)) c a a)) (a b c) a b c) ( a b c) ( a b c) c a) c a) Fehlt hier nur aus Platzgründen! Alle Schritte angeben! (a b c) a b c) ( a b c) ( a b c) (a b c) ( a b c)
Aufgabe 3.3: Normalformen Gegeben ist folgende Formel: (a b) c a) Bringen Sie diese Formel durch Umformung mit den Regeln der Booleschen Algebra in disjunktive Normalform. Geben sie bei den Umformungen jeweils die verwendeten Regeln an. b) Zeigen Sie durch eine Wertetabelle, dass Ihr Ergebnis aus Teilaufgabe a) korrekt ist. 3
Aufgabe 3.3: Normalformen Lösung a): (a b) c ((a b) ( a b)) c (Def. Äquivalenz) ((( a b) ( a b)) c) ( ((a b) ( a b)) c) (Def. Äquivalenz) ((( a b) ( a b)) c) ( (a b) ( a b) c) (DeMorgan, Assozativität.) ((( a b) ( a b)) c) (( a b) (a b) c) (DeMorgan, doppelte Negation) (a b c) ( a b c) (( a b) (a b) c) (Distributivität) (a b c) ( a b c) ((( a a) ( a b) ( b a) ( b b) ) c) (Distributivität) (a b c) ( a b c) (false ( a b) ( b a) false ) c) ( a a ist false) (a b c) ( a b c) ((( a b) (a b)) c) (Einheit, Kommutativität) (a b c) ( a b c) ( a b c) (a b c) 32 (Distributivität, Assoziativität)
Aufgabe 3.3: Normalformen Lösung b): a b c a b (a b) c a b c a b c a b c a b c 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Erg. 33
Fragen? Questions? Fragen? Fragen? Questions? Fragen? Ques Fragen? Questions? Fragen? Questions? Fragen? Questions? Fragen? Questions? Fragen? Questions? Fragen? Questions? Questions? Fragen? Questions? estions? Fragen? Questions? Fragen? Questions? 34
Bis bald 35
Credits Erstellung und Zusammenstellung des Materials: Christian Maier (Zusammenstellung) Stephan Kessler (Überarbeitung und Erweiterung) Till Fischer (Warshall-Algorithmus) 36