12. ¨Ubungsblatt - homepages.math.tu

Werbung
Technische Universität Berlin
Institut für Mathematik
ADM I – Graphen und Netzwerkalgorithmen
Sommersemester 2007
Prof. Dr. Stefan Felsner
Felix König
Elisabeth Günther
Torsten Ueckerdt
12. Übungsblatt
Abgabe: Freitag, 13.7.2007, vor der Übung
Dies ist das vorletzte Blatt der zweiten Semesterhälfte.
Aufgabe 45
5 Punkte
Zeigt, dass in einer knickmininalen orthogonal planaren Zeichnung eines planaren Graphen alle
Knicke einer Kante immer nur in die gleiche Richtung“ gehen. (Anders gesagt: Jede Fläche bildet
”
mit einer sie begrenzenden Kante entweder nur kleine oder nur große Knicke.)
a) Gebt einen geometrischen Beweis an.
b) Gebt einen Beweis an, der über kostenminimale Flüsse argumentiert.
Aufgabe 46
5 Punkte
Das Resultat von Aufgabe 3 auf Blatt 1 war, dass die Hall Condition ein notwendiges und
hinreichendes Kriterium für die Existenz eines perfekten Matchings in einem bipartiten Graphen
ist.
Gebt einen Beweis dieser Tatsache an, dessen Argumentation auf maximalen Flüssen beruht
und keine Induktion benutzt.
Aufgabe 47
5 Punkte
Sei G = (V, E) ein bipartiter Graph und M ein Matching in G. Gebt einen polynomiellen
Algorithmus an, der direkt (d.h. ohne den Umweg über ein Flussproblem) einen M -augmentierenden
Weg in G findet oder feststellt, dass es keinen solchen gibt, und argumentiert, warum er korrekt
arbeitet.
Aufgabe 48
5 Punkte
Slither ist ein Zwei-Personen-Spiel, das auf einem Graphen G = (V, E) gespielt wird: Die Spieler
First und Second ziehen abwechselnd, wobei First das Spiel beginnt.
Ein Spielzug besteht in der Auswahl einer bisher von keinem Spieler gewählten Kante. Nach
jedem Zug muss die Menge aller von den Spielern gewählten Kanten einen elementaren Weg (also
einen Weg ohne Knotenwiederholungen) darstellen. Wer zuerst nicht mehr ziehen kann, verliert.
a) Zeigt, dass First seinen Sieg erzwingen kann, falls es ein perfektes Matching in G gibt.
b) Ein Knoten v ∈ V heißt inessenziell, falls es ein maximales Matching in G gibt, das v nicht
überdeckt. Zeigt, dass Second seinen Sieg erzwingen kann, falls First als erstes eine Kante
(u, v) mit u inessenziell wählt.
Programmieraufgabe 10 (Abnahme während einer der RBs am 13.7.2007):
Gegeben sei ein Schachbrett (d.h. ein schwarz-weiß kariertes Rechteck) der Größe n × m, in dem
einige Felder fehlen“. Das ganze könnte in etwa so aussehen (links die zugehörige Eingabedatei mit
”
der Größe des Schachbretts in der ersten und den Koordinaten der linken oberen Ecke der fehlenden
Felder in den folgenden Zeilen):
x
y
7 x 6
1, 1
2, 1
3, 4
6, 4
Ziel ist es, so viele Dominosteine (also 1×2 oder 2×1 Rechtecke) wie möglich auf dem Schachbrett
zu platzieren, ohne fehlende“ Felder zu überdecken. Natürlich dürfen die Dominosteine auch nicht
”
über den Rand des Schachbretts hinausragen.
Benutzt den Algorithmus aus Aufgabe 47 und implementiert ein Programm, das Instanzen im
oben angegebenen Format einlesen kann und die Anzahl und Koordinaten der maximal auf dem
Schachbrett platzierbaren Dominosteine berechnet und ausgibt. Testdateien gibt es auf der HP.
Herunterladen