説明

ゲーム用人工知能

【課題】プラットフォームゲームに適するゲームのAIプログラムを提供する。
【解決手段】プログラムは,プラットフォームのゲームの解を決定するステップである,解の初期化(S101),初期の解と新しい解の選択(S102),第1の適合度スコアの比較(S103),現在の解の生成(S104),他の新しい解の生成と適合度スコアの比較の繰り返し(S105),及び状態の変換(S106)をコンピュータに実行させる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,プラットフォームにおけるゲームの人工知能プログラムに関する。
【背景技術】
【0002】
チェスや囲碁のようなボードゲームをプレイする人工知能(AI)の利用が広く知られている。これらの研究分野は,自ら興味のある問題空間を探査するアクションゲームに似ている。そのため,使用するアルゴリズムは,かなり特定の領域になる傾向があった。同様に,最近のいくつかの論文では,レーシングゲームやパックマン(登録商標)などのゲームが取り上げられているが,同じような問題が指摘されている。これは,他のプラットフォームのゲームのAIでも関心事になるが,研究はほとんど行われていない。
【0003】
面白いことに,たとえ,スーパーマリオブラザーズ(登録商標)のようなゲームが人気を得ていても,プラットフォームのゲームは,それほどAI研究の目的とされなかった。これは,相互に敵対者の関係にないゲームには,キャラクターとしてのAIが必要がないという事実があることから(非特許文献1参照),AI研究は,どこか他の分野で行われていたことが理由として考えられる。
【0004】
国際公開WO2009−120601号パンフレットは,‘COMBINING SPECULATIVE PHYSICS MODELING WITH GOAL−BASED ARTIFICIAL INTELLIGENCE’を開示している。この文書は,ゲームに関する目標志向のAI(goal−oriented AI)が開示されており,この文書の図1A及び図1Bには,様々な状態と動きを有するマップが開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】国際公開WO2009−120601号パンフレット
【非特許文献】
【0006】
【非特許文献1】J.Togelius,S.Karakovskiy,J.Koutnik,and J.Schmidhuber,‘Super mario evolution,’in Proc.IEEE Symp.Comptational Intelligence and Games CIG 2009,2009,pp.156−161
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の1つの目的は,プラットフォームのゲームに適するゲームAIプログラムを提供することである。
【0008】
本発明の他の目的は,プラットフォームのゲームにおいて高性能を実現する,ゲームAIプログラムを提供することである。
【課題を解決するための手段】
【0009】
本発明は,基本的には最近導入された探索アルゴリズムを基にしている。このアルゴリズムは,プラットフォームのゲームの大領域を探索するのに非常に適している。特に,レヴィフライト(Levy Flight)を利用することが適している。しかしながら,レヴィフライトは,プラットフォームのゲームのような非数値問題を適用することができない。そこで,本発明の好ましい態様は,マッピングを使用する。レヴィフライトをマッピングすることで,数値を状態から成る解に任意に変化させる。このようなマッピングを行うことで,状態の集合を含むどのプラットフォームのゲームにも使用できることになる。さらに,プラットフォームのゲーム空間の探索を最適化するために,適した解を有する領域に焦点を当てる,ソフトマックスヒューリスティックが適用される。
【0010】
本発明の第1の側面は,プラットフォームのゲームAIプログラムに関する。本プログラムは,コンピュータに下記のステップを実行させることができる。本プログラムは,コンピュータに,解を初期化させてもよい。解は,キャラクターの一又は複数の状態を含む。1つの状態は,キャラクターのある動きによって,他の状態とリンクされている。例として,スタート,右に動く,右に動く,ジャンプする,右に動く,そしてファイアの状態である。初期化はランダムに実行されてもよい。つまり,一又は複数の動きは,ランダムに選択されてもよい。そのとき,次の状態は,ある動作によって決定されるため,解は,動作の情報により決定されてもよい。本発明の好ましい態様は,初期化が,アルゴリズム又はソフトマックスのヒューリスティックの手段により実行されることである。
【0011】
そして,コンピュータは,初期の解と新しい解を選択する。初期の解は,存在しないか,又は上記初期化される解からランダムに選択されてもよい。例えば,初期の解は,スタート,右に動く,右に動く,ジャンプする,右に動く,ファイアである。新しい解は,スタート及びジャンプである。
【0012】
次に,コンピュータは,初期の解の適合度スコアと新しい解の適合度スコアを比較する。適合度スコアは,周知のエンジン又はアルゴリズムの手段により計算されてもよい。その時,コンピュータは,現在の解を生成する。初期の解の適合度スコアが,新しい解の適合度スコアよりも大きいか又は同じ程度である場合,現在の解は初期の解となる。新しい解の適合度スコアが初期の解のそれよりも大きい場合には,現在の解は新しい解となる。その後,解が選択されなかった比較は,放棄されてもよい。
【0013】
また,コンピュータは,改訂される現在の解を生成するために,他の新しい解の生成と現在の解の適合度スコアと他の新しい解の適合度スコアの比較を繰り返す。
【0014】
好ましくない状態が多数ある場合の解は,好ましくない解となるだろうし,確率pでの解は,上記アルゴリズムの反復中に変換されるだろう。好ましくない状態は,キャラクターの死を含んでもよい。コンピュータは,最も悪い適合度スコアを有する解が,所定の確率で,解の候補からランダムに新しく選択される解に変換されるように,解の適合度スコアを比較してもよい。解は,初期の解と生成される解を含んでもよい。このアルゴリズムは,最も好ましい解を維持しながら,好ましくない解を取り除くので,解はより好ましくなる。ランダムな選択は,状態に対応する数値を使用するレヴィフライトアルゴリズムにより実行される。
【0015】
レヴィ分布は,xの値が大きいと,べき乗則1/(x1+γ)により減少する。ここで,γの値は0と2の間にある。γ=2のときガウス型になるので(ガウス型がλ=2に一致する時),ブラウン運動は,レヴィ運動の極端な例とみなすことができる。ガウス分布に比べると,レヴィ分布は,長距離であっても急速に減少しない。ブラウン運動の場合,各ジャンプは通常小さく,分布の分散であるxは有限である。しかし,レヴィ運動の場合,分布の分散を発散させるため,小さいジャンプは大きいジャンプ又は飛ぶ(flight)に変えられる。つまり,レヴィでのジャンプは,特定の長さの尺度を有しない。したがって,プラットフォームのゲーム空間は非常に巨大なため,レヴィフライトは,プラットフォームのゲームのAIプログラムに適している。
【発明の効果】
【0016】
本発明は,プラットフォームのゲームに適するゲームAIプログラムを提供することができる。
【0017】
本発明は,プラットフォームのゲームで高性能を実現できるゲームAIプログラムを提供することができる。
【図面の簡単な説明】
【0018】
【図1】図1は,本発明の1つの態様に係る,ゲーム装置100の構成の例を示すブロック図である。
【図2】図2は,本発明のプログラムが実装されるコンピュータのブロック概念図である。
【図3】図3は,概念マップの例である。
【図4】図4は,解の概念マップの例である。
【図5】図5は,本発明のプログラムを実現させるフローチャートを示している。
【図6】図6は,解を表す一組の状態‐動作の集合を示している。
【図7】図7は,TSPの解と数値の大小の変化を示している。
【図8】図8は,図6に適用できるレヴィ変異の例を示している。
【発明を実施するための形態】
【0019】
本発明の第1の側面は,ゲームのプログラムに関する。特に,プラットフォームのゲームAIプログラムに関する。本プログラムは,コンピュータに実装されてもよい。コンピュータの例は,Play Station(登録商標),Nintendo DS(登録商標)及びNintendo Wii(登録商標)等がある。本プログラムは,プログラムからの命令に従ってコンピュータに行わせてもよい。
【0020】
プラットフォームのゲーム(又はプラットフォーマ)は,ビデオゲームのジャンルである。プラットフォームのゲームにおいて,1つ又は複数のキャラクターは,移動し,得点し,1つ又は複数のゴールを探索する。プラットフォームのゲームの例は,スーパーマリオブラザーズ(登録商標)である。
【0021】
本発明は,プラットフォームのゲーム用のAIプログラムに関する。したがって,コンピュータは,そのようなプラットフォームのゲームのプログラムを実装してもよく,本発明のプログラムは,すでに実装されたプログラムを使用してもよい。つまり,コンピュータは,キャラクター,敵,環境,マップ,動作などを含むプラットフォームのゲームの情報を格納するメモリを含んでもよい。
【0022】
下記では,図を参照して本発明の1つの態様を説明する。図1は,本発明の1つの態様に係る,ゲーム装置100の構成の例を示すブロック図である。ゲーム装置100は,装置の各構成要素が取り付けられている携帯可能な機器本体10を有している。
【0023】
機械本体10の表面部は,ディスプレイ50と操作入力部21を有している。ディスプレイ50は,上部の画像表示部51と下部の画像表示部52の複数の画像表示部を有する。操作入力部21は,電源スイッチや十字キーなどの複数のスイッチやキーで構成されている。
【0024】
機械本体10に配置される回路には,制御部11,RAM12,ハードディスクドライブ(HDD)13,音響処理部14,グラフィックス処理部15,通信インターフェース17,インターフェース部18,フレームメモリ19,及びカードスロット20が含まれる。制御部11,RAM12,HDD13,音響処理部14,グラフィック処理部15,通信インターフェース17,及びインターフェース部18は,それぞれ内部バス22に接続されている。
【0025】
CPU,ROMなどを含む制御部11は,HDD13又は記録媒体70に格納される制御プログラムに従って,ゲーム装置100全体を制御する。制御装置11は,例えばタイマー割り込みを生成するのに使用される内部タイマーを有する。RAM12もまた,制御部11の作業領域として使用される。
【0026】
音響処理部14は,音響信号のD/A変換及びA/D変換を行う音響入出力インターフェース機能を有する。また,音響処理部14は,スピーカなどで構成される音響出力装置30に接続されている。音響処理部14は,様々な制御プログラムで処理を実行する制御部11からの出力指示により,音響信号を音響出力装置30に出力する。
【0027】
グラフィック処理部15は,上部の画像表示部51と下部の画像表示部52を有する表示部50に接続されている。グラフィック処理部15は,制御部11の描画指示により,画像をフレームメモリ19に分配し,上部と下部の画像表示部51,52に画像を表示するビデオ信号を出力する。ビデオ信号により表示される画像の切り替え時間は,例えば1フレーム1/30秒に設定される。
【0028】
プログラムなどが格納される記録媒体70は,カードスロット20に挿入される。本発明の態様の記録媒体70は,書き込み可能なフラッシュメモリのような半導体メモリである。通信インターフェース17は,無線又は有線により他のゲーム装置100に接続可能であり,また,インターネットのような通信ネットワークにも接続可能である。機械本体10は,通信インターフェース17の通信機能により他のゲーム装置100と通信し合うことが可能である。
【0029】
操作入力部21,カードスロット20,及びタッチパネル40は,インターフェース部18に接続されている。インターフェース部18は,プレーヤ(ユーザー)の操作を基にした操作入力部21からの指示データ,及びタッチペン41によるタッチパネル40のプレーヤの操作を基にした指示データを,RAM12に格納する。その後,制御部11は,RAM12に格納される指示データにより様々な算術処理を実行する。
【0030】
タッチパネル40は,上下の画像表示部51,52のどちらか一方又は,両方の表示スクリーン側に積層されている。したがって,制御部11は,タッチパネル40が積層される上下の画像表示部51,52のいずれか一方又は両方の表示スクリーン側での表示タイミングを管理,制御し,タッチペン41などによるタッチパネル40の操作のタイミングと位置座標を管理,制御することにより,プレーヤの入力操作に応じた入力情報を認識する。ディスプレイ50は,上下の画像表示部51,52のような複数の画像表示部を有する代わりに,単一の画像表示部で構成されていてもよい。
【0031】
インターフェース部18は,制御部11からの指示に従って,RAM12に格納されるゲームの進行を示すデータを,カードスロット20に挿入される記録媒体70に格納し,又は記録媒体70に格納される中断時のゲームデータを読み出し,データをRAM12に転送することなどの処理を実行する。
【0032】
ゲーム装置100でゲームをプレイする制御プログラム等の様々なデータは,記録媒体70に格納されている。記録媒体70に格納される制御プログラムの等の様々なデータは,記録媒体70が挿入されるカードスロット20から,制御部11により読み出され,RAM12にロードされる。
【0033】
制御部11は,RAM12にロードされる制御プログラムにしたがって,グラフィックス処理部15に描画指示を出力すること,又は音響処理部14に音響出力指示を出力するような処理を実行する。制御部11が,処理を実行している間に,ゲームの進行に応じて途中で発生するデータは,作業メモリとして使用されるRAM12に格納される。
【0034】
図2は,本発明のプログラムが実装されるコンピュータのブロック概念図を示す。ゲーム装置100は,マッピング手段110,解探索手段111,レヴィフライト手段112,及びソフトマックス手段113を含む。各手段は,プログラム及びゲーム装置のハードウエアにより実装されてもよい。
【0035】
コンピュータ(又はゲーム装置)は,状態と動作の関係を示す概念マップを生成してもよい。本発明のプログラムはプラットフォームのゲーム用であるから,ある状態は,ある動作によって,メインキャラクターの他の状態に関係する。マリオのようなメインキャラクターは,標準型プラットフォームのゲームプレーヤによって制御されてもよい。本発明の構成において,メインキャラクター,つまりAIキャラクターの動作は,本発明のアルゴリズムにより計算される。メインキャラクターの1連の動作,つまり,AIキャラクターの1連の状態が,プラットフォームのゲームのゲームAIプログラムの解となる。
【0036】
図3は,概念マップの例である。図3において,ノードはAIキャラクターの取りえる状態であり,端は,AIキャラクターが行える動作である。動作は,‘J’,‘L’,‘R’でそれぞれ示される,‘ジャンプ(jump)’,‘左に動く(move left)’,‘右に動く(move right)’を含んでもよい。スーパーマリオブラザーズ(登録商標)における動作は,‘F’で示される‘ファイア(fire)’又は‘早く動く(move fast)’,‘D’で示される‘しゃがむ(duck)’をさらに含んでもよい。図3で示されるように,マップは,複数のノードを含んでおり,各ノードは,AIキャラクターの状態を定義する。全ての状態は,動作によって他の状態にリンクされている。本発明のAIアルゴリズムは,ゴールへの最も適する解を計算する。解は,いくつかの動作といくつかの状態を含んでもよい。
【0037】
例えば,プログラム及びコンピュータのハードウエアにより達成されるマッピング手段110は,マップを生成してもよい。本発明の好ましい態様は,ソフトマックス手段113を使用してもよい。ソフトマックス手段113は,周知のソフトマックスプログラムを含むか又はソフトマックスアルゴリズムを認識できる。ソフトマックスプログラムの詳細は,本明細書の実施例で説明されている。ソフトマックスは,商業的に利用可能であり,ソフトマックススカッシング(squashing)は,例えば,J.S.Bridle著‘Probabilistic interpretation of feed−forward classfication network outputs,with relationship to statistical pattern recognition’,F.Fogelman Soulid and J.Herault,編 Neurocαmputing:Algorithm,Architectures and Applications,pages 227−236,NATO ASI Series で説明されている。
【0038】
図4は,解の概念マップの例である。マップの各ノードは,解に対応している。円内の‘X’は,例えばAIキャラクターの死などの失敗状態を意味している。円内の‘10’は,得点を意味している。
【0039】
マッピング手段110は,動作情報を格納するメモリから,状態を読み込んでもよく,メモリから動作を読み込んでもよい。マッピング手段110は,初期状態と読み込んだ動作の情報により,次の状態を計算することができる。ゴールに到達する動作の連続が,解となってもよい。つまり,解は状態の集合であってもよい。
【0040】
初期の解は,計算される解から,ランダムに選択されてもよい。初期の解が計算された後,例えば,マッピング手段110は,解の候補を計算してもよい。処理の実行において,マッピング手段110は,メモリから1つ又は複数の動作を読み込んで,次の解を計算してもよい。
【0041】
解探索手段111は,解の候補から新しい解を選び出してもよい。その時,解探索手段111は,初期の解の適合度スコアと新しい解の適合度スコアを比較してもよい。適合度スコアを計算する方法は,当該技術分野ではすでに周知である。例えば,好ましくない状態を含む解は,低いスコアとなってもよい。好ましくない状態の例は,死や失敗である。適合度スコアの他の要因は,ゴールを探索する必要時間であってもよい。もし,ある解が,他の解の時間よりも多くの時間を必要とするならば,その解のスコアは低くなってもよい。適合度スコアを計算する例は,特許文献1に開示されている。解探索手段111は,適合度スコアを計算した後,メモリに解のスコアを格納してもよい。適合度スコアを比較する時,解探索手段111は,格納される適合度スコアをメモリから読み込んでもよく,さらに,そのスコアを比較してもよい。
【0042】
解探索手段111は,比較の結果に基づく現在の解を決定してもよい。もし,初期の解の適合度スコアが新しい解の適合度スコアと同じか又はそれより高いなら,解探索手段111は,現在の解として初期の解を選択してもよい。逆に,もし,初期の適合度スコアが新しい解の適合度スコアよりも低い場合,解探索手段111は,現在の解として新しい解を選択してもよい。
【0043】
次に,解探索手段111は他の新しい解を選択する。新しい解と他の新しい解を選択する場合,本発明の好ましい態様は,レヴィフライトの概念を使用してもよい。そのような選択は,レヴィフライトエンジンを使用することにより実行されてもよい。レヴィフライトエンジンは,レヴィフライトアルゴリズムを使用して,解をランダムに選択してもよい。解の選択において,そのエンジンは,数値を解に割り当て,割り当てた数値により解を選択する。解探索手段111は,他の新しい解の生成と適合度スコアを比較するステップを繰り返してもよい。その時,解探索手段111は,改訂される現在の解を決定する。最も低いスコアを有する解は,放棄され,解の候補からランダムに選択される新しく選択された解に,所定の確率で変換される。
【0044】
上記の説明は,プログラムを基にしている。本発明は,上記プログラムを含む,CD−ROM,DVD,FD,MO,SD−Card,USB,Hard Disc,又はメモリなどのコンピュータの読み込み可能な媒体であってもよい。本発明は,上記プログラムを含むか又は上記ステップを実現できるゲーム装置又はコンピュータであってもよい。
【0045】
図5は,本発明のプログラムを達成させる例を示すフローチャートである。図5で示されるように,プラットフォームのゲームにおける解の決定方法は,解を初期化するステップ(S101),初期の解と新しい解を選択するステップ(S102),第1の適合度スコアを比較するステップ(S103),現在の解を生成するステップ(S104),他の新しい解の生成と適合度スコアの比較を繰り返すステップ(S105),及び状態を変換するステップ(S106)を含む。この方法は,選択されなかった解を放棄するステップと最も低い適合度スコアを有する解を変換するステップとを,さらに含んでもよい。
【0046】
解を初期化するステップ(S101)において,コンピュータは,図4に示されるような,キャラクターの1つ又は複数の状態を含むそれぞれの解を計算する。
【0047】
初期の解と新しい解を選択するステップ(S102)において,コンピュータは,初期の解と新しい解を選択してもよい。これらの解は2つとも,初期化された解から選択されてもよい。初期の解はなくてもよい。この場合,新しい解は現在の解として選択されてもよい。コンピュータは,初期の解と新しい解の適合度スコアを算出してもよい。
【0048】
第1の適合度スコアを比較するステップ(S103)において,コンピュータは,初期の解の適合度スコアと新しい解の適合度スコアを比較する。適合度スコアは,従来のエンジン手段により計算され,コンピュータのメモリに格納されてもよい。適合度スコアは,比較を行うため,メモリから読み出されてもよい。
【0049】
現在の解を生成するステップ(S104)において,コンピュータは,現在の解を生成する。高いスコアを有する状態が,現在の解となる。
【0050】
他の新しい解の生成と適合度スコアの比較を繰り返すステップ(S105)において,コンピュータは,改訂される現在の解を生成するために,他の新しい解を生成するステップ及び現在の解の適合度スコアと他の新しい解の適合度スコアを比較するステップを繰り返す。
【0051】
状態を変換するステップ(S106)において,コンピュータは,初期の解と生成される解を含む解の適合度スコアを比較する。そのため,最も低いスコアを有する解は,候補の解からランダムに選択される新しく選択された解に,所定の確率で変換される。ステップ106は,ステップ105のそれぞれの終わりに実行されてもよく,さらに,低い適合度スコアを有する状態は,他の状態にランダムに変換されてもよい。選択は,レヴィフライトエンジンにより制御されていてもよい。
【実施例1】
【0052】
スーパーマリオブラザーズ(登録商標)に夢中になって成長した世代の人々にとって,そのゲームは,プラットフォームのジャンルそのものである。ゴールと基本的な操作は単純だけれども,そのゲームは,様々な罠を解決し,キノコ王国の宝物を求めて夢中になることで,数えきれない娯楽の時間を与えてくれた。
【0053】
そこで,以下の実施例は,スーパーマリオブラザーズ(登録商標)を基に説明する。しかし,本発明は,スーパーマリオブラザーズ(登録商標)におけるAIアルゴリズムに限定されるものではない。
【0054】
最近の研究は,以前の研究の様々な分野を基にしている。最も近い例は,スーパーマリオブラザーズ(登録商標)をプレイすることを目的としてAIを探求する研究である。少し遠い例としては,他のゲーム,特に進化的なものをプレイすることが意図されているAIである。
【0055】
本来的には,ある瞬間におけるマリオの状態は,マリオAIのベンチマークによって完全に決定されるものである。しかし,AIを実装する時,選択アルゴリズムで表わされる状態が,どのくらいでどのような局面なのかにおいて,多数の選択肢がある。既定値では,マリオAIのベンチマークは,マリオスプライトの中心に置かれた22×22個のグリッドタイルを有する。
【0056】
上記のグリッドは例であり,異なってもよい。
【0057】
すべてのグリッドセルは,それぞれの位置で存在するあらゆる関係の情報を含んでいる。グリッドに含まれる情報の例は,敵,地面,ブロック,パワーアップ,そしてマリオ自身である。この情報は,状態が良い時を表わしているけれども,問題空間においてより細かな様子を提供する2つの付加的要素を取り入れる。1つ目は,いずれかの特定グリッドが観測される時のレベルをクリアするための残り時間であり,2つ目は,グリッドが観測される時のマリオが向く方向である。したがって,すべての状態の表現は,時間と方向が追加されるグリッドのスクリーン情報から成る。
【0058】
解の表現
解の表現は,間違いなく最適化アルゴリズムの最も重要な部分であり,解がどのように表現されるかについて,フレームワークにおいては制約がない。上記で説明されているように,本発明による表現は,状態から動作へマッピングすることである。
【0059】
スーパーマリオブラザーズの動作空間は,組み合わせ可能な,1)左に動く,2)右に動く,3)しゃがむ,4)ファイアボール(fireball)/速く動く,から成る。解の表現は,状態間の明示的なリンクのすべてを含んでいるが,単一レベルの確定性により形成される黙示的なつながりも存在する。もし,マリオが状態‘a’で動作‘x’を行う場合,マリオは,通常,状態‘a´’に移るだろう。この表現の形式は,この形式でのアルゴリズムは,AIが,実施中である現在のレベル以外には存在しない黙示的なつながりに依存することを,一般化しない1つの理由である。これらの状態‐動作のペアの集合が,解を表現する(図6参照)。
【0060】
図6において,マリオの状態の任意の集まりが,円で表わされている。円の下にある文字は,それぞれの状態に関連する動作を表わしている。この文字は,上記記載された動作の始めの文字に対応している。状態間の点線は,マリオが状態間を移動するときにのみ,状態間に形成される黙示的なつながりを表わしている。また,つながりは,解を導き出すことを示している。状態‘X’は,死を意味している。
【0061】
解の初期化
他の進化アルゴリズムと同様に,解をある予測可能なランダム値に初期化する処理を始める。しかし,ある解の予測可能なスクリーンの小さな集合を訪れるだけならば,すべてを初期化するにはリソースの浪費となるだろう(また,処理しにくいものでもある)。その代わりに,空の解から始めることで,ゆっくりと初期化させる。つまり,AIは,あるレベルを探索する時に,ある適切な値に初期化されたスクリーンを初めて認識することになる。このようにして,無駄のない初期化の特性とする。
【0062】
カッコウ探索(Cuckoo search)
カッコウ探索は,自然界の実例を基にした学習アルゴリズムの最も新しいものである。詳細は,[X.−S.Yang,S.Deb,‘Cuckoo search via L´evy flights’, in Proc. World Congress Nature & Biologically Inspired Computing NaBIC 2009,2009,pp. 210−214]で理解され,もしこの研究がなかったら,本明細書の残りの記載に沿って理解できるよう,このアルゴリズムの本質を説明する。これの最もよい例は,グリッドの少し外部にある大砲である。よくあることで,たとえAIが大砲の知識を有していなくても,AIは,大砲が発火するのを待つことになる。
【0063】
このアルゴリズムは,托卵の方法で他の鳥の巣に卵を産む,ある種のカッコウの動作を基にしている。もし,托卵の特性が十分に発達していたなら,その卵は生き残り,卵が孵化することでその巣を乗っ取ることになる。さもなければ,卵は,巣の里親に排除されることになる。もっともよく托卵を進化させる処理は,カッコウ探索の本質である。
【0064】
アルゴリズムの説明
所定の最適化問題について,解は,巣(卵を含んだ)によって表現される。基本的なアルゴリズムは,ランダムな解の初期化を呼び出す。各反復ステップにおいて,2つの操作が実行される。1つ目は,その時評価されるある現在の巣からランダムウォークを実行することにより,新しい巣を生成する。実際上,この巣は現在の最も良い巣である。この新しい巣を維持するかどうかを決定するために,すでに存在するランダムな巣が選択され,そしてそれらの優劣が比較される。より良い巣は維持され,好ましくない巣は,排除される。2つ目は,好ましくない巣は,ある確率pにより取り除き,ランダムな巣に変換する。これは,ある確率pで,最も好ましくない托卵が発見されることに相当する。
【0065】
レヴィフライト(Levy Flight)
上記アルゴリズムの核心部分は,レヴィフライトを使用しなくても(例えば標準的なブラウン運動で)記載され得る。しかしそのようなバージョンは,最適化を考慮していない。レヴィフライトに基づく運動は,裾が低減していくレヴィ分布の性質から,大きな領域をとてもすばやく探索することができる。このことから,所定の解の周りの領域を探査する時,この探索は,ほとんどの場合ローカルに留まることになるが,時折,長い距離を移動することができる。これは,高速で空間を探査する助けとなる。マリオが提供する莫大な探索空間を考慮する時,このようなタイプが適している。レヴィフライトの有用性の詳細は,上記研究で説明されている。
【0066】
パラメータチューニング
高く評価されるカッコウ探索の1つの明確な特質は,パラメータが少ないことである。遺伝的アルゴリズムのようなアルゴリズムに共通する問題点は,最良の結果を得るために,入念にチューニングしなければならない多くのパラメータが存在することである。Cukoo探索は,個体数を加えた単一のパラメータ,すなわち卵が発見される確率を提供するのみと言うことができる。このパラメータは,レヴィ分布のパラメータを考慮しても,一般的な遺伝的アルゴリズムよりもはるかに少ない。加えて,少なくとも明示的な例の集合では,このパラメータは,どのチューニングにも起こる多くのエラーをほとんど考慮しない。このアルゴリズムをマリオの問題空間に適用する時,この鈍感さが保持されるかどうかは,知られていなかった。パラメータの感度はこの実験の焦点ではないが,かなりの部分が正しいようである。適切な確率が,無関係に.2から.5にわずかに変化したのに対して,個体数は,その結果により,15から30の巣にわずかに変化した。
【0067】
レヴィフライトとカッコウ探索のマリオへの応用
カッコウ探索の初期の実験において,いくつかの従来の最適化問題を行うことが示された。翌年,[‘Engineering optimization by cuckoo search ‘Int.J.Mathematical Modelling and Numerical Optimisation,vol.1,no.4,pp330−343,May 2010.]などの,いくつかの現実世界の最適化問題の開発の成果がさらに示された。しかし,これらの問題の性質は,すべてが数値探索空間に関するという点で類似している。レヴィフライトは,レヴィ分布の大小の量によって数値を変換させ,概念化するのが容易であるため,このタイプの問題は,特にレヴィフライトに適している。この技術を,マッピングが容易でない領域へ展開させる開発は今までなされていなかった。しかし,考えられる今後の実験の領域として,TSP(巡回セールスマン問題)が示された。
【0068】
マリオのようなTSPは,ある制約のもとに,異なる状態の連続性を最適化する試みを表わしている。TSPにおいて,各状態は,シティであり,ゴールは,各シティを1度訪れる場合の最も短いパスを最適化することである。マリオの場合,状態は,上記の状態であり,ゴールは,マリオがそのレベルの最後に向かって移動する距離を最短にすることである。
【0069】
レヴィ分布による解を基にした状態の問題についても,同様の変換を適用する方法を提案する。その方法を初めに単純TSPに適用し,その後,マリオの領域にすべて拡張する(状況は似ているが)。
【0070】
状態と数値間のギャップの橋渡し
レヴィフライトは,特定の方法で解を変化させることにより機能する。この解が数値の時,レヴィ分布から値を得ることと解を直接変化させることは,単純な処理である。それに比べて,TSPは,連続状態を含むので,レヴィフライトの方法では,一般的に変換させることができない。そこで,数値と連続状態間のマッピングを生成することにより,レヴィ値をTSP問題に適用する直観的な方法を可能にする。さらに,このようなシステムは,この方法により視覚化できるいずれの問題にも適用されることになる。そのような関係の1つとして,連続状態を数値で表現することがある。各状態は,数値のビットに対応している。この連続の大小の変化は,各状態の特定の変更として表現される。TSPは,同様の方法で視覚化できる。(図7参照)
【0071】
図7は,TSPの解と数値の大小の変化を示している。数値と解は共に,連続状態を表わしている。数値に関して,変化の大きさは,状態を変更するために,状態を符号化するビットの重要度に,大抵,依存する。TSPの解において,状態変化の頻度は,最も重要である。
【0072】
ここで留意すべきことは,‘大’と‘小’の概念は,異なる2つの例によって別々に表わされていることである。問題の多くは,領域特有の方法により,そのような大きさの相異を表現することになるだろう。この関係は,TSPの解を変化させるゴールを明確に示している。しかし,さらに加えると,必要な変化を生成する数値によって,ある方法が創り出される必要がある。
【0073】
変化の際の数値の改変
任意の変化を連続状態へ表わす方法を明確に述べていることから,そのような変化をもたらす処理を作り出す必要がある。幸運にも,どの数値も取り込み(おそらくレヴィ分布から),ほとんどいずれにも変化するパラメータとして,その数値を使用する方法が複数ある。例えば,ある方法は,確率として数値を扱うことができる。TSPの各シティは,レヴィ確率pによって,ランダムなシティと交換される。通常,わずかな変化のみの結果なら,確率は低くなる。まれに全体の解が変化することがある。これは必要な振る舞いである。さらに制約される例として,レヴィ分布の数値は,すべての状態数のほんの一部分とみなされる場合がある。そのほんの一部分を使用することにより,最も多い現在の状態数の多くが,ランダムに変化する。これは,初期状態がすでに最適化であるように,つまり,つながりの端が探査の重要部分であるように,解を展開する場合に,特に有用である。ここで留意すべきことは,選択される状態がランダムに変化するように始めているが,これは必ずしも要件ではないことである。多くの最適化問題は,新しい状態を選択するヒューリスティックを利用することが望ましい。
【0074】
マリオのTSP
TSPへのアルゴリズムの適用は,マリオへの適用がほぼすぐに理解できるほど,一般的だった。上記,状態表現により,マリオの解でレヴィ変異を生成する上記説明の1つと同様の方法を説明できる必要がある。しかし,TSPで,各状態は理解され,ゴールは,すべての状態を介して,最適なパスを見つけることができた。マリオは,数えきれないほど多くの状態を有している。さらに,状態から状態への遷移を制限する制約の集合は,あまり理解されていない。マリオの問題は,認識できないほどの状態を有し,状態間の遷移は,ほとんど理解されていない。
【0075】
しかし,前記段落に示されるように,解を作り上げる状態と遷移の小さな部分集合については,容易に推論できる。すべての状態は,次の状態に至る動作に関連している。レヴィ分布によりこれらの連続状態は変換される。
【0076】
レヴィ変異の適用
レヴィ確率が,状態を変化させる必要があることを示す時,TSPでは選択できたような,完全にランダムな状態を選択する方法はない。なぜなら,状態の集合が理解されていないためである。すべての状態が理解されていても,現在の状態へのつながりは,同様に,容易に決定できない。したがって,代わりに,新しい動作がランダムに(ヒューリスティックに)生成される。そのため,レヴィ変異は以下のように適用できる。初めに,レヴィ分布の値を確率として利用し,解となる状態‐動作のペアのいずれかの1つを変化させる。前記確率により,すべての状態‐動作のペアを巡回し,適切に動作を変化させる。興味深いことに,変化した連続状態の位置は,まったく変化していないが,順に続くすべての状態へのリンクは,すぐに,切断される(図8参照)。
【0077】
図8は,図6に適用可能なレヴィ変異の例を示している。切断されるリンクは黒の矩形で示されている。古い動作から新しい動作へ矢印が示されている。ここで留意すべきことは,初めの変異は,次の状態との関連性を取り除いたにもかかわらず,もう1つまた変異されていたことである。これは,将来の変異が,それを連続状態に戻す場合,これは役割を果たすことになる。
【0078】
これは,変異が,TSPで見られた切断よりもさらに多くの切断となることを意味している。加えて,図7の数値の例のように,変化の大きさは,ほぼ,変化する状態の位置に依存する(初期の連続状態は最も影響が大きい)。
【0079】
ソフトマックス(SOFTMAX)による探索空間の絞り込み
今あるものを含めて,進化するAIは,それほどうまくいってはいない。つまり,AIは,ランダムな初期化状態では,とてもゆっくりと収束する。事実,マリオAIのコンペの所定の最少シュミレーション数は,決して合理的な解を導かない。最終結果は,表IIで理解できる。性能は期待外れだが,それは予想通りである。そのような大きな問題空間で,解を見つけだすことは,本質的に不可能であり,コンペにおける所定の制限である。ソフトマックスは,Q学習に利用される手法である。これは,貪欲手段の問題点である,好ましくない状態が最良の1つとして選択される可能性を回避する。ソフトマックス手法は,様々なQ値を基にして,適切な確率を各遷移に割り当てる。ここで使用されるアルゴリズムは,Q学習と異なるが,そのため,新しい状態への遷移の確率の基礎となるQ値は存在しない。けれども,ソフトマックスにより具体化される概念は,十分似通っているため,以下のヒューリスティックを説明するのに利用できる。この実験で使用されるAIは,マリオのレベルのコースをクリアするため,次の状態へ展開する動作を絶えず選択する。これらの選択時,チューニングされたあるヒューリスティックの手法によって,好ましくない動作から好ましい動作になるように変換することで,ソフトマックス手段の本質が理解される。初めに,一般的なヒューリスティックをアルゴリズムに適用することを考察する。次に,マリオを最適化するために選択する特定のヒューリスティックを考察する。
【0080】
ヒューリスティックの適用
説明したとおり,初期化時にヒューリスティックを適用することは可能であり,レヴィ変異処理の一部分として適用することも可能である。それぞれの場合において,状態を取り込み,遷移動作がこの状態で生成されるように決定する。これは,次の状態が何になるかを決定する。一般的に,小探索空間のアルゴリズムにおいては,これらの決定は,ランダムに生成される。代わりに,確率pによって,ある特定動作は,ある所定のヒューリスティックに従って選択される。別の方法では,ランダム動作が選択されることになる。さらに,オリジナルのソフトマックス手段と異なる点があげられる。つまり,ヒューリスティックは,現在の状態と関係がない。
【0081】
現在の状態がたとえどんなであっても,確率は,本実験においては同じままである。状況固有の確率は推測できても,同時に,システムによってハードコードされた規則に対応することにより,すべての付加的確率はアルゴリズムをさらに複雑にする。
【0082】
ヒューリスティックの選択
主要なヒューリスティックの選択は,マリオ2009のコンペの結果を考察して,選択された。マリオ2009のコンペは,Aアルゴリズムが優れていたことのほかに,興味深い結果を提示した。特に,多くの進化アルゴリズムは,マリオAIベンチマークシステムが含まれた単純なエージェントに敗北した。そのエージェントは,ただ,1)前方へ走る,2)ジャンプ,の2つのことをしただけである。これは,多くの進化アルゴリズムが,均等に探索空間を探査していたようなので,道理にかなっている。コンペにおける試みは,ステージの冒頭で,左側に走ろうとすることに秒単位で多くの時間を費やした。対照的に,マリオのゴールは,このレベルの一番の右側のゴールポストに到達することである。すでに,この単純なエージェントは,たとえすべての出来事に全く対処しない場合も,問題空間を効果的に移動している。右に走る基本技術は,マリオAIの基本的なニューラルネットワークであるかのように示された。
【0083】
初めに,ヒューリスティックは単純であって,確率pで前方へ走ったり,ジャンプさせる。別の方法では,ランダムに動作が選択される。ただ,この変化は,1番初めの平凡なレベルを通過することが,一見不可能なタスクとなった。p値は,重要であるが,鈍感なパラメータ(insensitive parameter)である。実験では,.6は低すぎたため,コンペでの収束は遅すぎたことが明らかになった。これに対して,.9以上では,AIは素早く収束され,局所最適化に行き詰った。しかし,たとえそれが,動作空間の大部分であっても,このひたむきなヒューリスティックは,プレーヤがプレイするためのものではない。マリオの困難なステージを探査するということは,ときどきマリオは左に進むことが必要であるということがわかった。特に,隠された障害物が,そのレベルをクリアするのに必要な状況の場合,マリオはおそらくその場所を通り過ぎ,行き詰ることになる。もちろん,十分な時間があれば,確率要素は,マリオを正しいパスに導くだろうが,その速度は,今まで観測されたことがないほどゆっくりである。人間のプレーヤであれば,問題を理解して,すでに探査した空間を再度探査するために左に移動することになるだろう。
【0084】
ある解は,行き詰りに気づき,隠された障害物などを探す為に引き返すように,特定のコードを加えることになる。この解は,公正であって,そのような学習技術の組み合わせやハンドコードアルゴリズムを,成功させることは可能である。しかし,この実験において,望まれる振る舞いを導くヒューリスティックが存在するかどうかを見つけだすのは,とても重要であった。従来のヒューリスティックは,明白な論理により左に移動させるヒューリスティックに置き換えられない。したがって,解は単純であって,ある確率p´により左側を探査させる複合的なヒューリスティックを生成する。最後に,ヒューリスティックは,1)確率pにより先へ進む,ジャンプする,2)確率p´により,左に進む,ジャンプする,3)別のやり方では,ランダムに動作を選択する,こととなる。この場合でのヒューリスティックの値は,互いに依存する。その前に,確率pを相当値に変化させるが,この実験例では,pが.6よりも.9に近づくことを示している。p´は,レベルに応じて,.6と.8の間を変化することができる。pが,前よりも高い値になる必要があるのは,その時に付加される左への移動が,レベルをクリアする一般的な進路を妨害するからである。これに対抗するために,常に,良い解を考慮しながら右に移動させる。
【0085】
[表1]

