Übung Algorithmen I 27.4.16 Lisa Kohl [email protected] Teile-und-Herrsche-Paradigma 1. Teile das Problem 2. Beherrsche die Teilprobleme 3. Verbinde die Teillösungen Problem direkt lösbare Probleme Karatsuba-Ofman, Beispiel 1242 · 3163 3982446 12 · 31 372 1·3= 3 2·1= 2 3 · 4 = 12 42 · 63 2646 12 · 31 = 372 42 · 63 = 2646 54 · 94 = 5076 4 · 6 = 24 2·3= 6 6 · 9 = 54 54 · 94 5 · 9 = 45 4 · 4 = 16 5076 9 · 13 = 117 9 · 13 117 0·1= 0 9 · 3 = 27 9 · 4 = 36 Karatsuba-Ofman, Laufzeit I I n ∈ N Länge der Eingabe ( 1 T (n) ≤ 3 · T (dn/2e) + 10n falls n = 1 falls n > 1 Rekurrenz/Rekursionsgleichung Laufzeit im O-Kalkül? Mastertheorem, einfache Form a, b, c, d positive Konstanten und n ∈ N ( a für n = 1 T (n) = d · T (dn/be) + cn für n > 1 Es gilt Θ(n) T (n) ∈ Θ(n log n) Θ nlogb d I falls d < b falls d = b falls d > b . Karatsuba-Ofman: T (n) ∈ Θ nlog2 3 Abschätzung von Rekurrenzen ( 1 T (n) = 2T (dn/3e) + n + log n falls n = 1 falls n > 1 Master-Theorem anwendbar? ( 1 T1 (n) = 2T1 (dn/3e) + n falls n = 1 ⇒ T1 (n) ∈ Θ(n) falls n > 1 ( 1 falls n = 1 T2 (n) = ⇒ T2 (n) ∈ Θ(n) 2T2 (dn/3e) + 2n falls n > 1 ∀n ∈ N : T1 (n) ≤ T (n) ≤ T2 (n) ⇒ T (n) ∈ Θ(n) Abschätzung von Rekurrenzen ( 1 T (n) = 8T (dn/2e) + n2 falls n = 1 falls n > 1 Master-Theorem anwendbar? Nicht in einfacher Form! I finde/rate untere/obere Schranken I beweise Richtigkeit durch vollständige Induktion I im Beispiel: ∀k ∈ N0 , n = 2k : n 3 ≤ T (n) ≤ 2n 3 − n 2 Bisektion von Bäumen ⇒ I I Problem: Zerlege Baum in ähnlich große Teilbäume Anwendung: Teile-und-Herrsche-Algorithmen auf Graphen Bisektion von Bäumen I I Gegeben: binärer Baum mit n Knoten Problem: entferne eine Kante, sodass die entstandenen Teilbäume Größe ≤ 3/4 · n haben 20 16 3 4 11 3 3 1 1 1 1 1 7 3 3 1111 1 Bisektion von Bäumen Geht es noch besser? Nein!