結果が蓄積されつつ相互作用する物事について、私たちはうまく認識することができません。
よくある算数の話ですが、孫が祖父に1円からスタートして、1ヶ月間、毎日前日の倍の金額をお小遣いとしてほしいとお願いするという例題があります。
うっかり祖父が承諾すると、1ヶ月後には10億円になってしまうという話です。
これは、1円を2倍にしても、それを数回繰り返しても大した金額にはならない、という傾向から、ついその延長線上の遷移も予想できると考えてしまうことで生じる誤りです。
しかし、しっかりとこの累積と相互作用による結果を辿っていけば、高度な数学的な知識やセンスがなくても、結果が莫大な金額になることは理解できます。
したがって、これは知識や能力の問題ではなく、思考方法の問題です。
そして、このように累積と相互作用を段階的に追跡して、結果を論理的に理解する思考方法を、私はシミュレーション思考と呼びたいと思います。
生命の起源の初めの一歩
同じように、私たちは生命の起源を理解することに苦戦します。
生命の起源は、シンプルな化学物質しかなかった太古の地球で、複雑な細胞がどのように生まれたのかという問題です。
この問題を考える際に、一瞬の偶発的な奇跡に頼るような説明がなされることがあります。
しかし、蓄積と相互作用の観点から考えれば、より現実的な事象として理解できます。
地球は水や空気が様々な場所で繰り返し循環しています。化学物質はそれによって、局所的な場所で動かされながら、拡散的に地球全体を巡っていきます。
こうした様々な繰り返しによって、化学物質が反応し合います。
それによって、全くシンプルな化学物質だけの状況だった初期状態よりも、少し複雑な化学物質も含むような状態に遷移するはずです。もちろん、シンプルな化学物質も多くありつつ、です。
そして、少し複雑な化学物質は、シンプルな化学物質の組み合わせであるため、数は少ないものの、種類はシンプルな化学物質よりも多くなります。
この状態の遷移は、地球の局所的な狭い場所で起きるだけではなく、地球全体で同時並行に起きます。
かつ、地球の水や大気の循環により、狭い場所で起きたことが、周囲に拡散し、地球全体で化学物質が入り混じります。これにより、初期状態よりも少し複雑な多様な化学物質が存在する地球が出来上がります。
初めの一歩の意義
初期状態からこの状態への遷移は、証拠はありません。推測です。しかし、誰が考えても否定はできないでしょう。むしろ、否定するためには、この現代でも観察できる普遍的なメカニズムが機能しない理由を説明する必要があります。
既にこの仕組みは、少し複雑な化学物質について、自己維持、複製、代謝を備えています。ただしこれは、生物に極めて近い高度な自己維持、複製、代謝ではありません。
少し複雑な化学物質は全て、壊れることもあれば生成されることもあります。しかし地球全体としては、少し複雑な化学物質はそれぞれ、一定の量維持されていることになります。
この生成と破壊の繰り返しの中で、一定の量が維持されるということ自体が、代謝による自己維持の性質を示しています。
また、少し複雑な化学物質は、それぞれ1個だけが存在するのではなく、割合としては少ないとはいえ、数としては膨大な数が存在します。
これは自己複製ではないとしても、何らかの同じ化学物質を生成する生産的な活動です。これは複製という表現とは少し違いますが、似たような効果をもたらします。
つまり、シンプルな化学物質だけの地球から、少し複雑な化学物質を含む地球への遷移、という否定できない現象が、生命の起源の第一歩でありつつ、本質なのです。
次のステップへ
もちろん、この少し複雑な化学物質を含む状態は、生物そのものではありません。
また、これを惑星全体としての生命の活動と捉えることも、無理があります。あくまで、化学反応の繰り返しにより、少し複雑な化学物質が含まれているという状態に過ぎません。
そして、これは地球以外の惑星でも十分に起きることです。地球以外の惑星に生物が誕生せず、地球には誕生したということは、地球上では何か他の惑星とは異なることが起きたということです。
それは何か、ということを考えるのが次の段階です。
しかし、この初めのステップを理解した後では、私たちは生命の起源の次のステップを、局所的に考えることはできないはずです。次のステップも、最初のステップと同様に、地球全体の現象としてしか、考えられなくなるはずです。
そして、次のステップは、さらにもう少しだけ複雑な化学物質が含まれる状態に地球が遷移することです。
このステップが繰り返されることで、少しずつ累積的に、化学物質が複雑になっていきます。
また、それに伴って、自己維持、複製、代謝のメカニズムも少しずつ複雑になっていきます。
ポリマーと地球の地形の効果
ここにポリマーの存在が大きく関与します。タンパク質、核酸はポリマーです。ポリマーは、わずかな種類のモノマーから累積的に複雑で多様なポリマーを作ることができます。ポリマーを形成できるモノマーの存在が、このメカニズムの進化的な性質を強化します。
地球上にある多数の湖や池は、隔離された科学実験の場として機能します。地球上に何百万カ所もあったはずです。それぞれが異なる環境でありつつ、地球規模の水や大気の循環によって化学物質を交換できます。
シミュレーション思考の力
一度このように生命の起源をイメージすると、もはや「証拠がない」という批判以上のことは不可能になります。むしろこのメカニズムを否定するメカニズムを探さなければなりません。しかし、そのようなメカニズムを私は思いつきません。
つまり、お小遣いの例の祖父のように、私たちは生命の起源を理解できていないだけです。既に私たちが知っている事実から、累積と相互作用を考慮してシミュレーション思考をすれば、30日後のお小遣いが膨大になることが理解できるように、地球上に生物が誕生することも理解できます。
粉塵の雲の仮説
地表は紫外線が強いと化学物質の交換を妨げます。しかし、太古の地球は火山活動や隕石衝突が頻繁にあり、火山灰や粉塵による雲に覆われていたはずです。それが紫外線を防いでいたことになります。
加えて、大気には水素、酸素、炭素、窒素という生物にとって重要なモノマーの主要な材料となる原子が揃っており、粉塵がその他の希少な原子を含んでいます。また、粉塵の表面はモノマーを化学合成するための触媒にもなります。
さらに、粉塵の摩擦は熱や雷などのエネルギーを生み出し、太陽からは紫外線や熱などのエネルギーも供給され続けます。
この粉塵の雲は地球全体と地球に注がれる全ての太陽エネルギーを利用した、24時間365日稼働し続ける究極のモノマー工場です。
仕組みの相互作用
最初のステップを思い出してください。少し複雑な化学物質を含む地球へのステップです。
このメカニズムが機能している惑星に、究極のモノマー工場があり、ポリマーへの複雑さの蓄積の原理が実現され、数百万の相互接続された科学実験室があるのです。
これが生物の誕生の説明にならないとしても、生物が必要とする複雑な化学物質が生み出される仕組みになることは、疑いの余地はありません。
そして、最初のステップが、既に生命の本質を含んでいるという議論を思い出してください。
このステップの延長線上に生み出された、非常に複雑な化学物質を含む地球は、生命の本質をより高度に含んでいるはずです。
多種多様な非常に複雑な化学物質と、非常に高度な生命の本質的な現象が存在する地球が、これで出来上がったことが分かります。
最後の仕上げ
既に私たちは、既存の議論が前提としていない、非常に有利な状況までたどり着いた地球を前提にして、生命の起源を考えることができます。
生物の登場には、あと何が必要でしょうか。
それは生物が必要とする機能のメカニズムが生み出されることと、統合されることです。
それは、それほど特別な仕掛けは不要で、ここまでの議論の自然な延長線として説明できるように思えます。
シミュレーション思考の方法
シミュレーション思考は、シミュレーションそのものとは異なります。
例えばここで説明した生命の起源の仕組みを、コンピューターでシミュレーションしようとしても容易にはできません。
なぜなら、私の説明の中に、シミュレーションに必要になる厳密な形式的な表現が欠落しているためです。
では、私の思考が厳密でないかと言えば、そんなことはありません。
表現方法こそ、言葉による文章ですが、しっかりとした論理構造、既知の科学的な事実、そして私たちの経験に根ざした客観的な推論に基づいています。
このため、全体の傾向や性質の変化を捉えることは十分にできます。もしそれが間違えているとしても、それは形式化の欠如のためではなく、前提となる条件や特別な相互作用の影響を見落としているためです。
このように、形式表現を定義しなくても、自然言語を用いてシミュレーション思考は可能です。
私は形式表現ではなくても、自然言語を用いて厳密に数学の概念を表現することができると考えています。
これを自然数学と呼んでいます。
自然数学であれば、形式化の労力や時間が不要であるため、既存の数学よりも広い範囲を多くの人が数学的に把握したり理解したりすることができます。
そして、シミュレーション思考は、まさに自然言語によるシミュレーションを用いた思考方法なのです。
ソフトウェア開発
シミュレーション思考は、ソフトウェア開発者にとって不可欠なスキルです。
プログラムは、メモリ空間上のデータを利用して計算を行い、メモリ空間上の同じデータや別のデータに結果を入れる、ということの繰り返しです。
つまり、プログラムは累積的な相互作用そのものです。
かつ、ソフトウェアを開発して実現したいことは、通常は開発を依頼する人からの文書やヒアリングで把握していきます。
最終的にプログラムで実現することなので、その内容は突き詰めればデータの累積的な相互作用であるはずです。
しかし、ソフトウェアの開発を依頼する人はプログラムの専門家ではありません。このため、実現したいことを形式表現で厳密に記述することはできません。
したがって、文書やヒアリングで得られるのは自然言語による文章や、参考となる図や表です。そこから、厳密な形式表現に変換していく作業が、ソフトウェア開発なのです。
ソフトウェア開発の作業の過程では、顧客の文書を元にして開発内容を整理していく要求分析と要件整理、仕様定義という作業があります。
また、仕様定義の結果に基づいて、基本設計を行います。
ここまでの作業の結果は、主に自然言語を用いて表現します。そして、作業が進むにつれて、最終的なプログラムを作成しやすくなるように、論理的に厳密な内容になっていきます。
そして、自然言語を中心とした基本設計の段階で、コンピューター上で動作することができ、かつ顧客の実現したいことが実現できるものになっていなければなりません。
これは、まさに自然数学によるシミュレーション思考が必要とされる場面です。しかも、ここでは二重のシミュレーション思考が必要です。
1つはコンピューターのメモリ空間とプログラムの相互作用として、期待した動作ができるかどうかを確認するためのシミュレーション思考です。
もう1つは、顧客が実現したいことが実現できているかを確認するためのシミュレーション思考です。
前者はコンピューターの内部動作をシミュレーション思考で把握できる能力が必要です。後者は顧客がそのソフトウェアを利用して行う作業をシミュレーション思考で把握できる能力が必要です。
このように、原理的なシミュレーション思考と、意味的なシミュレーション思考の二重のシミュレーション思考の能力を、ソフトウェア開発者は経験的なスキルとして持っています。
さいごに
生命の起源は、多くの科学者や知的好奇心の高い人が取り組んでいます。しかし、ここで説明したような形で生命の起源を捉えることは一般的ではありません。
これはシミュレーション思考は知識や能力に関わらず、多くの人にとって欠落しやすい考え方であることを示唆しています。
一方で、ソフトウェア開発者は、シミュレーション思考を駆使して様々な物事をシステムに落とし込んでいきます。
もちろん、シミュレーション思考はソフトウェア開発者だけのものではありませんが、ソフトウェアの開発は特にこの能力を必要とし、この能力を鍛えるにはうってつけなのです。
シミュレーション思考を用いて考えれば、生命の起源のような複雑で高度な科学的な謎だけでなく、組織や社会の仕組みなどの複雑な対象の全体像を組み立てたり、理解したりすることができます。
このため、これからの社会では、ソフトウェア開発者のようにシミュレーション思考のスキルを持つ人たちが、様々な場面で活躍することになると、私は考えています。