以前のVer7.2.2を実行すると同時に別の探索ロジックを実行します。追加したロジックは2つですが、下記の通り、この2つのロジックは性質があまりに違い過ぎるので、レベル(問題面)によって、どちらか一つを実行しています。
|
・スレッド1(ロジック1) |
|
Ver7.2.2と同じものです。(バグの修正あり) 今、目指すべき目標を解析し、そのサブゴールに荷物を運ぶ探索を行い、それが達成されると、新たなサブゴールを解析し、また、そのサブゴールに荷物を運ぶ探索を行なうという動作を繰り返します。
なお、探索中に表示される倉庫の途中図は、このロジックに基づいた実況中継となっています。ただ、明らかに詰んだ状況で考え込む画像を観ていると、作者は自分の未熟さに泣けてきます...
| |
・スレッド1(ロジック2) |
|
Ver7.2.2と同じものです。(バグの修正あり) 通常探索と逆解き探索で挟み撃ちを行なうブルートフォース型の探索を行います。
| |
・スレッド2(ロジック3) Ver7.3で追加 |
|
大規模なストック処理が必要になるレベルに対して、それ専用の解析を行います。XSOKOBANでは、#50,#66,#69の3つがそれに該当します。どれもVer7.2.2では解けなかったものです。大きなストック領域に、荷物をどのように配置すれば良いのかを、詰め込んだ後に戻せることまで考慮して事前調査を行います。右図は調査が終了した瞬間の図。赤丸の荷物の移動から倉庫全体が開放された状態となる。
残念ながら、このタイプのレベル(問題面)は、XSOKOBAN以外では少ないようです。
| |
・スレッド2(ロジック4) Ver7.3で追加 |
|
ロジック2に似たブルートフォース型の探索を行いますが、一定量の通常探索を行った後に、その結果を素にして逆解き用の評価マップを作成し、最良優先探索による逆解き探索を行います。ゴルフのパッティングに例えると、通常探索でホールを大きくして、パッティングの成功率を高めるイメージとなります。
幸いなことに、XSOKOBANの#29を解くことが出来ました。
| ↓ ↓ ↓
|