読者です 読者をやめる 読者になる 読者になる

tsujimotterのノートブック

日曜数学者 tsujimotter の「趣味で数学」実践ノート

IT技術が数学に与えた影響についてまとめてみた

本ブログは「日曜数学者の数学ノート」と銘打っているように、数学の記事ばかり並んでいます。しかしながら、ブログを書いている tsujimotter の本職は、実は情報系の研究者だったりします。

情報系にいる身としては、単に数学を趣味として楽しむだけでなく、自らのスキル(すなわち IT 技術)をもっと数学の世界への貢献に使えないものか、と考えてしまいます。ちょうど先日、同じく情報系の仕事をしつつ趣味で数学をしている id:taketo1024 さんと、この話題で盛り上がったところでした。

このような視点で眺めてみると「IT技術が数学研究に影響を与えた」という事例がいくつもあるように思えてきました。そういうわけで、今回の記事では、IT技術と数学の関わりについて、tsujimotter の知っている事例を備忘録的にまとめてみようと思います。

もちろん、このほかにも tsujimotter の知らない事例があるかもしれませんし、分類の仕方も適当ではないかもしれません。不勉強のため、完全なまとめにはほど遠いかもしれません。もし、何かご意見・アドバイスがあれば、ぜひコメント欄にて補完いただけると幸いです。

それではいきましょう。

可視化

数学の理論は、高度なものになるほど、具体的な計算からは遠い抽象的なものになっていきます。しかしながら、抽象的な式変形ばかりだと、自分の理論が正しい方向に進んでいるか分からない、そんなときもあるかと思います。たまには、具体的な値を計算して、それを表示してみたくなりますよね。グラフや図で簡単に表現できるとなおよいでしょう。それが可視化(Visualization)です。可視化の方法としては、いろいろあるかと思いますが、一番手っ取り早いのはグラフとして描画する事です。

オープンソースのグラフ描画ソフトとしては gnuplot が有名です。数学科の学生に限らず、卒論でお世話になった理系の人は多いのではないでしょうか。また Mac OS には Grapher と呼ばれるアプリケーションが、プリセットで入っているようですね。

お金がある人や大学で研究をしている人は、 Mathematica を使っているかもしれません。上に挙げたフリーのグラフ描画ソフトとの違いは、使用できる数式や関数の量が豊富なことだと思います。たとえば、「解析接続されたゼータ関数」のグラフを書こうと思うと、上の2つではなかなか大変ですが、Mathematica ならコマンド一発で書くことが出来るでしょう。

そういえば、最近 tsujimotter が書いたこのブラウザアプリも、可視化の1つの例といえますね。

リーマンの素数公式の可視化アプリがパワーアップしました - tsujimotterのノートブック


コンピュータによる可視化が数学に影響を与えた面白い例として、「カオス理論」の発見が挙げられます。

エドワード・ローレンツという数学者は、とある微分方程式を解くプログラムを書いて、それをグラフとして描画しようとしていました。何の変哲もない計算と思っていたローレンツですが、ここで思わぬことが起こります。ほぼ同じ初期条件で2回の計算を行ったのですが、描かれたグラフがまったく違うものになったのです。あとになって、2つの初期条件がごくわずかに違うために起こった現象であることが分かりました。これは今日では「バタフライ効果」と呼ばれる現象ですが、カオス理論においては、初期値がわずかに異なるだけで、まったく結果が異なることがありえるのです。ローレンツの計算は、そのバタフライ効果の例を、きわめて明確に示したものでした。

コンピュータによる可視化が数学を進展させた、1つの例といってよいでしょう。

数え上げ・数式処理

近年では、特に群論においては「有限ではあるものの、とてつもなく大きな集合」の大きさを数え挙げることが必要になってきています。モンスター群の位数の問題がその代表例でしょう。ほかにも「ある群の正規部分群を探す作業」は、組み合わせが膨大なために、手計算ではなかなか困難です。ということで、数え上げる作業を自動化させてコンピュータに任せよう、という発想がでてきます。

具体的には、たとえば GAP (Groups, Algorithms and Programming) という群論用の数式処理システムがあります。これによって、任意の群の部分群を列挙したり、位数を求めたりと、群にまつわる計算を自在に行うことが出来ます。

GAP のウェブサイトはこちら:
GAP System for Computational Discrete Algebra

Wikipedia による解説はこちら:
GAP (数式処理システム) - Wikipedia


数式処理システムの中には、複雑な式の変形をやってくれるものもあります。代入計算や、難しい積分、和の計算を人間に変わって求めてくれるのです。私が購読している以下のブログでは、Maxima を使った式変形について、たくさんの例を使って紹介してくれています。

Maxima で綴る数学の旅

定理証明

「4色問題」や「ケプラー予想」といった長年の未解決問題がコンピュータを使って解決されました。人間の力では証明できなかった予想がコンピュータによって証明された、と話題になりましたね。これがコンピュータを使った定理証明です。

といっても、よく SF 等で言われるような「コンピュータが人間の知性を超えた」とかそういう類いの話ではありません。完全に自動で定理を証明できるというわけではなくて、論理の見通しを立てるところまでは人間がやる必要があります。可能性を有限に絞り込めたけど、全部確かめることは困難。でも機械的に調べられそう。というところまで出来てしまえば、あとはコンピュータを使って調べ上げられるでしょう、ということです。コンピュータは強い武器にはなったけど、まだまだ人間に取って代わるものではありません。

