シンプルループ手筋集+α

この記事は、ペンシルパズルI Advent Calendar 2020の18日目として書かれたものです。
前の記事:ルール要素について(仮)(わんどさん)
後の記事:CSP ソルバーを使ったパズル自動生成(semiexpさん)

2022/11/18 内容の手筋集部分だけを抜き出し、大幅に修正・加筆しました。
何かあれば謎垢(@NAZOac)までお願いします。


1. はじめに

1-1. シンプルループとは

シンプルループとは、盤面の黒マス以外の全てのマスに線を引いて、全体で1つの輪っかを作る、という、シンプルなルールのペンシルパズルです。
パズルスクエア(パズル投稿サイト)ではここで解けます。例題はこちら(パズルスクエアでは各パズルページの上部からも見られます)です。
ペンシルパズルとしては簡単な部類に入ります。

1-2. 前提知識 (解/理詰め/破綻)

ペンシルパズルが解けた時の盤面(シンプルループであればループの形)を解といい、それがただ1つだけ存在すること(問題)を唯一解と言います。
解が複数あること(問題)は複数解、解が存在しないこと(問題)は解なしと言います。
解ける問題について扱うため、以降、解なしの問題については扱いません。また、ペンシルパズルでは様々な理由から唯一解の問題が出題されることがほとんどです。

(ここでは)ペンシルパズルを論理的に正しく解き進めることを理詰めと言います。
解き進めた結果、書き込んだものや仮定した制約を消すことなく辻褄が合わせられなくなることを破綻と言います。辻褄が合わせられないことが確認できたら破綻、とすることもあります
解なしでない問題は、正しく理詰めをしていれば、全体で破綻することはありません。解なしの問題はどう解き進めても破綻します。

2. シンプルループの理詰め

2-1. 基本的な考え方

ループを置く、ということを言い換えて、長さ1の線を白マスの中心から隣り合う白マスの中心に引くこととして考えます。全てのマスに線が引かれることと、全ての線が枝分かれや交差なく繋がることから、「全てのマスに2本の(2方向に)線が引かれる」ということが分かります。
各白マスにおいて線を引ける箇所(辺の中点)を「呼吸点」と呼びます。呼吸点の数が2であるマスに引く線はルールの言い換えから直接確定します。盤面の角の白マスや黒マスに挟まれた白マスがその代表例です。
この確定とループが1つだけルールからの直接的な確定(自明な確定、と呼びます)だけでは多くの問題は解くことができないため、「手筋」「先読み」「仮定」を使って解くことを考えます。

「手筋」「先読み」「仮定」の言葉の定義は人によりさまざまですが、ここでは、
・仮定とは、可能性の数が数え上げられる部分について、ある1つの可能性を仮定して解き進め、破綻したら仮定した部分まで戻って試していない可能性を試す、解けたらそれでよし(他の解を確認するときは破綻した時と同様に、全ての可能性を試す)、という解き方
・手筋とは、常識的に考えて人間が使うことができ、使うことで仮定の回数を減らして解けることがある、汎用性のある考え方や頻出する形
・先読みとは、経験則などに由来する、比較的楽に破綻を確認できる仮定(のうち手筋でないもの)
とします。
例えば、「盤面の形を全部暗記して答えを探す」という方法はふつう人間には使えないため、手筋とはみなしません。
2-2から2-4までは、手筋について説明します。

2-2. シンプルループ手筋


スクリーンショット 2020-12-24 12.13.29

シンプルループ手筋とは、例えば上図の形で、黒線が確定している時に小ループ禁を避ける形で緑線が確定する手筋のことです。正確には、緑マスからは線は3方向にしか引けず、そのうち2つが赤マス(ある1本の折れ線の端点どうし)であるときに、緑マスから赤マスのない方向に線が引ける、という手筋です。
シンプルループでは、自明な確定を除いて最も基本的な手筋です。
緑マスの呼吸点の数が3で、ある2つの呼吸点に両方とも線を引いてはいけない(=多くとも1本しか線を引けない)、よって残りの1つの呼吸点には線を引く、というように考えることもできます。

黒線は自明な確定から通常のシンプルループ手筋ですぐ決まり、緑マスで上と左に仮定すると小ループ禁が起こることから緑線も決まります。
実際は仮定を使わずとも、このツイートにあるように、「線を逃がす手筋」と考えることができます。

スクリーンショット 2020-12-24 12.47.23

黒丸からスタートして両方向に矢印が伸びていくと考えるとき、矢印の頭の部分どうしがぶつかるのは全てのマスを通ったところです。黄マスから伸びる線も向きが確定するので、緑マスから伸びる線も分かります。

