以前,人狼BBSの非常に限定された環境の勝率を計算した.
ただ,簡単な計算モデルはその手法でできるが,あの調子で複雑なモデルをポーティングするのは僕の技量を上回るので,人狼BBSのフレームワーク(X村と呼ぶことにしよう
jinroh.cpp,
jinroh.h)を作り,そこに個人の戦略モデル(
X00.cpp)を投入して繰り返し実行することによって勝率の近似値を求めることにした.
フレームワークはCOや占い結果などを出力する話し合いのパートと個々の能力を行使するパートに分かれており,話し合いではかなり適当なメッセージ通信によってそれぞれのキャラクタが情報を得る.勿論人狼は赤ログで秘密の会話をすることも可能だ.
といっても人間の思考ルーチンをそのまま移植するのは大変なので,まずは非常に簡単なバカなモデルを作り,それをX村に投入して勝率を観測してみた.なお,基本的にX(n+1)村はXn村のモデルを継承している.
X00村 - 痴呆の村
戦略:誰もCOしない.吊りも人狼の喰いも全て乱数によって決定する.誰も操作せず,突然死もない村と思えばよい.
村勝率:23.83%
感想:村人12人に対して人狼3人(この場合,狂人と村人のアルゴリズムが等しいので村人は12とする)なので,村が有利な状況と思う人がいるけどそんなことはない.能力者が能力を発揮せねば村は狼の餌食だ.
X01村 - 食べ放題の村
戦略:狼が団結して投票.
村勝率: 2.89%
感想:あまりにも村人が馬鹿なので,狼の組織票によって吊りが行われる.馬鹿な村人にはもはや勝つ術はない.
X02村 - 占いの村
戦略:初日に占い師CO,占い結果報告もし,村人は黒がいれば吊り,白は吊らない,グレーは各自ランダム.狂人は完全ランダム投票.
村勝率:52.94%
感想:狼が馬鹿なので対抗COもせず,喰いもランダム.けど,相変わらず村が団結しないので狼の組織票が効いてしまい,真占い師が居るにも関わらず五分の勝負.
X03村 - 団結の村
戦略:吊る時に村人で団結して投票.
村勝率:76.69%
感想:団結すると勝率が跳ね上がる.リーダーシップを取る人間が村には必要であることが分かる.もしくは乱数を用いずに皆同じアルゴリズムで動く必要がある.例えばグレーは辞書順に吊るとか.
X04村 - 狩人の村
戦略:狩人は占い師を守る.占い師がいなければ確定白を守る.
村勝率:88.66%
感想:占い師の延命は村の勝率向上に繋がる.
X05村 - 共有者の村
戦略:共有者が初日に2人CO.
村勝率:96.16%
感想:確定白が増え,グレーが減れば勝率も上がる.
てことで,対抗COもないし狼の組織票にも気づかない現実離れしたモデルの村でした!(だめじゃん)
とりあえずこれから言える事は村側は団結しなければならないってことかな.
これは現実の世界にも当てはまるかもしれない.各自ばらばらに動いてしまう組織というのは脆い.反対に意思の統一ができている組織は強い.つまり,各人の協調性とトップのリーダーシップ,カリスマ性が強力な組織には不可欠ということ.つまり全体主義最強ってことだな.んだんだ.(ウソ)
人狼側の偽COなどのフィーチャーも取り入れたいところですが,そうなると命題論理というかパターン絞込みというか公務員の数的推理みたいな思考ルーチンが必要になってくるので結構大変かも.
あと,ソースがこの段階にして冗長かつ汚いのも困ったものです.もっと本質的な記述に専念できるようにうまくフレームワークを作らないといけない.それ以前の問題としてバグが潜んでそうですが.
参考 :
人狼BBSまとめサイト - 戦略議論板