ケプラー予想についてはこの本がいいと聞きましたのでリンクを貼っておきます。tsujimotter はさっき注文しました。

ケプラー予想: 四百年の難問が解けるまで (新潮文庫―Science&History Collection)

ケプラー予想: 四百年の難問が解けるまで (新潮文庫―Science&History Collection)

Polymath

これまでの話はある程度想像できるコンピュータの活用法ですよね。以下の話はなかなか思いもよらない活用法で面白いです。

Polymath というプロジェクトがあります。これが何かというと、数学者がたくさん集まって1つの難問を解くようなプロジェクトです。旗揚げ役の人を中心にコミュニティを作り、そこに参加メンバーの結果を集約していくことで問題を共同で解いていくのです。得られた成果は、Polymath の名前で論文投稿されます。
メンバー集まる場所は、現実の場所ではなく、インターネット上というのが新しいです。たとえば、wikiを使ってそれぞれの成果をまとめていったり、ブログ上でアイデアを共有したり、コメントでディスカッションしたりする訳です。

実際に、Polymath によって「双子素数予想」における重要な成果が得られたことは、以下の記事でも紹介したばかりですね。

素数のスモールギャップについての研究がさらに進んでいたらしい - tsujimotterのノートブック

インターネットの開発者は、インターネットがまさかこんな使われ方をするとは思いもしなかったことでしょう。

プレプリントサイト

もう1つ、研究の成果発表に関して、最近面白い傾向があります。

普通、数学の成果を公表する際には、論文という形式をとります。論文は一般に、「査読」によって正しさが保証されるわけですが、この査読には時間がかかります。長いときは2年、短くても数ヶ月はかかることが多いです。最近では、この査読中の論文原稿を「プレプリントサイト」に投稿することが増えてきています。こうすることで、いち早く自分の成果を世界に発信できるのです。もちろん、見る側はちゃんと正しいかどうか自身の目で判断する必要がありますが。

プレプリントサイトには、arXiv という有名なサイトがあり、数多くの論文が投稿されています。良い例か悪い例かわかりませんが、「ポアンカレ予想」に関するグレゴリー・ペレルマンの論文も、 arXiv に投稿されました。何が悪いかというと、この論文、論文誌にいっさい投稿されていないのです。だから内容の真偽を確かめる人がいない。もちろん、ペレルマンの論文は例外で、その価値が明らかだったので、関係する数学者が自主的に査読を行ったわけですが。

プレプリントサイトの登場によって、研究の成果発表のあり方が見直されるようになってきています。

arXiv のサイトはこちら:
arXiv.org e-Print archive

分散コンピューティング

計算器によってですらとてつもなく時間のかかる計算を短時間で終わらせる、あるいは、より高い精度(大きな桁)での計算を実現する。こうした目的で、多数のコンピュータによって並列計算を行うプロジェクトが進んでいます。

単にコンピュータを一箇所に買い集めるだけでなく、世界中のコンピュータに計算を依頼して、空き時間を使って計算してもらうような手法も登場しました。これが分散コンピューティングです。

有名なものとしては、GIMPS (Great Internet Mersenne Prime Search) というプロジェクトがあります。これは、メルセンヌ素数という  2^p -1 の形をした素数を探索するプロジェクトです。メルセンヌ素数は、比較的高速に大きな値となり、なおかつ素数判定が容易であることから、巨大な素数を作るのに効率が良いのです。この GIMPS の成果として、2013年には以下のような「世界最大の素数」が発見されています。

 2^{57,885,161}-1

桁数は実に1,700万桁を超えるそうです。めまいがしそうですね。このような巨大な素数は、現代では暗号に使われていたりしますから、工学的にも重要なのだそうです。

GIMPS には誰でも参加できます。以下のサイトでソフトウェアをダウンロードすればよいのです。tsujimotter のPCにも入っています。

Great Internet Mersenne Prime Search - PrimeNet

まとめ

今回は、情報系の研究者でありながら日曜数学者をしている tsujimotter の立ち位置を考えるために、IT技術と数学の関わりについてまとめてみました。まとめてみると、情報技術と数学研究の間には、思った以上にたくさんの接点があるものですね。

とはいえ、現在 tsujimotter がすぐに取り掛かれそうなことがこの中にあるかというと、まだまだ微妙かなとも思います。残念ながら、今のところ GIMPS のソフトウェアをダウンロードすることぐらいしか思いつきません。強いて言えば可視化が可能性がありそう。

今後もこうした事例を調べつつ、情報系ならではの視点で数学に貢献できる道を模索していこうかと思います。

アイデアがありましたらぜひコメントいただけると嬉しいです。それでは。

宣伝

今回の話にちょっと関係しそうなので、宣伝します。「プログラミング x 数学」をテーマにした勉強会が、冒頭で登場した id:taketo1024 さんの主催で開催されます。tsujimotter は「整数論の美味しいところのご紹介」というテーマで発表する予定です。ご興味ある方いらっしゃいましたら、ぜひご参加くださいませ。

参加者の募集は 1/16 (金) 9:00 からだそうですが、枠が埋まり次第、募集が締め切られるそうなので、参加したい方はお早めに登録を。


「第1回 プログラマのための数学勉強会」開催します! 1/30(金) - 佐野岳人の数学サブレ