ゲームAI研究について何も知らなくてもわかるGeneral Game Playingの概要

人工知能研究の一分野としてゲームAI研究があります.ゲームをプレイするのが上手いことは一般に知的能力が高いことを意味すると捉えられているため,人工知能の能力を測り,向上させるために,古くからゲームAIの研究が行われています.現実世界の複雑な問題(うまく株取引を行うとか,人間と自然な会話をするとか)に比べると,ゲームはルールがはっきりしてて比較的簡単取り組みやすい問題であり,また勝敗がはっきりするため性能が測定しやすいという利点もあります.

伝統的なゲームAI研究では主に1つのゲーム(チェス,将棋,囲碁,オセロ等)をうまく(人間の世界チャンピオンに勝てるくらい)プレイできるプログラムを作ることが目的とされてきました.そのためにそのゲームのプロプレイヤーの意見をもとに評価関数(ゲームの局面の良し悪しを判定する関数)をチューニングしたり,またチェスのように終盤は駒が減って単純になるゲームでは,この局面ではこの手を選べば絶対に負けないという表をあらかじめ(長期間コンピュータを動かし続けることで)作っておき終盤はそれを見るだけで済むようにしたりすることが行われました.チェスではIBMの開発したDeep Blueというプログラムが1997年に当時の世界チャンピオンを打ち負かすまでに至りました.

しかしそうのような1つのゲームでの強さだけを追求する研究の意義に疑問を投げかける声もあります.Deep Blueはチェスならは世界チャンピオンよりうまくプレイできますが,三目並べ(○×ゲーム)はプレイすることすらできません.また開発の段階では,プロプレイヤーの意見を取り入れてプログラムを改良したり,ゲームの解析をしたりしていますが,プログラムが実行時に行うことは単に評価関数や表に従って手を選ぶだけにすぎません.このようなプログラムは果たして知的と言えるのかという疑問が生まれるのは当然のことです.

この問題意識に応え,General Game Playingと呼ばれる研究分野が生まれました.General Game Playingでは,ゲームのルールさえ与えられれば,それがたとえ初めて見るゲームであっても,うまくプレイできるようなプログラムの実現を目指します.このゲームではこのような戦略がよい,というようなことは,プログラムが実行時に自分でゲームを分析して考え出さなければなりません.これはゲームAI研究における「考える」責任を人間からプログラムへ移す試みだといえます.

しかしそのようなことが実際に可能なのでしょうか.ゲームルールの記述のために,プログラムが処理しやすいGame Description Languageという専用の言語が提案され,実際にそれを処理しゲームをプレイする数々のプログラムが作られています.2005年からAAAI及びIJCAI(人工知能に関する国際会議)においてGeneral Game Playingコンペティションが開催されるとともに,各国のローカルな会議でもコンペティションが開催されており,世界中の研究者がプログラムの性能を競い合っています.コンペティションではプレイすることになるゲームは事前には知らされません.2012年のコンペティションでは,優勝したプログラムと人間(IBMの研究者)の間で"Carbon versus Silicon"と称する対戦も行われ,見事プログラムが勝利しました.

General Game Playingについては数多くの論文が書かれており,インターネット上にも,プログラムのソースコードを含めGeneral Game Playingに関する情報は豊富にあります.興味を持たれた方はGoogleGoogle Scholar等で調べてみるのがよいでしょう.