Tags:
create new tag
, view all tags

Alternative Übung 14 - Spietheorie (Game)

Download

Motivation

Kooperative Strukturen finden sich allen Lebensbereichen, wie beispielsweise in geopolitischen Systemen, die Entscheidungen über die Entwicklung des Erdklimas treffen, in mikrosozialen Systemen, die sich auf Prüfungen vorbereiten oder in bakteriellen Gemeinschaften, die sich gegen Antibiotika verteidigen.

Die Entstehung kooperative Strukturen zu verstehen ist Gegenstand aktueller Forschung, denn die Gültigkeit unzähliger Erklärungsversuche wird weiterhin heftig debattiert. Der dieser Übung zugrundeliegender Ansatz aus der Spieltheorie ist ein Mittel, um etwas Licht ins Dunkle zu bringen.

Aufgabe

a) Schreiben Sie eine Spielstrategie in Form einer Player-Klasse.

b) Bringen Sie diese zur Übung am Dienstag mit und senden Sie sie per Email an Peter Dittrich (Subject muss das Wort "GamePlayer" enthalten).

Wir wollen die Strategien dann gegeneinander spielen lassen.

Nach einer ersten Runde, können Sie Ihre Strategie auch gleich vor Ort anpassen und in eine neue Runde schicken.

Kommen Sie auch, wenn Sie es nicht schaffen bis Dienstag eine eigene Strategie zu schreiben. Wärend der Übung können Sie das in einer Stunde schaffen.

Preise

Es wird zwei kleine Preise geben.

Jeder kann gewinnen! Denn die Preise werden verlost, gewichtet mit einer Wahrscheinlichkeit, die umgekehrt proportional zur Plazierung der Strategie ist.

Das Spiel und seine Regeln

Handlungsalternativen eines Spielers

Ein Spieler (Player) hat elf Handlungsalternativen: 0,1,2, ..., 10

Dabei bedeutet:

0 : defektieren (cheaten)

1 -10: kooperieren

Der Zahlenwert (multipliziert mit 10) entspricht dabei einem eingesetzen Betrag (Punkte).

Spielrunde

Ablauf einer Spielrunde, für zwei Spieler A und B:

  • Beide Spieler wählen einer Handlung: actionA, actionB aus {0, ... 10} gleichzeitig aus.

  • Die resultierenden Payoffs (Punkte) werden wie folgt berechnet und den Spielern gutgeschrieben:

Payoff

Der Payoff für Spieler A, gegeben actionA und actionB, ergibt sich wie folgt:

  • Beider Spieler kooperieren (actionA > 0 UND actionB > 0): payoffA = actionA * 2
  • Spieler A defektiert: payoffA = 10*actionB
  • Spieler A kooperiert (actionA > 0) und Spieler B defektiert (actionB = 0): payoffA = -10 * actionA

Die Idee dahinter: 10 * actionA entspricht einem Einsatz. Defektiert der andere Spieler B, so verliert A diesen Einsatz und B erhält ihn. Kooperiert aber der andere Spieler, so erhält A 20% von 10 * action A als Gewinn, also 2 * actionA.

Beispiele:

actionA actionB payoffA payoffB
0 0 0 0
1 0 -10 10
10 0 -100 100
10 10 20 20

Iteriertes Spiel = Begegnung

Zwei Spieler A und B spielen das Spiel wiederholt hintereinder. Dabei ist beiden Spielern unbekannt, wieviele Runden gespielt wird. Ihre Strategie sollte daher die Anzahl der Runden nicht berücksichtigen.

Die Spieler können sich die Aktion des anderen Spielers (und auch die eigene) merken und darauf in der nächsten Runde reagieren.

Der druchschnittliche Payoff pro Runde wird ermittelt und gespeichert.

Turnier

Ein typische Turnier besteht umfasst mehreren Spielern (z.B. 10) und jeder spielt gegen jeden mindestens ein iteriertes Spiel, das jeweils aus vielen Runden (etwa 10000) besteht.

Der durchschnittliche Payoff pro Runde bestimmt den finalen Rang.

Missverständnisse - Noise

Mit einer Wahrscheinlichkeit von 3% (Parameter.errorProbability) wird die gewählte Handlung umgekehrt, das heißt aus einer actionA = 0 wirhd actionA = 1 und aus actionA > 0 wird actionA=0.

Dies soll die an und ab auftretenden Missverständnisse in kooperativen Systemen modellieren.

Aussehen - Appearance

Jeder Spieler hat ein Aussehen, also einen Zahlenwert aus {0,1,2,3} (Parameter.maxAppearance).

Das Aussehen wird bei der Instantierung des Spielers zufällig, gleichverteilt für die Dauer des gesammten Wettkampfes festgelegt.

Ein Spieler kann das Aussehen des anderen Spielders sehen (wird by act(...) übergeben). Ein Spieler kann nicht den Namen (secretName) eines anderen Spielers sehen.

Programmierregeln - Anmerkungen

  • Implementierte Methoden (act, observe, newGame) müssen effizient sein und dürfen nicht viel Rechenzeit oder Speicher kosten. Da wir Millionen von Runden spielen, also etwa nicht jeden Zug für immer speichern und darauf arbeiten.
  • Bitte keine Tricks, wie Zugriff auf nicht-vorgesehene Methoden des Spiels oder andere Abweichungen von den Regeln, die technisch möglich wären.
  • Im Quellcode sind schon vier Spieler implementiert und treten gegeneinander an. Die kooperativen Strategien erlangen noch mitleidserregend geringe Payoffs. Können Sie das ändern?

Theorie

Falls Sie der theoretische Hintergrundinteressiert schlagen Sie nach: Spieltheorie, Handlungstheorie, Kooperation (emergence of cooperation).

Handlungstheorien finden Sie in der Soziologie, Psycholgie, Biologie und Informatik, jeweils mit unterschiedlichen Ausrichtungen, aber interessanten Überschneidungen.

Ihr Spieler kann

  • als rationaler Entscheider (etwa. rational choice theory und Ableitungen)
  • emotional gesteuert
  • Identitäts bewahrend, vgl. Behaviorismus
  • Sozialen Normen folgend
handeln.

(mehr später)

Topic attachments
I Attachment History Action Size Date Who Comment
Compressed Zip archivezip Game.zip r2 r1 manage 21.0 K 2018-02-02 - 14:15 PeterDittrich JAVA Quellcode (NetBeans Projekt), jetzt mit Pair.class
Java source code filejava Pair.java r1 manage 0.7 K 2018-02-02 - 14:10 PeterDittrich Pair Klasse
Topic revision: r3 - 2018-02-02 - PeterDittrich
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback

antalya escort bursa escort eskisehir escort istanbul escort izmir escort