Darkside(リンクエラー修正しました)

2017年7月10日(月) 21:49

評価関数

 プラクティスの1周目と2周目、そしてマスタークラスの1周目を製作したことで、3つの相互比較が可能となった。要所において、3つ間のフレーム差がどうなっているかを 比較し、遅い部分が無いかどうかをチェックできる。早期にどんどんこういう比較を行い、遅い部分をガンガン洗い出すのが重要である。だから、最初は製作がなかなか前進 しない。
 キングリーグの5コースに関しては前例となるTASが無いため、自力で研究を完結させねばならない。初代
F-ZERO は後編達に比べ、人外プレイであっても見た目が地味で あり、すなわち製作の見返りが小さい。一方で最適化は凄まじいまでに大変であり、ある程度まともなTASを作りたければ1コースだけで4〜6ヶ月を要する。
この期間が高速な計算機が使用できれば大きく短縮可能だが、人力を介する試行錯誤も膨大であるため1ヶ月以下というのは相当に困難だと思われる。
 そもそも使える計算リソースが増えれば、TASの品質向上に費やされる方向だ。

 ともあれ3つの周回を比較したところ、最大難所である3連続コーナーの3つ目で、スクリプトの速遅判定が怪しいのではないかという疑いが強くなった。
 というのも、スクリプトの出力した速遅判定を3つのデーターで比較すると、実際の差よりも小さい。逆にいえば、実際の差は広がってしまう。
 激速解に少しでも追い付こうと少しでも速い解を探しまくるわけだが、その際にはスクリプトが提示した速遅判定が頼りである。だが、速遅判定により0.4フレーム差まで
詰めたと思ったら、実走では0.8フレーム差に広がってしまった・・・などということになっている。
 3つ目のコーナーは、速度を落として走行距離を短くするのと、走行距離が長くなっても高速で抜けるのと、どっちが速いかトレードオフの勝負である。そこでスクリプトの速遅判定がおかしければ、最速解を取り違えている可能性がある。どうも、速度を落として走行距離を短くする走りを、実際よりも過剰に速いと判定してしまっている節がある。とはいえ何せ3つしかデーターがないので、はっきりしたことは言えない。

 コーナーを抜けた後の実走は、実施に相当な時間を要する。だから、実走させての判定はできない。このあたり、対戦ボードゲームの局面評価に似ている。実際に先読みを行うコストが大きいので、先読みを行わずに局面の良し悪しを低コストで計算するのが、局面評価関数だ。このスクリプトも、実走を行わずに簡単な計算で速いか遅いかを判定しているわけで、考え方は同じである。
 対戦ボードゲームのAIが強いかどうかは、局面評価関数の正確さに左右される。TASが速いかどうかも、速遅判定の正確さに左右される。
 速遅判定は計算コストが小さい必要があるため、手抜きになる。その、手の抜き方が問題だ。

 これまでのところ、ここの角を抜けて少し走った時点の座標を判定に使っていた。抜ける際に進路が右寄りになると、コースは左に続いているため不利になる。そこで、右寄りの進路に結果としてペナルティーを課すような速遅判定になっていた。だが、進路が右寄りになるのは、速度が上がっていて旋回がアウトに膨らんでしまうケースである。つまり、速度優先の抜け方にペナルティーが課されていたわけだ。

written by higashino [ゲーム] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Darkside(リンクエラー修正しました)

Generated by MySketch GE 1.4.1

Remodelling origin is MySketch 2.7.4