Vorlesung Ingo Wegener Vertretung Thomas Jansen 04.05.2006

Werbung
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
Herunterladen