[C#]Qiita Pythonで人工社会シミュレーションをC#に移植してみました。

「その問題、やっぱり数理モデルが解決します」を読んで、データ分析の勉強をしています。

  

 この書籍のP100~120に「ゲーム理論」が解説されており、その理論を応用したシミュレーションを実装したいと考えました。この書籍では、数式を用いたナッシュの均衡を求めるまでが紹介されており、シミュレーションの実装については書かれていませんでした。

 ネット上で検索を行うと「Pythonで人工社会シミュレーション」と言う記事を見つけることができました。この記事によるとゲーム理論などを用いたシミュレーションは「マルチエージェントシミュレーション(エージェントベースモデリング)」とのことです。この記事では、pythonでの実装がありましたので、こちらをC#に移植しました。

 残念ながら、C#にpythonのnetworkxのようなライブラリは無く、シミュレーション対象のエージェントのつながりを構築するBarabashi-Albert Scale Free Networkを容易にすることができません。Github上で以下の実装が公開されており、この実装を用いて移植を行っていました。

https://github.com/wang-xinhong/Barabasi-Albert-Model-CSharp-Generator

 処理の解説は移植元の記事を読んでいただくのが最もよいかと思い、ここではソースコードの公開だけを行っています。

ソースコードは以下にて公開しています。

https://github.com/garakutanokiseki/GameLogi-MAS

0 件のコメント :

コメントを投稿