2009年9月24日木曜日

(50) ナンプレ探索法の開発

 2006年8月下旬にかけて、can matrix , g matrix を使ったナンプレ探索法を一気に開発した。参考にした解法は当時の数独本に断片的に掲載されていたもので、下記に示す。
 探索法はすでに述べた4つの基本サーチに加えて15個の探索法よりなっている。一つひとつの説明は省略するが、その全体の概要は次の通りである。


探索記号    マクロの名称     探索原理と公表されている解法
(文献は下記に示す)

 B       B_search       あるBlockの中で入るセルが一つしかない数
字を探す。
                        初級パターン①②③④
                        point 1
                        平行線、水平線、垂直線の常識
                        直交平行線の常識
 
 L       L_search       ある行の中で入るセルが一つしかない数字を
                      探す。
                        初級ショキュウパターン⑤
                        point 2
 
 C       C_search       ある列の中で入るセルが一つしかない数字
                      を探す。
                        point 3
 
 M       M_search      一つしか候補をもたないセルを探す。
                        中級パターン④、⑤
                        上級パターン②
                        point 4
                        残り物の常識、別方向からの決定


V  pair_number_search_process   あるBlock 2つだけの数字が水平ま
                         たは垂直に並んでいるとき、同行ま
                         たは同列にはその数字は入らない。
                           中級パターン③
                           ローカル系
 
G  pair_block_cell_search_process  
   pair_line_cell_search_process    
  pair_column_cell_search_process  
    同Block、同列、同行内で二つのセルが同じ数字の二つの候補だけを
    もつとき、Block 内、同列、同行の他のセルはそれらの候補をもたない。                          

Q  double_pair_cell_search       同Block,同行、同列で二つのセル
   line_column_double_pair_cell_search  が二つの数字を専有する
                     ときこれらのセルは他の候補を持たない。
                         上級パターン①
                         定員確定の法則
                         コンビネーション系
                         二重線の常識

T   triple_block_cell_search_process  
   triple_column_cell_search_process 
   triple_line_cell_search_process
     同Block,同行、同列で三つセルが三つの数字を専有するとき
     これら以外のセルはその三つの数字の候補を持たない。
                         三国同盟

P parallel_line_number_search_process
  parallel_column_number_search_process
二つの行または列に同じ数字の入るセルが二つありその列
     または行が等しいとき他のセルにはその数字は入らない。
        四角の対角線
        マトリックス系
U  triple_parallel_line_number_search_process
  triple_parallel_column_number_search_process
三つの行または列にわたり二つの数字をもつ番地が交互に
    配列されるとき同じ列または行の他のセルにはその数は入
    りえない。
        マトリックス系
R triple_pair_block_search
  triple_pair_line_column_search
    同じBlock,行、列の中の三つのセルに三の同じ数字を持つ
    セルがあればそのセルは三つの数字で専有され他の候補
    を持たない。
        コンビネーション系

S cross_pair_block_search
cross_pair_line_column_search
あるBlockの二つの数字の行または列が等しく、他のBlock
の同じ数字の一つが同行または同列にあるとき残のセルが
その数字になる。
        point 5
        コンビネーション系
 
H Hamada_line_search
  Hamada_column_search
   同Blockの二つのセルと同行、同列にあるセルの同じ二つの
   候補より巧妙にこれらの数字を特定する。
        浜田ロジック
 
W  pair_number_line_search
   ある行の二つの数字の候補が、あるBlockにあるときBlock内
   のセルはその数字の候補を持たない。

A output_two_candidate
  new_class_search
   二つに候補をもつセルの一つの数字を仮定して探索を続ける。
   もし行き詰ると、もうひとつの他の数字が特定できる。
       矛盾の常識
 
Y  pair_number_column_search
    ある列の二つの数字の候補が、あるBlockにあるときBlock内
    のセルはその数字の候補を持たない。
 
X  triple_number_search_process
   同Block内の3つの候補が同行または同列に並ぶときその行、
   列の他のセルはその候補を持たない。
      中級パターン②
      ローカル系
      空き直線の常識
 
K  triple_parallel_line_search
  triple_parallel_column_search
    二つの行(列)に候補が矩形状に配置されるとき、同じ数字
    をもつ他の行(列)の数字が特定される。
      四角の対角線
 
D rectangular_block_line_search
  rectangular_block_column_search
    二つの行(列)に候補が矩形状に配置されるとき、同行(列)
    に同じ数字をもつBlockの数字が特定される。


公表されている解法は次の資料を参考にしました。
 (1)  ニコリ「数独」名品100選:ニコリ編著 (文芸春秋)
      初級パターン、中級パターン、上級パターン
 (2)  ナンプレ超上級編11 西尾徹也 (世界文化社)
      三国同盟、四角の対角線、浜田ロジック
 (3)  難問ナンプレに挑戦 2  稲葉直貴 (世界文化社)
      ローカル系、コンビネーション系、マトリックス系
 (4)  西尾徹也のナンプレBS 100 西尾徹也 (世界文化社)
      point 1~point 5、point 6(定員確定の法)
 (5)  ナンバープレイス解法教室 藤原
      http://www.pro.or.jp/~fuji/java/puzzle/numplace/knowhow.1-1
     平行線、水平線、垂直線の常識
     直交平行線の常識,別方向からの決定
     二重線の常識、空き直線の常識
     残り物の常識、矛盾の常識

0 件のコメント:

コメントを投稿