Appearance

Home

新着情報

ようこそ

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

ニュース・イベント

パズル問題自動生成時代

概論

ナンプレ

はじめに

プログラムで問題を解く

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

乱数の乱用だけでは限界

将来展望

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

About Us

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

見かけが大切

空色マスの配置

色々書いてきたが、実際に問題を作るとき、空色マス(ヒントマス) の配置は非常に重要だ。

数の問題はもちろんだが、その配置の問題が重要だ。 沢山数があっても、うまく空色マスがちらばっていなければ問題を作りにくい。

それどころか、空色マスの配置によっては、どんなに頑張っても 問題を作ることができない。

次の問題は、不可能な空色マスの配置である。

実はどんなにやっても、複数解が出てしまう。 たとえば、次の問題を考えてみよう。

これを解くと、複数の解がでてくる。そのなかに、必ず次のようなペアがある。

違いは分かるだろう。 左から4列目と6列目のタテが入れ替わっているだけである。 こういう風になると、必ず複数解になる。

問題

以下に、4つの空色マスの配置を示すが、 このうちのいくつかはどう工夫しても問題を作ることができなかた。 どれが、問題を作ることができたであろうか?

きちんと証明をしたわけではないが、空色マスが斜めに並んでいる下の2つの配置 が問題作成可能だった。

まず、対角線に並んでいる場合の問題例である。

じつは、もっと少なくできた。以下は、さらに3つ減らして、 空色マスが22個の問題例である。

もう1つは、18マスの問題であり、18マスの中ではとても問題を作り やすい配置である。

もっと格好良い配置

問題が簡単に作れるようになると、 空色マスの配置も手作業で行なうのではなく、 美しい配置、対称形となる配置を自動的に作ってしまいたい。

現バージョンでは実現していないのだが、次バージョンでは そのあたりもしっかりと作り、本当に何もしないでも問題を作れるように したいものだと思っている。

ということで、自動的に空色マスの配置を決めてしまうには、 何に注意しないといけないだろうか。

普通なら、問題が作れる配置でなければならないように自動配置のアルゴリズムを かんがえるところだろうが、コンピュータが問題を作るので、 ある配置に対してどうしても問題作成に失敗してしまうようだったら、 その時点で、その配置を捨てて、また別の配置を自動生成し、 その自動配置に対して問題を作れば良い。

ということで、問題が作れるかどうかは、 あまり考慮する必要はないのではないかと判断している。 問題が作れるかどうかを考えるのは、まだまだ手作業で作ったり、 コンピュータによる自動生成でも非常に低速だったり、 色々問題を抱えている場合に限られるのではないかと思う。

自動生成の性能が画期的に上昇した場合、18マスの配置を自動生成し、 その配置に対して自動生成することもできる。こうすれば、 空色マス18個の問題をどんどん量産することも可能だ。

というようなことを、そのうちやってみようと思う。

問題の数字を指定して作る

問題は色々できるようになったが、やはり見た目にも美しい問題を作りたいものだ。

空色マスの数字の一部がきれいに並んでいる問題を作ることを考えよう。 普通に空色マスの配置を決めて、その中の一部に数字を奇麗に並べることを考えよう。

ということで、次のような条件での問題作成を考えよう。

この配置を残したまま、残りの空色マスを決めれば良いので、 自動生成は、この状態からスタートすれば良いだけだ。 プログラム的には、ほとんど変更を加えなくても実現できる。

楽をして実現できる割りには、見映えのすることなので、 このあたりはぜひ頑張りたい(実際は手抜きなんだが)。

ということで、自動生成して出来たのが次の問題である。

サンプル

以下に、指定した初期状態と生成された問題をペアで紹介する。

この問題は、1〜9を順に、外周に2回並べてみた。 まだ余裕があり、問題も沢山生成できたが、その中のやさしいのを載せておいた。


1〜9を、3×3のブロック形にまとめてみた。 未定の空色マスは6マスだけだが、これでも簡単に決まる。

実は、このように1〜9を塊状に並べることで問題を作る方法は いくつも見つかっているようだ。

問題の方は、L字形の数字部分が、なんとなく意味が有りそうに思えるのを 選んだ。それでも、ちゃんとやさしい問題である。


この問題は、非常に奇麗に数字が並んでいる。 一ヶ所だけが数字がズレているだけである。 なお、この問題は非常な難問なので、困らせる目的以外では使えない問題だ。


このようなサンプルはいくらでも作れるようだが、この辺でやめておく。

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

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