数独日誌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)の問題を提供していただけるということなので(私はどちらもまだ自分で使ったことがありません)読者のみなさんも一緒に練習してみませんか。
| 固定リンク
「趣味」カテゴリの記事
- 数独日誌241208(2024.12.08)
- 数独日誌241201(2024.12.01)
- 数独日誌241124(2024.11.24)
- 数独日誌241117(2024.11.17)
- 数独日誌241110(2024.11.10)
コメント
英語の文献では、ミシチャンの定義での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分