« 数独日誌110805 | トップページ | 数独日誌110808 »

数独日誌110806

   Nice Loopという手筋があります。その存在は知っていたのですが、例のミシチャンさんのサイトを読んでも難しくてよくわからず、とりあえずこの手筋を知らなくても市販の本はかなり解けるようになったので、ずっと食わず嫌いで遠ざけていました。

   ところが私が購入した本の中で、理詰めで解くのが最も難しい、廣済堂出版「ナンプレ超難問編」を解答する中で、Nice Loopがとても活躍したというTachyonさんのコメントがあったのです。(数独日誌110602参照)

   Nice Loopというのは一言でいうと、3つの条件を満たすリンク(2つのマスのつながり)がLoop(輪)を作るとき、場合によってはかなり多くの数字を候補数字の中から除外できる、というものです。

   詳しくはやはりミシチャンさんのサイトが良いと思うのですが、
http://www.geocities.jp/master_mishichan/ultra.html
1つだけ説明すると、
強いリンクというのは、ある行(または列、または3×3ブロック)の中で数字aの入るマスが2つしかないとき、この2つのマスは数字aについて強いリンクをもつ、と言います。

   弱いリンクというのは、ある行(または列、または3×3ブロック)の中で数字aの入るマスが2つより多いとき、その中の2つのマスは数字aについて弱いリンクをもつ、と言います。ミシチャンさんのサイトの最初のページではこの数字aのことを、ラベルといっています。

   TachyonさんからNice Loop、またその練習として、X-Cycle(X-Chain)の問題を提供していただけるということなので(私はどちらもまだ自分で使ったことがありません)読者のみなさんも一緒に練習してみませんか。

|

« 数独日誌110805 | トップページ | 数独日誌110808 »

趣味」カテゴリの記事

コメント

英語の文献では、ミシチャンの定義でのX-Cycleの不連続タイプを、X-Chainと呼ぶようです。
X-Chainの一種として、2-String Kite 以外の Turbot Fish で解ける問題も提供したいと思います。

まずはひとつ、これはX-Chain以外に、XY-Chainを多数必要としますので、ご了承ください。

030 724 690
006 050 702
027 000 050

270 000 069
308 206 470
600 070 020

060 002 007
702 030 900
043 807 210

投稿: Tachyon | 2011年8月 6日 (土) 15時41分

いきなり難問ですねー。

まず5についてのSashimi Fishがありました。
第5行は5が入るのがr5c29の2ヶ所
第9行は5が入るのがr9c19の2ヶ所
よってr8c2から5を除外

次に8についてのFinned Fishがありました。
第2列は8が入るのはr28c2の2ヶ所
第8列は8が入るのはr278c8の3ヶ所
よってr8c9から8を除外

続いてr9c5(96)-r9c9(65)-r5c9(51)-r5c5(19)
でXY-Chainによりr9c5とr5c5の両方を臨むr37c5の2つのマスから9を除外できます。

この4マスのXY-Chainはとても面白いです!こういうタイプのXY-Chainは初めて見た気がします。このXY-Chainを経験できただけでもこの問題を出していただいてよかったです。

つまり順番を変えて、
r5c5(19)-r9c5(96)-r9c9(65)-r5c9(51)
とするとr5c5とr5c9の両方を臨むr5c2から1を除外でき、

またr5c9(51)-r5c5(19)-r9c5(96)-r9c9(65)
の順にするとr5c9とr9c9の両方を臨むr58c9の2つのマスから5を除外できます。

ところがこの後なんですが、一応X-Cycleが1つ見つかりました。
r5c5-r9c5=r9c1-r7c3=r6c3-r5c2=r5c5
の6つの連鎖です。この中のr5c5-r9c5の部分は実際はr5c5=r9c5の強いリンクなのですが、弱いリンクとみなしました。

これで弱いリンクを含むユニットから9を除外できるので、r7c1、r6c2から9が除外できると思います。しかしここでストップしてしまいました。

投稿: ikachan | 2011年8月10日 (水) 16時45分

> いきなり難問ですねー。

