2: 2009-02-03 (火) 14:05:56 [6] | 3: 2009-02-03 (火) 18:39:22 [7] | ||
---|---|---|---|
Line 18: | Line 18: | ||
---- | ---- | ||
-この記事をOsaskWikiに書くべきか、もし書くとしたらGUIGUI01/memoがいいのか、それともdesignのほうなのか、それともくだらないからosaskdotのほうに書くべきか、実は結構悩んだ(笑)。 | -この記事をOsaskWikiに書くべきか、もし書くとしたらGUIGUI01/memoがいいのか、それともdesignのほうなのか、それともくだらないからosaskdotのほうに書くべきか、実は結構悩んだ(笑)。 | ||
+ | ---- | ||
+ | -(追記) | ||
+ | -これは普通の最適プログラムの求め方とは全く違う。普通は目的どおり動くプログラムをまず与えて、そこから不要な部分を削ったり、ループアンロールしたり、ある部分をごっそりと交換するなど、いわゆる局所最適化を可能な限り施して、完了とする。これは現実的な時間内で最適化が終わる。 | ||
+ | -でも僕とかは(たぶんI.Tak.さんも)この程度の最適化では到底満足できない。結局普通のアルゴリズムで出てくるプログラムなんてガラクタ級でしかない。僕たちが自分でアセンブラで書いたものには全く追いつかない。僕たちが納得できるのは、本当に全ての可能性を全探索して「これが最善です」といえるものだけなのだ。こういうことをしてくれるのなら、僕だってコンピュータに頭を下げていい。というか僕らはアセンブラで「本気で」プログラムを書くとき、こういう全探索を(相当に雑な枝狩りをやりつつ)頭の中でやっている気がする。だからものすごく疲れる。 | ||
+ | -なんというか人間は、自分のプログラムスキルに応じて最適化ということを考えるのかもしれない。やっぱり自分の能力と同等かそれ以上のものを出してくれないと、最適化の意味がない。だから僕などはあまりに現実性が無いと知りつつも、こんなランダムプログラミングみたいなことを考えずにはいられない。そしてもしプログラムをする時間がたくさんあれば、自分の思いつく限りの枝狩りアルゴリズムを総動員して、現状では何バイトまでなら現実的な時間内に全探索できるものなのか試してみたいとまで思う。結局役に立つサイズでは使用不可能なアルゴリズムだと分かっているのに、それでも一度はやってみたいと思ってしまうのだ。それほど僕はこのアルゴリズムを夢見ないではいられない。 | ||
+ | -もし任意の言語で適当にプログラムを作りさえすれば、あとは自動的にコンピュータがそれと全く同じ動作の最適なプログラムを全探索で現実的な時間内に(1ヶ月くらいなら待てる)見つけてくれるというのなら、僕はすぐにアセンブラの知識なんて全部忘れてもいいと本気で思っている。それでjavaでもrubyでも、その他どんな高級言語でもいいけど、そういうものに喜んで乗り換えるだろう。 | ||
+ | -ちなみにこの最適化プログラムができたら、真っ先にやるべきは最適化プログラムの最適化だ。 | ||
+ | -ちなみにこのアイデアも[[design008]]の独自性の「僕にはソフトウェアでやりたいことがまだ他にもたくさんある」の中の一つだ。まあ他のより現実的なテーマのほうを優先しているから、これに取り掛かれる日はこないだろうけど。 | ||
+ | -またFPGAのデータだって結局は二進数の列で表現可能なので、同じくランダムプログラミングで究極的に最適な回路を探すことができるはずだと僕は信じている。たとえばx86互換CPUだって、いきなり100世代後の最終形態が得られるかもしれない。 | ||
* こめんと欄 | * こめんと欄 | ||
#comment | #comment |
(This host) = http://osask.net