1 / 61

Methoden des Algorithmenentwurfs Kapitel 1.6: Randomisierte Approximationsalgorithmen

Methoden des Algorithmenentwurfs Kapitel 1.6: Randomisierte Approximationsalgorithmen. Christian Scheideler SS 2009. Übersicht. Notation Die probabilistische Methode Randomisiertes Runden Der hybride Ansatz Semidefinite Optimierung Derandomisierung. Notation.

aliya
Download Presentation

Methoden des Algorithmenentwurfs Kapitel 1.6: Randomisierte Approximationsalgorithmen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Methoden des AlgorithmenentwurfsKapitel 1.6: Randomisierte Approximationsalgorithmen Christian Scheideler SS 2009 Kapitel 1

  2. Übersicht • Notation • Die probabilistische Methode • Randomisiertes Runden • Der hybride Ansatz • Semidefinite Optimierung • Derandomisierung Kapitel 1

  3. Notation 6.1 Definition: Betrachte ein beliebiges Zufallsexperiment mit abzählbarenElementarereignissenW={w1,w2,w3,…}. • Ereignis: beliebige Teilmenge von W • Ereignis A ist wahr für den Ausgang wW gilt wA • Sei Pr:W[0,1] die Wahrscheinlichkeits-verteilung über den Elementarereignissen des Zufallsexperiments. Dann gilt für jedes Ereignis AW, dass Pr[A]= SwAPr[w]. Kapitel 1

  4. Notation • Statt als Mengen werden Ereignisse auch oft als Prädikate verwendet. • D.h. Pr[A  B] ist identisch zu Pr[A  B] und Pr[A  B] ist identisch zu Pr[A  B]. • Die Wahrscheinlichkeit, dass B wahr ist unter der Voraussetzung, dass A wahr ist, ist definiert alsPr[B | A] = Pr[A  B] / Pr[A] • Daraus folgt, dassPr[A  B] = Pr[A]Pr[B | A] = Pr[B]Pr[A | B]und damit die Bayesche RegelPr[ A | B] = Pr[A]Pr[B | A] / Pr[B] Kapitel 1

  5. Notation Zwei Ereignisse A und B sind • (stoch.) unabhängig, falls Pr[B | A] = Pr[B], • negativ korreliert, falls Pr[B | A] < Pr[B] und • positiv korreliert, falls Pr[B | A] > Pr[B]. Diese Eigenschaften sind nach der Bayeschen Regel symmetrisch. • Für unabhängige Ereignisse gilt also Pr[A  B] = Pr[A]  Pr[B]. Kapitel 1

  6. Notation 6.2 Definition: Eine Funktion X:WIR heißt Zufallsvariable. Für den Fall X:W{0,1} nennen wir X auch binäre Zufallsvariable oder Indikatorvariable. Zur Vereinfachung schreiben wir • Pr[X=x] statt Pr[ {wW : X(w)=x} ] • Pr[Xx] statt Pr[ {wW : X(w)x} ] • Pr[Xx] statt Pr[ {wW : X(w)x} ] Kapitel 1

  7. Notation 6.3 Definition: Der Erwartungswert einer Zufallsvariablen X:WIR ist definiert alsE[X] = SwW X(w)Pr[w]. • Damit ist auchE[X] = SxX(W) xPr[X=x]. • Für den Spezialfall X:WIN istE[X] = SxINPr[Xx]und für eine Indikatorvariable X istE[X] = Pr[X=1]. Kapitel 1

  8. Notation Eigenschaften des Erwartungswerts: • X ist nichtnegativ: E[X]0 • |E[X]|  E[|X|] • E[cX] = cE[X] für alle Konstanten c • E[X+Y] = E[X] + E[Y] für alle ZVenX und Y, auch bekannt als Linearität des Erwartungs-werts • Sind die Zufallsvariablen X und Y unabhängig (d.h. Pr[X=x | Y=y] = Pr[X=x] für alle x,y), dann gilt auch E[XY] = E[X]  E[Y] Kapitel 1

  9. Notation 6.4 Satz (Markov Ungleichung):Für jede Zufallsvariable X:WIR+ und jedes k>1 giltPr[X  kE[X]]  1/k Beweis: • Es gilt:E[X] = SxX(W) xPr[X=x]  kE[X]Pr[XkE[X]] Kapitel 1

  10. Notation Ein randomisierter Algorithmus ist ein Algorithmus, der abhängig von Zufallsexperimenten arbeitet. • Monte-Carlo-Algorithmus (MC=meistens korrekt): kann abhängig vom Zufallsexperiment auch fehlerhafte Ausgaben liefern. • Las-Vegas-Algorithmus (LV=Laufzeit variabel): ist immer korrekt, aber Laufzeit hängt vom Zufallsexperiment ab Randomisierter Approximationsalgorithmus A: Wert A(I) der Ausgabe I ist eine Zufallsvariable. Kapitel 1

  11. Notation 6.5 Definition: Sei P ein Optimierungsproblem und A ein randomisierter Approximationsalgorithmus für P. • A hat bei Eingabe I eine erwartete relative Güte vonrA(I) = max{ E[A(I)]/OPT(I), OPT(I)/E[A(I)] }Für ein Minimierungsproblem ist der erste Term dominant und für ein Maximierungsproblem der zweite. • Die erwartete relative worst-case Güte von A istrAwc(n) = max { rA(I) | ID, |I|  n} • Sei rA:IN  IN eine Funktion. A hat eine erwartete relative Güte von rA(n) falls für alle n gilt: rAwc(n)  rA(n). Kapitel 1

  12. Übersicht • Notation • Die probabilistische Methode • Randomisiertes Runden • Der hybride Ansatz • Semidefinite Optimierung • Derandomisierung Kapitel 1

  13. Die Probabilistische Methode Max-SAT Problem: Für eine gegebene Formel f in KNF, finde eine Belegung für ihre Booleschen Variablen, die die Anzahl der erfüllten Klauseln maximiert. • Für eine Formel f über der Variablenmenge V ist jede Belegung b:V{false, true} eine zulässige Lösung • Der Boolesche Wahrheitswert für Literale, Klauseln und Formeln ergibt sich kanonisch. • Die Bewertungsfunktion für f=C1C2…Cmistwahr(b,f) = |{j{1,…,m}: b(Cj) = true}| Kapitel 1

  14. Die Probabilistische Methode Die folgende Tatsache ist einfach zu zeigen: 6.6 Fakt: Sei eine Boolesche Formel in KNF mit m Klauseln. Dann istmax{wahr((false,…,false),f),wahr((true,…,true),f)}m/2 • D.h. es gilt immer OPT(f)  m/2. • Weiterhin gibt es damit einen einfachen Algorithmus (überprüfe zwei Belegungen), der eine relative Güte von höchstens 2 hat. • Einen besseren Approximationsalgorithmus erhalten wir über die probabilistische Methode. Kapitel 1

  15. Die Probabilistische Methode Sei f eine beliebige Formel über Variablen-menge V={x1,…,xn}. Algorithmus Afori:=1 ton do mit Wahrscheinlichkeit ½: xi:=true mit Wahrscheinlichkeit ½: xi:=falsegib bA=(x1,…,xn) aus Wir nehmen hier an, dass die xi-Werte unabhängig voneinander erwürfelt werden. Kapitel 1

  16. Die Probabilistische Methode 6.7 Lemma: Sei kjdie Anzahl der Literale in Cj. Es gilt:Pr[Cj wird durch AlgoA erfüllt]= 1-1/2kj Beweis: • Pr[Literall in Cj ist false] = ½ • Pr[alle kjLiterale in Cj sind false] = 1/2kj(da Variablen unabhängig gewählt werden) • Also ist die Wahrscheinlichkeit, dass minde-stens ein Literal in Cj wahr ist, 1-1/2kj. Kapitel 1

  17. Die Probabilistische Methode 6.8 Satz: Für jede KNF-Formel mit m Klauseln, in der jede Klausel mindestens kLiterale enthält, giltE[A(f)]  (1-1/2k)m. Beweis: • Für j{1,…,m} sei Zj die Indikatorvariable mit Zj=1 bA(Cj)=true. • Lemma 6.7: E[Zj] = Pr[bA(Cj)=true] = 1-1/2kj • Aufgrund der Linearität des Erwartungswerts folgt:E[A(f)] = E[wahr(bA,f)] = E[Sj=1mZj] = Sj=1m E[Zj] = Sj=1m (1-1/2kj)  (1-1/2k) m Kapitel 1

  18. Die Probabilistische Methode • Aus Satz 6.8 folgt, dass die erwartete relative Güte von AlgoA für k2 höchstens 1/(1-1/22) = 4/3 ist, also deutlich besser als 2. • Mit Satz 6.7 kann auch die Existenz erfüllbarer Belegungen nachgewiesen werden: 6.9 Korollar: Sei 2k>m. Dann ist jede KNF-Formel mit m Klauseln, in der jede Klausel mindestens kLiterale enthält, erfüllbar. Kapitel 1

  19. Übersicht • Notation • Die probabilistische Methode • Randomisiertes Runden • Der hybride Ansatz • Semidefinite Optimierung • Derandomisierung Kapitel 1

  20. Randomisiertes Runden • ApproximationsalgoA arbeitet umso besser, je größer die Klauseln sind. • Jetzt werden wir einen ApproximationsalgoB vorstellen, der umso besser arbeitet, je kürzer die Klauseln sind. • Wir verwenden dazu das ILP zu MaxSAT, das wir zunächst zum LP relaxieren und optimal lösen und dann durch randomisiertes Runden wieder in eine zulässige Lösung für das ILP umwandeln. Kapitel 1

  21. Randomisiertes Runden • Sei f=C1C2…Cm • S-j: Menge der negierten Variablen in Cj • S+j: Menge der nichtnegierten Variablen in Cj ILP zu MaxSAT:maximiere Sj=1mzjgemäß SxiS+j xi + SxiS-j(1-xi)  zj für alle jxi, zj {0,1} Kapitel 1

  22. Randomisiertes Runden • Relaxierung zum LP:ersetze xi,zj{0,1} durch xi,zj[0,1] • Seien x´i, z´j die Werte der optimalen Lösung zum LP. Wir verwenden dann die folgende randomisierte Rundung für p(x)=x:RandomizedRounding(p):fori:=1 ton do mit Wahrscheinlichkeit p(x´i): xi:=true mit Wahrscheinlichkeit 1-p(x´i): xi:=false gib bB=(x1,…,xn) aus Kapitel 1

  23. Randomisiertes Runden 6.10 Lemma: Sei kj die Anzahl der Literale in Cj. Es gilt:Pr[Cj wird durch AlgoB erfüllt]  (1-(1-1/kj)kj) z´j Beweis: • Die Wahrscheinlichkeit, dass SxiS+j xi + SxiS-j(1-xi) = 0 ist, ist gleich PxiS+j(1-x´i) PxiS-j x´i, da die xis unabhängig voneinander gerundet werden. • Also giltPr[bB(Cj )=true] = 1 - PxiS+j(1-x´i) PxiS-j x´i • Um weiterrechnen zu können, brauchen wir zwei Aussagen aus der Analysis. Kapitel 1

  24. Randomisiertes Runden 6.11 Fakt: • Für a1,…,ak0 gilt Pi=1kai ((1/k)Si=1k ai)k • Wenn die Funktion f(x) in [a,b] konkav ist und f(a) ca+dund f(b)  cb+d, dann ist für alle x[a,b] auch f(x)  cx+d. Daraus folgt:Pr[bB(Cj )=true] = 1 - PxiS+j(1-x´i) PxiS-j x´iSxiS+j(1-x´i) - SxiS-j x´i kj |S+j| - SxiS+jx´i + |S-j| -SxiS-j (1-x´i) kj kj – (SxiS+jx´i +SxiS-j (1-x´i)) kj 1-(1-z´j/kj)kj (1-(1-1/kj)kj) z´j kj (a)  1 - kj = 1 - kj = 1 - (b) Kapitel 1

  25. Randomisiertes Runden 6.12 Satz: Für jede Boolesche Formel in KNF, in der jede Klausel höchstens kLiterale hat, istE[B(f)]  (1-(1-1/k)k) OPT(f) Beweis: • Sei f=C1C2…Cm. Es gilt:E[B(f)] = Sj=1mPr[bB(Cj )=true]  Sj=1m (1-(1-1/kj)kj) z´j (1-(1-1/k)k) Sj=1m z´j (1-(1-1/k)k) OPT(f) wegen der Superoptimalität der optimalen Lösung zum LP von MaxSAT. Kapitel 1

  26. Randomisiertes Runden • Da (1-1/k)k < 1/e für alle kINist,folgt, dass E[B(f)] > (1-1/e)OPT(f)  1/1,582  OPT(f) ist. • Für andere Rundungswahrscheinlichkeiten wie p(x)=x/2 + 1/4 kann man sogar zeigen, dass eine erwartete Approximationsgüte von 4/3 erreicht wird. Kapitel 1

  27. Randomisiertes Runden MinCUT Problem: • Gegeben:ungerichteter Graph G=(V,E) mit ausgezeichneten Knoten s,tV und Kantenkosten c:EIR+. • Eine Partition (U,V\U) von V heißt (s,t)-Schnitt, falls sU und tV\U. Die Kosten eines Schnitts (U,V\U) sind definiert alsc(U,V\U) = S{v,w}E:vU,wV\U c(v,w) • S: Menge aller (s,t)-Schnitte in G • Zielfunktion:f((U,V\U)) = c(U,V\U) • Ziel: minimiere f Kapitel 1

  28. Randomisiertes Runden ILP zu MinCUT: • xi{0,1}: xi=0 Knoten i in Menge U • zi,j{0,1}: Indikator, ob Kante {i,j} über Schnitt • minimiere S{i,j}E ci,jzi,jgemäß xi-xjzi,j und xj-xizi,j für alle {i,j}Exs=0 und xt=1xi, zi,j{0,1} für alle i,j Kapitel 1

  29. Randomisiertes Runden • Ersetzen wir xi,zi,j{0,1} durch xi,zi,j[0,1], so erhalten wir ein LP. • Für jede optimale Lösung des ILPs und des LPs muss gelten, dass zi,j=|xi-xj| ist, denn sonst könnte Zielfunktionswert verringert werden. • Seien x´i und z´i,jdie Variablenwerte einer optimalen Lösung des LPs, und sei y´ der Wert dieser Lösung. • Aufgrund der Superoptimalität gilt y´  OPT. Kapitel 1

  30. Randomisiertes Runden Randomisiertes Runden:Wähle ein zufälliges u[0,1). Für jedes iVsetzen wir xi:=0 falls x´iu und sonst xi:=1. 6.13 Satz: Für jedes u[0,1) ist die gerundete Lösung eine optimale Lösung des ILPs. Beweis: • Betrachte eine feste Kante {i,j}E. • Kante {i,j} führt über den Schnitt genau dann, wenn u[min{x´i, x´j}, max{x´i, x´j}]. • Das ist mit Wahrscheinlichkeit |x´i - x´j| = z´i,jder Fall. • Also ist E[zi,j] = z´i,jund damitE[S{i,j}E ci,jzi,j] = S{i,j}E ci,jE[zi,j] = S{i,j}E ci,jz´i,j = y´ • Da S{i,j}E ci,jzi,j<y´ nicht möglich ist, folgt der Satz. Kapitel 1

  31. Randomisiertes Runden • Satz 6.13 ist also ein probabilistischer Beweis dafür, dass wir eigentlich kein randomisiertes Runden benötigen, da jedes u[0,1) eine optimale Lösung ergibt. • Es reicht also, das LP zu lösen und dann die erhaltene Lösung für u=0 zu runden. Kapitel 1

  32. Randomisiertes Runden Allgemeines Set Cover Problem: • Gegeben: Folge S1,…,Smvon Teilmengen von {1,…,n} mit Kosten c1,…,cmIR+ • Gültige Lösung: Jede Teilmenge C{1,…,m}, so dass für jedes j{1,…,n} ein iC existiert mit jSi. • Zielfunktion:f(C) = S iCci • Ziel: minimiere Zielfunktion Kapitel 1

  33. Randomisiertes Runden ILP zu Set Cover: • xi{0,1}: xi=0iC • minimiere Si=1mcixigemäß Si:jSixi 1 für alle jxi {0,1} für alle i • Ersetzen wir xi{0,1} durch xi[0,1], so erhalten wir ein LP. • Sei (x´1,…,x´m) die optimale Lösung des LPs. Kapitel 1

  34. Randomisiertes Runden Rundungsstrategie:(y1,…,ym):=(0,…,0)forr:=1 tot do(x1,…,xm):=RandomizedRounding(p(x)=x)(y1,…,ym):=(y1x1,…,ymxm)gib (y1,…,ym) aus 6.14 Lemma: Die Wahrscheinlichkeit, dass ein festest Element j{1,…,n} nach t Runden nicht überdeckt ist, ist höchstens (1/e)t. Kapitel 1

  35. Randomisiertes Runden Beweis: • Betrachte ein festes Element j. • Sei C die Teilmenge, die in Runde r generiert wird. Dann istPr[jiC Si] = Pi:jSi(1-x´i) • Sei kj die Anzahl der Teilmengen, zu denen j gehört. Da Si:jSix´i1 gelten muss, wird die Wahrscheinlichkeit maximiert für den Fall, dass x´i=1/kj für all diese i ist. • Daraus folgtPr[j iC Si] = Pi:jSi(1-/kj) kj • Da (1-1/k)k 1/e für alle kINist, ist Pr[jC] 1/e. • Bei t zufälligen und unabhängigen Rundungen ist die Wkeit, dass j nicht überdeckt ist, höchstens (1/e)t. Kapitel 1

  36. Randomisiertes Runden • Sei Cr die in Runde r gewählte Teilmenge und C=r=1t Cr. • Für t=ln(4n) gilt:Pr[C ist keine Überdeckung] Sj=1nPr[C überdeckt nicht j] Sj=1n (1/e)t = n/eln(4n) = n/4n = 1/4 • Die erwarteten Kosten für jedes Cr sind gleich Si=1mcix´i, den optimalen Kosten des LPs, die wir mit y´ bezeichnen. • Die erwarteten Kosten von C sind also y´ln(4n). • Nach der Markov Ungleichung giltPr[cost(C)  4y´ln(4n)]  1/4 • Die Wahrscheinlichkeit, dass unser Algo eine gültige Lösung mit Approximationsgüte 4ln(4n) produziert, ist also minde-stens1-1/4-1/4 = 1/2. • Erwartungsgemäß sind also höchstens 2 Versuche notwendig, um so eine Lösung zu finden. Kapitel 1

  37. Übersicht • Notation • Die probabilistische Methode • Randomisiertes Runden • Der hybride Ansatz • Semidefinite Optimierung • Derandomisierung Kapitel 1

  38. Der hybride Ansatz Grundlegende Idee: Entwickle durch Kombination mehrerer Approximationsverfahren für ein Problem ein hybrides Verfahren, das minde-stens so gut wie jedes einzelne ist. Algo A Güte Algo B Algo C k Kapitel 1

  39. Der hybride Ansatz Max-kSAT Problem: alle Klauseln haben Länge k • Algo A: über probabilistische Methode(setze jedes xi zu 0 oder 1 mit Wkeit½) • Algo B: über randomisiertes Runden(löse LP, runde xi mit p(x)=x) • Tabelle der erwarteten Güten von A und B: Kapitel 1

  40. Der hybride Ansatz • Algo B kann also gut mit Klauseln umgehen, die kurz sind, während Algo A gut mit Klauseln umgehen kann, die lang sind. • Der größere der beiden Werte in der Tabelle ist mindestens 3/4. • Wir könnten also als hybride Lösung A und B laufen lassen und uns dann für die bessere Lösung entscheiden. • Dadurch würde sich jedoch die Laufzeit erhöhen. Wir stellen eine alternative Methode vor. Kapitel 1

  41. Der hybride Ansatz Algorithmus Cp:mit Wahrscheinlichkeit p: starte Amit Wahrscheinlichkeit 1-p: starte B 6.15 Satz: Algorithmus C1/2 hat eine erwartete relative Güte von 4/3. Beweis: • Wir wissen:E[A(f)] = Sk=1nSj:Cj hat k Literale(1-1/2k)z´j E[B(f)] = Sk=1nSj:Cj hat k Literale(1-(1-1/k)k) z´j Kapitel 1

  42. Der hybride Ansatz Beweis (Fortsetzung): • Daraus folgt: E[C1/2 (f)] = (1/2)(E[A(f)] + E[B(f)]) Sk=1nSj:Cj hat k Literale(1/2)(1-1/2k+1-(1-1/k)k)z´j (3/4) Sj=1m z´j  (3/4)OPT(f) Bemerkung: Der beste zur Zeit bekannte Approxima-tionsalgorithmus für MaxSAT hat eine relative Güte von 1,2004. Es ist eine Kombination von A und B und einer Reihe von weiteren Algorithmen. Er benutzt u.a. die im nächsten Abschnitt behandelte Technik der semidefiniten Optimierung. Kapitel 1

  43. Übersicht • Notation • Die probabilistische Methode • Randomisiertes Runden • Der hybride Ansatz • Semidefinite Optimierung • Derandomisierung Kapitel 1

  44. Semidefinite Optimierung • Eine nn-Matrix A über IR heißt positiv semidefinit, wenn für alle xIRngilt, dass xTAx 0. • Ein semidefinites Programm liegt dann vor, wenn wir ein LP haben und zusätzlich fordern, dass die Lösung für die Variablen als symmetrische und positiv semidefinite Matrix beschrieben werden kann. Kapitel 1

  45. Semidefinite Optimierung Semidefinites Programm SDP:optimiere Si,jci,jxi,jgemäß Si,ja(i,j),kxi,j bkfür alle kX=(xi,j) ist symmetrisch und positiv semidefinit • OPT(SDP) bezeichne den optimalen Wert der Zielfunktion Kapitel 1

  46. Semidefinite Optimierung 6.16 Fakt: • A ist genau dann symmetrisch und positiv semidefinit, wenn es eine mn-Matrix B gibt mit BTB = A. • Ist A positiv semidefinit und symmetrisch, dann kann die Matrix B aus (a) in Zeit O(n3) mittels Cholesky-Zerlegung berechnet werden. • Sind alle Diagonaleinträge einer symmetrischen und positiv semidefiniten Matrix A gleich 1, dann sind die Spalten der zugehörigen Matrix B Einheitsvektoren in IRn. • Semidefinite Optimierung kann in Zeit O(poly(n,m,log(1/e))) mit absoluter Güte e für beliebiges e>0 gelöst werden. D.h. es wird eine symmetrische und positiv semidefinite Matrix X(e)=(x(e)i,j) berechnet, deren Einträge die linearen Neben-bedingungen erfüllen und für die |OPT(SDP)-Si,j ci,jx(e)i.j| eist. Kapitel 1

  47. Semidefinite Optimierung Zwei Beispiele: • Die Matrix A1 = ist nicht positiv semidefinit, da (1,-1)A1 = -6 • Die Matrix A2 = ist positiv semi-definit, daA2 = BTB für B = 1 4 1 4 4 1 4 1 1 -1 1 -1 0 3 Kapitel 1

  48. Semidefinite Optimierung MaxCUT Problem: • Gegeben:ungerichteter, zusammenhän-gender Graph G=(V,E) • Zulässige Lösung: Schnitt (U,V\U) • Zielfunktion:f((U,V\U)) = c(U,V\U) • Ziel: maximiere f Kapitel 1

  49. Semidefinite Optimierung Folgendes einfache Verfahren ergibt bereits eine erwartete Güte von 2. In diesem Verfahren sei n=|V| und die Indikatorvariablexi=1 genau dann, wenn Knoten i zu U gehört. Algorithmus Afori:=1 ton do mit Wahrscheinlichkeit ½: xi:=0 // zu V\U mit Wahrscheinlichkeit ½: xi:=1 // zu Ugib UA={ iV | xi=1 } aus Eine erwartete Güte von 2 war lange Zeit das Beste, was für das MaxCUT Problem bekannt war. Kapitel 1

  50. Semidefinite Optimierung Zunächst formulieren wir MaxCUT als quadratisches Optimierungsproblem: • G=(V,E): gegebener Graph, n=|V| • AG=(ai,j): Adjazenzmatrix zu G, d.h. für alle i,jV ist ai,j=1 genau dann, wenn {i,j}E und 0 sonst. • xi{-1,1}: xi=1 Knoten iU • Wert (1-xixj)/2: geht Kante {i,j} über den Schnitt, dann ist dieser Wert 1 und sonst 0 Kapitel 1

More Related