MafI I: Logik & Diskrete Mathematik (F. Hoffmann)

Ähnliche Dokumente
Definition Ein gerichteter Graph G = (V, E) ist ein Graph von geordneten Paaren (u, v) mit u V und v V.

KAPITEL 3 MATCHINGS IN BIPARTITEN GRAPHEN

Studientag zur Algorithmischen Mathematik

Lösungen zur Klausur zur Vorlesung. Mathematik für Informatiker I. (Dr. Frank Hoffmann) Wintersemester 2011/ Februar 2012

Dieser Graph hat 3 Zusammenhangskomponenten

Tutoraufgabe 1 (Suchen in Graphen):

Graphdurchmusterung, Breiten- und Tiefensuche

Übung zur Vorlesung Diskrete Strukturen I

Bemerkung: Der vollständige Graph K n hat n(n 1)

(a, b)-bäume / 1. Datenmenge ist so groß, dass sie auf der Festplatte abgespeichert werden muss.

Freie Bäume und Wälder

Breitensuche BFS (Breadth First Search)

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

2. November Gradfolgen Zusammenhang Kürzeste Wege. H. Meyerhenke: Algorithmische Methoden zur Netzwerkanalyse 37

Algorithmische Graphentheorie

Lösungen zu Kapitel 5

Aufgabe 4.2 Sei G = (V, E, l) ein ungerichteter, gewichteter und zusammenhängender Graph.

Übung zur Vorlesung Diskrete Mathematik (MAT.107) Blatt Beispiellösungen Abgabefrist:

Resolutionskalkül. wird t als eine Menge K t von Klauseln geschrieben, welche die einzelnen Maxterme repräsentieren:

Übung zur Vorlesung Diskrete Strukturen I

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Esparza)

Matchings in Graphen. Praktikum Diskrete Optimierung (Teil 5)

1 DFS-Bäume in ungerichteten Graphen

2.4 Starke Zusammenhangskomponenten in Digraphen

3 Klassifikation wichtiger Optimierungsprobleme

Algorithmen und Datenstrukturen

Ferienkurs zur algorithmischen diskreten Mathematik Kapitel 1: Grundlagen der algorithmischen Graphentheorie

15. Elementare Graphalgorithmen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Klausur Theoretische Informatik I WS 2004/2005

Zentralübung zur Vorlesung Diskrete Strukturen

Algorithmen und Datenstrukturen 2-1. Seminar -

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Graphen und Bäume. A.1 Graphen

Zentralübung zur Vorlesung Diskrete Strukturen (Prof. Mayr)

Diskrete Mathematik 1

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Klausur zum Modul Einführung in die Diskrete Mathematik

Vorlesung 3: Graphenalgorithmen. Markus Püschel David Steurer Peter Widmayer. PDF download goo.gl/ym3spq

\ E) eines Graphen G = (V, E) besitzt die gleiche Knotenmenge V und hat als Kantenmenge alle Kanten des vollständigen Graphen ohne die Kantenmenge E.

Definition Gerichteter Pfad. gerichteter Pfad, wenn. Ein gerichteter Pfad heißt einfach, falls alle u i paarweise verschieden sind.

Algorithmen und Datenstrukturen Übung #4 BFS/DFS, Wachstum von Funktionen

Aufgaben zur Klausurvorbereitung

Berechnung von Abständen

Übungsblatt 2 - Lösung

Minimal spannender Baum

8 Diskrete Optimierung

Isomorphie von Bäumen

Vorlesung Datenstrukturen

Datenstrukturen und Algorithmen (SS 2013)

Kapitel 7: Flüsse in Netzwerken und Anwendungen Gliederung der Vorlesung

Graphen: Rundwege, Kodierung von Bäumen

Algorithmische Graphentheorie

9. Übung Algorithmen I

Einheit 11 - Graphen

Resolution (Idee) Aus der Herleitung der leeren Disjunktion (= leere Klausel) folgt Unerfüllbarkeit.

