2009年9月15日火曜日

(44) ナンバープレースのモデル化

 数学的手法でもって、あるいはコンピュータを使ってある問題を解くとき、まず数式で取り扱えるように、問題の本質(特性)をかえることなく、考えやすいモデルであらわせないかどうかをかんがえる。そのように考えだされたものがモデル化ということが出来る。

 ナンバープレースにおいては、空白セルの中に数字をいれる。セルはユニット( Block , Row , Column ) に属し、数字はユニットの unique digit である。したがって、セルで考えるか、数字で考えるかで、二つのモデルが存在する。正確には、それぞれ、三つのモデルを構成する。

 候補の数字を要素にもつセルは candidate matrix ( candy_table ) である。candidate を一つしか持たないセルはその数字が answer となる。( M サーチ )  本来は candy_table は三つよりなる物だが、これはこれまでの成り行きでまとめて一つとしよう。

 ナンバープレースの解き方の基本は「候補の数字を一つしか持たないセル」を探すことと「数字のはいる場所が一つしかないセル」を見つけることである。この基本を一度の操作で見極められるサーチが基本サーチと呼ぶ。Block , Row , Column のそれぞれに対して、Bサーチ、Rサーチ、Cサーチが存在する。基本サーチはこの四つである。複数個の候補を持つセルから、その数字の配列特性を考慮して、如何にして候補の数を絞りこむかが探索法の鍵である。  

0 件のコメント:

コメントを投稿