プログラム解説第1話 エピソード
これから数独問題解決プログラムや数独問題作成ソフトの解説をしていきます。
私は、すでに3,4年前に数独パズル改良版というプログラムを公表していました。
是非開いて確かめて頂きたいと思いますが、
このプログラムはすべてセルが空欄の数独の問題を解答を作るもので、
1秒に100個ぐらいの勢いで数独解答を作り上げていきます。
私は、セルの中にいくつかの数字が入っている数独の問題をこのプログラムを改良してに解かせれば、
超上級の問題でも数秒で解けるのではないかと考えたのです。
改良したものが数独の問題を解くプログラムVer(マイナス1)です。
1 | 4 | |||||||
3 | 9 | 6 | ||||||
5 | ||||||||
6 | 3 | |||||||
1 | 4 | 8 | ||||||
2 | 3 | 6 | ||||||
5 | ||||||||
4 | 8 |
ところが上の問題を解かせたところ、約33分もかかったのです。
(CPUはIntel Core(TM)Quad CPU@2.4Ghz(4コア))
無条件(すべてのセルが空欄)なら1秒で100個程度作ってしまうのに、
たった1個作るのに約半時間かかってしまったのです。
すべてのセルが空欄の方が問題が難しいという思い込みがあったのですが、
現実にはセルに数字が入っている方が難しかったのです。
そこでプログラムを改良していって、それが
数独の問題を解くプログラムVer1
数独の問題を解くプログラムVer2−1
数独の問題を解くプログラムVer4
数独の問題を解くプログラムVer5
へと結実していったのです。
解くスピードはVer1で28倍、ver2−1で33倍、
Ver4で359倍、Ver5で908倍となりました。
その結果、数独超上級問題でもほぼ0.1秒程度解けるようになったのです。
どんな改良を加えていったかこれから解説していきたいと思います。