Effiziente Algorithmen und Komplexitätstheorie Vorlesung Ingo Wegener Vertretung Thomas Jansen 04.05.2006 1 Nachtrag zu Matchings 2 Nachtrag zu Matchings I kürzeste M-verbessernde Pfade und Lemma 83 2 Nachtrag zu Matchings I kürzeste M-verbessernde Pfade und Lemma 83 Lemma 83: |Pi | = |Pj | ⇒ Pi , Pj knotendisjunkt“ ” 2 Nachtrag zu Matchings I I kürzeste M-verbessernde Pfade und Lemma 83 Lemma 83: |Pi | = |Pj | ⇒ Pi , Pj knotendisjunkt“ ” Algorithmus 84, Lemma 86 und die Anzahl kürzester M-verbessernder Pfade 2 Nachtrag zu Matchings I I kürzeste M-verbessernde Pfade und Lemma 83 Lemma 83: |Pi | = |Pj | ⇒ Pi , Pj knotendisjunkt“ ” Algorithmus 84, Lemma 86 und die Anzahl kürzester M-verbessernder Pfade Algorithmus 84: Hopcroft/Karp √ Lemma 86: O( n) Iterationen bei Hopcroft/Karp 2 Nachtrag zu Matchings I I I kürzeste M-verbessernde Pfade und Lemma 83 Lemma 83: |Pi | = |Pj | ⇒ Pi , Pj knotendisjunkt“ ” Algorithmus 84, Lemma 86 und die Anzahl kürzester M-verbessernder Pfade Algorithmus 84: Hopcroft/Karp √ Lemma 86: O( n) Iterationen bei Hopcroft/Karp Q und S in Lemma 87 2 Nachtrag zu Matchings I I I kürzeste M-verbessernde Pfade und Lemma 83 Lemma 83: |Pi | = |Pj | ⇒ Pi , Pj knotendisjunkt“ ” Algorithmus 84, Lemma 86 und die Anzahl kürzester M-verbessernder Pfade Algorithmus 84: Hopcroft/Karp √ Lemma 86: O( n) Iterationen bei Hopcroft/Karp Q und S in Lemma 87 Lemma 87: Zeit O(e) für eine Runde Hopcroft/Karp 2 Nachtrag zu Matchings I I kürzeste M-verbessernde Pfade und Lemma 83 Lemma 83: |Pi | = |Pj | ⇒ Pi , Pj knotendisjunkt“ ” Algorithmus 84, Lemma 86 und die Anzahl kürzester M-verbessernder Pfade Algorithmus 84: Hopcroft/Karp √ Lemma 86: O( n) Iterationen bei Hopcroft/Karp I Q und S in Lemma 87 Lemma 87: Zeit O(e) für eine Runde Hopcroft/Karp I Knoten nur einmal vergeblich betrachten: Theorem 94 2 Kürzeste M-verbessernde Pfade und Lemma 83 Lemma 83 M0 := ∅, Pi ein kürzester Mi verbessernder Pfad, Mi+1 := Mi ⊕ Pi I |Pi | ≤ |Pi+1 | I |Pi | = |Pj | ⇒ Pi und Pj knotendisjunkt 3 Kürzeste M-verbessernde Pfade und Lemma 83 Lemma 83 M0 := ∅, Pi ein kürzester Mi verbessernder Pfad, Mi+1 := Mi ⊕ Pi I |Pi | ≤ |Pi+1 | I |Pi | = |Pj | ⇒ Pi und Pj knotendisjunkt 3 Kürzeste M-verbessernde Pfade und Lemma 83 Lemma 83 M0 := ∅, Pi ein kürzester Mi verbessernder Pfad, Mi+1 := Mi ⊕ Pi I |Pi | ≤ |Pi+1 | I |Pi | = |Pj | ⇒ Pi und Pj knotendisjunkt Gegenbeispiel? 3 Kürzeste M-verbessernde Pfade und Lemma 83 Lemma 83 M0 := ∅, Pi ein kürzester Mi verbessernder Pfad, Mi+1 := Mi ⊕ Pi I |Pi | ≤ |Pi+1 | I |Pi | = |Pj | ⇒ Pi und Pj knotendisjunkt Gegenbeispiel? √ 3 Algorithmus 84, Lemma 86 und #M-verbessernder Pfade Lemma 86 √ Algorithmus 84 macht O( n) Iterationen. Beweis. Zerlege Lauf gedanklich n zwei p Phasen: 1. Phase: |M| ≤ b|Mopt | − p|Mopt |c 2. Phase: |M| > b|Mopt | − |Mopt |c 4 Algorithmus 84, Lemma 86 und #M-verbessernder Pfade Lemma 86 √ Algorithmus 84 macht O( n) Iterationen. Beweis. Zerlege Lauf gedanklich n zwei p Phasen: 1. Phase: |M| ≤ b|Mopt | − p|Mopt |c 2. Phase: |M| > b|Mopt | − |Mopt |c Was sagen wir über die Anzahl M-verbessernder Phase je Runde in den beiden Phasen? 4 Algorithmus 84, Lemma 86 und #M-verbessernder Pfade Lemma 86 √ Algorithmus 84 macht O( n) Iterationen. Beweis. Zerlege Lauf gedanklich n zwei p Phasen: 1. Phase: |M| ≤ b|Mopt | − p|Mopt |c 2. Phase: |M| > b|Mopt | − |Mopt |c Was sagen wir über die Anzahl M-verbessernder Phase je Runde in den beiden Phasen? I Phase 2: 4 Algorithmus 84, Lemma 86 und #M-verbessernder Pfade Lemma 86 √ Algorithmus 84 macht O( n) Iterationen. Beweis. Zerlege Lauf gedanklich n zwei p Phasen: 1. Phase: |M| ≤ b|Mopt | − p|Mopt |c 2. Phase: |M| > b|Mopt | − |Mopt |c Was sagen wir über die Anzahl M-verbessernder Phase je Runde in den beiden Phasen? √ I Phase 2: ≥ 1 4 Algorithmus 84, Lemma 86 und #M-verbessernder Pfade Lemma 86 √ Algorithmus 84 macht O( n) Iterationen. Beweis. Zerlege Lauf gedanklich n zwei p Phasen: 1. Phase: |M| ≤ b|Mopt | − p|Mopt |c 2. Phase: |M| > b|Mopt | − |Mopt |c Was sagen wir über die Anzahl M-verbessernder Phase je Runde in den beiden Phasen? √ I Phase 2: ≥ 1 I Phase 1: 4 Algorithmus 84, Lemma 86 und #M-verbessernder Pfade Lemma 86 √ Algorithmus 84 macht O( n) Iterationen. Beweis. Zerlege Lauf gedanklich n zwei p Phasen: 1. Phase: |M| ≤ b|Mopt | − p|Mopt |c 2. Phase: |M| > b|Mopt | − |Mopt |c Was sagen wir über die Anzahl M-verbessernder Phase je Runde in den beiden Phasen? √ I Phase 2: ≥ 1 I Phase 1: gar nichts! 4 Algorithmus 84, Lemma 86 und #M-verbessernder Pfade Lemma 86 √ Algorithmus 84 macht O( n) Iterationen. Beweis. Zerlege Lauf gedanklich n zwei p Phasen: 1. Phase: |M| ≤ b|Mopt | − p|Mopt |c 2. Phase: |M| > b|Mopt | − |Mopt |c Was sagen wir über die Anzahl M-verbessernder Phase je Runde in den beiden Phasen? √ I Phase 2: ≥ 1 I Phase 1: gar nichts! p Aussage: In Phase 1 ist Pfadlänge O( |Mopt |). 4 Algorithmus 84, Lemma 86 und #M-verbessernder Pfade Lemma 86 √ Algorithmus 84 macht O( n) Iterationen. Beweis. Zerlege Lauf gedanklich n zwei p Phasen: 1. Phase: |M| ≤ b|Mopt | − p|Mopt |c 2. Phase: |M| > b|Mopt | − |Mopt |c Was sagen wir über die Anzahl M-verbessernder Phase je Runde in den beiden Phasen? √ I Phase 2: ≥ 1 I Phase 1: gar nichts! p Aussage: In Phase 1 ist Pfadlänge O( |Mopt |). √ Pfadlänge wächst in jeder Runde. 4 Q und S in Lemma 87 Für Zeit O(e) je Runde I richte G , I füge Q und S ein und I suche alle kürzesten disjunkten Q-S-Wege. 5 Q und S in Lemma 87 Für Zeit O(e) je Runde I richte G , I füge Q und S ein und I suche alle kürzesten disjunkten Q-S-Wege. 5 Q und S in Lemma 87 Für Zeit O(e) je Runde I richte G , I füge Q und S ein und I suche alle kürzesten disjunkten Q-S-Wege. 5 Q und S in Lemma 87 Für Zeit O(e) je Runde I richte G , I füge Q und S ein und I suche alle kürzesten disjunkten Q-S-Wege. Q S 5 Q und S in Lemma 87 Für Zeit O(e) je Runde I richte G , I füge Q und S ein und I suche alle kürzesten disjunkten Q-S-Wege. Q S 5 Q und S in Lemma 87 Für Zeit O(e) je Runde I richte G , I füge Q und S ein und I suche alle kürzesten disjunkten Q-S-Wege. Q S 5 Q und S in Lemma 87 Für Zeit O(e) je Runde I richte G , I füge Q und S ein und I suche alle kürzesten disjunkten Q-S-Wege. Q S 5 Knoten nur einmal vergeblich betrachten: Theorem 94 im Algorithmus für maximale Matchings in allgemeinen Graphen: Knoten ohne M-verbessernden Pfad nie wieder betrachtet 6 Knoten nur einmal vergeblich betrachten: Theorem 94 im Algorithmus für maximale Matchings in allgemeinen Graphen: Knoten ohne M-verbessernden Pfad nie wieder betrachtet Das spart Zeit. 6 Knoten nur einmal vergeblich betrachten: Theorem 94 im Algorithmus für maximale Matchings in allgemeinen Graphen: Knoten ohne M-verbessernden Pfad nie wieder betrachtet Das spart Zeit. Uns fehlt noch, dass das korrekt ist. 6 Knoten nur einmal vergeblich betrachten: Theorem 94 im Algorithmus für maximale Matchings in allgemeinen Graphen: Knoten ohne M-verbessernden Pfad nie wieder betrachtet Das spart Zeit. Uns fehlt noch, dass das korrekt ist. Theorem 94 Falls es in G keinen M-verbessernden Pfad von v aus gibt und M 0 = M ⊕ P ist, dann gibt es keinen M 0 -verbessernden Pfad von v aus. 6 Beweis von Theorem 94 Theorem 94 Falls es in G keinen M-verbessernden Pfad von v aus gibt und M 0 = M ⊕ P ist, dann gibt es keinen M 0 -verbessernden Pfad von v aus. 7 Beweis von Theorem 94 Theorem 94 Falls es in G keinen M-verbessernden Pfad von v aus gibt und M 0 = M ⊕ P ist, dann gibt es keinen M 0 -verbessernden Pfad von v aus. Beweis. Annahme: Q ist M 0 -verbessernder Pfad mit Start in v 7 Beweis von Theorem 94 Theorem 94 Falls es in G keinen M-verbessernden Pfad von v aus gibt und M 0 = M ⊕ P ist, dann gibt es keinen M 0 -verbessernden Pfad von v aus. Beweis. Annahme: Q ist M 0 -verbessernder Pfad mit Start in v 1. Fall: Q und P haben keinen Knoten gemeinsam. 7 Beweis von Theorem 94 Theorem 94 Falls es in G keinen M-verbessernden Pfad von v aus gibt und M 0 = M ⊕ P ist, dann gibt es keinen M 0 -verbessernden Pfad von v aus. Beweis. Annahme: Q ist M 0 -verbessernder Pfad mit Start in v 1. Fall: Q und P haben keinen Knoten gemeinsam. ⇒ Q ist M-verbessernd 7 Beweis von Theorem 94 Theorem 94 Falls es in G keinen M-verbessernden Pfad von v aus gibt und M 0 = M ⊕ P ist, dann gibt es keinen M 0 -verbessernden Pfad von v aus. Beweis. Annahme: Q ist M 0 -verbessernder Pfad mit Start in v 1. Fall: Q und P haben keinen Knoten gemeinsam. ⇒ Q ist M-verbessernd Widerspruch 7 Beweis von Theorem 94 Theorem 94 Falls es in G keinen M-verbessernden Pfad von v aus gibt und M 0 = M ⊕ P ist, dann gibt es keinen M 0 -verbessernden Pfad von v aus. Beweis. Annahme: Q ist M 0 -verbessernder Pfad mit Start in v 1. Fall: Q und P haben keinen Knoten gemeinsam. ⇒ Q ist M-verbessernd Widerspruch 2. Fall: Sei v 0 erster Knoten von Q auf P. 7 Beweis von Theorem 94 Theorem 94 Falls es in G keinen M-verbessernden Pfad von v aus gibt und M 0 = M ⊕ P ist, dann gibt es keinen M 0 -verbessernden Pfad von v aus. Beweis. Annahme: Q ist M 0 -verbessernder Pfad mit Start in v 1. Fall: Q und P haben keinen Knoten gemeinsam. ⇒ Q ist M-verbessernd Widerspruch 2. Fall: Sei v 0 erster Knoten von Q auf P. P : x |{z} v 0 |{z} y Q : v |{z} v 0 |{z} z P1 P2 Q1 Q2 7 Beweis von Theorem 94 Theorem 94 Falls es in G keinen M-verbessernden Pfad von v aus gibt und M 0 = M ⊕ P ist, dann gibt es keinen M 0 -verbessernden Pfad von v aus. Beweis. Annahme: Q ist M 0 -verbessernder Pfad mit Start in v 1. Fall: Q und P haben keinen Knoten gemeinsam. ⇒ Q ist M-verbessernd Widerspruch 2. Fall: Sei v 0 erster Knoten von Q auf P. P : x |{z} v 0 |{z} y Q : v |{z} v 0 |{z} z P1 P2 Q1 Q2 Entweder v |{z} v 0 |{z} x oder v |{z} v 0 |{z} y P1 P1R Q1 P2 ist M-verbessernd. 7 Beweis von Theorem 94 Theorem 94 Falls es in G keinen M-verbessernden Pfad von v aus gibt und M 0 = M ⊕ P ist, dann gibt es keinen M 0 -verbessernden Pfad von v aus. Beweis. Annahme: Q ist M 0 -verbessernder Pfad mit Start in v 1. Fall: Q und P haben keinen Knoten gemeinsam. ⇒ Q ist M-verbessernd Widerspruch 2. Fall: Sei v 0 erster Knoten von Q auf P. P : x |{z} v 0 |{z} y Q : v |{z} v 0 |{z} z P1 P2 Q1 Q2 Entweder v |{z} v 0 |{z} x oder v |{z} v 0 |{z} y P1 P1R Q1 P2 ist M-verbessernd. Widerspruch 7 Randomisierte Algorithmen 8 Randomisierte Algorithmen Schlechte Nachricht I Randomisierung hat mit Zufall und Wahrscheinlichkeit zu tun 8 Randomisierte Algorithmen Schlechte Nachrichten I I Randomisierung hat mit Zufall und Wahrscheinlichkeit zu tun vorausgesetzt werden die Begriffe I Wahrscheinlichkeitsraum 8 Randomisierte Algorithmen Schlechte Nachrichten I I Randomisierung hat mit Zufall und Wahrscheinlichkeit zu tun vorausgesetzt werden die Begriffe I I Wahrscheinlichkeitsraum Ereignis 8 Randomisierte Algorithmen Schlechte Nachrichten I I Randomisierung hat mit Zufall und Wahrscheinlichkeit zu tun vorausgesetzt werden die Begriffe I I I Wahrscheinlichkeitsraum Ereignis Zufallsvariable 8 Randomisierte Algorithmen Schlechte Nachrichten I I Randomisierung hat mit Zufall und Wahrscheinlichkeit zu tun vorausgesetzt werden die Begriffe I I I I Wahrscheinlichkeitsraum Ereignis Zufallsvariable Erwartungswert 8 Randomisierte Algorithmen Schlechte Nachrichten I I Randomisierung hat mit Zufall und Wahrscheinlichkeit zu tun vorausgesetzt werden die Begriffe I I I I Wahrscheinlichkeitsraum Ereignis Zufallsvariable Erwartungswert Gute Nachricht I Wahrscheinlichkeitsräume sind hier diskret 8 Randomisierte Algorithmen Schlechte Nachrichten I I Randomisierung hat mit Zufall und Wahrscheinlichkeit zu tun vorausgesetzt werden die Begriffe I I I I Wahrscheinlichkeitsraum Ereignis Zufallsvariable Erwartungswert Gute Nachrichten I Wahrscheinlichkeitsräume sind hier diskret I Zufallsvariablen sind hier nicht negativ 8 Erinnerung an GTI/TIfAI (deterministischer Algorithmus A, Eingabe I ) Berechnung von A auf I 9 Erinnerung an GTI/TIfAI (deterministischer Algorithmus A, Eingabe I ) Berechnung von A auf I Laufzeit T = Länge der Berechnung 9 Erinnerung an GTI/TIfAI (deterministischer Algorithmus A, Eingabe I ) Berechnung von A auf I Laufzeit T = Länge der Berechnung (randomisierter Algorithmus A, Eingabe I ) Baum möglicher Berechnungen von A auf I 9 Erinnerung an GTI/TIfAI (deterministischer Algorithmus A, Eingabe I ) Berechnung von A auf I Laufzeit T = Länge der Berechnung (randomisierter Algorithmus A, Eingabe I ) Baum möglicher Berechnungen von A auf I erwartete Laufzeit X E (T ) = Prob (v wird erreicht) · Rechenzeit Pfad bis v Blatt v 9 Erinnerung an GTI/TIfAI (deterministischer Algorithmus A, Eingabe I ) Berechnung von A auf I Laufzeit T = Länge der Berechnung (randomisierter Algorithmus A, Eingabe I ) Baum möglicher Berechnungen von A auf I erwartete Laufzeit X E (T ) = Prob (v wird erreicht) · Rechenzeit Pfad bis v Blatt v = X Prob (v wird erreicht) · Rechenzeit in v Knoten v 9 Ein winziges Beispiel Algorithmus (Eingabe p ∈]0; 1[) 1. Mit W’keit p, setze z := 0, sonst z := 1. 2. Falls z = 0, weiter bei 1. 10 Ein winziges Beispiel Algorithmus (Eingabe p ∈]0; 1[) 1. Mit W’keit p, setze z := 0, sonst z := 1. 2. Falls z = 0, weiter bei 1. Baum p 1−p p p p 1−p 1−p 1−p .. . 10 Ein winziges Beispiel Algorithmus (Eingabe p ∈]0; 1[) 1. Mit W’keit p, setze z := 0, sonst z := 1. 2. Falls z = 0, weiter bei 1. Baum p 1−p p p p 1−p 1−p E (T ) = 1−p .. . 10 Ein winziges Beispiel Algorithmus (Eingabe p ∈]0; 1[) 1. Mit W’keit p, setze z := 0, sonst z := 1. 2. Falls z = 0, weiter bei 1. Baum p 1−p p p p 1−p 1−p E (T ) = 1 · 1 1−p .. . 10 Ein winziges Beispiel Algorithmus (Eingabe p ∈]0; 1[) 1. Mit W’keit p, setze z := 0, sonst z := 1. 2. Falls z = 0, weiter bei 1. Baum p 1−p p p p 1−p 1−p E (T ) = 1 · 1 +p · 1 + (1 − p) · 1 1−p .. . 10 Ein winziges Beispiel Algorithmus (Eingabe p ∈]0; 1[) 1. Mit W’keit p, setze z := 0, sonst z := 1. 2. Falls z = 0, weiter bei 1. Baum p 1−p p p p 1−p 1−p 1−p E (T ) = 1 · 1 +p · 1 + (1 − p) · 1 +p 2 · 1 + p · (1 − p) · 1 .. . 10 Ein winziges Beispiel Algorithmus (Eingabe p ∈]0; 1[) 1. Mit W’keit p, setze z := 0, sonst z := 1. 2. Falls z = 0, weiter bei 1. Baum p 1−p p p p 1−p 1−p 1−p E (T ) = 1 · 1 +p · 1 + (1 − p) · 1 +p 2 · 1 + p · (1 − p) · 1 +p 3 · 1 + p 2 · (1 − p) · 1 .. . 10 Ein winziges Beispiel Algorithmus (Eingabe p ∈]0; 1[) 1. Mit W’keit p, setze z := 0, sonst z := 1. 2. Falls z = 0, weiter bei 1. Baum p 1−p p p p .. . 1−p 1−p 1−p E (T ) = 1 · 1 +p · 1 + (1 − p) · 1 +p 2 · 1 + p · (1 − p) · 1 +p 3 · 1 + p 2 · (1 − p) · 1 +p 4 · 1 + p 3 · (1 − p) · 1 10 Ein winziges Beispiel Algorithmus (Eingabe p ∈]0; 1[) 1. Mit W’keit p, setze z := 0, sonst z := 1. 2. Falls z = 0, weiter bei 1. Baum p 1−p p 1−p E (T ) = 1 · 1 +p · 1 + (1 − p) · 1 2 · 1 + p · (1 − p) · 1 +p p 1−p +p 3 · 1 + p 2 · (1 − p) · 1 +p 4 · 1 + p 3 · (1 − p) · 1 ∞ .. X . E (T ) = 1 + p t + p t−1 · (1 − p) p 1−p t=1 10 Ein winziges Beispiel Algorithmus (Eingabe p ∈]0; 1[) 1. Mit W’keit p, setze z := 0, sonst z := 1. 2. Falls z = 0, weiter bei 1. Baum p 1−p p 1−p E (T ) = 1 · 1 +p · 1 + (1 − p) · 1 2 · 1 + p · (1 − p) · 1 +p p 1−p +p 3 · 1 + p 2 · (1 − p) · 1 +p 4 · 1 + p 3 · (1 − p) · 1 ∞ ∞ .. X X . p t−1 E (T ) = 1 + p t + p t−1 · (1 − p) = 1 + p 1−p t=1 t=1 10 Ein winziges Beispiel Algorithmus (Eingabe p ∈]0; 1[) 1. Mit W’keit p, setze z := 0, sonst z := 1. 2. Falls z = 0, weiter bei 1. Baum p 1−p p 1−p E (T ) = 1 · 1 +p · 1 + (1 − p) · 1 2 · 1 + p · (1 − p) · 1 +p p 1−p +p 3 · 1 + p 2 · (1 − p) · 1 +p 4 · 1 + p 3 · (1 − p) · 1 ∞ ∞ .. X X . p t−1 E (T ) = 1 + p t + p t−1 · (1 − p) = 1 + p 1−p t=1 t=1 = 1+ ∞ X t=0 pt 10 Ein winziges Beispiel Algorithmus (Eingabe p ∈]0; 1[) 1. Mit W’keit p, setze z := 0, sonst z := 1. 2. Falls z = 0, weiter bei 1. Baum p 1−p p 1−p E (T ) = 1 · 1 +p · 1 + (1 − p) · 1 2 · 1 + p · (1 − p) · 1 +p p 1−p +p 3 · 1 + p 2 · (1 − p) · 1 +p 4 · 1 + p 3 · (1 − p) · 1 ∞ ∞ .. X X . p t−1 E (T ) = 1 + p t + p t−1 · (1 − p) = 1 + p 1−p t=1 t=1 = 1+ ∞ X t=0 pt = 1 + 1 1−p 10 Ein anderes winziges Beispiel Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. 11 Ein anderes winziges Beispiel Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus A 1. 2. 3. 4. 5. 6. 7. Für i ∈ {1, . . . , 49} setze a[i] := 0 Für i ∈ {1, . . . , 6} Wiederhole Wähle z ∈ {1, . . . , 49} zufällig gemäß Gleichverteilung. Bis a[z] = 0 a[z] := 1 Ausgabe alle i mit a[i] = 1 11 Ein anderes winziges Beispiel Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus A 1. 2. 3. 4. 5. 6. 7. Für i ∈ {1, . . . , 49} setze a[i] := 0 Für i ∈ {1, . . . , 6} Wiederhole Wähle z ∈ {1, . . . , 49} zufällig gemäß Gleichverteilung. Bis a[z] = 0 a[z] := 1 Ausgabe alle i mit a[i] = 1 Wie oft wird Zeile 4 im Erwartungswert ausgeführt? 11 Ein anderes winziges Beispiel Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus A 1. 2. 3. 4. 5. 6. 7. Für i ∈ {1, . . . , 49} setze a[i] := 0 Für i ∈ {1, . . . , 6} Wiederhole Wähle z ∈ {1, . . . , 49} zufällig gemäß Gleichverteilung. Bis a[z] = 0 a[z] := 1 Ausgabe alle i mit a[i] = 1 Wie oft wird Zeile 4 im Erwartungswert ausgeführt? 6 P i=1 11 Ein anderes winziges Beispiel Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus A 1. 2. 3. 4. 5. 6. 7. Für i ∈ {1, . . . , 49} setze a[i] := 0 Für i ∈ {1, . . . , 6} Wiederhole Wähle z ∈ {1, . . . , 49} zufällig gemäß Gleichverteilung. Bis a[z] = 0 a[z] := 1 Ausgabe alle i mit a[i] = 1 Wie oft wird Zeile 4 im Erwartungswert ausgeführt? 6 P 1 i=1 1− 11 Ein anderes winziges Beispiel Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus A 1. 2. 3. 4. 5. 6. 7. Für i ∈ {1, . . . , 49} setze a[i] := 0 Für i ∈ {1, . . . , 6} Wiederhole Wähle z ∈ {1, . . . , 49} zufällig gemäß Gleichverteilung. Bis a[z] = 0 a[z] := 1 Ausgabe alle i mit a[i] = 1 Wie oft wird Zeile 4 im Erwartungswert ausgeführt? 6 P 1 i=1 1−(i−1)/49 11 Ein anderes winziges Beispiel Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus A 1. 2. 3. 4. 5. 6. 7. Für i ∈ {1, . . . , 49} setze a[i] := 0 Für i ∈ {1, . . . , 6} Wiederhole Wähle z ∈ {1, . . . , 49} zufällig gemäß Gleichverteilung. Bis a[z] = 0 a[z] := 1 Ausgabe alle i mit a[i] = 1 Wie oft wird Zeile 4 im Erwartungswert ausgeführt? 6 P 1 49 49 49 49 49 1−(i−1)/49 = 1 + 48 + 47 + 46 + 45 + 44 i=1 11 Ein anderes winziges Beispiel Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus A 1. 2. 3. 4. 5. 6. 7. Für i ∈ {1, . . . , 49} setze a[i] := 0 Für i ∈ {1, . . . , 6} Wiederhole Wähle z ∈ {1, . . . , 49} zufällig gemäß Gleichverteilung. Bis a[z] = 0 a[z] := 1 Ausgabe alle i mit a[i] = 1 Wie oft wird Zeile 4 im Erwartungswert ausgeführt? 6 P 1 49 49 49 49 49 1−(i−1)/49 = 1 + 48 + 47 + 46 + 45 + 44 < 6,332 i=1 11 Ein anderes winziges Beispiel (Fortsetzung) Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. 12 Ein anderes winziges Beispiel (Fortsetzung) Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus B 1. Für i ∈ {1, . . . , 49} setze a[i] := i 2. Für i ∈ {1, . . . , 6} 3. Wähle z ∈ {i, . . . , 49} zufällig gemäß Gleichverteilung. 4. Vertausche a[i] und a[z]. 5. Ausgabe alle a[1], . . . , a[6] 12 Ein anderes winziges Beispiel (Fortsetzung) Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus B 1. Für i ∈ {1, . . . , 49} setze a[i] := i 2. Für i ∈ {1, . . . , 6} 3. Wähle z ∈ {i, . . . , 49} zufällig gemäß Gleichverteilung. 4. Vertausche a[i] und a[z]. 5. Ausgabe alle a[1], . . . , a[6] Beobachtung feste Laufzeit 12 Ein anderes winziges Beispiel (Fortsetzung (2)) Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. 13 Ein anderes winziges Beispiel (Fortsetzung (2)) Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus C 1. n := 49, k := 6, i := 1 2. Wiederhole 3. Mit Wahrscheinlichkeit k/n 4. Gib i aus. 5. k := k − 1 6. i := i + 1; n := n − 1 7. Bis i = 50 oder k = 0 13 Ein anderes winziges Beispiel (Fortsetzung (2)) Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus C 1. n := 49, k := 6, i := 1 2. Wiederhole 3. Mit Wahrscheinlichkeit k/n 4. Gib i aus. 5. k := k − 1 6. i := i + 1; n := n − 1 7. Bis i = 50 oder k = 0 Wie oft wird im Erwartungswert Zeile 3 ausgeführt? 13 Ein anderes winziges Beispiel (Fortsetzung (2)) Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus C 1. n := 49, k := 6, i := 1 2. Wiederhole 3. Mit Wahrscheinlichkeit k/n 4. Gib i aus. 5. k := k − 1 6. i := i + 1; n := n − 1 7. Bis i = 50 oder k = 0 Wie oft wird im Erwartungswert Zeile 3 ausgeführt? ∞ X E (Z ) = i · Prob (Z = i) i=0 13 Ein anderes winziges Beispiel (Fortsetzung (2)) Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus C 1. n := 49, k := 6, i := 1 2. Wiederhole 3. Mit Wahrscheinlichkeit k/n 4. Gib i aus. 5. k := k − 1 6. i := i + 1; n := n − 1 7. Bis i = 50 oder k = 0 Wie oft wird im Erwartungswert Zeile 3 ausgeführt? ∞ 49 X X E (Z ) = i · Prob (Z = i) = i · Prob (max = i) i=0 i=6 13 Ein anderes winziges Beispiel (Fortsetzung (2)) Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus C 1. n := 49, k := 6, i := 1 2. Wiederhole 3. Mit Wahrscheinlichkeit k/n 4. Gib i aus. 5. k := k − 1 6. i := i + 1; n := n − 1 7. Bis i = 50 oder k = 0 Wie oft wird im Erwartungswert Zeile 3 ausgeführt? ∞ 49 X X E (Z ) = i · Prob (Z = i) = i · Prob (max = i) = i=0 49 X i=6 i=6 i−1 5 49 6 i· 13 Ein anderes winziges Beispiel (Fortsetzung (2)) Aufgabe Wähle zufällig gemäß Gleichverteilung sechs verschiedene Zahlen aus {1, 2, . . . , 49}. Algorithmus C 1. n := 49, k := 6, i := 1 2. Wiederhole 3. Mit Wahrscheinlichkeit k/n 4. Gib i aus. 5. k := k − 1 6. i := i + 1; n := n − 1 7. Bis i = 50 oder k = 0 Wie oft wird im Erwartungswert Zeile 3 ausgeführt? ∞ 49 X X E (Z ) = i · Prob (Z = i) = i · Prob (max = i) = i=0 49 X i=6 i=6 i−1 5 49 6 i· = 300 < 42,86 7 13 MAXSAT 14 MAXSAT Begriffe I Variable x1 , . . . , xn I Literale xi , xi I Klausel cj = Disjunktion von Literalen (z. B. cj = x2 ∨ x7 ∨ x3 ) 14 MAXSAT Begriffe I Variable x1 , . . . , xn I Literale xi , xi I Klausel cj = Disjunktion von Literalen (z. B. cj = x2 ∨ x7 ∨ x3 ) I Belegung a ∈ {0, 1}n I Klausel cj erfüllt durch a ⇔ cj (a) = 1 14 MAXSAT Begriffe I Variable x1 , . . . , xn I Literale xi , xi I Klausel cj = Disjunktion von Literalen (z. B. cj = x2 ∨ x7 ∨ x3 ) I Belegung a ∈ {0, 1}n I Klausel cj erfüllt durch a ⇔ cj (a) = 1 I Klausel reduziert ⇔ ∀i ∈ {1, . . . n} : ≤ 1 Literal zu xi I Eingabe reduziert ⇔ alle Klauseln reduziert 14 MAXSAT Begriffe I Variable x1 , . . . , xn I Literale xi , xi I Klausel cj = Disjunktion von Literalen (z. B. cj = x2 ∨ x7 ∨ x3 ) I Belegung a ∈ {0, 1}n I Klausel cj erfüllt durch a ⇔ cj (a) = 1 I Klausel reduziert ⇔ ∀i ∈ {1, . . . n} : ≤ 1 Literal zu xi I Eingabe reduziert ⇔ alle Klauseln reduziert Problem MAXSAT Eingabe Ausgabe reduzierte Klauseln c1 , · · · cm über x1 , . . . , xn Belegung a ∈ {0, 1}n : |{cj | cj (a) = 1}| maximal 14 MAXSAT Begriffe I Variable x1 , . . . , xn I Literale xi , xi I Klausel cj = Disjunktion von Literalen (z. B. cj = x2 ∨ x7 ∨ x3 ) I Belegung a ∈ {0, 1}n I Klausel cj erfüllt durch a ⇔ cj (a) = 1 I Klausel reduziert ⇔ ∀i ∈ {1, . . . n} : ≤ 1 Literal zu xi I Eingabe reduziert ⇔ alle Klauseln reduziert Problem MAXSAT Eingabe Ausgabe reduzierte Klauseln c1 , · · · cm über x1 , . . . , xn Belegung a ∈ {0, 1}n : |{cj | cj (a) = 1}| maximal Problem MAX-k-SAT wie MAXSAT mit genau k Literalen in jeder Klausel 14 MAXSAT Begriffe I Variable x1 , . . . , xn I Literale xi , xi I Klausel cj = Disjunktion von Literalen (z. B. cj = x2 ∨ x7 ∨ x3 ) I Belegung a ∈ {0, 1}n I Klausel cj erfüllt durch a ⇔ cj (a) = 1 I Klausel reduziert ⇔ ∀i ∈ {1, . . . n} : ≤ 1 Literal zu xi I Eingabe reduziert ⇔ alle Klauseln reduziert Problem MAXSAT Eingabe Ausgabe reduzierte Klauseln c1 , · · · cm über x1 , . . . , xn Belegung a ∈ {0, 1}n : |{cj | cj (a) = 1}| maximal Problem MAX-k-SAT wie MAXSAT mit genau k Literalen in jeder Klausel bekannt I MAXSAT NP-schwierig I MAX-k-SAT NP-schwierig für jedes k > 1 14 MAX-k-SAT randomisiert approximieren 15 MAX-k-SAT randomisiert approximieren Algorithmus 95 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2 setze ai := 1 sonst setze ai := 0 15 MAX-k-SAT randomisiert approximieren Algorithmus 95 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2 setze ai := 1 sonst setze ai := 0 Theorem 96 Algorithmus 95 hat Laufzeit O(n) und erfüllt im Erwartungswert 1 − 21k · m Klauseln. 15 MAX-k-SAT randomisiert approximieren Algorithmus 95 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2 setze ai := 1 sonst setze ai := 0 Theorem 96 Algorithmus 95 hat Laufzeit O(n) und erfüllt im Erwartungswert 1 − 21k · m Klauseln. Beweis. Definiere ZV X = Anzahl erfüllter Klauseln. 15 MAX-k-SAT randomisiert approximieren Algorithmus 95 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2 setze ai := 1 sonst setze ai := 0 Theorem 96 Algorithmus 95 hat Laufzeit O(n) und erfüllt im Erwartungswert 1 − 21k · m Klauseln. Beweis. Definiere ZV X = Anzahl erfüllter Klauseln. ( 1 ci erfüllt, Definiere ZX Xi := 0 sonst. 15 MAX-k-SAT randomisiert approximieren Algorithmus 95 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2 setze ai := 1 sonst setze ai := 0 Theorem 96 Algorithmus 95 hat Laufzeit O(n) und erfüllt im Erwartungswert 1 − 21k · m Klauseln. Beweis. Definiere ZV X = Anzahl erfüllter Klauseln. ( 1 ci erfüllt, Definiere ZX Xi := 0 sonst. klar X = m P Xi i=1 15 MAX-k-SAT randomisiert approximieren Algorithmus 95 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2 setze ai := 1 sonst setze ai := 0 Theorem 96 Algorithmus 95 hat Laufzeit O(n) und erfüllt im Erwartungswert 1 − 21k · m Klauseln. Beweis. Definiere ZV X = Anzahl erfüllter Klauseln. ( 1 ci erfüllt, Definiere ZX Xi := 0 sonst. m m P P klar X = Xi also E (X ) = E Xi i=1 i=1 15 MAX-k-SAT randomisiert approximieren Algorithmus 95 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2 setze ai := 1 sonst setze ai := 0 Theorem 96 Algorithmus 95 hat Laufzeit O(n) und erfüllt im Erwartungswert 1 − 21k · m Klauseln. Beweis. Definiere ZV X = Anzahl erfüllter Klauseln. ( 1 ci erfüllt, Definiere ZX Xi := 0 sonst. m m m P P P klar X = Xi also E (X ) = E Xi = E (Xi ) i=1 i=1 i=1 15 MAX-k-SAT randomisiert approximieren Algorithmus 95 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2 setze ai := 1 sonst setze ai := 0 Theorem 96 Algorithmus 95 hat Laufzeit O(n) und erfüllt im Erwartungswert 1 − 21k · m Klauseln. Beweis. Definiere ZV X = Anzahl erfüllter Klauseln. ( 1 ci erfüllt, Definiere ZX Xi := 0 sonst. m m m P P P klar X = Xi also E (X ) = E Xi = E (Xi ) i=1 i=1 i=1 E (Xi ) = 15 MAX-k-SAT randomisiert approximieren Algorithmus 95 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2 setze ai := 1 sonst setze ai := 0 Theorem 96 Algorithmus 95 hat Laufzeit O(n) und erfüllt im Erwartungswert 1 − 21k · m Klauseln. Beweis. Definiere ZV X = Anzahl erfüllter Klauseln. ( 1 ci erfüllt, Definiere ZX Xi := 0 sonst. m m m P P P klar X = Xi also E (X ) = E Xi = E (Xi ) i=1 i=1 i=1 E (Xi ) = Prob (Xi = 1) 15 MAX-k-SAT randomisiert approximieren Algorithmus 95 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2 setze ai := 1 sonst setze ai := 0 Theorem 96 Algorithmus 95 hat Laufzeit O(n) und erfüllt im Erwartungswert 1 − 21k · m Klauseln. Beweis. Definiere ZV X = Anzahl erfüllter Klauseln. ( 1 ci erfüllt, Definiere ZX Xi := 0 sonst. m m m P P P klar X = Xi also E (X ) = E Xi = E (Xi ) i=1 i=1 i=1 E (Xi ) = Prob (Xi = 1) = 1 − Prob (ci nicht erfüllt) 15 MAX-k-SAT randomisiert approximieren Algorithmus 95 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2 setze ai := 1 sonst setze ai := 0 Theorem 96 Algorithmus 95 hat Laufzeit O(n) und erfüllt im Erwartungswert 1 − 21k · m Klauseln. Beweis. Definiere ZV X = Anzahl erfüllter Klauseln. ( 1 ci erfüllt, Definiere ZX Xi := 0 sonst. m m m P P P klar X = Xi also E (X ) = E Xi = E (Xi ) i=1 i=1 i=1 E (Xi ) = Prob (Xi = 1) = 1 − Prob (ci nicht erfüllt) = 1 − 1 k 2 15 Derandomisierung Derandomisierung bezeichnet die systematische Überführung eines randomisierten Algorithmus in einem deterministischen Algorithmus. 16 Derandomisierung Derandomisierung bezeichnet die systematische Überführung eines randomisierten Algorithmus in einem deterministischen Algorithmus. zur Derandomisierung von Algorithmus 95 16 Derandomisierung Derandomisierung bezeichnet die systematische Überführung eines randomisierten Algorithmus in einem deterministischen Algorithmus. zur Derandomisierung von Algorithmus 95 I pi := Prob (xi = 1) 16 Derandomisierung Derandomisierung bezeichnet die systematische Überführung eines randomisierten Algorithmus in einem deterministischen Algorithmus. zur Derandomisierung von Algorithmus 95 I pi := Prob (xi = 1) I Ij+ := {i | xi kommt in cj vor} I Ij− := {i | xi kommt in cj vor} 16 Derandomisierung Derandomisierung bezeichnet die systematische Überführung eines randomisierten Algorithmus in einem deterministischen Algorithmus. zur Derandomisierung von Algorithmus 95 I pi := Prob (xi = 1) I Ij+ := {i | xi kommt in cj vor} I Ij− := {i | xi kommt in cj vor} I Cj (p1 , . . . , pn ) := E (Xj ) = 16 Derandomisierung Derandomisierung bezeichnet die systematische Überführung eines randomisierten Algorithmus in einem deterministischen Algorithmus. zur Derandomisierung von Algorithmus 95 I pi := Prob (xi = 1) I Ij+ := {i | xi kommt in cj vor} I Ij− := {i | xi kommt in cj vor} I Cj (p1 , . . . , pn ) := E (Xj ) = 1 − Q i∈I + (1 − pi ) · Q pi i∈I − 16 Derandomisierung Derandomisierung bezeichnet die systematische Überführung eines randomisierten Algorithmus in einem deterministischen Algorithmus. zur Derandomisierung von Algorithmus 95 I pi := Prob (xi = 1) I Ij+ := {i | xi kommt in cj vor} I Ij− := {i | xi kommt in cj vor} I Cj (p1 , . . . , pn ) := E (Xj ) = 1 − Q (1 − pi ) · i∈I + I C (p1 , . . . , pn ) := E (X ) = m P Q pi i∈I − Cj (p1 , . . . , pn ) j=1 16 Derandomisierung Derandomisierung bezeichnet die systematische Überführung eines randomisierten Algorithmus in einem deterministischen Algorithmus. zur Derandomisierung von Algorithmus 95 I pi := Prob (xi = 1) I Ij+ := {i | xi kommt in cj vor} I Ij− := {i | xi kommt in cj vor} I Cj (p1 , . . . , pn ) := E (Xj ) = 1 − Q (1 − pi ) · i∈I + I C (p1 , . . . , pn ) := E (X ) = m P Q pi i∈I − Cj (p1 , . . . , pn ) j=1 Beobachtung Cj ist linear in jeder Variablen pi 16 Derandomisierung Derandomisierung bezeichnet die systematische Überführung eines randomisierten Algorithmus in einem deterministischen Algorithmus. zur Derandomisierung von Algorithmus 95 I pi := Prob (xi = 1) I Ij+ := {i | xi kommt in cj vor} I Ij− := {i | xi kommt in cj vor} I Cj (p1 , . . . , pn ) := E (Xj ) = 1 − Q (1 − pi ) · i∈I + I C (p1 , . . . , pn ) := E (X ) = m P Q pi i∈I − Cj (p1 , . . . , pn ) j=1 Beobachtung Cj ist linear in jeder Variablen pi C ist linear in jeder Variablen pi 16 Algorithmus 95 derandomisiert Extrema linearer Funktionen sind an Rändern des Definitionsbereichs. 17 Algorithmus 95 derandomisiert Extrema linearer Funktionen sind an Rändern des Definitionsbereichs. p1 , . . . , pi −1 , pi +1 , . . . , pn fest C (p1 , . . . , pi −1 , x, pi +1 , pn ) = m · x + b 17 Algorithmus 95 derandomisiert Extrema linearer Funktionen sind an Rändern des Definitionsbereichs. p1 , . . . , pi −1 , pi +1 , . . . , pn fest C (p1 , . . . , pi −1 , x, pi +1 , pn ) = m · x + b m>0 17 Algorithmus 95 derandomisiert Extrema linearer Funktionen sind an Rändern des Definitionsbereichs. p1 , . . . , pi −1 , pi +1 , . . . , pn fest C (p1 , . . . , pi −1 , x, pi +1 , pn ) = m · x + b m>0 m<0 17 Algorithmus 95 derandomisiert Extrema linearer Funktionen sind an Rändern des Definitionsbereichs. p1 , . . . , pi −1 , pi +1 , . . . , pn fest C (p1 , . . . , pi −1 , x, pi +1 , pn ) = m · x + b m>0 Algorithmus 97 m<0 1. Für i ∈ {1, . . . , n} setze pi := 1/2. 2. Für i ∈ {1, . . . , n} 3. Falls C (p1 , . . . , pi−1 , 1, pi+1 , . . . , pn ) > C (p1 , . . . , pi−1 , 0, pi+1 , . . . , pn ) Dann pi := 1 Sonst pi := 0. 4. Für i ∈ {1, . . . , n} setze ai := pi 17 Analyse von Algorithmus 97 Theorem 98 Algorithmus 97 berechnet auf einer MAX-k-SAT-Eingabe aus m Klauseln über n Variablen in Zeit O(n(m + k)) eine Belegung, die mindestens 1 − 2−k · m Klauseln erfüllt. 18 Analyse von Algorithmus 97 Theorem 98 Algorithmus 97 berechnet auf einer MAX-k-SAT-Eingabe aus m Klauseln über n Variablen in Zeit O(n(m + k)) eine Belegung, die mindestens 1 − 2−k · m Klauseln erfüllt. Beweis. bekannt C 1 1 1 2, 2, . . . , 2 = 1− 1 2k ·m 18 Analyse von Algorithmus 97 Theorem 98 Algorithmus 97 berechnet auf einer MAX-k-SAT-Eingabe aus m Klauseln über n Variablen in Zeit O(n(m + k)) eine Belegung, die mindestens 1 − 2−k · m Klauseln erfüllt. Beweis. bekannt C 1 1 1 2, 2, . . . , 2 = 1− 1 2k also anfangs C (p1 , . . . , pn ) = 1 − 2 ·m −k ·m 18 Analyse von Algorithmus 97 Theorem 98 Algorithmus 97 berechnet auf einer MAX-k-SAT-Eingabe aus m Klauseln über n Variablen in Zeit O(n(m + k)) eine Belegung, die mindestens 1 − 2−k · m Klauseln erfüllt. Beweis. bekannt C 1 1 1 2, 2, . . . , 2 = 1− 1 2k also anfangs C (p1 , . . . , pn ) = 1 − 2 ·m −k ·m später C (p1 , . . . , pn ) ≥ 1 − 2−k · m mit p1 , . . . , pj ∈ {0, 1}, pj+1 , . . . , pn = 1/2 18 Analyse von Algorithmus 97 Theorem 98 Algorithmus 97 berechnet auf einer MAX-k-SAT-Eingabe aus m Klauseln über n Variablen in Zeit O(n(m + k)) eine Belegung, die mindestens 1 − 2−k · m Klauseln erfüllt. Beweis. bekannt C 1 1 1 2, 2, . . . , 2 = 1− 1 2k also anfangs C (p1 , . . . , pn ) = 1 − 2 ·m −k ·m später C (p1 , . . . , pn ) ≥ 1 − 2−k · m mit p1 , . . . , pj ∈ {0, 1}, pj+1 , . . . , pn = 1/2 von linearen Funktionen bekannt max {C (p1 , . . . , pj , 0, pj+2 , . . . , pn ), C (p1 , . . . , pj , 1, pj+2 , . . . , pn )} ≥ C (p1 , . . . , pn ) 18 Analyse von Algorithmus 97 Theorem 98 Algorithmus 97 berechnet auf einer MAX-k-SAT-Eingabe aus m Klauseln über n Variablen in Zeit O(n(m + k)) eine Belegung, die mindestens 1 − 2−k · m Klauseln erfüllt. Beweis. bekannt C 1 1 1 2, 2, . . . , 2 = 1− 1 2k also anfangs C (p1 , . . . , pn ) = 1 − 2 ·m −k ·m später C (p1 , . . . , pn ) ≥ 1 − 2−k · m mit p1 , . . . , pj ∈ {0, 1}, pj+1 , . . . , pn = 1/2 von linearen Funktionen bekannt max {C (p1 , . . . , pj , 0, pj+2 , . . . , pn ), C (p1 , . . . , pj , 1, pj+2 , . . . , pn )} ≥ C (p1 , . . . , pn ) also C (p1 , . . . , pn ) ≥ 1 − 2−k · m bleibt wahr für j + 1 18 Analyse von Algorithmus 97 Theorem 98 Algorithmus 97 berechnet auf einer MAX-k-SAT-Eingabe aus m Klauseln über n Variablen in Zeit O(n(m + k)) eine Belegung, die mindestens 1 − 2−k · m Klauseln erfüllt. Beweis. bekannt C 1 1 1 2, 2, . . . , 2 = 1− 1 2k also anfangs C (p1 , . . . , pn ) = 1 − 2 ·m −k ·m später C (p1 , . . . , pn ) ≥ 1 − 2−k · m mit p1 , . . . , pj ∈ {0, 1}, pj+1 , . . . , pn = 1/2 von linearen Funktionen bekannt max {C (p1 , . . . , pj , 0, pj+2 , . . . , pn ), C (p1 , . . . , pj , 1, pj+2 , . . . , pn )} ≥ C (p1 , . . . , pn ) also C (p1 , . . . , pn ) ≥ 1 − 2−k · m bleibt wahr für j + 1 Laufzeit n Runden, jeweils konstanter Aufwand in m Klauseln, Initialisierung O(nk + nm) 18 MAXSAT als ganzzahliges lineares Programm m P j=1 unter P yi + xi kommt Pin c1 vor yi + xi kommt in c2 vor P xi kommt Pin c1 vor (1 − yi ) ≥ z1 (1 − yi ) ≥ z2 xi kommt in c2 vor yi + xi kommt in cm vor zj → max P .. . P (1 − yi ) ≥ zm xi kommt in cm vor y1 , . . . , yn , z1 , . . . , zm ∈ {0, 1} 19 MAXSAT als ganzzahliges lineares Programm m P j=1 P unter yi + xi kommt Pin c1 vor yi + xi kommt in c2 vor P xi kommt Pin c1 vor (1 − yi ) ≥ z1 (1 − yi ) ≥ z2 xi kommt in c2 vor yi + xi kommt in cm vor zj → max P .. . P (1 − yi ) ≥ zm xi kommt in cm vor y1 , . . . , yn , z1 , . . . , zm ∈ {0, 1} c1 c Beispiel 2 c3 c4 = x1 ∨ x 2 = x2 ∨ x 1 = x1 ∨ x 2 = x1 ∨ x 2 19 MAXSAT als ganzzahliges lineares Programm m P j=1 P unter yi + xi kommt Pin c1 vor yi + xi kommt in c2 vor P zj → max P xi kommt Pin c1 vor (1 − yi ) ≥ z2 xi kommt in c2 vor .. . P yi + xi kommt in cm vor (1 − yi ) ≥ z1 (1 − yi ) ≥ zm xi kommt in cm vor y1 , . . . , yn , z1 , . . . , zm ∈ {0, 1} c1 c Beispiel 2 c3 c4 = x1 ∨ x 2 = x2 ∨ x 1 = x1 ∨ x 2 = x1 ∨ x 2 unter z1 + z2 + z3 + z4 → max y1 + (1 − y2 ) ≥ z1 y2 + (1 − y1 ) ≥ z2 (1 − y1 ) + y2 ≥ z3 y1 + y2 ≥ z4 y1 , y2 , z1 , . . . , z4 ∈ {0, 1} 19 Relaxierung klar MAXSAT NP-schwierig also auch ganzzahlige lineare Optimierung NP-schwierig 20 Relaxierung klar MAXSAT NP-schwierig also auch ganzzahlige lineare Optimierung NP-schwierig Relaxierung m P j=1 unter P yi + xi kommt Pin c1 vor yi + xi kommt in c2 vor P xi kommt Pin c1 vor (1 − yi ) ≥ z1 (1 − yi ) ≥ z2 xi kommt in c2 vor yi + xi kommt in cm vor zj → max P .. . P (1 − yi ) ≥ zm xi kommt in cm vor y1 , . . . , yn , z1 , . . . , zm ∈ [0, 1] 20 Relaxierung klar MAXSAT NP-schwierig also auch ganzzahlige lineare Optimierung NP-schwierig Relaxierung m P j=1 unter P xi kommt Pin c1 vor yi + yi + xi kommt in c2 vor P xi kommt in cm vor zj → max P xi kommt Pin c1 vor (1 − yi ) ≥ z1 (1 − yi ) ≥ z2 xi kommt in c2 vor yi + .. . P (1 − yi ) ≥ zm xi kommt in cm vor y1 , . . . , yn , z1 , . . . , zm ∈ [0, 1] gut lösbar mit dem Simplex-Algorithmus (und garantiert in Polynomialzeit mit anderen Algorithmen) 20 Randomisiertes Runden Sei ŷ1 , . . . , ŷn , ẑ1 , . . . , ẑm optimale Lösung des linearen Programms. 21 Randomisiertes Runden Sei ŷ1 , . . . , ŷn , ẑ1 , . . . , ẑm optimale Lösung des linearen Programms. Was nützt uns z. B. ŷ1 = 0.97? 21 Randomisiertes Runden Sei ŷ1 , . . . , ŷn , ẑ1 , . . . , ẑm optimale Lösung des linearen Programms. Was nützt uns z. B. ŷ1 = 0.97? Intuition x1 = 1 ist dann wahrscheinlich eine gute Idee. 21 Randomisiertes Runden Sei ŷ1 , . . . , ŷn , ẑ1 , . . . , ẑm optimale Lösung des linearen Programms. Was nützt uns z. B. ŷ1 = 0.97? Intuition x1 = 1 ist dann wahrscheinlich eine gute Idee. Algorithmus Randomisiertes Runden 1. Für i ∈ {1, . . . , n} 2. Mit W’keit ŷi setze xi := 1, sonst setze xi := 0. 21 Randomisiertes Runden Sei ŷ1 , . . . , ŷn , ẑ1 , . . . , ẑm optimale Lösung des linearen Programms. Was nützt uns z. B. ŷ1 = 0.97? Intuition x1 = 1 ist dann wahrscheinlich eine gute Idee. Algorithmus Randomisiertes Runden 1. Für i ∈ {1, . . . , n} 2. Mit W’keit ŷi setze xi := 1, sonst setze xi := 0. Lemma 99 Eine Klausel cj mit k Literalen wird durch Randomisiertes Runden mit Wahrscheinlichkeit mindestens ! 1 k 1− 1− · ẑj k erfüllt. 21 Zwei technische Hilfsaussagen 22 Zwei technische Hilfsaussagen Lemma Für a1 , . . . , ak ≥ 0 gilt k Y i=1 k P k ai i=1 ai ≤ . k 22 Zwei technische Hilfsaussagen Lemma Für a1 , . . . , ak ≥ 0 gilt k Y i=1 k k P ai i=1 ai ≤ . k Lemma Für x ∈ [0, 1] gilt für alle k ∈ N x k ≥ 1− 1− k 1 1− 1− k k ! · x. 22 Beweis von Lemma 99 23 Beweis von Lemma 99 Beweis. o. B. d. A. cj = x1 ∨ x2 ∨ · · · ∨ xk 23 Beweis von Lemma 99 Beweis. o. B. d. A. cj = x1 ∨ x2 ∨ · · · ∨ xk Prob (cj nicht erfüllt) = 23 Beweis von Lemma 99 Beweis. o. B. d. A. cj = x1 ∨ x2 ∨ · · · ∨ xk k Q (1 − ŷi ) Prob (cj nicht erfüllt) = i=1 23 Beweis von Lemma 99 Beweis. o. B. d. A. cj = x1 ∨ x2 ∨ · · · ∨ xk k Q (1 − ŷi ) Prob (cj nicht erfüllt) = i=1 Prob (cj erfüllt) = 23 Beweis von Lemma 99 Beweis. o. B. d. A. cj = x1 ∨ x2 ∨ · · · ∨ xk k Q (1 − ŷi ) Prob (cj nicht erfüllt) = i=1 Prob (cj erfüllt) = 1 − k Q (1 − ŷi ) i=1 23 Beweis von Lemma 99 Beweis. o. B. d. A. cj = x1 ∨ x2 ∨ · · · ∨ xk k Q (1 − ŷi ) Prob (cj nicht erfüllt) = i=1 Prob (cj erfüllt) = 1 − k Q (1 − ŷi ) i=1 k P ŷi ≥ ẑj aus linearem Programm i=1 23 Beweis von Lemma 99 Beweis. o. B. d. A. cj = x1 ∨ x2 ∨ · · · ∨ xk k Q (1 − ŷi ) Prob (cj nicht erfüllt) = i=1 Prob (cj erfüllt) = 1 − k Q (1 − ŷi ) i=1 k P i=1 ŷi ≥ ẑj aus linearem Programm also k P (1 − ŷi ) ≤ k − ẑj i=1 23 Beweis von Lemma 99 Beweis. o. B. d. A. cj = x1 ∨ x2 ∨ · · · ∨ xk k Q (1 − ŷi ) Prob (cj nicht erfüllt) = i=1 k Q Prob (cj erfüllt) = 1 − (1 − ŷi ) i=1 k P ŷi ≥ ẑj aus linearem Programm i=1 weil k Q i=1 P (1−ŷ ) k also k P (1 − ŷi ) ≤ k − ẑj i=1 k i (1 − ŷi ) ≤ i=1 k , k P i=1 (1 − ŷi ) ≤ 1 − ẑj k k 23 Beweis von Lemma 99 Beweis. o. B. d. A. cj = x1 ∨ x2 ∨ · · · ∨ xk k Q (1 − ŷi ) Prob (cj nicht erfüllt) = i=1 k Q Prob (cj erfüllt) = 1 − (1 − ŷi ) i=1 k P ŷi ≥ ẑj aus linearem Programm i=1 weil k Q P (1−ŷ ) k i also 1 − k Q i=1 k P (1 − ŷi ) ≤ k − ẑj i=1 k (1 − ŷi ) ≤ i=1 i=1 also , k k P (1 − ŷi ) ≤ 1 − i=1 (1 − ŷi ) ≥ 1 − 1 − ẑj k ẑj k k k 23 Beweis von Lemma 99 Beweis. o. B. d. A. cj = x1 ∨ x2 ∨ · · · ∨ xk k Q (1 − ŷi ) Prob (cj nicht erfüllt) = i=1 k Q Prob (cj erfüllt) = 1 − (1 − ŷi ) i=1 k P ŷi ≥ ẑj aus linearem Programm i=1 weil k Q P (1−ŷ ) k i also 1 − k Q k P (1 − ŷi ) ≤ k − ẑj i=1 k (1 − ŷi ) ≤ i=1 i=1 also , k (1 − ŷi ) ≤ 1 − i=1 (1 − ŷi ) ≥ 1 − 1 − i=1 Anmerkung 1 − 1 − k P 1 k k ẑj k k ≥1− 1− ẑj k 1 k k k · ẑj ≥ 1 − e −1 > 0,632 23 Performanz von Randomisiertem Runden Theorem 100 Randomisiertes Runden erfüllt im Erwartungswert mindestens (1 − e −1 ) · OPT Klauseln in einer Instanz, in der gleichzeitig maximal OPT Klauseln erfüllbar sind. 24 Performanz von Randomisiertem Runden Theorem 100 Randomisiertes Runden erfüllt im Erwartungswert mindestens (1 − e −1 ) · OPT Klauseln in einer Instanz, in der gleichzeitig maximal OPT Klauseln erfüllbar sind. Beweis. E (#erfüllte Klauseln) = 24 Performanz von Randomisiertem Runden Theorem 100 Randomisiertes Runden erfüllt im Erwartungswert mindestens (1 − e −1 ) · OPT Klauseln in einer Instanz, in der gleichzeitig maximal OPT Klauseln erfüllbar sind. Beweis. E (#erfüllte Klauseln) = m P Prob (cj erfüllt) j=1 24 Performanz von Randomisiertem Runden Theorem 100 Randomisiertes Runden erfüllt im Erwartungswert mindestens (1 − e −1 ) · OPT Klauseln in einer Instanz, in der gleichzeitig maximal OPT Klauseln erfüllbar sind. Beweis. E (#erfüllte Klauseln) = m P Prob (cj erfüllt) j=1 ≥ m P j=1 1− 1− 1 k k · ẑj 24 Performanz von Randomisiertem Runden Theorem 100 Randomisiertes Runden erfüllt im Erwartungswert mindestens (1 − e −1 ) · OPT Klauseln in einer Instanz, in der gleichzeitig maximal OPT Klauseln erfüllbar sind. Beweis. E (#erfüllte Klauseln) = m P Prob (cj erfüllt) j=1 ≥ m P j=1 1− 1− 1 k k · ẑj ≥ 1 − 1 e m P · ẑj j=1 24 Performanz von Randomisiertem Runden Theorem 100 Randomisiertes Runden erfüllt im Erwartungswert mindestens (1 − e −1 ) · OPT Klauseln in einer Instanz, in der gleichzeitig maximal OPT Klauseln erfüllbar sind. Beweis. E (#erfüllte Klauseln) = m P Prob (cj erfüllt) j=1 ≥ m P 1− 1− j=1 Beobachtung 1 k k m P · ẑj ≥ 1 − 1 e m P · ẑj j=1 ẑj ≥ OPT j=1 24 Performanz von Randomisiertem Runden Theorem 100 Randomisiertes Runden erfüllt im Erwartungswert mindestens (1 − e −1 ) · OPT Klauseln in einer Instanz, in der gleichzeitig maximal OPT Klauseln erfüllbar sind. Beweis. E (#erfüllte Klauseln) = m P Prob (cj erfüllt) j=1 ≥ m P 1− 1− j=1 Beobachtung 1 k k m P · ẑj ≥ 1 − 1 e m P · ẑj j=1 ẑj ≥ OPT j=1 Anmerkung Algorithmus 95 ist Randomisiertes Runden mit yi = 1/2. 24 Mischen“ von Algorithmen ” 25 Mischen“ von Algorithmen ” Algorithmus MIX 1. Berechne Belegung a mit Algorithmus 95. 2. Berechne Belegung a0 mit Randomisiertem Runden. 3. Gib die Belegung aus, die mehr Klauseln erfüllt. 25 Mischen“ von Algorithmen ” Algorithmus MIX 1. Berechne Belegung a mit Algorithmus 95. 2. Berechne Belegung a0 mit Randomisiertem Runden. 3. Gib die Belegung aus, die mehr Klauseln erfüllt. Theorem 101 Algorithmus MIX erfüllt im Erwartungswert mindestens (3/4) · OPT Klauseln in einer Instanz, in der gleichzeitig maximal OPT Klauseln erfüllbar sind. 25 Beweis von Theorem 101 Wir wissen Prob (Algorithmus 95 erfüllt cj ) =1 − 2−kj Prob (Rand. Runden erfüllt cj ) ≥ 1 − 1 − 1 kj kj · ẑj 26 Beweis von Theorem 101 Wir wissen Prob (Algorithmus 95 erfüllt cj ) =1 − 2−kj Prob (Rand. Runden erfüllt cj ) ≥ 1 − 1 − k 1 2 3 4 5 1 − 2−k 0,5 0,75 0,875 0,938 0,969 1 kj kj · ẑj 1 − (1 − 1/k)k 1,0 0,75 0,704 0,684 0,672 26 Beweis von Theorem 101 Wir wissen Prob (Algorithmus 95 erfüllt cj ) =1 − 2−kj Prob (Rand. Runden erfüllt cj ) ≥ 1 − 1 − k 1 2 3 4 5 1 − 2−k 0,5 0,75 0,875 0,938 0,969 1 kj kj · ẑj 1 − (1 − 1/k)k 1,0 0,75 0,704 0,684 0,672 Sieht doch ganz gut aus. . . 26 Beweis von Theorem 101 Wir wissen Prob (Algorithmus 95 erfüllt cj ) =1 − 2−kj Prob (Rand. Runden erfüllt cj ) ≥ 1 − 1 − k 1 2 3 4 5 1 − 2−k 0,5 0,75 0,875 0,938 0,969 1 kj kj · ẑj 1 − (1 − 1/k)k 1,0 0,75 0,704 0,684 0,672 Sieht doch ganz gut aus. . . Wie können wir das beweisen? 26 Beweis von Theorem 101 (Fortsetzung) n1 := #von Algo. 95 erfüllte Klauseln n2 := #von Rand. Runden erfüllte Klauseln 27 Beweis von Theorem 101 (Fortsetzung) n1 := #von Algo. 95 erfüllte Klauseln n2 := #von Rand. Runden erfüllte Klauseln Wir wissen 1 − 2−k · OPT E (n2 ) ≥ 1 − (1 − 1/k)k · OPT E (n1 ) ≥ 27 Beweis von Theorem 101 (Fortsetzung) n1 := #von Algo. 95 erfüllte Klauseln n2 := #von Rand. Runden erfüllte Klauseln Wir wissen 1 − 2−k · OPT E (n2 ) ≥ 1 − (1 − 1/k)k · OPT E (n1 ) ≥ klar Algorithmus MIX erfüllt max{n1 , n2 } Klauseln 27 Beweis von Theorem 101 (Fortsetzung) n1 := #von Algo. 95 erfüllte Klauseln n2 := #von Rand. Runden erfüllte Klauseln Wir wissen 1 − 2−k · OPT E (n2 ) ≥ 1 − (1 − 1/k)k · OPT E (n1 ) ≥ klar Algorithmus MIX erfüllt max{n1 , n2 } Klauseln zu zeigen E (max{n1 , n2 }) ≥ (3/4)OPT 27 Beweis von Theorem 101 (Fortsetzung (2)) zu zeigen E (max{n1 , n2 }) ≥ (3/4)OPT 28 Beweis von Theorem 101 (Fortsetzung (2)) zu zeigen E (max{n1 , n2 }) ≥ (3/4)OPT 2 klar max{n1 , n2 } ≥ n1 +n 2 2 und E n1 +n vermutlich leichter abzuschätzen 2 28 Beweis von Theorem 101 (Fortsetzung (2)) zu zeigen E (max{n1 , n2 }) ≥ (3/4)OPT 2 klar max{n1 , n2 } ≥ n1 +n 2 2 und E n1 +n vermutlich leichter abzuschätzen 2 E (n1 + n2 ) = E (n1 ) + E (n2 ) 28 Beweis von Theorem 101 (Fortsetzung (2)) zu zeigen E (max{n1 , n2 }) ≥ (3/4)OPT 2 klar max{n1 , n2 } ≥ n1 +n 2 2 und E n1 +n vermutlich leichter abzuschätzen 2 E (n1 + n2 ) = E (n1 ) + E (n2 ) !! 1 1 k ≥ 1− k + 1− 1− · OPT k 2 28 Beweis von Theorem 101 (Fortsetzung (2)) zu zeigen E (max{n1 , n2 }) ≥ (3/4)OPT 2 klar max{n1 , n2 } ≥ n1 +n 2 2 und E n1 +n vermutlich leichter abzuschätzen 2 E (n1 + n2 ) = E (n1 ) + E (n2 ) !! 1 1 k ≥ 1− k + 1− 1− · OPT k 2 ≥ 3 · OPT (siehe Tabelle) 2 28 Beweis von Theorem 101 (Fortsetzung (2)) zu zeigen E (max{n1 , n2 }) ≥ (3/4)OPT 2 klar max{n1 , n2 } ≥ n1 +n 2 2 und E n1 +n vermutlich leichter abzuschätzen 2 E (n1 + n2 ) = E (n1 ) + E (n2 ) !! 1 1 k ≥ 1− k + 1− 1− · OPT k 2 ≥ 3 · OPT (siehe Tabelle) 2 also E (max{n1 , n2 }) ≥ E n1 +n2 2 ≥ 3 4 · OPT 28 MaxCut Problem MaxCut Eingabe Ausgabe ungerichteter Graph G = (V , E ) ˙ 2 = V , so dass Partionierung V1 ∪V Anzahl Kanten zwischen V1 und V2 maximal 29 MaxCut Problem MaxCut Eingabe Ausgabe ungerichteter Graph G = (V , E ) ˙ 2 = V , so dass Partionierung V1 ∪V Anzahl Kanten zwischen V1 und V2 maximal Bemerkung MaxCut ist NP-schwierig (anders als MinCut) 29 MaxCut Problem MaxCut Eingabe Ausgabe ungerichteter Graph G = (V , E ) ˙ 2 = V , so dass Partionierung V1 ∪V Anzahl Kanten zwischen V1 und V2 maximal Bemerkung MaxCut ist NP-schwierig (anders als MinCut) bekannt MaxCut hat eine 1,14-Approximation (Goemans, Williamson (1994)) MaxCut hat keine 1,06-Approximation, wenn P6=NP (Håstad (1996)) 29 Sehr einfacher MaxCut-Algorithmus Algorithmus 102 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2, setze xi := 1, sonst xi := 0. 3. V1 := {vi ∈ V | xi = 1}; V2 := {vi ∈ V | xi = 0} 30 Sehr einfacher MaxCut-Algorithmus Algorithmus 102 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2, setze xi := 1, sonst xi := 0. 3. V1 := {vi ∈ V | xi = 1}; V2 := {vi ∈ V | xi = 0} Theorem 103 Algorithmus 102 berechnet in Zeit O(n) eine Zerlegung, die im Erwartungswert |E |/2 Kanten schneidet. 30 Sehr einfacher MaxCut-Algorithmus Algorithmus 102 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2, setze xi := 1, sonst xi := 0. 3. V1 := {vi ∈ V | xi = 1}; V2 := {vi ∈ V | xi = 0} Theorem 103 Algorithmus 102 berechnet in Zeit O(n) eine Zerlegung, die im Erwartungswert |E |/2 Kanten schneidet. ( Beweis. 1 e geschnitten Definiere ZV X := #geschnittene Kanten, Xe := 0 sonst P E (X ) = E (Xe ) e∈E 30 Sehr einfacher MaxCut-Algorithmus Algorithmus 102 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2, setze xi := 1, sonst xi := 0. 3. V1 := {vi ∈ V | xi = 1}; V2 := {vi ∈ V | xi = 0} Theorem 103 Algorithmus 102 berechnet in Zeit O(n) eine Zerlegung, die im Erwartungswert |E |/2 Kanten schneidet. ( Beweis. 1 e geschnitten Definiere ZV X := #geschnittene Kanten, Xe := 0 sonst P P Prob (Xe = 1) E (X ) = E (Xe ) = e∈E e∈E 30 Sehr einfacher MaxCut-Algorithmus Algorithmus 102 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2, setze xi := 1, sonst xi := 0. 3. V1 := {vi ∈ V | xi = 1}; V2 := {vi ∈ V | xi = 0} Theorem 103 Algorithmus 102 berechnet in Zeit O(n) eine Zerlegung, die im Erwartungswert |E |/2 Kanten schneidet. ( Beweis. 1 e geschnitten Definiere ZV X := #geschnittene Kanten, Xe := 0 sonst P P Prob (Xe = 1) = |E | · Prob (Xe = 1) E (X ) = E (Xe ) = e∈E e∈E 30 Sehr einfacher MaxCut-Algorithmus Algorithmus 102 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2, setze xi := 1, sonst xi := 0. 3. V1 := {vi ∈ V | xi = 1}; V2 := {vi ∈ V | xi = 0} Theorem 103 Algorithmus 102 berechnet in Zeit O(n) eine Zerlegung, die im Erwartungswert |E |/2 Kanten schneidet. ( Beweis. 1 e geschnitten Definiere ZV X := #geschnittene Kanten, Xe := 0 sonst P P Prob (Xe = 1) = |E | · Prob (Xe = 1) E (X ) = E (Xe ) = e∈E e∈E Prob Xe={u,v } = 1 = Prob ((u ∈ V1 ∧ v ∈ V2 ) ∨ (u ∈ V2 ∧ v ∈ V1 )) 30 Sehr einfacher MaxCut-Algorithmus Algorithmus 102 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2, setze xi := 1, sonst xi := 0. 3. V1 := {vi ∈ V | xi = 1}; V2 := {vi ∈ V | xi = 0} Theorem 103 Algorithmus 102 berechnet in Zeit O(n) eine Zerlegung, die im Erwartungswert |E |/2 Kanten schneidet. ( Beweis. 1 e geschnitten Definiere ZV X := #geschnittene Kanten, Xe := 0 sonst P P Prob (Xe = 1) = |E | · Prob (Xe = 1) E (X ) = E (Xe ) = e∈E e∈E Prob Xe={u,v } = 1 = Prob ((u ∈ V1 ∧ v ∈ V2 ) ∨ (u ∈ V2 ∧ v ∈ V1 )) = Prob (u ∈ V1 ∧ v ∈ V2 ) + Prob (u ∈ V2 ∧ v ∈ V1 ) 30 Sehr einfacher MaxCut-Algorithmus Algorithmus 102 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2, setze xi := 1, sonst xi := 0. 3. V1 := {vi ∈ V | xi = 1}; V2 := {vi ∈ V | xi = 0} Theorem 103 Algorithmus 102 berechnet in Zeit O(n) eine Zerlegung, die im Erwartungswert |E |/2 Kanten schneidet. ( Beweis. 1 e geschnitten Definiere ZV X := #geschnittene Kanten, Xe := 0 sonst P P Prob (Xe = 1) = |E | · Prob (Xe = 1) E (X ) = E (Xe ) = e∈E e∈E Prob Xe={u,v } = 1 = Prob ((u ∈ V1 ∧ v ∈ V2 ) ∨ (u ∈ V2 ∧ v ∈ V1 )) = Prob (u ∈ V1 ∧ v ∈ V2 ) + Prob (u ∈ V2 ∧ v ∈ V1 ) = Prob (u ∈ V1 ) · Prob (v ∈ V2 ) + Prob (u ∈ V2 ) · Prob (v ∈ V1 ) 30 Sehr einfacher MaxCut-Algorithmus Algorithmus 102 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2, setze xi := 1, sonst xi := 0. 3. V1 := {vi ∈ V | xi = 1}; V2 := {vi ∈ V | xi = 0} Theorem 103 Algorithmus 102 berechnet in Zeit O(n) eine Zerlegung, die im Erwartungswert |E |/2 Kanten schneidet. ( Beweis. 1 e geschnitten Definiere ZV X := #geschnittene Kanten, Xe := 0 sonst P P Prob (Xe = 1) = |E | · Prob (Xe = 1) E (X ) = E (Xe ) = e∈E e∈E Prob Xe={u,v } = 1 = Prob ((u ∈ V1 ∧ v ∈ V2 ) ∨ (u ∈ V2 ∧ v ∈ V1 )) = Prob (u ∈ V1 ∧ v ∈ V2 ) + Prob (u ∈ V2 ∧ v ∈ V1 ) = Prob (u ∈ V1 ) · Prob (v ∈ V2 ) + Prob (u ∈ V2 ) · Prob (v ∈ V1 ) 1 1 1 1 = · + · 2 2 2 2 30 Sehr einfacher MaxCut-Algorithmus Algorithmus 102 1. Für i ∈ {1, . . . , n} 2. Mit W’keit 1/2, setze xi := 1, sonst xi := 0. 3. V1 := {vi ∈ V | xi = 1}; V2 := {vi ∈ V | xi = 0} Theorem 103 Algorithmus 102 berechnet in Zeit O(n) eine Zerlegung, die im Erwartungswert |E |/2 Kanten schneidet. ( Beweis. 1 e geschnitten Definiere ZV X := #geschnittene Kanten, Xe := 0 sonst P P Prob (Xe = 1) = |E | · Prob (Xe = 1) E (X ) = E (Xe ) = e∈E e∈E Prob Xe={u,v } = 1 = Prob ((u ∈ V1 ∧ v ∈ V2 ) ∨ (u ∈ V2 ∧ v ∈ V1 )) = Prob (u ∈ V1 ∧ v ∈ V2 ) + Prob (u ∈ V2 ∧ v ∈ V1 ) = Prob (u ∈ V1 ) · Prob (v ∈ V2 ) + Prob (u ∈ V2 ) · Prob (v ∈ V1 ) 1 1 1 1 1 = · + · = 2 2 2 2 2 30 MinCut kennen wir schon von Flüssen her. . . 31 MinCut kennen wir schon von Flüssen her. . . Problem MinCut Eingabe Ausgabe ungerichteter, gewichteter Graph G = (V , E , w ) mit w : E → N ˙ 2 = V , V1 6= ∅, V2 6= ∅ Partition V1 ∪V P mit mincut(G ) = w (e) minimal {u, v } ∈ E mit u ∈ V1 und v ∈ V2 31 MinCut kennen wir schon von Flüssen her. . . Problem MinCut Eingabe Ausgabe ungerichteter, gewichteter Graph G = (V , E , w ) mit w : E → N ˙ 2 = V , V1 6= ∅, V2 6= ∅ Partition V1 ∪V P mit mincut(G ) = w (e) minimal {u, v } ∈ E mit u ∈ V1 und v ∈ V2 Notation für E 0 ⊆ E ist w (E 0 ) = P w (e) e∈E 0 31 MinCut kennen wir schon von Flüssen her. . . Problem MinCut Eingabe Ausgabe ungerichteter, gewichteter Graph G = (V , E , w ) mit w : E → N ˙ 2 = V , V1 6= ∅, V2 6= ∅ Partition V1 ∪V P mit mincut(G ) = w (e) minimal {u, v } ∈ E mit u ∈ V1 und v ∈ V2 Notation für E 0 ⊆ E ist w (E 0 ) = P w (e) e∈E 0 elementare Operation Kontraktion 31 MinCut kennen wir schon von Flüssen her. . . Problem MinCut Eingabe Ausgabe ungerichteter, gewichteter Graph G = (V , E , w ) mit w : E → N ˙ 2 = V , V1 6= ∅, V2 6= ∅ Partition V1 ∪V P mit mincut(G ) = w (e) minimal {u, v } ∈ E mit u ∈ V1 und v ∈ V2 Notation für E 0 ⊆ E ist w (E 0 ) = P w (e) e∈E 0 elementare Operation Kontraktion Idee Kontraktion verschmilzt zwei Knoten und erhält dabei Kanten so weit wie möglich 31