コンピュータと数学はどういう関係にあるのだろう?

理学部・コンピュータ科学科 小林 聡教授

 「数学」と「コンピュータ」。この両者は、ほとんど同じ世界に属するように思われていますが、その間にはかなりの隔たりがあることも事実です。しかし、具体的に説明するとなると、そう簡単ではありません。両者はどのような点で同じで、どのような点で異なっているのか?
 「数学とコンピュータ・サイエンスの境界領域」で、研究を続けられている小林 聡先生に伺ってみました。

数学の証明とコンピュータのプログラムの関係は?

 多くの場合、数学の証明のプロセスをじっくり検討すれば、コンピュータ・プログラムを作るための処理手順(アルゴリズム)は見えてきます。いいかえれば数学の論法は、ほとんどコンピュータ・プログラムの形に翻訳することができるということです。
 しかし例外もあります。「解が存在しないとすると矛盾する、従って解は存在する」という形の論法がそうで、一種の背理法です。この場合「解は間違いなくある」ことは証明できますが、実際に解を求めるプログラムを示すことはできません。いってみれば、「人間には求め方がわからなくても、神は知っている」ということなのです。このような論法では、とてもコンピュータでプログラム化することはできませんし、いささか非人間的なところのある論法だと思われます。
 幸いにして、このような非人間的な論法は、数学の論理のごく一部に過ぎないことがわかっていますが、そうした論法を除外してできる「より人間臭い論理」がどのようなものであるか、自然と興味が沸いてきます。こうした論理は構成的論理と呼ばれ、私の研究テーマの一つです。
 数学では「解があるかないか」だけを問題にすることも多いのですが、コンピュータの世界では「具体的にどうやって解を計算するか?」が常に問われています。そのため、コンピュータのための論理は、数学のための論理よりももっと現実的、あるいは人間的なものでなければならないのです。構成的論理を用いた証明は、自動的にプログラムに翻訳できるので、正しいプログラムを系統的に作り出す技術への応用も盛んに研究されています。

現代数学とプログラム

 一方、コンピュータ・プログラムの中には、数学の証明から翻訳する形では作ることが困難なものがあります。周囲の状況の変化に応じて動作するプログラムや、プログラム自身の動作が周囲の状況を変えてしまうようなプログラムがそうです。そもそも、数学の世界では「状況の変化」といった事はあまり考えません。ある時までx=0であったのが、突然状況が変わってx=1になってしまう、といったことはありません。数学では条件の真偽は不変です。
 ところが、私たちが生きている現実の世界というのは、条件が次々と変わっていく世界です。例として「外が暗くなったら自動的に部屋の明かりをつける」というプログラムを考えます。「外が暗い」という条件は夜と昼とで真偽が変わりますから、これは状況の変化に応じて動作するプログラムです。そして、プログラムの動作によって部屋の明かりがつくと、「部屋が暗い」 いう条件は真から偽に変わります。つまり、プログラムが周囲の状況を変化させたのです。このようなプログラムは、通常の数学の証明を翻訳することでは作り出せません。
 それでは、こうしたコンピュータ・プログラムに対応できる新しい数学や新しい論理は作れないでしょうか。すこし難しいですが、あえて紹介すれば「様相論理」と呼ばれるものをあげることができます。「様相論理」というのは、計算の過程で真偽が変わったり、不明だった真偽が明白になったりする状況を取り扱う論理です。簡単に言ってしまえば「変化を扱う論理」であって、通常の数学の論理とは全く考え方が異なるものです。このような論理を用いれば、コンピュータ・プログラムと数理論理との対応関係を明らかにすることができるのです。
 最近、私が興味を持っているのは、「通信」のプログラムです。通信によって情報が伝わると、自分の知らなかったデータを知ることができますから、「知識の変化」という形で「状況の変化」が起こります。これも従来の数学では扱いづらいものです。しかし、研究が進んで通信のプログラムと論理との関係が明らかになれば、インターネットで使われているようなプログラムも、現代論理を使って分析できるようになるでしょう。論理的欠陥を取り除いて、よりセキュリティーの高いプログラムを開発することにも役立つことでしょう。
 もちろん、これは一つの例に過ぎません。私が最終的な目標にしているのは、現代数学を使ってありとあらゆるプログラムを数理論理的に表現することです。

“情報”とは何だろう?

 ところで、プログラムの研究を突き詰めていくと、“情報とは?”という問いに行き着きます。“情報”という言葉は、今の世の中では当たり前のようにたくさんの人によって使われていますが、いざこれを定義するとなると実はとても難しいことに気がつきます。私は自分なりに、情報とは「それを得ることで何か新しいコトを実現できたり、わかったりする知識」だと考えています。情報は神ではなく人間に属するものです。すべてを知っている神様には、そもそも“情報”などというものは存在しません。知らないこと、わからないことのある人間にこそ、“情報”となりうるものがある、と私は考えるのです。

 コンピュータと数学の境界領域での探求を続けるということは、ある意味では限りなく深く人間の本質に迫っていくことなのかもしれません。

大学では「数学」を論理的に考える楽しさを味わってください

「数理論理学」は「計算機」の数学的概念の構築に大きく貢献

 「数理論理学」とは、「数学」のさまざまな分野の研究を進めるための根幹にある分野で、実は中学校や高等学校の「数学」でも一部は取り扱われています。中学生や高校生にはこの分野を苦手に思う人が多いようですが、大学で学ぶとこのイメージは一掃されてしまいます。大学で学ぶ「数学」の大部分は、中学・高校での「数学」より論理的ですから、論理的に考え、論理的に証明することに自然に慣れてしまうのです。
 「数理論理学」にはコンピュータと大きく関わる分野があります。というか、元々「計算機」の数学的概念を考え出し、研究対象にしていた分野があったということです。コンピュータは「プログラム」で動きます。プログラムは機械への命令であり、機械はプログラムの指示通りのことをします。当然、「プログラム」には正しい論理が必要となります。
 コンピュータの「プログラム」について研究する分野のある「数理論理学」には、コンピュータの世界からの高い関心が寄せられています。

コンピュータの進化を支える人材が求められる

 かつて「数学」を学んだ人が、研究者や教員以外でその専攻を生かした仕事を探すのは大変でした。しかし、昨今では数学の応用性がかなり注目され、新しい分野が広がっています。コンピュータと密接な関係にある「数理論理学」などは、ソフトウェアの開発などに欠かせないということから、世界が注目する研究の一つになっています。
 この50年間のコンピュータの進化は驚くべきものですが、さらに今後の50年には、これまでからは想像もできないほどの進化が予想されます。「数理論理学」がその一翼を担う分野の一つになることは間違いないでしょう。

理学部・コンピュータ科学科 小林 聡教授

プロフィール

 高校時代には数学研究同好会、文芸サークル、ロックバンドに同時に所属するなど、昔から興味の範囲は広く、趣味も多彩でした。とくにキーボードの演奏では、3つのロックバンドをかけもちしていたぐらいです。
 私の研究テーマは、数学における「証明」とコンピュータの「プログラム」という二つのプロセスの対応関係を明らかにしていくことです。学生に望むのは、どんな職場に就いてもコンピュータの有効利用を推進できる人材であって欲しいということです。

 理学部コンピュータ科学科教授。理論計算機科学と数理論理学的手法によるソフトウェア基礎理論の研究。

PAGE TOP