Kapitel IV Minimale Spannbäume

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

NAME, VORNAME: Studiennummer: Matrikel:

Verteilen von Bällen auf Urnen

Klausur Algorithmentheorie

Effiziente Algorithmen I

Bäume und Wälder. Definition 1

Resolutionsalgorithmus

Diskrete Strukturen Wiederholungsklausur

Diskrete Mathematik Graphentheorie (Übersicht)

Richtig oder falsch? Richtig oder falsch? Richtig oder falsch? Mit dynamischer Programmierung ist das Knapsack- Problem in Polynomialzeit lösbar.

Klausur. 18. Juli 2008, 10:15-12:15 Uhr. Name:... Matrikelnummer:... Anzahl beschriebener Blätter (ohne Aufgabenblatt):... D(p) : Y = p x X + p y

Nachbarschaft, Grad, regulär, Inzidenz

Seien u, v V, u v. Da G zusammenhängend ist, muss mindestens ein Pfad zwischen u und v existieren.

Bäume und Wälder. Definition 1

Algorithmus zur topologischen Nummerierung: while V = 0 do nummeriere eine Quelle mit der nächsten Nummer streiche diese Quelle aus V od

1 Pfade in azyklischen Graphen

lässt sich auch ableiten, dass es einen augmentierenden Pfad der Länge höchstens

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Vorlesung Diskrete Strukturen Eulersche und Hamiltonsche Graphen

Felix Brandt, Jan Johannsen. Vorlesung im Wintersemester 2008/09

Kapitel 3: Untere Schranken für algorithmische Probleme Gliederung

3. Minimale Spannbäume. Definition 99 T heißt minimaler Spannbaum (MSB, MST) von G, falls T Spannbaum von G ist und gilt:

Bäume und Wälder. Seminar: Graphentheorie Sommersemester 2015 Dozent: Dr. Thomas Timmermann

ADS: Algorithmen und Datenstrukturen 2

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Das Heiratsproblem. Definition Matching

Informatik B Sommersemester Musterlösung zur Klausur am

Lösungsvorschlag Hausübung 8

Wie wird ein Graph dargestellt?

Univ.-Prof. Dr. Goulnara ARZHANTSEVA

Pro Informatik: Logik und Diskrete Mathematik. Klausur am

Theoretische Grundlagen der Informatik

Transkript:

Lösungen zum 14. und letzten Aufgabenblatt zur Vorlesung MafI I: Logik & Diskrete Mathematik (F. Hoffmann) 1. Ungerichtete Graphen (a) Beschreiben Sie einen Algorithmus, der algorithmisch feststellt, ob ein in Adjazenzlistenform gegebener ungerichteter schlichter Graph mehr als einen Kreis besitzt. Lösungsidee: Ein solcher Graph G = (V, E) hat mehr als einen Kreis, wenn es mindestens zwei Zusammenhangskomponenten gibt mit je einem Kreis oder eine Zusammenhangskomponente mit mindestens Kreisen. Eine Zusammenhangskomponente hat genau einen Kreis, falls Anzahl von Kanten gleich Anzahl von Knoten ist, sie also aus einem aufspannenden Baum plus einer Kante besteht. Gibt es in der Komponente mehr Kanten als Knoten, so hat sie wenigstens zwei Kreise. Algorithmisch kann man das am einfachsten umsetzen, indem man mit einer Zählvariable c die Anzahl der Zusammenhangskomponenten bestimmt, c zählt wie oft bei DFS die äußere Schleife gestartet wird und dann überprüft man ob E V c ist. (b) Bestimmen Sie in einem ungerichteten Baum möglichst effizient den Durchmesser, das heißt die Länge eines längsten Weges im Baum. Lösung: Der Durchmesser eines ungerichteten zusammenhängenden Graphen ist das Maximum über alle paarweisen Abstände. Da in einem Baum aber zwischen zwei Knoten genau ein Weg existiert, ist der gleichzeitig kürzester und längster Weg zwischen diesen Knoten. Da der längste Weg in einem Baum in einem Blatt startet und in einem Blatt endet, kann man also für jedes Blatt BFS starten und so leicht den Durchmesser bestimmen. Es geht noch effizienter, der Korrektheitsbeweis ist aber dann nicht so einfach. Wir starten BFS in einem beliebigen Knoten r des Baumes und finden ein Blatt l 1 mit maximalem Abstand von r. Danach starten wir nochmals eine Breitensuche in l 1 und finden ein Blatt l mit maximalem Abstand von l 1. Dann ist d(l 1, l ) der Durchmesser des Baumes. Korrektheitsbeweis: Seien p der vom Algorithmus gefundene Weg von l 1 nach l und q von a nach b ein tatsächlich längster Weg im Baum. Es ist klar, dass a, b Blätter sein müssen. Zu zeigen ist, dass d(a, b) = d(l 1, l ) gilt. Lemma: p und q sind nicht disjunkt. Beweis: (indirekt) Angenommen, sie sind es doch. Dann gibt es einen eindeutigen (wegen Baum!) kürzesten Weg von p nach q, etwa zwischen den Knoten u p und v q. Wegen der Wahl von l als Blatt mit maximalem Abstand von l 1 gilt: Aber damit ist: d(l, u) 1 + d(v, b), d(l, u) 1 + d(v, a) max{d(l, a), d(l, b)} > d(v, a) + d(v, b) = d(a, b)

