HumanWay

Home

新着情報

ようこそ

自動生成エンジンとは(FAQ)

ニュース・イベント

パズル問題自動生成時代

概論

ナンプレ

はじめに

プログラムで問題を解く

プログラムで問題を自動生成

乱数の乱用だけでは限界

将来展望

  • もしミリ秒で問題生成できたら
  • 誰でも簡単に問題が作れたら
  • 自動生成も多種多様
  • 解き方を見て問題を提供
  • パズル作家風の問題生成
  • 自動生成プログラムの自動生成
  • 多種パズルに適用可能な汎用的アルゴリズム
  • いつごろ実現できるか (1)
  • オープンソースでの公開
  • パズル作家は何をすべきか

About Us

パズル問題自動生成時代 -- ナンプレ -- プログラムで問題を解く

人間の解き方

解法教室

インターネット上でよく見かけるのが、解くためのテクニックのページである。

たとえば、 『ナンバープレイス 解法教室』なんてのがある。

こういうのを読めば、自分で解き方を見つけなくても、 解き方が解説されているので、手っ取り早く、あるいはずる賢く横着をしながら 上達できるので、ぜひ利用されたい。

ここでは、以下のようにレベル分けがされている。

  • 基礎の基礎
    • 8つ決まれば、残りは残りもの
  • 基礎常識
    • 「平行線」の常識
    • 「水平線垂直線」の常識
    • 「直交平行線」の常識
  • 一般常識
    • 「空き直線」の常識
    • 「別方向から決定」の常識
  • 難解常識
    • 「2重線」の常識
    • 「残り物」の常識
    • 「矛盾」の常識

ここでは大雑把な分類しかしていないが、もっと細かいテクニックを 延々と紹介しているサイトも存在する。

手始め

多い数字に注目

ナンプレでは、1から9のどの数字に注目するかを最初に考える。

たくさん出ている数字ほど制約条件が厳しくなっているはずで、残りも決めやすいはず、という考え方がある。

人間の場合、一般には1から順に調べるのかもしれない。それよりも、できるだけ多く見えている数字から攻めるべきだろう。

パズル作家はひねくれ者が多く、1から調べると解きにくい問題を作る傾向がある。では、9から調べると良いかというと、それも避けようとする。しかし、多く存在する数字から解くようにすれば、作家のひねくれ根性に左右されなくなる。

タテとヨコ

一番頻繁に利用するテクニックは、特定の数字Nに注目し、 数字Nが置かれているマスと同じタテまたはヨコの列には 数字Nが置けないことを利用するものだ。

この場合には、右上のブロックに注目すると、 既存の1について、右上ブロックに影響を与える方向に線を引いて、 1が入れられないマスを示した。

すると、もう黄色の1マスにしか1を入れられない。 だから、黄色マスは1に確定する。

人間は、このように、

  • タテ
  • ヨコ
  • ブロック

のような取扱いやすいまとまりを意識しながら解くことが多い。 こういうやり方は、人間の直感によくなじむようである。

完全確定マス

ナンプレの場合、各マスには1〜9のいずれかを入れるのだが、 さまざまな理由で入れられない数字がでてきて、 入れられる数字が1つになったマスが、その数字に確定する。

上図は、タテとヨコを見ただけで分かる場合で、 かなり簡単な場合である。 AおよびBは1に決定してしまうのだが、分かるだろう。

普通は、もうちょっと面倒な方法で決まって行く。 中級レベルになると、タテとヨコを単純に眺めただけでは無理になり、 間接的に決まる、あるいは置ける場所が限定されることを利用して さらに決まっていく。

言葉では分かりにくいので、実例を示そう。

左上のブロックで、5が入れられるのは、2個所の★しかないので、 上から2段目の横で5が入れられるのは2個所の★だけになり、 右の方には入れられないのを示すため、ピンクの線を引いた。

それにより、右上ブロックで5を入れられるのがDに確定する。

マスが完全確定する場合でも、 非常に簡単な方法で確定する場合もあれば、 ここに示したのよりもさらに高度な、あるいは面倒な方法で 確定することもある。

不完全確定マス

以上のように、あるマスがただ1つの数字に確定する場合はそれで、 「1マス落着」となるのだが、もっとゆるい落着がある。

この場合、既にある2あるいは3の影響の及ぶ範囲を2重線で示している。 すると、左上の3×3ブロックでは、黄色の2マスの中にだけ、 2と3を置くことができる。 このように、完全確定ではないが、置いてもよい数字が絞られる場合がある。 上級テクニックの中には、このように、不完全確定(?)あるいは 自由度を減少させるだけの場合が少なくない。

仮定で解く

要するに、確定する理由を考えながら解くのが正統な解き方だ。

仮定で解く

しかし、この方法だけでは解けなくなってしまうことがある。 もちろん、ちゃんと答えが存在する問題でも、 十分なテクニックがない場合、先へ進めなくなることがある。

その場合に行なうのが、仮定である。 仮定の場合、記入する数字の色を変える場合が多い。 あるいは、数字に〇をつけて仮定したもので、正しいかどうか分からない という目印をつけておく。

2つの可能性がある場合を考えよう。 一方が正解で、他方が不正解で行き詰まるはずである。 ナンプレでは、こういうとき、不正解の方を調べて、 行き詰まることを確認する。

行き詰まりとは、「1〜9のどの数字も入れられないマスができた」 という状態である。そういう状態になったら幸運である。 仮定してやってきたことが正しくなかったので、別の方が正解のはずだ。

仮定で困るのは、正しい方を選んだときである。 正しいのだから、行き詰まらない。 でも、仮定なんだから、正しいのかどうか分からない状態で進んでいるので、 とても困った状態である。

どうしても解けない場合には、仮定で解くのだが、 それは、あくまで、最後の手段である。 仮定で解けても、面白くない。 調べに調べて解けて、「何とか解けた」と思えるかも知れないが、 それでは快感がないだろう。

快感があってこそパズルである。

Copyright(C) 2007 Time Intermedia Corporation. All Rights Reserved.

株式会社タイムインターメディア | 自動生成エンジンとは | お問い合わせ | About Us