Solverの概要


私のSokoban Solverのoutlineの紹介です。技術的な詳細はTechnical Notesをご覧ください。



*基本方針

最初にSolverを始めるときに考えた方針です。 (3)がFreeCellのSolverのときにはなかった新たな挑戦です。

(1) あまねく解けることを第一義とする。
最短歩数、最短手数などにはこだわらない
(2) Solverの基本構造は、toGoalマクロ機能を基本エンジンとして構成する
(FCA#6.xの構造を踏襲する)
(3) より上位の概念として、ノード間のオペレーションを導入し、
大きなマップ/複雑なマップなどの解法にチャレンジする
(4)) (リソースの制約など) − これは方針ではなく目安
通常のPC環境で、リーズナブルな時間で解ける範囲とする
(10分程度で解けることを目安とする)



* Solver開発史

世代 内容 結果など
(第 1世代)
Soko#01-03
開発期間 : 98.08 - 98.10
開発目的
(1) Solverの基本部品の整備
(2) toGoal機能iの有効性の確認
・Soko#01(初期バージョン)
Xsokoban 30/90問クリア
・Soko#03
Perfect 105/200問クリア
(第 2 世代)
DGsoko#2.x
開発期間 : 99.01 - 現在
開発目的
(1) Soko#03で目指した機能の refine
(2) Dtree機構による subMap化の試行
現在は、(1)が完了して一時休憩中
下記にいままでのBring up History
をグラフにしてあります



以下のグラフは、DGsoko#2.x の開発開始(99.01.04)からの成長曲線です。
一番苦しかったのは、99.02.01 - 99.02.23の約3週間です。この時期にGPorderingの論理を何度も作り直しています。大きな変更だけでも 3度あります。





Home
Up
Back
Next