現在地 HOME > 掲示板 > IT4 > 485.html ★阿修羅♪ |
|
http://blog.japan.cnet.com/kenn/archives/000882.html
2003年12月09日
本日より再び前編・後編に分けてシリーズエントリーしてみます。現在のソフトウェア工学の出来の悪さに振り回されて辟易している皆さんに、なぜソフトウェアというものがこれほどまでに多くの問題を抱えているのかを、幾何学という本来最も人間の直観に素直な数学の基礎分野が近年になって破綻をきたしてきた過程になぞらえて、示唆的に理解を促すことができればと考えています。
「数」と「数式」に見る概念の抽象化
「2人の狩人が2本の矢で2頭の鹿を射止めた」
上記の一文を読んで、我々が「2」という数字の持つ意味について特に深く考えることはない。しかしかつて、ここに出てくる3つの「2」に対してそれぞれ別の単語をあてはめている時代があった。(現在でも文明を経ていない部族などではこういう状況であることが多いらしい)
そのような時代には、例えば「リンゴが2個とミカンが2個あります。合計で何個でしょう?」という演算は成立しない。どの「2」も同じ意味を持つとは考えることができないからだ。実際問題としてリンゴとミカンは異なる物質であるのに、足して(抽象的な)4個とは、すわ何事か?というわけだ。
一方、紀元前1700年頃にバビロニア人は数式を文章で表現していた。ピタゴラスの定理の例を挙げると、
「縦が4で対角線が5のとき、横の長さはいくらか。4掛ける4は16。5掛ける5は25。25引く16は9となる。では、何と何を掛ければ9を得られるか。3掛ける3が9である。従って、横の長さは3である」(History of Mathematicsを参照)
というようなものである。これも、今日なら「a² = 5² - 4²」というように抽象度の高い数式を用いればパッと理解できる種類のものである。命題の定義と算出手順を自然言語で表すということは、代数演算を用いて答えを導出するという手法が使えないため大変扱いづらいし、バグの混入にも気付きにくい。
実は、これらの例で挙げたような抽象的な数の概念と数式という抽象記号による演算手法を獲得するまでに、人類は数千年の時を要したと言われている。
こんなトリビアな雑学的挿話を、多くの人は新鮮に感じたことだろう。我々は、もはやこんなことを知らなくても数や数式の概念をすでにあるものとして受け入れ、それを応用することで様々な利益を得ている。真に成功した抽象化概念というものは、このように空気のようなものとして文明に溶け込んでしまう。
直観の排除という抽象化プロセス
"Death and taxes are unavoidable." (死と税からは逃れられない)という有名な言葉がある。はるか有史以前より、人類は数をかぞえ、税を課し、申告をごまかしてきた。のちに数学の起源となる幾何学(図形や空間を扱う数学の一分野)は、課税のために土地の測量を正しく行う目的から生まれた。
幾何学は、古典物理学などと同様にもともと直観的に明らかであるものや経験的に明らかであるものを論証するために体系化された、最も原始的な学問であった。具体的なモノを対象とし、「線」と言えばロープで、「長方形」と言えば土地の区画であったりした。従って、実用的ニーズという観点では誤差やちょっとした例外はあまり重要な問題ではなかった。
そこに「空間」は抽象概念であってもよいという、ロマンティックな考えを持ち込んだのは後世の著名なギリシャ人たちである。概念を抽象化するという試みは、一般に喜びと苦しみを伴う。喜びは、応用範囲が広がるということである。苦しみは、実用ニーズを超えて網羅的であることを求められることである。幾何学の世界でも抽象的な「点」や「線」の概念を導入したあたりから、状況が変わってきた。推測や観察によってではなく、直観という名の先入観を排除した「証明」という手段を求めるようになってきたのである。
幾何学の集大成たるユークリッドの『原論』では、まずどの用語もすべてきちんと定義し、すべての言葉や記号に関して解釈の違いが存在しないようにした。次に、論理的に常識とされているものや幾何学的な公理を明確に定め、これら以外の暗黙の仮定が入り込むことを許さないようにした。例えば、「あるものに等しい二つのものは、また互いに等しい」などの一見当たり前に思えることを明示的に定義した。そして最後に、これらの公理およびすでに証明済みの定理だけを用い、認められた論理規則の組み合わせを使用することで、新たな定理を証明することができるようにした。いわば、論理的に完全に閉じた世界を作り上げたのである。
このユークリッドの『原論』は、2000年以上もの間、我々が住んでいる空間にまつわる理解を規定し、役に立ってきた。
マクロな視点がもたらしたユークリッド幾何学の崩壊
しかし、もっと大きな計測系、例えば地球上の大陸間を航海する最短ルートを求めるような場合の幾何学は、ユークリッド幾何学とは独立した分野として長らく扱われてきた。例えば、ある地点から北へ1000kmの点と東へ1000kmの点の2点間の距離は、ピタゴラスの定理によれば2の平方根掛ける1000kmになるはずだが、実際にはもっと短くなる。さらに距離が遠くなると誤差はもっと大きくなり、到底無視できない水準になる。
こういうことが起きるのは、地球が丸いからだ。例えばニューヨークからマドリードに航海することを考えた場合、方位磁石を使って北緯40度の線に沿ってまっすぐ東に航行するのは最短ルートではない。地球の中心とニューヨーク、マドリードの3点を通る平面で地球を輪切りにした円周上に沿って、まずは北東に向かい、徐々に右方に舵を取り、中間地点では真東に向き、最後には出発時と同じ角度で南東に向くのが最短ルートとなる。こうして、幾何学は「空間は3つのまっすぐな次元から成る」という人間の直観には巨大な誤差が発生しうることを認めることになったのである。
やがて空間は曲がっていてもよいという非ユークリッド幾何学が登場し、地球表面のような楕円空間が扱えるようになり、アインシュタインの相対性理論などに繋がっていく。これらは人類が海を渡ったり空を飛んだりといった冒険に対する飽くなき欲求から生まれてきたものであり、いつまでも実験室で定規を当てたり市井でロープを使って距離を計測していたら永遠に気付くことはなかったし、その必要もなかっただろう。ようやく19世紀に至って、長らく数学や物理学の基礎を成してきたユークリッドの理論が、その論理的な大前提となる概念や公理において、我々の「人間の目線」という等身大の先入観により巨視系の空間では使えない(間違っていた)ことが次々と明らかになってきたのである。
この論理的崩壊は人類に大きな衝撃をもたらし、認識や定義といったものの原点への立ち返りを要求した。例えば辞書で「空間」を引けば「時間とともに世界を成立させる基本形式(大辞林より)」とある。しかし、この定義には意味があるだろうか?ここで登場する「世界」をさらに辞書で引けば「物体や生物など実在する一切のものを含んだ無限の空間(大辞林より)」とある。つまり、「空間」と「世界」というふたつの言葉は、互いに互いを定義し合っているだけなのだ。突き詰めれば、辞書に載っている単語はすべて他の単語で定義されているのだから、最終的にはあらゆる定義がこういう無限ループに陥っているはずだ。こうして、人類の知的活動の全ては「人間の目線」という先入観の存在と切り離せないものであることが改めて確認されるのである。
この種の問題に対処するために、近代的な数学では「無定義用語」なるセマンティクスを持たない用語を導入することにしたが、人類がこの種の人為的な試みにほとんど成功したことはない、若しくは膨大な時間が必要だった(例えば「数」は素晴らしい意味中立のシンボルだが、それでも奇数は男性、偶数は女性というような擬人化の呪縛や各種の宗教観から自由になるのに数千年を要した)ことを考えるとあまりいいアイデアとは思えない。私はカント派ではないが、どこまでいっても人間は直観的な生き物であると考えているし、絶対的客観性なるものに近い将来に到達できると考えるほど楽観主義者でもない。
それでも今ホットなのは、例えば相対性理論のような巨視系と量子力学のような微視系の宇宙を統合してシンプルに扱える統一理論を構築しようという試みであり、これは数学と物理学を横断する新しいテーマとして勝負は始まったばかりである。その行く先は極めて不安定で、もしかしたら今まで信じてきた著名な科学者の理論が明日にでも引っ繰り返される可能性があるのだ。
このように、数千年に渡って人類の叡智を結集してきた数学や物理学といった基礎分野にも「先入観がもたらす視点のズレと精度の差」による理論の崩壊があちこちで起きているのだ。その期待される工学的価値に比して圧倒的に歴史の浅いソフトウェア分野に、同じことが起きないと言えるだろうか?
後編では、ソフトウェアの抽象化アプローチやマクロなふるまいについて触れ、その本質に迫っていく。
(続く)