Web 鼎談:コンピュータ・サイエンスは21世紀の基礎科学になるか?

総集編 No.9

12月の鼎談

鼎談の表紙へ, 鼎談のあらすじへ, キーフレーズから見た鼎談へ,


9.1.CSの世界は 0 と 1 からなる世界?

11月の鼎談から
根上: パソコン上で展開している人工的な世界と 記号的に動いている機械語レベルの世界とをつなぐ価値観や世界観を語らないと, CSが基礎科学に昇格する日は遠いと思います.

[0168] 渡辺 この際「記号列(機械語)で書ける」の意味をはっきりさせておきましょう. 本当に単純な命令だけでいいのです.

やっとわかりました!

説明を要求されているのは, 「コンピュータにのる=記号で書ける」の部分というよりも, むしろ, この「=」は当然のものとして, 実際にコンピュータ上で表現されているものなどが 「どうやって記号化されているのか?」が直感的に見えない場合がある, ということですよね.

ただ, 根上さんも聞かれていたように, 「記号列で書ける」というのは,どういうことかをもう少し明確に, あるいは具体的にしておく必要があるかもしれません. 少しくどいですが,この説明から始めましょう.

「記号列で書ける」の意味は, 確かに「機械語の命令列で書ける」ということなのですが, 機械によっては機械語も異なります. もしかしたら, スパコンの機械語では書けるが, パソコンの機械語では「本質的に」書けない計算というのがあるのでは? という不安も出てくるでしょう.

そういうことはありません. 原理的には非常に単純な命令列で, すべての計算を書くことができるのです. これは,コンピュータサイエンスの重要な基本の一つです.

ただし, 「原理的に」と断ってあるように, 見た目(怪獣の絵を画面に出すなど)はここでは無視します. また,いままで議論してきたような計算効率も無視します. たとえば 「怪獣が食べ物を探しながら森を探索する」ような動作と同じようなことを, 見た目や効率はともかく「できるか?」ということを考えましょう.

そうした計算は, たとえば,+1, -1, そして = 0? の条件分岐さえできれば,すべて可能です.

これは計算機の命令のようですが, こうした要素をもっていれば, どんなものでも計算を表すことができます. たとえば, 囲碁の石の置き方・取り除き方のルールでもいいですし, ライフゲーム(ちょっと前の計算機ではアイドル時によく画面に出てきていました)等々. 一時話題になった 「ゲーデル・エッシャー・バッハ」(参考文献参照) にもそんなゲームが紹介されていましたよね.

物理の周期表ではないですが, とにかく「+1, -1, = 0? さえできればすべてができる」ので, 記号列と言った場合, この命令の列と思ってもらってよいでしょう.

[0169] 根上 CSでは 0 と 1 の世界が「すべて」と主張するのですか?そこにもギャップがあるな.

渡辺さんの言っている「+1」は 2 進数を1つ大きくする, 「-1」は1つ小さくする, 「=0?」はそれが 0 かどうかを判定するということですよね.

そうだとすると, 渡辺さんが言っている 「すべて」というのは 0 と 1 だけが並んでいるだけの世界を指していることになりますね. そのビット・パターンを変化させるのが計算で, その計算の根源的な存在が +1,-1,=0? の3つだということですよね.

多少限定的であることは踏まえてはいるものの, そのビット・パターンだけが存在する世界を「すべて」と捉える感覚を吟味する必要があります. それを「すべて」と思い込むことがCSの都合によるものなのか, (ちょっと大袈裟だけど)全人類が持つべき感覚なのか?

物理を振り返ってみましょう. 素粒子の組み合わせで, 原子ができて,分子ができて, いろいろな物質ができて, 生物ができて,惑星ができて,宇宙ができてという階層構造が一般的に定着しています. だからこそ, 究極的には「素粒子の研究が根元的な研究だ」と誰もが思ってくれます. その結果として,それを担っている物理学が基礎科学だと認知されるわけです.

もう一方で, 階層ごとの研究も重要です. 概念的にはわかっていても, 「素粒子の相互作用だけ見いても, 実際の地球で何が起こるかなんかはわかりっこない」というのが実感ですよね. 実際, 原理的には,森羅万象のすべては素粒子の相互作用として表現できるのだけれど, 関係する素粒子の個数が大きくなってくると, 自明でないマクロな現象が現れてくる. 原理的には物理学に帰着されるとは思っていても, 階層の段階ごとに,独立した研究分野が存在していて,独自の研究手法を開発している.

こういう階層構造の存在が,物理学が基礎科学であることに説得性を持たせていると思うのです.

CSで議論されている世界にもそれと同じような構造があるのでしょうか? 単に「0 と 1 が並ぶ世界」という言い方をしてしまうと, 構造の稀薄などこを見ても大差のない世界, 数の大小はあるにしても, ミクロとマクロの区別にあまり意味のない世界のような印象を与えてしまいます. もしそうだとすると,「基礎」と「基礎」でないの区別もなくなって, 「すべて」と言われている世界は, 実はCSの閉じた世界でしかないということになってしまいます.

