本日より再び前編・後編に分けてシリーズエントリーしてみます。現在のソフトウェア工学の出来の悪さに振り回されて辟易している皆さんに、なぜソフトウェアというものがこれほどまでに多くの問題を抱えているのかを、幾何学という本来最も人間の直観に素直な数学の基礎分野が近年になってパラダイム転換を遂げてきた過程になぞらえて、示唆的に理解を促すことができればと考えています。
「数」と「数式」に見る概念の抽象化
「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世紀に至って、長らく数学や物理学の基礎を成してきたユークリッドの理論が、その論理的な大前提となる概念や公理において、我々の「人間の目線」という等身大の先入観により巨視系の空間では使えない(間違っていた)ことが次々と明らかになってきたのである。
この論理的崩壊は人類に大きな衝撃をもたらし、認識や定義といったものの原点への立ち返りを要求した。例えば辞書で「空間」を引けば「時間とともに世界を成立させる基本形式(大辞林より)」とある。しかし、この定義には意味があるだろうか?ここで登場する「世界」をさらに辞書で引けば「物体や生物など実在する一切のものを含んだ無限の空間(大辞林より)」とある。つまり、「空間」と「世界」というふたつの言葉は、互いに互いを定義し合っているだけなのだ。突き詰めれば、辞書に載っている単語はすべて他の単語で定義されているのだから、最終的にはあらゆる定義がこういう無限ループに陥っているはずだ。こうして、人類の知的活動の全ては「人間の目線」という先入観の存在と切り離せないものであることが改めて確認されるのである。
この種の問題に対処するために、近代的な数学では「無定義用語」なるセマンティクスを持たない用語を導入することにしたが、人類がこの種の人為的な試みにほとんど成功したことはない、若しくは膨大な時間が必要だった(例えば「数」は素晴らしい意味中立のシンボルだが、それでも奇数は男性、偶数は女性というような擬人化の呪縛や各種の宗教観から自由になるのに数千年を要した)ことを考えるとあまりいいアイデアとは思えない。私はカント派ではないが、どこまでいっても人間は直観的な生き物であると考えているし、絶対的客観性なるものに近い将来に到達できると考えるほど楽観主義者でもない。
それでも今ホットなのは、例えば相対性理論のような巨視系と量子力学のような微視系の宇宙を統合してシンプルに扱える統一理論を構築しようという試みであり、これは数学と物理学を横断する新しいテーマとして勝負は始まったばかりである。その行く先は極めて不安定で、もしかしたら今まで信じてきた著名な科学者の理論が明日にでも引っ繰り返される可能性があるのだ。
このように、数千年に渡って人類の叡智を結集してきた数学や物理学といった基礎分野にも「先入観がもたらす視点のズレと精度の差」による理論の崩壊があちこちで起きているのだ。その期待される工学的価値に比して圧倒的に歴史の浅いソフトウェア分野に、同じことが起きないと言えるだろうか?
後編では、ソフトウェアの抽象化アプローチやマクロなふるまいについて触れ、その本質に迫っていく。
(続く)
♪ Fourplay / Galaxia
※このエントリは CNET Japan ブロガーにより投稿されたものです。シーネットネットワークスジャパン および CNET Japan 編集部の見解・意向を示すものではありません。
本当ですか? on 2003/12/16
同じ数が指す対象によって呼び方がかわるというのは日本語や英語でもありますよね。英語のfirst,secondや日本語のついたち、ふつかなど。
"文明を経ていない部族"のほうがより多くの呼び方があるのかもしれませんが、言い切り方がちょっと気になったもので。先進国の言語でも普通に見られる現象だと思います。
arai on 2003/12/15
僕的には、江島さんの考えがどうかというよりも、読者の人がblogの表現部分についてこういう考えもあるんだと知ってくれればそれでいいです。
江島さんにはちょっと逃げられた気がするけど、テキストベースで議論しても、お互い千日手になるので、今度飲む時の酒の肴にしましょう。
鈴木健 on 2003/12/15
こちらこそよろしくお願いします。
私も短すぎてしまって意図が伝わらなかったように思いますので、付け加えます。
禅問答云々のところは、鈴木さんの意図を汲んだ上でのご返答だったのか、真意が知りたかったので書きました。
鈴木さんのコメントは、江島さんの「数学公理系における論理的完全性とその(絶対)真理性との混同」と「数学や物理学の論理的混同と歴史的混同」を丁寧に指摘したものだったと私は解釈しました。しかし、江島さんは信念、哲学、スタイル、興味、といった主観的用語を使って答えておられました。
鈴木さんも予め断っていたように、今回はソフトウェア工学の話であり数学の議論は主旨とは別な部分なので、江島さんとしては厳密な議論に陥ることを避けたかったのかもしれません。しかし「肩の力を抜く」あまり、「肩すかし」の議論に意図的にすり替えたのかなと思ったのでした(→これは江島さんの「深い問答・主張」だと認識されているというご回答により杞憂だと判明しました。)
不特定多数の人たちとのオンラインでの議論は確かに難しいです。しかし、少なくともフェアじゃなきゃいけないと思います。鈴木さんと江島さんが旧知の仲であることは、私も含め多くの読者は知らないと思います。もし、別の名前で鈴木さんのコメントが寄せられたときは江島さんは別返答をなさるということでしょうか。「人間だからしょうがない」といってしまえばそうなのでしょうが。それを言っちゃうと、過激コラム自体も内輪受けを意識した内弁慶なものにみえてきて、それまたとてももったいないです。
「仕掛け」と後編、楽しみにしています。
norm on 2003/12/13
normさん
いつもコメントありがとうございます。
禅問答:何をいっているのかわからない難解な問答。話のかみ合わない珍妙な問答。(大辞林)
よって「禅問答てか、ぜんぜん問答になってない。」は恒等式ですね。とはいえしかし、実はそれなりに一本通った深い問答・主張になっていると思いますよ。
それから、鈴木健さんとは普段あまりこういう話をしたことがないので息抜きと表現しました。というか、健さんは大丈夫なのですが相手を間違えると「肩の力抜こうね」と予め宣言しておかないとすぐ迷宮入りしてしまうので危ないのです、この手の話題は。
コメントいただけるのはいつも嬉しいのですが、特に込み入った議論の場合、すでに会ったことがあるなど相手の人となりを理解していると安心してコメント返せるのですけど、
Passion For The Future : 非言語(ノンバーバル)コミュニケーション
http://www.ringolab.com/note/daiya/archives/000549.html
なんて問題がありますので、なかなか難しい問題ですね。ましてやオンラインだけで相手を信用できるようになるにはもっともっと時間の積み重ねが必要と感じています。
というわけで、このBlogの読者の方とコメントやトラックバックを超えてインタラクティブ性を高めるための仕掛けをちょっと編集長と考え中です。
今後とも是非よろしくです。
kenn on 2003/12/12
norm on 2003/12/12
健さん、面白いコメントどうも。
たまにはこういう禅問答も息抜きにいいかもですね。
(1) の指摘については、承知するところです。当たり前の話ですが私自身も高校時代にはユークリッド幾何学の教育を受けたわけで、その有益性を疑ってはいないです。(つまり、読者がそこを変に誤解するとは心配していません)それから、私自身は本文にも述べているように「数学の絶対的真理」性なるものはもとから信じていません。これは私の宗教であり哲学でありスタンスです。
(2) 個人的に物理と数学を分けて考えることにはあまり興味ありません。Political Issueじゃん、というと怒られるかな。また、ユークリッド幾何学がそれ自体は巨視系でも通用するってのはLogically correct but possibly not practicalでしょ(なんせ実務屋なもので)。例えばアインシュタインとリーマンは相互に刺激し尊敬し合う関係だったわけで、少なくとも一般相対性理論と非ユークリッド幾何学の関係に限って言えば「数学」や「物理学」が無定義(要定義)用語に還元されるのでは。w カテゴリーというのは極めて不安定なセマンティクスですよね。
kenn on 2003/12/10
非ユークリッド幾何学について誤解を招きかねない表現があるので、ちょっとコメントしておきます。ただ、おそらく後半で議論するであろうソフトウェア工学についてのblogの価値とは「独立」であろうと思いますが。
第一に「幾何学という本来最も人間の直観に素直な数学の基礎分野が近年になって破綻をきたしてきた」とか、「数千年に渡って人類の叡智を結集してきた数学や物理学といった基礎分野にも「先入観がもたらす視点のズレと精度の差」による理論の崩壊」という表現が気になります。細かく議論するとクーン以降の科学哲学の論争になってしまうのですが、簡単に指摘します。
まず、非ユークリッド幾何学とユークリッド幾何学の関係は、非ユークリッド幾何学が正しくてユークリッド幾何学が間違っているという関係ではありません。非ユークリッド幾何学は、具体的にはユークリッドの第五公準を逆の公準と差し替えたとしても、公理系になんら矛盾をもたらさない、したがって独立であるということです。
正確な話は数学史のよい文献をあたることを薦めますが、ネット上では
http://matsuda.c.u-tokyo.ac.jp/~ctakasi/first/04minj/sankou.html
が比較的正確に表現しています。
つまり、数学的にはユークリッド幾何学も非ユークリッド幾何学も対等な立場であり(もしくは空間の曲率を連続的にとればユークリッド幾何学は非ユークリッド幾何学の一部となりますが)、非ユークリッド幾何学の登場の数学的意義は、先のページで書かれているとおり、ヒルベルトの公理主義以降、公理系の設定が任意であることが自覚され、数学専攻の学生の修論が新しい公理系をつくることぐらいの気楽さで公理系がつくられるようになったことであり、数学の絶対的真理という意味が数学基礎論・証明論の発展の中で揺らぐようになったことではないでしょうか。
第二に指摘したいのが、数学と物理学の混同です。「長らく数学や物理学の基礎を成してきたユークリッドの理論が、その論理的な大前提となる概念や公理において、我々の「人間の目線」という等身大の先入観により巨視系の空間では使えない(間違っていた)ことが次々と明らかになってきたのである」というところです。ユークリッドの理論は数学の理論で、一般相対性理論は物理学の理論です。ユークリッドの理論は巨視的な(数理)系でも十分通用します。要は、一般相対性理論の場合は、確かに巨視的な(物理)系で、重力によって空間が曲がるという効果を無視できなくなります。江島さんの表現では、物理学の理論によって数学の理論が間違っていることが示されたことになってしまいます。
第三に、これはレトリックとして許容範囲かもしれませんが、「いつまでも実験室で定規を当てたり市井でロープを使って距離を計測していたら永遠に気付くことはなかったし」というのはちょっと数学史的に違うかなと思います。
再度、後半のソフトウェア工学についての議論の価値は、これらの指摘と別問題だと考えています。東北?を中心に盛んなとんでも科学暴露掲示板みたいなことをしたいわけじゃないのですが、こういう表現は伝播していって過激化してしまうこともあるので、あえて書かせていただきました。
ソフトウェアの話をするのに科学や哲学の話題を出すのはいいことだと思いますが、使い方には十分注意していただきたいと思います。最近だとIT Proに連載している「ウィトゲンシュタインに学ぶプログラム言語の本質 」http://itpro.nikkeibp.co.jp/NIP/nip09_bn.jsp?BN=Y&OFFSET=1というのは、間違っているというよりは無意味な気がします。
それでは、次回のblogを期待しております。
鈴木健 on 2003/12/10
ブログにコメントするにはCNET_IDにログインしてください。
この記事に対するTrackBackのURL:
メンバー限定サービスをご利用いただく場合、このページの上部からログイン、またはCNET_ID登録(無料)をしてください。
ユークリッド幾何学は近年破綻したんですか?