表1は,本明細書で示されるカッコウ探索アルゴリズムと遺伝的アルゴリズムの比較を示している。
共に本明細書で説明されるソフトマックスヒューリスティックを使用している。
LDは,困難なレベルを表わしている。Defaultは,パラメータを加えない場合のレベルを表わしている。UGは,地下のレベルを表わしている。HBは,隠された障害物がある場合のレベルである。BOTHは,隠された障害物を含む地下のレベルを表わしている。
【0086】
結果
本明細書で説明されるAIを,任意に選択されたシードによって生成された,様々なタイプのレベルと困難なレベルの集合で,検証した。また,そのレベルで,ソフトマックスのヒューリスティックの場合とそうでない場合を検証した。さらに,類似エージェントを,同じレベルで進化させるために,一般的な遺伝的アルゴリズムが使用された。ソフトマックスヒューリスティックの結果は,表1により理解することができる。ランダムなヒューリスティックエージェントの結果は,表2に示される。
【0087】
ソフトマックスの結果
まず注意することは,従来の仮設とは逆となることであり,遺伝的アルゴリズムは,カッコウ探索と同じように実行される。一般的に,両者は,容易なレベルでは,速く十分に実行する。容易なレベルは,前記単純なエージェントが,どの学習機能も全く利用することなく,解決できる場合なので,予期され得る。
【0088】
困難なレベルにおいては,以下の2つのことが起こりえる。1)手に負えないレベルの場合,両者のボット(bots)はたいていすぐに,平凡な答えに収束する。2)実行できるレベルの場合,両者は,解(ひょっとすると最適ではない)に収束するか,又は一方は他方よりもわずかに良い解となる。2つのアルゴリズムの違いを考えれば,ヒューリスティックを利用することで,振る舞いを莫大な量にさせることは確かであると思われる。この場合,考えられるレヴィ分布の速い探索能力は,カッコウエージェントによって,扱いにくい領域を,遺伝的アルゴリズムよりも速い速度で,解決するだろうという見込みがあった。しかしここでは現れなかった。
【0089】
[表2]