スクリーンショット 2020-12-24 12.52.29

実際の問題では上の形で出てくることが時々あります。

スクリーンショット 2020-12-24 13.03.53

これも同じように、逃がす考え方によって黒線が決まります。このように、幅が2列の場所ではどんどん決まっていきます。ただ、これは灰線(蛇行する)と点線(2列が伸びる)の共通部分であり、内部で線が引けてもほかの部分に影響することはありません。なので、先のあたりの2本の線だけ引いておけば十分です。先の2本の線がどのように引かれるかというのは仮定しなくても分かりますが、蛇行する線を脳内で考えるのが早いかもしれません。

このように、線を逃がす手筋で広く線が確定することもあります。
緑線の部分のみが外部に影響する部分ですが、内部の繋ぎ方は7パターンあるため、ちゃんと線を書いていったほうが分かりやすいと思います。

このように、回り込んで逃がす考え方が適用できることもあり(緑線部分)、見落としやすいので注意が必要です。

一手仮定で小ループ禁により破綻する形からも、同様に線が確定します。ただし、これは逃がす考え方による確定というより、2本線が伸びる形になった時に行き止まりになることからの帰納法による確定です。
このような線の確定のしかた全体のことをシンプルループ手筋と呼ぶことにします。

線を逃がす手筋において、先端(内部の線とつながらない部分)は2つになります。白丸がどちらも先端になるので、他に先端が発生しないよう緑線が確定します。
ただし、この例は内部で複数解です。

2-3. 本数定理

本数定理とは、「ある任意の領域から出る線は偶数本である」という定理のことです。慣習的に「定理」と呼ばれています。
ある領域から出る線が奇数本だった場合、領域内部で繋げず孤立してしまう線が出るので、そうはなりません。同様に、「ある任意の領域にある線の端点は偶数個である」と言い換えることができます。

点線の領域に入る線は2本か3本ですが、本数定理より2本に決まり緑の線が確定します。
この場合は、シンプルループ手筋で先に内部を確定させることができます。本数定理で確定する部分は少なく周りに影響しにくいため、本数定理を使わない方法でも確定することが多いです。ただ、見通しが良くなることはあるので使って損はないです。

スクリーンショット 2020-12-24 17.24.43

小ループ禁と合わせると、(白マス全体でない)どの領域にも最低2本線が入る、ということが言えます。

2-4. 市松手筋

市松手筋とは、ある領域の白マスを市松状にA,Bの2色に塗り分けたとき、
「(Aのマス数-Bのマス数)×2=Aから(領域外に)出る線の本数-Bから出る線の本数」
となる、という手筋のことです。
特に、Aのマス数とBのマス数が同じときは、Aから出る線の本数=Bから出る線の本数、となります。

ある領域の白マスを市松状にA,Bの2色に塗り分けたとき、線はAのマスとBのマスを交互に通るので、AのマスとBのマスが同数のときは、あるAのマスから入ってあるBのマスから出る、ある領域の全てのマスを通る線を引くことができる可能性があります。その状態で領域内にAのマスが1マス増えると、そのAのマスから入ってそのAのマスから出る線を引く必要があります。あとは内部でつなぎかえなどができることから手筋が正しいと分かります。
市松手筋は本数定理を含むため、本数定理の上位互換です。ただし、本数定理の方が考えることが少ない分使いやすいです。
ここで紹介する形はそのまま実際の問題にも使える形が多いですが、線の出ているマスと出られるマスが重要で、黒マスの表現が異なったり線の出ている向きが異なったりする形も存在します。

スクリーンショット 2020-12-24 17.43.37

点線の領域内の灰マスの数と緑マスの数は同じです。黒線を自明に確定させた時点で、灰マスから2本線が出ているので、緑マスからも2本線が出ると分かり、緑線が確定します。また、上の灰マスから上に線が伸びないことも分かります。
この形はよく出現する形です。

先ほどの例と似た形です。
左右のどちらの例も、点線の領域内の灰マスの数と緑マスの数は同じで、黒線を自明に確定させた時点で灰マスから2本線が出ているので、緑マスからも2本線が出ると分かり、緑マスから線が出られる部分は2箇所しかないので他の灰マスから線が出ないことが分かります。よって、緑線が確定します。

スクリーンショット 2020-12-24 18.31.40

2-2で示した、2列で伸びるシンプルループ手筋の形にも使えます。点線の領域内の灰マスの数と緑マスの数は同じなので、少なくとも緑マスから1本線が出ることが分かり、緑線が確定します。
ただし、シンプルループ手筋でも確定する場合は、シンプルループ手筋を使ったほうが小ループ禁の情報を含むため、確定する部分は多くなります。

