本文へジャンプ

計算機で何を表現するか?

こうしてお話を伺ってみて、あいまいで混沌としている現実世界を相手にしていることが意外でした。萩谷先生は抽象的な論理を積み上げる世界、抽象数学の洗練された世界に住んでいるという印象をもっていたんです。それは飽きちゃったんですか?

あ、ぐじゃぐじゃなもののほうが面白くなったのは最近。結局、現実世界はぐじゃぐじゃで動いています。たくさんの要素が影響しあいながら、よくわからないけど全体として何かしら機能している。そのなかから、きれいなもの―数学的な構造を見いだして抽出することに、興味が移ったんです。見つかれば、いろいろいいことあるし。

では、最初はどんなことに興味があったんですか? ホフスタッターの『ゲーデル・エッシャー・バッハ』を楽しく読んでいた?

『ゲーデル・エッシャー・バッハ』というより、ゲーデルの不完全性定理は好きでしたね。最初は何かといわれると、やっぱり人工知能かな。コンピュータが、人間の代わりに定理を証明してくれる、プログラムを書いてくれる、そういうものに惹かれて、つくってみたいと思いました。いまの若い人に、人工知能という概念がわかるかなあ。

人の思考がどんな働きでできているのか、それはみんな考えるのではないでしょうか。そして、人工知能に興味があったからLispを使いたいと思い、ご自身で実装されたんですね。

そう、Lispで記号処理がしたかったんです。その当時としては、手っ取り早く、推論やわりと高度な計算ができましたから。

そして、抽象世界のほうへ興味が移ったんですね?

プログラム言語を習うと、誰でもたいがい抽象的なものに関心が向かうでしょ。だから私自身も、たとえば関数型できれいにプログラムを書くことに興味はありました。Javaで書くと100行くらいのプログラムが、関数型で10行ぐらいで書けちゃってエライだろうって。いまはそれはないけど(笑)。オブジェクト指向、関数型、そういう抽象化の仕組みが、みんな好きじゃないですか。

転機は何だったのでしょう。

ひとつは、DNAコンピュータと出会ったことかな。基本的にはこういうふうになるはずと思ってやってみても、なかなか思い通りにいかないんです。逆に、適当にやるとうまくいったり。自然界は思い通りになりません。するとだんだん、適当に組み合わせたらうまくいくっていうほうが面白くなってきて。

モデル検査のような、いってみれば乱暴な検証手法を始めたことも、きっかけのひとつですね。ぐじゃぐじゃなプログラムが正しいということを、自動的に示せる。それが嬉しいんです。

実は、ぐじゃぐじゃなプログラムは機械がつくってもいいわけです。ソフトウェア検証をやっている人たちには、素朴な夢があるんですよ。プログラムも自動的につくるし、検証も自動的にするという。このラインの研究もいくつかしています。たとえば最近、学生といっしょに、ANDゲートやORゲートのような簡単な計算素子のレベルですが、DNAコンピュータを自動的につくるという研究をしています。

興味の対象は変わっても、未知のわかってないことを理解したい、何かをつかみたい、それを数学的にきれいなかたちで証明したい。そのアプローチとして推論や情報科学を選ぶ良さとは、どういうところでしょうか。

系(システム)の表現方法として、情報科学はものすごくリッチだと思うんです。たとえば、生物学の人が遺伝子の回路を眺めると、やっぱり微分方程式になります。モデルの解析手法として、離散的な手法はもちろんあるんだけれど、やっぱり微分方程式になるんです。だけど、情報科学では、離散的な手法も含めて、もっといろんなとらえ方ができます。むしろ、表現方法を編みだすこと自体すら学問の目標になるわけですから。

情報科学でその微分方程式にあたるものといったら、何でしょうね。

オートマトン(状態遷移)でしょう。単純なオートマトンだけでなく、複雑な構造のオートマトンがいろいろあります。

計算機のなかで何かを表現しようとするとき、ほんとうにいろんな映し方、表現方法があります。圏論も、その表現方法のひとつですね。混沌とした現実世界も、いろいろな表現方法を駆使して計算機に乗るようになります。いろいろあるというところが、いいんですよね。

ページトップへ戻る