理論に基づくスリザーリンク手筋集 ver.0.1

本記事はペンシルパズルアドベントカレンダー2019A2の22日目の記事です。詳しくは[こちら](https://note.com/homerestaurant3/n/nfa966666b8e4)をご覧ください。

※本記事は「理論に基づくスリザーリンク手筋集」のうちの、手筋の命名規則および定理集の章のみからなるβ版です。
最終版ではすべてをまとめた形で査読付きで発表したいと思っております。また、最終版では表現やまとめ方が異なる場合があります。ご了承ください。

#配置と命名規則
スリザーリンクの手筋を、ヒント数字の配置に応じて以下のように命名します。
([場所]の)[形状][数字の順]
###場所
角や辺など、盤面の端を利用した特定の場所でのみ成立する手筋の事を「**角**の」○○、「**辺**の」○○などと記します。
また、盤面の端を利用しない事を強調する場合は「**空中**の」○○と記します。
###形状
手筋の配置としてよく出現する以下の三つのヒント配置について形に名前をつけます。
![横.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/2bb32d9d-8882-5267-8370-7e87baf53b56.png)このような数字配置を「**横**」と名付けます。縦に並んでいても「横」です。
![斜め.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/5bba9ae1-bf3b-c517-aa53-42ec73e0efb5.png)このような数字配置を「**斜め**」と名付けます。
![桂馬3-1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/3ec4fb24-f2cb-8f16-786d-4f6f2c759886.png)このような数字配置を「**桂馬**」と名付けます。回転反転していても「桂馬」です。

###数字
上記の配置において端から順に数字を書くことで、どのように数字が入っているかを表します。
![桂馬呼び順3-1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/4f7ad1d1-b396-ba2e-96bf-5ab1e6002dd2.png)

基本的に辞書順で小さくなるように書くことにします。ただし、以下の例外があります。
・桂馬のみ上図の数字の順に書くこととします。
・角の横配置については、角に隣接した側から書くこととします。
#####例
![横の03.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/d100da54-91a8-fa01-e8e1-7e249bf20fba.png)これは「横の03」
![斜めの03_命名規則用.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/263ecd85-a211-d99e-248b-d2c5a8d96835.png)これは「斜めの03」
![桂馬の033_命名規則用.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/4f8ee4bb-ff4c-043f-9ffd-431febf9c31a.png)これは「桂馬の330」
また、横/斜めは適宜3つ以上に拡張をする場合があります。
![横の333.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/1e078593-406c-48b2-fd03-903b638417c5.png)これは「横の333」
#定理
本手筋集は、「手筋」と「ルール」の間には汎用性の高い理論である「定理」が存在し、すべての「手筋」は「定理」と「ルール」から理論的に導かれる、という仮説のもとに書かれています。以下に、「定理」の一覧を載せます。
##小ループ禁
手筋難易度:初級
![小ループ禁.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/4e50317d-c504-7b8a-2e64-cca7a6553f8a.png)
全ての数字を満たしていない状態でループを閉じるように線を引いてはいけません。これは、「ループが複数できてはならない」というルールにより得られる定理です。
###小ループ禁の例外
手筋難易度:研究
小ループ禁は「全ての数字を満たしていない」状態でループを閉じる事ができないという手筋であるため、全ての数字を満たしているならばループを閉じてもかまいません。
![小ループ禁の例外.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/35cfac61-0d61-c8fd-c100-2e8322e141bc.png)![小ループ禁の例外_2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/eaf5f5e3-15fe-80c0-7742-47b23df28d77.png)![小ループ禁の例外_3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/c971ce9e-01da-f229-aa5c-3da10d2caee0.png)
例として3×3のスリザーリンクの問題を考えます。左上に最もよく知られた手筋の一つ、角の横の33(後述の手筋)があるので書き込んでみましょう。すると破綻してしまいます。どこが間違っていたのでしょうか？

実は横の33では3枚目の図のように、小さなループを書いてしまう事もできるのです。
では、なぜこの書き方は横の33手筋として一般的でないのでしょうか？

この答えは単純です。**横の33の手筋は小ループ禁に依存している**のです。より正確に言えば、「周囲に横の33以外に数字が書かれており、このように小さなループを作ってしまうと全ての数字を満たしていない」状況下において、3枚目のような線の引き方ができません。

通常スリザーリンクを解いているときにこの問題に直面することはほとんどありません。したがって多くのパズルの本などでは2枚目のような線の引き方のみ紹介されています。しかし、小さな盤面や0で盤面が埋め尽くされているなどの特殊な状況においては小ループ禁に依存した手筋は成り立たない場合があるのです。

本手筋集では、小ループ禁に依存した手筋ではそのように明記する予定です。

##偶端定理
手筋難易度:上級
![偶端手筋.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/e84423c7-3c65-ff26-93fa-2fc53d65864f.png)  ![偶端手筋_2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/0396d9f1-ef47-4031-f8f8-4e28b11ab949.png)

本数定理、と呼ばれることもあります。
枝分かれ禁止・行き止まり禁止由来の定理です。
ある領域内にある端点は2つずつ線によってつなげられます。そのため、もしも端点が奇数個あると枝分かれ禁止・行き止まり禁止に反してしまいます。このことから次のようなことがわかります。

- ある領域に注目したときに、その領域の境界線をまたぐ線の本数は偶数本。

- ある領域に新しく線が入ってこない状態にあるならば、その領域内にある線の端点は偶数個である必要がある。

具体的に見てみましょう。1枚目の図の中央付近はまだ決まっていません。この中央付近の正方形の領域に注目すると、端点の個数の偶奇から、まだ決まっていない線がこの領域の方向に曲がる、ということがわかります。

##最大数理論
最大数理論とは、引くことができる線の最大数とヒント数字の総和が一致するときに、特定の線が確定する、という理論で、枝分かれ禁止由来の定理です。この理論により成立する手筋を通してこの理論を確認してみましょう。
###斜め33
手筋難易度:初級
![斜め33.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/ee57cf01-652c-727a-32ec-68edf37790a8.png)
この手筋は次のようにして説明することができます。
まず、3の周囲の8本の辺を、次の図の点線と太線部に分けてみます。
![斜め33_2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/3f10d1d0-d2b3-fcdf-6bef-2e13a73c6d74.png)
一つの点の周囲に引かれる線の本数は最大で2本ですから、点線の部分のうち実際に引かれるのは2本以下です。したがって太線部もあわせて、この2マスの周囲の計8本の辺の周囲には高々6本までしか線が引けないことがわかります。ヒント数字の和が6ですので、太線の部分が全てひかれ、点線の部分にはちょうど2本線が引かれることが確定します。

##通過点理論
ループの線が通る点のことを「**通過点**」と呼ぶことにします。以降通過点を△
マークで表します。
通過点の例![通過点.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/287bee8f-69ed-cb58-cb4f-a505ceba6c22.png)
この通過点の性質について順に見ていきましょう。
![通過点0.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/34e9553d-cced-e7cb-695b-3e3b4925be08.png)![通過点1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/29ad44f9-2740-9722-f7bc-c70bafecbadc.png)![通過点2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/7bba4fa2-196e-29db-b829-1c5985c5defa.png)![通過点3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/de2e7c82-5410-470b-0050-ad19a5b6c74f.png)　
各数字の周囲の引き方によって生じる通過点の例を上図にあげました。
注意すべき事として、上の図で通過点になっていないからといって、常に通過点でないとは限りません。
![通過点勘違い.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/99a23166-4450-daf5-d4e5-96237859530a.png)　0の周囲が通過点となるような例

数字の周りの通過点については特に次の事実をよく使うことになります。

- 3の周囲には通過点が必ず4つ存在する
- 2の周囲には通過点が3つ以上存在する

![通過点12.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/706d6e39-d94a-8f2a-e995-e414b4b48870.png)　いくつかの辺の条件下の通過点
加えて、いくつかの辺に×が打たれている(上図の×)ときにいくつかの点が通過点であることが確定する手筋があります。

また、通過点そのものの性質として

**通過点二本則**
- 通過点の周囲の4本の辺のうち、ちょうど2本に線が引かれる

ということがあげられます。このことを利用すると、×が打たれた点の周囲から通過点の情報が伝搬することがわかります。
![通過点伝搬.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/359a6b90-a728-3bb2-5c5a-424329acb499.png)

最大数理論と比較した際のこの理論の最大の特徴は、小さなヒント数字に対して適用して×をつけることができる事にあります。また、通過点二本則は行き止まり禁止に依存しています。
具体例として、この通過点理論によって説明することのできる手筋をいくつか紹介します。

###桂馬の020
手筋難易度:初級
![桂馬の020.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/9f8376f7-78eb-b4e9-d195-456c073a4a07.png)
この手筋は、次のようにして説明することができます。
![桂馬の020_2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/72121d86-2846-e497-faa5-acf57aaedf69.png)
まず、2に注目することで、上の図のように通過点が確定します。
ここで右上の通過点に注目すると、通過点二本則により一番上の図のように線が引かれることがわかります。

###L字の131
手筋難易度:上級/研究
![L字131.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/c82b8860-4eee-68cc-6e26-f7a486ee031c.png)

先述のとおり、3の周囲の4点は通過点になります。ここで斜め11の間の通過点について、通過点二本則からこの通過点の周囲には2本の線が引かれることが確定します。したがって斜め11の周辺で引かれる2本の線はこの通過点を通るということがわかり、図で示した位置に×がうたれます。

###花の12
手筋難易度:研究
![花の12.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/bed5cc9c-fba8-fb8f-42d0-a2ca33037427.png)
図のように並んだ1と2の配置について注目してみましょう。
先ほど「2の周囲には通過点が3つ以上存在する」と説明しました。そのため、2の対角線のうち少なくとも一方について、2頂点がともに通過点である、という状況になるとわかります。ここでL字の131の際に説明したのと同じように、通過点二本則によってそれぞれ×が打たれます。
したがって、どちらの場合でも×が打たれていた部分については常に×がつくことが確定します。
この×自体は後述のT字の12でも同様に決まるのですが、特に花の12では、2枚目と3枚目の中央が、角の2の類似系となっていることに注目すると、最終的に次の4つの線の引かれ方しかないことがわかります。
![花の12_2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/86223bf3-3ea5-0a4c-b15c-3c07b331b659.png)

###T字の1112
手筋難易度:研究
![T字の1112.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321448/0fe968f0-2d56-ce7c-bc99-88d23fca869d.png)
2の右上または左上が必ず通過点となり、通過点二本則でどちらの場合でも×がつく図の位置に×が打たれます。詳細は花の12と同様です。



本記事は以上となります。完全版を鋭意作成中ですのでゆっくりお待ちいただければ幸いです。