3つのどの例も、点線の領域内の灰マスの数と緑マスの数は同じで、黒線を自明に確定させた時点で灰マスから2本線が出ているので、緑マスからも2本線が出ると分かり、緑マスから線が出られる部分は2箇所しかないので他の灰マスから線が出ないことが分かります。よって、緑線が確定します。
左はよく出現する基本的な形で、それをつなげるようにして拡張していったのが中央と右です。
2×5と応用(端なし)、幅2市松、ある領域から同じ市松で大量に出る場合(2マス)

点線の領域内の灰マスの数と緑マスの数は同じで、黒線を自明に確定させた時点で灰マスから2本線が出ているので、緑マスからも2本線が出ると分かり、緑マスから線が出られる部分は2箇所しかないので他の灰マスから線が出ないことが分かります。よって、緑線が確定します。
この形も比較的出現する形です。2×3、2×5ときていますが、2×7以上は唯一解にしようとすると形が限られる関係で、あまり出現しません。

ここまで見てきたように、シンプルループにおいて市松手筋は、幅2の通路やそれがいくつか複合した、市松の両側の数が等しい領域に対して適用されることがほとんどです。手筋を組み込んで作問する場合、唯一解にするには使いやすいためです。

市松の両側の数が異なる例です。
点線の領域内から緑マスが出ることができず、灰マスが緑マスより2マス多く、黒線を自明に確定させた時点で灰マスから4本線が出ているので、他の灰マスから線が出ないことが分かります。よって、緑線が確定します。
ただし、この例は(どの繋ぎ方に対しても)内部で複数解です。

2-5. まとめ

シンプルループは、自明な確定のほかに、
・シンプルループ手筋……逃げる考え方など
・本数定理
・市松手筋……2×2、2×3、2×5の基本形など
を適切に使うことでほとんどの問題を解くことができます。
また、手筋の適用箇所を見つけられなかったりする場合でも、先読みや仮定を用いることで解くことができます。

3. シンプルループのユニークネス

3-1. ユニークネスとは

ユニークネスとは、問題が唯一解であるという情報をもとにする考え方のことです。
複数解の問題においてこの考え方を使うと、解を見落としたり解がなくなったりすることがあるので注意が必要です。
必ず複数解になる(そこから別の解を構成できる)形を防ぐというようにユニークネスが使用できるため、複数解の出かたから紹介します。

3-2. IC複数解、コの字移し複数解


スクリーンショット 2020-12-24 20.01.28

IとCが並んだような形の部分は、中央の線を含める側を移すことによって別解が発生します。この形を「IC複数解」と呼びます。
シンプルループの複数解としては最も基本的な形です。

スクリーンショット 2020-12-24 20.12.06

シンプルループではこのような確定のしかたはないですが、黒線が確定している状態でユニークネスを使用すると緑線が確定します。

スクリーンショット 2020-12-24 20.23.34

上の2つの解は、実線の領域のコの字の部分をつなぎかえた(もしくは、点線の領域のコの字の部分をつなぎかえた)と見ることができます。IC複数解の角バージョンともいえます。これを「コの字移し複数解」と呼びます。
3×3の大きなS字が複数解になることは時々出てきます。同様に、幅が4以上の大きなS字も複数解になります。

黒線は自明な確定と本数定理によって確定します。ここでIC複数解とコの字移し複数解によるユニークネスを何度も利用すると、緑線が確定します。
このように、端に2本線がある幅2の通路は、ユニークネスを使用すると2本の線が伸びていくように確定します。

3-3. 繋ぎかえ複数解

この問題には、緑線部分が共通する2つの解があります。それらは、緑線と点線によってできる2つのループを繋ぎかえたと見ることができます。このような複数解を「繋ぎかえ複数解」と呼びます。
2つのループの作り方は、片方がもう片方の内側になる作り方とならない作り方があります。
IC複数解とコの字移し複数解は繋ぎかえ複数解の1つのパターンです。ただし、IC複数解は繋ぎかえるものがループではなく線となっている特殊なパターンです。

ある解から繋ぎかえ複数解を探すには、ループをそれぞれ端点の接する2つの線に分割して2つのループと見なせばよいです。ただし、ある分割では繋ぎかえ複数解が発生しないが、別の分割では繋ぎかえ複数解が発生する、ということもありえます。
ほとんどの複数解は繋ぎかえ複数解です。
繋ぎかえ複数解では、ループの内外どちらにあるかが変化する黒マスはありません。