Das steht im Widerspruch zur Maximalität von q. Sei also p = zz das gemeinsame Wegstück von p und q und wir können annehmen, dass p echt kürzer ist als q, sonst gibt es nichts zu zeigen. Sei weiterhin r der Knoten in p q mit minimalem Abstand zu r, möglich ist r = r. l 1 ist nach Definition ein Blatt mit maximalem Abstand zu r, also in p q mit maximalem Abstand zu r. Insbesondere: Fall 1: a = l 1 = z Dann ist d(l 1, l ) d(l 1, b) = d(a, b) d(r, l 1 ) max{d(r, a), d(r, b)} Fall : a l 1 und o.b.d.a. liegen beide auf derselben Seite von p, siehe Abb. Wegen der Auswahl von l bzgl. l 1 wissen wir: d(z, l ) max{d(z, a), d(z, b)} Nun müssen wir nur noch die mögliche Lage von r diskutieren. Fall.1: r zwischen a und z d(l 1, l ) = d(l 1, z) + d(z, l ) d(z, b) + d(z, l ) d(z, b) + d(z, a) = d(a, b) Fall.: r zwischen l 1 und z d(l 1, l ) d(l 1, r ) + d(z, b) d(a, r ) + d(z, b) d(z, a) + d(z, b) Fall.3: r liegt bzgl a und l 1 hinter z: d(l 1, l ) = d(l 1, z) + d(z, l ) d(a, z) + d(z, b) = d(a, b) a b p z z l 1 l. Entscheidungsbäume Sie haben 4 gleichaussehende Münzen, von denen leider genau eine falsch ist. Die falsche Münze kann leichter oder schwerer sein als die anderen. Stellen Sie dies algorithmisch (was ist die Fälschung und ist sie leichter oder schwerer) mit einer Balkenwaage fest! Wie viele Wägungen benötigt Ihr Algorithmus? Lösung: Man kann die Arbeitsweise eines Algorithmus für eine Instanz dieses Problems interpretieren als Weg in einem ternären Baum. Die drei ausgehenden Kanten in einem inneren Knoten repräsentieren die drei möglichen Ergebnisse einer Wägung. In den Blättern steht dann, welche Münze falsch ist und ob zu schwer oder leicht. Da es insgesamt 8 mögliche Ergebnisse gibt, muss der Baum wenigstens Tiefe haben, denn