すみません。どうもHoDoKuのソフトでは、
高度なワザを仕込んで、できるだけ易しい問題をつくるのは難しいようです。


> r9c5(96)-r9c9(65)-r5c9(51)-r5c5(19)
> この4マスのXY-Chainはとても面白いです

これが、いわゆる連続タイプです。
連続タイプは、いかにお得か、ご理解いただけたと思います。


> r5c9とr9c9の両方を臨む
> r58c9の2つのマスから5を除外できます。

「r58c9」じゃなくて「r68c9」ですよね?


> r7c1、r6c2から9が除外できると思います。
> しかしここでストップしてしまいました。

お見事です! ここは連続タイプと捕らえるべきで、
前回のコメントで私は、X-ChainではなくてX-Cycle
(SudopediaではFishy-Cycle)というべきでした。

あとは X-Cycle/Chain は必要ありません。
XY-Chain/Wing等を多用して解けると思います。
次の一手として以下はどうでしょう?

r1c9-r5c9-r9c9-r8c9-r8c8

投稿: Tachyon | 2011年8月11日 (木) 19時34分

お久しぶりです。
Nice Loopについてですが、ミシチャンさんのサイトの説明で理解するのは難しいですね。私の場合、Nice Loopよりもその上のAlternating Inference Chain (AIC)の方が先に理解できました。

AICでは、マス内の候補数字の間でも強・弱リンクを考えます。つまり、あるマスが2択マス(bivalue)であれば、2個の候補数字は強リンクで繋がっていると考えます。また、マス内に3個以上の候補数字があれば、その内の2個の候補数字は弱リンクで繋がっていると考えます。そして、ユニット内とマス内のリンクを合わせて考えて、強、弱リンクを交互に繋げていきます。その結果、不連続ループになる場合は、不連続点が弱、弱リンクで繋がっていれば、不連続点の候補数字を除外でき、強、強リンクで繋がっていれば、不連続点の候補数字が確定します。また、連続ループになる場合は、すべてのリンクが強リンクになるように候補数字を除外できます。このように考えれば、AICを理解するのはそれほど難しくないと思います。

一方Nice Loopでは、マス内のリンクを考えるのは2択マスに限定されます。勿論、その2択マスを強・弱リンクのどちらと考えてもよいです。AICで考えると、ミシチャンさんのサイトのNice Loopの説明も理解できるのではないでしょうか。

ただ、SudopediaやHoDoKuのNice Loopのサンプルには、候補数字が3個以上あるマス内でも(弱)リンクを考えているものがあります。従って、正直、私にはNice LoopとAICの区別が付きません。

ところで、XY-Chainが連続ループになっているものをXY-Loopと呼ぶようです。
http://www.830pm.com/sudoku/strategy10-xy-chains.htm
XY-Loopでも、すべてのリンクが強リンクになるように候補数字を除外できると考えれば簡単ですね。見つけるのは大変ですが。

それから、Tachyonさんの問題についてですが、次のように解いてみました。

1: r5c29、r9c19で5のSashimi X-Wing
2: r1c9=r1c1-r2c2=r8c2で8の2-String Kite
3: r5c5(91)-r5c9(15)-r9c9(56)-r9c5(69)-r5c5でXY-Loop
4: r3c7=r46c7-r5c9=r5c5で1のGrouped 2-String Kite
5: r5c2=r5c5-r9c5=r7c4-r7c3=r6c3-r5c2で9のX-Cycle
6: r1c9(81)-r5c9(15)-r9c9(56)-r8c9(64)-r8c8(48)でXY-Chain
7: r4c3(41)-r6c2(15)-r5c2(59)-r5c5(91)-r7c5(14)でXY-Chain
8: r5c2(59)-r5c5(91)-r5c9(15)-r9c9(56)-r8c9(64)-r8c8(48)
  -r8c2(81)-r6c2(15)-r5c2でXY-Loop
9: r2c2(89)-r5c2(95)-r5c9(51)-r5c5(19)-r9c5(96)-r3c5(68)で
  XY-Chain