3-4. 継ぎはぎ複数解

左の解から直接は分かりませんが、この問題には右の2つのループから作られる繋ぎかえ複数解が存在します。
左の解は、右の2つのループが継ぎはぎされる形で作られる複数解です。このような解を「継ぎはぎ複数解」と呼びます。
ここで、「複数解」という言葉の使い方について整理しておきます。右の2つのループから作られる繋ぎかえ複数解は、左の解の継ぎはぎ複数解でもあります。このように、「繋ぎかえ複数解」など複数解の種類をいう言葉は、2つ、もしくはそれ以上の解(繋ぎかえ複数解の場合は2つのループの状態が含まれることもある)の結びつきを表す言葉です。ある解にその結びつきの別の解がある時にも使用します。一方、単に「複数解」と言ったときは、何かしら別の解があることを指しています。また、どれも部分的な複数解を生む構造について用いられることもあります。

継ぎはぎ複数解では、ループの内外どちらにあるか変化する黒マスがあります。その最小単位を「内外子」と呼びます。
内外子が内側になる継ぎはぎ複数解は、内外子の周囲を長さ1の線で分割する形でよく現れます。ただし、そのような形があっても継ぎはぎ複数解があるとは限りません。逆に、繋ぎかえ複数解から継ぎはぎ複数解が作れるとも限りません。

内外子が外側になる継ぎはぎ複数解が繋ぎかえ複数解でないパターンです。外側がループでなく、一箇所欠けているような形でもよいということです。

継ぎはぎ複数解が複合したパターンです。内外子も2つあります。
複合すると一部の内外子の内外の組が無くなることがあります。これは内外子がどちらも外側である解がないパターンです。
また、片方が内、片方が外、と複合しているあたりでは、内外子の周囲の分割のしかたが不規則になることがあります。

これは内外子がどちらも内側である解がないパターンです。また、このように内外子は1マスとは限らず、内外子の周囲の分割のしかたの基本形が長さ1の線でないパターンも存在します。

現状発見できている複数解の形はこれで全てですが、継ぎはぎ複数解がより複雑に複合したものなどがあると思います。

3-5. 対称ユニークネス

対称性のある唯一解問題では、解も同じ対称性を持ちます。そうでない場合対称変換した解が存在してしまうためです。
通常盤面では、線対称、点対称、4回(回転)対称の3種類の対称性が存在します。

3-6. 複数解が起きやすい形

黒マスのない広い部分では、主にIC複数解とコの字移し複数解による複数解が起きやすく、形が限定されます。

このように、3×3の領域で3本直進する線がある場合、複数解になります。これはコの字移し複数解の部分で紹介した、3×3の大きなS字の複数解の一般的なパターンです。

先ほどの事実とIC禁、繋ぎかえ複数解の形から、黒マスに隣接するマスを1マスとして黒マスから3マス以上離れた領域では、全てのマスで線が曲がることが分かります。よって、上のような形が複合したもの(斜めと折り返し)になります。

シンプルループ手筋が広く使える形として示した例でしたが、これは内部の唯一解を考えると左のパターンに確定します。

3-7. ユニークネス手筋

特に具体的な確定する形のことを「ユニークネス手筋」と呼びます。
市松手筋の例と似たように、ここで紹介する形はそのまま実際の問題に使える形ですが、黒マスの表現が異なったり線の出ている向きが異なったりする形も存在します。

スクリーンショット 2020-12-24 22.16.09

市松手筋の基本的な形とIC禁による下2列の確定の複合系ですが、よく出現します。


右は黒線が決まっている時に緑線が確定します。よく左の形で出現しますが、手筋的には右の形です。
2列部分でのコの字禁止による手筋なので、シンプルループ手筋のように線が伸びます。

右は黒線が決まっている時に緑線が確定します。よく左の形で出現しますが、手筋的には右の形です。
こちらも2列部分でのコの字禁止による手筋なので、シンプルループ手筋のように線が伸びます。
近くで市松手筋による確定が起こることが多く、それを無視して解けることがあります。

スクリーンショット 2020-12-25 1.09.54

右上のL字がユニークネスでの確定部分ですが、周囲の白マスでシンプルループ手筋のような確定はしないため注意が必要です。よく出現しますが、ここから解けていくことは少ないです。

スクリーンショット 2020-12-24 22.50.46

この形はこれかこの左右反転形になります。あまり出現しません。

3-8. まとめ

