言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

制約

あんまり調べ物ばかりしていると作業が進まないし、調べ物をしないと後でもっと良いやり方が見つかって後悔してしまう。だからそのバランスはとても難しい。今日もとても勉強になるページを見つけて、何で今まで見つからなかったのだろうと激しく後悔。

http://research.nii.ac.jp/~hosobe/cs00tut/index.html

なんと、全部日本語で書いてある!めちゃくちゃ嬉しい。実はこの細部さんという方のページは制約に関する事をしようと思った時に一度訪れていた事があったのだが、何だか難しい事が書いてあると思って通り過ぎていたのだ。そう思うと悔しさ倍増。

制約とは、色々な条件を満たすような値を求める事だ。特にユーザインタフェースに使えるようなテクとしては、ここに書いてあるようなデータフロー(エクセルのように分かっている値から芋づる式に答えを求める)や、制約階層と言うのを作って解決の方法が二通りあるときはどちらかを選べるようにする技などがある。

大まかな内容は 後でACM のページで Borning の論文を眺めていたので知っていたのだが、先にこっちの紹介を読んでいたら随分違った事だろう。実はここで紹介されている制約解消法は、prolog の堅いやり方に比べて恣意的というか、場当たり的だと思っていた。だってエクセルっぽいから。しかし他のやり方も思いつかなくて Skeleton もこの路線で作っていたので、もしも偉い人に君のやってる事は制約なんかと全然違うと言われたらどうしようと思っていた。参考論文も微妙に古いし。だからこないだの論文では自信が無くて清書の時に制約という言葉を随分消ちゃったくらいだ。

このページでは、部分グラフに分割した制約を使う方法があるとも述べられている。ここも無茶苦茶悩んでいた所。みんなで作ったルールを組み合わせて一つの作品を作ろうとした時に、それぞれのルールはどの程度の情報を公開すべきかという問題があって、ここは先に決めておかないと後で作り直すのが大変だからだ。

思うことは、折角論文があっても、一通り自分で考えて再発見してからでないと他の人が書いた文章は読みづらいなあという事。でもそうやって一人で発見したつもりでいたアイデアを他人も文章の中に見つけると、すごく嬉しい。