Skript zur Vorlesung Graphenalgorithmen

Größe: px
Ab Seite anzeigen:

Download "Skript zur Vorlesung Graphenalgorithmen"

Transkript

1 Skript zur Vorlesung Graphenalgorithmen Version Juniorprofessor Dr. rer. nat. Robert Elsässer, überarbeitet von Dr. rer. nat. Henning Meyerhenke Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Institut für Informatik D Paderborn Skript (Version 1.0) verfasst von Florentin Neumann

2 Inhaltsverzeichnis Vorwort 3 1 Einleitung und Motivation 4 2 Kürzeste Pfade, All Pairs Shortest Paths (APSP) Der Floyd-Warshall-Algorithmus Matrix-Multiplikation Voraussetzungen Distanz- und Wegeberechnungen mit dem Algorithmus von Seidel Matchings in bipartiten Graphen Grundlagen und Strukturaussagen Berechnung von gröÿtmöglichen Matchings Matchings mit maximalem Gewicht Korrektheit Matchings in allgemeinen Graphen Der Algorithmus von Edmonds Approximationsalgorithmen für MWM Die Theoreme von Tutte und Petersen Netzwerkalgorithmen Der Hypercube Gitter und Torus Lastbalancierung Bisektionsweite und Partitionierung Untere Schranken für die Bisektionsweite Verfahren von Leighton Spektrale untere Schranke Obere Schranken für die Bisektionsweite

3 6.3 Maximale Schnitte in Graphen Literaturverzeichnis 70 2

4 Vorwort Dieses Skript basiert auf der Vorlesung Graphenalgorithmen, die ich im WS 2009/10 an der Universität Paderborn für Master-Studierende gelesen habe. Die ursprüngliche Version wurde ein Jahr zuvor von Florentin Neumann anhand der Vorlesung von Robert Elsässer erstellt. Das Kapitel über Bisektionsweite und Partitionierung stammt überwiegend aus dem Skript zur Vorlesung Algorithmen für synchrone Rechnernetze von Burkhard Monien. Inhaltlich habe ich die Vorlesung gegenüber dem Vorjahr leicht verändert, was auch zu Löschungen und Hinzufügungen im Skript geführt hat. Leider konnte ich noch nicht alle Lücken füllen, habe aber an solchen Stellen weitestgehend Literaturverweise eingefügt. Des weiteren sind sicherlich noch nicht alle enthaltenen Fehler korrigiert, ich bin daher im Namen aller am Skript Beteiligten um entsprechende Hinweise dankbar. Bitte bedenken Sie bei der Prüfungsvorbereitung, dass die gesamte Veranstaltung geprüft wird, dazu gehören zum Beispiel auch die Übungszettel. Ein Studium des Skripts kann den Besuch der Vorlesung und der Übung nicht ersetzen! Paderborn, 8. März 2010 Henning Meyerhenke 3

5 Kapitel 1 Einleitung und Motivation In dieser Vorlesung werden Sie eine Reihe von Algorithmen kennenlernen, die auf Graphen operieren. Ein Graph modelliert allgemein gesprochen eine Menge von Entitäten (dargestellt als Knoten) und die Beziehungen der Entitäten (dargestellt durch Kanten). Denition 1. Ein Algorithmus ist eine eindeutige Beschreibung eines Verfahrens zur Lösung einer bestimmten Klasse von Problemen. Genauer gesagt ist ein Algorithmus eine Menge von Regeln für ein Verfahren, um aus gewissen Eingabegröÿen bestimmte Ausgabegröÿen herzuleiten. Dabei muss dass Verfahren in einem endlichen Text beschreibbar sein. Jeder Schritt dieses Verfahrens muss auch tatsächlich ausführbar sein und darüber hinaus muss der Ablauf des Verfahrens zu jedem Zeitpunkt eindeutig deniert sein. Hier einige typische Beispielprobleme, in denen Graphenalgorithmen eine wichtige Rolle spielen: Wie ndet ein Navigationssystem gute Verbindungen zwischen zwei Orten? Wie werden im Internet Informationen geroutet? Wie berechnet ein Unternehmen eine möglichst gute Aufteilung seiner Ressourcen, um seinen Gewinn zu maximieren? Wie werden etwa in Google Informationen schnell gefunden? Um über die Qualität eines Algorithmus urteilen zu können, bedarf es bestimmter Kriterien, um entsprechende Urteile treen zu können. (i) Algorithmen müssen korrekt sein. D.h. zu jedem Algorithmus gehört ein Korrektheitsbeweis, der in allgemeiner Form die Korrektheit der Berechnung der Ausgabegröÿe zu einer gegebenen Eingabegröÿe zeigt. (ii) Algorithmen sollen zeit- 4

6 und speicherezient sein. Hierzu bedarf es Analysemethoden für den Zeit- und Speicherbedarf eines Algorithmus. Diese Analyse basiert in der klassischen Algorithmik nicht auf empirischen Untersuchungen, sondern auf mathematischen Analysen. Wir nutzen hierfür Pseudocode und Basisoperationen. Zum Entwurf eines Algorithmus gehören grundsätzlich drei Dinge: 1. Die Beschreibung des Algorithmus selbst in Pseudocode. 2. Ein vollständiger Korrektheitsbeweis. 3. Die Analyse des Zeit- und Speicherbedarfs des Algorithmus. 5

7 Kapitel 2 Kürzeste Pfade, All Pairs Shortest Paths (APSP) Zu Beginn dieses Kapitels betrachten wir das Problem kürzester Wege in gerichteten Graphen mit Kantengewichten. In einem unidirektionalen, zusammenhängenden Graphen G = (V, E) mit V = {1,..., n} und E = m als Eingabegröÿen soll als Ausgabegröÿe für jedes Paar von Knoten u, v V die Distanz von u nach v sowie ein kürzester Weg zwischen den beiden Knoten im Graphen G berechnet werden. Denition 2. Sei ein gerichteter und gewichteter Graph G = (V, E) mit der Gewichtsfunktion w : E R gegeben. Das Gewicht eines Weges P = v 0, v 1,..., v k ist die Summe der Gewichte seiner Kanten: w(p ) = k w(v i 1, v i ). i=1 Denition 3. Das Gewicht eines kürzesten Weges P in einem gerichteten und gewichteten Graphen G = (V, E) zwischen den Knoten u, v V ist deniert als: min{w(p ) : v ist von u über P erreichbar}, δ(u, v) =, falls v von u nicht erreichbar ist. Ein kürzester Weg zwischen u, v V ist dann ein Weg P mit w(p ) = δ(u, v). 6

8 Abbildung 2.1: Unidirektionaler, gewichteter Graph G = (V, E) Die Eingabe wird als Gewichtsmatrix W = (w ij ) dargestellt, die den Graphen repräsentiert. Die Matrix-Einträge w ij sind wie folgt deniert: 0, wenn i = j w ij = Gewicht der ger. Kante (i, j), wenn i j und (i, j) E, wenn i j und (i, j) / E Aus dieser Denition folgt für den Graphen G aus Abbildung 2.1 die Gewichtsmatrix w ij, abgebildet in Tabelle 2.1: Tabelle 2.1: Gewichtsmatrix W zum Graphen G aus Abbildung 2.1 a b c d e f a b 0 4 c d e f 0 7

9 2.1 Der Floyd-Warshall-Algorithmus Algorithm 1 Floyd-Warshall - APSP 1: procedure Floyd-Warshall(G = (V, E)) 2: D (0) W 3: for k 1 to n do 4: for i 1 to n do 5: for j 1 to n do 6: d (k) ij 7: end for 8: end for 9: end for 10: return D n 11: end procedure min(d (k 1) ij, d (k 1) ik + d (k 1) kj ) Der Floyd-Warshall-Algorithmus basiert auf der Idee, das Problem schrittweise zu vergröÿern. In Iteration k werden alle Wege berücksichtigt, die über Knoten aus der Menge {1,..., k} verlaufen (direkte Kanten des Graphen eingeschlossen). Nach Ende der äuÿersten Schleife hat k den Wert n überschritten, so dass alle möglichen Wege berücksichtigt worden sind. Lemma 4. Sei G ein Graph ohne negative Zyklen und sei j von i aus erreichbar. Dann gibt es einen kürzesten i j-weg, der keinen Knoten doppelt benutzt. Satz 5. Sei G = (V, E) ein Graph mit nicht-negativen Zyklen. Dann berechnet der Algorithmus von Floyd-Warshall die Entfernung zwischen jedem Knotenpaar in O( V 3 ) Schritten. Die Beweise von Lemma 4 und Satz 5 werdem dem Leser anhand der obigen Erläuterungen als Übung empfohlen. Bemerkung 6. Das als Algorithmus 1 angegebene Verfahren löst eigentlich nur das Problem All-Pairs-Distances (APD), d. h. es werden nur die paarweisen Distanzen und nicht auch die zugehörigen kürzesten Wege berechnet. Eine entsprechende Erweiterung des Algorithmus für APSP wird dem Leser als Übungsaufgabe empfohlen. 8

10 Abbildung 2.2: Ungerichteter Graph G = (V, E) und die zugehörige Adjazenzmatrix A 2.2 Matrix-Multiplikation Voraussetzungen Wir betrachten ungerichtete Graphen G = (V, E) mit der Knotenmenge V = {1,..., n}. Ein Graph G = (V, E) ist gegeben durch seine Adjazenzmatrix A. Betrachte hierzu den Graphen aus Abbildung 2.2 und die zugehörige Adjazenzmatrix. Denition 7. Es sei G = (V, E) ein Graph, W = (w ij ) eine Gewichtsmatrix, d.h. w ij ist das Gewicht der Kante von i nach j. Deniere δ (k) ij als Gewicht des bzgl. des Gewichts kürzesten Weges von i nach j mit höchstens k Kanten. Bemerkung 8. Es sei G = (V, E) ein Graph und W eine Gewichtsmatrix für G. Dann gilt: δ (0) 0, i = j ij =, i j und Auÿerdem ist δ(i, j) = δ (n 1) ij. δ (m) ij = min 1 k n {δ(m 1) ik + w kj } für m 1. Im Folgenden betrachten wir das Problem der Matrixmultiplikation. Es seien D, W R n n quadratische Matrizen. Dann berechnet sich der Eintrag (i, j) des Produkts von D und W als Skalarprodukt der i-ten Zeile von D und der j-ten Spalte von W : (D W ) ij = n D ik W kj (2.1) k=1 Wir wollen uns nun zu Nutzen machen, dass die Berechnungsvorschrift zur Matrixmultiplikation sehr ähnlich zu der rekursiven Formel in Bemerkung 8 9

11 ist. Denn ersetzt man im rechten Teil der Formel (2.1) durch + und das durch Σ gegebene + durch min, gilt für D, W (R { }) n n : (D W ) ij = min 1 k n {D ik + W kj } Diese Beobachtung setzen wir nun ein, um mit Hilfe eines modizierten Algorithmus zur Matrixmultiplikation die Distanzen aller paarweise kürzesten Wege zu berechnen. Die wichtige Idee dabei ist, D (n 1) = (δ (n 1) ij ) durch fortgesetzte Matrixmultiplikation zu berechnen: D (1) = W, D (2) = W 2 = W W, D (4) = W 4 = W 2 W 2,... D (2 log n 1 ) = D 2 log n 1 = D 2 log n log n 1 1 D Algorithmus 3 namens mmapd zeigt nun, wie man durch fortgesetzte Aufrufe an eine Subroutine zur modizierten Matrixmultiplikation die Distanzen der paarweise kürzesten Wege berechnen kann. Momentan liegt die beste bekannte Algorithm 2 MatrixMultiply 1: procedure MatrixMultiply(weight matrix A, B) 2: for i = 1; i n; i + + do 3: for j = 1; j n; j + + do 4: C ij = 5: for k = 1; k n; k + + do 6: C ij = min{c ij, A ik + B kj } 7: end for 8: end for 9: end for 10: return C 11: end procedure Laufzeit eines Algorithmus für Matrixmultiplikation bei O(n ). Eine bessere untere Schranke als Ω(n 2 ) ist nicht bekannt, so dass hier eine noch nicht geschlossene Lücke zwischen unterer und oberer Laufzeitschranke klat. Die obere Laufzeitschranke kann auf die Multiplikation von Boolschen Matrizen angewandt werden, wie wir in Kürze sehen werden. Bedauerlicherweise folgt aus dieser Beobachtung aber auch eine Laufzeit für das APD Problem, die gröÿer als O(n 2 ) ist (jedenfalls solange man über keinen Algorithmus mit quadratischer Zeitkomplexität zur Matrixmultiplikation verfügt). Die Laufzeit des Algorithmus mmapd ist O(mm(n) log n), wobei mm(n) die Zeit ist, um zwei n n Matrizen miteinander zu multiplizieren. Es gibt allerdings einen Nachteil, denn es gibt keine implizite Darstellung der 10

12 Algorithm 3 mmapd 1: procedure mmapd(weight matrix W ) 2: D (1) = W 3: m = 1 4: while m < n 1 do 5: D (2m) = MatrixMultiply(D (m), D (m) ) 6: m = 2m 7: end while 8: return D (m) 9: end procedure kürzesten Wege, denn dazu wären alle Matrizen D 1,..., D m notwendig und die Laufzeit würde auf O(mm(n) n) ansteigen Distanz- und Wegeberechnungen mit dem Algorithmus von Seidel Wir betrachten nun die Probleme Distanz- und Wegeberechnungen in ungerichteten und ungewichteten Graphen. Problem APD: Gegeben: Ungerichteter, ungewichteter Graph G = (V, E). Gesucht: Matrix D = (δ ij ), wobei δ ij die Distanz von i nach j in G ist. Problem APSP: Gegeben: Ungerichteter, ungewichteter Graph G = (V, E). Gesucht: Matrix D = (δ ij ) wie bei APD und eine implizite Darstellung der kürzesten Wege. Wir werden für beide Probleme Lösungen erarbeiten und sehen, dass das APD-Problem in Zeit O(mm(n) log n) für ungewichtete, ungerichtete Graphen lösbar ist und das APSP-Problem in erwarteter Zeit O(mm(n) log 2 n) für dieselbe Graphklasse durch einen randomisierten Algorithmus lösbar ist. Lemma 9. Es sei G(V, E) ein ungerichteter, ungewichteter Graph mit Adjazenzmatrix A. Ist Z = A 2, so ist Z ij > 0 genau dann, wenn es einen Weg der Länge 2 von i nach j gibt. Z ij gibt die Anzahl der verschiedenen Wege der Länge 2 von i nach j an. 11