dann hat er 9 Blätter. Dass es mit zwei Versuchen aber nicht geht sieht man wie folgt. 1. Versuch: Zwei gegen Zwei. Anschließend kann man 4 Antworten ausschließen. Die restlichen 4 Antworten kann man aber nicht mit einem Versuch (3 Ergebnisse) unterscheiden. 1. Versuch: Eins gegen Eins. Bei Gleichheit kann man wieder nur 4 Antworten ausschließen. Man braucht also mindestens 3 Wägungen, damit geht es aber, wie folgender Entscheidungsbaum beweist. Seien die Münzen a,b,c und d. a vs. b / \ a<b a=b a>b / \ a+b vs. c+d a+b vs. c+d / \ / \ < > < > / \ / \ a- b+ c vs.d b- a+ / \ < > / \ c vs.a c vs.a / \ / \ = < > = / \ / \ d+ c- c+ d- Dabei bedeutet a+, dass Münze a zu schwer ist, a- heißt Münze a zu leicht. 3. Gerichtete Graphen (a) Betrachten Sie die Teilbarkeitsrelation in der Menge {1,, 3, 6, 8, 1, 4, 36}. Bestimmen Sie für den dabei entstehenden gerichteten Graphen mit Tiefensuche eine topologische Sortierung. Lösung: wurde korrigiert (b) Wir definieren rekursiv die Folge der gewurzelten Fibonacci-Bäume T n. T 1 und T bestehen jeweils nur aus der Wurzel. T n für n 3 besteht aus der Wurzel mit T n 1 und T n als linken und rechten Unterbaum. Bestimmen Sie geschlossene Formeln für Knotenzahl, Kantenzahl und Höhe von T n. Lösung: Sei v n die Knotenzahl des T n und e n = v n 1 die Kantenzahl. Wir haben v 1 = v = 1 und v n = v n 1 + v n + 1. Dies ist eine inhomogene Rekursionsgleichung. Deren homogener Teil ist die Standard-Fibonacci-Rekursion mit der allgemeinen Lösung c 1 ( 1 + 5 ) n + c ( 1 5 ) n wobei die Konstanten noch zu bestimmen sind. Der inhomogene Teil ist eine konstante Funktion und tasächlich ist 1 eine spezielle Lösung der inhomogenen Rekursionsgleichung, denn 1 = 1 + ( 1) + 1. Wir bestimmen die Konstanten c 1

und c aus den Randbedingungen. Es muss gelten: 1 = c 1 ( 1 + 5 1 = c 1 ( 1 + 5 ) 1 + c ( 1 5 ) 1 1 ) + c ( 1 5 ) 1 Daraus erhält man c 1 = 5 und c = 5. Die geschlossene Formel für die Knotenzahl des Fibonacci-Baumes T n ist also v n = ( 1 + 5 ) n ( 1 5 ) n 1 5 5 Dagegen ist die Frage nach der Höhe h n von T n sehr einfach zu beantworten. Es ist h n = n für n 3 und h 1 = h = 0, in jedem Schritt wächst die Höhe nach Konstruktion um 1. 4. Resolution Zeigen Sie mit der Resolutionsmethode (!), dass die Formel F = ( B C D) ( B D) (C D) B eine Tautologie ist. Lösung: Wir zeigen, dass F eine Kontradiktion ist, indem wir aus der zugehörigen Klauselmenge die leere Klausel ableiten, siehe Graphik Und wie ist es mit der Unerfüllbarkeit der folgenden Klauselmenge: {{ x 1, x, x 3 }, { x 1, x, x 3 }, {x 1, x }, { x, x 3 }, { x, x 3 }} Benutzen Sie auch hier den Resolutionskalkül. Lösung: Wir zeigen auch hier, dass die leere Klausel ableitbar ist.

{B, C, D} {B, D} { C, D} { B} {B, C} {B, C} {B} { x 1, x, x 3 } { x 1, x, x 3 } {x 1, x } { x, x 3 } { x, x 3 } { x 1, x } { x } { x 1 } {x 1 }