表2は,ソフトマックスヒューリスティックを適用しない場合の,表1と同じ比較を示している。つまり,解はランダムに初期化される。
【0090】
ランダムの結果
2つのAIの結果は共に,ヒューリスティックを使用していないため,はるかに劣るものになった。これは,アルゴリズムを使用するか否かにかかわらず,問題空間の探索に焦点を当てるソフトマックスのヒューリスティックを使用することで利益を得ることができることを示している。さらに,レヴィによる速いカッコウ探索は,それをさらに発展させる可能性があるが,それは結果に示されていない。その1つの可能性のある理由として,カッコウエージェントは,比較的速い速度で探索しているけれども,探索空間は,とても広いので規則的な探索では基本的に絶えず失敗することになるためである。他の理由は単純であって,カッコウ探索は,より少ないパラメータチューニングを要件とするが,副最適化として,好ましくない行動を導くように,パラメータがチューニングされるためである。それと対照的に,遺伝的アルゴリズムは,平均よりも良くチューニングされた。
【0091】
マリオAIの領域は,極端に開かれており,本実験では,明確に‘解決’しなかった。本実験から拡張されるいくつかを記載する。
【0092】
レヴィ変異の考察
すでに述べたように,状態空間を変換させるために,レヴィ分布により生成される値を使用する方法が多数ある。これに関して,異なる選択の探査は,いくつかのレベルにおいて,さえない性能を明らかにするかもしれない。
【0093】
最適なヒューリスティックの発見
最も重要なことは,進むことに圧力を掛け続けるヒューリスティックであるが,それほど探査を抑制しなかった。
【0094】
AIの一般化
現在のAIは,訓練されているレベルを唯一確実に行うことができる。これは,現実のゲームシステムだけでなく,コンペのラーニングトラック(Learning Track)でも有用だが,‘マリオをプレイするAI’にとっては重要ではない。そのような進化アルゴリズムが,Aに似たアルゴリズムと競争できるかどうかを考えることは,重要な作業である。
【0095】
結論
この実験において,スーパーマリオブラザーズを使用して,カッコウ探索アルゴリズムの拡張を説明してきた。さらに,論理的な解に速く収束するようにソフトマックスヒューリスティックを加えた。レヴィフライトとカッコウ探索を利用することは,一般的な遺伝的アルゴリズムに匹敵するほどの機能を有する。しかし,他のアルゴリズムでは,カッコウアルゴリズムの素早い探索能力から得られる利益は,示されなかった。
【0096】
ソフトマックスヒューリスティックの使用は,困難なレベルを規則的にクリアさせるので,AI手法の性能に劇的な効果があった。
マリオを動かす進化アルゴリズムとして,レヴィフライトとカッコウ探索を利用することを選択するのは,理にかなっている。
さらに,そのようなアルゴリズムはいずれも,論理空間の探索に焦点を当てるソフトマックスヒューリスティックを使用することが好ましい。
【符号の説明】
【0097】
100 ゲーム装置
110 マッピング手段
111 解探索手段
112 レヴィフライト手段
113 ソフトマックス手段