13 Proof. Sei P = i, k 0, j ein Weg von i nach j in G. Dann ist {i, k 0 }, {k 0, j} E, also A i,k0 = A k0,j = 1. Es folgt Z ij = n k=1 A i,ka k,j A i,k0 A k0,j = 1. Sei Z ij > 0. Dann existiert k 0 {1,..., n} mit A i,k0 A k0,j = 1. Dann ist {i, k 0 }, {k 0, j} E und P = i, k 0, j Weg von i nach j in G. Um zu zeigen, dass Z ij die Anzahl der verschiedenen Wege der Länge 2 von i nach j angibt, betrachten wir die Berechnung von Z ij : Z ij = n A ik A kj = 1 = Γ(i) Γ(j). k=1 k Γ(i) Γ(j) Damit können wir durch eine einfache Matrixmultiplikation eine Matrix Z berechnen, die es erlaubt, schnell einen Graphen G zu berechnen, in dem zwei Knoten i und j genau dann miteinander verbunden sind, wenn δ(i, j) 2 in G ist: Z = A 2 1, falls i j und (A A ij = 1 oder Z ij > 0) ij = 0, sonst G = der durch A induzierte Graph Lemma 10. Es sei G(V, E) ein ungerichteter, ungewichteter Graph mit Adjazenzmatrix A. Ist A derart, dass A ij = 1 genau dann gilt, wenn i j und (A ij = 1 oder Z ij > 0), und ist D die Distanzmatrix des durch A gegebenen Graphen G, so gilt: a) D ij = 2D ij, wenn D ij gerade ist und b) D ij = 2D ij 1, wenn D ij ungerade ist. Proof. Fall a) D ij = 2k ist gerade. kürzester Weg P = i = i 0, i 1,..., i 2k 1, i 2k = j von i nach j in G. P = i = i 0, i 2,..., i 2k 2, i 2k = j ist Weg von i nach j in G. D ij k Wäre D ij = l < k, so existierte ein Weg Q von i nach j in G der Länge 2l (Widerspruch, da D ij = 2k). Daraus folgt D ij = k. Also D ij = 2k = 2D ij. 12

14 Fall b) D ij = 2k + 1 ungerade. kürzester Weg P = i = i 0, i 1,..., i 2k, i 2k+1 = j von i nach j in G. P = i = i 0, i 2,..., i 2k, i 2k+1 = j ist Weg von i nach j in G. D ij k + 1 Wäre D ij = l k, so existierte ein Weg Q von i nach j in G der Länge 2k (Widerspruch, da D ij = 2k + 1). Daraus folgt D ij = k + 1. Also D ij = 2k + 1 = 2D ij 1. Die Idee für einen Algorithmus beläuft sich auf drei hauptsächliche Schritte: 1. Berechne die Distanzen D für G (rekursiv). 2. Berechne die Parität der Distanzen in G. 3. Dann liefert Lemma 10 eine Berechnungsvorschrift für die Distanzen D in G. Lemma 11. Betrachte ein beliebiges Paar disjunkter Knoten i, j V des Graphen G. a) Für alle Nachbarn k Γ(i) gilt D ij 1 D kj D ij + 1. b) Es existiert ein Nachbar k Γ(i) mit D kj = D ij 1. Proof. Sei P = i = i 1, i 2,..., i p+1 = j kürzester Weg von i nach j in G, also D ij = p. a) Sei k Γ(i), d. h. {i, k} E. 1. k = i 2 P 1 = k = i 2,..., i p+1 = j ist Weg von k nach j D kj p k i 2 P 2 = k = i 0, i 1,..., i p+1 = j ist Weg von k nach j D kj p + 1 In jedem Fall: D kj p + 1 = D ij Annahme: D kj = q < D ij 1. Dann existiert P 3 = k = k 1, k 2,..., k q+1 = j von k nach j P 4 = i = k 0, k 1, k 2,..., k q+1 = j ist ein Weg der Länge q + 1 < D ij von i nach j (Widerspruch zur Denition von D ij ). b) Folgt aus a), 1.) und 3.). 13

15 Lemma 12. Betrachte ein beliebiges Paar disjunkter Knoten i, j V des Graphen G. a) Ist D ij gerade, so ist D kj D ij für alle Nachbarn k Γ(i). Proof. b) Ist D ij ungerade, so ist D kj D ij für alle Nachbarn k Γ(i). Auÿerdem existiert ein k Γ(i) derart, dass D kj < D ij. Fall a) D ij = 2l ist gerade. }{{} Nachbarn k Γ(i): D kj 2l 1 Lemma 11 Dann ist D ij = l nach Lemma 10 a). Weiter folgt aus Lemma 10 a,b), dass D kj D kj/2 l 1 2 D kj ist ganzzahlig D kj l = D ij Fall b) D ij = 2l 1 ist ungerade. }{{} Nachbarn k Γ(i): D kj 2l Lemma 11 Dann ist D ij = l nach Lemma 10 b). Weiter folgt aus Lemma 10 a,b), dass D kj (D kj + 1)/2 l D kj ist ganzzahlig D kj l = D ij Weiter gilt, dass ein k Γ(i) mit D kj = D ij 1 = 2l 2 existiert, also gilt D kj = l 1 < l = D ij nach Lemma 10 a). Lemma 13. Betrachte ein beliebiges Paar disjunkter Knoten i, j V des Graphen G. Proof. a) D ij ist gerade genau dann, wenn k Γ(i) D kj D ij deg (i). b) D ij ist ungerade genau dann, wenn k Γ(i) D kj < D ij deg (i). Fall a) D ij ist gerade }{{} k Γ(i) D kj k Γ(i) D ij = deg(i)d ij. Lemma 12 a) Fall b) D ij ist ungerade }{{} k Γ(i) D kj k Γ(i) D ij 1 = deg(i)d ij 1. Lemma 12 b) Die jeweilige Rückrichtung ergibt sich durch die Betrachtung der beiden komplementären Fälle. 14

16 Eine alternative Herleitung, wie man die Parität der D ij bestimmen kann, ist in den zusätzlichen Materialien zur Vorlesung enthalten. Wir betrachten nun den Algorithmus APD, der die Distanzen D ij für alle Knotenpaare (i, j) für einen gegebenen ungerichteten Graphen G berechnet. Der Graph wird durch seine Adjazenzmatrix A repräsentiert. Algorithm 4 APD 1: procedure APD(Adjazenzmatrix A) 2: Z = A 2 3: berechne A mit A ij = 1 es ex. Weg der Länge 1 od. 2 v. i nach j 4: A ij = 1 gdw. i j und (A ij = 1 oder Z ij > 0) 5: if A ij = 1 i j then 6: return D = 2A A Rekursionsabbruch 7: end if 8: D = APD(A ) Rekursion 9: S = A D S ij = k Γ(i) D kj 2D ij, falls S ij D ijz ii 10: return D mit D ij = Z ii = deg(i) 2D ij 1, falls S ij < D ijz ii 11: end procedure Satz 14. Der Algorithmus APD berechnet die Distanzmatrix D eines n- Knoten Graphen G in Zeit O(mm(n) log n) mit Hilfe der ganzzahligen Matrixmultiplikation, wobei die Einträge der Matrix nicht gröÿer als O(n 2 ) sind. Proof. Sei δ der Durchmesser von G. Dann hat G Durchmesser δ = δ/2. Sei T (n, δ) die Zeit, die APD auf Graphen mit n Knoten und Durchmesser δ benötigt. Ist δ = 1, so ist G vollständig. Ist δ = 2, so ist T (n, δ) = mm(n) + O(n 2 ). Wegen δ < n, mm(n) = Ω(n 2 ) und Rekursionstiefe log n folgt die Laufzeit O(mm(n) log n). Wegen D ij < n und somit D ij < n sind die Einträge von S durch n 2 nach oben beschränkt. Das Zeugenproblem für Boolsche Matrizen Wir erweitern den Algorithmus APD nun so, dass nicht nur die Distanzen D ij, sondern auch für jedes Knotenpaar (i, j) ein kürzester Weg berechnet wird. Dabei soll die Laufzeit des neuen Algorithmus subkubisch sein. Das Problem ist dabei, dass es Graphen G = (V, E) von der Gestalt gibt, dass Ω(n 2 ) Knotenpaare Distanz Ω(n) haben. Beispiel 15. G = (V, E) ist eine Linie: V = {1,..., n}, E = {(i, i + 1) 1 15

17 i < n}. Setze δ = n = Ω(n), dann haben 2 n δ k = k=1 (n δ + 1)(n δ) 2 > n2 8 = Ω(n2 ) Knotenpaare mindestens den Abstand δ zueinander. Explizites Speichern der kürzesten Wege würde daher Platzbedarf Ω(n 3 ), also auch Zeitaufwand Ω(n 3 ), bedeuten. Daher werden die kürzesten Wege nur implizit gespeichert, indem zu jedem Knotenpaar (i, j) der Nachfolger S ij von i auf einem kürzesten Weg nach j gespeichert wird. S = (S ij ) hat O(n 2 ) Einträge und ein kürzester Weg von i nach j kann in Zeit proportional zu seiner Länge bestimmt werden: SPN(S, i, j) x 0 = i; k = 0; repeat x k+1 = S xk,j; k + +; until (x k = j); return x 0,...x k Notation 16. Wir bezeichnen im Folgenden: die boolsche 1 Matrixmultiplikation mit als Multiplikation und als Addition durch und die ganzzahlige Matrixmultiplikation mit. Denition 17. Es seien A, B {0, 1} n n boolsche Matrizen, P = A B {0, 1} n n das boolsche Produkt von A und B. Ein Zeuge für P ij ist ein Index k {1,..., n} derart, dass A ik = 1 = B kj. Bemerkung 18. a) P ij = 1 es gibt einen Zeugen k für P ij. b) Ist C = A B, so ist C ij die Anzahl der Zeugen für P ij. c) Ist A Adjazenzmatrix eines Graphen G(V, E), P = A A und C = AA, so ist P ij = 1 genau dann, wenn ein Weg der Länge 2 zwischen i und j existiert. C ij ist die Anzahl dieser Wege (vgl. Lemma 9). d) Für P = A A ist ein Zeuge k für P ij = 1 Zwischenknoten auf einem Weg der Länge 2 von i nach j. 1 Da diese Bezeichnung auf George Boole ( ) zurückgeht, ndet man auch häug die Schreibweise boolesche Matrixmultiplikation. 16

18 e) Für jedes P ij bzgl. P = A B kann es bis zu n Zeugen geben. Zeugen sind interessant, wenn man den APD-Algorithmus so erweitern will, dass er kürzeste Wege berechnet. Da Zeugen Zwischenknoten auf Wegen der Länge 2 darstellen, helfen sie bei der Konstruktion einer Nachfolgermatrix. Wie genau dies funktioniert, wird nachfolgend erläutert. Denition 19. Es seien A, B {0, 1} n n boolsche Matrizen, P = A B {0, 1} n n. Eine Zeugenmatrix ( Bpwm = Boolean Product Witness Matrix) für P ist eine Matrix W {0,..., n} n n mit 0, wenn P ij = 0 W ij = k, k ist Zeuge für P ij = 1 Problem Bpwm: gegeben: boolsche Matrizen A und B. gesucht: eine Zeugenmatrix W für P = A B. Ein trivialer Algorithmus für Bpwm, der für alle (i, j) {1,..., n} 2 alle k {1,..., n} testet, hat Zeitaufwand O(n 3 ). Da wir einen niedrigeren Aufwand anstreben, vereinfachen wir zunächst das Problem Bpwm: Problem UniqueBpwm: gegeben: boolsche Matrizen A und B, so dass jeder Eintrag in P = A B einen eindeutigen Zeugen hat. gesucht: die Zeugenmatrix W für P = A B. Lemma 20. Es seien A, B {0, 1} n n boolsche Matrizen und die Matrizen  und W gegeben durch Âik = ka ik und W = ÂB. Dann gilt: a) W ij ist Zeuge für P ij, wenn P ij einen eindeutigen Zeugen hat. b) Hat jeder Eintrag von P ij einen eindeutigen Zeugen, so ist W die Lösung von UniqueBpwm. Proof. Es ist W ij = n  ik B kj = k=1 = n k A ik B kj k=1 k, falls genau ein A ik B kj = 1 0, falls A ik B kj = 0 k > k, falls A ik B kj = 1 und A il B lj = 1 für ein l k. 17

19 Beispiel A = 1 0 0, B = 1 1 0, P = Â = und W = Die grünen und blauen Einträge von W sind schon korrekte Einträge für eine Zeugenmatrix, der rote jedoch nicht. Folgerung 22. Das Problem UniqueBpwm kann durch eine ganzzahlige Matrixmultiplikation, also in Zeit O(mm(n)), gelöst werden. Problematisch ist nun, dass wir eine Zeugenmatrix W für P = A A mit einer Adjazenzmatrix A berechnen wollen. Dabei ist natürlich nicht garantiert, dass die Zeugen immer eindeutig sind. Die Idee zur Lösung des Problems lässt sich so beschreiben: Randomisierung liefert den gleichen Eekt wie eindeutige Zeugen für genügend viele Einträge P ij, denn bei einer zufälligen Auswahl von Kandidatenmengen trit man wahrscheinlich auf eine Menge mit genau einem Zeugen. Die wenigen verbleibenden Einträge werden dann mit dem trivialen Algorithmus berechnet. Nicht eindeutige Zeugen Wir betrachten boolsche Matrizen A, B {0, 1} n n, P = A B, C = AB und einen festen Eintrag P ij von P. Es sei w = C ij die Anzahl der Zeugen für P ij (OE w 2, denn nach den Vorbetrachtungen ist es einfach, einen eindeutigen Zeugen zu nden). Auÿerdem sei r N mit n wr n. 2 Ziel ist es, eine Menge R {1,..., n} mit R zu nden, die den eindeutigen Zeugen k für P ij enthält. Lemma 23. Es sei n N, w {1,..., n}, r N mit n wr n. Eine Urne 2 enthalte n Bälle, von denen w weiÿ und n w schwarz sind. Zieht man zufällig r Bälle aus der Urne, ohne diese zwischendurch zurückzulegen, so ist: Pr[genau ein weiÿer Ball wurde gezogen] 1 2e 18

