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

2015年3月16日(月) 21:32

速くない

 スクリプトが徐々に仕事を始めたが、どうしても感覚が狂う。それは、実行速度である。
 スクリプトで最適解を探すというのは、パズルを解くプログラムを作成するのとほぼ同じ行為である。コンピューターはどうしても無駄な調査をしてしまうが、見落としはしないし倦まない。ひたすらすべての場合を虱潰しに調べるのに向いている。もちろん現実には、簡単に教えられるような無駄省きは組み込んでおくが、あくまで簡単にあらかじめ教えておけるものだけである。
 人間のように、自分で考えて効率的な調べ方をするということは、できない。

 それでも十分に強力なのは、コンピューターが速いからである。
 人間の1万倍・・・100万倍・・・何億倍という速度で調べるから、効率の悪さを補える。1年掛かるような調査も、速度1万倍なら1時間で終わる。100万倍になれば30秒そこそこだ。
 だがしかし、PSXjin の lua スクリプトはスピード normal でしか動かない!

 よって、lua スクリプトはよっぽどうまく作成しないと、効果を発揮しない。
 mornal 速度以外では、正常に結果が得られない。タイミングを取らずに最高速で動かすようにすれば、数倍の速度は出せる。しかし、せいぜいそこまで。

 最初のイメージでは、スクリプトでバッテリー回収解を1000通りぐらい見つけ出し、どれが最速であるかを自動判定させようとしていた。これは2つの部分からなる。回収解を探す前半、そして回収後に最速で路地を抜け出す解を探す後半だ。
 ところが、いざスクリプトを動かすと1日に数通りの回収解(バッテリーに砲撃が命中)を得るのがせいぜいっぽい。これで1000通りとか、1年掛かってしまう。パズルを解かせるプログラムみたいに、桁違いの速さで動いてくれれば実用的な時間で終了するのに。

 それでもスクリプトは結構有用である。人間なら発狂するような単純作業を続けられるし、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