10: r2c8(43)-r7c8(38)-r8c8(84)-r8c9(46)-r9c9(65)-r9c1(59)
  -r3c1(94)でXY-Chain

Tachyonさんのヒントの6:以降は自力で解いたものです。大変難しかったです。

投稿: パズル好き | 2011年8月13日 (土) 20時57分

前回のコメントの間違いはご指摘の通りです。Tachyonさんのヒントの後も鬼のようにXY-Chain(XY-Wingも1回)を使いました。一体どれが決定的だったのか、どれは不要だったのか、よくわかりません。

1.Tachyonさんのヒントでr2c8から8を除外。
2.r8c2(18)-r8c8(84)-r8c9(46)-r9c9(65)-r5c9(51)
-r5c5(19)-r5c2(95)-r6c2(51)のXY-Chainでr2c2から
1を除外。
3.r5c5(19)-r5c2(95)-r6c2(51)のXY-Wingでr6c46から
1を除外。
4.r4c3(41)-r6c2(15)-r5c2(59)-r5c5(91)-r7c5(14)
のXY-Chainでr4c5から4を除外。
5.r1c9(81)-r5c9(15)-r9c9(56)-r8c9(64)-r8c8(48)
-r8c2(81)-r6c2(15)-r5c2(59)-r2c2(98)のXY-chain
でr1c1から8を除外。
6.r2c2(89)-r5c2(95)-r6c2(51)-r8c2(18)-r8c8(84)
-r8c9(46)-r9c9(65)-r9c1(59)-r9c5(96)-r3c5(68)
のXY-Chainでr2c6から8を除外。
7.r3c1(49)-r9c1(95)-r9c9(56)-r8c9(64)-r8c8(48)
-r7c8(83)-r2c8(34)のXY-Chainでr2c1から4を除外。

投稿: ikachan | 2011年8月13日 (土) 23時06分

パズル好きさんへ、
またパズル好きさんの新しいコメントを拝見できてうれしいです。

> Nice Loopでは、
> マス内のリンクを考えるのは2択マスに限定されます。
> 勿論、その2択マスを強・弱リンクのどちらと考えてもよいです。

私は、ミシチャンのサイトのNice Loopでは、
マス内のリンクについては何も言っていないように思えるのですが、
私も、Nice LoopとAICは本質的には同じだと考えています。
むしろ、AICの見つけ方のひとつが、Nice Loop, X-Cycleではないでしょうか。

私が、数独日誌101101でもコメントしているように、
AICの考え方は、大ざっぱに言えば、
マス内であろうが、ユニット内であろうが、
候補(あるいは候補グループ)間が、交互に強弱を繰り返して 連結する事だと思います。


ikachanさん/パズル好きさんへ
XY-Chainが、こんなにからみ合った問題を解かれて、さぞかし大変だったでしょう。
しかし最後まで解かれて、とても有難く思います。


さて以の下問題は、Nice Loop以上の高度なワザを使わなければ、
X-Cycleが複数必要と思われます。
最初の問題はturbot Fishを想定しています。

[1]
000 930 067
706 002 319
030 607 040

085 203 971
000 070 030
372 190 680

063 729 150
127 000 093
500 300 726


[2]
106 053 097
400 167 000
007 080 106

810 600 500
074 000 610
602 001 009

048 096 701
700 012 064
061 740 000


[3]
075 040 198
800 970 065
060 508 703

080 050 600
000 239 807
007 800 050

008 005 070
000 080 004
713 090 580


[4]
005 609 034
040 053 760
603 417 520

000 530 040
001 704 350
354 068 000

038 040 605
406 005 013
510 306 480

投稿: Tachyon | 2011年8月14日 (日) 18時13分