20 Proof. Durch elementare Rechenoperationen kann die gesuchte Wahrscheinlichkeit wie folgt beschränkt werden: ( w n w ) 1)( r 1 ( n ) = w r! (n w)! (n r)! (r 1)! n! (n w r + 1)! r ( w 1 ) ( w 2 ) 1 = wr (n r j) n i = wr n wr n = wr n = wr n 1 2 i=0 ( w 2 j=0 ( w 2 j=0 ( w 2 j=0 n r j n 1 j j=0 ) ) n r j (w j 1) siehe * n 1 j (w j 1) ) n w (r 1) n w ( 1 r 1 n w ) w 1 ( 1 1 w ) w 1 siehe ** * Gilt faktorweise: a = n r j, b = n 1 j, c = w j 1. Dann ist a(b c) b(a c) ac bc a b. ** r 1 1 (r 1)w n w rw n. n w w Die letzte Ungleichung folgt von den Beobachtungen, dass wr/n 1/2 und (r 1)/(n w) 1/w, was aus der Annahme, dass n/2 wr n, folgt. Beispiel 24. n = 8, w = 3, n w = 5. Einzig mögliche Wahl für r mit n 2 wr n ist r = 2: 3 Möglichkeiten, genau 2 weiÿe Bälle zu ziehen 10 Möglichkeiten, genau 2 schwarze Bälle zu ziehen 15 Möglichkeiten, genau 1 weiÿen und 1 schwarzen Ball zu ziehen 28 Möglichkeiten insgesamt Damit ist Pr[genau ein weiÿer Ball wurde gezogen] = = > 1 2 > 1 2e Sei jetzt R {1,..., n} derart, dass R einen eindeutigen Zeugen für P ij enthält. R sei gegeben durch einen Vektor R {0, 1} n mit R k = 1 genau dann, wenn k R. Deniere: 19

21 eine Matrix A R N n n 0 durch A R ik = kr ka ik und eine Matrix B R N n n 0 durch B R kj = R kb kj Weiterhin sind die Matrizen  mit Âik = ka ik sowie B und W =  B so wie bereits weiter oben verwendet. A R ist die Matrix, die aus  entsteht, indem jede Spalte von Â, die zu einem Element k / R gehört, durch eine Nullspalte ersetzt wird und jede andere Spalte k mit k multipliziert wird. B R ist die Matrix, die aus B entsteht, indem jede Zeile von B, die zu einem Element k / R gehört, durch eine Nullzeile ersetzt wird. Lemma 25. Es seien A, B {0, 1} n n boolsche Matrizen, A R und B R wie oben, W = A R B R. Wenn P ij einen eindeutigen Zeugen in R hat, so ist W ij Zeuge für P ij. Proof. W ij = (A R B R ) ij = n k=1 AR ik BR kj = n k=1 k R k A ik R k B kj = k R k A ik B kj. Wenn R nur einen einzigen Zeugen enthält, folgt aus der Zeugeneigenschaft: W ij = k A ik B kj = k, wobei k der eindeutige Zeuge ist. Die weiteren Ideen, die zum fertigen Algorithmus führen, lassen sich so umschreiben: W = A R B R liefert Zeugen für alle Einträge in P = A B, die einen eindeutigen Zeugen in R haben. Nach Lemma 23 ist die Wahrscheinlichkeit dafür, dass eine zufällig gewählte Menge R der Gröÿe R = r einen eindeutigen Zeugen für einen Eintrag von P mit w Zeugen enthält, gröÿer oder gleich der Konstanten 1 2e, wenn n 2 wr n ist. Wir wählen O(log n) Mengen R zufällig aus. Damit wird es sehr unwahrscheinlich, dass für einen Eintrag von P kein Zeuge identiziert wird. Zeugen für die Einträge, für die kein Zeuge identiziert wird, werden mit dem trivialen Algorithmus berechnet. Da nicht alle Einträge von P die gleiche Anzahl Zeugen haben, müssen Mengen R mit verschiedenen Kardinalitäten r benutzt werden. Es reicht jedoch, für r die Zweierpotenzen zwischen 1 und n zu benutzen, da nur die Bedingung n 2 wr n erfüllt sein muss. Satz 26. Algorithmus Bpwm ist ein Las-Vegas-Algorithmus für Problem Bpwm mit erwarteter Laufzeit O(mm(n) log 2 n). 20

22 Algorithm 5 Bpwm 1: procedure Bpwm(Boolsche Matrizen A, B {0, 1} n n ) 2: W = AB W ij < 0 Zeuge für P ij muss noch gefunden werden 3: for t = 0,..., log n do teste alle Zweierpot. r = 2 t zwischen 1 und n 4: r = 2 t 5: Repeat 3.77 log n times für O(log n) Runden 6: Wähle R {1,..., n} mit R = r 7: berechne A R und B R vgl. Lemma 23 8: Z = A R B R 9: for all (i, j) do teste, ob neuer Zeuge für P ij gefunden wurde 10: if W ij < 0 und Z ij ist Zeuge für P ij then 11: W ij = Z ij 12: end if 13: end for 14: 15: end for 16: for all (i, j) do 17: if W ij < 0 then kein Zeuge für P ij gefunden 18: berechne W ij mit dem trivialen Algorithmus 19: end if 20: end for 21: end procedure 21

23 Proof. Die Initialisierung benötigt O(mm(n)) Zeit. Der Algorithmus durchläuft die innere Schleife O(log 2 n)-mal und führt jedes Mal eine ganzzahlige Matrixmultiplikation von n n Matrizen durch. Die anderen Operationen in der Schleife sind weniger zeitaufwändig. Die Laufzeit O(mm(n) log 2 n) folgt, wenn nicht zu oft der triviale Algorithmus aufgerufen werden muss. Beh.: Ist P ij = 1, so wird im randomisierten Teil des Algorithmus ein Zeuge mit Wahrscheinlichkeit 1 1 n gefunden. Bew.: Sei w die Anzahl der Zeugen für P ij. Die äuÿere Schleife wird mindestens einmal mit einem Wert r mit n wr n durchlaufen. In 2 diesem Durchlauf ist die Wahrscheinlichkeit, dass R keinen eindeutigen Zeugen für P ij enthält, höchstens 1 1 nach Lemma 23. Damit ist die 2e Wahrscheinlichkeit, dass kein Zeuge für P ij identiziert wird höchstens (1 1 2e )3.77 log n 1 n. Damit ist die erwartete Anzahl der nicht gefundenen Zeugen begrenzt durch n anstelle der ursprünglichen n 2. Somit benötigen alle Aufrufe des trivialen Algorithmus zusammen Zeit O(n 2 ). Randomisierter Algorithmus Wir schlieÿen das Thema in diesem Abschnitt mit der Beschreibung des randomisierten Algorithmus ab, der anhand einer Zeugenmatrix eine Nachfolgermatrix berechnet. Zuvor muss noch festgelegt werden, wie genau diese Nachfolgermatrix berechnet wird. Denition 27. Es sei G(V, E) ein Graph mit n Knoten. Eine Nachfolgermatrix S für G ist eine n n-matrix, so dass für alle i j S ij ein Nachfolger von i ist, der auf einem kürzesten Weg von i nach j liegt. Weiter ist S ii = 0. Sei nun A die Adjazenzmatrix eines Graphen G(V, E), D die Distanzmatrix von G. Seien i, j {1,..., n}, i j beliebig mit D ij = d. S ij = k ist genau dann möglich, wenn D ik = 1 und D kj = d 1. Sei B d {0, 1} n n mit B d kj = 1 genau dann, wenn D kj = d 1 (B d kann aus D in Zeit O(n 2 ) berechnet werden). Lemma 28. Es sei A Adjazenzmatrix eines Graphen G(V, E) und B d {0, 1} n n wie oben deniert. Der Aufruf Bpwm(A, B d ) liefert für alle i, j mit D ij = d Einträge S ij einer Nachfolgermatrix S für G. Der Beweis von Lemma 28 ist dem Leser zur Übung empfohlen. Das Problem ist, dass es n mögliche Werte für d gibt. Damit wäre die Laufzeit eines Algorithmus mindestens Ω(nmm(n)) und somit superkubisch. Aber es reichen drei Berechnungen von Zeugenmatrizen aus, denn: 22

24 Für alle i, j und alle Nachfolger k von i gilt D ij 1 D kj D ij + 1. Jeder Nachfolger k von i mit D kj = D ij 1 ist ein möglicher Eintrag für S ij. Also: Jedes k mit A ik = 1 und D kj D ij 1 (mod 3) ist ein möglicher Eintrag für S ij. Für s = 0, 1, 2 deniere D (s) durch D (s) kj (mod 3). = 1 genau dann, wenn D kj+1 s Eine Nachfolgermatrix S von A kann dann aus den Zeugenmatrizen für A D (s), s = 0, 1, 2 berechnet werden. Algorithm 6 Apsp 1: procedure Apsp(Adjazenzmatrix A für G(V, E)) 2: berechne D = Apd(A) D ist Distanzmatrix 3: for s = 0, 1, 2 do 4: berechne D (s) {0, 1} n n derart, dass D (s) kj (mod 3) 5: berechne eine Zeugenmatrix W (s) = Bpwm(A, D (s) ) 6: end for 7: berechne Nachfolgematrix S mit S ij = W (D ij (mod 3)) ij 8: end procedure = 1 gdw. D kj + 1 s Satz 29. Der Algorithmus Apsp berechnet eine Nachfolgermatrix eines Graphen G mit n Knoten in erwarteter Zeit O(mm(n) log 2 n). 23

25 Kapitel 3 Matchings in bipartiten Graphen 3.1 Grundlagen und Strukturaussagen Ein häuges Problem in der Informatik ist es, eine Menge V 2 von Bewerbern an eine höchstens gleich groÿe Menge V 1 von Jobs zuzuweisen. Die Struktur und Lösungsverfahren dieses Problems, das leicht abgewandelt in vielen Anwendungen auftritt, werden in diesem Kapitel behandelt. Denition 30. Ein Graph G heiÿt bipartit genau dann, wenn seine Knotenmenge in zwei disjunkte Teilmengen zerlegt werden kann, in denen keine internen Kanten existieren: G = (V 1 V 2, E) bipartit V 1 V 2 = und E V 1 V 2. Ein Matching M ist eine Kantenmenge in G, bei der keine zwei Kanten einen Knoten gemeinsam haben. Ein Matching M heiÿt nicht erweiterbar (engl.: maximal matching) genau dann, wenn jede Kante zu mindestens einer Kante aus M inzident ist: (u, v) E w V derart, dass (u, w) M oder (v, w) M. Ein Matching M heiÿt gröÿtmöglich oder maximal (engl.: maximum matching) genau dann, wenn M maximal unter allen Matchings in G. Ein Knoten u heiÿt saturiert (von M) genau dann, wenn es einen Knoten v gibt, so dass (u, v) M. M ist perfektes Matching: M saturiert alle Knoten in G. 24

26 Abbildung 3.1: Von links nach rechts: Leeres Matching, nicht erweiterbares Matching sowie ein Matching, das gröÿtmöglich und perfekt ist. Abbildung 3.2: Zwei Beispiele von nicht erweiterbaren, aber nicht gröÿtmöglichen Matchings. Abbildung 3.1 illustriert die verschiedenen Arten von Matchings. Nicht erweiterbare Matchings müssen nicht zwangsläug gröÿtmöglich sein, wie Abbildung 3.2 zeigt. Umgekehrt ist ein gröÿtmögliches Matching natürlich nicht erweiterbar. Bemerkung 31. Das Ersetzen der Matching-Kanten in Abbildung 3.2 (rechts) durch Kanten, die nicht zum Matching gehören, (und umgekehrt natürlich) erzeugt ein gröÿeres Matching. Diese Beobachtung kann als mögliche Strategie zur Vergröÿerung von Matchings dienen. In der Folge versuchen wir, die oben formulierte Strategie zu formalisieren. Denition 32. Sei M ein Matching in G = (V 1 V 2, E). Ein M- alternierender Pfad ist ein Pfad P = (u 1, v 1, u 2, v 2,..., u k, v k ) oder P = (u 1, v 1, u 2, v 2,..., u k, v k, u k+1 ) mit (u i, v i ) M für alle i oder (v i, u i+1 ) M für alle i. Ein M-alternierender Pfad mit unsaturierten Endknoten heiÿt M- erweiternder Pfad. Der Name alternierend rührt natürlich daher, dass in einem M- alternierenden Pfad beim Ablaufen der Kanten sich solche abwechseln, die zu M gehören und solche, die nicht zu M gehören. Dies ergibt sich direkt aus den obigen Denitionen. Bemerkung 33. Hat man einen M-erweiternden Pfad P, ersetzt man die Kanten aus P M durch die Kanten aus P \M und erhält ein Matching mit 25

27 einer Kante mehr. Daraus folgt sofort, dass kein M-erweiternder Pfad exisitieren kann, wenn M nicht erweiterbar ist. Um die Folgerung in Bemerkung 33 auch für die zweite logische Richtung beweisen zu können, denieren wir zunächst die symmetrische Dierenz zweier Graphen bzw. Mengen. Denition 34. Seien G = (V, E G ) und H = (V, E H ) zwei Graphen mit derselben Knotenmenge V. Die symmetrische Dierenz G H ist ein Graph mit der Knotenmenge V und der Kantenmenge E = {e e E G XOR e E H }. Satz 35. Seien M und M zwei Matchings in G = (V 1 V 2, E). Jede Zusammenhangskomponente von M M ist entweder ein Pfad oder ein Kreis gerader Länge. Proof. Seien M und M Matchings und sei F = M M. Da M und M Matchings sind, hat jeder Knoten höchstens eine inzidente Kante aus M bzw. M. Daraus folgt, dass F höchstens zwei Kanten an jedem Knoten hat. Da (F ) 2 gilt ( (F ) bezeichnet den maximalen Knotengrad von F ), ist jede Zusammenhangskomponente von F entweder ein Pfad oder ein Kreis. Auÿerdem alterniert jeder Pfad bzw. Kreis in F zwischen den Kanten von M M und den Kanten von M M. Somit hat jeder Kreis gerade Länge, mit gleicher Anzahl Kanten von M und von M. Satz 36. Ein Matching M ist ein gröÿtmögliches Matching in einem Graphen G = (V 1 V 2, E) genau dann, wenn G keinen M-erweiternden Pfad enthält. Proof. Wir zeigen die Kontraposition aller Richtungen. G hat ein gröÿeres Matching als M dann und nur dann, wenn G einen M-erweiternden Pfad besitzt. Wir haben bereits gesehen, dass ein M-erweiternder Pfad dazu benutzt werden kann, ein gröÿeres Matching als M zu produzieren. Umgekehrt sei M ein gröÿeres Matching als M in G. Wir konstruieren einen M-erweiternden Pfad. Sei F = M M, nach Lemma 35 besteht F aus Pfaden und geraden Kreisen. Diese Kreise haben die gleiche Anzahl Kanten von M und M. Da M > M, muss F eine Zusammenhangskomponente mit mehr Kanten aus M als aus M haben. Solch eine Komponente kann nur ein Pfad sein, der mit einer Kante aus M beginnt und endet, somit ist dieser Pfad aber ein M-erweiternden Pfad in G. Satz 37. (Halls Theorem) Sei G = (V 1 V 2, E) ein bipartiter Graph. Bezeichne N(S) die Menge von Knoten, die einen Nachbarn in S haben. In G gibt es ein Matching M, das jeden Knoten von V 1 saturiert, genau dann, wenn N(S) S für alle S V 1. 26

28 Proof. Notwendigkeit ( ): Die S Knoten, die zu S gematcht wurden, müssen in N(S) liegen. Hinlänglichkeit ( ): Um zu zeigen, dass Halls Bedingung S V 1, N(S) S hinreichend ist, zeigen wir die Kontrapsoition. Wenn M ein gröÿtmögliches Matching in G ist und M saturiert nicht die Knotenmenge V 1, dann erhalten wir eine Menge S V 1, so dass N(S) < S: Sei u V 1 ein Knoten, der in M nicht saturiert ist. Unter allen Knoten, die von u aus durch M-alternierende Pfade des Graphen G erreichbar sind, bestehe S aus derartigen Knoten der Menge V 1 und T aus solchen der Menge V 2 (siehe hierzu Abbildung 3.3). Beachte, dass u S. Wir behaupten, dass M Abbildung 3.3: Beispiel zu Halls Theorem, Satz 37. die Knoten aus T mit denen aus S {u} matcht. Der M-alternierende Pfad erreicht V 2 über Kanten, die nicht in M sind und kehrt zurück zu V 1 über Kanten, die in M liegen. Also wird jeder Knoten der Menge S {u} über eine Kante aus M von einem Knoten in T erreicht. Da es keinen M-erweiternden Pfad gibt, ist jeder Knoten aus T saturiert. Somit wird ein M-alternierender Pfad, der y T erreicht, über M zu einem Knoten aus S erweitert. Insofern ergeben diese Kanten aus M eine Bijektion von T nach S {u} und wir wissen, dass T = S {u} gilt. Das Matching zwischen T und S {u} ergibt auÿerdem T N(S). Tatsächlich gilt T = N(S). Angenommen y V 2 T hat einen Nachbarn v S. Die Kante (v, y) kann nicht in M liegen, da u unsaturiert ist und und der Rest der Menge S ist zu T zugehörig über das Matching M. Deshalb ergibt das Hinzufügen der Kante (v, y) zu einem M-alternierenden Pfad, der v erreicht, einen M-alternierenden Pfad nach y. Dies widerspricht aber der Annahme, dass y / T und somit kann eine Kante (v, y) auch nicht existieren. Mit T = N(s) haben wir gezeigt, dass N(S) = T = S 1 < S für diese Wahl von S. Dies schlieÿt den Beweis der Kontraposition ab. Bemerkung 38. Falls ein bipartiter Graph G = (V 1 V 2, E) kein Matching hat, das V 1 saturiert, lässt sich dies mit Halls Theorem leicht nachweisen. 27

29 Dazu zeigt man einfach die Existenz einer Teilmenge von V 1 mit zu wenigen Nachbarn in V 2. Ein klassisches Anwendungsbeispiel ist die Besetzung von X Jobs durch Bewerber aus einer Menge Y. Falls Y > X, erhält natürlich nicht jeder Bewerber einen Job. Es kann aber eben auch passieren, dass nicht jeder Job besetzt werden kann, weil X nicht saturierbar ist. Satz 39. Für k > 0 hat jeder k-reguläre bipartite Graph ein perfektes Matching. Proof. Sei G = (V 1 V 2, E) ein k-regulärer, bipartiter Graph. Zählt man die Kanten nach Endpunkten in V 1 und nach Endpunkten in V 2, sieht man, dass k V 1 = k V 2, also V 1 = V 2. Somit reicht es aus, Halls Bedingung zu überprüfen. Ein Matching, das V 1 saturiert, wird auch V 2 saturieren und wird zudem auch ein perfektes Matching sein. Sei S V 1. Sei weiterhin m die Anzahl der Kanten von S nach N(S). Da G ein k-regulärer Graph ist, gilt m = k S. Diese m Kanten sind inzident zu N(S) und somit ist m k N(S). Daher gilt k S k N(S). Daraus ergibt sich, dass N(S) S, wenn k > 0. Mit der beliebigen Wahl von S X haben wir die Gültigkeit von Halls Bedingung erfolgreich nachgewiesen. Denition 40. Eine Knotenüberdeckung eines Graphen G = (V, E) ist eine Menge Q V derart, dass jede Kante aus E inzident zu mindestens einem Knoten aus Q ist. Eine minimale Knotenüberdeckung von G ist eine Knotenüberdeckung mit minimaler Anzahl von Knoten unter allen Knotenüberdeckungen von G. Satz 41. (Satz von König und Egerváry) Sei G = (V 1 V 2, E) ein bipartiter Graph. Ferner sei M ein gröÿtmögliches Matching und Q eine minimale Knotenüberdeckung in G. Dann gilt: Q = M. Proof. Sei G = (V 1 V 2, E) ein bipartiter Graph. Es ist leicht einzusehen, dass immer Q M gelten muss. Andernfalls gäbe es eine Kante in M, die von Q nicht überdeckt wäre, weil ein Knoten in Q nur höchstens eine Kante aus M überdecken kann. Gegeben sei daher nun eine minimale Knotenüberdeckung Q von G. Dann können wir ein Matching der Gröÿe Q konstruieren, um zu zeigen, dass die Gleichheit immer erreicht werden kann. Wir partitionieren Q durch R = Q V 1 und T = Q V 2. Seien H und H die Teilgraphen von G, die durch R (V 2 T ) 28

30 und T (V 1 R) induziert werden. Wir wenden Halls Theorem an, um zu zeigen, dass H ein Matching hat, das R in V 2 T saturiert und dass H ein Matching hat, das T saturiert. Weil H und H disjunkt sind, bilden die beiden Matchings zusammen ein Matching der Gröÿe Q in G. Da R T eine Knotenüberdeckung ist, hat G keine Kante zwischen V 2 T und V 1 R (andernfalls wären diese Kanten nicht überdeckt). Für jedes S R betrachten wir N H (S), welches in V 2 T enthalten ist. Gälte N H (S) < S, dann könnten wir S durch N H (S) in Q ersetzen, um eine kleinere Knotenüberdeckung zu erhalten, da N H (S) alle Kanten überdeckt, die zu S inzident sind und die nicht von T überdeckt werden. Die Minimalität von Q ergibt somit Halls Bedingung für H und daher hat H ein Matching, das R saturiert. Wendet man dasselbe Argument auf H an, ergibt sich das Matching, das T saturiert. Betrachte hierzu auch Abbildung 3.4. Abbildung 3.4: Beispiel zu Satz Berechnung von gröÿtmöglichen Matchings Satz 42. Sei G = (V 1 V 2, E) ein bipartiter Graph und sei M ein Matching in G. Falls es einen M-erweiternden Pfad gibt, der ein Matching M 1 mit M 1 > M erzeugt, und es einen Knoten v als Endknoten eines M 1 -erweiternden Pfades gibt, dann gibt es auch einen M-erweiternden Pfad mit v als Endknoten. Proof. Zum Zwecke des Widerspruchs nehmen wir an, dass G einen erweiternden Pfad bezüglich M 1 enthält, der v als Endknoten hat, aber G keinen erweiternden Pfad bezüglich M hat, der v als Endknoten enthält. Sei P = v = u 1, u 2,..., u n ein erweiternder Pfad bezüglich M 1 und wir nehmen zusätzlich an, dass wir M 1 durch das Erweitern von M entlang des erweiternden Pfades Q = v 1, v 2,..., v k bezüglich M erhalten. Dann ist P aufgrund der Annahme kein erweiternder Pfad bezüglich M. Somit enthält P eine 29

31 Kante, die zu M 1 gehört, aber nicht zu M. Sei nun i der kleinste ganzzahlige Wert derart, dass (u 2i, u 2i+1 ) M 1 M. Die Kante (u 2i, u 2i+1 ) liegt sowohl auf P als auch auf Q (siehe Abbildung 3.5), weil M 1 durch die Erweiterung von Q entstanden ist. Der Knoten u 2i ist ein saturierter Knoten bezüglich M, denn andernfalls wäre P = v = u 1, u 2,..., u 2i ein erweiternder Pfad bezüglich M, der v als Endknoten hat. Aus diesen Gründen ist (u 2i, u 2i+1 ) E(Q) M und u 2i inzident mit der Kante e aus Q, die zu M gehört. Sei u 2i = v j mit 1 < j < k. Da (u 2i, u 2i+1 ) E(Q) M, muss e = (v j 1, v j ) gelten. Der Pfad Q = v 1, v 2,..., v j 1, v j ist ein alternierender Pfad bezüglich M, der genau einen unsaturierten Knoten enthält, nämlich v 1. Die Kanten aus Q, die noch nicht im Matching bezüglich M enthalten sind, werden dem Matching hinzugefügt (bezüglich M 1 ), wenn wir M entlang Q erweitern. Es folgt aus der Konstruktion, dass Q und P nur den Knoten v j = u 2i gemeinsam haben. Allerdings ist v = u 1, u 2,..., u 2i, v j 1, v j 2,..., v 1 ein erweiternder Pfad bezüglich M (betrachte hierzu auch Abbildung 3.5). Aber dies widerspricht der Annahme. Abbildung 3.5: Ein erweiternder Pfad, der im Satz 42 konstruiert wurde Folgerung 43. Sei M ein Matching in einem bipartiten Graphen G. Ferner sei M = M 1, M 2,..., M k eine Sequenz von Matchings, wobei M i+1 aus M i durch 30

32 einen M i -erweiternden Pfad erzeugt wird, für alle i = 1,..., k 1. Sollte für einen Knoten v kein M-erweiternder Pfad existieren, dann gibt es auch keinen M i -erweiternden Pfad mit v als Endknoten (i = 1,..., k 1). Wir betrachten nun den Algorithmus MaximumMatching, der ein gröÿtmögliches Matching M für einen bipartiten Graphen G = (V 1 V 2, E), mit p = V 1 V 2 = q, berechnet. Die Algorithmus-Idee kann wie folgt zusammengefasst werden: Sei M initiales Matching. Falls M kein gröÿtmögliches Matching ist, dann gibt es eine Sequenz M = M 1,..., M k, so dass M k gröÿtmögliches Matching M i+1 wird aus M i mit Hilfe eines M i -erweiternden Pfades erzeugt Wir wählen einen Knoten v, der bzgl. M unsaturiert ist, und bestimmen, ob es einen M-erweiternden Pfad gibt, in dem V der Endknoten ist Falls ein solcher Pfad gefunden wird, wird M zu M erweitert; wir erhalten dadurch ein gröÿeres Matching Falls v kein Endpunkt von irgendeinem M-erweiternden Pfad ist, dann hat v in einem gröÿtmöglichen Matching M k, das durch Erweitern des Matchings M entsteht, gemäÿ Folgerung 43 keinen Matchingpartner Weitere Erklärungen und Hinweise nden Sie in den Vorlesungsfolien bzw. im Buch [2]. 3.3 Matchings mit maximalem Gewicht In diesem Abschnitt werden wir den sogenannten ungarischen Algorithmus kennenlernen, der in vollständigen gewichteten bipartiten Graphen ein Matching maximalen Gewichts ndet. Details bisher nur auf den Folien oder in den Büchern [1] und [2] Korrektheit Satz 44. Sei G = (V 1 V 2, E) ein vollständiger gewichteter bipartiter Graph. Dann ndet der Algorithmus MaximumWeightMatching (auch Algorithmus von Kuhn und Munkres oder ungarischer Algorithmus genannt) ein Matching mit maximalem Gewicht in G. 31

33 Algorithm 7 MaximumMatching 1: procedure MaximumMatching(Bipartiter Graph G = (V 1 V 2, E), Initiales Matching M 1 ) 2: i = 1, M = M 1 3: if i p then return M M gröÿtmögliches Matching 4: end if 5: if v i M then goto line 3 6: else{v = v i, Q = {v}} 7: forall v V 1 V 2, v v i {T REE(v j ) = F ALSE}; T REE(v i ) = T RUE; 8: if Q = then {i = i + 1, goto line 3} 9: else extract a vertex x from Q 10: Let N(x) = {y 1,..., y j }. Set j = 1 11: if j k then y = y j 12: else goto line 8 13: end if 14: end if 15: if T REE(y) = T RUE then {j = j + 1, goto line 11} 16: end if 17: if (y, z) M then {T REE(y) = T RU E, T REE(z) = T RUE, P ARENT (y) = P ARENT (z) = y, Q = Q {z}, j = j + 1, goto line 11} 18: end if 19: Use P ARENT to determine M-augmenting path P from v to y 20: end if 21: Augment M along P to obtain new matching M 22: M = M, i = i + 1, goto line 3 23: end procedure 32

34 Algorithm 8 MaximumWeightMatching 1: procedure MaximumWeightMatching(Vollst. bipartiter Graph G = (V 1 V 2, E), Gewichtsfkt. w) 2: forall v V 1 sei l(v) = max u V2 w(v, u); 3: forall u V 2 sei l(u) = 0; 4: Sei H l der von l denierte Graph mit Kantenmenge E l ; 5: M = MaximumMatching(H l, ); 6: if M saturiert jeden Knoten von V 1 then return M; 7: else 8: Sei x der erste unsaturierte Knoten in V 1 ; 9: Konstruiere einen alternierenden Baum T mit Wurzel x bzgl. M; 10: if M-erweiternder Pfad P then 11: Erweitere M; 12: goto line 6; 13: else 14: m l = min{l(v) + l(u) w(u, v) v V 1 T, u V 2 \ T }; 15: l(v) = l(v) m l für v V 1 T, l(u) = l(u) + m l für u V 2 T ; 16: Konstruiere H l ; 17: goto line 9; 18: end if 19: end if 20: end procedure 33

35 Proof. Der Algorithmus beginnt mit einer zulässigen Knotenmarkierung. Er kann nur terminieren, wenn der Spanngraph H l ein perfektes Matching hat. Diese Eigenschaft garantiert uns, dass die Knotenmarkierung und das Matching das gleiche Gewicht haben. Nehmen wir an, l sei die aktuelle zulässige Knotenmarkierung und der zugehörige Spanngraph H l enthalte kein perfektes Matching. Sei l die daraufhin erstellte neue Knotenmarkierung. Da m l das Minimum einer nicht-leeren endlichen Menge von positiven Zahlen ist, gilt m l > 0. Wir weisen zunächst nach, dass l eine zulässige Knotenmarkierung ist. Die Veränderung der Markierungen auf Knoten der Mengen V 1 V (T ) und V 2 V (T ) ergibt l (v) + l (u) = l(v) + l(u) für Kanten zwischen V 1 V (T ) und V 2 V (T ). Daher bleiben die Kanten in H l erhalten. Falls v V 1 V (T ) und u V 2 \V (T ), gilt l (v) + l (u) = l(v) + l(u) m l, was wegen der Wahl von m l mindestens so groÿ ist wie w u,v. Der Algorithmus terminiert nur, wenn der Spanngraph H l ein perfektes Matching enthält, so dass es genügt zu zeigen, dass die Terminierung tatsächlich eintritt. Nehmen wir an, die Kantengewichte w u,v seien rational. Wenn wir die Gewichte mit ihrem Hauptnenner multiplizieren, erhalten wir ein äquivalentes Problem mit ganzzahligen Gewichten. Wir können daher nun auch annehmen, dass die Markierungen in l ganzzahlig sind. Daher ist jeder Überschusswert m l auch ganzzahlig und in jeder Iteration reduzieren wir die Kosten der Knotenmarkierung um einen positiven ganzzahligen Betrag. Da wir bei einem endlichen Wert starten und die Kosten nach unten beschränkt sind (nämlich durch die Kosten eines perfekten Matchings), terminiert der Algorithmus nach endlichen vielen Iterationen. Bemerkung 45. Der Beweis von Satz 44 kann so modiziert werden, dass auch reellwertige Kantengewichte zugelassen werden können. 34

36 Kapitel 4 Matchings in allgemeinen Graphen Wir haben bis jetzt Matchings in bipartiten Graphen betrachtet. Es folgt nun ein Abschnitt, in dem wir uns mit allgemeinen Graphen befassen werden. 4.1 Der Algorithmus von Edmonds Der Algorithmus von Edmonds berechnet ein gröÿtmögliches Matching in allgemeinen Graphen. Bisher ist seine Darstellung nur im Foliensatz verfügbar. 4.2 Approximationsalgorithmen für MWM In diesem Abschnitt werden zwei Approximationsalgorithmen für das Problem MaximumWeightedMatching in allgemeinen Graphen behandelt. Beide Algorithmen haben die Approximationsgüte 2, wie wir in den folgenden Resultaten beweisen werden. Die Darstellung der Algorithmen ndet sich im Foliensatz. Satz 46. Sei G = (V, E) ein Graph mit nicht-negativen Kantengewichten und sei M ein Matching mit maximalem Gewicht in G. GreedyApproxMWM berechnet ein Matching M mit w(m ) 2w(M) in Zeit O(m log m). Proof. Sei x das Gewicht der ersten Kante e = {u, v}, die durch den Algorithmus GreedyApproxMWM ausgewählt wird. Oensichtlich ist e eine Kante mit maximalem Gewicht in G. Wenn e und alle inzidenten Kanten gelöscht werden, werden dabei höchstens zwei Kanten des optimalen Matchings M entfernt. Die Summe der Gewichte dieser beiden Kanten beträgt höchstens 2x. Bei der Wahl der nächsten Kante e gilt entweder e M oder es gibt keine Kante mehr in M, die schwerer als e ist. Daher gilt jedes Mal, wenn ein oder zwei Kanten des optimalen Matchings aus E gelöscht werden, die nicht 35

37 in M aufgenommen worden sind, dass die gewählte Kante in M mindestens halb so schwer ist wie die beiden gelöschten Kanten aus M zusammen. Dieses Argument lässt sich für alle weiteren Iterationen von GreedyApproxMWM wiederholen. Da alle Kantengewichte nicht negativ sind, folgt die Behauptung zur Approximationsgüte. Die Laufzeit ergibt sich durch die initiale Sortierung der Kanten nach ihrem Gewicht, weil die Schleife jede Kante genau einmal betrachtet und daher nur lineare Laufzeit in E hat. Die folgenden Ergebnisse beruhen auf einer Arbeit von D. E. Drake und S. Hougardy [6]. Satz 47. Der Algorithmus O( E ). PathGrowingMWM hat eine Laufzeit von Proof. Jeder Knoten des Graphen wird höchstens einmal in der while-schleife in den Zeilen 4-10 bearbeitet, denn nach seiner Bearbeitung wird er in Zeile 8 aus G entfernt. Die schwerste Kante, die zu einem Knoten x inzident ist, zu nden und x aus G zu entfernen, lässt sich problemlos mit einem Aufwand durchführen, der proportional zum Grad von x ist. Indem man Pfade immer nur von Endknoten einer Kante startet, stellt man sicher, dass keine Knoten mit Grad 0 bearbeitet werden. Die Zahl der Knoten mit Grad mindestens 1 in G ist O( E ). Daher ist die Gesamtlaufzeit des Algorithmus PathGrowingMWM beschränkt durch die Summe der Knotengrade der Knoten in V, was O( E ) ergibt. Satz 48. Der Algorithmus PathGrowingMWM hat eine Approximationsgüte von 2, d. h. das von ihm gefundene Matching ist mindestens halb so schwer wie ein Matching mit maximalem Gewicht. Proof. Für die Analyse der Güte weisen wir jede Kante des Graphen G an einen Knoten von G folgendermaÿen zu. Immer wenn ein Knoten x in Zeile 8 des Algorithmus entfernt wird, werden alle Kanten, die noch zu x inzident sind, zu x zugewiesen. Auf diese Weise wird jede Kante von G genau einem Knoten von G zugewiesen. Andererseits muss nicht jeder Knoten von G ihm zugewiesene Kanten haben. Wir betrachten nun ein MWM M von G. Da M keine zwei zueinander inzidente Kanten haben kann, werden alle Kanten von M an verschiedene Knoten von G zugewiesen. In jedem Schritt des Algorithmus wird die aktuell schwerste Kante, die zu x inzident ist, in Zeile 5 gewählt und zu M 1 oder M 2 hinzugefügt. Daher ist das Gewicht von M 1 M 2 mindestens so groÿ wie das 36

38 Gewicht von M. Da max{w(m 1 ), w(m 2 )} 1 2 w(m 1 M 2 ) 1 2 w(m), liefert der Algorithmus PathGrowingMWM ein Matching, das mindestens halb so schwer ist wie das Optimum. 4.3 Die Theoreme von Tutte und Petersen Denition 49. Ein Faktor F eines Graphen G ist ein Spanngraph von G, d. h. F und G haben dieselbe Knotenmenge und E(F ) E(G). Ein k-faktor ist ein k-regulärer Spanngraph. Eine ungerade Komponente ( odd component) eines Graphen ist eine (Zusammenhangs)Komponente mit einer ungeraden Anzahl von Knoten. Die Anzahl ungerader Komponenten von H wird mit o(h) notiert. Bemerkung 50. Ein 1-Faktor und ein perfektes Matching sind fast dasselbe. Die genaue Unterscheidung ist, dass ein 1-Faktor ein 1-regulärer Spanngraph von G ist, während ein perfektes Matching die Menge von Kanten in einem solchen Spanngraph ist. Ein 3-regulärer Graph, für den es ein perfektes Matching gibt, kann in zwei Teilgraphen zerlegt werden, von denen einer ein 1-Faktor und einer ein 2-Faktor ist. Tutte hat eine notwendige und hinreichende Bedingung dafür gefunden, wann Graphen einen 1-Faktor haben. Wenn G einen 1-Faktor hat und wir betrachten die Teilmenge S V (G), dann hat jede ungerade Komponente von G S einen Knoten, der einen Matching-Partner auÿerhalb dieser Komponente hat und daher nur zu S gehören kann, da die Knoten von S disjunkt sein müssen, o(g S) S. Betrachte hierzu auch Abbildung 4.1. Tuttes Bedingung: Abbildung 4.1: Tuttes Bedingung Für alle S V (G), o(g S) S. Tutte hat bewiesen, dass diese Bedingung nicht nur notwendig ist, sondern auch hinreichend. Es gibt viele Beweise, die 37

39 dies zeigen. Wir betrachten hier den Beweis von Lovász und benutzen Ideen der symmetrischen Dierenz. Satz 51. Ein Graph G hat einen 1-Faktor dann und nur dann, wenn o(g S) S für jede Teilmenge S V (G). Proof. Notwendigkeit ( ): Die ungeraden Komponenten von G S müssen Knoten haben, die zu disjunkten Knoten von S gematcht sind. Hinlänglichkeit ( ): Wenn wir eine Kante hinzufügen, die zwei Komponenten aus G S verbindet, steigt die Anzahl der ungeraden Komponenten nicht (eine gerade und eine ungerade Komponete werden zu einer ungeraden Komponente, zwei Komponenten derselben Parität bilden eine gerade Komponente). Somit bleibt Tuttes Bedingung erhalten, wenn Kanten hinzugefügt werden: wenn G = G + {e} und S V (G), dann o(g S) o(g S) S. Auÿerdem hat G keinen 1-Faktor, wenn G = G + {e} keinen 1-Faktor hat. Somit gilt der Satz von Tutte, falls es keinen simplen Graphen G derart gibt, dass G Tuttes Bedingung erfüllt, G keinen 1-Faktor hat und das Hinzufügen einer fehlenden Kante zu G einen Graphen mit 1-Faktor ergeben würde. Sei G ein solcher Graph. Wir führen den Beweis nun per Widerspruch, indem wir zeigen, dass G einen 1-Faktor besitzt. Sei U die Menge von Knoten in G, die Grad n(g) 1 haben. 1. Fall: G U besteht aus vollständigen disjunkten Graphen. In diesem Fall können die Knoten in jeder Komponente von G U zu beliebigen Paaren zusammengefasst werden. Da o(g U) U und jeder Knoten aus U zu jedem Knoten aus G U adjazent ist, können wir die übrig gebliebenen Knoten mit Knoten aus U matchen. Wenn wir Tuttes Bedingung auf S = anwenden, ergibt sich, dass n(g) gerade sein muss, denn ein Graph ungerader Gröÿe enthielte eine ungerade Komponente und würde Tuttes Bedingung verletzen. Weiterhin liegen die Knoten, die übrig bleiben, in U und bilden eine Clique. Um den 1-Faktor zu erhalten, müssen wir nur noch zeigen, dass eine gerade Menge von Knoten in U übrig geblieben ist. Tatsächlich haben wir eine gerade Anzahl Knoten gemtached und da n(g) gerade ist, bleibt eine gerade Anzahl von Knoten in U übrig. Siehe auch Abbildung Fall: G U ist keine disjunkte Vereinigung von Cliquen. In diesem Fall hat G U zwei Knoten mit der Distanz 2, diese sind nichtadjazente Knoten x, z mit einem gemeinsamen Nachbarn y / U. Zusätzlich hat G U einen anderen Knoten w, der nicht adjazent zu y ist, da y / U. Nach Konstruktion von G führt das Addieren einer Kante zu G zu einem 1-Faktor. Seien M 1 und M 2 1-Faktoren in G + {xz} bzw. G + {yw}. Es reicht aus zu 38

40 Abbildung 4.2: Skizze zum 1. Fall des Beweises zeigen, dass M 1 M 2 einen 1-Faktor enthält, der xz und yw nicht enthält, denn dies ist der für den Widerspruch gewünschte 1-Faktor in G. Sei F = M 1 M 2. Da xz M 1 M 2 und yw M 2 M 1, sind sowohl xz als auch yw in F enthalten. Da jeder Knoten aus G in M 1 und M 2 jeweils nur einen Grad von 1 hat, hat jeder Knoten aus G Grad 0 oder 2 in F. Somit sind die Komponenten aus F Zyklen gerader Länge bzw. isolierte Knoten. Sei C der Zyklus aus F, der xz enthält. Wenn C nicht auch yw enthält, dann besteht der gewünschte 1-Faktor aus den Kanten von M 2 aus C und allen Kanten aus M 1, die nicht in C liegen. Wenn C sowohl yw als auch xz enthält, wie in Abbildung 4.3 dargestellt, benutzen wir entweder yx oder yz, um yw und xz zu vermeiden. In dem Teil in C, der mit y beginnt und über yw führt, benutzen wir Kanten aus M 1, um die Nutzung von yw zu vermeiden. Wenn wir {x, z} erreichen, benutzen wir zy, falls wir z erreichen, andernfalls benutzen wir xy. Für den Rest von C benutzen wir Kanten aus M 2. Wir haben einen 1-Faktor erzeugt, der nicht xz oder yw benutzt. Kombiniert mit M 1 und M 2 auÿerhalb von C, haben wir einen 1-Faktor in G erzeugt. Abbildung 4.3: Skizze zum 2. Fall des Beweises 39

41 Folgerung 52. (Petersen, 1891) Sei G = (V, E) ein 3-regulärer Graph, der keine Brückenkanten enthält. Dann hat G einen 1-Faktor. Proof. Siehe West [1, S. 139] Satz 53. (Satz von Petersen) Sei G = (V, E) ein regulärer Graph vom Grad 2d. Dann kann man G in d Graphen vom Grad 2 zerlegen, d. h. es existiert... eine d-teilige Kantenpartition E 1 E 2... E d = E mit der Eigenschaft, dass (V, E i ) regulär vom Grad 2 für alle 1 i d ist. Proof. (für d = 2) Sei K ein Eulerkreis des 4-regulären Graphen G. K besteht aus E = 2 V vielen Kanten. Da die Kantenanzahl gerade ist, können die Kanten von K abwechselnd rot und blau gefärbt werden. Eine gesuchte Kantenpartition für G ist dann E 1 = {e E; e ist rote Kante} und E 2 = {e E; e ist blaue Kante}, da jedem Knoten in K immer paarweise eine rote und eine blaue Kante zugeordnet wird. 40

42 Kapitel 5 Netzwerkalgorithmen Viele praxisrelevante Probleme sind so rechenaufwändig oder speicherintensiv, dass sie von sequentiellen Rechnern nicht in akzeptabler Zeit gelöst werden können. Viele dieser Probleme gelten in der Komplexitätstheorie sogar als ef- zient (da in Polynomialzeit lösbar). Beispielsweise können jedoch Instanzen der Gröÿe 10 8 für einen sequentiellen Algorithmus mit quadratischer Zeit- oder Speicherkomplexität zu einem groÿen Problem werden. Parallelrechner bieten oft eine Möglichkeit, solche groÿen Instanzen in akzeptabler Zeit zu lösen. In einem Parallelrechner arbeiten mehrere Prozessoren gleichzeitig an der Lösung. Daher muss ein Mechanismus bereitgestellt werden, mit dessen Hilfe die Prozessoren untereinander kommunizieren können. Je nachdem, wie dieser Mechanismus realisiert ist, unterscheidet man zwischen Parallelrechnern, die über einen gemeinsamen Speicher und solchen, die über ein Verbindungsnetzwerk kommunizieren. Parallelrechner sind mittlerweile allgegenwärtig. Denn fast jeder heutzutage für den Desktop-Massenmarkt produzierte Chip beinhaltet mehrere Prozessorkerne, die über gemeinsamen Speicher kommunizieren. Aber für sehr groÿe Instanzen muss man weiterhin eine sehr groÿe Zahl von Parallelrechnern verwenden, die dann über ein Verbindungsnetzwerk kommunizieren. In diesem Kapitel wollen wir einige der bekanntesten und leistungsstärksten Prozessornetzwerke vorstellen. Prozessornetzwerke werden als ungerichtete Graphen dargestellt. Jedem Knoten des Graphen entspricht ein Prozessor mit seinem lokalen Speicher und jeder Kante ein Kommunikationskanal (Link). Im folgenden werden wir daher die Begrie Prozessornetzwerk und Graph synonym verwenden. Möchte ein Prozessor P i auf eine Variable zugreifen, die in dem lokalen Speicher eines nicht benachbarten Prozessors P j abgelegt ist, so muss die Variable auf einem möglichst kurzen Weg zu Prozessor P i geroutet werden. 41

43 Hieraus leiten sich eine Reihe von Eigenschaften ab, die ein gutes Prozessornetz charakterisieren: 1. kleiner Durchmesser Um Routing-Wege möglichst kurz zu halten, sollte das Prozessornetz einen kleinen Durchmesser besitzen. Es kann jedoch nicht einfach jeder Prozessor mit jedem anderen Prozessor verbunden werden, da sich ein derartig dichtes Netzwerk in der Praxis nicht realisieren läÿt. 2. gute Simulationseigenschaften Ein Algorithmus, der ezient auf einem Rechnernetz G 1 ausgeführt werden kann, sollte auch auf einem Netzwerk G 2 schnell laufen. Dies gewährleistet die Portierbarkeit von Algorithmen. Dazu muss das Netzwerk G 2 die Kommunikationsstruktur des Netzwerks G 1 ezient simulieren können. 3. einfache Routing-Algorithmen Falls eine Nachricht von einem Prozessor P i zu einem Prozessor P j geroutet werden muss, so sollte jeder Prozessor auf dem Weg von P i nach P j möglichst in konstanter Zeit entscheiden, über welche Kante die Nachricht weitergeschickt wird. Dies verringert die Kosten eines nicht lokalen Speicherzugris. 4. keine Flaschenhälse In einem guten Netzwerk sollten nicht nur alle Routing-Wege kurz sein, sie sollten sich auch gleichmäÿig über die Knoten und Kanten des Graphen verteilen. Dies ist beispielsweise in einem sternförmigen Netzwerk nicht der Fall. 5. hohe Fehlertoleranz Kommt ein Netzwerk in der Praxis zum Einsatz, so muss gewährleistet sein, dass auch nach Ausfall eines Prozessors oder eines Links auf dem restlichen Netzwerk weitergearbeitet werden kann. Der Graph sollte eine hohe Konektivität besitzen, so dass selbst bei einem Ausfall mehrerer Links das Netzwerk zusammenhängend bleibt. 5.1 Der Hypercube In den nachfolgenden Abschnitten werden wir die bekannten Netzwerktopologien Hypercube, Gitter und Torus kennenlernen. Zunächst benötigen wir jedoch noch einige graphentheoretische Denitionen: Denition 54. Sei G = (V, E) ein ungerichteter Graph und u, v V. Bezeichne dist(u, v) die Länge des kürzesten Weges von u nach v. Dann ist der 42

44 Durchmesser D(G) des Graphen G deniert als: D(G) = max{dist(u, v); u, v V } Denition 55. Seien G 1 = (V 1, E 1 ) und G 2 = (V 2, E 2 ) ungerichtete Graphen. G 1 und G 2 heiÿen isomorph, wenn es eine bijektive Abbildung ϕ : V 1 V 2 gibt mit {u, v} E 1 {ϕ(u), ϕ(v)} E 2. In diesem Fall heiÿt ϕ Isomorphismus zwischen G 1 und G 2. Gilt G 1 = G 2, so heiÿt ϕ Automorphismus. Denition 56. Sei G = (V, E) ein ungerichteter Graph. G heiÿt knotensymmetrisch (engl.: vertex-transitive), wenn für alle u, v V ein Automorphismus ϕ u,v existiert mit ϕ u,v (u) = v. Aus der Denition des Automorphismus folgt sofort, dass jeder knotensymmetrische Graph regulär sein muss (d.h. alle Knoten besitzen gleichen Knotengrad). Denition 57. Sei G = (V, E) ein ungerichteter Graph. G heiÿt kantensymmetrisch, falls für je zwei Kanten {u, v}, {u, v } E ein Automorphismus ϕ existiert mit ϕ(u) = u und ϕ(v) = v. Der Hypercube gehört zu den leistungsstärksten Verbindungsnetzwerken, die bis heute bekannt sind. Viele andere Netzwerke können vom Hypercube ef- zient, d.h. mit konstantem Zeitverlust, simuliert werden. Der Hypercube stellt daher eine vielseitig einsetzbare parallele Maschine dar. In diesem Abschnitt wollen wir den Hypercube und seine wichtigsten Eigenschaften vorstellen. Denition 58. Der Hypercube der Dimension k wird mit Q(k) bezeichnet und ist wie folgt deniert: Q(k) = (V k, E k ) mit V k = {0, 1} k E k = {{u, v}; u, v {0, 1} k unterscheiden sich in genau einem Bit} Der Hypercube besitzt eine rekursive Struktur, d.h. der Hypercube der Dimension k, k 2, enthält 2 Kopien des Hypercube der Dimension k 1. Satz 59. (Eigenschaften des Hypercube) Der Hypercube Q(k) der Dimension k besitzt die folgenden Eigenschaften: 1.) Q(k) besitzt 2 k Knoten und k 2 k 1 Kanten. 2.) Q(k) ist regulär vom Grad k. 3.) Der Durchmesser des Q(k) ist k. 4.) Die Bisektionsweite des Q(k) ist 2 k 1. 43

