Spieltheorie Sebastian Wankerl 16. Juli 2010
Inhalt 1 Einleitung 2 Grundlagen Extensive Form choice functions Strategien Nash-Gleichgewicht Beispiel: Gefangenendillema 3 Algorithmen Minimax Theorem Minimax Algorithmus Alpha-Beta-Pruning 4 Winning Positions 5 Nim 6 Josephus
Spieltheorie mathematische Theorie, die sich mit Vielzahl an Wettbewerbssituationen befasst (sog. Spiele) Ziel: Warum handeln die Spieler so? Was ist die (jeweils) beste Strategie? schwierig, da es häug keine klare Denition von gut spielen gibt
Spiele haben gemeinsam, dass es nur eine endliche Anzahl an Spielern gibt jeder Spieler die Regeln komplett kennt es zu jedem Zeitpunkt für jeden Spieler nur eine endliche Anzahl an Entscheidungsmöglichkeiten gibt das Spiel nach endlich vielen Zügen endet am Ende jeder Spieler eindeutig bewertet werden kann, sog. payo (z.b. 1 bei Sieg, -1 bei Niederlage, 0 bei Unentschieden) Problem: dies ist häug subjektiv
Weitere Eigenschaften chance moves, d.h. einzelne Situationen treten mit gewisser Wahrscheinlichkeit auf (z.b. Würfelspiele) Nullsummeneigenschaft, wenn die Summe der Komponenten des payo Vektors gleich 0 ist.
Extensive Form Darstellung als Bäume zeitlicher Ablauf erkennbar nichtterminale Knoten werden mit zugehörigem Spieler beschriftet terminale Knoten werden mit payo der einzelnen Spieler beschriftet Verzweigungen im Baum stellen unterschiedliche Entscheidungen während des Spiels dar
Beispielbaum P1 P2 P3 P2 P1 P1 (-1,1,-1) (0,0,1) (1,0,-1) (-1,0,2) (-2,1,0) (0,-2,2) (0,1,1)
choice functions(1) an jedem Nichtterminal Entscheidung treen Entscheidung nur von diesem Knoten abhängig Def. (choice function) Sei P ein Spieler und T ein Spielbaum. Sei U T die Menge aller Knoten von P. c : U U ist dann diejenige Funktion, die zu jedem Knoten einen Nachfolger im Spiel bestimmt, d.h. für alle u U wählt P c(u).
choice functions(2) Spiel mit N Spielern P 1, P 2,..., P N Sei Γ i die Menge aller choice functions für P i alle Spieler P i ziehen einer choice function c i Γ i π i (c 1, c 2,..., c N ) bezeichnet die i-te Komponente des payo vector, falls P i gemäÿ dem Tupel c 1, c 2,..., c N spielt
choice functions(3) Pfad durch den Spielbaum bestimmt dennoch nicht genügend, Spieler braucht richtige Strategie Ursache: choice function auf jedem Knoten von P deniert, viele Knoten jedoch gar nicht erreichbar deshalb Verbesserungen für Strategie nötig
Strategie(1) Def: (P,c)-path Sei T ein Spielbaum, P ein Spieler und c eine choice function von P. Ein (P-c)-path ist ein Pfad von der Wurzel von T zu einem Terminal so, dass u V (P) : (u, c(u)) E stellt einen möglichen Spielverlauf dar als choice subtree wird die Vereinigung aller (P-c)-paths bezeichnet choice subtree enthält immer genau ein Nachfolger für Knoten von P, aber alle Nachfolger der Knoten der Gegenspieler
Strategie(2) verbesserte Notation: π i (S 1,..., S N ) ist payo für P i, wenn er gemäÿ dem Tuple (S 1,..., S N ) von choice subtrees spielt Σ i bezeichnet die (nicht leere) Menge von choice subtrees für P i, strategy set ein Element von Σ i wird Strategie genannt Strategieprol ist eine Menge, die von jedem Spieler genau eine Strategie enthält
Strategie(3) reine Strategie: P i wählt immer das gleiche Element aus Σ i gemischte Strategie: P i legt Wahrscheinlichkeiten für die einzelnen Strategien aus Σ i fest, überlässt seinen Zug somit dem Zufall dominante Strategie: diejenige Strategie, die P i den gröÿten Erfolg verspricht, unabhängig von dem was die Gegner spielen
Nash-Gleichgewicht Formale Denition Sei x i ein Strategieprol aller Spieler auÿer P i und sei S i eine Strategie von P i Es existiert ein Nash-Gleichgewicht, falls i, Si Σ i, Si S i : π i (S 1,..., Si,..., S N ) π i (S 1,..., S i,..., S N ) John Nash bewies, dass (mindestens ein) Nash-Gleichgewicht in jedem Spiel mit gemischten Strategien existiert.
Gefangenendillema(1) Beispiel für Nash-Gleichgewicht zwei Gefangene werden unabhängig voneinander verhört falls sie nicht aussagen droht ihnen eine Strafe von 2 Jahren (Indizienbeweise) falls sie gestehen beträgt die Strafe 4 Jahre Angebot (um Schweigen zu brechen): wer gesteht (und somit anderen belastet) kommt mit 0 Jahren Gefängnis davon, der andere muss 5 Jahre absitzen
Gefangenendillema(2) A schweigt A gesteht B schweigt A: -2, B: -2 A: 0, B: -5 B gesteht A: -5, B:0 A: -4, B: -4
Gefangenendillema(3) für jeden Gefangenen scheint es das beste zu sein, den anderen zu belasten, da dann strarei (dominante Strategie) kollektiv führt dies jedoch zu schlechterem Ergebnis, da nun für beide 4 Jahre Gefängnis anstatt 2 Jahre bei Schweigen dies ist ein Nash-Gleichgewicht
Gefangenendillema(4) beste Strategie (bei wiederholtem Spiel): Tit for Tat (wie du mir, so ich dir) zunächst kooperativ (schweigen) ggf. Rache für Vertrauensbruch jedoch schnell bereit zu vergessen und wieder zu kooperieren wurde in 1960er von Anatol Rapoport entdeckt erwies sich als sehr erfolgreich
Minimax Theorem(1) 1928 von von Neumann entwickelt Methode, um optimale gemischte Strategie für Zwei-Personen-Nullsummenspiele zu nden (man erwartet, dass beide Spieler optimal spielen) sie stellen ein Nash-Gleichgewicht dar
Minimax Theorem(2) Vorgehensweise: da Nullsummenspiel gilt: V : π 1 (S P1 ) = V, π 2 (S P2 ) = V man muss S P1 und S P2 nden ein Spieler will hohe Werte erzielen, der andere niedrige deshalb: ein Spieler zieht Züge mit hohen Werte, der andere die mit niedrigen Werten
Minimax(1) basiert auf Minimax-Theorem Tiefensuche auf Spielbaum je nach Ebene im Spielbaum wird Minimum oder Maximum der Kindknoten zurückgegeben Komplexität: O(b m ), wobei m = Tiefe des Baumes und b = Anzahl erlaubter Züge pro Node
Minimax(2) 1 def minimax (n, depth ): 2 if len ( n. children ) == 0: 3 return n. val 4 5 if depth % 2 == 0: # MAX 6 min = - sys. maxint - 1 7 for i in n. children : 8 cv = minimax (i, depth + 1) 9 if cv > min : 10 min = cv 11 return min 12 else : # MIN 13 max = sys. maxint 14 for i in n. children : 15 cv = minimax (i, depth + 1) 16 if cv < max : 17 max = cv 18 return max
Alpha-Beta-Pruning(1) Verbesserung des Minimax Algorithmus durch Pruning ignoriert Knoten, die das Ergebnis nicht beeinussen können senkt im Optimalfall die Laufzeit auf O( b m )
Alpha-Beta-Pruning(2) Speichern der beiden Werte α und β α bezeichnet den Wert, den P 1 mindestens erreichen wird β bezeichnet den Wert, den P 2 höchstens erreichen wird für die Werte v der Knoten von P 1 (Maximierer) gilt wenn v β wird die Suche hier abgebrochen, da P 2 diesen Wert nie weiterreichen würde wenn v > α, dann α = v für die Werte v der Knoten von P 2 (Minimierer) gilt wenn v α wird die Suche hier abgebrochen wenn v < β, dann β = v
Alpha-Beta-Pruning(3) 1 def alphabeta (n, depth, alpha, beta ): 2 if len ( n. children ) == 0: 3 return n. val 4 5 if depth % 2 == 0: # MAX 6 min = - sys. maxint - 1 7 for i in n. children : 8 cv = alphabeta (i, depth + 1, alpha, beta ) 9 if cv > alpha : 10 alpha = cv 11 if cv >= beta : 12 return beta 13 return alpha 14 else : # MIN 15 max = sys. maxint 16 for i in n. children : 17 cv = alphabeta (i, depth + 1, alpha, beta ) 18 if cv < beta : 19 beta = cv 20 if cv <= alpha : 21 return alpha 22 return beta
Winning Positions(1) einfaches Spiel: gegeben ein Haufen von n Münzen, zwei Spieler jeder Spieler darf pro Zug 1, 3 oder 4 Münzen wegnehmen gewonnen hat, wer die letzten Münzen nimmt man sieht sofort: gewinnen kann man, wenn noch 1, 3 oder 4 Münzen übrig sind man sieht auch: wenn noch 2 Münzen übrig sind, kann man nicht mehr gewinnen bei 7 Münzen genauso, denn hier kommt man nur auf 3, 4 oder 6 übrige Münzen
Winning Positions(2) diejenigen Situationen, in denen man den Sieg erzwingen kann, nennt man Winning Positions analog dazu: Losing Positions man erkennt: von einer Winning Position kommt man zu (mindestens) einer Loosing Position (und umgekehrt) dies muss man bei Zugwahl berücksichtigen man kann daher von nachfolgender Stellung auf eigene Situation schlieÿen
Winning Positions(3) Beispiel: noch 6 Münzen übrig man kann zu zwei Winning Positions ziehen (nämlich 5 und 3) und zu einer Losing Position (2) den Zug zur Losing Position muss man wählen sonst verliert man spielt man Misère-Variante bleibt Strategie erhalten, nur die Endpositionen müssen angepasst werden (d.h. 0 wird zu Winning Position usw.)
Nim(1) häug betrachtetes Beispiel für ein Zweipersonennullsummenspiel kann theoretisch mit den genannten Algorithmen berechnet werden Regeln: gegeben sind N Haufen H mit unterschiedlich vielen Streichhölzern H 1, H 2,..., H N die Spieler nehmen abwechselnd mindestens ein Streichholz von einem beliebigen Haufen weg gewonnen hat, wer die letzten Streichhölzer nimmt
Nim(2) man fand einfacheren Weg um potenziellen Sieger festzustellen man muss nur ein bitweises XOR der Streichholzstapel berechnen, d.h. X = H 1 H2... H N ist das Ergebnis 0 verliert der Spieler, der gerade am Zug ist, andernfalls gewinnt er hierfür wird angenommen, dass die Spieler optimal spielen es kann sich also nur durch Fehler eines Spielers der Ausgang des Spiels ändern
Nim(3) Strategie für Spieler ist: bilde die XOR Summe X aller Stapel bilde das Tupel S = (h X h H) nehme ein s i S für das gilt s i < X nehme von H i s i Streichhölzer Ausnahme: wenn nur noch zwei Stapel übrig, dann soviele Streichhölzer vom gröÿeren Stapel nehmen, dass Stapel gleichgroÿ werden Danach immer exakt so viele Streichhölzer nehmen wie der Gegner Variante: Misère gleiche Strategie einziger Unterschied: wenn nach Zug kein Haufen gröÿer 2 mehr übrig ist, dann ungerade Anzahl an Haufen der Gröÿe 1 übrig lassen
Josephus(1) n Menschen stehen in einem Kreis und jeder m-te wird erschossen Spiel endet, wenn nur noch einer übrig ist wo steht er?
Josephus(2) hier am Beispiel m = 2 trivialerweise ist J(1) = 1 durch Beobachtung kann man die folgenden Gesetzmäÿigkeiten feststellen wenn n ungerade: nach der 1. Runde ist der Index der übrigen Personen verdoppelt und um +1 verschoben daraus folgt: Josephus(2n + 1) = 2 Josephus(n) + 1, n 1 wenn n gerade: wieder ist Index der übrigen Personen verdoppelt, diesmal jedoch um -1 verschoben also gilt: Josephus(2n) = 2 Josephus(n) 1, n 1
Josephus(3) durch generieren einiger Lösungen ndet man weitere Gesetzmäÿigkeit n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17... J(n) 1 1 3 1 3 5 7 1 3 5 7 9 11 13 15 1 3... man setzt: n = 2 p + l und kann daraus ablesen: Josephus(2 p + l) = 2l + 1 das ist im Prinzip das gleiche wie ein zyklischer Linksshift von n um 1 man hat die Formel für beliebige m verallgemeinert: f (n, m) = (f (n 1, m) + m)%n
Literatur Russell, Stuart: Künstliche Intelligenz, ein moderner Ansatz Pearson Studium, 2004 Morris: Introduction to game theory Springer, 1994 Wikipedia http://www.topcoder.com/