【特許請求の範囲】
【請求項1】
コンピュータに実行させる,プラットフォームのゲームにおける人工知能のためのプログラムであって,
一又は複数のキャラクターの状態を含む解を初期化するステップと,
初期の解及び新しい解を選択するステップであって,前記初期の解は,存在しないか又は前記初期化された解から選択されるものであり,前記新しい解は,前記初期化された解から選択されるものであり,
前記初期の解の適合度スコアと前記新しい解の適合度スコアを比較するステップと,
現在の解を生成するステップであって,前記現在の解は,前記初期の解の前記適合度スコアが前記新しい解の前記適合度スコアよりも同じか又は高い場合には,前記初期の解となり,前記新しい解の前記適合度スコアが前記初期の解の前記適合度スコアよりも高い場合には,前記新しい解となり,
他の新しい解を生成するステップ及び改訂される現在の解を生成するために前記現在の解と前記他の新しい解の適合度スコアを比較するステップを繰り返すステップと,
最も悪いスコアを有する解が,所定の確率により,解の候補からランダムに選択される新しい解に変換されるように,前記初期の解及び生成される解を含む解の適合度スコアを比較するステップとを含む,
プログラム。

【請求項2】
ある状態が,前記キャラクターのある動作によって,他の状態にリンクされている,請求項1に記載のプログラム。

【請求項3】
前記動作は,‘ジャンプ’,‘左に動く’,及び‘右に動く’を含む,請求項2に記載のプログラム。

【請求項4】
前記ランダムな選択は,状態に対応する数値を使用するレヴィフライトアルゴリズムで実行される,請求項1に記載のプログラム。

【請求項5】
前記解の初期化は,ソフトマックスエンジンにより行われる,請求項1に記載のプログラム。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−130430(P2012−130430A)
【公開日】平成24年7月12日(2012.7.12)
【国際特許分類】
【外国語出願】
【出願番号】特願2010−283389(P2010−283389)
【出願日】平成22年12月20日(2010.12.20)
【出願人】(308033283)株式会社スクウェア・エニックス (173)
【Fターム(参考)】