45 Die ersten 3 Aussagen des Satzes sind klar. auf den Beweis der vierten Aussage wird an dieser Stelle verzichtet. Für den Hypercube kann ein einfacher Routing-Algorithmus angegeben werden. Seien dazu u, v {0, 1} k zwei beliebige Knoten des Q(k) mit u = (u k 1... u 0 ) und v = (v k 1... v 0 ). Desweiteren bezeichne u(i), 0 i < k, das Binärwort, das sich von u genau im i-ten Bit unterscheidet. Dann kann wie folgt eine Nachricht von u nach v geroutet werden: for i := 0 to k 1 do begin if u i v i then begin schicke Nachricht von Knoten u nach Knoten u(i); u := u(i); end; end; Die Anzahl der Kanten, die der Routing-Algorithmus durchläuft, entspricht der Anzahl der Bits, in denen sich die Binärdarstellungen der Knoten u und v unterscheiden. Damit ndet der Routing-Algorithmus immer den kürzesten Weg zwischen u und v. Der Algorithmus ist also optimal. Im folgenden wollen wir weitere Eigenschaften des Hypercube untersuchen. Satz 60. Der Hypercube Q(k) ist knotensymmetrisch. Proof. Für x {0, 1} k bezeichne wieder x(i), 0 i < k, das Binärwort, das sich von x genau im i-ten Bit unterscheidet. Sei δ i : V k V k deniert durch δ i (x) = x(i). Dann ist δ i ein Automorphismus, denn für {u, v} E k mit v = u(j), 0 j < k, gilt: { {u(i), u(i)(j)}, falls i j {δ i (u), δ i (u(j))} = {u(i), u}, falls i = j In beiden Fällen ist {δ i (u), δ i (u(j))} eine Kante des Q(k). Da die Konkatenation von Automorphismen selbst wieder einen Automorphismus ergibt, kann der gesuchte Automorphismus ϕ u,v mit ϕ u,v (u) = v deniert werden durch: ϕ u,v = δ i i u i v i Satz 61. Der Hypercube Q(k) ist kantensymmetrisch. Proof. Seien {u, v}, {u, v } zwei Kanten des Q(k). Sei i die Dimension, in der {u, v} verläuft, d.h. u = u k 1... u i... u 0 v = u k 1... u i... u 0 44

46 und sei j die Dimension, in der {u, v } verläuft, d.h. u = u k 1... u j... u 0 v = u k 1... u j... u 0 Sei π : {0,..., k 1} {0,..., k 1} eine Permutation mit π(j) = i und bezeichne die logische XOR-Verknüpfung. Dann kann der gesuchte Automorphismus ϕ : V k V k deniert werden durch: ϕ(x k 1... x 0 ) = ((x π(k 1) u π(k 1) u k 1 )... (x π(0) u π(0) u 0)) Wir müssen zeigen: (i) ϕ(u) = u und ϕ(v) = v (ii) ϕ ist Automorphismus, d.h. {z 1, z 2 } E k {ϕ(z 1 ), ϕ(z 2 )} E k (i): Für ϕ(u) ergibt sich: ϕ(u k 1... u 0 ) = ((u π(k 1) u π(k 1) u k 1 )... (u π(0) u π(0) u 0)) = u k 1... u 0 = u und ϕ(v) berechnet sich zu: ϕ(v k 1... v 0 ) = ((v π(k 1) u π(k 1) u k 1 )... (v π(0) u π(0) u 0)) dabei gilt für 0 h < k: { v π(h) = u π(h), falls π(h) i, d.h. h j u i, falls h = j daraus folgt: ϕ(v k 1... v 0 ) = ((u π(k 1) u π(k 1) u k 1 )... (u i u i u j)... (u π(0) u π(0) u 0)) = u k 1... u j... u 0 = v (ii): Sei {z 1, z 2 } eine Kante des Q(k). Sei r das Bit, in dem sich die Binärworte z 1 und z 2 unterscheiden. Sei π(s) = r. Nach (i) unterscheiden sich ϕ(z 1 ) und ϕ(z 2 ) im Bit s. Daraus folgt: {ϕ(z 1 ), ϕ(z 2 )} E k. Zur Erinnerung: Ein Hamilton-Kreis ist ein Kreis, der jeden Knoten genau einmal besucht und an den Ausgangsknoten zurückkehrt. Lemma 62. Der Hypercube Q(k), k 2, enthält einen Hamilton-Kreis. 45

47 Abbildung 5.1: Das 2-dimensionale Gitter M[3, 5] Proof. Ind. Anf.: k = 2 Der gesuchte Hamilton-Kreis lautet: Ind. Schritt: k k + 1 Der Hypercube Q(k + 1) ist aus zwei disjunkten Kopien des Q(k) zusammengesetzt. Nach Ind.Vor. enthalten beide Kopien einen Hamilton-Kreis C k. Durch Verschmelzen der beiden Kreise kann ein Hamilton-Kreis C k+1 in Q(k+1) konstruiert werden. Sei dazu {u, v} E k eine beliebige Kante auf C k. Der Kreis C k+1 wird wie folgt gebildet: 1.) Streichen der Kanten {0u, 0v}, {1u, 1v} 2.) Hinzufügen der Kanten {0u, 1u}, {0v, 1v} 5.2 Gitter und Torus Denition 63. (d-dimensionales Gitter) Das d-dimensionale Gitter wird mit M[n 1,..., n d ] bezeichnet und ist wie folgt deniert: M[n 1,..., n d ] = (V, E) mit V = {(i 1,..., i d ); 1 i ν n ν für 1 ν d} E = {{(i 1,..., i d ), (j 1,..., j d )}; 1 κ d mit j κ = i κ + 1 und i ν = j ν für ν κ} Abbildung 5.1 zeigt das 2-dimensionales Gitter M[3, 5]. Man kann es sich auch als Matrix vorstellen, in der aneinandergrenzende Zellen (ohne Berücksichtigung von Diagonalen) miteinander durch eine Kante verbunden sind. Ein Torus ist einem Gitter sehr ähnlich. Allerdings haben beim Torus alle Knoten Grad 4. Dies wird erreicht, indem jeder Knoten am Rand eines Gitters durch eine Kante mit einem Knoten am gegenüberliegenden Rand verbunden wird, siehe dazu Abbildung 5.2. Der Algorithmus zur Bestimmung der transitiven Hülle eines Graphen und seine Implementierung auf einem Gitter kann im Buch von Leighton [7] nachgeschlagen werden. 46

