俺の報告

RoomClipを運営するエンジニアの日報(多分)です。

日報 #100 - 僕のコンピュータ史 part4

僕のコンピュータ史 part 1
http://tom-rc.hatenablog.com/entry/2014/08/05/232343

僕のコンピュータ史 part 2
http://tom-rc.hatenablog.com/entry/2014/08/08/234123

僕のコンピュータ史 part3
http://tom-rc.hatenablog.com/entry/2014/09/01/225206

前回までのあらすじ

カントールから出帆した集合論は、ヒルベルトという船に乗り順風満帆に見えたが、 ゲーデルという潮流に抗うことは出来なかった。
不完全となった数学ではあったが、たどり着いた先は荒涼とした大地ではなく、 むしろ新たなる時代への息吹で溢れかえった豊潤な世界であった。


僕のコンピュータ史 part4

アラン・チューリングを「エンジニア」と表現したら、「それは間違いだ」と言われるであろう。
彼は偉大な数学者であり、論理学者であり、計算機科学者である。
木材やハンマーを取り出して、何か便利で画期的なものを作る技術者のイメージとは、確かに少し違うかもしれない。
しかしもし、抽象的な世界で、 抽象的な道具で、抽象的な機械を作ることすらもエンジニアリングというのであれば、 チューリングをエンジニアと呼ぶことはあながち間違いとは言えないかもしれない…。

アラン・チューリングという男

学者にとって大事なことは、何かを発見したり証明したりすることであるのだが、
いずれも「世界で初めて」でなければ意味がない。
誰かが既に証明したことと全く同値の内容の論文に価値などない。
なるほどまったく当然の事のように思えるが、しかし、この男について知れば知るほど 事はそんなに単純ではないことに気づくであろう。

アラン・チューリングという数学者の最初の業績は「中心極限定理の証明」であった。

1934年までケンブリッジで学生をしていたチューリングが、卒業後の1935年に息巻いて提出した渾身の論文である。
「誤差は正規分布に従う」という現代の統計学でも外せない基礎的定理の1つであり、その貢献度・引用数は計り知れない。
しかし、実際のリファレンスにチューリングの名前が載ることはあまりなかった。
というのも、中心極限定理チューリングが証明する13年も前にリンデベルグという男によって解かれていたのだ。
チューリングはそれを知らずに重複内容の論文を提出してしまっていたわけである。

間抜けな男だな、と思うかもしれない。

だがしかし、その功績によって彼はケンブリッジ大学のフェローに選出されたのである。
業界の評価は重複論文提出に対する「不勉強さ」よりも、
独自に中心極限定理を解き切った彼の実力に価値を置いたのであった。

翌1936年、チューリングは「計算可能数、ならびにそのヒルベルトの決定問題への応用」と題した論文を提出する。
いわゆる「チューリングマシン」が世に出た最初のデビュー作なのであるが、
冷たく言い放つと、この論文の内容は、ゲーデル不完全性定理と数学的に同値であった。

彼はまたもや誰かの理論と「同じ内容」で論文を提出したのだ。

なんと独自性のない奴だ、と思うかもしれない。
だがしかし、業界の評価はその真逆であった。
彼の提案したチューリングマシンという概念は極めて画期的であり、
理論の元の論文を提出したゲーデルをして「最も完成度の高い手法」と称される程にまで評価されたのであった。

更にその後、自身の提案したチューリングマシンの停止性問題についての考察も述べるのだが、
これもアロンゾ・チャーチがラムダ算法の中で証明した計算不可能性に関する議論と同値の内容であった。
しかし、ここでももちろん彼は評価された。
彼の提案した方法論は、直感的で分かりやすく、哲学的である、と。

アラン・チューリングはコンピュータの「生みの親」と言われるほど、その研究成果のオリジナリティに関して突出した評価を受けている。
そんな彼の論文が、他の論文との「同値的要素」を多く持っているということは非常に興味深い。
同じことを言っているのに、新しいものを生み出したと表現される――もしかしたら彼は、学者というより超一級のエンジニアだったのかもしれない。
実際、彼が生み出したのはチューリングマシンという「機械」であった。
そしてこのチューリングマシンこそ、以後世界中を覆い尽くしデスクの上の覇者となるコンピュータの「最初の種」であり、 今なお継承され続けているDNAそのものであったのだ。

