2013年7月23日火曜日

L-search memorandam (9) Example of Lc-search(2)

room=3 (三国同盟のように、3つのセルと3つの数字が関係する技)の場合、マクロを共有します。

            Strategy                Notation       Used  matrix & Coordinate          Used matrix

 Implicit Triple ( Block )  Lb         Place (Block , Number )             gg_matrix ( gb-matrix)
 Implicit Triple ( Row   )  Lr         Place  (Row   , Number )             gr_matrix (gl-matrix )
 Implicit Triple ( Column ) Lc         Place  (Number , Column )           gc_matrix

  Explicit Triple  ( Block )      Tb        Place  ( Number , Block )           Transposed matrix of gg_matrix
  Explicit Triple  ( Row  )       Tr        Place  ( Number , Row )             Transposed matrix of gr_matrix
  Explicit Triple   ( Column )   Tc       Place  ( Column , Number )         Transposed matrix of gc_matrix

  Swordfish   ( Row )              Ur      Number ( Row , Column )            Candy_matrix
  Swordfish  ( Column )           Uc      Number ( Column, Row )           Transposed_matrix of candy_matrix

 where,  Implicit means term of  "Hidden" and Explicit means that of "Naked" respectively.

今回の実例の場合、Lc(Implicit Triple of Column )で初めて当てはまるケースが見つかります。探索には、gc-matrix を使います。

先に示した candy matrix より、gc-matrix を作成します。

                                          Fig 1   gc-matrix converted from candy matrix

黄色のセルは、3国同盟を形成する第7列目にある3つに部屋 cdh でそこに 379 の数字の候補が入ります。candy matrix では、他の候補とまぎれた”hidden”の状態ですが、この gc-matrix では、”naked” の状態になります。

ここに、念のため記しておきますが、部屋の呼び名は、それぞれの列で、上から順にa,b,c,・・となります。


Fig. 2   Notation of each place at column 7

Lc_search に入ると、一列目(icol=1)から順に三国同盟が成立するかを調べていきます。

第7列になったときのgc-matrix より作成した chainr-matrix は次のようになっています。


Fig.3 Candidates of place for each number

第7列目で、候補の数字を持つ場所(Place)がmatrixの値となります。

Step 1 の candy matrix で、上の表の意味を確認下さい。

右端および下端の数は、placeおよびnumber の候補の数です。chainr-matrix (Fig.3)からColumn 7ですでに決まった数字を持つ3つの場所を除き、候補の数が少ない順に列および行を並べ変えます。


           Fig.4  Aranged chainr-matrix
さらに、三国同盟(room=3)を形成するのは、knum<=room つまり候補の数が3以下の場合なのでそれ以上の候補を持つ行、列を除きます。


Fig. 5 Condensed chainr-matrix called as jun-matrix
 さらに、該当する行と列だけに絞り込みます。

Fig.5  Rearanged jnn-matrix

最終的に三国同盟を形成する3つの数字が入る3つのセルがもとまりました。

Fig.6 Implicit Triple derived  from gc-matrix of column 7

Lc-search では、C7-c, -d, -h の3つのセルは、379で占有されるので、それ以外の候補の数字があれば、これらのセルから消去されます。

その結果として、これらのセル以外の場所で、これらの数字以外候補が基本技で決まる(場合がある)ことになります。

何と言っても、このアルゴリズムの凄いところは、三国同盟を形成する候補の組み合わせを全て一つのマクロでカバーしていることです。

2013年7月22日月曜日

L search memorandam (8) Example of Lc-search

Lc-search ( Implicit Triple of Column,  三国同盟)のわかりやすい例として、「ナンプレ超上級編30」の31番の問題を取り上げます。

           「ナンプレ超上級編30」031番 ☆☆☆☆☆☆ 作・西山ゆかり

この問題は、第一手目がいきなり、Lc (Implicit Triple of Column )の技を使います。それ以降はすべて基本技で取れるという L-search の練習のような 問題です。



 ここでは、”Ryuzen” ソフトが如何にして、第一手 (8,4)=6 LcR を見つけだすかを説明します。

最初に第1手の Candy matrix を示しておきます。

         
Pencil Player の場合には、熟練の勘で、これらの候補の中から 第7列(C7)において 379が3つのセルを独占する(三国同盟)のを見つけます。

379 の候補だけのCandy matrix は次のようになっています。ここで、379の数字が3つのセルだけにしか表れないというのがポイントです。第1行や第4行でも379で占める3つのセルが存在しますが、他のセルにも3や7や9が存在するので三国同盟にはなり得ません。



これさえ見つければ、あとは簡単で、第一手は次のようになります。



ピンクのセルの三国同盟で、 (8,7) のセルには、39 しか入らないので、8行目において、6が入るのは、白いセルの(8,4)=6 となります。

最終結果と決まる順番です。

                 Final Answer



                                       Order and used strategy


それでは、”Ryuzen” ソフトでは、如何にしてこの379の三国同盟を見つけ出すのでしょうか?

                                          To be continue