48 Abbildung 5.2: Der 2-dimensionale Torus T[3, 5] 5.3 Lastbalancierung Gegeben sei ein Rechnernetz mit vielen Prozessoren. Jeder Prozessor hat eine gewisse Last, die er zu verarbeiten hat. Bis zur gemeinsamen Lösung eines Problems muss man immer auf den am längsten rechnenden Prozessor warten. Daher ist es für eine eziente Nutzung eines Parallelrechners entscheidend, dass alle Prozessoren gleich stark ausgelastet sind. Algorithmisch stellen wir uns daher die Frage, wie ohne zentrale Steuerung eine möglichst schnelle Balancierung erreicht werden kann. Unsere Modellannahme ist, dass die Prozessoren in jedem Schritt nur ihre eigene Last und die ihrer Nachbarn kennen und mit ihnen in einer Runde Last austauschen können? Weiterhin sind die Lasten beliebig aufteilbar (also durch reelle Zahlen repräsentierbar). Bevor wir einen geeigneten Lastbalancierungsalgorithmus vorstellen, benötigen wir zunächst einige Grundlagen aus der linearen Algebra. Denition 64. Seien im folgenden n N, x, y R n und A = (a ij ) R n n. a) Das Skalarprodukt zweier Vektoren x und y ist deniert durch x, y = n i=1 x i y i. b) Als Norm eines Vektors x verwenden wir die Summennorm x 1 = i x i bzw. meistens die euklidische Norm x 2 = x, x. c) Die Matrix A T = (a ji ) R n n heiÿt transponierte Matrix von A. d) Eine Matrix A heiÿt symmetrisch, wenn A = A T gilt. e) Das Matrix-Vektorprodukt y = Ax ist deniert durch y i = n j=1 a ij x j = A i, x. f) Die Norm einer Matrix A ist durch A = sup x 0 Ax x deniert. 47