シンプルループはそのルール上、部分的な複数解の形が生まれやすいため、ユニークネスが比較的多くの場所で使えます。
ユニークネスを使って解くことで、取っ掛かりが増えたり、作者が仕込んだ気づきにくい理詰めを無視して解けたりします。スムーズに解きたい時には良いですが、作者が仕込んだ理詰めを味わいたい時には向かないかもしれません。
唯一解の問題でなければユニークネスは使えないので、作問中などに使ってはいけません。

4. 補足など

4-1. 解き方のまとめ

シンプルループに限らない話になります。
ペンシルパズルの解き方は、大きく「理詰め」と「引き」に分けられます。引きというのは、論理的な正しさはないがこんな感じがするからこう線を引いてみる、といった解き方のことです。正しく引ければ引きのほうが早く解けることがあります。一方、破綻したときになぜ破綻したかわかりにくいので、確実に解くためには向いていません。
こちらのSP1さんの記事に、早く解くことに焦点を当てたもう少し詳しい話があります。

ここからは、理詰めに限った話になります。
理詰めする時に、
・難しい手筋を使わない
・先読みや仮定を使わない
・ユニークネスを使わない
というような条件をつけて解くことがあります。
例えば、
・簡単な問題か確認するため、難しい手筋を使わない
・理詰めを探すため、先読み、仮定、ユニークネスを使わない
といった感じです。
ペンシルパズル大百科の理詰めのページに、理詰めのさまざまな定義を含めたもう少し詳しい話があります。

4-2. 練習問題

理詰めが特徴的だった問題3選です。
ユニークネス不使用、仮定(ほぼ)不使用で解くといいと思います。
問題ごとの謎垢の想定する理詰め(作意のものとそうか分からないものがあります)は4-6に書いてあります。
① https://twitter.com/agnomy/status/1288765866364956672 
② https://puzsq.logicpuzzle.app/puzzle/8118
③ https://puzsq.logicpuzzle.app/puzzle/10278 

4-3. シンプルループ以外への応用

シンプルループ以外のループパズルやシンプルループのバリアントなどでも、ここで紹介した理詰めやユニークネスが使えることがあります。
ループパズルは、
・単一ループ/複数ループ
・交差なし/交差あり
・全マス通過/非全マス通過
と大きく分類できます。

シンプルループ手筋は、交差の有無に関わらず、単一全マス通過ループであれば使えます。非全マス通過ループでも、対象のマスをループが通過することがわかっている場合は使えます。複数ループでも、部分的に単一ループだとわかっている場合は使えることがあります。
本数定理は、任意のループパズルで使えます。また、パス(端点のある線)を配置するパズルでは、ある領域から出る線の本数とある領域にある端点の個数の偶奇が一致する、という形で使えます。
市松手筋は全マス通過ループであれば使えます。交差ありの場合は、交差する場所の市松は2つ分として数えます。交差ありのうち、どこでも交差できるパズルでは使いにくいです。ヤジリンなど、非全マス通過ループでもルールによっては使えることがあります。パスを配置するパズルでは、領域内の端点を考慮する市松手筋が使えます。
また、シンプルループの市松手筋は幅2の通路やそれがいくつか複合した形で出現することがほとんどでしたが、ルールが足されて複数解が起きにくくなった他のパズルでは、さまざまな形で出現します。
ユニークネスは基本的にそのままは使えず、パズル種ごとのルールに合ったものが存在します。ただし、端に2本線がある幅2の通路の2本の線が伸びていく確定は、線の長さや直進マス/曲がるマスに対するルールがないパズルで、領域ルールなどからの確定が不可能な場合に使えます。

4-4. シンプルループ10連ガチャRTA

みゃーみゃさん作のツールを使用した、シンプルループ10連ガチャというものがTwitterで流行しています。
10×10のシンプルループ10問を解く速さを競うもので、現在、ベストタイムが3分を切る(1問平均18秒以下)人が20人以上おり、トップに至っては1分台の記録です。
ここまで早く解くためには、いかに理詰めを素早く行うか、だけではなく、いかにスムーズに一気に線を引くか、いかに正解を当てるか、などが重要になってきます。

4-5. シンプルループ研究の紹介

主に、盤面に対して黒マス数が少ない問題について研究があり、そのまとめがにしなん記録室にあります。

4-6. 練習問題の想定理詰め

①一手仮定で小ループ禁により破綻する形から、R3C7(上から3マス目、左から7マス目)のマスから左に線が伸びる
②中央の7×7の市松を考えて、角あたりが確定する
③左上の、幅2の通路が5本複合した形の市松を考える


この記事が気に入ったらサポートをしてみませんか?