[PYTHON] Spieltheorie mit Kombinationsoptimierung lösen

Was ist das

In Spieltheorie Im Fall des Nullsummenspiels kann die optimale Mischstrategie durch lineare Optimierung (LP) erhalten werden [^ 1]. Versuchen wir es mit Python am Beispiel des arrangierten Janken.

Informationen zur linearen Optimierung finden Sie unter Kombinationsoptimierung verwenden.

[^ 1]: Aus dem Seminar "ODER beginnend mit Excel Solver"

Janken gewinnt Tabelle

Bestimmen Sie die Verstärkungstabelle (Translokation) wie folgt. Wenn Sie die Goo (G) gewinnen, wird Ihre Punktzahl vervierfacht.

Gegner \ ich G C P
G 0 -1 1
C 4 0 -1
P -1 1 0

Formulierung

―― Nehmen wir an, dass das Verhältnis von Goo, Choki und Par $ x, y, z $ beträgt. (Gemischte Strategie)

Zielfunktion $ w $ → Maximieren
Einschränkungen $ x + y + z = 1 $
-y + z \ge w
$ 4x - z \ge w$
$ -x + y \ge w$
x,y,z \ge 0, ~~~ w: free

Löse mit Python

python


from pulp import *
from ortoolpy import addvar, addvars

a = [[0, -1, 1], [4, 0, -1], [-1, 1, 0]]
m = LpProblem(sense=LpMaximize) #Mathematisches Modell
xyz = addvars(3) #Variable x,y,z
w = addvar(lowBound=None) #Variable w
m += w #Zielfunktion
m += lpSum(xyz) == 1 #Einschränkungen
for i in range(3):
    m += lpDot(a[i], xyz) >= w #Einschränkungen
m.solve() #Lösung
print(value(w), [value(v) for v in xyz])
>>>
0.16666667 [0.16666667, 0.33333333, 0.5]

Wenn Sie Goo, Choki und Par in einem Verhältnis von [1/6, 1/3, 1/2] ausgeben, können Sie sehen, dass der erwartete Wert auf 1/6 reduziert werden kann, unabhängig davon, welche Art von Bewegung der Gegner ausführt.

In nicht kooperativen Spielen ist das interessante Ergebnis, dass je höher der erwartete Wert ist, desto geringer der Prozentsatz der Hände (goo) ist, die für Sie von Vorteil sind.

das ist alles

Recommended Posts

Spieltheorie mit Kombinationsoptimierung lösen
Lösen Sie ein 4-Farben-Problem mit Kombinationsoptimierung
Lösen von Problemen bei der Organisation von Schulbezirken durch Kombinationsoptimierung
Lösen des N Queen-Problems mit kontinuierlicher / kombinierter Optimierung
Lösen des N Queen-Problems mit Kombinationsoptimierung
Gruppieren von Spielen mit Kombinationsoptimierung
Lösen von "Würfeln in Würfeln" mit Kombinationsoptimierung
Maximieren Sie den Restaurantverkauf durch kombinierte Optimierung
Sehen Sie sich Wale mit Kombinationsoptimierung an
Bereiten Sie die Straße mit Kombinationsoptimierung
Lösen von Rucksackproblemen mit den OP-Tools von Google - Üben der Grundlagen von Kombinationsoptimierungsproblemen
Lassen Sie uns Bücher mit Kombinationsoptimierung flach stapeln
Verwenden Sie die Kombinationsoptimierung
Erstellen Sie ein akademisches Programm mit Kombinationsoptimierung
Straßeninstallation durch Optimierung
Gruppierung nach Kombinationsoptimierung
Einführung in die Optimierung
Lösen mathematischer Optimierungsmodellübungen mit den OR-Tools von Google (3) Probleme bei der Produktionsoptimierung
Versuchen Sie die Funktionsoptimierung mit Optuna
Mathematik mit Python lösen (unvollständig)
Sternumfrage mit Kombinationsoptimierung
Programmier-Lernspiel mit SenseHAT
Stellen Sie unzusammenhängende Fotos mit Optimierung wieder her!
Nampre mit Python lösen (Teil 2)
Einfaches Tippspiel mit DragonRuby
Passen Sie die Hyperparameter mit der Bayes'schen Optimierung an
Lösung des Planungsproblems der Krankenschwester (Schichtoptimierung) mit einem genetischen Algorithmus