Kombinatorische Optimierung

Kombinatorische Optimierung Juniorprof. Dr. Henning Meyerhenke 1 Henning Meyerhenke: KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Vorlesung 1 Programm des

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

16. All Pairs Shortest Path (ASPS)

16. All Pairs Shortest Path (ASPS) . All Pairs Shortest Path (ASPS) All Pairs Shortest Path (APSP): Eingabe: Gewichteter Graph G=(V,E) Ausgabe: Für jedes Paar von Knoten u,v V die Distanz von u nach v sowie einen kürzesten Weg a b c d e

Mehr

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel 3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel EADS 3.1 Konstruktion von minimalen Spannbäumen 16/36

Mehr

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

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS) Dominating Set 59 Literatur Dominating Set Grundlagen 60 Dominating Set (DS) M. V. Marathe, H. Breu, H.B. Hunt III, S. S. Ravi, and D. J. Rosenkrantz: Simple Heuristics for Unit Disk Graphs. Networks 25,

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik

Kürzeste Wege in Graphen. Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Kürzeste Wege in Graphen Maurice Duvigneau Otto-von-Guericke Universität Fakultät für Informatik Gliederung Einleitung Definitionen Algorithmus von Dijkstra Bellmann-Ford Algorithmus Floyd-Warshall Algorithmus