チューリングマシン

さて、そのチューリングが提唱したチューリングマシンとはいかなるものなのか。
一度検索してみれば、驚くほど多くの文献が見つかるはずだ。
「長いテープと、それを読み取るヘッダの…」という風に始まる朴訥な機械の説明を知らぬ人は、もう少ないかもしれない。
ここでは「コンピュータ史」に力点を置くため、チューリングマシンの詳細よりも、その他の計算理論との関係性について述べようと思う。

計算理論の教科書を広げれば、必ず出会う単語と、その順番がある。
決定性有限オートマトン、非決定性有限オートマトン、文脈自由法、非文脈自由法、そしてチューリングマシン
これら全ての目的はただひとつ、「計算モデル」を定義することだ。
少し思い出して欲しい。
カントールから始まる数学による数学についての数学、メタ数学の行き着いた先の1つは、
「計算とはなんだったのか?」という疑問にある。

例えば、 「自然数自然数自然数」の全てのパターンが記述された辞書というものがあったと仮定してみる。
今、1+1という計算をしろと言われた場合、
その辞書を「文字列検索」して、「1+1=2」という記述を発見したので、
1+1=2 だというふうに回答したとしよう。
この場合、「なんとか」足す「なんとか」というのは、ただの文字列であって、
計算の本質的なモデルは「命題となっている文字列を辞書で探す」という行為に等しい。
だが、この辞書には「すべての自然数の和の対応表」が記述されているのだから、
実質的には「2自然数の和計算を行った計算機モデル」ということと等しくなる。
そこには「和演算の意味」とか「1の意味」とかは存在しないわけだ。

これは実に極端な例だが、
つまるところ計算機科学が問題にしている「計算モデルの定義」とはこのようなことを指し示す。
我々が一般的に考えるような定性的な意味、
例えば「1というものに1というものを足すと、2というものに増える」という表現は、
とてつもなく多くの前提を元にした叙情的な表現であり、
そもそも数学においては「増える、減る」といったような概念や「1、2」だとかいったような概念すらもきちんと定義されていなければ存在しない。
「計算モデル」はこのような前提を極力排し、
「最終的に人間が1と解釈する入力Aと、最終的に人間が+だと解釈する入力Bと、最終的に人間が=だと解釈する入力Cと、状態最終的に人間が2と解釈する状態Dがあったとして、 ABCDは正しく受理される入力である」という風に表現されるに過ぎない。
理想的な計算モデルである計算機は、
ABCという入力を受けて、状態を遷移させた後、Dという出力をして受理状態へと移行する。
それを1+1=2と解釈するのは人間だけである。
先の自然数の和が書かれた辞書の話はかなり原始的なので、可能な計算範囲は極少ない。
数学者たちは、もっと抽象的で、もっと応用が効いて、もっと多様な条件に対応できる形に計算機を次々に作り出していった。
そしてその歴史が、計算理論の歴史であり、
チューリングマシンという「計算モデル」は1930年代における1つのゴールだったのである。
「無限に長いテープと、それを動くヘッダが、、、」で始まるチューリングマシンという計算機は、当時において最も強力な計算モデルとして作り上げられたのであった。

さて、 本番はここからである。

チューリングマシンという計算機モデルは極めて精錬された方法論でもって、かなり多くの計算が可能であることが示された。
数学者たちはこの「抽象的な機械」の発明に大喜びしたが、しかし、
彼らの興味関心はあくまで「計算とはなにか」であり、その解答として蓋然性の高いモデルを手に入れたことを喜んでいただけに違いない。
もちろん、彼らとしてはそれでよかったのかもしれない。

しかし、その経過をじっと眺めている鋭い視線に、時代はまだ気づいていなかった。

1927年、不完全性定理が提出され数学界に激震が起きる僅か3年前。
不確定性原理という非常によく似た名前の原理導出によって、 本格的に「極小の世界」に突入した学問領域がある。
そこに巣食う学者達はチューリングマシンを見た瞬間にこう思ったであろう。

「この計算機モデルは、 現実に実装できる」

「勃発する第二次世界大戦、諜報で活躍する数学者達、すれ違うノイマンチューリング、シャノンという謎の物理学者、、、 次回、物理学者はチューリングの夢を見るか? この次も、サービスサービスゥ!」