失礼しました。前回のコメントの次の部分は誤りでした。
> 一方Nice Loopでは、マス内のリンクを考えるのは2択マスに
> 限定されます。
ミシチャンさんのサイトの解説では、Nice Loopの例のほとんどが2択マスでマス内のリンクを考えていたので、誤解していました。Nice Loopに上記のような制限はないようです。びーにぃさんのブログを見ると、それが分かります。
http://blogs.yahoo.co.jp/bea_nies/folder/1509238.html
Nice Loopに上記のような制限がないのであれば、Nice LoopとAICは考え方の違いはありますが、実質的には同じもののように思えます。いかがでしょうか?
いずれにしても、Nice LoopよりもAICで考えた方がシンプルで分かりやすいと個人的には思います。

ついでに私も1問出題したいと思います。XY-Loop一発で解ける簡単な問題です。

<13>
--2 --- ---
-14 7-- -6-
--6 --- 291
--- -9- -4-
--- 873 ---
-7- -6- ---
529 --- 1--
-6- --4 38-
--- --- 6--

投稿: パズル好き | 2011年8月15日 (月) 12時59分

数独日誌101109でM-WingとM-Ringを紹介しましたが、そのM-Wingが適用できる問題をしばらく前に作っていました。しかし、それを出しそびれていたので、今回発表したいと思います。M-WingはNice LoopやAICで考えることもできるので、練習問題になるのではないでしょうか。

<14>
--1 8-- 2--
-5- --- -6-
--9 --7 -4-
3-- 9-- 8--
--- 2-- 9--
-2- --5 ---
5-6 --- --7
7-- -4- -2-
-4- -3- 6--

投稿: パズル好き | 2011年8月18日 (木) 00時35分

いよいよNice Loopのやさしい問題を提供したいと思いますが、
その手始めとして:
XY-Chain(びー​にぃ​Wiki攻略本の連鎖ルール⑤)と、X-Cycle(びー​にぃ​Wiki攻略本の連鎖ルール⑥)
にない要素(びー​にぃ​Wiki攻略本の連鎖ルール④)でできた手筋で解ける問題を紹介したいと思います。

名づけて、「多節棍」(片方のヌンチャクにさらに棒をつぎたしたような中国武術の武器)。
http://blog-imgs-24-origin.fc2.com/s/i/s/sisimr/20081107104348.jpg
とにかくユニットでは強リンクだけで繋がっているものをイメージしてください。
どの問題も、うまくやれば、基本的な技の他には、多節棍一発お見舞いすれば、やっつけられるはずです。


三節棍[1] (四節棍でも解けます)

387 965 412
005 000 986
169 824 537

901 506 820
002 080 690
638 209 700

006 100 309
714 090 200
093 050 100


三節棍[2] (四節棍でも解けます)

000 080 200
080 201 007
002 500 813

800 002 430
634 000 002
927 400 005

140 327 900
300 904 020
200 060 300


四節棍[1] (五節棍でも解けます)

309 010 000
604 890 070
000 030 609

467 080 000
080 070 036
030 050 784

203 040 067
096 027 450
740 060 001


四節棍[2] (五節棍でも解けます)

540 279 008
081 534 009
002 681 500

000 062 007
070 048 050
420 715 000

000 857 600
800 426 900
260 193 085


四節棍[3] (五節棍でも解けます)

006 001 945
200 050 870
095 700 200

000 570 380
007 083 100
008 014 000

000 195 638
513 000 092
689 300 000


五節棍[1]

800 000 036
300 006 005
160 003 004
942 351 768
700 060 392
638 792 451
400 600 087
280 100 049
570 000 003


五節棍[2] (六節棍でも解けます)

000 067 501
006 021 080
001 038 600

132 689 005
865 374 192
947 152 863

003 810 000
010 740 000
604 290 010


六節棍

020 000 000
000 580 723
300 004 069

436 002 000
000 103 000
000 800 302

190 600 037
853 097 000
000 000 950


七節棍

608 000 000
407 000 100
031 809 064

060 080 007
902 000 305
700 020 010

840 703 050
005 000 409
000 000 000


八節棍

715 300 820
040 528 710
208 107 040
400 000 032
002 030 400
583 200 070
000 672 004
057 403 260
624 000 307

投稿: Tachyon | 2011年10月 1日 (土) 14時39分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 数独日誌110806:

« 数独日誌110805 | トップページ | 数独日誌110808 »