Mehr

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Algorithmen II Vorlesung am 15.11.2012

Algorithmen II Vorlesung am 15.11.2012 Algorithmen II Vorlesung am 15.11.2012 Kreisbasen, Matroide & Algorithmen INSTITUT FÜR THEORETISCHE INFORMATIK PROF. DR. DOROTHEA WAGNER KIT Universität des Landes Baden-Württemberg und Algorithmen nationales

Mehr

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik

Graphenalgorithmen und lineare Algebra Hand in Hand Vorlesung für den Bereich Diplom/Master Informatik Vorlesung für den Bereich Diplom/Master Informatik Dozent: Juniorprof. Dr. Henning Meyerhenke PARALLELES RECHNEN INSTITUT FÜR THEORETISCHE INFORMATIK, FAKULTÄT FÜR INFORMATIK KIT Universität des Landes

Mehr

Vorlesung 3 MINIMALE SPANNBÄUME

Vorlesung 3 MINIMALE SPANNBÄUME Vorlesung 3 MINIMALE SPANNBÄUME 72 Aufgabe! Szenario: Sie arbeiten für eine Firma, die ein Neubaugebiet ans Netz (Wasser, Strom oder Kabel oder...) anschließt! Ziel: Alle Haushalte ans Netz bringen, dabei

Mehr

2 Lösungen "Peptide de novo Sequencing"

2 Lösungen Peptide de novo Sequencing Lösungen "Peptide de novo Sequencing". Algorithm : PeptideSequencingOnlySux Input: a spectrum M with array of masses M = {m, m,, m n }, Σ, µ : Σ R >0 Output: the peptide string of the spectrum begin peptide

Mehr

Algorithmentheorie. 13 - Maximale Flüsse

Algorithmentheorie. 13 - Maximale Flüsse Algorithmentheorie 3 - Maximale Flüsse Prof. Dr. S. Albers Prof. Dr. Th. Ottmann . Maximale Flüsse in Netzwerken 5 3 4 7 s 0 5 9 5 9 4 3 4 5 0 3 5 5 t 8 8 Netzwerke und Flüsse N = (V,E,c) gerichtetes Netzwerk

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 4. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Traversierung Durchlaufen eines Graphen, bei

Mehr

Algorithmen und Datenstrukturen (WS 2007/08) 63

Algorithmen und Datenstrukturen (WS 2007/08) 63 Kapitel 6 Graphen Beziehungen zwischen Objekten werden sehr oft durch binäre Relationen modelliert. Wir beschäftigen uns in diesem Kapitel mit speziellen binären Relationen, die nicht nur nur besonders

Mehr

Graphen: Datenstrukturen und Algorithmen

Graphen: Datenstrukturen und Algorithmen Graphen: Datenstrukturen und Algorithmen Ein Graph G = (V, E) wird durch die Knotenmenge V und die Kantenmenge E repräsentiert. G ist ungerichtet, wenn wir keinen Start- und Zielpunkt der Kanten auszeichnen.

Mehr

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn

Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn Seminarvortag zum Thema Virtual Private Network Design im Rahmen des Seminars Network Design an der Universität Paderborn Ein 5.55-Approximationsalgorithmus für das VPND-Problem Lars Schäfers Inhalt Einführung:

Mehr

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time Universität Konstanz Mathematisch-naturwissenschaftliche Sektion Fachbereich Mathematik und Statistik Wintersemester 2001/02 Mikkel Thorup: Undirected Single-Source Shortest Paths with Positive Integer

Mehr

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten

Gliederung. Definition Wichtige Aussagen und Sätze Algorithmen zum Finden von Starken Zusammenhangskomponenten Gliederung Zusammenhang von Graphen Stark Zusammenhängend K-fach Zusammenhängend Brücken Definition Algorithmus zum Finden von Brücken Anwendung Zusammenhangskomponente Definition Wichtige Aussagen und

Mehr

WS 2013/14. Diskrete Strukturen

WS 2013/14. Diskrete Strukturen WS 2013/14 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws1314

Mehr

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume

Effiziente Algorithmen und Datenstrukturen I. Kapitel 9: Minimale Spannbäume Effiziente Algorithmen und Datenstrukturen I Kapitel 9: Minimale Spannbäume Christian Scheideler WS 008 19.0.009 Kapitel 9 1 Minimaler Spannbaum Zentrale Frage: Welche Kanten muss ich nehmen, um mit minimalen

Mehr

WS 2009/10. Diskrete Strukturen

WS 2009/10. Diskrete Strukturen WS 2009/10 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0910

Mehr

Guten Morgen und Willkommen zur Saalübung!

Guten Morgen und Willkommen zur Saalübung! Guten Morgen und Willkommen zur Saalübung! 1 Wie gewinnt man ein Spiel? Was ist ein Spiel? 2 Verschiedene Spiele Schach, Tic-Tac-Toe, Go Memory Backgammon Poker Nim, Käsekästchen... 3 Einschränkungen Zwei

Mehr

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2

w a is die Anzahl der Vorkommen von a in w Beispiel: abba a = 2 1 2 Notation für Wörter Grundlagen der Theoretischen Informatik Till Mossakowski Fakultät für Informatik Otto-von-Guericke Universität Magdeburg w a is die Anzahl der Vorkommen von a in w Beispiel: abba

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Randomisierte Algorithmen

Randomisierte Algorithmen Randomisierte Algorithmen Kapitel 2 Markus Lohrey Universität Leipzig http://www.informatik.uni-leipzig.de/~lohrey/rand WS 2005/2006 Markus Lohrey (Universität Leipzig) Randomisierte Algorithmen WS 2005/2006

Mehr

Seminararbeit für das SE Reine Mathematik- Graphentheorie

Seminararbeit für das SE Reine Mathematik- Graphentheorie Seminararbeit für das SE Reine Mathematik- Graphentheorie Der binäre Rang, der symplektische Graph, die Spektralzerlegung und rationale Funktionen Vortrag am 24.01.2012 Heike Farkas 0410052 Inhaltsverzeichnis

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2006 3. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@bioinf.uni-leipzig.de Algorithmen für Graphen Fragestellungen: Suche

Mehr

Anmerkungen zur Übergangsprüfung

Anmerkungen zur Übergangsprüfung DM11 Slide 1 Anmerkungen zur Übergangsprüfung Aufgabeneingrenzung Aufgaben des folgenden Typs werden wegen ihres Schwierigkeitsgrads oder wegen eines ungeeigneten fachlichen Schwerpunkts in der Übergangsprüfung

Mehr

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J

S=[n] Menge von Veranstaltungen J S kompatibel mit maximaler Größe J Greedy-Strategie Definition Paradigma Greedy Der Greedy-Ansatz verwendet die Strategie 1 Top-down Auswahl: Bestimme in jedem Schritt eine lokal optimale Lösung, so dass man eine global optimale Lösung

Mehr

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland.

Programmierung 2. Dynamische Programmierung. Sebastian Hack. Klaas Boesche. Sommersemester 2012. hack@cs.uni-saarland.de. boesche@cs.uni-saarland. 1 Programmierung 2 Dynamische Programmierung Sebastian Hack hack@cs.uni-saarland.de Klaas Boesche boesche@cs.uni-saarland.de Sommersemester 2012 2 Übersicht Stammt aus den Zeiten als mit Programmierung

Mehr

Minimale Darstellungen, Kommutator- und Fixräume, projektive Geometrie

