2012年11月29日木曜日

U-search memorandam (1)

周りを整理していたら、U-search に関するメモ書きが出てきたので、そのアルゴリズムを書き残しておこうとおもう。

U-searchは、龍涎ソフトの重要な技の一つであり、このマクロにより、次の上級技をすべて、カバーしている。

  1.   L           Lb ,   Lr ,  Lc       Hiden Triple         三国同盟
  2.        N          Nb,   Nr ,  Nc       Hiden  Forth        四国同盟
  3.        F           Fb ,   Fr ,  Fc        Hiden  Fifth          五国同盟  
  4.   T           Tb ,   Tr ,  Tc       Naked Triple         陰の三国同盟
  5.        O          Ob,   Or ,  Oc       Naked  Forth        陰の四国同盟
  6.        Z           Zb ,   Zr ,  Zc        Naked  Fifth          陰の五国同盟
  7.        U           Ur ,    Uc              Swordfish
  8.        J             Jr ,     Jc               Jellyfish
  9.        I             Ir ,     Ic                Squirmbag

Q , G (二国同盟)の場合には、二部屋を二人が占有するので、その組み合わせは二通りしかないが、三国同盟では、六通り、四国同盟では二十四通り・・というようにまともにやれば、凄く複雑なプログラミングになる。実は、私も、最初は、三国同盟を、333、332、322、233、223、222 と分けてプログラミングを考えていたが、Lb だけでも、ものすごい量のものになってしまった。

しかし、上記の 9種類の技(24 strategies like Lb,Lr・・・・ )は、ナンプレの構造を利用すると、candy_matrix および g_matrix とその transposed matrix (転置行列) を使って、同じアルゴリズムによる共通のマクロで書き表されるを発見した。おそらく世界初ではないだろうか?

room=3(三国同盟など)の場合を例に取り、関係する matrix との関連をまとめると次のようになる。

            Strategy                Notation       Used  matrix & Coordinate          Used matrix

 Implicit Triple ( Block )  Lb         Place (Block , Number )             gb_matrix ( gg-matrix)
 Implicit Triple ( Row   )  Lr         Place  (Row   , Number )             gl_matrix (gr-matrix )
 Implicit Triple ( Column ) Lc         Place  (Column , Number )           gc_matrix

  Explicit Triple  ( Block )      Tb        Place  ( Number , Block )           Transposed matrix of gb_matrix
  Explicit Triple  ( Row  )       Tr        Place  ( Number , Row )             Transposed matrix of gl_matrix
  Explicit Triple   ( Column )   Tc       Place  ( Number , Column )         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.

room=4 、5 の場合も同じマクロでカバーすることになる。

 room=3の場合を例として、実際にどのような解法の流れでそれを実現するのか、その詳細について、メモしていくつもりである。思い出しながら・・

                                      to be continue