神託、魔法使い、数学的証明 (1)

「オラクル(神託)」は、かつてギリシャのデルファイのアポロ神殿の巫女が行った予言のこと。古代ギリシャでは、社会的に重要な意思決定は、すべてこのデルファイの神託を仰いで行われたらしい。最高位の巫女は、Phythiaという。この名前は、地球の中心に存在すると信じられていた巨大な蛇 Python に由来する。

OracleもDelphiもApolloもPythonも、IT業界では別の意味で、会社名・プロダクト名として有名なのだが、欧米人にはギリシャの古典を愛する人が、現在も(IT業界にも)存在するのだと思う。それは、かつての日本人が、中国の古典を愛していたのと同じだ。

ところで、数学にも "Oracle" という概念があるのだ。それは、どんな問題に対しても瞬時に正しい答えを返してくれるシステムを仮定して、それを Oracle という。

それは、複雑性理論の中心的なツールだ。例えば、次のように使う。
$$P^A$$ という複雑性のクラスは、クラスA-完全のOracleが与えられたときに、P(決定問題が多項式時間)で解ける問題のクラスで、$$NP^A$$は、クラスA-完全のOracleが与えられたときに、NP(yesの場合の決定問題が多項式時間)で解ける問題のクラスということにするのである。だから、$$P^{NP}$$は、NP-完全な問題へのOracleが与えられたとき、決定問題が多項式時間で解ける問題のクラスになる。

なんて勝手な想定なんだ、数学に「神託」を導入するなんてトンデモナイと思うかもしれないが、そうすることによって「複雑性の階層」に対する見通しが、とてもよくなるのだ。ここでは、そのことを詳しくは論じないが、我々の日常でも、このOracleの利用に相当することが実際にあるのである。

たとえば、Pythonでプログラムを組んでいるとしよう。数値計算にnumpyを使う時、我々は必ずしもnumpyが行っている処理の詳細を理解する必要はない。我々が、それに期待するのは、それが「正しい答え」を「確実」に返してくれることである。

数学でも同様である。数学の証明は「厳密」なことを是とするのだが、全ての証明の細部を書く必要はない。例えば、何千年前の「ピタゴラスの定理」の証明を、全ての数学的証明がくりかえす必要はないのだ。数学的に「確定」した「定理」は、ある種の Oracle として機能するのだ。

フェルマーの定理を証明した現代の数学者ワイルスは、自分を「巨人の肩に乗る小人」に擬した。この比喩は、数学の「累積的知」としての性格をよく表している。数学だけではない。物理学も基本的には、同じ構造を持つ。(時々、そのフレーム自体が大きく変わることがあるのだが)

誤解を恐れず話を広げれば、「技術」についても、技術の利用者から見れば、我々はその技術のよって立つ原理やその実装の詳細について理解を求められはしない。例えば、僕は、衛星経由で4Kのテレビが見られるのはなぜかと言われてもうまく答えられない。江戸時代の人は、おそらくテレビを見ればびっくりすると思うのだが、そういう僕も、大して変わりはない。

それは、我々が、「累積的知・累積的技術」という無数の Oracleに取り囲まれていることを示していると、僕は考えている。

問題は、そうした人間の知のあり方の、数学的モデルが存在するということだ。複雑性理論の奇妙に思えるOracleの仮定は、そういうものだと考えればいいのだ。








コメント

このブログの人気の投稿

マルレク・ネット「エントロピーと情報理論」公開しました。

初めにことばありき

人間は、善と悪との重ね合わせというモデルの失敗について