2009年5月28日木曜日

(10) Ver.3 で A サーチの奔り

この時点(2006年5月8日)でとにかく、どんなに難しい問題でも一回のクリックで Final Answer に到達するアルゴリズムがあるはずで、容易に考えつくのが解を仮定してしらみつぶしに調べていく方法である。数学的には、条件付連立方程式の重複のない整数解を解く問題に帰着できると考えていた。それも簡単なプログラムで。

この探索法は問題を解くという観点からいえば最強の方法である。後に、A search という名付けた方法は、「仮定法」とか「矛盾の常識」として紹介さあれている。

sudoku_Ver3(May 2006) ではその奔りとなるいくつかのマクロを開発した。search_cell_with_two_candidate というのは、候補が二つしかないセルとその値をリストアップするマクロである。back_to_win は行き詰ったとき、前の記録をないものにして仮定前の状態に戻すマクロである。あと known_number, input_added_cell, transfer_A_to_B, transfer_B_to_A とかいろいろある。Sheet 1 のなかで A画面がもとのめいんの表で仮定するときにはいったんB画面に残しておくのである。

これらのマクロを順次使うことでこれまで解けなかった問題がいくらか解けるようになった。ただ仮定すつセルの数が増えるとものすごく複雑でそれこそ手に負えない。とりあえず、2階層ぐらいの問題を自動的に解けるように sodoku_Ver.4 の開発に取り掛かった。

0 件のコメント:

コメントを投稿