ICFPコンテスト始まる

ICFPコンテストとは、年一回開かれるプログラミング言語の大会。ベスト3が得るのは、「自らの使用した言語がそれぞれ『目利きのハッカー御用達の言語』『多様な応用に適した素晴らしい言語』『まあ悪くない言語』と呼ばれる、という栄光」(および賞金)、という、おもに名誉をかけたプログラマーたちの闘いなのだ。

今年のテーマは警察と強盗、でした。
技術的な解説はT氏などにお任せするとして、ゲームの紹介を。

公式サイト。Leon Brocard氏によるイメージ画像。

遠未来、西暦2000年。関数型プログラミングは世界のすみずみまで普及し、人類はかつて想像しえなかったほどの贅沢を享受していた。関数型言語は誰にでも使えるほど簡単だったので、人類はすべてを---警察機能や犯罪までも---ロボットに任せており、人間のすることといえばロボットをプログラムすることだけであった。

ゲームの舞台は西暦2000年のバーチャル・ハイドパーク・シカゴ。ゲームが始まるや、警察ロボットチームは、銀行強盗ロボットが 54th and Ridgewoodの公園にて目撃されたとの情報を受け取り、情報収集能力に長けた徒歩か、高速移動が可能なロボクルーザーによって緊急出動する。

ゲームには一人の強盗と五人の警察が登場し、プレイヤー(プログラム)はこのいずれかの役をプレイする。

強盗ロボットは熱光学迷彩を装備しておりその姿は見えない。また衛星スキャナーを使って全ての警察ロボットの位置を把握している。警察ロボットは、銀行の侵入警報装置、強盗ロボットがたまに残す足跡、強盗ロボットに接近したときに感じる匂いなどの証拠によって、強盗ロボの位置を推理することができる。制限時間内に強盗を捕まえられれば警察側の勝利、逃げ切れば強盗の勝利である。

ゲームの勝者には、強盗ロボットなら盗み出した金が、警察ロボットなら保護された預金がスコアとして手に入る。強盗ロボットは警察に位置を知られていない有利性を生かして、マップに点在する銀行を襲い、なるべく多くの金を手にしなくてはならない。だが下手に銀行に侵入すればこちらの位置がばれるから、警備の隙を見計らうのだ。

ユニークなのは警察ロボット側のルールだろう。警察ロボットは5台1チームで行動する。そして、5台のロボット全てが異なるコンテスト参加者が作成したプログラムを載んでいるのだ。警察はそれぞれ自分が集めた情報を公開し、作戦を立て、投票により作戦を決めて行動する。5台のロボットをひとつの意思が操るなら、強盗を捕まえるのは実はやさしい。証拠は十分にあるのだ。逆に5台がうまく協力できなければ、強盗を捕らえるのは絶望的だ。

警官たちの利害は強盗を一刻も早く捕まえることでは一致している。しかし、強盗を最初に捕まえた警官にはボーナスが与えられるのだ。理性と協調をもって対しながら、最後の一歩を抜きん出ることのできたプログラムが勝者となるだろう。自らの得た情報を隠蔽するのか。またわざと嘘をつくのか。

プログラムたちは、ゲームの警察役と強盗役を平等に担当しながらトーナメントの総得点を競う。

さあ、勝利は誰の手に。

ロボコン系とでも言いましょうか。人間に成り代わってゲームを上手にプレイするプログラムを作れ、というコンテストはよくありますが、大概は2人対戦ゲームとか多人数乱闘。AIどうしの協力をここまで取り上げたゲームはいままで経験したことがありませんでした。ルールで定められたゲーム内の証拠から強盗の位置を推理するのはわりと簡単ですが、他の参加者のAIがどういった挙動にでるかを推理するのは正直お手上げです。

しかも、コンテストの全貌はこれだけではない・・・   (つづく)