計算は自然か?
medium.comと重複。
まぁ、すこしばかりちょこちょこやっていて、連載半ばの方を放り出しているので、箸休めみたいな感じで、medium.comに書いたものをこちらにも。すこし手を入れています。
アルゴリズムというものがある(?)ことは言うまでもないだろう。その流れでは「その計算方法は自然なものに思えるか?」というようなことをいうかのようなタイトルに見えるかもしれない。
だが、そうではない。たとえば、物理の法則は自然をモデル化している。このタイトルの「自然」とは、そういう意味での自然だ。
「なにを馬鹿なことを」と思われるかもしれない。プログラムはまだ人間が書くものだし、計算の手順を決めるのも人間だ。ならば、書かれたコードは、自然そのものということはないだろう。ここで書いてみたいのは、計算という概念は自然なのかということだ。
実際のコードから離れて、アルゴリズムで考えてみよう。あるアルゴリズムが存在するとする。では問題だ。そのアルゴリズムは、誰かが思いつく以前から存在していたのだろうか? 計算は自然だという立場なら、“yes”と答えるだろうし、そのアルゴリズムは「発見された」と言うだろう。自然ではないとするなら、“no”と答え、「発明された」と言うだろう。
これは、実は単純な話ではない。アラン・チューリングが、おおざっぱに言うなら、「計算できるものは計算できる」と、数学的に証明してしまっているからだ。つまり、計算という概念は数学の一部なのだ。
ここで話がややこしくなる。数学は自然なのかという疑問も関係してくるからだ。
数学は、物理の法則を記述できるし、さらには未発見の事柄の予想の根拠にもなる。なぜ数学にそんなことができるのかは、わかっていない大きな疑問だ。
この手のことについては、数学とは人間がそのように決めたものという考えがされることもある。もちろん、数学のいろいろな分野における公理は、人間が定めたものだ。公理を最小化しようという研究もあり、それはほとんど理解を超える話になってしまう。だが、問題は、なぜ公理を設定することが可能で、しかもどういう公理からの数学であっても、対応する自然があるのかだ。
話が大仰なものになった。だが、アルゴリズム、そして具体的なコードも、児童・生徒・学生から「なぜ動くの?」と聞かれたら、先生は「そうなるように書いたから」という答えで済ませては欲しくない。現実的には、そう答えざるをえないかとも思うが、その背後には、そう簡単ではない疑問が存在することは意識して欲しいと思う。これは、創作を行なう場合でも同じだ。アルゴリズムであるとかプログラムとはいったいなんなのか。考えてみて欲しい。
なお、ついでの話題としてだが、「数式で書かれた事柄を、プログラムでも書けるか」というのは、実は大きな問題だ。ただし、上記のような意味での話ではなく、個人の能力の問題としてではあるが。だが、まぁ、これは慣れの問題でもある。
ちなみに「Wolfram言語」という、オーバースペックとも思える言語がある。これは名前の紹介にとどめておこうと思う。




