2020年度 情報生体システム工学実験IV

人狼ゲームの実習

最終更新日:2020年10月6日(渕田)

目次

情報生体システム工学科


実験内容

近年、人狼ゲームをコンピュータにやらせようという「人狼知能」の研究が盛んになってきている。

最初はIF-THENルールをもとにしたエキスパートシステムによる人狼知能がメインだったが、人工知能(AI)が容易に利用できるようになってきたこともあり、AIを活用した人狼知能の研究が盛り上がりを見せており、ここ数年は毎年世界大会が開催されるほどになってきている。

この実験では、機械学習を使用せずに人間が考える勝利戦略について考察する。

目的

人狼ゲームを題材として以下のことを目的とする。

ZOOM実験室

本実験は、同一IP問題を回避するためにZOOMを使用したオンライン実験室で実施する。

ZOOM実験室の接続情報は以下の通り。

学生は、13:00までに会議室に入室しておくこと。

手順

以下の手順で実験を進める。

特に休み時間等は指定しないので、班の中で話しあって適宜休憩をとること。

レポート

実験が終了したら必ずレポートを作成し提出しなければならない。

レポートの作成及び提出については以下の注意を守ること。


人狼ゲームとは

多人数で遊ぶ不完全情報ゲームのひとつで、村人陣営と人狼陣営に分かれて勝利条件を満たすためにプレイする。人数が変わるとルールが若干変わるが、ここでは8人以下のケースを対象とする。

勝利条件

村人陣営の勝利条件:人狼の全滅(村に平和が訪れた)

人狼陣営の勝利条件:人狼の数≧村人の数(村を滅ぼした)

役職

この実験では以下の4種類の役職を使用する。

役職 説明 陣営
村人 特に特別な能力はない。 村人
占い師 夜のターンにプレーヤーの一人を占って、その人が人狼かどうかを知ることができる。
ただし、役職までは分からない。
村人
狩人 夜のターンに一人を人狼から守ることができる。
狩人が2人以上いる場合はそれぞれに一人を守ることができる。
狩人どうしは誰が狩人なのかを知ることはできない。
村人
人狼 夜のターンにプレーヤーの一人を襲撃できる。
人狼どうしは誰が人狼かを知ることができる。
夜の間に人狼どうしで会話し、誰を襲撃するかを決める。
人狼が複数いる場合は、話し合って誰を襲撃するかを決める。
人狼
狂人 特別な能力はないが、多重人格者らしい。 人狼

なお、この実験では使わないが、他にも狩人、霊能者(霊媒師)、狂信者、妖狐、背徳者、てるてる、猫又、共有者、役人、怪盗、狼憑き、ものまね等の役職があるらしい。

人数による役職の割り振り

この実験では以下のように割り振ることとする。

人数 役職の割り振り
5人 村人2、占い師1、人狼1、狂人1
6人 村人2、占い師1、狩人1、人狼1、狂人1
7人 村人2、占い師1、狩人1、人狼2、狂人1
8人 村人3、占い師1、狩人1、人狼2、狂人1
9人 村人4、占い師1、狩人1、人狼2、狂人1
10人 村人4、占い師1、狩人1、人狼3、狂人1

シーン(ターン)

人狼ゲームには、「昼」、「投票」、「夜」の3つのシーンがある。

夜の行動には時間制限があり、時間切れになるとそのプレイヤーは突然死するので注意が必要である。

このシーンを、どちらかの陣営が勝利条件を満たすまで繰り返す。

なお、ゲームマスターは、ある程度の会話が収束したと判断して、シーンを先に進めることができる。


実習0:テスト人狼ゲーム

時間の目安:~13:30

人狼ゲームをやったことがない人もいるだろうから、ここでは練習として実際に人狼ゲームをやってみよう。

人狼ゲーム環境として、ウェブペースの人狼ゲーム環境である「人狼online」を利用する。

このサイトは、自由に村を作ってその中で人狼ゲームで遊ぶことができる。

TAによって、以下の村が作成されている。

「村に入る」をクリックし、上記の村名を入力して「村に入る」をクリック。

音が鳴るので、ヘッドフォンを装着すること。(自分のイヤホンでも良い)

TAも含めて人狼ゲームをプレイする。実習0は練習なので、TAからいろいろな指示があることがある。

発言の例としては、

など、普通に会話するのと同様に発言して良い。ただし、発言はすべてログに残ることに注意。

