Devquizへの参加記念にソースコードを晒しておきます。 アルゴリズム 1、IDA* 過去のステップ数と残りの距離見積りの和で与えた閾値を上げながら反復深化 2、双方向探索 ゴールから幅優先探索、前方からIDA*を実行しマッチング 実装中に他の方法で万点取れる目途が付いたので中途半端(というかまだ動いていなかった。。)になっています。 3、端優先 人がパズルを組み立てる時のように端から順に揃えていくアルゴリズム。 4、ステップ実行 指定された回数探索を行い、それまでにゴールに達しなかった場合、過去に見つかった残りの距離見積りが最小のものをスタートに再度探索を繰り返す。(それ以外のノードを捨てる) 5、半自動シミュレーション 上記で解けない問題が7問残った。この残った問題を半自動で解くためのヒントを元に解いていくシュミレーター。 *距離関数としてはブロックを考慮したマンハッタンディスタンス