レイン開発日誌16

そもそも、ボクが最終的に作りたいのは汎用的な「知能系」である。

その知能系とは、簡単に言えば、
「センサ系からの観測データ(数字)に基づいて、判断(計算)を行い、
 駆動系へ判断結果(数字)を渡す機械」のことである。

もう少し、この知能系の動作を具体的にイメージしてみよう。

まず、センサ系から観測データ(たくさんの数字)が送られてくる。
それらの数字は、一旦、「数字を記録しておくための箱」にいれられる。
これを「記憶箱」と呼ぼう。
で、知能系は、この「記憶箱」の中に入っている「数字」を使って計算をし、
その計算結果を「駆動系」に渡して、駆動系がなんらかの動作をする。



「知能系」は、どんな計算をすれば良いのか?
それは、「プログラム」として外部から与えることにしよう。

知能系は、「プログラム」に書かれたとおりに計算を実行して、
計算結果の数字を駆動系に引き渡す。

さて。
プログラムには、どんな計算すれば良いかが書かれているのだが、
前回みたように「計算を表現するために必要な文の種類」は2つしかない。

「演算代入文」と「判断文」である。

数字が「記憶箱」に入っているとすると、
「演算代入文」は、こんなふうに表現できる。

左から『1番目の箱の数字』と『3番目の箱の数字』を足し算して、
 その結果を『4番目の箱』に記録する」

「判断文」であれば、こんなふうに表現できる。

「『0番目の箱の数字』が『1番目の箱の数字』より大きかったら、、、」

つまり、センサ系からの観測データの数字を「記憶箱」にいれておけば、
あとは、

「X番目の箱の数字」が「Y番目の箱の数字」より大きかったら、
「X番目の箱の数字」と「Y番目の箱の数字」を足して、
「Z番目の箱」に入れる。

という感じで、
「箱の場所(右から○○番目)」と
「演算方法(+、−、> など)」を指定するだけで、
計算することができる。

というわけで、これを表現するプログラム言語を考えてみよう。

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