レイン開発日誌17

ありがたいことに、開発メンバーのUさんが、
前回考えたモデルを図にしてくれた。



なるほど、わかりやすい。
つまり、こういうことだ。

1)入力(センサ系)が、「記憶箱」に観測データとして数字をいれる。

2)知能系がプログラムにしたがって、記憶箱に入っている数字を
 足したり引いたりと計算を行う。

3)最後に、出力(駆動系)が記憶箱から、数字を取り出し、
 その数字にしたがって動く。

では、
知能系が使用するプログラムはどんなのが良いだろうか?
ここで、プログラムとは、
「箱に入っている数字を使って計算する方法」を
書いたものなのだから……こんなのはどうだろうか?

if ( [2] > [3] ) [6] + [2] = [7]

この文の意味は、こうだ。

「2番目の箱の数字が、3番目の箱の数字より大きければ、
 6番目と2番目の箱の数字を足し算して、
 その結果を7番目の箱に入れる」

こんな感じの文を大量に並べて、
箱の中の数字を、とっかえひっかえ、足したり引いたりすれば、
どんな複雑な計算でも再現できてしまうはずだ。

さてさて。
今、面倒くさがり屋のボクは、知能系のプログラムをなんとかして、
プログラム自身に書かせようとしているわけだから、
上の文はもっと分かりにくくてもよいだろう。
つまり、コンピュータにとって読みやすければ、
人間にとって読みにくくてもかまわないということだ。

というわけで、
if ( [2] > [3] ) [6] + [2] = [7]

↑から余分な文字を取り除けば……

[2]>[3][6]+[2]=[7]

になる。もちろん、文の意味は、前と同じだ。
これでいいかな??……いやいや、もっともっとシンプルにしよう。
[ ] はいらないだろうし、いっそ、 も外してしまおう。

2>36+27

これでいいんじゃないかなあ?
(箱の番号は、一桁であるという条件付きだけど)

こんな「文」を大量にランダムに作り出していけば、
いつかは偶然に、「正しい計算をする賢いプログラム」が
できてしまうんじゃないだろうか?

其処に<知能>はあるのかしら?