この話がきっかけになって, この後「階層構造」のことで議論があります. ただ, 全体の議論からするとわかりにくい部分が多いので, 「階層構造」に関する議論は省略して話を進めることにします. くわしくは元ファイルをどうぞ.

[0170] 松井 単に 0, 1 の世界だけでなく, CSの世界を俯瞰する説明が欲しいですね.

根上さんの質問は, 「CSの上に展開されている世界は何処?」なのですね. いままで出てきた答え方がいくつかありました.

根上さんはCSの世界を俯瞰する単語が欲しいのですよね,きっと.

[0179] 根上 そうです.階層構造を考えれば,...と説明できるでしょ.

そうです.階層構造を考えれば,それがつながるのではないでしょうか.

たとえば, データ構造にだって, 2 進数,整数,浮動小数点数などの単純型から, 構造体のようなデータ構造とか, データとメソッドのドッキングしたクラスとかに発展している階層がありますよね.

0, 1 の世界から恐竜のCGまでだって, 単なる 2 進数が,点,線分,ポリゴンというグラフィック要素になって, それが組み合わされてでっかい恐竜の3Dデータになるといった階層構造があるでしょ. といった説明を期待していたのです.

とうとう自分で説明してしまった.

[0184] 渡辺 私がさぼっていた説明をして下さってありがとうございます.

私がさぼっていた説明をして下さってありがとうございます.

そういうことを言って欲しかったのですね. 確かに基本的なことなのですが, そんなことを話していては, いつまでたっても基礎科学の話にたどりつけないような焦りがあって, どうもいつも先走ってしまうようです.

中学・高校では, 数学で「どうやって方程式を立てて問題を解くか」とか, 物理で「どうやって運動方程式を使うか」といったことを学んできています. だから, そういった話(の重要性)を今さら繰り返すことではないですよね. 根上さんの説明は,それに相当するものです.

だからといって, CSは数学や物理と違って中高校では教えていないのだから, この点の説明を怠ってはいけない,というのはよくわかるのですが... 「いろいろなことを記号で書くことができる」という認識は, 多くの人が知っておいて(体験しておいてよい)ことだと思います.

9.2.ルールで書き表されている世界 vs ルールでは書けない世界

[0185] 渡辺 CSはルールですべて書ける世界を扱ってます. では物理はどうでしょう?

ただ,基礎科学と呼ばれるためには, もっと別の要素が必要だと思うのです. 俗っぽい言い方かもしれませんが, もっと崇高な部分が必要な気がするのです. それがないと,そもそも「科学」とも呼べないと思うのです.

そこでもう少し崇高(?)な哲学的な話題を議論してみたいと思います.

先ほどの素粒子の話に戻ります. CSでは 0, 1 の世界の話です. たしかに, 0, 1 の世界の話とCGとではギャップが大きいことは認めます. ただ,感覚的にはギャップはあるかもしれまんが, コンピュータ上で動いているということは, それは,すべて 0 と 1 の列に直されて動いているのは紛れもない事実です.

では物理はどうでしょうか? 「森羅万象は本当にすべて, (原理的には)素粒子の相互作用として表現できる」のでしょうか? もしかすると, 素粒子の相互作用では表せない何かがあるかもしれない. そもそも, すべてを解き明かす根本原理などないのではないでしょうか? 物理の専門家だってそう思っているのではないでしょうか?

[0175] 根上 当然,森羅万象をルール化するのは不可能ですよ.

それは当然不可能ですよ. 少なくとも私は不可能だと思っています.

[0188] 渡辺 そこが違うのです! CSの扱う小宇宙は完全ルール化されているのです.

そこが違うのです. CSの世界ではすべてがルールとして明示されているのです.

物理でも数学でも真理の探求という目標があります. 多分,多くの物理学者(同様に数学者)は, 我々の見ている自然の背後には何らかの真理があると信じているのではないでしょうか. ただし, その真理をすべて言葉(記号)で書き表せるとは思っていないでしょう.

これは単なる信仰かもしれません. でも美しいですよね. その真理をどうやって切り分けて我々にわかりやすく見せるか? それが,物理や数学の目指すところだと思うのです.

一方, CSの方は,最初にルールがあります. 公理系といってもいいでしょう. あるいは,小さく言えば一つのプログラムと思ってもよいでしょう.

そのルールによって小宇宙のできごとを記述するのが「計算」で, その記述の仕方や記述された小宇宙を研究するのがCSです. したがって, その小宇宙のすべてのことは,すでに書き表されているのです. つまり, その小宇宙自身が,すべて記号で書かれてしまっているのです. この点が, 記号では完全に記述できない(と思える)真理を探求している物理や数学と大きく違う点です. また, ルール自身も人間の希望に沿って作られるので,ときに応じていろいろと変わるのです.

では,ルールがすべて書き表されている世界の探求はつまらないでしょうか? あるいは,ルールがアドホックに決められるような世界群を扱うのは基礎科学とは言えないでしょうか?