ゲームの目的は、自分の陣営を勝利に導くことであり、そのためにうその発言をしようが構わない。プレイヤーは相手の発言から誰が村人陣営で、誰が人狼陣営なのかを見極めて、適切な相手に投票する必要がある。

プレイ終了後、プレイログを表示し、テキストファイルにログを保存すること。ログファイル名は、

exp4-G-XXX-eN.txt

G: 班名(A,B,C,...など)
XXX: 自分の学籍番号の下3桁(ただし最終桁を除く)
N: 練習プレイの回数(1,2,3,...)

とすること。

ログの分析

プレイログを見ると、プレイ中に起こったすべて出来事を振り返ることができる。

ログの中で「鯖」というのは人狼ゲームサーバーのこと、「GM」というのはゲームマスター(管理者)のことである。

ログは下から上へと時間が流れている。

一番下には以下のように書かれている。

これはTAによって村が作成されたことを表す。続いて、以下のように村人たちが村に参加する。

ここまではゲームの準備である。そこで、この次(上)に【準備】と書いて、さらにその上の行を1行空ける。

その次からは、サーバーが各プレーヤーに役職を割り振っている。

ここまでが役職の設定なので、この次(上)の行に【役職設定】と書いて、さらにその上の行を1行空ける。

ゲームが開始すると、まず0日目の夜である。

夜は、能力を持ったプレーヤーがその能力を行使する。

人狼onlineでは、0日目の夜に人狼によって襲撃されるプレーヤーが存在する。これは初日犠牲者と呼ばれており、この実験では必ず村人になるようにしてある。初日でいきなり死んでしまった人は不運だが諦めるしかない。

初日犠牲者が死んだところで、0日目の夜が明け、1日目の昼になる。この次(上)に【0日目夜】と入れよう。

以下、同様にしてゲームの流れを追っていき、【1日目昼】や【1日目投票】、【1日目夜】・・・のように注釈を入れていく。

1日が進むたびに、投票によって死ぬ人と、人狼によって殺される人がおり、2名ずつ減っていくことが分かる。

必要なら、もう1回くらい練習プレイをしてもよい。


実習1:人狼ゲーム

時間の目安:~15:00

この実習では、通常の会話による人狼ゲームを行う。

プレイ回数は10回程度。

人狼ゲームをプレイする目的をもってなら、自由に発言して良い。今回はTAはプレーヤーとしては参加しない(観戦者となる)。

プレイが終了するたびに、ログをファイルに保存すること。

このとき、ログファイル名は、

exp4-G-XXX-jN.txt

とすること。練習プレイとは j の部分が異なる。

対戦結果の記録

対戦結果は以下の形で記録すること。

回数 役職 勝敗 0日目 1日目 2日目 3日目 4日目
1 村人 勝ち ×    
2 人狼 勝ち  
3 占い師 負け ×      
         

X日目は、X日目の夜に生きていたかを表す。その夜に処刑されたまたは襲撃されて死んだ場合は×にし、生きていた場合は○にする。


実習2:プロトコル人狼

時間の目安:~16:00

プロトコル人狼とは、発言内容が決まっている人狼ゲームのことである。

人狼知能プロジェクトによる世界大会では、プロトコル人狼部門が設定されており、多くのエージェントが参加している。

プロトコルとは「決まり」のことであり、発言に制限をかけて特定の形に定まった発言だけを許すことで、プレイの分析や実行をコンピュータにとってやりやすくしたものになる。

プロトコル人狼のためのプロトコル作成システムを作ったので、実習2ではこれを使って人狼ゲームを行う。(クリックすると別フレームで開く)

実習のやり方は実習1と同じである。

プレイ回数は10回程度で、

である。今回もTAは参加しない。

またログファイル名は、

exp4-G-XXX-pN.txt

とすること。実習1とは p の部分が異なる。

また、対戦結果の記録も同様に残すこと。


レポート作成

時間の目安:~17:40

レポートの型式は自由だが、先頭に以下の情報を書くこと。

この後から、レポートの内容を書くこと。

内容とは、

などである。

考察課題

以下の観点について考察し、自分の意見を述べること。

  1. 不完全情報ゲームとはどのようなものか。100字以上120字以内で述べよ。
  2. 人狼ゲームをプレイするとき、重要視するべき点は何だと思うか。100字以上200字以内で述べよ。
  3. プロトコル人狼をプレイするとき、自分が取っていた戦略について述べよ。(100字以上、上限なし)