
思考方法に内在するバグ
ソフトウェアに埋め込まれた不具合を、バグと言います。
シンプルなプログラムであれば、目に見える不具合の現象から、容易にバグが埋め込まれている箇所を見つけることができます。
一方で、複雑に入り組んだシステムでは、不具合の現象からバグを見つけ出すことは容易ではありません。また、たった1つ、たった1行のバグが、予想できないような複雑な不具合を表示させたり、多種多様な不具合現象として現れることがあります。
しかし、どんなに複雑で予測が難しいとしても、バグがそこにある限り、必ず見つけ出すことができます。見つけ出すことができないとすれば、それはシステムの振る舞いや原理原則に対する理解の不足や、何かの思い込みによる見落としがあるのです。
私は、システムエンジニアとして、多数の複雑なバグを見つけ出してきました。時には大勢でどんなに探しても見つけ出せないようなバグに遭遇することもあります。その度に、システムの原理原則に立ち返り、自分の思い込みを疑い続けることになります。そして、頭の中で何度もシステムの振る舞いをシミュレートし、現実の動作と自分の理解の一致が一致するまで、そのズレを明らかにしていきます。
私は、どんなに見つけることが難しいバグであっても、このような作業を繰り返して見つけ出してきました。システムのバグである以上、原理原則を理解していれば必ず見つけられるという信念があります。
前置きが長くなりました。
この記事では、私が最近見つけ出したバグの話をします。それはコンピュータープログラムのバグではありません。私たちが無意識に行っている思考方法に埋め込まれたバグです。
思考は一種の情報処理であり、思考する私たちは非常に複雑な情報処理システムであるとみなすことができます。
そして、私たちは物事を考えるとき、これまでの経験で培った方法に従って、思考しています。思考方法は、情報処理システムのプログラムのようなものです。
私は様々な場面で、なぜ私にはシンプルに思える問題を、他の人は難しく考えてしまうのだろうか、ということを感じることがあります。また、私自身も、もっと早く気づけたはずのことを、随分と遠回りしてから気がつく、ということを経験してきました。
そして、思考にまつわるこのような現象について考えているうちに、私たちの思考方法の中にある共通の問題に気がついたのです。それは思考というシステムのバグであり、たった1行の「相互作用を無視する」というシンプルなバグです。
■相互作用の無意識の見落とし
物体は、別の物体に作用します。人間も、他の人に影響を及ぼします。知識や技術、組織や社会も同様です。
作用や影響は、一方向だけとは限りません。
作用が双方向に働いたり、作用が循環することもあります。このような場合は、相互作用と呼ばれます。
物事を理解したり予測する際、作用がどのように働くかを分析する必要があります。
一方向に働く作用や影響を分析することは、比較的容易です。しかし、相互作用の分析は複雑です。小さな影響であれば無視してしまったり、分析を省略する方が賢明です。
実際、多くのケースでは、相互作用を考慮しない形で十分に分析ができ、的確な理解や予測が可能です。
一方で、相互作用が本質的に重要なケースも少なくありません。こうしたケースでは複雑であっても相互作用を分析しなければ、理解や予測ができません。
しかし、そのようなケースでも、相互作用を無視したり分析から省略してしまうことがあります。それが意図的であれば問題ありません。しかし多くの場合、無意識に相互作用を失念してしまっています。
これは必然的な分析の失敗を意味します。そして、この失敗は多くの場面に共通しています。まるで、思考方法の基本的な部分に、相互作用を無視するバグが存在しているかのようです。
■科学における相互作用
このバグが、科学的探求やその他の学問における誤解や遠回りを引き起こしています。
例えば、生命の起源の研究において、有機化合物の単純な相互作用だけに着目していても答えにはたどり着けません。有機化合物の相互作用に焦点を当てる必要があります。
有機化合物の相互作用に焦点を当てると、生命の起源の探求においては、まず第一に化学物質が相互作用する構造を考えることが先決となります。
この視点からは、地球全体の水の循環により様々な湖や池の間で化学物質が移動することで、複雑な相互作用が可能であったことに気がつきます。
また、有機化合物の相互作用に焦点を当てるなら、相互作用により化学進化が可能であったかどうかが焦点になります。DNA、RNA、タンパク質は、何れも相互作用によりフィードバッグループを形成することで、化学進化が可能です。
また、宇宙物理学における微調整された宇宙の問題も、宇宙内の物質の重力と時空間の相互作用として事後に調整されたと考えることもできます。
物質と反物質の対称性の破れの問題も、相互作用により物質の優位が積み重なった結果として捉えれば済みます。
このように相互作用に着目するべきところでそれを見落としてしまうと、誤解や遠回りにつながります。
■社会における相互作用
社会に強く迎合したり個人の自由を委ねることを強要することは、決して望ましいことではありません。
一方で、過剰に個人主義を徹底することは、結果的に自らの利益になりません。相互作用を念頭に置けば、税金を減らすことや他者に不親切に振る舞ったり攻撃的になることは、自らの不利益になることは自明です。
また、環境問題や技術的なリスクを過小評価するような主張を繰り返すことも、相互作用に焦点を当てれば、賢い選択ではないことは明らかです。
しかしながら、これらのことは、あたかも対等な価値観や主義主張の相違であるかのように見なされています。
それは、思考方法の根底に根付いた相互作用を無視するバグによるものと考えなければ説明が困難です。
■「相互作用を無視しないこと!」
ここに挙げた例のように、相互作用を無視することは、様々な問題や非効率を引き起こします。特に根強い誤解のために、社会が分断されたり、大きなリスクを抱えたままになってしまうことは、大勢の人にとって不利益であり、不幸です。
そして、相互作用を無視したり過小評価する傾向は、知的能力の高低や、立場や地位の違いとは無関係に広がっています。
加えて、これは相互作用の分析の難しさによる意図的な省略ではありません。相互作用に着目して考えることを示せば、定量的で正確な分析は難しいとしても、定性的にはどのような傾向や影響が出るのかは比較的容易に把握できます。
つまり、思考能力や難易度の問題ではなく、相互作用を考慮すること自体を失念しているのです。
このため問題は、個々人の心がけや認識の相違ではなく、一般的な思考方法に埋め込まれたバグであると、私は指摘しているのです。
そして、このバグは、相互作用について考える能力の欠落ではなく、相互作用について考えるように処理の流れが作られていないというバグです。
コンピュータープログラムで例えるなら、相互作用を考えるための処理を呼び出す部分をスキップするように、コメントアウトされているような状態です。
このバグを修正するために必要なことは、新しい処理を追加することではなく、単にコメントアウトされている部分を元に戻すことです。そうすれば、相互作用について考える思考が機能し始めます。
そして、うっかりまたこの部分がスキップされないように「相互作用を無視しないこと!」というコメント文を覚書として書いて注意を促せば、バグの修正は完了です。
■さいごに:デバッグされた世界
相互作用を無視してしまう思考方法のバグが修正され、多くの場面で適切な分析が行われれば、潜在的に大きなメリットがあります。
科学の分野では生命の起源や宇宙の謎など様々な議論が、相互作用も考慮したより適切な仮説に基づいて活性化されるでしょう。
そして、相互作用を加味した理論やシミュレーションに基づく研究が加速し、新しい洞察が得られることが期待できます。
これはその他の学問領域においても同様です。
加えて、社会の中に相互作用を意識する考え方が浸透すれば、多くの人が利己的な考えに基づいて意見を述べるという現実的な状況下でも、適切な税のあり方や社会制度が建設的に議論されることを期待できます。
また、多くの人が利他的な考えを受け入れることができなくても、他者に親切にしたり攻撃的な言動を控えることが自己の利益のためになると考えるようになるでしょう。地球環境や社会問題についても、より真剣に向き合う人が増えることが期待できます。
このように、多くの人の思考方法に埋め込まれているバグを取り払い、相互作用について適切に思考するようになれば、学問も、社会も、個々人の幸福も、大きなメリットが全ての面で生まれます。
そして、これが新たな成功体験として記憶されれば、思考方法にフィードバックされ、ますます強く深く相互作用を意識するようになるでしょう。これは、より大きなメリットにつながります。
思考方法のたった1行のバグを修正し、「相互作用を無視しないこと!」という覚書を書き留めることができれば、このように学問にも社会にも、大きな変革が及ぶでしょう。
だから私は、この思考方法に根強く埋め込まれているたった1行のバグを、心から修正したいのです。
いいなと思ったら応援しよう!