[0190] 根上 数学もある意味ではそうです.

やっと話が通じてきた感じです.

ルールがすべて書き表されている世界の探究を基礎科学と呼ぶというのにも同意してもいいです. 現に,数学がそうですから.

というか, 「それならば数学がやってきたことではないか?」 (CSも数学の範疇なのではないか?) という意見がでてきますよ.

たとえば, 群論なら群の公理から出発して, 見えてくる世界を探究しているわけです. 現代数学は, 自然界に存在しない対象をたくさん扱っているので, 分野ごとに共通のルールがないとやっていけないでしょう.

また, アドホックなルールを決めて, という研究もないわけではありません. でも,その場限りの議論だと,おもしろいと思われても,研究としては評価は低いです. だからといって, アドホックなルールの研究が簡単だと言っているのではありませんよ. 中には, やれば難しいことがわかっていて, それに精力を使う使うくらいなら他の研究をした方がよいと思われているものがよくあります.

[0195] 渡辺 んん? 数学ではルールがすべてではないのでは? 数学的真理が必ずしも記号で表せるとは限らないし.

ひとつ確認させてください.

数学ではルールがすべてではないですよね. 議論をする土台として, 公理などを持ち出して形式化していますが,それが数学全部ではないですよね. 極端な言い方をすると, 仕方なく(職業上の理由で?)形式化しているのではないでしょうか?

「群論なら,群の公理から出発して,見えてくる世界を探究している」と言われましたが, 群の公理だけがすべてで, それから出てくる世界のみを探求しているのですか? そうでであれば, 公理に書き表されていない神秘的な真理はないわけですよね.

[0199] 根上 はい. ルール上だけの数学は「矮小化された」数学です.

群論についての記述は, 「矮小化すると」というおまけ付きで捉えてください.

群論ならば群の公理を選定する段階があるわけですが, そのときにはまだ「ルールを決めて」が成り立つ以前の話なのだから, 論理だけではことが動きません. 幾何学や代数学などの要請もあるでしょうが, もっと前学問的な直観のようなものをたよりに動めいている期間があったと思います. これが歴史的な事実かどうかは, 私には断定できませんが,比喩として成立する話でしょう.

一般に, 数学者が直観する, もしくはあると信じている数理的原理や現象 (渡辺さんのいうように,記号では書けないかもしれないもの) をうまく表現したり, 解析したりできるようなルール(公理とか定義とかいってもよい)を選定する段階があります. (よく, 「数学は定義が大事だ」という先生がいますがそれには私も同感です. 研究者どうしで議論しているときは, 何も定義せずに議論していてそれなりの結論に至ることがよくあります. 次の段階として, その結論をうまく表現したり簡潔に証明するためには, どんな定義が必要かという議論になります.)

本当は, ルールを決めてからでも数学者は「数理的原理」を直観しながら仕事をしているのですが. その話をしだすと 拙著「第三の理」(参考文献参照) に書かれている三元論が必要になってきます. これはおいておきましょう.

[0190-2] 根上 数学でも物理でも真理に即してルールを作る段階があるのです. CSだって同じでしょ.どんなルールでもいいの?

物理学だったら, 本当の物理空間というのがあって(もしくはあると信じて), それを記述するのには, どういうルール(原理,法則など)を設定するのがよいかと考えるわけでしょう. つまり, 物理空間もしくは物理現象に思いを巡らす段階と, ルールを選定してモデル空間を作る段階があるわけです.

そうなってくると, CSだってどんなルールでもありというのは言い過ぎですよね. 何らかの意味で人間にとっての有意味であることが求められているのではありませんか?

単に「ルールを決めて」から始まるのではなくて, どういうルールにしようかなと思う段階があるはずです.

数学だったら, 「数理的原理」 vs 「数学という学問体系の中で述べられた定理」, 物理学だったら, 「本物の物理空間」 vs 「物理学が記述しているモデル空間」という対立構造 (と言っても仲が悪いわけではないですよ,どっちかというと仲がよい) があるわけです. CSにもそういう対立構造があるんじゃないでしょうか? 構造の欠如や「なんでもあり」を主張してきた渡辺さんの考えを察すると, 「対立構造などないのです, ルールを決めて世界を探究すること自体が目的化しているのです」と言うのでしょうか? 

[0191] 松井 CSではルールを決めて探究すること自体が 目的化しているのですか?

根上さんは, 「ルールがすべて書き表されている世界の探究を基礎科学と呼ぶというのにも同意してもいい」 と言われましたが, 私は,これに安易に同意するのは不安があります. 渡辺さんは,ここまで要求しているのですか?

そうなると対立構造などないような気もします. 私も聞きたい. 構造の欠如や「なんでもあり」を主張してきた渡辺さんは, 「対立構造などないのです, ルールを決めて世界を探究すること自体が目的化しているのです」と言われるのですか?

==> 1月の鼎談へと続く


鼎談の表紙へ, 鼎談のあらすじへ, キーフレーズから見た鼎談へ,