Ausgewählte Graphenalgorithmen 17. Januar 2008 Gehalten im Wintersemester 2007 / 2008 von Prof. Dr. Michael Kaufmann und Dr. Katharina Zweig Mitschrift von Till Helge Helwig und Bastian Brodbeck 1 1 Ausgewählte Graphenalgorithmen 1 TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Teilgraphen mit besonderen Eigenschaften Zum Aufbau der Vorlesungsmitschrift in diesem Teil Wir werden im Lauf der Vorlesung immer wieder natürlichsprachliche Formulierungen formalisieren und auf der anderen Seite Formalisierungen wieder in natürlichsprachliche Formulierungen umformen. Bitte bearbeiten Sie zur Übung dieser Fähigkeit die vielen kleinen Extraaufgaben, die in die Vorlesung und in dieses Skript eingearbeitet wurden. Wann immer Sie eine natürlichsprachliche Formulierung sehen, versuchen Sie, selber eine Formalisierung zu nden, und umgekehrt. Legen Sie sich zum Lernen auf die Klausur ein Blatt Papier und Bleistift neben das Skript und machen Sie sich immer wieder kleine Beispiele, an denen Sie Ihr Verständnis des Textes erproben können. Wenn G dicht ist, d.h., viele der im ungerichteten Fall n(n−1)/2 möglichen Kanten existieren, werden in manchen O(n) oder O(log n) Kanten) gesucht, die gewisse Eigenschaften Applikationen dünne Teilgraphen (mit nur haben, zum Beispiel in den folgenden Situationen: 1. Soziale Netzwerkanalyse: Soziologen beschäftigen sich seit mehreren Jahrzehnten mit der Frage, wie soziale Netzwerke beschaen sind. Sie untersuchen beispielsweise das Datingverhalten an amerikanischen Schulen [2] oder das Kollaborationsverhalten von Naturwissenschaftlern [9]. In diesem Gebiet gibt es viele spannende Teilfragen, zum Beispiel die nach dem 'wichtigsten' Teilnehmer in einem solchen Netzwerk, z.B., in der Untersuchung nach dem ersten HIV-Inzierten in Amerika. Sehr auällig ist bei sozialen Netzwerken, dass die meisten Knoten einer oder mehreren Gruppen von Knoten zugeordnet werden können, deren Elemente untereinander wesentlich stärker vernetzt sind als Knoten unterschiedlicher Gruppen. Solche dichten Teilgraphen werden auch 2. Cluster genannt. Minimale Spannbäume (MST): Minimale Spannbäume wurden schon in der Grundlagenvorlesung vorgestellt: Gegeben ein gewichteter 1 oder ungewichteter Graph suchen wir einen Spannbaum , dessen Gewicht, also die Summe der in ihm enthaltenen Kanten, minimal ist. Dieses Problem ist polynomiell lösbar mit einem Algorithmus, dessen Laufzeit in 3. Om log m liegt. Kommunikationsnetzwerk: In vielen Kommunikationsnetzwerken erfolgt die Kommunikation (wenigstens annähernd) über kürzeste Wege und oftmals sinkt die Qualität der Kommunikation mit der Zahl der Zwischenstationen. Es wäre daher zwar wünschenswert, aber einfach zu teuer, alle Teilnehmer direkt miteinander zu verbinden . In einer solchen Situation ist ein Teilgraph gesucht, der für die meisten Kommunikationspartner die Kommunikation über nicht allzu viele Zwischenstationen routen kann, dessen 'Umwege' also für die Kommunikationspartner klein sind. Wenn die Kosten für den Bau des Netzwerkes sehr hoch sind, muss im Extremfall ein Spannbaum gefunden werden, der diese Bedingung erfüllt. 4. Zusätzliche Komplikation: Wenn nun in einem solchen Netzwerk Kommunikation immer nur exklusiv auf einer Kante stattnden kann, also Mehrfachnutzung derselben Verbindung nicht möglich ist, dann suchen wir nicht so sehr nach einem dünnen Teilgraphen mit wenig Umwegen, sondern nach einem, der für viele Kommunikationsparter möglichst viele kantendisjunkte Pfade enthält. Die oben genannten Beispiele sind sprachlich wiedergegeben und wecken sicherlich bei jedem ähnliche, im Detail aber unterschiedliche Assoziationen. Diese Situation ist sehr häug im Arbeitsleben eines Algorithmikers und daher ist eine konsistente und verständliche Formalisierung des Problems unerlässlich, da erst auf der mathematisch-formalen Ebene Probleme gleichzeitig kurz und eindeutig benannt werden können. In der Realität ist die Formalisierung eines Problems häug ein iterativer Prozess, d.h., eine erste Formalisierung muss im 1 Also einen Teilgraphen von G, der mit nur n−1 Kanten alle 2 n Knoten des Graphen miteinander verbindet. www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Verlauf des Algorithmendesigns präzisiert oder sogar leicht verändert werden, um überhaupt noch eine eziente Lösung des Problems zu garantieren. Oftmals gehen also diese beiden Prozesse, der des Formalisierens und des Lösens des Problems, Hand in Hand. Wir beschränken uns im Folgenden auf Probleme der folgenden Art: Gegeben ein Graph G = (V, E), gibt es einen Teilgraphen mit Eigenschaft E? Für die Formalisierung dieser Art von Problem müssen meistens die beiden Fragekomplexe 'welcher Art ist der Graph (gewichtet, gerichtet, einfach?)' und 'welche Eigenschaften soll der Teilgraph haben' geklärt werden. Wurde das Problem formalisiert, gibt es im Wesentlichen folgende Möglichkeiten: 1. Existenzbeweis und Charakterisierung des Lösungsraumes: Es kann gezeigt werden, unter wel- chen Parameterkombinationen es einen solchen Teilgraphen überhaupt geben kann: Wenn wir z.B. einen Spannbaum mit bestimmten Eigenschaften suchen, aber der Graph noch nicht einmal zusammenhängend ist, kann es auch keinen Spannbaum geben. 2. NP-Härte-Beweis: Durch Reduktion eines bekanntermaÿen NP-harten Problems auf das neue Problem kann gezeigt werden, dass im allgemeinen Fall die Lösung des Problems nicht ezient berechnet werden kann (solange • P 6= N P ). In diesem Fall gibt es wieder mehrere Möglichkeiten [6, Kapitel 8]: Spezialfälle suchen, in denen das Problem ezient gelöst werden kann. In graphentheoretischen Problemen sind das häug einfache Graphenklassen wie Ketten, Kreise, Cliquen, Bäume, planare Graphen. • Approximationsalgorithmen suchen, die garantieren, dass sie eine Lösung nden, die in einem bestimmten Verhältnis zum Optimum stehen. Natürlich ist es hier so, dass die Güte der Lösung mit der dafür benötigten Laufzeit im Verhältnis steht! • Manchmal lässt sich ein Problem noch nicht einmal approximieren, aber es ist möglich, eine obere Schranke für die Eigenschaft des Teilgraphen zu geben. Wenn z.B. ein Spannbaum gesucht wird, so dass die Endknoten derjenigen Kanten, die nicht im Spannbaum sind, in der Summe einen möglichst kurzen Abstand zueinander haben, so ist dieses Problem nicht approximierbar, aber wir wissen, dass es für jeden Graphen einen Spannbaum gibt, so dass die Summe in 3. O(m log2 n log log n) liegt. Angabe eines ezienten Algorithmus: Ein Algorithmus, der eine polynomielle Laufzeit hat, wird als ezient bezeichnet und beweist, dass das Problem in P liegt. G = (V, E) ein Graph. V 0 ⊆ V , dann bezeichne G(V 0 ) den durch V 0 induzierten Teilgraphen G(V 0 ) = (V 0 , E 0 ) mit E 0 = {(v1 , v2 }|v1 , v2 ∈ V 0 ∧ (v1 , v2 ) ∈ E}. Sei Sei Extra-Aufgabe 1: Geben Sie den durch die Teilmenge 1.1 V 0 = {A, C, E, F, G} induzierten Teilgraphen gezeigten Graphen an. Beispiel Formalisierung (3.) Im dritten Fallbeispiel war eine Menge von Personenpaaren gegeben, die gerne miteinander kommunizieren würden. Natürlich könnte die Kommunikationsgesellschaft einfach jedes Paar von Personen direkt (z.B. durch ein Kabel) miteinander verbinden, das ist aber häug zu teuer. Wir nehmen trotzdem als Ausgangspunkt den Graph, in dem jede Person mit allen anderen Personen direkt verbunden ist, mit denen sie gerne kommunizieren möchte, und nennen diesen Graphen G. 3 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Extra-Aufgabe 2: Für die folgenden Diskussionen ist der Begri der Distanz zwischen zwei Knoten in einem Graph wichtig. Bitte denieren Sie die Distanz dG (v, w) zweier Knoten in einem Graphen G = (V, E) so genau wie möglich. Die Denition der Distanz zweier Knoten in einem Graphen ist Grundlagenwissen. Sollten Sie nicht mehr so genau wissen, wie die Distanz deniert ist, dann gucken Sie bitte in einschlägigen Lehrbüchern nach und stellen Sie sicher, dass Ihnen die genaue Denition bekannt ist. Literatur: [3]. Wir nehmen nun an, dass Kommunikation über Personen geroutet werden kann, dass aber die Kommunikation umso schlechter ist, über je mehr Punkte sie geroutet wird. Damit ist nun die Frage, ob wir einen Teilgraphen G0 in G nden können, so dass die meisten Personen zufrieden mit der Qualität ihrer Kommunikation sind. Diese 'Qualität' des Teilgraphens 1. P P 2. minmaxdG0 (v, w) v∈V w∈V dG0 (v, w) v∈V w∈V 3. Stretch(v, w) := G0 kann nun beispielsweise wie folgend formalisiert werden: soll klein sein (Wiener Index). soll klein sein (Radius). dG0 (v, w) dG (v, w) soll für alle Paare v, w klein sein. Hier gibt es natürlich wieder verschiedene Möglichkeiten: z.B. könnten wir fordern, dass entweder das Maximum oder die Summe der Stretch-Werte klein sein sollen. Auÿerdem könnte man noch die Menge der Paare die in G direkt miteinander verbunden waren, also: für alle Paare v, w auf diejenigen Paare einschränken, v, w ∈ E . Extra-Aufgabe 3: Machen Sie sich die Bedeutung der oben genannten Formeln klar. Der beste Weg dafür ist immer, sich ein kleines Beispiel für G und G0 aufzumalen und dann die Werte für G0 per Hand zu berechnen. Wie unterscheiden sich die Qualitätsmaÿe? Wenn Sie wählen könnten, wären Sie lieber in einem Netz, das bei gleichen Kosten das erste, zweite oder dritte Maÿ optimiert? Formalisierungen sind nicht immer eindeutig zu nden. Das ist insbesondere bei Problem 1. der Fall, wir werden uns daher im Folgenden eingehender damit beschäftigen. 1.2 Clustern von Graphen 1.2.1 Ein erster Ansatz [10] Ein Clustering eines Graphen ist erstmal einfach eine Partitionierung von Schritt durch ein sogenanntes Clusteringmaÿ V, deren Qualität in einem zweiten beurteilt werden kann. Definition 1: Partition Eine Partitionierung ist die Untergliederung von Vi ist eine Element der Partition oder ein V in disjunkte Teilmengen V1 , ..., Vz , so dass ∪Vi = V . Cluster. Wir suchen Cluster, in denen die Knoten innerhalb des Clusters nahe beieinander sind, und die Cluster untereinander nur dünn vernetzt sind. Damit haben wir zwei verschiedene Qualitätseigenschaften gefordert. Wie können diese Forderungen formalisiert werden? Für die geforderte dünne Vernetzung unter den Clustern führen Gc Metagraph G induziert durch eine Partition C , in dem jeder Cluster Vi vi , vj , i 6= j genau dann miteinander verbunden werden, wenn es in G mindestens eine Kante e = (x, y) mit x ∈ Vi , y ∈ Vj gibt. Wir fordern nun, dass die Anzahl 0 dieser Kanten |E(Gc )| klein ist. Wenn wir für G nur eine bestimmte Anzahl von Kanten erlauben, suchen wir 0 im Allgemeinen denjenigen Teilgraphen G , der dieses Maÿ optimiert. wir das folgende Maÿ ein: sei ein von durch einen Knoten repräsentiert wird, und in dem zwei Knoten 4 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Extra-Aufgabe 4: Was genau bedeutet diese Formalisierung? Machen Sie sich die Wirkung dieses Maÿes an einem kleinen Beispiel klar. Was genau wird hier minimiert? Ist es wirklich die Anzahl der Kanten zwischen den Clustern oder etwas anderes? Die folgenden Maÿe quantizieren die Qualität einer Partition bezüglich der kurzen Distanz der Knoten innerhalb der Cluster: Definition: Exzentrizität ecc(v) Die Exzentrizität eines Knotens ist deniert als: ecc(v) := max {dG (v, w)} w∈V Definition:Radius Der Radius eines Graphen ist Rad(G) := min {ecc(v)} v∈V Bemerkung: Als den Durchmesser eines Graphen bezeichnet man die maximale Exzentrizität aller seiner Knoten. Extra-Aufgabe 5: Welcher Knoten im obigen Graphen hat die kleinste Exzentrizität? Welche(r) Knoten bestimmen den Radius des Graphen und welche den Durchmesser? Theorem 1 [10]: Partition Gegeben ein ungewichteter Graph C = {V1 , . . . Vz }, G = (V, E) mit n Knoten und eine Zahl k ≥ 1. Es existiert eine Partition so dass 1. Rad(Vi ) ≤ k − 1 ∀Vi ∈ C 2. |E(GC )| ≤ n1+ k 1 Beweis: Deniere N (V 0 ) für V0 ⊆ V als die Menge der Nachbarn von Knoten aus V 0, die selber nicht in V0 enthalten sind. 5 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Extra-Aufgabe 6: Formalisieren Sie die oben gegebene sprachliche Denition von {A, B, E} N (V 0 ) und geben Sie N (V 0 ) für V0 = im obigen Graphen an. Der folgende Algorithmus BASIC_PART leistet das Gewünschte: 1. Setze C ← ∅ 2. while V 6= ∅ do 3. Wähle einen beliebigen Knoten v 4. Setze V 0 ← {v} 1 5.while |N (V 0 )| > n k |V 0 | do 6. setze V 0 ← V 0 ∪ N (V 0 ) 7.endwhile 8. Setze C ← C ∪ V 0 , 9. V ← V \ V 0 10.endwhile Extra-Aufgabe 7: Zeigen Sie, dass der Radius eines Clusters höchstens k−1 ist. 2 Wenn Sie einen Tip benötigen, lesen Sie diese Fuÿnote . Extra-Aufgabe 8: Zeigen Sie, dass Algorithmus Basic_Part eine Partition erzeugt. Hier die Skizze der Lösung: Nach der ersten while-Schleife gilt: Wenn die i-te 1 |V 0 | > n k i |V 0 | > n k (oder wir haben gestoppt) 0 = n, also dass V 0 mehr als n Knoten der k -ten Schleife würde gelten: |V | > n 0 der Annahme, dass V eine Teilmenge von V ist. Schleife erreicht und durchlaufen wird, gilt: Nach Durchlauf Widerspruch zu k k enthielte im Extra-Aufgabe 9: E(GC ) zuerst selbst zu bestimmen, bevor Sie weiterlesen! V 0 in GC höchstens 1 1+ k geben? Kommen Sie auf n viele? Versuchen Sie die maximale Anzahl der Kanten in Wieviele Kanten kann ein durch den oben genannten Algorithmus gebildeter Cluster haben? Wieviele Cluster kann es höchstens 2 Tip: Der Radius von Vi kann nicht gröÿer sein als die Exzentrizität seines Startknotens 6 v. Wie groÿ kann diese werden? www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen Anzahl der Kanten in E(Gc ) TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Wenn die while-Schleife in Zeile 5 stoppt, dann hat V0 viele Nachbarn. Selbst wenn jeder dieser Nachbar einen eigenen Cluster bildet, ist dadurch die Zahl gebildeten Kanten in Gc 1 n k |V 0 | 0 der von V höchstens limitiert: |E(Gc )| 1 X ≤ n k |Vi | Vi ∈C 1 X = nk |Vi | Vi ∈C | {z } =n (Part.) 1 1 = nn k = n1+ k Damit haben wir gezeigt, dass der oben genannte Algorithmus in ezienter Weise eine Partition mit den gewünschten Eigenschaften berechnen kann. Extra-Aufgabe 10: Wieviele Interclusterkanten (d.h., |E(GC )|) bleiben maximal übrig, wenn k = 2 ist? Wieviele, wenn k = log n ist? 1.2.2 Ein zweiter Ansatz [10] In der nach dem ersten Ansatz gebildeten Partition ist zwar Kanten zwischen den Clustern (den sogenannten |E(Gc )| klein, oft würde man lieber die Menge aller inter-cluster edges) beschränken, also die folgende Menge: {(x, y)|x ∈ Vi , y ∈ Vj , i 6= j, (x, y) ∈ E(G)} Wir nennen diese Menge Eout (G, C). Theorem 2 [10]: In jedem ungewichteten Graphen G 1. Rad(Vi ) ≤ x log m ∀ Vi ∈ C 2. |Eout (G, C)| ≤ und für jeden Parameter x≥1 gibt es eine Partition C, so dass m x. Der PARTITION-Algorithmus liefert die Partition des Graphen nach genau diesem Theorem. Setze C ← ∅ while V 6= ∅ do 1. Wähle einen beliebigen Startknoten v ∈ V 2. Setze V 0 ← {v} |Eout (V 0 )| 1 3. while > do 0 |Ein (V )| x Setze V 0 ← V 0 ∪ N (V 0 ) endwhile 4. Setze C ← C ∪ V und V ← V \ V 0 endwhile Beweis Wir beweisen zuerst, dass Rad(Vi ) ≤ x·log m ∀ Vi ∈ C , dass es also in jedem Cluster Vi einen Knoten x · log m ist. Wir gibt, dessen maximaler Abstand zu allen anderen Knoten innerhalb dieses Clusters kleiner als denieren dazu der j -ten Ein (j) als die Anzahl der innerhalb des Clusters verlaufenden Kanten (Intraclusterkanten) nach Schleife in Zeile 5 (falls der Algorithmus nicht vorher stoppt) 7 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen 1. Ein (0) = 1 ≥ 1 x 2. Ein (1) ≥ 1 + 1 x 3. Ein (2) ≥ Ein (1) + j. Ein (j) ≥ Ein (j − 1)(1 + x1 ) = (1 + x1 )j Ein (1) =1+ x 1 x + 1 1+ x x TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN =1+2· 1 x + ( x1 )2 Nach dem wievielten Schleifendurchlauf würde ein wachsender Cluster V0 mehr als m Kanten enthalten, ab wann gilt also: (1 + x1 )j ≥ m ? ⇒ j · ln(1 + x1 ) ≥ ln m ln m ≥ x · ln m ⇒j≥ ln(1 + x1 ) Das sieht schon fast so aus, wie in Theorem 2 angegeben. Im letzten Schritt müssen wir nun noch zeigen, dass ln(1 + x1 ) ≤ 1 x ist: Behauptung: ln(1 + x1 ) ≤ x1 Bekannt: limn→∞ (1 + n1 )n = e ⇒ (1 + x1 )x < e ⇒ x · ln(1 + x1 ) < 1 ⇒ ln(1 + x1 ) < 1 x Damit gilt nun für j ≥ x · ln m, d.h., spätestens nach dem j-ten Schleifendurchlauf ist die geforderte Bedingung für die Durchführung der Schleife nicht mehr gewährleistet und der Algorithmus stoppt. Da wir im i-ten Schleifendurchlauf alle Knoten hinzunehmen, die von dem gewählten Startknoten aus Distanz i haben, ist somit auch gewährleistet, dass der Radius des Clusters diese Grenze einhält. |Eout (G, C)| ≤ Wir beweisen nun, dass m x. Extra-Aufgabe 11: Beweisen Sie: |Eout (G, C)| ≤ Für jeden einzelnen Cluster m x nach dem Muster für den Algorithmus Basic_Part. Vi ∈ C gilt: 1 x Eout (Vi ) ≤ · Ein (V Pi ) ⇒ Eout (G, C) = Eout (Vi ) Vi ∈C X ⇒ Eout (G, C) = x1 Ein (Vi ) = m x Vi ∈C | {z m } Damit haben wir bewiesen, dass der PARTITION-Algorithmus eine Partition mit den in Theorem 2 beschriebenen Eigenschaften bildet. 8 www.bioinfoblog.de Ausgewählte Graphenalgorithmen 1 TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN 1.2.3 Ein dritter Ansatz Wir haben bisher zwei Algorithmen vorgestellt: Der erste konstruiert eine Partitionierung in Cluster, die nicht mit allzuvielen anderen Clustern verbunden sind, der zweite resultiert in eine Partition, in der die Gesamtzahl der Kanten zwischen den Clustern klein ist. Oft werden solche Partitionen dazu benutzt, um einen sehr groÿen Graphen zu approximieren, indem der oben erwähnte Metagraph GC gebildet wird. In diesem Fall ist es manch- mal wünschenswert, dass nicht allzuviele Cluster entstehen, die jeweils auch nicht zu groÿ sein sollten. Dies kann bei den beiden oben genannten Algorithmen nicht gewährleistet werden. Extra-Aufgabe 12: Überlegen Sie sich, wieviele Cluster bei den beiden bisher vorgestellten Algorithmen entstehen könnten. Wie müsste jeweils eine Graphfamilie aussehen, die eine hohe Anzahl von Clustern erzeugt? Wie könnte diese Forderung formalisiert werden? Definition: k-dominating Set D ∃d ∈ D Eine Teilmenge von Knoten ist ein v∈V mit gilt: k-dominating Set eines (ungewichteten) Graphen G, falls für alle dG (v, d) ≤ k . Extra-Aufgabe 13: Für welche k bildet die Menge der schwarz gefärbten Knoten ein Wenn eine solche Menge gefunden wurde, wird C k -dominating Set des gezeigten Graphen? wie folgend deniert: v ∈ V − D und d ∈ D: dG (v, d) Vi = {di } ∪ vi ∈ V − D|dG (dj , vj ) = min {dG (dk , vj )} , wobei Gleichstände mit einer geeigneten Regel 1. Berechne für jedes Paar 2. dk ∈D Tie-Breaking-Rule ) entschieden werden müssen. ( Extra-Aufgabe 14: Bilden Sie aus dem angegebenen Dominating-Set eine Partition. Wir zeigen jetzt, dass es in jedem Graphen ein k-dominating Set mit wenigen Knoten gibt: Theorem 3 [7]: In jedem zusammenhängenden Graphen und für jedes max 1, n k+1 k≥1 gibt es ein k -dominating Set mit weniger als Knoten. 9 www.bioinfoblog.de Ausgewählte Graphenalgorithmen 1 Beweis G Fall 1: Fall 2: Sei T ein beliebiger Spannbaum von Wenn k ≥ h, bildet w TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN mit Wurzel w und sei h seine Tiefe bezüglich der Wurzel w. ein einelementiges k-dominating Set. k<h Wir bilden die folgenden Mengen Ti : Ti = {vj ∈ V |dT (w, v) = i} Extra-Aufgabe 15: Geben Sie für jeden Knoten in dem oben gezeigten Graphen und den darin markierten Spannbaum (rote Kanten) dasjenige i an, so dass v in Ti enthalten ist. Extra-Aufgabe 16: Finden Sie eine umgangssprachliche Formulierung für diese Mengen Jede Menge Ti Ti . T jeweils denselben Abstand zu w haben. Nun vereinigen wir Ti+j(k+1) , also Ti und jedes (k + 1)ste darauolgende Level. Dadurch enthält also alle Knoten, die in diese Teilmengen wie folgend: S Dj = j≥0 entstehen k+1 paarweise disjunkte Mengen, also eine Partition. Da jeder Knoten nur in einer Menge kann mind. eine Menge Dk höchstens j n k+1 k Dj liegt, Knoten enthalten. Extra-Aufgabe 17: Warum kann mindestens eine dieser Menge nicht mehr als Antwort: Die Aussage gilt wegen des insgesamt mehr als Diese Menge Dk n j n k+1 k Knoten enthalten? Schubladenprinzips : wenn alle k+1 Mengen mehr Knoten enthielten, wären Knoten verteilt worden. Da die Mengen paarweise disjunkt sind, kann das nicht sein. bildet ein k-dominating Set. Extra-Aufgabe 18: Machen Sie sich klar, dass tatsächlich alle anderen Knoten höchstens Abstand k zu einem der Knoten im dominating-Set haben! Extra-Aufgabe 19: Geben Sie eine Graphenfamilie an, in der das k-dominating Set nicht weniger als n O( 2k+1 ) Knoten enthalten kann. Tip: Versuchen Sie bei einer solchen Frage immer erstmal sehr einfache Graphenfamilien, wie z.B. Cliquen, Kreise, Pfade. Auch wenn die u.U. nicht die geforderten Eigenschaften haben, zeigen sie meistens ob man z.B. eher einen dichten oder eher einen dünnen Graphen konstruieren muss. Anmerkung: Ein minimales (1)-dominating-Set zu nden ist NP-hart [11]. 10 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen Zusammenfassung: TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Wir haben jetzt Algorithmen für drei verschiedene Partitionierungen angegeben, also für Aufteilungen eines Graphen in Teilgraphen, die bestimmte Eigenschaften erfüllen. Diese Eigenschaften werden hier noch einmal überblicksartig angegeben: ≤k−1 1 |E(GC )| ≤ n1+ k 1. Rad(Vi ) BASIC_PART ≤ x · log m |Eout (G, C)| ≤ m PARTITION x 2. Rad(Vi ) 3. Rad(Vi ) |C| ≤ ≤k n k+1 Spannbaummethode Extra-Aufgabe 20: Überlegen Sie sich für alle drei Methoden, mit Hilfe welcher Datenstrukturen Sie die Algorithmen implementieren würden und welche Laufzeit sie dann haben. 1.3 Spanner Bei den oben beschriebenen Partitionierungsalgorithmen entstehen zwangsläug meistens nicht miteinander zusammenhängende Teilgraphen. Oftmals ist es aber wünschenswert, dass ein Teilgraph gefunden wird, der alle Knoten beinhaltet, den Graphen also spannt, und gleichzeitig andere Eigenschaften hat. Gesucht sind insbesondere oftmals möglichst dünne Teilgraphen, die entweder für alle Knotenpaare oder für eine bestimmte Auswahl daraus nur kurze Umwege in Bezug auf ihre Distanz im Originalgraphen erzeugen. Solche Teilgraphen werden Spanner genannt. Formalisierung Auch hier gibt es wieder verschiedene Möglichkeiten der Formalisierung. Wir denieren zuerst den sogenannten Stretch : Definition: Stretch Der Stretch eines Knotens für einen gegebenen Teilgraphen stretchG0 (x, y) := Wenn G0 G' eines Graphens G ist deniert als: dG0 (x, y) . dG (x, y) aus dem Kontext eindeutig hervorgeht, kann der Index entfallen. Extra-Aufgabe 21: Was können Sie über den Abbildungsbereich der Funktion stretch ganz allgemein sagen? Überlegen Sie sich auf solche Fragen die Extremfälle: gibt es eine untere oder obere Grenze für die Werte? 11 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Extra-Aufgabe 22: Berechen Sie für den angegebenen Graphen G, den farbig markierten Teilgraphen G' und für jedes Paar von Knoten den stretch. Damit können wir nun eine erste Denition für Spanner geben: Definition: k-Spanner Ein Teilgraph G0 = (V, E 0 ) eines Graphen G = (V, E) ist ein k-Spanner genau dann, wenn ∀e = (x, y) ∈ E gilt: stretchG0 (x, y) ≤ k Extra-Aufgabe 23: k -Spanner Machen Sie sich klar, dass es nicht immer möglich ist, einen um einen 3-Spanner zu konstruieren? Und für allgemeines k mit z.B. nur m/2 m), die erhalten bleiben könnte, für gegebenes Kanten zu bilden. Was ist die maximale Kantenanzahl (in Abhängigkeit von k? Extra-Aufgabe 24: G0 mit n − 1 w ∈ V gilt. Geben Sie eine Methode an, mit der ein Teilgraph dG (v, w)∀v ∈ V und einen gegebenen Knoten Kanten gebildet wird, so dass dG0 (v, w) = Antwort: Einen solchen Teilgraphen, der natürlich ein aufspannender Baum sein muss und z.B. mit Hilfe der Breitensuche von w aus gefunden werden kann, nennt man in w verwurzelten, distanzerhaltenden Spannbaum. Extra-Aufgabe 25: Zeigen Sie, dass für einen solchen in O(eccG (w))-Spanner w verwurzelten, distanzerhaltenden Spannbaum gilt, dass er ein ist! Antwort: Die kleinste Distanz, die zwei beliebige Knoten x, y in einem ungewichteten Graphen haben können, ist 1 (direkte Kante zwischen ihnen). Nun ist die maximale Distanz, die die Wurzel durch ecc(w) gegeben. Ein Baum T, der die Distanzen zu x, y im Baum höchstens der zweifachen Exzentrizität 2 · ecc(w) für beliebige Knoten x, y in G. von w w w zu x und y haben kann erhält, stellt somit sicher, dass die Distanz von entspricht. Damit ist der stretchT (x, y) höchstens Theorem 4 [10]: Für jeden ungewichteten Graphen G und für jedes k≥1 existiert ein O(k)-Spanner mit höchstens 1 n1+ k Kanten. Beweis Sei C eine Partition, die mit Algorithmus BASIC_PART und Parameter jeweils der Startknoten von Spannbaum. G0 Vi ∈ C . Wir legen jetzt in Cluster Vi einen in vi k berechnet wurde. Sei vi gewurzelten, Distanz erhaltenden besteht aus diesen Spannbäumen, vereinigt mit der folgenden Menge: Für je zwei Cluster Vi , Vj , i 6= j , die mindestens eine Kante eine dieser Kanten und fügen sie zu E0 e = (x, y) mit x ∈ Vi ∧ y ∈ V j , teilen, wählen wir hinzu. 12 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Extra-Aufgabe 26: Zeigen Sie, dass der so konstruierte Teilgraph G0 die im Theorem geforderten Eigenschaften erfüllt. Antwort: Wie in Extra-Aufgabe 1.3 gezeigt, haben alle Knotenpaare innerhalb eines solcherart denierten Spann- stretch von höchstens stretchT (x, y) ≥ 2·ecc(w). Die Exzentrizität des Startknotens ist gegeben k − 1, damit ist der stretch für alle Knotenpaare innerhalb eines Clusters in O(ecc(w)) = O(k). Was ist nun mit Knotenpaaren, von denen ein Knoten im Cluster Ci und der andere im Cluster Cj liegt? baumes T einen durch den Radius des Clusters, liegt also bei Damit haben wir einen ersten spannenden Graphen gefunden, der einen niedrigen maximalen Stretch garantiert. 1.4 Spannbäume mit niedrigem, durchschnittlichem Stretch Ein gewurzelter, Distanz erhaltender Spannbaum erhält zwar für w optimale Routen, ist aber nicht unbedingt T optimal für alle Knoten. Wir denieren daher für jeden Spannbaum X Q(T ) := dT (x, y) in G das folgende Qualitätsmaÿ: (Tree-Distance-Sum) e=(x,y)∈E Dann ist der durchschnittliche Stretch gegeben durch Savg (G, T ) = Q(T ) m . Wir denieren Sopt (G) := min {Savg (G, T )} , T ∈T wobei T die Menge aller Spannbäume in immer eine obere Grenze für Sopt (G) G beschreibt. Damit gibt Savg (T ) für einen beliebigen Spannbaum T an. Extra-Aufgabe 27: Überlegen Sie sich einfache untere Grenzen für Q(T ). Antwort: Eine einfache untere Grenze ist gegeben durch die Tatsache, dass die Endpunkte jeder Kante, die nicht in T ist, ihre Distanz in T mindestens verdoppeln. Daher gilt: Q(T ) ≥ 2(m − n + 1). Auf Übungsblatt 5 wurde die sogenannte edge vitality eingeführt. Können Sie in Abhängigkeit von diesen Werten eine untere Grenze für Q(T ) angeben? Als einfache untere Grenze für Q(T ) kann auch die Denition des Girth (der Taillenweite) hinzugezogen werden, für die wir wiederum die Denition des Kreises benötigen: Definition: Sei C ⊆ E Kreis (Cycle) eine Teilmenge von Kanten in einem Graphen induzierte Graph, dann beschreibt ist. Die C G und G(C) = (V, C) der durch diese Menge einen Kreis genau dann, wenn der Grad aller Knoten in G(E 0 ) gerade Länge des Kreises |C| entspricht der Summe der in ihm enthaltenen Kanten (bzw. der Anzahl der darin enthaltenen Kanten im ungewichteten Fall). Extra-Aufgabe 26: Erstellen Sie Beispielgraphen, die Kreise sind. Denken Sie dabei insbesondere an Extrembeispiele. Muss G(E 0 ) beispielsweise zusammenhängend sein? 13 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen Definition: Als Girth TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Girth (Taillenweite) g(G) bezeichnet man die Länge des kleinsten Kreises in G. Lemma: In einem ungewichteten Graphen Beweis: Um in G G ist Sopt (G) ≥ (m−(n−1))·g(G) m =g− n−1 m g. einen Spannbaum zu konstruieren, müssen alle Kreise 'aufgeschnitten' werden, denn ein Spannbaum enthält ja keinen Kreis mehr. Die Kante im Kreis, die nicht in Stretch von g(G). Da im Spannbaum nur mind. einen Stretch von n−1 T liegt, hat also mindestens einen Kanten enthalten sind, haben alle anderen m−n+1 Kanten g(G). Wir betrachten jetzt für einfache Graphenfamilien G(n) jeweils den Spannbaum, der Sopt (G(n)) erzielt. Extra-Aufgabe 28: Geben Sie Spannbäume T an, die bezüglich Q(T ) für Cliquen und Ringe optimal sind. Beweisen Sie die Optimalität der von Ihnen angegebenen Bäume! Clique: Sei Kn eine Clique mit n T darin ein Stern, Savg (T, Kn ): X X Q(T ) = 1+ 2 Knoten und sei d.h., ein Knoten, der mit den n−1 anderen Knoten direkt verbunden ist, dann gilt für e∈T e∈E\T | {z } n−1 Savg (T, Kn ) = 2− | {z } m−(n−1) 2 n Optimalität: Jede Nichtbaumkante wird nur um den Faktor 2 verlängert und damit ist der Baum optimal. Abbildung 1: Ein Stern, der für die Clique den optimalen Spannbaum bezüglich Q(T ) darstellt. Ring Im Ring kann es nur eine Art von Baum geben, nämlich eine Kette mit n−1 Kanten. Der einzige Freiheitsgrad besteht darin, die Kante, die nicht in der Kette enthalten ist, zu bestimmen. Im ungewichteten Fall ist es klar, dass ein solcher Baum optimal sein muss, da alle Bäume zueinander isomorph sind und jeweils dieselbe Qualität bezüglich Q(T ) aufweisen. ω(e) trägt. Daher betrachten wir nun einen gewichteten Ring, in der jede Kante e ein reellwertiges Gewicht Sei nun T ∗ = V − e∗ , wobei e∗ die Kante mit dem maximalen Gewicht ist, dann gilt: Savg (T ? ) ≤ 1 ω(Cn ) − ω(e) (n − 1) ·1 + n | {z } ω(e) e∈T = 2 2n − 2 =2− n n 14 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Denn es gilt: ω(Cn ) − ω(e) (n − 1) · ω(e) ≤ = (n − 1) ω(e) ω(e) Extra-Aufgabe 29: Beweisen Sie, dass T ∗ auch der optimale Baum ist. Gitter Der in Abb. 2 gezeigte Baum hat in einem √ n× √ n Gitter einen Savg von O(log n). Abbildung 2: Asymptotisch optimale Spannbäume für Gitter. Anmerkung: Man kann zeigen, dass für diese ⇒ Sopt ∈ Θ(log n) √ √ n× n-Gitter alle Spannbäume einen Savg in Ω(log n) haben. [1]. Wir verallgemeinern jetzt die Frage: Gegeben ein beliebiger Graph G, nde den Spannbaum, der Q(T) minimiert. 3 . Wir zeigen, dass diese Frage NP-hart ist Extra-Aufgabe 30: Nennen Sie ein paar NP-harte Probleme. Definition: Problem PQT Gegeben: ungewichteter Graph G Gesucht: Spannbaum T , der Q(T ) minimiert. Extra-Aufgabe 31: Ein bekanntes NP-hartes Problem ist das Folgende: Dominating Set [Problem GT2 in [11]: 3 Falls Sie sich nicht mehr gut an diese Komplexitätsklasse erinnern, lesen Sie sich nochmal ein. Empfehlenswert: Kapitel 3 im Schöning [13], Kapitel 8 im Kleinberg/Tardos [6]oder, falls Sie sich gründlich einlesen wollen, direkt den Garey/Johnson [11]. Alle diese Quellen sind sehr gut verständlich. 15 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Gegeben: Graph G = (V, E), positive Zahl k ≤ |V |, k ∈ N. Gesucht: Teilmenge C 0 ⊆ V mit |C 0 | ≤ k, so dass ∀u ∈ V − C 0 ∃v ∈ C 0 mit {u, v} ∈ E. Wenn das Dominating-Set-Problem NP-hart ist, warum konnten wir dann für das k-Dominating-Set einen polynomiellen Algorithmus angeben? Anmerkung: Die obige Formulierung des Dominating-Set-Problems ist die Viele dieser Probleme können auch als Optimierungsproblem Entscheidungsproblem -Variante. dargestellt werden, also als Suche nach Lösung mit minimalem/maximalem Wert. In diesem Fall lautet die Optimierungsproblemformulierung: Gesucht ist die Teilmenge C0 mit minimaler Kardinalität, so dass ... Extra-Aufgabe 32: Shortest Total Path Length Spanning Tree [Problem ND3 in [11]] Gegeben: G = (V, E), B ∈ Z+ . Gesucht: Spannbaum T kleiner oder gleich T , so dass B ist. die Summe (über alle Paare Wie unterscheidet sich dieses Problem von PQT u, v ∈ V ) über die Pfadlänge von v in ist NP-hart, d.h., alle NP-harten Probleme können darauf (polynomiell) reduziert werden. Um dies zu PQT zu reduzieren [13], d. h., wir geben einen Algorithmus mit polynomieller Laufzeit an, der aus jeder Instanz des NP-harten Problems PQT nach PQT ? zeigen, reicht es, ein einziges bekanntermaÿen NP-hartes Problem auf von u PQT herstellt, so dass die Lösung der Instanz 0 I(P ) von P 0 P0 eine Instanz in Polynomzeit aus der Lösung der Instanz von berechnet werden kann: Algo ? Lösungszeit ∀I(P 0 ) −−−→ I(QT ) −−−−−−−−−−→ Lösung in P von Algo' I(QT ) −−−−→ Lösung in P von I(P 0 ). Extra-Aufgabe 33: Wieso kann PQT P nicht in sein, wenn ein N P -hartes Problem in dieser Weise darauf reduzierbar ist? I(QT ) kann jetzt nur dann polynomiell sein, wenn alle Probleme PQT eine eziente Lösungsmöglichkeit nden, haben wir ja 0 gleichzeitig auch eine polynomielle Lösungsvorschrift für P und damit für alle anderen N P -harten Probleme 0 gefunden, indem wir die Instanz aus P erst polynomiell in eine Instanz von PQT überführen, diese dann 0 polynomiell lösen, und die Lösung wieder in polynomieller Laufzeit in eine Lösung für I(P ) umwandeln. Die Frage, ob P = N P ist, ist seit mehreren Jahrzehnten oen und ihre Antwort wird mit einer Million Dollar Antwort: Die uns unbekannte Lösungszeit von in NP auch gleichzeitig in P liegen: wenn wir für belohnt. Theorem [14]: PQT ist NP-hart. Beweis: Reduktion des Definition: Exact-3-Cover -Problems auf PQT : Exact-3-Cover Gegeben: eine Menge von 3n Elementen X = {x1 , x2 , ...x3n } und eine Menge C von Tripeln Cj ⊂ X×X×X (ohne Mehrfachelemente) Gesucht: Eine Teilmenge C 0 ⊂ C mit |C 0 | = n und S Ci = X Ci ∈C 16 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen Annahme: Jedes xi ist in mindestens einem Cj TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN enthalten (sonst Lösung trivial, weil es dann keine solche Teilmenge gibt). Wir bauen nun aus ansonsten beliebiger Instanz I(P 0 ) den folgenden Graphen G(P 0 ): V = {r} ∪ {ci , 1 ≤ i ≤ |C|} ∪ {xi , 1 ≤ j ≤ 3n}. Extra-Aufgabe 34: Beschreiben Sie die Zusammensetzung der Knotenmenge in eigenen Worten! Die Kantenmenge setzt sich wie folgend zusammen: 1. r ist mit allen 2. Jeder C -Knoten C -Knoten verbunden. Diese Teilmenge bezeichnen wir als r-C-Kanten. ist mit den X -Knoten verbunden, die das entsprechende Tripel enthält. Diese Teilmenge bezeichen wir als C-X-Kanten. 3. Jeder Tripel X -Knoten ist mit allen X -Knoten verbunden, mit denen er mindestens ci enthalten ist. Diese Teilmenge bezeichnen wir als X-X-Kanten. einmal zusammen in einem r C1 a c C3 d C2 b e f Idee: Der bisher vorgestellte Graph stellt ein Basisskelett dar, das noch verstärkt werden muss, um die Menge der möglichen Lösungen für T einzuschränken. Solange noch sehr viele verschiedene Arten von Spannbäumen optimal sein könnten, ist es schwierig, zu zeigen, dass sich aus dem optimalen Baum T∗ nachher auch in einfacher Art und Weise eine Lösung für das zugrundeliegende Exact-3-Cover-Problem berechnet werden. Die Idee ist, dass Q(T ) minimaler Spannbaum T ∗ gezwungen werden soll, nur R-C und C-X-Kanten benutzen sollte, 0 und zwar so, dass, genau dann wenn I(P ) ein Exact-3-Cover hat, von jedem C -Knoten entweder alle oder keine ∗ X-C-Kante in T enthalten ist. ein bezüglich 17 www.bioinfoblog.de Ausgewählte Graphenalgorithmen 1 TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Extra-Aufgabe 35: Wenn ein gegebener Baum T in G(P 0 ) nur aus r-C und C-X-Kanten besteht und zudem von jedem C-Knoten entweder alle C-X-Kanten oder aber keine einzige C-X-Kante enthält, wie kann dann daraus die Lösung des dazugehörigen exact-3-Covers berechnet werden? Antwort: Wenn das so ist, besteht die Lösung von alle in T I(P 0 ) aus der Teilmenge an Tripeln Ci , deren C-X-Kanten enthalten sind. Problem: Im bisher denierten Graphen G(P 0 ) können auch in einem optimalen Baum X-X-Kanten enthalten sein. Extra-Aufgabe 36: Finden Sie ein einfaches Beispiel, das diese Behauptung beweist! Die Idee ist, die gewünschten r-C-Kanten und C-X-Kanten so 'teuer' zu machen, dass der ein Spannbaum nur dann optimal sein kann, wenn er nur aus diesen Kanten besteht. Dazu führen wir sogenannte Schutzkanten ein. Eine Schutzkante besteht im Wesentlichen einfach aus einem weiteren Knoten, der mit den beiden Endknoten der zu schützenden Kante verbunden ist. Insgesamt bilden Schutzkante und zu beschützende Kante damit einfache Dreiecke (s. Abb. 3). Damit der Knoten auf der Schutzkante in den Spannbaum eingebunden ist, gibt es nur zwei prinzipiell unterschiedliche Möglichkeiten: Entweder die zu schützende Kante und eine der beiden Kanten des Schutzes ist in T, oder beide Kanten der Schutzkante sind in T (Abb. 4). Sei nun eine Kante mit j Schutzkanten geschützt. Im ersten Fall tragen alle Schutzkanten-Kanten, die nicht in T enthalten sind, mit einem Wert von 3 zu Q(T) bei, im zweiten Fall dagegen tragen j-1 der Schutzkanten-Kanten mit jeweils 4 zu Q(T) bei. Damit ist schon mal klar, dass es für j≥2 in keinem Baum vorteilhaft ist, eine zu schützende Kante nicht aufzunehmen und statt dessen ihre Schutzkanten zu nehmen. Zweitens trägt damit jede r-C- oder C-X-Kante, die nicht in einem Baum T enthalten ist, j-1 mehr zu Q(T) bei, als wenn sie in T enthalten wäre. Die Idee ist nun, zu verhindern, dass X-X-Kanten in den Baum aufzunehmen, indem soviele Schutzkanten um die r-C- und C-X-Kanten gelegt werden, dass sie selbst den gröÿtmöglichen Vorteil der X-X-Kanten aufwiegen. Dazu müssen wir zuerst bestimmen, um wieviel besser ein Baum im Basisskelett von G(P') sein kann, der auch X-X-Kanten enthält. Abbildung 3: Einführung von Schutzkanten 18 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Abbildung 4: Auswirkung der Schutzkanten Sei j also die Anzahl von Schutzkanten auf jeweils einer r-C- oder C-X-Kante. Frage: Wie hoch muss j sein , um X-X-Kanten in T ∗ auszuschlieÿen? Sei also e = (xi , xj ) eine Kante in einem optimalen Baum T∗ im Basisskelett von G(P 0 ). Um wieviel kann sich Q(T) höchstens verbessern gegenüber einem Baum, in dem diese Kante durch eine r-C- oder C-X-Kante ersetzt wird? Fall 1: Die Elemente Die von Ck xi , xj sind nur in einem Tripel Ck enthalten. dT 2 oder 3. dT 3 oder 4 Q(T ∗ ), wenn wir in T 0 xi xj ausgehenden C-X-Kanten haben entweder Ihre Schutzkanten haben dementsprechend mindestens Widerspruch! Wenn j > 2, wäre Q(T 0 ) kleiner als über die C-X-Kanten anbinden. Also müssen wir nur noch den zweiten Fall betrachten. Fall 2: Sei nun in der vereinigten Nachbarschaft von xj , xj mehr als ein C -Knoten. Damit gibt es den Kreis (s. Abb. 5): xi − ck − r − cl − xj − xi T dT (e) ≥ 4 e0 haben dT (e0 ) ≥ 5 Mind. eine Kante davon ist nicht in ⇒ ⇒ für diese Kante e gilt deren Schutzkanten , könnten aber eine tree distance von 2 haben, wenn 'ihre' Kante im Baum wäre! ⇒ −3 pro Schutzkante Verschlechterung 19 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen Abbildung 5: Da T∗ Fall 2, in dem die Elemente xi , xj in mehreren Tripeln Ck , Cl nach Annahme optimal ist, muss der Beitrag, den diese Schutzkanten zu kleinere ⇒ ⇒ TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN treedistance vorkommen. Q(T ∗ ) beitragen, durch die von anderen Kanten ausgeglichen werden. Beobachtung: nur X-X-Kanten protieren davon, dass X-X-Kanten im Baum sind Bester Fall: Es gibt einen X -Knoten, der mit allen anderen X -Knoten Knoten mit seinen Kanten im Baum ist, haben alle anderen X-X-Knoten direkt verbunden ist. Wenn dieser tree distance 2: Abbildung 6: Links: best-case für X-X; Rechts: worst-case für X-X-Kanten, wenn keine X-X-Kanten in T sind. Anzahl möglicher X-X-Kanten: 3n(3n − 1) 2 Extra-Aufgabe 37: Überlegen Sie sich, unter welchen Umständen es zu sovielen X-X-Kanten kommen kann. Best-Case-Beitrag zu Q(T ) ⇒ 2 · Worst-Case-Beitrag zu Q(T ) 3n(3n − 1) 2 (wenn T keine X-X-Kanten enthält) 20 ⇒4· 3n(3n − 1) 2 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Daraus folgt, dass eine X-X-Kante, die nicht in den Baum kommt, Q(T) um höchstens +2 erhöht, wohingegen jede Schutzkanten Q(T) um +3 erhöht, wenn 'ihre' Kante nicht in T ist. Um daher sicherzustellen, dass nur r-C- und C-X-Kanten im Baum sind, und niemals eine X-X-Kante, reichen Wie sieht Q(T ) j> 3n(3n − 1) 2 viele aus. in einer solchen Instanz aus? Ein Teil der Kanten ist x im Baum, z.B. die R-C-Kanten, und diese tragen einen Anteil zu Q(T) bei, der nur von der Anzahl an Tripeln abhängt. Alle R-C-Kanten sind in 3n C-X-Kanten in 3 |C| − 3n T ? : |C| · 1 + j · |C| · 2 | {z } Schutzkanten T ? : 3n · 1 + j · 3n · 2 | {z } Schutzkanten ∈ / T : 3(|C| − n) · 3 C-X-Kanten Anders ist es bei den X-X-Kanten. Wenn es möglich ist, für alle C-Knoten entweder alle C-X-Kanten oder keine einzige Kante in den Baum aufzunehmen, dann haben 3n X-X-Kanten eine alle anderen X-X-Kanten eine tree distance tree distance von 2, ansonsten haben von 3. Extra-Aufgabe 38: Geben Sie eine kleine unlösbare exact-3-Cover-Instanz an und machen Sie sich am entsprechenden Graphen G(P 0 ) klar, wie dafür der optimale Baum aussieht. X-X-Kanten: 3n X-X-Kanten haben tree distance 2 ⇔∃ exact-3-cover in I(P 0 ) Damit wurde eine eindeutige Äquivalenz der Lösungen bewiesen, die es erlaubt, in polynomieller Zeit die eine Lösung in die andere umzurechnen, und damit ist die Reduktion gezeigt. Trotzdem es nicht möglich ist, den Spannbaum mit minimalem Grenzen für das Q(T ) Q(T ) ezient zu berechnen, können obere angegeben werden, wie wir im Kapitel über Kreisbasen zeigen (2). 1.5 Dünne Teilgraphen, die den Zusammenhang erhalten Bevor wir zu den Kreisbasen übergehen, wollen wir noch das letzte Beispiel aus der Einleitung behandeln. Da ging es um die Frage, ob wir dünne Teilgraphen nden können, die möglichst viele kantendisjunkte Pfade zwischen den Knoten erhalten. Dazu denieren wir zuerst den Begri Definition: Ein Graph Zusammenhang. Zusammenhang (Connectivity ) G = (V, E) heiÿt k -fach zusammenhängend , k Knoten k -fach kantenzu- wenn nur das Löschen von mindestens den Graph in mehrere Zusammenhangskomponenten zerlegt. Ein Graph G = (V, E) heiÿt sammenhängend , wenn nur das Löschen von mindestens k Kanten den Graph in mehrere Zusammenhangskomponenten zerlegt. Es gilt das folgende Theorem: Mengers Theorem: Ein Graph ist k k -fach kantenzusammenhängend, wenn es zwischen allen Knotenpaaren x, y ∈ V mindestens kantendisjunkte Pfade gibt. Wir bezeichnen mit λ(x, y, G) die Anzahl der kantendisjunkten Pfade zwischen 21 x und y in G. www.bioinfoblog.de Ausgewählte Graphenalgorithmen 1 TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Extra-Aufgabe 39: Beweisen Sie, dass die Rückrichtung dieses Theorems gilt, dass also, wenn es zwischen allen Knotenpaaren mindestens k kantendisjunkte Pfade gibt, der Graph dann k -fach kantenzusammenhängend ist. Beweis: Der vollständige Beweis wird im Abschnitt Netzwerkuss erbracht werden, da er eine neue Terminologie erfordert. Die Rückrichtung ist aber sofort einsichtig: wenn λ(x, y, G) ≥ k für alle Knotenpaare x, y gilt, dann muss auf jedem dieser Pfade mindestens eine Kante entfernt werden, um den Zusammenhang zu zerstören. Hinweis: Der in der Vorlesung angegebene Beweis für die Hin-Richtung ist unvollständig und betrachtet einen wichtigen Fall nicht. Extra-Aufgabe 40: Betrachten Sie Ihre schriftlichen Ausarbeitungen und nden Sie ein Gegenbeispiel für den Beweis. Wir suchen jetzt einen möglichst dünnen Teilgraphen, der zwischen alle Knotenpaaren mindestens k-kantendisjunkte Pfade aufweist, oder wenigstens soviele, wie im vollständigen Graphen zwischen ihnen existierten. Wir denieren dafür als maximal aufspannenden Wald F = (V, E 0 ) in einem Graphen G die Vereinigung von Spannbäumen aller Zusammenhangskomponenten. Besteht eine Zusammenhangskomponente aus nur einem Knoten, trägt sie nicht zum Wald bei. Sei nun Fi = (V, Ei ) der maximal aufspannende Wald im Graphen G \ E0 ∪ E1 ∪ · · · ∪ Ei−1 . {z } | Ei−1 := S i−1 k=0 Ek Beachten Sie, dass wir Ei als die Vereinigung aller Kantenmengen Ej von 0 bis i denieren. Extra-Aufgabe 41: Berechnen Sie maximal aufspannende Wälder Fi im abgebildeten Graphen G bis G − Ei keine Kanten mehr enthält. Theorem : Der Teilgraph Gi = (V, Ei ) erfüllt für alle x, y ∈ V : λ(x, y, Gi ) ≥ min{λ(x, y, G), i}. 22 www.bioinfoblog.de 1 Ausgewählte Graphenalgorithmen TEILGRAPHEN MIT BESONDEREN EIGENSCHAFTEN Extra-Aufgabe 42: Überlegen Sie sich, was genau die Formulierung λ(x, y, Gi ) ≥ min{λ(x, y, G), i}bedeutet. Warum reicht eine der beiden Bedingungen nicht aus? Geben Sie für beide Bedingungen jeweils einen Graphen an. Beweis per Induktion: Induktionsanfang: i = 1: T1 ist maximal aufspannender Wald ⇒ alle Knoten einer Zusammenhangskomponente sind mit- einander verbunden, und damit sind alle Knotenpaare, die vorher durch mindestens einen Pfad verbunden waren, auch in T1 miteinander verbunden. Induktionsannahme: Gj Für alle mit j≤i gelte die Aussage. Induktionsschritt: Sei nun x, y ∈ V und i so, dass λ(x, y, Gi ) ≥ min {λ(x, y, G), i} und λ(x, y, Gi+1 ) < min {λ(x, y, G), i + 1}, sei Gi ein Teilgraph von Gi+1 ist, kann die also i+1 die erste Phase, in der das Theorem nicht mehr stimmt. Da Anzahl der kantendisjunkten Pfade sich in Damit gilt: Gi+1 höchstens erhöhen. λ(x, y, Gi ) ≤ λ(x, y, Gi+1 ) ≤ λ(x, y, G) IV ⇒ min {λ(x, y, G), i} ≤ λ(x, y, Gi ) ≤ λ(x, y, Gi+1 ) < min {λ(x, y, G), i + 1} Da ja nun λ(x, y, G) auf beiden Seiten der Ungleichung steht und natürlich derselbe Wert nicht echt gröÿer als er selbst sein kann, muss gelten: ⇒ λ(x, y, Gi ) = λ(x, y, Gi+1 ) = i Da Gi+1 ja nun der erste Graph sein soll, indem für i+1 nicht vollständig in und λ(x, y, G) Gi+1 muss es in enthalten ist. Sei G x, y weniger kantendisjunkte Pfade enthalten sind als das x, y geben, der noch G, der noch nicht in Gi+1 enthalten ist. Es fehlt mindestens eine Kante e = (p, r) in E i . Da jede zu P ? fehlende Kante in G \ E i ? enthalten ist und Fi+1 ein maximaler aufspannender Wald ist, muss Fi+1 entweder einen zu P alternativen Pfad zwischen p, r enthalten und damit einen Pfad zwischen x, y schlieÿen oder hätte die Kante (p, r) noch aufnehmen Minimum von P? mindestens einen weiteren Pfad zwischen also der Pfad (zwischen x und y) in ganz können, ohne einen Kreis zu schlieÿen. Im ersten Fall gilt wegen der Induktionsannahme, dass sich die Anzahl der kantendisjunkten Pfade zwischen x, y von Gi nach Gi+1 erhöht hat (Widerspruch zur Schlussfolgerung), und im zweiten Fall besteht ein Widerspruch zur Forderung, dass Fi+1 ein maximal aufspannender Wald ist. Damit muss die zum Widerspruch führende Behauptung falsch sein und damit ist für den Induktionsschritt gezeigt, dass die ursprüngliche Behauptung gilt. Damit gilt die Behauptung auch für alle Graphen Gi . Extra-Aufgabe 43: Wieviele Kanten hat ein solcher Teilgraph G = (V, Ei ) höchstens? Damit haben wir insgesamt das folgende Theorem gezeigt [8]: Theorem: G enthält min{λ(x, y, G), k} gilt. Jeder Graph einen Teilgraphen G0 mit höchstens Ein Algorithmus, der alle maximal aufspannenden Wälder in O(k · n) O(m) Kanten, so dass λ(x, y, G0 ) ≤ berechnet, wurde auf Aufgabenblatt 6 vorgestellt und besprochen. Der dazugehörige Artikel wurde auf der Webseite verlinkt [8]. 23 www.bioinfoblog.de 2 Ausgewählte Graphenalgorithmen MINIMALE KREISBASEN Extra-Aufgabe 44: Stellen Sie sicher, dass Sie diesen Algorithmus verstanden haben! 2 Minimale Kreisbasen In vielen Anwendungen der Graphentheorie spielen die Kreise in gegebenen Graphen oder Netzwerken eine zentrale Rolle. Ein besonders vielversprechendes Hilfsmittel, um über die Kreise eines Graphen zu sprechen, ist die Formulierung/Formalisierung als Vektorraum. Damit steht zum einen der gesamte Apparat der linearen Algebra für Analyse und Formulierung zur Verfügung, zum anderen liefert vor allem der Begri der Basis eine Möglichkeit etwas über "alle" Kreise eines Graphen auszusagen, ohne tatsächlich alle Kreise aufzuzählen. Die folgenden Fragestellungen können mit Hilfe von Kreisbasen gelöst werden: Elekrotechnik: Für alle elektrischen Netzwerke müssen die Kirchhoschen Gesetze gelten. Für die 1. Planung solcher Netzwerke ist es daher notwendig nachzuprüfen, ob sich tatsächlich alle Ströme so verhalten. Dabei werden unter anderem die Maschen des Netzwerks (also die Kreise) berücksichtigt. Mithilfe der Kreisbasen ist es hier jedoch möglich, den notwendigen Aufwand deutlich zu reduzieren, da, wenn die Kirchhoschen Gesetze auf den Elementen der Kreisbasis gelten, sie dann auch für die Menge aller Kreise des Graphen gelten. Bioinformatik: In der Bioinformatik ist die Strukturuntersuchung verschiedener (organischer) Ver- 2. bindungen ein sehr wichtiges Thema. Dabei sind die Kreisstrukturen innerhalb des Moleküls ein wichtiger erster Indikator für die Vorhersage seiner Ähnlichkeit mit anderen Stoen. Das heiÿt, es werden in den darauf spezialisierten Datenbanken oftmals direkt die Kreisstrukturen abgespeichert, damit Vergleiche schnell durchgeführt werden können. In diesem Szenario helfen Kreisbasen den enormen Speicherbedarf deutlich zu reduzieren. Sie schaen so eine gute Zwischenlösung zwischen schnellstem Zugri (alle Kreise werden gespeichert) und ezientem Platzbedarf (nur das Molekül wird gespeichert und die Kreise bei jeder Anfrage neu berechnet). Hier sind besonders die Kreisbasen niedrigen Gewichts von groÿem Nutzen (siehe 2.2). Fahrplanerstellung im öentlichen Nahverkehr: Auch hier können Kreisbasen verwendet wer- 3. 4 den, um die Algorithmen , die einen solchen Fahrplan erstellen, deutlich zu beschleunigen. Dieses Beispiel steht stellvertretend für eine ganze Reihe von Problemen, die sich mit der Planung periodisch auftretender Aufgaben befassen. Durch eine geeignete Wahl der Kreisbasis (wobei auch hier ein möglichst kleines Gewicht den gröÿten Nutzen verspricht) lassen sich die betrachteten Probleme sehr kompakt beschreiben, so dass die entsprechenden Lösungsalgorithmen eine reduzierte Laufzeit aufweisen. 2.1 Kreisbasen Was ist ein Kreis in einem Graphen G = (V, E)? Naiv denkt man erst einmal an eine Knotenfolge, in der auÿer Start- und Enknoten jeder Knoten nur einmal vorkommt und in der aufeinanderfolgende Knoten mit einer Kante verbunden sind: v1 , v2 , . . . , vk = v1 , (vi , vi+1 ) ∈ E, ∀ 1 < i ≤ k − 1, vi 6= vj ∀i 6= j, i, j ≤ k − 1 Diese Art von Kreis stellt einen Spezialfall der allgemeineren Denition von Kreisen dar und wird Kreis einfacher genannt. Wir wiederholen noch einmal die Denition des Kreises: Denition: Kreis Ein Teilgraph C = (Vc , Ec ) von G = (V, E) heiÿt Kreis genau dann, wenn alle Knoten von C einen geraden Grad haben. 4 Meistens werden solche Probleme als mixed-integer-Program formuliert, die dann mit geeigneten Solvern gelöst bzw. approxi- miert werden. 24 www.bioinfoblog.de 2 Ausgewählte Graphenalgorithmen MINIMALE KREISBASEN Extra-Aufgabe 45: Zeigen Sie an einem Beispiel, dass es induzierte Teilgraphen eines Graphen und G(E2 ) = (V2 , E2 ) V1 = V2 , gibt, so dass aber E1 6= E2 G = (V, E) mit G(V1 ) = (V1 , E1 ) gilt. Abbildung 7: Abbildung für Extra-Aufgabe 46. Extra-Aufgabe 46: Welche der folgenden (Kanten)-Vektoren beschreiben Kreise in Abb. 7? V1 =(111110010000), V2 =(111000100111), V3 =(100010011111), V4 =(10101100101), V5 =(01111100000). Wir werden den Teilgraphen C durch seine Kantenmenge Ec beschreiben (von Ec induzierter Graph ist wieder C ). Sei die Kantenmenge E eines Graphen nun beliebig aber fest sortiert, d.h., jeder Kante wird ein fester Index von 0 bis m − 1 zugeordnet. Dann kann man jede Teilmenge Et ⊆ E als m-dimensionalen Vektor über {0, 1} E darstellen, indem wir den Vektor X t denieren als: ( 1 , falls ei ∈ Et XiEt := 0 , sonst Insbesondere kann man alle Kreise C eines Graphen als Vektoren XC über F2 = ({0, 1}, ·, ⊕), dem Körper mit zwei Elementen, darstellen. Die Addition der Elemente in diesem Körper ist äquivalent zur XOR-Verknüpfung, und die zweier oder mehrerer Vektoren äquivalent zur jeweiligen XOR-Verknüpfung der Elemente an derselben Koordinate. Eine äquivalente Mengenoperation ist damit wie folgend gegeben: c1 ⊕ c2 = (EC1 ∪ EC2 ) \ (EC1 ∩ EC2 ) Dann erhalten wir den Kreisraum von G (die Menge C denierten Operationen), indem wir den Vektorraum (XOR-Operation) G zusammen mit den auf ihnen C ∈ C über F2 bilden. aller möglichen Kreise in 5 aller Vektoren XC für Extra-Aufgabe 47: Zeigen Sie die Abgeschlossenheit der Addition ⊕, d.h., zeigen Sie, dass C1 ⊕ C2 wieder einen Kreis ergibt, ∀C1 , C2 ∈ C . Die Menge aller Kreise eines Graphens kann exponentiell groÿ sein und ist es auch häug. Daher ist es in vielen Applikationen wünschenswert, nur eine Teilmenge von Vektoren zu speichern, mit denen alle anderen Kreise erzeugt werden können. Eine solche Menge an Vektoren wird Erzeugendensystem oder Basis genannt. Wir wiederholen kurz einige Eigenschaften von Basisvektoren: 5 Der Vektorraum ist deniert als die Menge aller zulässigen Vektoren zusammen mit der auf ihnen denierten Verknüpfung. Es muss sichergestellt werden, dass aus der Verknüpfung zulässiger Vektoren nur weitere zulässige Vektoren entstehen (Abgeschlossen- heit des Vektorraums ). 25 www.bioinfoblog.de 2 Ausgewählte Graphenalgorithmen 1. Die Basis B eines Vektorraumes 2. Eine Teilmenge ten von E E ⊆V V MINIMALE KREISBASEN ist ein linear unabhängiges Erzeugendensystem von heiÿt Erzeugendensystem, wenn sich alle v∈V V. als Linearkombination aus Elemen- schreiben lassen. Formal: ∀v ∈ V : v = k1 v1 ⊕ k2 v2 ⊕ · · · ⊕ kr vr , ki ∈ F2 , vi ∈ E. 3. Eine Menge von U ⊆V heiÿt linear unabhängig, wenn sich kein Element den anderen Elementen aus U u∈U als Linearkombination aus schreiben lässt. 4. Alle Basen eines (endlich dimensionalen) Vektorraums haben die gleiche Anzahl von Elemten (Austauschsatz von Steinitz). 5. Die Dimension eines Vektorraums ist gegeben durch die Gröÿe der Basis. Definition: Kreisbasis linear unabhängige Menge von Kreisen des Graphen G, die den gesamten Kreisraum aufspannt, heiÿt Kreisbasis (cycle base (CB )) von G. Eine Extra-Aufgabe 48: Wie genau sieht die Linearkombination einer Teilmenge von Kreisen aus? Was bewirken die Skalare ki ? Wie können Sie, bei gegebener Teilmenge von Kreisen, konkret testen, ob diese Menge linear unabhängig ist? C an Ci erzeugen kann, indem alle seine Mitglieder mit ⊕ addiert werden. Mit anderen Worten: Eine Menge C = {C1 , C2 , C3 , · · · } Antwort: Lineare Unabhängigkeit lässt sich beispielsweise testen, indem man für eine gegebene Menge Kreisen und jeden darin enthaltenen Kreis Ci testet, ob eine beliebige Teilmenge C0 ⊆ C den Kreis von Kreisen ist linear unabhängig, wenn gilt: M C 0 6= Cj ∀Cj ∈ C ∧ ∀C 0 ⊆ C. Ci ∈C 0 Spezielle Kreisbasen: Es ist schnell einzusehen, dass ein gegebener Graph eine Unzahl von Kreisbasen haben kann. Hier beschreiben wir eine einfache Methode, eine Kreisbasis für einen Graphen zu bestimmen: 1. Bestimme einen maximal aufspannenden Wald (bzw. Baum, falls G zusammenhängend) von T = (VT , ET ) G 2. Für jede Nichtbaumkante Pfad von v nach w ei = (v, w), ei ∈ E\ET bilde den Kreis Ci : PT (v, w) ∪ ei , wobei PT (v, w) T beschreibt. Diese Kreise nennen wir Fundamentalkreise zu ei . den im Baum 3. Die Menge all dieser Kreise Ci bildet eine Kreisbasis von G. Extra-Aufgabe 49: Zeigen Sie, dass die Menge aller durch T induzierten Fundamentalkreise linear unabhängig ist. Beweis 1. Die Menge B aller so konstruierten Kreise ist linear unabhängig. 26 www.bioinfoblog.de 2 Ausgewählte Graphenalgorithmen G 2. Alle Kreise in beliebigen Kreis lassen sich als Linearkombination aus Kreisen C mit zugehörigem Vektor die Nicht-Baumkanten ei C aus XC. Sei nun C0 Ci ∈ B MINIMALE KREISBASEN darstellen. Betrachte dazu einen gewählt als die Menge aller Kreise, die durch induziert werden, sei also: C 0 = {C | ei ∈ C ∧ ei 6∈ ET }. Wir denieren C∗ = L Ci und behaupten, dass C∗ = C ist. ei ∈C\ET Wir zeigen, dass durch die Linearkombination der resultierende Vektor der Kanten in in ET C ∗ nachher genau an den Indices eine 1 enthält. Für den Beweis unterscheiden wir vier Fälle, je nachdem, ob eine Kante und/oder in C ist: Kante ist in C , aber nicht in ET : Für alle Kanten ei ∈ C\ET (a) XC bination enthalten und ei ist in keinem anderen Kreis in B ist der Kreis Ci in der Linearkom- und damit auch nicht in einem anderen Kreis in der Linerkombination enthalten. Also hat XC ? an der Stelle ei eine 1. Kante ist in ET , aber nicht in C : Für jede Kante a = (u, v) ∈ ET \C , zerfällt der Baum T ohne a u ∈ Ku , v ∈ Kv . Als Schnitt bezeichnen wir die Menge aller Kanten, deren einer Endknoten im Baumteil Ku und deren anderer im Baumteil Kv liegt. C enthält eine gerade Anzahl von Kanten ej aus dieser Teilmenge (ansonsten wäre C kein Kreis, denn C würde sonst in einem der Teilbäume verbleiben!). Für jede dieser Kanten ej gibt es einen Kreis Cj ∈ B , der in der Linearkombination vorkommt. Jeder dieser Cj beinhaltet Kante a. Damit wird C? an der Stelle a in X eine gerade Anzahl von Einsen aufsummiert und damit eine 0 eingetragen. (b) in zwei Teile Ku und Kv , wobei Kante ist in ET und in C : Für jede Kante b ∈ ET ∩C zerfällt T ohne b in zwei Teile. Wieder enthält (c) C b. C eine ungerade Anzahl von Nichtbaumkanten über den Schnitt, und damit enthält ? C 0 auch eine ungerade Anzahl von Kreisen, die Kante b enthalten. Daher zeigt X C eine gerade Anzahl aus dem resultierenden Schnitt, aber eine dieser Kanten ist die Baumkante Daher enthält die Teilmenge an der Stelle b eine 1. Kante ist weder in (d) der Damit hat XC d ? enthält; also ET noch in C : Für keine Kante d ∈ E\ (ET ∪ C) C? hat X an dieser Stelle einen Eintrag 0. für alle Kanten aus dem Kreis C einen gibt es in Eintrag 1 und sonst einen Eintrag 0. → C0 einen Kreis, Damit bildet B ein CB. Korollar: Dimension der Kreisbasis Die Dimension des Kreisraumes zu einem Graphen wobei K(G) Beweis: G = (V, E) mit |V | = n, |E| = m, ist ν = m − n + K(G), G ist. die Anzahl der Zusammenhangskomponenten von Folgt direkt aus der Konstruktion von Spannbaum-induzierten Kreisbasen und dem Austauschsatz von Steinitz. 2.1.1 Dierenzierung von Kreisbasen In manchen Applikationen ist es wichtig, dass die verwendete Kreisbasis weitere Eigenschaften aufweist. Eine wichtige Eigenschaft ist die sogenannte Fundamentalität. 1. Eine spezielle CB erhalten wir, wenn wir zusätzlich fordern, dass es eine Ordnung der Kreise in der CB gibt, so dass für jeden Kreis Ci ∈ CB vorkommt. Eine solche Kreisbasis nennen wir eine Kante e ∈ Ci Cj mit j<i schwach fundamental. B mit der Eigenschaft, dass für jede Ordnung der Kreise e∈ / Cj mit j = 6 i und Cj ∈ B , nennen wir stark fundamental. 2. Eine Kreisbasis mit enthalten ist, die in keinem Kreis 27 in B gilt: Für Ci ∈ B ∃e ∈ E www.bioinfoblog.de 2 Ausgewählte Graphenalgorithmen MINIMALE KREISBASEN Extra-Aufgabe 50: Beweisen Sie, dass eine Kreisbasis, die durch einen beliebigen Spannbaum T in einem zusammenhängenden Graphen deniert wurde, stark fundamental ist. Extra-Aufgabe51: Zeigen Sie, dass eine schwach fundamentale Menge C mit ν = m−n+1 fvielen Kreisen in einem zusam- menhängenden Graphen automatisch auch eine Kreisbasis ist! Antwort: Wir behaupten das Gegenteil, dass es nämlich eine Teilmenge Verknüpfung in einen der Kreise ej kann, denieren wir als Ci aus C C0 C 0. Dann ist der Kreis ez C 0. resultierende Menge von der Wahl von 2.2 Cj zum ersten Mal auftaucht (falls es mehrere davon nur Kreise mit kleinerem Index als der resultierenden Menge enthalten sein. Enthalte höchste Index in Cz von Kreisen gäbe, die unter XOR- resultiert. Da die Menge schwach fundamental geordnet werden diejenige Kante, die in Kreis gibt, eine davon.) Wenn nun C0 C0 i enthält, dann kann die Kante nun auch Kreise mit höherem Index als der einzige Kreis, der Kante ez i, ei nicht in und sei z der enthält, und damit wird auch die enthalten. Es folgt daraus, dass die resultierende Menge nicht Ci sein kann, unabhängig Kreisbasen minimalen Gewichts Um Biomoleküle in Datenbanken abzuspeichern und Anfragen der Art 'Sieht dieses Molekül so ähnlich aus wie eins, das schon in der Datenbank ist?' können Kreisbasen verwendet werden. Um die Anfrage zu beantworten wird dann die Kreisbasis benutzt, um alle im Molekül vorhandenen (einfachen) Kreise aufzuzählen. Die Laufzeit des Algorithmus ist abhängig von der Länge der Kreisbasis, also der Summe der Kreislängen. Wir verallgemeinern diese Denition für gewichtete Graphen, und bezeichnen den Wert dann als Definition: Gewicht einer Kreisbasis Sei zu einem Graphen B von G deniert als G eine Gewichtsfunktion w : E → RT gegeben. Dann sei das Gewicht einer Kreisbasis X XX w(B) = w(C) = w(e). C∈B Denition: Gewicht der Kreisbasis: C∈B e∈C Minimale Kreisbasis Dann ist eine minimale Kreisbasis (MCB) eine Kreisbasis mit minimalem Gewicht. Bemerkungen: 1. Jeder Kreis in einer MCB ist einfach. 2. Für jede Kante e ∈ E , die in einem Kreis enthalten ist, gilt: Es gibt in jeder Kreisbasis B mindestens einen e enthält. Insbesondere enthält jede MCB von G zu jedem e ∈ E einen kürzesten Kreis, der diese Kante Kreis, der e 3. Die Menge enthält. Wobei kürzester Kreis einen Kreis minimalen Gewichts beschreibt. K := {Cmin (ei ) : Cmin (ei ) kürzester Kreis der e enthält, e ∈ E} ist im Allgemeinen keine CB. Extra-Aufgabe 52: Zeigen Sie, dass die zuletzt getroene Aussage stimmt. 28 www.bioinfoblog.de 2 Ausgewählte Graphenalgorithmen MINIMALE KREISBASEN Naiver Algorithmus zum Berechnen einer MCB Eingabe: Graph G = (V, E) Ausgabe: MCB zu G 1 Berechne Menge C aller Kreise 2 Ordne Menge C := {c1 , c2 , ...ck } aller Kreise in G aufsteigend nach Gewicht 3 Init. B ← ∅ 4 for i = 1 to K do 5 if B ∪ {ci } linear unabhängig 6 B ← B ∪ {ci } 7 endif 8 endfor Extra-Aufgabe 53: Warum berechnen wir nicht die Menge aller einfachen Kreise? Antwort: Der Hamilton-Kreis ist auch ein einfacher Kreis und ihn zu nden, ist NP-hart, somit kann es nicht leichter sein, die Menge aller einfachen Kreise zu berechnen. Anmerkung: w(MCB) ≤ w(wFMCB) ≤ w(sFMCB) Wir zeigen nun einen fundamentalen Zusammenhang zwischen der stark fundamentalen, minimalen Kreisbasis ( strictly fundamental minimum cycle base T Q(T) minimiert: Sei (sFMCB)) und einem Spannbaum T eines Graphen G=(V,E), wobei w : E → R+ : e 7−→ 1 und sei B eine X XX w(B) = dT (u, v) + 1 = w(e) G = (V, E) und sFMCB von G, dann C∈B e∈C e∈E\ET e=(u,v) Spannbäume mit niedrigem durchschnittlichem Stretch: Q(T ) = X dT (u, v) e∈E e=(u,v) ! X dT (u, v) + 1 = (m − n + 1) + e∈E\ET B X dT (u, v) = (m − n + 1) + dT (u, v) − (n − 1) e∈E e∈E\ET ist SFCB, gegeben durch X T. w(B) = Q(T ) + (m − 2(n − 1)) Extra-Aufgabe 54: Warum gilt: w(MCB) ≤ w(WFMCB) ≤ w(SFMCB)? 2.2.1 Der Algorithmus von Horton Die Frage, ob eine minimale Kreisbasis ezient berechnet werden kann, war lange unklar. 1987 veröentlichte Horton einen ersten Algorithmus mit polynomieller Laufzeit [5], den wir hier vorstellen. Satz[5]: Für jeden Kreis C, C einer MCB eines Graphen G existiert zu jedem Knoten V auf C eine Kante {u, w} aus so dass gilt: C = SP(u, v) + SP(w, v) + {u, w} 29 www.bioinfoblog.de 2 Ausgewählte Graphenalgorithmen wobei SP(u, v) den kürzesten Pfad von u nach v in G MINIMALE KREISBASEN beschreibt. Aus diesem Satz lässt sich der folgende Algorithmus ableiten: Algorithmus von Horton Eingabe: G = (V, E) Ausgabe: MCB von G 1 Initialisiere: Menge H ← ∅ 2 for v ∈ V und {u, w} ∈ E do 3 Berechne CV (u, w) = SP(u, v) + SP(w, v) + {u, w} 4 if CV (u, w) einfacher Kreis 5 H ← H ∪ {CV (u, w)} 6 endif 7 endfor 8 Sortiere H aufsteigend nach Gewicht (H = {c1 , c2 , ...ck }) 9 Wende naiven Algorithmus (Schritt 3 bis 8) auf H an Korrektheit des Algorithmus': Folgt direkt aus dem Satz von Horton. Laufzeit: 1. |H| ≤ n · m H: O(n · m · L(kürzester 2. Berechnung von 6 Weg)) H: O((n · m) · log(n · m)) 3. Sortiere 4. Laufzeit naiver Algorithmus: Test auf lineare Unabhängigkeit: O(n · m) (= |H|) m − n + K(G) 2 Einzelner Test: O m ⇒ insgesamt O m3 · n #Tests: gegen max. viele Elemente: O(m) Für den Beweis des Satzes von Horton brauchen wir noch einige weitere Eigenschaften von Kreisbasen. Besonders interessiert uns das Austauschen von Basiselementen. Lemma 1: Falls B Austausch von Kreisen in einer Kreisbasis eine Kreisbasis ist, c∈B und c = c1 ⊕ c2 , dann ist etweder B\{c} ∪ {c1 } oder B\{c} ∪ {c2 } wieder eine Kreisbasis. Beweis c1 nicht als Linearkombination B\{c} ∪ {c1 } eine Basis. 1. Wenn Kreis 2. Wenn von Kreisen aus c1 als Linearkombination von Kreisen aus B\{c} B\{c} und damit B\{c} ∪ {c2 } eine Basis. sein zu 6 L() B\{c} darstellbar ist, dann ist oensichtlich darstellbar ist, dann muss c2 linear unabhängig heiÿt Laufzeit von 30 www.bioinfoblog.de 2 Ausgewählte Graphenalgorithmen Lemma 2: Sei B MINIMALE KREISBASEN Austausch durch Kreis mit spezischem Pfad eine Kreisbasis von jeder Kreis c ∈ B, der x G. und Für zwei Knoten y x, y ∈ V und für einen Weg enthält, ersetzt werden durch einen Kreis c0 P der von P x nach y (in G), kann enthält. Beweis: c Enthält bereits den Pfad c können wir schreiben als Lemma 1 ist nun entweder P , sind wir fertig. Ansonsten enthalte c die c = c1 ⊕ c2 , wobei c1 gegeben ist duch P B\{c} ∪ {c1 } oder B\{c} ∪ {c2 } eine Basis. zwei Pfade und P1 P1 , P2 von x c2 durch P und nach und y . Damit P2 . Nach Bemerkung: Angenommen in der Situation von Lemma 2 ist weder P Sei aber x ein kürzester Pfad zwischen mit Lemma 2 jede Basis die c und B und y noch P2 x nach y . w(c2 ) < w(c). Somit kann statt c entweder c1 oder c2 ein kürzester Pfad (SP) von w(c1 ) < w(c) B 0 umgewandelt und werden, die besitzt. Damit haben wir gezeigt, dass in einer MCB x P1 Dann ist oenbar enthält in eine Basis enthält und ein geringeres Gewicht als Pfad zwischen y. B jeder Kreis, der die Knoten x, y enthält, auch einen kürzesten enthält. Beweis des Satzes von Horton Betrachte einen beliebigen Kreis c der MCB B , sowie einen beliebigen c. Seien die Knoten auf c indiziert mit v0 , v1 , ..., vk mit v0 = vk = v . Zum Knoten vi auf c sei Qi der Weg von v nach vi auf c, in Richtung der Indizierung. Analog sei Pi der Weg von vi nach v . Somit teilen Qi und Pi den Kreis c in zwei Hälften. Nach unserer Anmerkung muss nun entweder Qi oder Pi ein kürzester Pfad zwischen v und vi sein. Knoten v Sei nun i der gröÿte Index, so dass Qi auf der kürzeste Weg zwischen v und vi ist. Dann ist die gesuchte Darstellung aus dem Satz. 2.3 c = Qi ⊕{vi , vi+1 }⊕Pi+1 Obere Schranke für minimale Kreisbasen w(MCB) ≤ w(wFMCB)7 ≤ w(sFMCB)8 Damit gilt für obere Schranken: S ≥ w(B) ⇒ S ≥ w(B 0 ) Sei 2.4 B B 0 , ⇒ S ≥ w(B 00 ) ∀ für alle sFMCB für wFMCB MCB B 00 Obere Grenze für die Länge einer MCB Theorem [5]: Die Länge einer MCB in einem ungerichteten, ungewichteten und einfachen Graphen G mit n Knoten ist O(n2 ). Beweis: Klar für per Induktion n = 1, 2, 3. Induktionsschritt: Sei nun Falls G n≥3 und sei G ein Graph mit n+1 Knoten. nicht zweifach knotenzusammenhängend ist: Sei v ein Schnittknoten, so dass G \ {v} nicht zusammen- hängend ist. 7 seit 8 seit 2007: 2005: w(wF M CB) ∈ O(m log n) nach Rizzi [12] w(sF M CB) ∈ O(m log2 n · log log n) nach Elkin, Emek, Spielman und Teng [4] 31 www.bioinfoblog.de 2 Ausgewählte Graphenalgorithmen MINIMALE KREISBASEN H' H G\H v Sei H eine Zusammenhangskomponente in Knoten in Sei nun H H0 G \ H eine und G \ H und n+1−k die in G \ {v} und G\H der Restgraph (inkl. v ). Sei k die Anzahl der G \ H. H plus v samt Kanten. Aus der Induktionsvorraussetzung folgt, dass es für H 0 und 2 2 0 Länge ≤ (k + 1) bzw. ≤ (n + 1 − k) gibt. Eine CB für G kann aus den beiden CBs für H deniert als CB mit durch Vereinigung gebildet werden. G zweifach zusammenhängend ist. Sei x ein Knoten in G und T ein beliebiger G. Wir bilden jetzt für Knoten x deg(x)−1 linear unabhängige Kreise (B 0 ) mit einer Gesamtlänge ≤ 2(n + 1) und fügen sie zu einer CB von G \ {x} mit Länge ≤ n2 hinzu. 2 Damit entsteht CB für G mit Gesamtlänge ≤ (n + 1) . Sei m die Anzahl der Kanten in G ohne x und ndie Anzahl der Knoten in G ohne x, dann gilt: Wir nehmen daher nun an, dass Spannbaum in ν 0 für G \ {x} = m + 1 − n ν für G = m + deg(x) − n 2.4.1 Eine obere Grenze für die Länge von schwach fundamentalen Kreisbasen Zu diesem Beweis nden Sie im Internet auch Vortragsfolien auf unserer Webseite für die Übungen verlinkt. Theorem (Zweig,Geyer,Kaufmann): Das Gewicht einer schwach fundamentalen, minimalen Kreisbasis eines ungewichteten Graphen liegt in O(m log n + n log2 n). Beweis: Für diesen Beweis greifen wir zurück auf die im Kapitel 1 vorgestellten Spanner. Wir brauchen die folgenden Beobachtungen: Beobachtung 1: Für einen gegebenen Graphen G mit n Knoten und m Kanten, bildet jede Menge mit ν = m−n+1, die schwach fundamental ist, eine Kreisbasis (s. dazu Extra-Aufgabe in 2.1.1). Beobachtung 2: T ⊆ · · · ⊆ G2 ⊆ G1 ⊆ G0 ⊆ G−1 = G eine Folge von ineinander verschachtelten Teilgraphen und sei Ei Gi−1 noch enthalten sind, in Gi aber nicht mehr. Wir denieren für jede dieser Kanten e = (x, y) einen Kreis C(e), der durch i und einen kürzesten Pfad PGi (x, y) in Gi gegeben ist. Sei Ci die Menge aller Kreise, die durch die Kanten in Ei induziert werden. Wir denieren die Menge C als Vereinigung aller Mengen Ci . Sei die Menge an Kanten, die in Extra-Aufgaben 55: Wieviele Kreise enthält C? Extra-Aufgabe 56: Beweisen Sie, dass die Menge C eine fundamentale Ordnung besitzt. 32 www.bioinfoblog.de 2 Ausgewählte Graphenalgorithmen MINIMALE KREISBASEN Beobachtung 3: Die Länge eines Kreises Stretch von C(e), der durch eine Kante in Teilmenge Wir bilden daher nun die Teilgraphen Gi induziert wurde, ist nicht gröÿer als der aus dem jeweils vorhergehenden Graphen k = 2i log n. mus Basic_Part und mit dem Eingabeparameter der Kanten Ei Gi +1. mi Gi−1 mit Hilfe des Algorith- Nach dem Theorem in 1.2.1 gilt für die Anzahl eines solchen Graphens: 1 −i n ≤ mi ≤ n · n 2i log n = n · 22 . O(k) = O(2i log n) liegt. Es ist klar, dass nicht mehr Kanten in Phase i entfernt werden können, als Gi−1 Kanten hatte (−n, da ja der nächste Graph ein spannender Teilgraph auch der Beitrag W (Ci ) zum Gesamtgewicht von C , der durch die Menge Ci verursacht wird, nicht Für den Stretch dagegen gilt, dass er in aus Gi−1 ist), also gröÿer sein kann als: W (Ci ) ≤ (mi−1 − n) · stretch(Gi ) ⇒ W (C0 ) ≤ O(m) · log n ⇒ W (Ci ) ≤ n(22 −(i−1) Damit ergibt sich für das Gewicht für G0 − 1) · 2i log n = 2 · n log n · 2(i−1) (22 W (C) der gesamten Kreisbasis C −(i−1) − 1) für Gi , i > 0. folgende Abschätzung nach oben: x W (C) ≤ O(m log n) + 2n log n X 2i (22 −i − 1). i=0 Jetzt sind nur noch zwei Sachen zu klären: über wieviele Indices müssen wir summieren (d.h., wie groÿ ist x) und können wir den Term in der Summe nach oben abschätzen? Extra-Aufgabe 57 (war Teil des Übungsblattes): Zeigen Sie per Induktion, dass 22 −i − 1 ≤ 2−i gilt für alle i ≥ 0. Damit gilt für den Term innerhalb der Summe, dass er immer kleiner ist als 1. Die Frage ist nun, ob es irgendein gibt, so dass der verbleibende Teilgraph Gi hat, dass er quasi ein Baum ist. Wir fordern: wähle dass 2 2 −i i entweder direkt ein Spannbaum ist, oder nur noch so wenige Kanten 2 i so, dass −i n · n1/k = n · 22 −i −i − 1 ≤ 2/n sein soll. Da wir wissen, dass 2 − 1 ≤ 2 gilt, können wir 2−i ≤ 2/n. Dies gilt für i ∈ O(log n). Damit gilt also insgesamt: ≤ n(1 + 2/n) ist. Daraus folgt, dann auch nach dem i suchen, so dass gilt: W (C) ≤ O(m log n + n log2 n), wie gefordert. 33 www.bioinfoblog.de INHALTSVERZEICHNIS Ausgewählte Graphenalgorithmen Inhaltsverzeichnis 1 Teilgraphen mit besonderen Eigenschaften 1.1 Beispiel Formalisierung (3.) 1.2 Clustern von Graphen 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 Ein erster Ansatz [10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2 Ein zweiter Ansatz [10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.3 Ein dritter Ansatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.3 Spanner 1.4 Spannbäume mit niedrigem, durchschnittlichem Stretch . . . . . . . . . . . . . . . . . . . . . . . 13 1.5 Dünne Teilgraphen, die den Zusammenhang erhalten . . . . . . . . . . . . . . . . . . . . . . . . . 21 2 Minimale Kreisbasen 2.1 24 Kreisbasen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.1.1 Dierenzierung von Kreisbasen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Kreisbasen minimalen Gewichts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.3 Obere Schranke für minimale Kreisbasen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.4 Obere Grenze für die Länge einer MCB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Eine obere Grenze für die Länge von schwach fundamentalen Kreisbasen . . . . . . . . . . 32 2.2 2.4.1 Der Algorithmus von Horton 34 www.bioinfoblog.de Index Basis, 25 Cluster, 2, 4 Clusteringmaÿ, 4 Connectivity, 21 cycle base, 26 Dimension der Kreisbasis, 27 Dominating Set, 15 Durchmesser, 5 einfacher Kreis, 24 Entscheidungsproblem, 16 Erzeugendensystem, 25 Exact-3-Cover, 16 Exzentrizität, 5 Fundamentalität, 27 Gewicht einer Kreisbasis, 28 Girth, 13, 14 inter-cluster edges, 7 Intraclusterkanten, 7 k-dominating Set, 9 k-Spanner, 12 kantenzusammenhängend, 21 Kreis, 24 Kreisbasen, 24 Kreisbasis, 26 Metagraph, 4 Minimale Kreisbasis, 28 Minimale Spannbäume, 2 Optimierungsproblem, 16 Partition, 4 Partitionierung, 4 Radius, 5 Schubladenprinzips, 10 Schutzkanten, 18 Spanner, 11 Stretch, 11 Taillenweite, 13, 14 Tie-Breaking-Rule, 9 w gewurzelten, distanzerhaltenden Spannbaum, 12 zusammenhängend, 21 Zusammenhang, 21 35 LITERATUR Ausgewählte Graphenalgorithmen Literatur [1] Noga Alon, Richard M. Karp, David Peleg, and Douglas West. A graph-theoretic game and its application to the k -servers problem. SIAM Journal on Computing, 24(1):78100, 1995. [2] Peter S. Bearman, James Moody, and Katherine Stovel. Chains of aection: The structure of adolescent romantic and sexual networks. American Journal of Sociology, 110:4491, 2004. [3] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Cliord Stein. Introduction to Algorithms. MIT Press, 2003. [4] Michael Elkin, Yuval Emek, Daniel A. Spielman, and Shang-Hua Teng. Lower-stretch spanning trees. In Proceedings of STOC'05, 2005. [5] J.D. Horton. A polynomialtime algorithm to nd the shortest cycle basis of a graph. SIAM J. Comput., 16:359366, 1987. [6] Jon Kleinberg and Éva Tardos. [7] Shay Kutten and David Peleg. Algorithm Design. Addison-Wesley, 2006. Fast distributed construction of k-dominating sets and applications. Proceedings of PODC'95, pages 238249, 1995. In [8] H. Nagamochi and T. Ibaraki. A linear-time algorithm for nding a sparse k-connected spanning subgraph of a k-connected graph. [9] Mark E.J. Newman. Algorithmica 7, 7:583596, 1992. Who is the best connected scientist? a study of scientic coauthorship networks. arXiv: cond-mat/0011144, November 2000. [10] David Peleg. Distributed Computing - A Locality Sensitive Approach. SIAM Monographs on Discrete Mathematics and Applications, 2000. [11] Michael R.Garey and David S. Johnson. Completeness. [12] Romeo Rizzi. Computers and Intractability - A Guide to the Theory of NP- W.H. Freeman and Company, New York, 1979. Minimum weakly fundamental cycle bases are hard to nd. Algorithmica, 2007. DOI 10.1007/s00453-007-9112-8. [13] Uwe Schöning. Theoretische Informatik. [14] Katharina A. Zweig. Spektrum Akademischer Verlag, 4th ed. edition, 2000. On Local Behavior and Global Structures in the Evolution of Complex Networks. PhD thesis, University of Tübingen, Wilhelm-Schickard-Institut für Informatik, 2007. 36 www.bioinfoblog.de