Implementierung der algorithmischen Spieltheorie in Python mit Nashpy

Die Spieltheorie ist eine Methode zur Untersuchung strategischer Situationen, in denen die Ergebnisse nicht nur von Ihren Handlungen abhängen, sondern auch davon, was andere tun werden.

Was ist eine strategische Situation? Erinnern Sie sich an die Arten von Marktstrukturen: Es gibt einen perfekten Wettbewerb, wenn alle Unternehmen Preise festlegen, dh sie müssen sich keine Gedanken über eine Preisstrategie machen, und es gibt ein Monopol, wenn es nur ein Unternehmen auf dem Markt gibt, das seine Preise festlegt. Also: Alles zwischen perfektem Wettbewerb und einem Monopol ist eine strategische Situation.

Die algorithmische Spieltheorie ist die Schnittstelle zwischen Spieltheorie und Informatik und zielt darauf ab, Algorithmen für Strategien zu untersuchen und zu erstellen.



Unter der Katze eine kurze Geschichte darüber, wie Sie die Spieltheorie in Python mithilfe der Nashpy-Bibliothek verwenden können.


Vom Herausgeber: Warum haben wir uns plötzlich an die Spieltheorie erinnert? Alles ist einfach - wir aktualisieren unsere Plattform kontinuierlich mit 900.000 Teilnehmern und sind ständig mit Situationen konfrontiert, in denen verschiedene Strategien entwickelt werden müssen. Zum Beispiel auf dem NTI-Expertenportal: ob alle in einer Reihe bestätigt werden sollen oder umgekehrt, dass niemand bestätigt werden soll, sondern nur um Bestätigung gebeten werden soll. Ein weiteres Beispiel: In Boiling Points wird regelmäßig ein Kampf um Ressourcen beobachtet, und es gibt Dilemmata - fragen wir alle Geräte auf einmal, schreiben reelle Zahlen in die Anzahl der Teilnehmer oder übertreiben sie? Darüber hinaus sollte die Lösung dieser Probleme mit dem größtmöglichen Nutzen für alle durchgeführt werden.

Nashpy


Wie der Name schon sagt, bietet die Bibliothek algorithmische Funktionen zum Erreichen des Nash-Gleichgewichts - eine Reihe von Strategien für zwei Spieler, bei denen jeder die beste Option für sein Verhalten auswählt, basierend auf einem ähnlichen Setup für den zweiten Spieler. Aus der Ferne ähnelt es dem Win-Win-Prinzip, ist jedoch auf minimale Verluste in jeder Situation ausgerichtet.

Um dieses Konzept zu verstehen, wenden wir uns dem beliebten Modell „ Prisoner Dilemma “ zu.

Sich ergeben oder sich nicht ergeben


Es gibt zwei Spieler (Gefangene), die entscheiden müssen, ob sie zusammenarbeiten wollen, ohne während des Verhörs durch die Polizei einen anderen Namen zu nennen. Die Nützlichkeit dieses Verhaltens wird für jeden Spieler auf drei Punkte geschätzt, wenn beide diesen Pfad wählen. Der Ausgangspunkt hierbei ist die Bestrafung: Wenn sich die Spieler gegenseitig herausgeben, können sie wegen „Verschwörungsaktion“, dh „Banditentum“, angeklagt werden, und die Bestrafung für sie ist in diesem Fall strenger als wenn sie separat handeln.

Wenn ein Spieler den anderen überholt (vorausgesetzt, er übergibt nicht), beträgt der Nutzen für ihn vier Punkte, für den anderen Spieler null Punkte. Wenn sich die Gefangenen gegenseitig ergeben, beträgt der Nutzen einen Punkt pro Bruder.

Um sich diese Optionen besser vorstellen zu können, legen Sie sie auf einen Teller, auf dem in den Zellen die Anzahl der Punkte für jeden Gefangenen angegeben ist, abhängig von der getroffenen Wahl:


P1 - Spieler 1, P2 - Spieler 2, C - Kooperation, NC - ein Spieler hat einen anderen bestanden

Am Ende ist die beste Option für beide, sich gegenseitig zu übergeben.

