Johnnes Singler, Prof. Snders 1 Johnnes Singler: KIT Universität des Lndes Bden-Württemberg und ntionles Forschungszentrum in der Helmholtz-Gemeinschft Institut für Theoretische www.kit.edu Informtik
Orgnistorisches Übungsblätter Ds dritte Übungsbltt steht seit Dienstg online. Die Musterlösung des dritten Übungsbltts erscheint m 2.12. Vernstltungen Heute zuerst Vorlesung durch Übungsleiter. Am 2.12. keine Übung, sondern nur Vorlesung. 2 Johnnes Singler:
Inhlt heute 1 Wiederholung Kostenminimle Flüsse Beispielluf des Algorithmus Demo 2 Beispiel zu Mtchings 3 Wiederholung Rndomisierte Algorithmen 4 Beispiel zu Cuckoo Hshing 5 Perfektes Hshing konkret 3 Johnnes Singler:
Wiederholung Kostenminimle Flüsse Problemdefinition: Folie 235 der Vorlesung Bewege Gut unter Einschränkungen möglichst billig von Angebot (Quellen) zu Nchfrge (Senken). Trnsportproblem : keine Beschränkung der Kpzität Modellierung mit s und t wie bei Mximlen Flüssen wäre uch möglich, ist in der Litertur ber nicht üblich. Von s führen Knten zu llen Quellen. Von llen Senken führen Knten zu t Algorithmus mittels Zyklenugmentierung: Folie 236 der Vorlesung bsierend uf Optimlitätskriterium inkrementelle Kostenreduzierung, Fluss bleibt immer zulässig konzeptuell ähnlich zu Ford-Fulkerson genuso lngsme Lufzeit: pseudo-polynomiell (Folie 411 der Vorlesung) 4 Johnnes Singler:
Kostenminimle Flüsse: Residulgrph cost f : Residulgrph der Kosten Knte in Gegenrichtung: negtive Kosten der eigentlichen Knte. Fluss über diese Gegenknte zu schicken reduziert Fluss, sprt lso Kosten Fluss f über Zyklus mit negtiven Kosten c im Kreis schieben: Mengen n Knoten ändern sich nicht, ber wir spren f c Kosten Fluss geht quntittiv nicht ein, wir spren so oder so (3/5) 6 (1/2) 4 b 3 6 2 6 1 4 1 4 b 5 Johnnes Singler:
Kostenminimle Flüsse: Negtive Zyklen Wie findet mn einen negtiven Zyklus? Bellmn-Ford-Algorithmus zum Finden kürzester Wege in jeder strken Zusmmenhngskomponente (SCC) extr, von beliebigem Knoten in SCC Algorithmus terminiert mit inkonsistenten Kosten. Finde negtiven Zyklus mit wiederholter Tiefensuche (ist ein Bum, wenn kein negtiver Zyklus vorhnden ist). -1 b 100-1 c d -1 101 102 6 Johnnes Singler:
0 5 25 Kostenminimler Fluss Beispiel Eingbegrph G, noch kein (konsistenter) Fluss 25 0 6 20 0 7 30 b 0 c 0 0 4 10 0 2 20 0 2 25 0 1 20 d -5 e -20 Fluss Kosten Kpzität 7 Johnnes Singler:
0 25 0 20 Kostenminimler Fluss Beispiel Hinzufügen von s und t s 0 25 0 20 0 30 b c 0 10 0 20 0 25 d e 0 5 0 20 t Fluss Kosten Kpzität 7 Johnnes Singler:
15 25 15 20 Kostenminimler Fluss Beispiel Finden eines Mximlen Flusses zwischen s und t s 25 25 0 20 25 30 b c 10 10 10 20 5 25 d e 5 5 20 20 t lle Knten usgehend s voll usgelstet zulässiger Fluss Fluss Kosten Kpzität 7 Johnnes Singler:
15 5 25 15 1 20 Kostenminimler Fluss Beispiel Initiler zulässiger Fluss, Kosten 335 0 6 20 25 7 30 b 10 4 10 10 2 20 d c 5 2 25 e Fluss Kosten Kpzität 7 Johnnes Singler:
5 1 Kostenminimler Fluss Beispiel Residulgrph, Zyklus mit Gesmtkosten -6 b -4 d -7 7-5 -2 2-1 6 c -2 2 e Fluss Kosten Kpzität 7 Johnnes Singler:
0 5 25 15 1 20 Kostenminimler Fluss Beispiel Augmentieren mit 15 Kosten 245 15 6 20 10 7 30 b 10 4 10 10 2 20 d c 5 2 25 e Fluss Kosten Kpzität 7 Johnnes Singler:
5 1 Kostenminimler Fluss Beispiel Residulgrph, Zyklus mit Gesmtkosten -4 b -4 d -7 7-2 2-1 -6 6 c -2 2 e Fluss Kosten Kpzität 7 Johnnes Singler:
0 5 25 10 1 20 Kostenminimler Fluss Beispiel Augmentieren mit 5 Kosten 225 20 6 20 5 7 30 b 5 4 10 10 2 20 d c 10 2 25 e Fluss Kosten Kpzität 7 Johnnes Singler:
5 1 Kostenminimler Fluss Beispiel Residulgrph, Zyklus mit Gesmtkosten -1-7 7 b -4 4 d -2 2-1 -6 c -2 2 e Fluss Kosten Kpzität 7 Johnnes Singler:
0 5 25 0 1 20 Kostenminimler Fluss Beispiel Augmentieren mit 10 Kosten 215 20 6 20 5 7 30 b 5 4 10 0 2 20 d c 20 2 25 e Fluss Kosten Kpzität 7 Johnnes Singler:
5 1 Kostenminimler Fluss Beispiel Residulgrph, keine Zyklen mit negtiven Gesmtkosten mehr -7 7 b -4 4 d 2-6 c -2 2 e Kostenminimler Fluss gefunden! Fluss Kosten Kpzität 7 Johnnes Singler:
Kostenminimle Flüsse: Demo CATBox http://biomps.rutgers.edu/~schliep/catbox/ 8 Johnnes Singler:
Integrlitätsgrntie Für Mximlen Fluss und Kostenminimlen Fluss gilt: Sind die Kpzitäten (und ggf. die Angebote/Nchfrgen) gnzzhlig, so gibt es einen gnzzhligen Mximlen/Kostenminimlen Fluss, und die Flüsse uf den einzelnen Knten sind ebenflls gnzzhlig. Es knn ntürlich zusätzlich uch nichtgnzzhlige Flüsse geben. Die Algorithmen ergeben gnzzhlige Flüsse, uf Grund von Augmentierung/Push, die von gnzzhliger Residulkpzität beschränkt wird. Wird für viele Anwendungen benötigt (siehe uch Übungsbltt). 9 Johnnes Singler:
Wiederholung Mtchings Folien 184, 240 der Vorlesung: Crdinlity bzw. Weighted Anwendung Grphkontrktion in ungerichteten Grphen Reduziere Anzhl Knoten um konstnten Fktor mittels Kontrktion von Mximl (nicht Mximum) Mtching logrithmische Anzhl Phsen hierrchische Grphprtitionierung Boruvk-Algorithmus für Minimle Spnnbäume Ausgngsgrph h f c b i e g d 10 Johnnes Singler:
Wiederholung Mtchings Folien 184, 240 der Vorlesung: Crdinlity bzw. Weighted Anwendung Grphkontrktion in ungerichteten Grphen Reduziere Anzhl Knoten um konstnten Fktor mittels Kontrktion von Mximl (nicht Mximum) Mtching logrithmische Anzhl Phsen hierrchische Grphprtitionierung Boruvk-Algorithmus für Minimle Spnnbäume Mtching (eventuell gewichtet) h f c b i e g d 10 Johnnes Singler:
Wiederholung Mtchings Folien 184, 240 der Vorlesung: Crdinlity bzw. Weighted Anwendung Grphkontrktion in ungerichteten Grphen Reduziere Anzhl Knoten um konstnten Fktor mittels Kontrktion von Mximl (nicht Mximum) Mtching logrithmische Anzhl Phsen hierrchische Grphprtitionierung Boruvk-Algorithmus für Minimle Spnnbäume Kntenkontrktion h b cf di eg 10 Johnnes Singler:
Wiederholung Rndomisierte Algorithmen 1 Ls Vegs: richtig, ber mnchml lngsm 2 Monte Crlo: (immer gleich) schnell, ber mnchml flsch 3 Monte-Crlo-Simultion: zufllsverteilte numerischer Abweichung von korrekter Lösung unserer Meinung nch etws nderes ls ein Monte-Crlo-Algorithmus 11 Johnnes Singler:
Wiederholung Cuckoo Hshing Folie 251 der Vorlesung O(1) Zugriff uch im schlechtesten Fll erwrtete Lufzeit wird voll uf insert bgeschoben 12 Johnnes Singler:
Cuckoo Hshing Beispiel neu einfügen 13 Johnnes Singler:
Cuckoo Hshing Beispiel 13 Johnnes Singler:
Cuckoo Hshing Beispiel neu einfügen b 13 Johnnes Singler:
Cuckoo Hshing Beispiel b 13 Johnnes Singler:
Cuckoo Hshing Beispiel neu einfügen c b 13 Johnnes Singler:
Cuckoo Hshing Beispiel c b 13 Johnnes Singler:
Cuckoo Hshing Beispiel neu einfügen d c b 13 Johnnes Singler:
Cuckoo Hshing Beispiel c b d 13 Johnnes Singler:
Cuckoo Hshing Beispiel neu einfügen e c b d 13 Johnnes Singler:
Cuckoo Hshing Beispiel c b e d 13 Johnnes Singler:
Cuckoo Hshing Beispiel d b e c 13 Johnnes Singler:
Cuckoo Hshing Beispiel d b e c 13 Johnnes Singler:
Cuckoo Hshing Beispiel d b e c 13 Johnnes Singler:
Cuckoo Hshing Beispiel neu einfügen f d b e c 13 Johnnes Singler:
Cuckoo Hshing Beispiel d f e c b 13 Johnnes Singler:
Cuckoo Hshing Beispiel d b f e c 13 Johnnes Singler:
Cuckoo Hshing Beispiel d b f e c 13 Johnnes Singler:
Cuckoo Hshing Beispiel d b f e c 13 Johnnes Singler:
Cuckoo Hshing Beispiel neu einfügen g d b f e c 13 Johnnes Singler:
Cuckoo Hshing Beispiel d b f g c e 13 Johnnes Singler:
Cuckoo Hshing Beispiel d e f g c b 13 Johnnes Singler:
Cuckoo Hshing Beispiel d e b g c f 13 Johnnes Singler:
Cuckoo Hshing Beispiel d e b g f c 13 Johnnes Singler:
Cuckoo Hshing Beispiel c e b g f d 13 Johnnes Singler:
Cuckoo Hshing Beispiel c e b d f g 13 Johnnes Singler:
Cuckoo Hshing Beispiel 5 Knoten, 6 Knten Konflikt c e b d f g 13 Johnnes Singler:
Perfektes Hshing Wie groß ist eine Hshfunktion? bisher intuitiv: konstnte bzw. logrithmische Größe, z. B. Linerkombintion mit zwei Koeffizienten: h(x) := (x + b) mod p für perfekte Hshfunktion: Ω(n) Pltz Tbellen, Offsets, usw., keine einfche geschlossene mthemtischer Formel mehr Anwendung: Schlüsselwörter von Sprchen für Compiler, usw. Softwre-Pkete zur (Offline-)Berechnung existieren: gperf,... 14 Johnnes Singler:
Perfektes Hshing konkret: Zweistufige Hshtbelle 1 Wähle h zufällig. Berechne h(x) für lle x S. 2 Flls i B i 2 4n, wiederhole 1. 3 Konstruiere die Mengen B i. 4 Für lle B i () Wähle h i zufällig. (b) Flls h i uf B i nicht injektiv, wiederhole (). Copyright Christoph Scheideler Mn knn zeigen: erwrtet linere Lufzeit linerer Pltz für lles zusmmen (Tbelle und Funktion) (Hshfunktionen sind Linerkombintionen) geht noch deutlich pltzeffizienter dynmisch noch komplizierter 15 Johnnes Singler: