Seminar: Randomisierte Algorithmen Auswerten von Spielbäumen Nele Küsener In diesem Vortrag wird die Laufzeit von Las-Vegas-Algorithmen analysiert. Das Ergebnis ist eine obere und eine untere Schranke für die maximal erwartete Laufzeit. Als Beispiel schauen wir uns einen randomisierten Algorithmus an, der Spielbäume auswertet. Inhaltsverzeichnis 1 Das Auswerten von Spielbäumen 2 Das 2.1 2.2 2.3 2.4 Minimax-Prinzip Grundlegende Begriffe aus der Spieltheorie Beispiel . . . . . . . . . . . . . . . . . . . von Neumann’s Minimax-Theorem . . . . Anwendung des Minimax-Prinzip . . . . . 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Berechnung der unteren Schranke für den Algorithmus von Snir 1 . . . . . . . . 3 3 5 5 6 7 Das Auswerten von Spielbäumen Was ist ein Spielbaum? Ein Spielbaum ist ein verwurzelter und beschrifteter Baum mit einer gerade Anzahl von Generationen. Die Knoten, die einer geradzahligen Generation angehören, werden mit MIN beschriftet, die inneren Knoten aus einer ungeraden Generation werden mit MAX beschriftet. An jedem Blatt steht ein reeller Wert. Die Auswertung eines Spielbaumes ist das Bestimmen des Wertes an der Wurzel. Ein Knoten der mit MAX beschriftet ist, nimmt den maximalen Wert seiner Kinder an. Ein Knoten, der mit MIN beschriftet ist, entsprechend den minimalen Wert. Wir betrachten Binäre Spielbäume. Dort haben die Blätter entweder den Wert 0 oder 1. Die Boolschen Operationen AND und OR ersetzen dort die Funktionen MIN und MAX. k Notation tk = (v1 , . . . , v4k ) ∈ {0, 1}4 ist der Spielbaum der Höhe 2k. vi ist der Wert des i-ten Blattes bzgl. einer beliebigen, aber festen Abzählung der Blätter. Den Wert der Wurzel bezeichnet man mit w (tk ). Ein Spielbaum beschreibt folgendes Spiel: Spieler A und Spieler B bestimmen abwechselnd von Knoten zu Knoten einen Weg von oben nach unten durch den Spielbaum. Den Wert des ausgewählten Blattes muss Spieler B an Spieler A bezahlen. Spieler B beginnt. Die inneren Knoten bezeichnen den maximalen Gewinn bzw. minimalen Verlust bei geschickter Spielweise. Ein Algorithmus zur Auswertung eines Spielbaums liest bei jedem Schritt den Wert eines Blattes ein, wobei die Wahl des als nächstes einzulesenden Blattes von den Werten der bereits inspizierten Blätter abhängen darf. Als Maß für die Laufzeit eines solchen Algorithmus nimmt man nur die Anzahl der eingelesenen Werte, da das Berechnen von Minimum und Maximum sehr schnell geht. Wir betrachten randomisierte Algorithmen, da diese den Vorteil haben, dass man ihnen keine gezielte Eingabebelegung geben kann, die sie zwingt alle Eingaben zu prüfen. Die deterministische Komplexität eines Algorithmus zum Auswerten eines Spielbaums ist n = 4k . Man kann diese Laufzeit erzwingen, indem man dem Algorithmus an einem MAX/OR Knoten zuerst eine 0 liefert und bei einem MIN/AND Knoten zuerst eine 1. Randomisierter Algorithmus von Snir zur Auswertung eines Spielbaums Zur Auswertung eines AND-Knoten wähle man rein zufällig eines der beiden Kinder und bestimme rekursiv dessen Wert (= Wert eines in einem OR-Knoten verwurzelten Teilbaums). Ist der Wert des Kindes 0, so ist dies auch der zu bestimmende Wert des AND-Knoten. Ist der Wert des Kindes 1, dann bestimme man auch noch den Wert des anderen Kindes. Die Auswertung eines OR-Knoten verläuft analog mit vertauschten Rollen von 0 und 1. Der nächste Satz gibt eine obere Schranke für die maximal erwartete Anzahl der inspizierten Blätter an: Satz 1.1: Sei L (tk ) die Anzahl der bei der Auswertung des Spielbaums tk inspizierten Blätter, dann gilt max EL (tk ) ≤ 3k , k ∈ N. k tk ∈{0,1}4 Beweis Wir beweisen den Satz per Induktion und fangen an mit k = 1. Unterteilung in zwei Fälle: w (t1 ) = 0 und w (t1 ) = 1: Im Fall, dass die Wurzel den Wert 0 annimmt, wählt der Algorithmus mit einer Wahrscheinlichkeit von p ≥ 12 zuerst ein Kind mit dem Wert 0 und muss dann das zweite Kind nicht mehr auswerten. Jedes Kind der Wurzel hat zwei Blätter. Man kann also folgende Abschätzung machen: L (t1 ) ≤ 2 ∗ (#inspizierte Kinder). E [L (t1 )] ≤ 2 ∗ E [#insp. Kinder] = 2 ∗ (P (ein insp. Kind) ∗ 1 + P (zwei insp.Kinder) ∗ 2) = 2 ∗ (1 ∗ p + 2 ∗ (1 − p)) = 2p + 4 − 4p = 4 − 2p ≤4−2∗ 1 2 ≤ 31 Im Fall, dass die Wurzel den Wert 1 annimmt, müssen beide Kinder ausgewertet werden. Sie haben beide den Wert 1 und mit einer Wahrscheinlichkeit p ≥ 12 ist das erste Blatt eines Kindes eine 1. E [L (t1 )] = 2 ∗ E [#insp. Blätter pro Kind] = 2 ∗ (1 ∗ p + 2 ∗ (1 − p)) 3 ≤2∗ 2 1 =3 (i) Nun folgt der Induktionsschritt von k zu k + 1: Seien tk , i = 1, . . . , 4, die in den Enkeln der Wurzel von tk+1 verwurzelten binären Spielbäume der Höhe 2k. E [L (tk+1 )] = = ≤ 4 X ¡ ¢ E #ins. Blätter in Teilbaumi ∗ I{Teilbaum i ausgew.} i=1 4 X i=1 4 X E [#ins. Blätter in TB i] ∗ P (TB i insp.) 3k ∗ P (TB i insp.) i=1 = 4 X 3k ∗ i=1 = 3k ∗ 3 4 3 ∗4 4 = 3k+1 Bemerkung: Die Eingabe hat die Länge n = 4k . Die erwarteten Kosten des rand. Algorithmus sind also durch nlog4 3 nach oben beschränkt. (log4 3 = 0.7924) 2 Das Minimax-Prinzip Wie ist die Güte des Algorithmus von Snir zu beurteilen? Was ist die randomisierte Komplexität? Im folgenden Abschnitt wird allgemein eine Technik zur Herleitung einer unteren Schranke für die maximale erwartete Laufzeit von Las-Vegas-Algorithmen dargestellt. 2.1 Grundlegende Begriffe aus der Spieltheorie Bei einem Zwei-Personen-Nullsummen-Spiel gewinnt der eine Spieler genau den Betrag, den der andere Spieler verliert. Spieler A verfügt über die reinen Strategien ai , 1 ≤ i ≤ n und Spieler B über die reinen Strategien bj , 1 ≤ j ≤ m. Bei Spielen der Strategien ai und bj , erhält Spieler A von Spieler B den Betrag cij . cij ist die Auszahlungs- oder Gewinnmatrix. Bei dem bekannten Spiel Schere, Stein, Papier“ ist eine Strategie die Auswahl von z.B. Schere. ” Wenn eine Strategie ai bzw. bj zufällig (mit Wahrscheinlichkeit pi bzw. qj ) ausgewählt wird, spricht man von einer gemischten Strategie. Spieler A wählt die Strategien (ai )1≤i≤n mit den Wahrscheinlichkeiten p = (p1 , . . . , pn ) und Spieler B davon unabhängig die Strategien (bj )1≤j≤m mit den Wahrscheinlichkeiten P P p = (q1 , . . . , qm ). Es gilt i pi = j qj = 1. Beispiel: Bei Schere, Stein, Papier“ ist eine mögliche gemischte Strategie: ” ¡ ¢ p = q = 31 , 13 , 13 D.h. jeder Spieler bestimmt vor jeder Runde durch Zufall welche Strategie er spielt. In diesem Fall wählt er jede der Möglichkeiten mit der Wahrscheinlichkeit 13 . Was ist der erwartete Gewinn von Spieler A? Ep⊗q c (I, J) = X pi qj cij , wobei p = (p1 , . . . , pn ) und q = (q1 , . . . , qn ) . i,j A gewinnt in Erwartung mindestens minq Ep⊗q c (I, J) (∗) VA := max min Ep⊗q c (I, J) ist der untere Wert des Spiels. p q In Worten bedeutet dies: Spieler B bemüht sich die Auszahlung so klein wie möglich zu halten und Spieler A versucht dies zu maximieren. Eine Strategie p*, die (∗) maximiert, nennt man eine optimale gemischte Strategie für Spieler A. VA ist bei Verwendung von p* eine untere Schranke für den erwarteten Gewinn von Spieler A. Für Spieler B sieht es ähnlich aus: maxp Ep⊗q c (I, J) (∗∗) ist die maximale Höhe der zu leistenden Zahlung bei Verfolgen der Strategie q. VB := min max Ep⊗q c (I, J) ist der obere Wert des Spiels. q p Eine Strategie q*, die (∗∗) minimiert, ist eine optimale gemischte Strategie für B. Bei Verwendung von q* muss Spieler B in Erwartung einen maximalen Betrag in Höhe von VB an Spieler A bezahlen. VA ≤ VB , denn: minq Ep⊗q ≤ Ep⊗q ⇒ maxp minq Ep⊗q ≤ maxp Ep⊗q Bemerkung: Existieren Strategien p’ und q’, so dass Ep⊗q0 c (I, J) ≤ Ep0 ⊗q0 c (I, J) ≤ Ep0 ⊗q c (I, J) für alle p und q gilt, dann kann man zeigen, dass auch VB ≤ VA gilt VB ≤ max Ep⊗q0 c (I, J) ≤ Ep0 ⊗q0 c (I, J) ≤ min Ep0 ⊗q c (I, J) ≤ VA p q ⇒ VA = VB Wenn VA = VB gilt, dann ist das Spiel optimal und es hat die Lösung (p0 , q 0 ); VA bzw. VB werden als der Wert des Spiels bezeichnet. 2.2 Beispiel Das Spiel ”Schere, Stein, Papier“ hat die Gewinnmatrix: 0 −1 1 0 −1 Sie beschreibt den Gewinn/Verlust aus der Sicht von Spieler A. cij = 1 −1 1 0 Die erste Zeile steht für die Strategie Schere, die zweite für Stein und die dritte für Papier. Die Strategien von Spieler B zeigen die Spalten an. Wie hoch ist der erwartete Gewinn? p = (p1 , p2 , p3 ), q = (q1 , q2 , q3 ) Ep⊗q c (I, J) = 0 ∗ p1 q1 − p1 q2 + p1 q3 + p2 q1 − p2 q3 − p3 q1 + p3 q2 = q1 (p2 − p3 ) + q2 (p3 − p1 ) + q3 (p1 − p2 ) µ ¶ 1 1 1 = 0, falls p = , , 3 3 3 < 0, sonst Ein symmetrisches Zwei-Personen-Nullsummenspiel ist optimal, wenn der Erwartungswert 0 ist. Bei reinen Strategien können VA und VB unterschiedlich sein: min c (i, j) = −1 für alle i ⇒ max min c (i, j) = −1 = VA max c (i, j) = 1 für alle j ⇒ min max c (i, j) = 1 = VB j i 2.3 i j j i von Neumann’s Minimax-Theorem Satz 2.1 (von Neumann’s Minimax-Theorem) Jedes durch eine endliche Matrix (cij ) beschriebene Zwei-Personen-Nullsummen-Spiel mit gemischten Strategien besitzt eine Lösung und hat den Wert max min Ep⊗q c (I, J) = min max Ep⊗q c (I, J) p q q p P P Bei festem p ist die Funktion Ep⊗q c (I, J) = jq i pcij linear in q und nimmt ihr Minimum in einem der Extremalpunkte des Simplex der Verteilung auf {1, . . . , m} an. Also gilt: minq Ep⊗q c (I, J) = minj Ep c (I, j). In Worten: Wenn der Spieler B die gemischte Strategie p von A kennt, kann er eine reine Strategie spielen um seinen Verlust zu minimieren. (Entsprechendes gilt für Spieler A, wenn er die Strategie von B kennt.) Am Beispiel von Schere, Stein, Papier“ bedeutet dies, dass Spieler B immer Stein spielt, ” wenn in der Strategie von Spieler A Papier die größte Wahrscheinlichkeit hat. Eine Variante des Minimax-Theorems ist der Satz von Loomis max min Ep c (I, j) = min max Eq c (i, J) . p q j i j und i sind die reinen und p und q die gemischten Strategien. 2.4 Anwendung des Minimax-Prinzip Nun wollen wir das Minimax-Prinzip zur Analyse der Güte von Las-Vegas-Algorithmen benutzen. Die Kosten des Algorithmus soll die Höhe der Zahlung sein, die der Spieler, der den Algorithmus entwirft, an den Spieler zahlen muss, der die Eingabe wählt. Bei den folgenden Überlegungen soll die Zahl der möglichen Eingaben und die Zahl der deterministischen Algorithmen (immer korrekt, in endlicher Zeit terminierend) zur Lösung des Problems endlich sein. A sei die Menge der deterministischen Algorithmen zur Lösung eines Problems und I die Menge der möglichen Eingaben. Für a ∈ A und i ∈ I bezeichne c (i, a) die Kosten des Algorithmus a bei Eingabe i. Kleiner Einschub: In diesem Abschnitt ist es zweckmäßig einen randomisierten Algorithmus als eine Wahrscheinlichkeitsverteilung auf einer Menge von deterministischen Algorithmen aufzufassen. Salopp ausgedrückt: Bei einem randomisierten Algorithmus wird zufällig ein Weg für ” die Auswertung bestimmt. Danach kann man sagen, dass es genau einen deterministischen Algorithmus gibt, der diesen Weg geht.“ Wie sehen VA und VB jetzt aus und was bedeuten sie? Die Komplexität in Verteilung ist definiert als cdist := max min Ep c (I, a) = VA p a Es wird das Maximum über alle Verteilungen p auf I gebildet (also die schlimmste ” Eingabe“), bei dem Algorithmus, der die erwarteten Kosten minimiert. Die randomisierte Komplexität ist definiert als crand := min max Eq c (i, A) = VB q i Das ist das Minimum über alle Verteilungen q auf A, bzw. bestes Worst-case-Verhalten“ ” eines zufälligen Algorithmus. Das Minimax-Prinzip in der Form des Satz von Loomis besagt, dass die beiden Komplexitätsbegriffe übereinstimmen. Insbesondere gilt: Proposition 2.2 (Yao’s Minimax-Theorem) Für alle Verteilungen p auf der Menge I der möglichen Eingaben und alle Verteilungen q auf der Menge A der deterministischen Algorithmen zur Lösung eines endlichen Problems gilt min Ep c (I, a) ≤ max Eq c (i, A) . a∈A i∈I Wir können also sagen: Die erwartete Laufzeit eines randomisierten Algorithmus bei schlechtester Eingabe ist nach unten abgeschätzt durch die erwartete Laufzeit eines optimalen Algorithmus bei beliebiger aber fest gewählter Eingabe. Wir haben jetzt also eine untere Schranke für die maximal erwartete Laufzeit. 3 Berechnung der unteren Schranke für den Algorithmus von Snir Nun schauen wir uns wieder die Spielbäume an und berechnen eine untere Schranke für die maximal erwartete Laufzeit des Algorithmus von Snir. Zuerst müssen einige Dinge festgelegt werden. Man kann leicht zeigen, dass die Werte der Wurzel eines Spielbaums gleich bleiben, wenn man die AND/OR-Operationen durch NOR-Operationen ersetzt. Diese logische Operation gibt nur dann eine 1 aus, wenn beide Eingaben 0 sind. Für Bäume der Höhe 2 ist dies leicht zu zeigen und dann erinnere man sich daran, dass Bäume der Höhe 2 (k + 1) im Prinzip Bäume der Höhe 2 sind, an deren 4 Blättern Bäume der Höhe 2k hängen. Um eine untere Schranke für die maximal erwartete Anzahl der durch einen zufälligen Algorithmus inspizierten Blätter herzuleiten, brauchen wir eine bestimmte Verteilung der Blattbelegung und wir müssen eine untere Schranke für die maximal erwartete Anzahl der inspizierten Blätter bei einem optimalen deterministischen Algorithmus beweisen. Die Blattbelegung: Den Blättern wird unabhängig mit Wahrscheinlichkeit p̄ der Wert 1 zugewiesen. p̄ = (1 − p̄)2 ⇒ p̄ = 0.3819. Wir wählen p̄ so, da jetzt die Wahrscheinlichkeit, dass ein innerer Knoten den Wert 1 annimmt, auch p̄ ist. Die Werte von Knoten, die nicht in einer Vorfahr-Nachkomme-Beziehung stehen, sind unabhängig. Dies gilt insbesondere für benachbarte Knoten in einer Generation. Wie sollte ein optimaler deterministischer Algorithmus vorgehen? Der Algorithmus sollte immer zuerst den Nachbar eines Knoten angucken, bevor er den Rest des Baumes anschaut. Der Baum wird also nach einer Depth-first-search“ durch” laufen. Wenn der Wert eines Teilbaums bestimmt ist, werden die anderen Blätter nicht mehr eingelesen. Was ist die erwartete Laufzeit dieses Algorithmus? Sei Zh := # Blätter, die der Algorithmus zur Bestimmung des Wertes eines Knotens in der Generation 2k − h inspiziert. Dann gilt: (1) (2) Zh = Zh−1 + Zh−1 IAh−1 (i) und Zh−1 , i = 1, 2 unabh. Kopien von Zh−1 Die Anzahl der inspizierten Blätter in Generation 2k − h setzt sich zusammen aus der Anzahl der inspizierten Blätter in einem Teilbaum der Generation 2k − h − 1 und, falls dieser den Wert 0 annimmt, auch noch aus der Anzahl der inspizierten Blätter im anderen Teilbaum. (2) Das Ereignis Ah−1 ist unabhängig von Zh−1 . Man kann also den Erwartungswert berechnen: EZh = EZh−1 + EZh−1 ∗ EIAh−1 = EZh−1 + (1 − p̄)EZh−1 = (2 − p̄)EZh−1 Durch Induktion kann man zeigen, dass EZ2k = (2 − p̄)2k gilt. Aus Yao’s Minimax-Prinzip folgt nun: Satz 3.1 Die maximale erwartete Anzahl der von einem zufälligen Algorithmus bei der Auswertung eines binären 0-1 Spielbaums inspizierten Blätter ist mindestens nα . Dabei ist n die Anzahl der Blätter des Baums und α = log2 (2 − p̄) = 0.6942 . . . Dabei ist n die Anzahl. Nun kennen wir also eine obere und eine untere Schranke für die maximal erwartete Laufzeit von randomisierten Algorithmen. Für den Algorithmus von Snir kann man man die Komplexität des Auswertens exakt berechnen: Satz 3.2 Der randomisierte Algorithmus von Snir zur Auswertung binärer 0-1 Spielbäume ist optimal. Die Komplexität des Auswertens eines binären Spielbaums mit n Blättern ³ √ ´ 1+ 33 β = 0.7537 . . . ist n , wobei β = log2 4