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

2016年11月7日(月) 21:36

最適解は意外

 ガードビームに弾かれたということを正確に判定できるようになったら、スクリプトの実行に12時間強を要した。思っていたのと逆で、弾かれていないのを弾かれたと誤判定して大量の過剰枝狩りが発生していたようだ。
 場合の数から考えると、これぐらいの実行時間を要するのが当たり前だ。

 得られた最速走行を再生すると、ガードビームと全く接触していない。
 少しだけ走行距離は長くなるが、それでもガードビームに突っ込まない方が速い。これは意外だった。
 また、S-JET の残りフレーム数が短くなると、そのタイミングと速度の関係で速遅判定は直感通りに行かなくなる。S-JET の持続時間が無限であれば、平均速度を上げれば良い。だが、実際は有限でる。すると、ブレーキングのタイミングも影響を受ける。

 これらは総当り方式で調査した結果であり、正しい可能性がかなり高い。
 ここの S-JET 最適化はパズルを解くようなものであり、パズルは全部の場合を調べると、直感に反した解が得られることが良くある。
 また、実際の到達位置とタイムを見ても、得られた解は速い。間違いなく速い。

 それでもなお、最速とは言い切れない。
 なぜなら、速遅判定中にしばしばガードビームに突っ込んでいたからだ。

 実はまだ、コーナーリング終了時にハンドルをニュートラルに戻すタイミングを調整していない。単純に、一定の座標を超えたら旋回を止めるというスクリプトになっている。そのため、旋回し過ぎてガードビームに突っ込むことが多い。

 この手抜きは、ガードビームと平行に走行するための適切な操作タイミングを調査するという行為が、それなりのコストだからである。
 手抜きしてタイミングを固定にしてあるのに、スクリプトの実行に12時間以上を要したのだ。マジメに操作タイミングを調べて正確に旋回を終了させると、実行時間が数倍になるかもしれない。まあ2〜3日ぐらいなら連続で動かしても構わないと言えば構わないが・・・当初の想定よりも初代 F-ZERO のTAS製作が遥かに時間を要する難事業だと判明しつつあるので、この際ラップごとに3日走らせ続ける必要があるスクリプトだってアりじゃないかなと。

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