どうもhalfたこ焼です。皆さん人狼やってますか?僕はアイドル育ててます。
実は卒業研究で人狼AIを作ることになりましてですね。どうせなら頑張ってみようかなと。
(まあ今年の大会は終了してるので学校在学中には出場できないんですけどね)
人狼知能プロジェクトとは
多分このブログを見る人は僕のTwitterから飛んできた人狼ゲームでの知り合いの人が多いと思うんですけど、その人達からしたらそもそもなんやねんって感じだと思うので簡単に説明します。
人狼ゲームをプレイするAIをつくろう!
ね?簡単でしょ?
一応部門が2つあって(3つ目は今回は除外)プロトコル部門と自然言語部門に分かれてます。いずれは人狼OnlineのCPUに導入できたらなと思ってるので自然言語も組みたいのですが専門知識が必要とかなんか難しそうなことが書かれてたので今回はパスです。暇な時に詳しい人とやりましょう。
ちなみにAIのことは以後エージェントと呼称(することもあります)
プロトコル部門
1.(外交上の)儀礼、典礼。
Google
2.(条約の)原案。議定書。
3.コンピュータ システムで、データ通信を行うための規約。情報フォーマット、交信手順を定める。
まあ意味としては3が強いんでしょう。何をしてるかというと自然言語をもっと簡単にしましょうということです。例を示します。
A:占いCO! だれだれ●
B:預言者です。だれだれは人狼ではなかったです。
C:超占いCO 私は一日に2つ占い結果を出すことができます
私たちは人間ですからどれも(?)占いCOを意味していることを理解できます。しかしAIはそれぞれの文を登録しなければ認識できません。そのためその行動をしたい場合の文を固定した部門がプロトコル部門です。例えば「占いCO Player 色」で固定するとかですね。
そうやって文を固定化した上で数百試合して勝率の高いAIを決めるのが目的となっています。
今回はこちらをベースに考えます。
自然言語部門
要するに上記の例の文章でも読み取れるようなAIを作るのがこっちの部門ですね。プロトコル部門とは違い勝率ではなくより人間的に見えるかどうかを基準に大会の優勝者が決まります。
所謂チューリングテストに近いものですね。深いところはさっぱり分かりませんが
早速動かしてみる
人狼知能プラットフォームのダウンロード
まずは人狼知能プラットフォームを入れます。要するに試合の基盤です。必要なJAVAは11。普段使いのPCには入ってますが研究室のMacBook Airには当然入ってないためインストールすることになりました。
JAVA11が入っていることが確認できたら一番上のalwolf-ver0.6.3.zipをダウンロード。
その後は展開して(最近解凍って言う人減った気がする)何かファイルがいい感じにあればOK
ゲームの設定
AutoStarter.iniを適当なテキストエディタで開く
lib=./
log=./log/
port=10000
game=1000
view=false
#C#=PATH_TO_C#_CLIENT_STARTER
setting=./SampleSetting.cfg
agent=5
Sample1,java,org.aiwolf.sample.player.SampleRoleAssignPlayer,WEREWOLF
Sample2,java,org.aiwolf.sample.player.SampleRoleAssignPlayer,SEER
Sample3,java,org.aiwolf.sample.player.SampleRoleAssignPlayer
Sample4,java,org.aiwolf.sample.player.SampleRoleAssignPlayer
Sample5,java,org.aiwolf.sample.player.SampleRoleAssignPlayer
#PythonPlayer,python,PATH_TO_PYTHON_PLAYER_FILE
#C_SharpPlayer,C#,PATH_TO_PLAYER_DLL:CLASS_PATH,SEER
各々の説明は省略。とりあえずこうなっていれば特に設定は変えなくていいです。
gameだけ数を増やしてあるのでお好みで調整してください。
ちなみにviewをtrueにするとゲーム進行が見やすくなります。(その場合ゲーム数は1が望ましい)
ちなみに「エージェント名」「クラスパス」「希望役職」です。
希望役職を消せば全員ランダムで試合できます。
試合をしてみる
Windowsの方はAutoStarter.batをクリック。Macの方はターミナルからaiwolfのファイルまで移動して[./AutoStarter.sh]で実行すれば試合が始まる。
写真はWindows。やっぱり慣れてる方が楽ですね。ただMacのが早いです。これがM1チップの力か。
はっ。Macでトリップ検索すれば捗る…!!
まとめ
まあ今回は初歩の初歩でサンプルエージェントでの試合でしたが次の記事ではC#やJAVA等で作られたエージェントをサンプルエージェントと戦わせてみたいと思います。
後プログラム全然わかんない機械専攻マンなのでシステム系人狼プレイヤーの方は手を出してみるのもどうでしょうか。僕はその上澄みをかっさらいたいです。