遊星ゲームズ
FrontPage | RSS


遺伝的システム
 日記

 たとえばソースコードを遺伝子と見たてて、DBを環境因子だとするわけです。で、とりあえずいまあるシステムのソースコードのコピーを百万個作る。
 で、この百万個のそれぞれに子供を産ませる。
 世代交代のたびに、コードのどこかが突然変異したり他のコードと混ざったりするようにする。
 当然、突然変異はでたらめに書きかわるわけだから、普通はエラーになる。だから、エラーになったコピーは死んで子供を残せないわけです。
 コピーたちにはたぶん性別のようなものがあってですね。たとえば表示項目をたくさん満たしてる奴とかレスポンスが早いとか、そういう奴ほど魅力的だから、伴侶を見つけやすいわけですね。つまり品質が高いソースコードほど生き残りやすいと。
 そうして、それをつねにくりかえしているプロセスを起動しっぱなしにしておくと。システム上で実際に使われるコードは、そのとき生き残ってるコピーの中からランダムで選ばれるとでもしとけ。
 突然変異しちゃった奴は普通死ぬけど、ときどき生きのこる奴がいて、これが親より優秀な場合があったりする。そういう奴は子供を残しやすいわけだから、数を増やしていく。つまり、だんだん品質が上がっていくことになる。
 つまり遺伝的アルゴリズムという奴。

 で、たとえば仕様変更があったら、管理者はDBをいきなり変更しちゃうわけです。
 もちろんそれは環境の激変だから、ほとんどの個体は死んでしまう。たぶんシステム上ではしばらくエラーが起きまくる。
 でもそのうち、この新しい環境に適応したコードが繁栄していくわけです。
 あとは時間がたてばたつほど品質が上がっていくと。
 もっとも、人の手が入る前提はないから、とんでもなく読みづらいコードになると思うけど。(あでも、コンパクトな機能分割はしっかりされていたほうが生き残りやすそう)
 そんなことをやってるうちに、環境変化に耐えやすいソースコードとか出てきたりもするはず。

 おお、そうすればSEは仕事しなくてもいいじゃないか。


遺伝的システムを