PythonライブラリのAxelrodで実行するシミュレーション①(Axelrodの概要)|ゲーム理論について #5

f:id:lib-arts:20200109174614p:plain

ゲーム理論に関するシリーズとして、諸々取り扱っています。
#1〜#4ではWikipediaの内容を元にゲーム理論の大枠について抑えました。

ゲーム理論 - Wikipedia

#1では大まかな枠組みについて、#2、#3ではゲーム理論研究史について、#4ではゲーム理論の応用分野について取り扱いました。

ゲーム理論の概論②(ゲーム理論の研究史1)|ゲーム理論について #2 - lib-arts’s diary

ゲーム理論の概論③(ゲーム理論の研究史2)|ゲーム理論について #3 - lib-arts’s diary

ゲーム理論の概論④(ゲーム理論の応用分野)|ゲーム理論について #4 - lib-arts’s diary

#5からはゲーム理論のシミュレーション的な解法として一時期注目を集めたAxelrodの研究をPythonライブラリ化したAxelrodライブラリについて確認していきます。

Welcome to the documentation for the Axelrod Python library — Axelrod 0.0.1 documentation

以下目次になります。
1. Axelrodライブラリの概要
2. インストール、動作確認
3. まとめ


1. Axelrodライブラリの概要

Welcome to the documentation for the Axelrod Python library — Axelrod 0.0.1 documentation

1節では上記のドキュメントの冒頭である"Welcome to the documentation for the Axelrod Python library"を元に、Axelrodのライブラリの概要を確認していきます。PythonライブラリのAxelrodは、囚人のジレンマなどにシミュレーション的解法を導入したRobert Axelrodにちなんで名付けられています。

f:id:lib-arts:20200109175030p:plain

上記では、ライブラリの実装に関する概観(overview)についてまとめられています。それぞれ、(1)TiT-For-Tatのような100以上のゲームの戦略が実装されている、(2)Head-to-Head matches、(3)様々なオプションを持ったRound Robinトーナメント、(4)Moran Processのような個体群動態論 (Population dynamics)、などが特徴として挙げられています。

f:id:lib-arts:20200109175643p:plain

また上記では、すべての戦略はいくつかの次元(dimensions)でカテゴリ化される。この際の次元としては、(1)決定的か確率的か、(2)どのくらいの数ゲームを実施するか、(3)戦略がゲームの行列やmatchの長さという情報を利用するか、が具体例として挙げられています。

ライブラリの大枠については確認できたので、1節はここまでとします。


2. インストール、動作確認
2節ではインストールと、簡単な動作確認を行います。

f:id:lib-arts:20200109180654p:plain

Installation — Axelrod 0.0.1 documentation

まずはインストールを行います。上記に基づいて、pipコマンドを用いてインストールが可能です。

f:id:lib-arts:20200109180807p:plain

Welcome to the documentation for the Axelrod Python library — Axelrod 0.0.1 documentation

次に上記の"Quick start"の記述に基づいて簡単な動作確認を行ってみます。

import axelrod as axl

players = (axl.Alternator(), axl.TitForTat())
match = axl.Match(players, 5)
interactions = match.play()

print(interactions) 

上記の実行結果は下記のようになります。

f:id:lib-arts:20200109181150p:plain

ここでCは協力(cooperation)、Dはdefectionの略のようです。TitForTatでは相手がDの時は次の回でD、相手がCの時は次の回でCを選んでいることが上記より読み取れます。

インストールの確認と簡単な動作確認ができたので2節はここまでとします。


3. まとめ
#5では囚人のジレンマに対するシミュレーションを用いたアプローチを実装したPythonライブラリであるAxelrodの概要と、インストール、簡単な動作確認を行いました。
大体の概要についてはつかむことができたので、#6以降では下記のチュートリアルの内容を元により詳細の機能の確認を行っていければと思います。

Tutorials — Axelrod 0.0.1 documentation