Warum arbeiten die Gefangenen nicht zusammen? Betrachten Sie die Strategie von Spieler 1 (P1):
  • Wenn Spieler 2 (P2) beschließt, mit P1 zusammenzuarbeiten, besteht die beste Strategie für P1 darin, Spieler P2 abzugeben, da 4> 3
  • Wenn P2 beschließt, P1 abzugeben, ist es rentabler, P1 abzugeben, um P2 zu spielen, da 1> 0 ist


Die Gewinnstrategie für P1 lautet also (NC; NC), was auch für P2 gilt. Somit ist das Nash-Gleichgewicht die Strategie (NC; NC), wenn sich die Spieler P1 und P2 gegenseitig der Polizei übergeben.

Wir übertragen die Theorie auf Python


Zuerst müssen Sie das Modul installieren. Dies kann vom Team pip install nashpyüber die Jupyter-Konsole erfolgen. Am Ende der Installation können Sie mit dem Festlegen der Spielbedingungen beginnen. Für zwei Spieler mit einem Ergebnis ungleich Null (dies ist der Standardwert in Nashpy) müssen Sie zwei Matrizen erstellen, die die Spielsituationen für jeden Spieler widerspiegeln. Für Spieler 1 sieht die Matrix beispielsweise folgendermaßen aus:

C.
NC
C.
3
0
NC
4
1


Für Spieler 2 wie folgt:

C.
NC
C.
3
4
NC
0
1


Lassen Sie uns dies in Python reproduzieren:

import nashpy as nash
import numpy as ns
P1=np.array([[3,0],[4,1]])
P2=np.array([[3,4],[0,1]])
prisoner_dilemma=nash.Game(P1,P2)

prisoner_dilemma




Wenn wir uns diese Schilder ansehen, können wir eine Einschätzung der Nützlichkeit der Interaktion der Spieler erhalten. Das heißt, wenn P1 nicht P2 und P2 P1 ergibt, sind die Gebrauchswerte (0, 4). Dasselbe können wir mit Matrixberechnungen in Nashphy erreichen. Wir nehmen einen Aktionsvektor als Sigma (wir haben zwei davon: um zusammenzuarbeiten oder einen anderen Gefangenen abzugeben), wobei der Wert 0 allen Zellen mit Ausnahme derjenigen zugewiesen wird, in der die Aktion stattfindet. Dann wird für Spieler 1 der Nutzen der Aktion wie folgt berechnet:



Für Spieler 2:



Anwendung der Formel auf das Szenario, wenn Spieler 1 eine Strategie für die Zusammenarbeit mit einem anderen Spieler gewählt hat und Spieler 2 beschlossen hat, Spieler 1 zu übergeben, erhalten wir:



Überprüfen Sie mit Nashpy:





Finden Sie heraus, ob der Algorithmus gefunden wird Nash-Gleichgewicht, das, wie wir bereits herausgefunden haben, (NC; NC) ist:





Wie Sie sehen können, besteht das Nash-Gleichgewicht aus zwei Vektoren, von denen jeder die Aktionen eines Spielers widerspiegelt: Für Spieler 1 ist dies [0; 1], wobei 1 im zweiten Feld bedeutet, dass Spieler 1 beschlossen hat, Spieler 2 abzugeben. Wir sehen ein ähnliches Bild für den zweiten Spieler.

PS was kann man weiterlesen


  1. Game Theory (Avinash Dixit und Barry Neilbuff) ist eine relativ neue Veröffentlichung des MYTH Publishing House. In dem Buch zeigen die Autoren anhand von Beispielen aus Kino, Sport, Politik und Geschichte, wie fast alle Unternehmen und Menschen an Interaktionen beteiligt sind, die in der Spieltheorie beschrieben werden.
  2. Konfliktstrategie (Thomas Schelling). Das Buch widmet sich der Untersuchung der allgemeinen Verhaltenslogik von Teilnehmern in Konfliktsituationen - der Spieltheorie. 1960 veröffentlicht, wurde es ein grundlegender Beitrag zu dieser Wissenschaft und legte den Grundstein für die Theorie des strategischen Verhaltens.
  3. Rock, Paper, Scissors: Spieltheorie im Alltag (Len Fisher) ist ein weiteres Buch über die Wissenschaft der Zusammenarbeit. Fisher zeigt, wie die Spieltheorie Biologen geholfen hat, die Entwicklung der Zusammenarbeit in der Natur zu verstehen und wie wir sie in unserer Gesellschaft anwenden können.

Source: https://habr.com/ru/post/undefined/


All Articles