Tutorium 23 Grundbegriffe der Informatik (7. Sitzung) Tutor: Felix Stahlberg SOFTWARE DESIGN AND QUALITY GROUP Source: pixelio.de KIT – The cooperation of Forschungszentrum Karlsruhe GmbH and Universität Karlsruhe (TH) Agenda - 7. Sitzung Anmerkungen zu den Übungsblättern Gerichtete Graphen Ungerichtete Graphen Repräsentation im Rechner Erreichbarkeit in Graphen 2 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Abschreiben (Ich hab euch gewarnt…) Halbwegs schlechte Idee: Abschreiben Wenn „offensichtlich“: < die Hälfte der Punkte Sehr schlechte Idee: gedankenlos Abschreiben Wenn „offensichtlich“: 0 Punkte 3 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Agenda - 7. Sitzung Anmerkungen zu den Übungsblättern Gerichtete Graphen Ungerichtete Graphen Repräsentation im Rechner Erreichbarkeit in Graphen 4 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Gerichtete Graphen (1) Eingangsgrad: 1 Ausgangsgrad: 0 Grad: 1 Knoten Eingangsgrad: 2 Ausgangsgrad: 2 Grad: 4 0 3 1 2 Schlinge Kante Gerichteter Graph ist ein 2-Tupel G = (V, 𝐸) mit 𝑉 ist Knotenmenge und 𝐸 ⊆ 𝑉 × 𝑉 ist Kantenmenge. Hier: G = (𝔾4 , * 0,1 , 0,2 , 0,3 , 2,0 , 3,2 , 3,3 + 5 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Gerichtete Graphen (2) 0 3 1 2 Wiederholungsfreier Pfad (3, 2, 0, 1) 6 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Gerichtete Graphen (3) 0 3 1 2 Pfad (0, 3, 3, 3) 7 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Gerichtete Graphen (4) 0 3 1 2 Wiederholungsfreier 3-Zyklus (2, 0, 3, 2) 8 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Gerichtete Graphen (5) Unzusammenhängend 0 Streng Zusammenhängend 0 3 2 1 9 11.12.2010 2 1 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik 3 Gerichtete Graphen (Teilgraphen) 3 0 1 4 2 5 3 Isomorph 1 10 11.12.2010 0 2 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik 4 5 Gerichtete Graphen (Planarität) Nicht Planar Planar 3 3 0 1 4 2 5 4 1 11 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik 5 0 2 Gerichtete Graphen (Planarität) Nicht Planar 0 Planar 0 3 3 1 12 11.12.2010 2 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik 1 2 Gerichtete Graphen (Baum) Wurzel ∃𝑟 ∈ 𝑉: ∀𝑣 ∈ 𝑉: ∃ 𝑔𝑒𝑛𝑎𝑢 𝑒𝑖𝑛 𝑃𝑓𝑎𝑑 𝑣𝑜𝑛 𝑟 𝑛𝑎𝑐 𝑣 Innere Knoten Blätter 13 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Gerichtete Graphen (Aufgaben) 14 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Gerichtete Graphen (Aufgaben) 15 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Gerichtete Graphen (Aufgaben) 16 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Gerichtete Graphen (Aufgaben) 17 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Agenda - 7. Sitzung Anmerkungen zu den Übungsblättern Gerichtete Graphen Ungerichtete Graphen Repräsentation im Rechner Erreichbarkeit in Graphen 18 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Ungerichtete Graphen (Definition) Informell: Ungerichtete Graphen sind gerichtete Graphen ohne Pfeilspitzen. Formal: Ein ungerichteter Graph ist ein 2-Tupel G = (V, 𝐸) mit 𝑉 ist Knotenmenge 𝐸 ⊆ **𝑥, 𝑦+|𝑥 ∈ 𝑉 𝑦 ∈ 𝑉+ ist Kantenmenge Begriffe wie Schlingen, Zyklen, Zusammenhang, Isomorphie etc. analog zum gerichteten Fall definiert. 0 3 1 2 19 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Hier: G = (𝔾4 , 0,1 , 0,2 , 0,3 , 2,3 , 3 ) Ungerichtete Graphen (Bäume) Isomorph Isomorph Der ungerichtete Graph G = (V, 𝐸) ist ein Baum gdw. G ist zyklenfrei? Reicht nicht... G ist zyklenfrei und zusammenhängend? Scheint korrekt zu sein In der Klausur Definitionen aus Vorlesung benutzen! 20 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Ungerichtete Graphen (Aufgaben(1a)) Zeichnen Sie möglichst viele gerichtete Bäume mit genau vier Knoten Je zwei Graphen dürfen nicht isomorph zueinander sein. 21 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Ungerichtete Graphen (Aufgaben(1b)) Zeichnen Sie möglichst viele ungerichtete Bäume mit genau fünf Knoten Je zwei Graphen dürfen nicht isomorph zueinander sein. 22 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Ungerichtete Graphen (Aufgaben(2)) Zeichnen Sie möglichst viele ungerichtete, zusammenhängende, schlingenfreie Graphen Je zwei Graphen dürfen nicht isomorph zueinander sein. 23 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Ungerichtete Graphen (Aufgaben(3)) Sei 𝐺 = (𝑉, 𝐸) ein ungerichteter Graph mit 𝑛 Knoten. Wieviel Kanten kann 𝐺 maximal haben, wenn 𝐺 schlingenfrei ist? 1 𝑛(𝑛 2 − 1) Wieviel Kanten kann 𝐺 maximal haben, wenn 𝐺 Schlingen haben darf? 1 𝑛 2 24 11.12.2010 1 𝑛 − 1 + 𝑛 = 2 𝑛(𝑛 + 1) Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Agenda - 7. Sitzung Anmerkungen zu den Übungsblättern Gerichtete Graphen Ungerichtete Graphen Repräsentation im Rechner Erreichbarkeit in Graphen 25 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Repräsentation im Rechner (1) Viele verschiedene Ansätze mit unterschiedlichen Vor- und Nachteilen bezüglich Platzeffizienz Effizienz von Operationen Knoten/Kanten hinzufügen/entfernen Vereinigung/Schnitt Traversierung uvm… Flexibilität bezüglich Kanten/Knotengewichte Algebraische Handhabbarkeit Hier: Nur Adjazenzlisten und Adjazenzmatrizen Beide Datenstrukturen in der Praxis eher selten eingesetzt Hier: Stelle ungerichtete Kanten als bidirektionale gerichtete Kanten dar 26 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Repräsentation im Rechner (2) 0 1 2 3 Adjazenzliste v[0] = {1,3} v[1] = { } v[2] = {1, 2, 3} v[3] = {2} Adjazenzmatrix 0 1 2 3 • Schneller Zugriff auf Knoten („Gib mir alle Nachbarn von X“) • Platzsparend für kleine Graphen 27 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik 0 1 2 3 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 • Schneller Zugriff auf Kanten („Ist X mit Y adjazent?“) • Platzsparend für dichte große Graphen Repräsentation im Rechner (Fragen) Wie erkennt man anhand der Adjazenzmatrix, ob der Graph schleifenfrei ist? Keine 1en auf der Hauptdiagonalen Wie sieht die Adjazenzmatrix von ungerichteten Graphen aus? Symmetrisch 28 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Agenda - 7. Sitzung Anmerkungen zu den Übungsblättern Gerichtete Graphen Ungerichtete Graphen Repräsentation im Rechner Erreichbarkeit in Graphen 29 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Erreichbarkeit in Graphen (Definition) Sei 𝐺 = (𝑉, 𝐸) ein Graph. Knoten 𝑦 ∈ 𝑉 heißt von 𝑥 ∈ 𝑉 aus erreichbar gdw. es einen Pfad in 𝐺 von 𝑥 nach 𝑦 gibt. Knoten 𝑦 ∈ 𝑉 heißt von 𝑥 ∈ 𝑉 aus 2-erreichbar gdw. es einen Pfad in 𝐺 der Länge 2 von 𝑥 nach 𝑦 gibt. Durch Matrizen beschreibbar (Wegematrix, 2Erreichbarkeitsmatrix…) Mittels Matrixmultiplikation berechenbar aus der Adjazenzmatrix 30 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Erreichbarkeit in Graphen (1) 0 1 2 3 Adjazenzmatrix 0 1 2 3 0 1 2 3 0 0 0 0 1 0 1 0 0 0 1 1 1 0 1 0 „Ist X mit Y adjazent?“ 31 11.12.2010 2-Erreichbarkeitsmatrix 0 1 2 3 0 1 2 3 0 0 0 0 0 0 1 1 1 0 1 1 0 0 1 1 „Ist X mit Y über einen Knoten Z adjazent?“ Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Wegematrix 0 1 2 3 0 1 2 3 1 0 0 0 1 1 1 1 1 0 1 1 1 0 1 1 „Ist Y von X aus erreichbar?“ Erreichbarkeit in Graphen (Aufgabe) 0 1 2 3 Aufgabe: Berechne… Adjazenzmatrix „Ist X mit Y adjazent?“ 32 11.12.2010 2-Erreichbarkeitsmatrix „Ist X mit Y über einen Knoten Z adjazent?“ Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik Wegematrix „Ist Y von X aus erreichbar?“ Fragen? 33 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik http://xkcd.com/403/ 34 11.12.2010 Felix Stahlberg: www.das-tutorium.de Tutorium 23 für Grundbegriffe der Informatik