みたにっき@はてな

三谷純のブログ

続々「24パズル」

23日のエントリで書いた通り、「24パズル」をBurr Toolsという、ソルバを使って26時間かけて解いたところですが、
同じソルバを使って8.6分で解いたと言う知らせをいただきました(ここでの「解く」とは全部の解を数え上げるという意味)。
CPUの違いは無視して181倍の違い!!
問題設定の工夫をすることで、かなり高速になるそうです。

単に解を求めるだけでは飽き足らず、今度はスピードの勝負?
私が自分で作ったプログラムでは約20分かかったので、汎用ツールに負けてしまうというのは驚きとともにちょっと悔しい。
そんなわけで、プログラムコードとにらめっこして、高速化を試みてみました。
。。
。。
その結果、得られたプログラムでは373秒(6.2分)で解けるようになりました。

作ったプログラムコード(C++)はこちら
ピースの数だけループ処理があるので、その部分のコードは自動生成して作りました。参考までに。