ホームページ目次前の話次の話

制約プログラミングで遊んだらアルゴリズムを考えるのが馬鹿らしくなった

2008年7月19日

このところ、やっとコンピュータの相手をできるようになってきた。 それでも、外に出掛けて広大なキャンパスで迷児になったり、 文章の査読をして頭がついて行けず眠けを催したり、 たまった雑用を片付けたりするのにたっぷり時間が取られてしまう。

しかし、そんなことばかりをやっていて、コンピュータ、プログラミングの研究から離れてしまうと、 それこそ頭がダメになってしまうと思って、先月末、突如 「制約プログラミング」なるものを始めた。

世間では、プログラミングを始めるのに、何かと理由けが必要なようだが、 一番大切なことは、やってみたい、いじってみたい、覗いてみたい、何かやってみたい、 などという好奇心、下心、邪心であろう。

そんないい加減な考えで始めたのだが、 Karetta.jpプログラム不要の「制約プログラミング手習い」 を心の迷いで書き始めてしまった。

とりあえず弄り始めて3日目位から書き始めたような気がするが、もう半月以上前のことでとんと記憶がない。 まあ、3日も続いたのだから、もう少し続くかもしれないし、 勉強の記録をこっそり付けるかと思ったが、間違えて公開状態でメモを書いてしまった。 こうなれば、もう公開でいいやと開き直り、書き続けていたら、 なんと3週間が経過した。つまり、3週間持った。

プログラミング言語を片手間で初めて3週間なんだから、まだまだ使い方も良く分っていない。 開発者のサイトに置かれていたサンプルプログラムを見ながら、プログラムを作ってみたり、 変更を加えてみたりしている。 サンプルといってもパズルばかりなので、私にとっては助かる。 そして、手習いに書いている内容は、パズルばかりになってしまった。

制約プログラミングといっても、パズル以外にもちゃんと使えるのであるが、 パズル脳の人間には、一般の仕事のプログラムも一旦パズルに変換してから処理するので、 結局パズル以外のことは書けそうにない。 パズルばかりだと、直ぐにネタが底をつきそうに思えたが、まだ1、2ヵ月は大丈夫と思う。

そんな感じで、たらたらと手習いしながら書いていたら、 こともあろうに、ここで利用している制約ソルバー "Sugar" の開発者に見つかってしまった。 しかし、よ〜く自分のホームページの中を探ってみたら、 昔からその研究室へのリンクが張ってあった。 本当に、世の中、狭過ぎる。

でも、3週間もやっていると、少しは頭も制約プログラミングに慣れてくるようである。 今迄は、プログラミングというと、どうしたら処理できるか、 要するに「データ構造+アルゴリズム」を考えていた。 それが、制約プログラミングでは、アルゴリズムの部分を考えなくても良いので、 非常に横着になってしまった。それでも、処理可能なのだ。

一応、そんな「制約プログラミング」でも、何かを処理させるには、 どんな問題なのかをコンピュータに教えてやらないといけない。 問題だけ書けばというか、どういうものを求めたいか(パズルだとどういうのが解か) を書けば、条件に合うもの、つまり解を出力してくれる。

この横着ぐあい、サボりぐあい、楽ぐあいは未来言語、夢の言語であろうか。

この言語、まだやっている人が少ないので、 今から始めても第一人者になりやすいので、始めてはどうだろう。


ホームページ目次前の話次の話