Ubungsblatt 2 - Institut für Formale Methoden der Informatik

Werbung
Algorithmen und Berechenbarkeit / Formale Methoden
Hertrampf/Eisner
WS 2011/2012
Institut für Formale
Methoden der Informatik
Universität Stuttgart
http://www.fmi.uni-stuttgart.de/ti
Übungsblatt 2
Abgabe: 22.November 2011; 12:00 Uhr
Konvention: Soweit nicht anders angegeben, sind alle betrachteten Graphen in der Übung einfach (keine Schlingen
oder Mehrfachkanten).
Problem 1 (5 P.)
Erinnerung: Der Begriff Zusammenhangskomponente (ZHK) in einem Graphen G = (V, E) kann wie folgt definiert
werden: Man führt die Äquivalenzrelation R, “Erreichbarkeit” auf den Knoten von G ein - uRv ⇔ es existiert ein
Pfad von u nach v in G. Damit zerfällt V in eine oder mehrere Äquivalenzklassen - die Zusammenhangskomponenten. Ein Graph heißt zusammenhängend wenn er aus nur einer ZHK besteht.
Ein Cut in einem zusammenhängenden Graphen G = (V, E) ist eine Teilmenge von Kanten E 0 ⊆ E für die gilt:
G0 = (V, E \ E 0 ) zwerfällt in zwei ZHK’s. Ein minimaler Cut in G ist ein Cut mit der minimal möglichen Anzahl
von Kanten.
Gegeben sei ein zusammenhängender Graph G = (V, E). Ein randomisierter Algorithmus um einen minimalen
Cut in G zu finden kann wie folgt definiert sein:
randMinCut(G = (V, E))
while (|V | > 2)
wähle zufällig, gleichverteilt eine Kante e ∈ E
kontrahiere(e)
gebe alle Kanten zwischen den verbliebenen 2 Knoten zurück
Die Funktion kontrahiere(e) verschmilzt die beiden zu e inzidenten Knoten und entfernt alle entstehenden
Schleifen. Die Menge V wird also in jedem Durchgang um genau einen Knoten kleinen und der Graph kann
Mehrfachkanten enthalten.
Schätzen Sie die Laufzeit des Algorithmus ab. Wurde in der Vorlesung eine Graphdatenstruktur vorgestellt, die
kontrahiere(e) in O(1) unterstützt?
Unter welchen Bedingungen ist die zurückgegebene Kantenmenge wirklich ein minimaler Cut in G? Wann macht
der Algorithmus Fehler?
Warum ist es besser Kanten zufällig, gleichverteilt zu wählen und nicht einen zufälligen Knoten v ∈ V und einen
adjazenten zweiten Knoten u ∈ V ?
Geben Sie eine untere Schranke für die Wahrscheinlichkeit an, dass der Algorithmus tatsächlich einen korrekten
minimalen Cut zurück gibt.
Hinweis: Um letztere Frage zu beantworten, sollten Sie die folgenden Teilfragen beantworten : Wenn der minimale
Cut aus k Kanten besteht - wie viele Kanten hat G dann mindestens? Wie hoch ist die Wahrscheinlichkeit im
ersten (i’ten) Schritt eine Kante aus dem (tatsächlichen) min Cut zu kontrahieren?
Problem 2 (5 P.)
Ein Graph ist planar gdw. er in eine Ebene eingebettet (“gezeichnet”) werden kann, ohne dass sich zwei Kanten
überschneiden.
Die Einbettung des Graphen in die Ebene zerlegt diese in disjunkte Gebiete.
Beweisen Sie dass für jeden planaren, zusammenhängenden Graph gilt:
Knotenzahl − Kantenzahl + Gebietszahl = 2.
Warum muss es in jedem planaren, zusammenhängenden Graphen einen Knoten vi mit deg(vi ) < 6 geben?
Problem 3 (5 P.)
Die topologische Sortierung eines Graphen G = (V, E) ist eine bijektive Abbildung φ : V → N, welche jedem
Knoten v ∈ V eine eineindeutige natürliche Zahl zuordnet, so dass gilt: ∀e = (u, v) ∈ E ⇒ φ(u) < φ(v).
Beweisen Sie, dass jeder zyklenfreie Graph eine solche Sortierung besitzt und diese effizient gefunden werden kann.
Geben Sie dazu einen linearzeit Algorithmus an, der für einen gegebenen, zyklenfreien Graph G ein solches φ
findet.
Problem 4 (5 P.)
Sie bekommen aus zweifelhafter Quelle einen Rubik-Würfel zugesteckt und sollen die Frage beantworten, ob dieser
in seine sortierte Ausgangskonfiguration überführt werden kann. (Das ist möglicherweise nicht der Fall, wenn er
zerlegt und falsch zusammengebaut wurde.)
Modellieren Sie dieses Problem als ein in der Vorlesung besprochenes Graphproblem. Erklären Sie den Aufbau
des Graphen und geben Sie an, wie Sie mit diesem Graphen verfahren, um das Problem zu lösen.
Können Sie mit dieser Modellierung noch mehr über die Ihnen übergebene Konfiguration aussagen?
Für die Freunde von Rubik-Würfeln: Können Sie mehr über den von Ihnen modellierten Graph aussagen?
Herunterladen