Minimale Darstellungen, Kommutator- und Fixräume, projektive Geometrie Notation Die in dieser Arbeit verwendete Notation ist im Wesentlichen Standard, so wie sie beispielsweise in [As] zu nden ist. Einige Abweichungen hiervon, Klarstellungen und zusätzliche Notationen (sofern

Mehr

Wortproblem für kontextfreie Grammatiken

Wortproblem für kontextfreie Grammatiken Wortproblem für kontextfreie Grammatiken G kontextfreie Grammatik. w Σ w L(G)? Wortproblem ist primitiv rekursiv entscheidbar. (schlechte obere Schranke!) Kellerautomat der L(G) akzeptiert Ist dieser effizient?

Mehr

Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007

Graphentheorie. Organisatorisches. Organisatorisches. Organisatorisches. Rainer Schrader. 23. Oktober 2007 Graphentheorie Rainer Schrader Organisatorisches Zentrum für Angewandte Informatik Köln 23. Oktober 2007 1 / 79 2 / 79 Organisatorisches Organisatorisches Dozent: Prof. Dr. Rainer Schrader Weyertal 80

Mehr

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011

Graphen: Einführung. Vorlesung Mathematische Strukturen. Sommersemester 2011 Graphen: Einführung Vorlesung Mathematische Strukturen Zum Ende der Vorlesung beschäftigen wir uns mit Graphen. Graphen sind netzartige Strukturen, bestehend aus Knoten und Kanten. Sommersemester 20 Prof.

Mehr

Fully dynamic algorithms for the single source shortest path problem.

Fully dynamic algorithms for the single source shortest path problem. Fully dynamic algorithms for the single source shortest path problem. Michael Baur Wintersemester 2001/2002 Zusammenfassung Im folgenden Paper werde ich Algorithmen für das dynamische Kürzeste-Wege-Problem

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein.

Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein. Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein. 3 1384788374932954500363985493554603584759389 mod 28374618732464817362847326847331872341234 Wieso kann ein

Mehr

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling

Approximationsalgorithmen: Klassiker I. Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling Approximationsalgorithmen: Klassiker I Kombinatorische Optimierung Absolute Gütegarantie Graph-Coloring Clique Relative Gütegarantie Scheduling VO Approximationsalgorithmen WiSe 2011/12 Markus Chimani

Mehr

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf

Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005. Paradigmen im Algorithmenentwurf Babeș-Bolyai Universität Cluj Napoca Fakultät für Mathematik und Informatik Grundlagen der Programmierung MLG5005 Paradigmen im Algorithmenentwurf Problemlösen Problem definieren Algorithmus entwerfen

Mehr

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering

Steinerbäume. Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Steinerbäume Seminarausarbeitung Hochschule Aalen Fakultät für Elektronik und Informatik Studiengang Informatik Schwerpunkt Software Engineering Verfasser Flamur Kastrati Betreuer Prof. Dr. habil. Thomas

Mehr

5. Verschiedene Repräsentanten

5. Verschiedene Repräsentanten 5. Verschiedene Repräsentanten 5.1. Die Sätze Hall und König Sei I := {1,...,n}, und sei A(I) = (A 1,...,A n ) eine Familie von Teilmengen einer endlichen Menge E. Zu K I seien A(K) := (A i : i K) und

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

Codierungstheorie Rudolf Scharlau, SoSe 2006 9

Codierungstheorie Rudolf Scharlau, SoSe 2006 9 Codierungstheorie Rudolf Scharlau, SoSe 2006 9 2 Optimale Codes Optimalität bezieht sich auf eine gegebene Quelle, d.h. eine Wahrscheinlichkeitsverteilung auf den Symbolen s 1,..., s q des Quellalphabets

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

2. Lernen von Entscheidungsbäumen

2. Lernen von Entscheidungsbäumen 2. Lernen von Entscheidungsbäumen Entscheidungsbäume 2. Lernen von Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch Attribut/Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Konzepte der Informatik

Konzepte der Informatik Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. äume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/5, olie 1 2014 Prof. Steffen Lange - HDa/bI

Mehr

Optimalitätskriterien

Optimalitätskriterien Kapitel 4 Optimalitätskriterien Als Optimalitätskriterien bezeichnet man notwendige oder hinreichende Bedingungen dafür, dass ein x 0 Ω R n Lösung eines Optimierungsproblems ist. Diese Kriterien besitzen

Mehr

Modelle und Statistiken

Modelle und Statistiken Kapitel 4 Modelle und Statistiken In letzter Zeit werden vermehrt Parameter (Gradfolgen, Kernzahlfolgen, etc.) empirischer Graphen (Internet, WWW, Proteine, etc.) berechnet und diskutiert. Insbesondere

Mehr

2.5. VERBINDUNGSNETZWERKE GESTALTUNGSKRITERIEN DER NETZWERKE TOPOLOGIE ALS GRAPH. Vorlesung 5 TOPOLOGIE: DEFINITIONEN : Sei G = (V, E) ein Graph mit:

2.5. VERBINDUNGSNETZWERKE GESTALTUNGSKRITERIEN DER NETZWERKE TOPOLOGIE ALS GRAPH. Vorlesung 5 TOPOLOGIE: DEFINITIONEN : Sei G = (V, E) ein Graph mit: Vorlesung 5.5. VERBINDUNGSNETZWERKE Kommunikation zwischen den einzelnen Komponenten eines arallelrechners wird i.d.r. über ein Netzwerk organisiert. Dabei unterscheidet man zwei Klassen der Rechner: TOOLOGIE:

Mehr

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15. smichel@cs.uni-kl.de Datenbankanwendung Wintersemester 2014/15 Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern smichel@cs.uni-kl.de Wiederholung: Anfragegraph Anfragen dieses Typs können als Graph dargestellt werden: Der

Mehr

Vorlesung Theoretische Informatik

Vorlesung Theoretische Informatik Vorlesung Theoretische Informatik Automaten und Formale Sprachen Hochschule Reutlingen Fakultät für Informatik Masterstudiengang Wirtschaftsinformatik überarbeitet von F. Laux (Stand: 09.06.2010) Sommersemester

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische Methoden zur Netzwerkanalyse Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische

Mehr

Expander Graphen und Ihre Anwendungen

Expander Graphen und Ihre Anwendungen Expander Graphen und Ihre Anwendungen Alireza Sarveniazi Mathematisches Institut Universität Göttingen 21.04.2006 Alireza Sarveniazi (Universität Göttingen) Expander Graphen und Ihre Anwendungen 21.04.2006

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Kapitel 4: Analyse von Petrinetzen

Kapitel 4: Analyse von Petrinetzen Kapitel 4: Analyse von Petrinetzen 1. Beispiele 2. Analyseansatz 3. Markierungsgraph 4. Beschränktheit 5. State Space Explosion: Beispiel 6. Komplementbildung 7. Zusammenhängend 8. Tot, lebendig, verklemmungsfrei

Mehr

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum

4. Lernen von Entscheidungsbäumen. Klassifikation mit Entscheidungsbäumen. Entscheidungsbaum 4. Lernen von Entscheidungsbäumen Klassifikation mit Entscheidungsbäumen Gegeben sei eine Menge von Objekten, die durch /Wert- Paare beschrieben sind. Jedes Objekt kann einer Klasse zugeordnet werden.

Mehr

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É. Tardos Janick Martinez Esturo jmartine@techfak.uni-bielefeld.de xx.08.2007 Sommerakademie Görlitz Arbeitsgruppe 5 Gliederung

Mehr

Property Testing in Graphen mit beschränktem Maximalgrad

Property Testing in Graphen mit beschränktem Maximalgrad Property Testing in Graphen mit beschränktem Maximalgrad Björn Schümann Seminar Graphentheorie und Kombinatorik WS 2007-08 Inhaltsverzeichnis 1 Einleitung 2 2 Allgemeine Aussagen zum Property Testing 3

Mehr

Zeichnen von Graphen. graph drawing

Zeichnen von Graphen. graph drawing Zeichnen von Graphen graph drawing WS 2006 / 2007 Gruppe: D_rot_Ala0607 Christian Becker 11042315 Eugen Plischke 11042351 Vadim Filippov 11042026 Gegeben sei ein Graph G = (V; E) Problemstellung V E =

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

NP-Vollständigkeit. Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984)

NP-Vollständigkeit. Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984) NP-Vollständigkeit Krautgartner Martin (9920077) Markgraf Waldomir (9921041) Rattensberger Martin (9921846) Rieder Caroline (0020984) 0 Übersicht: Einleitung Einteilung in Klassen Die Klassen P und NP

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Makespan-Scheduling Kapitel 4: Approximationsalgorithmen (dritter Teil) (weitere Beispiele und Illustrationen an der Tafel) Hilfreiche Literatur: Vazarani: Approximation Algorithms, Springer Verlag, 2001.

Mehr

Bestimmung einer ersten

Bestimmung einer ersten Kapitel 6 Bestimmung einer ersten zulässigen Basislösung Ein Problem, was man für die Durchführung der Simplexmethode lösen muss, ist die Bestimmung einer ersten zulässigen Basislösung. Wie gut das geht,

Mehr

Lösungen zum 3. Aufgabenblatt

Lösungen zum 3. Aufgabenblatt SS, Lineare Algebra Die Lösungen wurden erstellt von: Isabel Voigt, Vanessa Lamm und Matthias Rehder Hinweis: Eine Liste der zur Bearbeitung verwendeten Literatur ist unter www.mathematiwelt.com aufrufbar.

Mehr

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von.

HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG. Das Luzifer-Rätsel. Prof. Dr. Hartmut Plesske Wintersemester 2008/09. von. HOCHSCHULE KONSTANZ TECHNIK, WIRTSCHAFT UND GESTALTUNG Fakultät Informatik Das Luzifer-Rätsel Prof. Dr. Hartmut Plesske Wintersemester 2008/09 von Max Nagl nagl@fh-konstanz.de Inhaltsverzeichnis Inhaltsverzeichnis

Mehr

PROSEMINAR ONLINE ALGORITHMEN

PROSEMINAR ONLINE ALGORITHMEN PROSEMINAR ONLINE ALGORITHMEN im Wintersemester 2000/2001 Prof. Dr. Rolf Klein, Dr. Elmar Langetepe, Dipl. Inform. Thomas Kamphans (Betreuer) Vortrag vom 15.11.2000 von Jan Schmitt Thema : Finden eines

Mehr

Theoretische Grundlagen der Informatik

Theoretische Grundlagen der Informatik Theoretische Grundlagen der Informatik Vorlesung am 12.01.2012 INSTITUT FÜR THEORETISCHE 0 KIT 12.01.2012 Universität des Dorothea Landes Baden-Württemberg Wagner - Theoretische und Grundlagen der Informatik

Mehr

Kapitel 7: Formaler Datenbankentwurf

Kapitel 7: Formaler Datenbankentwurf 7. Formaler Datenbankentwurf Seite 1 Kapitel 7: Formaler Datenbankentwurf Die Schwierigkeiten der konzeptuellen Modellierung sind zu einem großen Teil dadurch begründet, dass sich die relevanten Strukturen

Mehr

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen

Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Fachschaft Informatik Informatik 11 Kapitel 2 - Rekursive Datenstrukturen Michael Steinhuber König-Karlmann-Gymnasium Altötting 15. Januar 2016 Folie 1/77 Inhaltsverzeichnis I 1 Datenstruktur Schlange

Mehr

PageRank-Algorithmus

PageRank-Algorithmus Proseminar Algorithms and Data Structures Gliederung Gliederung 1 Einführung 2 PageRank 3 Eziente Berechnung 4 Zusammenfassung Motivation Motivation Wir wollen eine Suchmaschine bauen, die das Web durchsucht.

Mehr

Die k kürzesten Wege in gerichteten Graphen

Die k kürzesten Wege in gerichteten Graphen Die k kürzesten Wege in gerichteten Graphen Marc Benkert Wintersemester 001/00 1 Einführung 1.1 Problemstellung In einem gerichteten, gewichteten Graphen G = (V, E) sollen die k kürzesten Wege zu zwei

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische Methoden zur Netzwerkanalyse Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische

Mehr

Periodische Fahrpläne und Kreise in Graphen

Periodische Fahrpläne und Kreise in Graphen Periodische Fahrpläne und Kreise in Graphen Vorlesung Algorithmentechnik WS 2009/10 Dorothea Wagner Karlsruher Institut für Technologie Eisenbahnoptimierungsprozess 1 Anforderungserhebung Netzwerkentwurf

Mehr

WS 2008/09. Diskrete Strukturen

WS 2008/09. Diskrete Strukturen WS 2008/09 Diskrete Strukturen Prof. Dr. J. Esparza Lehrstuhl für Grundlagen der Softwarezuverlässigkeit und theoretische Informatik Fakultät für Informatik Technische Universität München http://www7.in.tum.de/um/courses/ds/ws0809

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

Mehr

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau

Codierung. Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Codierung Auszug aus dem Skript von Maciej Liśkiewicz und Henning Fernau Ein bisschen Informationstheorie Betrachten wir das folgende Problem: Wie lautet eine sinnvolle Definition für das quantitative

Mehr

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 9.. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83 Die Grundfrage bei der Anwendung des Satzes über implizite Funktionen betrifft immer die folgende Situation: Wir haben eine Funktion f : V W und eine Stelle x

Mehr

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de

Maximaler Fluß und minimaler Schnitt. Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Von Sebastian Thurm sebastian.thurm@student.uni-magedburg.de Maximaler Fluß und minimaler Schnitt Wasist das? Maximaler Fluss Minimaler Schnitt Warumtut man das? Logistische

Mehr

Kapitel 6: Graphalgorithmen Gliederung

Kapitel 6: Graphalgorithmen Gliederung Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen

Mehr

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 29.10.2012 CoMa-Übung III (TU Berlin) Kontrollstrukturen, Pseudocode und Modulo-Rechnung 29.10.2012 1 / 1 Themen der Übung 1

Mehr

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für

Mehr

Der Zwei-Quadrate-Satz von Fermat

Der Zwei-Quadrate-Satz von Fermat Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer

Vorlesung Informatik 2 Algorithmen und Datenstrukturen. (20 Graphen) T. Lauer Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 Graphen) T. Lauer 1 Motivation Wie komme ich am besten von Freiburg nach Ulm? Was ist die kürzeste Rundreise durch eine gegebene Menge von Städten?

Mehr

Laufzeit und Komplexität

Laufzeit und Komplexität Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen

Mehr

11. Primfaktorzerlegungen

11. Primfaktorzerlegungen 78 Andreas Gathmann 11 Primfaktorzerlegungen Euch ist sicher aus der Schule bekannt, dass sich jede positive ganze Zahl a als Produkt a = p 1 p n von Primzahlen schreiben lässt, und dass diese Darstellung

Mehr

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis

Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Kap. 4.4: B-Bäume Kap. 4.5: Dictionaries in der Praxis Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 13./14. VO DAP2 SS 2009 2./4. Juni 2009 1 2. Übungstest

Mehr

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir

Branch-and-Bound. Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir Effiziente Algorithmen Lösen NP-vollständiger Probleme 289 Branch-and-Bound Wir betrachten allgemein Probleme, deren Suchraum durch Bäume dargestellt werden kann. Innerhalb des Suchraums suchen wir 1.

Mehr

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung Kapitel 6 Komplexität von Algorithmen 1 6.1 Beurteilung von Algorithmen I.d.R. existieren viele Algorithmen, um dieselbe Funktion zu realisieren. Welche Algorithmen sind die besseren? Betrachtung nicht-funktionaler

Mehr

Pratts Primzahlzertifikate

Pratts Primzahlzertifikate Pratts Primzahlzertifikate Markus Englert 16.04.2009 Technische Universität München Fakultät für Informatik Proseminar: Perlen der Informatik 2 SoSe 2009 Leiter: Prof. Dr. Nipkow 1 Primzahltest Ein Primzahltest

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Approximationsalgorithmen Seminar im Sommersemester 2008 Sebastian Bauer, Wei Cheng und David Münch Herausgegeben von Martin Nöllenburg, Ignaz Rutter und Alexander Wolff Institut für Theoretische Informatik

Mehr

Unterscheidung: Workflowsystem vs. Informationssystem

Unterscheidung: Workflowsystem vs. Informationssystem 1. Vorwort 1.1. Gemeinsamkeiten Unterscheidung: Workflowsystem vs. Die Überschneidungsfläche zwischen Workflowsystem und ist die Domäne, also dass es darum geht, Varianten eines Dokuments schrittweise

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2015/16 12. Vorlesung Hashing Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Übungen Begründen Sie grundsätzlich alle Behauptungen außer die Aufgabe

Mehr

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29 1 29 Teil III: Routing - Inhalt I Literatur Compass & Face Routing Bounded & Adaptive Face Routing Nicht Ω(1) UDG E. Kranakis, H. Singh und Jorge Urrutia: Compass Routing on Geometric Networks. Canadian

Mehr