強化学習、マルチエージェント強化学習、その他機械学習全般

機械学習関連のことをまとめていきます。強化学習関連が多いかもしれません

MENU

【ゲーム理論, python】ナッシュ均衡を簡単に計算できるライブラリ(2人ゲーム用)

今回は、ナッシュ(Nash)均衡を簡単にもとめてくれるpythonのライブラリNashpyを見つけたの紹介します。

Nashpyとは

Nashpyとは、二人ゲームにおける混合戦略のナッシュ均衡解を計算してくれるライブラリです。

カーディフ大学(イギリス)の数学者の方がメインで開発しているようです。 ライブラリはgithub上に上がっています。

github.com

インストール

インストールは簡単です。以下のコマンドでインストールできます。

pip install nashpy

使ってみる

シンプルなゼロサムゲームのナッシュ均衡解を求めてみようと思います。

利得表は以下のようになります。

1,2 A B
A 1, -1 -1,1
B -1,1 1,-1

このゲームのナッシュ均衡解は各プレイヤーの戦略がA, B = 0.5, 0.5となるときです。

コード

import nashpy as nash

A = [[1, -1], [-1, 1]] # プレイヤーAの利得表
B = [[-1, 1], [1, -1]]  # プレビューBの利得表

game = nash.Game(A, B)  # gameの定義

equilibrias = game.support_enumeration()  # 均衡解の計算(求める手法は他にもあるようです)
for eq in equilibrias:
    print(eq)

出力

(array([0.5, 0.5]), array([0.5, 0.5]))

各プレイヤーのナッシュ均衡戦略が出力されていることがわかります。
非常に便利だと思います。

参考文献

行動ゲーム理論入門

行動ゲーム理論入門