MUGENメモ ( フォント環境:MS ゴシック 標準 サイズ10 )  AIの為の CPUにおけるリスクの話 byADI 21:07 2010/03/11基本記述おわり 23:25 2010/03/23 19:04 2010/04/17 逆択一  [格闘ゲームの基本に関する話/Game.txt]と   [対人に関する話/Anti-Player.txt]を合わせたような話です。  それらを知っておくと、より分かりやすいかと思います。 ■コンピューターの基本  コンピューターは基本的に、与えられた命令を忠実に処理します。  反対に言えば基本的に、与えられた以外の命令は一切しません。  ある行動で失敗をしても、別の行動を設定していなければ、   同じ行動を行い、同じ失敗を繰り返します。  例えば、不確定な確率を用いないキャラ同士で戦った場合、   何度やったとしても、全く同じ試合内容にしかならないように、   リスクを考えて動作に変化をもたせるようにしなければ、   相手によって【高確率で勝てる】【高確率で勝てない】など、相性が顕著に出ます。  こと人間は柔軟に【高確率で勝てる動作】を行う事ができるため。   対人において、そうした相性が致命的に出ることもあります。 ■リスク配分  例えば攻撃に対する反応を、ガードと反撃の二種類にすることは立派なリスク分配です。  ガードと反撃を確率で分けることにより、   ガードのリスクと反撃のリスクを分けているのです。  ガードには直撃を避けられるリターンがあり、固め・崩しのリスクがあります。   反撃には攻撃を潰せる可能性があり、しかし直撃のリスクもあります。  AIにおいて重要なのは「選択」ではなく「考慮」です。  例えばガードして安定、確定反撃のできる相手にガードは効果的ですし、   反撃すれば簡単に攻撃を潰せる相手に反撃は効果的と言えます。  反対にガードして必ず崩してくる相手にガードは禁忌になりますし、   判定が強かったり無敵のある攻撃に対して反撃はハイリスクです。  ですが、AIにできるのは「状況の考慮」だけであり、   それらを完全に知り、判断させることはまずできません。  その為にガードと反撃をリスクに合わせて確率で分け、リスクを分配するわけです。 ■リスクを考える  しかし、リスクというものはあらゆる動作に少なからず存在します。  例えば弱パンチであろうとも、外してしまえば隙のできるリスクなどがあります。   もちろん、相手によってそのリスクの度合いもピンキリです。  外してやガードされての確定反撃は代表的なリスクですが、   それら以外にも「対射撃」や「対当身投げ」などのリスクや、   発生フレームでのリスクや、判定の強さでのリスクなど。  超必殺技などのゲージ消費のコストもリスクであり、   基本的なキャラにリスクの無い行動は滅多にありません。  これは自分だけでなく、相手にも通じますが。  AIにできるリスクの軽減策は、二つ。   リスクの少ない状況をより精細に判断させる。   リスクのある行動は複数種類で確率を割り振る。  後者は先ほど述べたリスクの配分。前者はプログラムの基本です。  ただし相手の詳しい情報を知ることができず、精確な判断は困難なため、   おおよそは複数の動作を割り振ってリスクを軽減させることになります。 ■動作の分配  動作を分配するとき、考えるべきことは種類。  同じような技同士で分配を行ったとしても、リスクはあまり軽減されません。  例に上げているガードと反撃は、攻撃を受けるリスクこそ一緒ではあるが、   リスク自体は「固め・崩し」と「速さ・判定」で、違う種類のリスクと言える。  攻撃動作にしても威力の高い技で攻めるか、コンボが豊富な技を狙うか、   あるいは小技でつってカウンターを狙うか、考えればいくつかは出てくる。  そうした行動を複数使い分けることによってリスクを配分し、   ただワンパターンにやられ続けるような事を避けるのがリスク回避の本題。  対人論で言ったようなn択に近しいですが、   こちらの本題は「パターン化のリスクを避ける」という命題です。  そのため動作の分配を行うとき、確率は技の信頼度が目安になります。  「どの程度その行動を成功させることができるか」という信頼度で、   信頼できるのであれば他の技よりも多めに振ることも考えられるわけです。 追記■確率分配によって起こる対人性  もしある動作によって反応が起きると分かり、しかしなにをするのか分からない場合、   人に対して威圧の効果をもたらします。AIには効きませんが。  例えばその反応が3種類もあれば、それを全て潰せてしまう技なんて滅多にありません。  仮に1〜2種類まで潰せるとしてもその反応を行う保証がない場合、人は   「動作Aへ潰しにかかる・BCを潰そうとする・行動しない」の選択を迫られ、   そしてもし安全を優先したならばABCの反応を考慮して行動を控えます。 ( もちろん、攻めを重視する人であればABCのどれかを潰そうとするでしょうが。 )  反対に言うと単一の行動は知ってさえいれば、   なんの悩みもなく潰しに掛かることもできてしまうということです。  リスクを分配することで、相手にリスクを与えられることもあるという話。 ■ ■リスクの度外視  しかし、それらはあくまで【相性の顕著化】や   【パターン化】のリスクを避けるためのものであり、【最良】とは異なります。  言ってしまえば相性が顕著化したり、   パターン化が起こることを憂慮することは、【魅せ】に近い論理です。  それこそ、より精密に失敗を記録して動作を考慮させるようなAIでもならなければ。   確率によるリスクの配分は、あくまでも簡易的な措置に過ぎません。  分かりやすく言えば、最も強い技のみを使うようにする方が強いことも多いです。  なぜなら相手はその技を何度も看破しなければ勝てない、ということになるため。  それが出来るのは人間か、もしくは相性の良い同じようなAIか、   基本性能でその技を上回るキャラのいずれかになってしまいます。  リスクを避けるというのはリターンを減らしてしまうことに他なりません。  リスクの回避は、あくまで上限の弱体化と下限の強化という安定化です。 *  リスク回避の為に「失敗した場合、別のパターンに移る」という方式もありうる。  小さい所では、コンボ始動の近接通常技が当たらない時、   一旦退避するなどの行動を起こし、同じ攻撃を繰り返させないようにするなど。