ホームページ目次2014-11-10(前)2014-11-12(次)

コーヒーブレイク:ナンプレ問題作成プログラムの連載を発見

2014年11月11日


今日は、X-Wingの話ではなくて、ナンプレの問題を作ることについて書く。
ナンプレあるいは数独ともいうが、これを解くプログラムはネット上に無数に存在する。
作ることはそんなに難しくなく、正確な難易度評価を目指したりしなければ、学生のプログラミング演習レベルだろう。

ナンプレを解くので終わってはもったいない。
せっかくコンピュータがあるのだから、問題をコンピュータに作らせねば。

ということで、ネット上を探しても、問題を作るプログラムはあまり転がっていないのだ。
転がっ ていても、とても数字が多い問題しか作れないものが多くて、利用する気にならない。

SUDOKUの世界的ブレークがあって、良い自動生成プログラムが出てくるに決まっていると確信していたが完全に外れた。 それで、こそこそ作ることになったのだ。

次図が、我々が作ってソースも含めて公開しているナンプレジェネレーターで、適当に数字を置くマスを指定して[Generate]ボタンを押すだけで、 このようにハートの問題を秒単位で作ってくれる。
このプログラムは、 Number Place Generator Version 2と呼んでおり、 実際このプログラムに手を入れてナンプレ雑誌やナンプレ問題集の問題を作っている。
つまり、この程度の問題は、いまや誰だって作れるのだ。

このプログラム、実はアルバイトの学生さんにちょこちょこっと作ってもらったものである。
なので、誰でもこのくらいはできるのではないかと思っているのだが、どうやら世間は違うようなのだ。

ここまでは、まあどうでも良いことだ。

今日書こうとしているのは、ナンプレの問題作成について書いているブログを見つけたからなのだ。

メニエスの名のもとに
プログラミング関係を中心としたぐだぐだブロク

今日現在、「ナンプレ(数独)問題作成プログラム」が「その5」まで書き進んでいるのだ。
C言語が用いられている。
いろいろ高速性を考えて、ビット演算も多用するようである。
とりあえず、書き進むのを待っていよう。

我々の Number Place Generator Version 2 にも解説があるにはあるのだが、 自動生成ライブラリとしての使い方程度で、自動生成プログラムの作り方の隅々まで書いたものではない。
プレゼン程度はあちこちで行ったが、誰にでも分かるような丁寧な説明を書くのは面倒なので放置を決め込んでいるのだ。

ところで、ネット上には多数のナンプレ(数独)に関する論文などが転がっている。
実際に、学会の論文誌などに掲載されているものもかなり散見する。
が、しかし、あまり内容的によろしくないものが多いのだ。
そして、自動生成はとても困難で、非常に計算量が多く、パソコンでは手に負えないとかの記述さえ見られる。

アルゴリズムとか最適化、人工知能関連の論文というのなら、ネット上に転がっている情報なども調べて、 もうちょっとちゃんとしたレベルの論文を書いて欲しいのだ。
明らかに恥ずかしい論文は止めよう。指導教官はぜひちゃんと指導するか止めるかして欲しい。
ソースコードも公開しているので、利用して論文を書いても全然構わないから。

とにかく、もう少し恥ずかしくない論文が増えて欲しい。

今年の夏には、インターン生にナンプレの自動生成を教えたが、 希望があれば、いろいろな形で教えることは可能なので、詳しくは 出張講座を参照のこと。


ホームページ目次2014-11-10(前)2014-11-12(次)