数学:計算機・証明・P対NP

数学というと、チョークボードや記号、そして洗練された人間の思考の世界を思い浮かべがちです。ところが、近代数学のもっとも印象的な成果のいくつかは、コンピュータの助けによって、長年のあいだ従来の方法では太刀打ちできなかった問題を突破したところにあります。整数やグラフ、有限個の配置といった「数えられるもの」を扱う離散数学の領域では、とくに人間のアイデアと機械計算の協働が重要になってきました。

その代表的な例が、四色問題と最密球充填です。そしてそれらと並んで、数学と計算機科学の最大級の未解決問題のひとつである P と NP の問題が存在します。これらを眺めると、離散数学がいかに現代テクノロジーの中心に近い場所にあるかが見えてきます。

離散数学は、個々に区別できて数えられる数学的対象を研究します。もっとも単純な例は整数全体の集合です。扱う対象が連続的ではなく「バラバラの単位」で現れるため、微分積分や解析学の道具は、通常の形では直接には使えません。

この分野には、組合せ論、グラフ理論、符号理論、離散幾何、離散確率分布、ゲーム理論、離散最適化といったテーマが含まれます。また、問題を解くための手続きであるアルゴリズムや、その手続きにどれくらいの時間やメモリが必要かを調べる計算量理論とも深く結びついています。

このつながりこそが、離散数学が計算機分野でとりわけ重要視される理由のひとつです。理論計算機科学は本質的に数学的な分野であり、暗号、符号理論、グラフ理論、複雑さ理論などは、いずれも離散的なアイデアに大きく依拠しています。

コンピュータが定理証明を手伝い始めたとき

最大級の未解決問題

定理とは、演繹的な推論によって真であることが証明された数学的な主張です。伝統的には、証明といえば人間が書いた、慎重に連ねられた論理的議論を指してきました。ところが 20 世紀には、コンピュータの助けが不可欠なかたちで、いくつかの大問題が解決されました。

もっとも有名なのが四色定理です。これは「どんな地図でも、隣り合う領域が同じ色にならないように色を塗るとき、4 色あれば必ず足りる」という主張です。離散数学における主要問題のひとつとして長く知られ、20 世紀後半に解決された代表例となりました。

もうひとつの大きな例が、最密球充填です。球の充填問題は、同じ大きさの球を、空間をできるだけすき間なく埋めるように配置するにはどうすればよいか、という問いです。これもまた、20 世紀後半に解かれた離散数学の主要問題のひとつとして挙げられました。

これらの成果が重要なのは、難問だったからというだけではありません。コンピュータが数学の証明に本格的な役割を果たしうることを実例で示したからです。コンピュータ支援証明の登場は、厳密さや検証のあり方、そして人手によるチェックの現実的な限界について、人々の考え方を変えていきました。

なぜコンピュータ支援証明は「革命的」に感じられたのか

なぜ離散数学がテクノロジーを席巻するのか

数学的推論には厳密さが要求されます。定義はあいまいさがあってはならず、証明は正しい推論の鎖に還元できなければなりません。原理的には、これはコンピュータにうってつけの仕事にも思えます。機械は疲れることなく膨大な場合分けをチェックでき、形式化されたルールに正確に従えるからです。

しかし、その強みは同時に哲学的・実務的な疑問も呼び起こしました。もし証明が、人間には通常の意味では一行一行確認できないような巨大計算に依存しているとしたら、その証明は従来型の証明と同じように感じられるのでしょうか。数学の世界では、証明は正しいか誤っているかのどちらかですが、現実には「証明が受け入れられるかどうか」は、他の数学者がその内容を吟味し、信頼できると判断できるかにも左右されます。

コンピュータ支援証明の登場は、この問題を避けて通れないものにしました。同時に、形式検証、証明支援系、プログラム解析といった後の分野を切り開くきっかけにもなりました。これらの分野では、論理と計算を駆使して、極めて慎重に正しさをチェックします。

四色定理とそこから見えてくるもの

コンピュータが定理を証明したとき

四色定理の主張自体は、拍子抜けするほど単純です。専門的な訓練がなくても理解しやすいことが、この定理を有名にした理由のひとつでもあります。地図をいくつかの領域に分けて描き、隣り合う領域が同じ色にならないように塗り分けたいと考えます。このとき、4 色あれば必ず塗り分けられる、というのが定理の内容です。

この種の問題は、自然にグラフ理論の枠組みで扱われます。グラフ理論は、点とそれらを結ぶ線からなるネットワークを研究する離散数学の一分野です。地図塗りの問題は、領域を頂点、境界を辺とするグラフの問題へと翻訳できます。

この翻訳が示しているのは、離散数学の大きな力のひとつです。見た目にはパズルのような図形の問題を、体系的に解析できる抽象構造に置き換えられるのです。そしてそれは、なぜグラフがテクノロジーの世界でこれほど重要なのかも物語っています。計算や通信にはいたるところにネットワークが現れ、グラフにもとづく考え方は、現代数学でもっとも役に立つ発想法のひとつになっています。

球の充填:幾何学と計算の出会い

球の充填と聞くと幾何学的な話のように感じられますし、実際その通りです。しかし同時に、有限個の配置を扱う離散幾何を通じて、これは離散数学にもしっかり属しています。

問題は、同じ大きさの球で空間をどれだけ高い密度で埋められるか、というものです。一見すると荷物の積み上げ方の実用的な問題のようですが、数学的には配置や構造、そして最適化に関する深い問いになります。ここでいう最適化とは、与えられた制約のもとで「いちばん良い選択」を見つけることです。この場合の目標は、密度が最大になる配置です。

最密球充填が、20 世紀後半に解かれた離散数学の主要問題のひとつとされた事実は、重要なテーマを際立たせています。つまり、見た目には純粋に幾何学的な問題であっても、計算量の観点からはコンピュータの力を要するほど困難になりうる、ということです。

未解決の巨人:P と NP の問題

四色定理と球の充填が「有名な成功例」だとすれば、P と NP の問題は、いまだそびえ立つ大山のような存在です。

この問題はいまだ解決されておらず、離散数学にとって重要だと考えられています。その意義は、この問題が解かれたとき、多数の計算困難な問題に影響を与える可能性がある、という点にあります。

ごく平易に言えば、「問題を解くこと」と「出された解答をチェックすること」のあいだのギャップを問う問題です。なかには、候補となる解が与えられれば、それが正しいかどうかをすばやく検証できる問題があります。謎なのは、そのような「検証が速い」すべての問題が、「解くのも速い」問題でもあるのかどうか、という点です。

計算の世界には、「解を見つける」よりも「解を確かめる」ほうが容易に見える問題が無数に存在します。そのため、P と NP の問題が解決されれば、数学者や計算機科学者が「難しさ」そのものをどう理解するかが、大きく変わる可能性があります。

「計算量」とは何を意味するのか

計算量理論は、あるアルゴリズムが必要とする資源、とくに時間と記憶容量を研究する分野です。アルゴリズムとは、計算を実行したり問題を解いたりするための、厳密に定められた手続きです。

あるアルゴリズムは、現実のコンピュータ上でも十分に高速で実用的ですが、別のアルゴリズムは、入力の大きさが増えるにつれて要求資源が爆発し、とても使いものにならなくなります。計算量理論は、このような挙動を分類し、どのタイプの問題が本質的に難しいのかを理解しようとします。

だからこそ、P と NP の問題は純粋理論を超えて重要なのです。それは、「効率よくできること」と「どれだけ工夫しても高コストなままかもしれないこと」の境界線上に位置しています。

なぜ離散数学はテクノロジーで主役なのか

離散数学がテクノロジーの中心にあるのは、デジタルシステムが、ビットや記号、状態、ノード、有限回のステップといった「数えられる部品」から構成されているからです。この記事で挙げられた離散数学の話題は、そのまま現代コンピューティングの地図のようにも見えます。

符号理論は、情報を確実に送信・保存できるように表現する方法を研究し、誤り訂正符号や暗号の一部も含みます。グラフ理論は、つながりのあるシステムや関係を記述するのに役立ちます。離散最適化や組合せ最適化は、数多くの候補の中から最良の配置を選び出すことに焦点を当てます。制約プログラミングは、たくさんの条件を同時に満たす方法を研究します。ゲーム理論は、ルールの定まった場面での戦略的な選択を扱い、多くの身近なゲームは離散的な構造を持っています。

そして、その中心にあるのがアルゴリズムです。アルゴリズムは実際のコンピュータ上で動かなければならないので、計算量理論を避けて通ることはできません。問題が「理論上は解ける」だけでは足りず、「現実的な時間とメモリで解けるかどうか」が問われるのです。

20 世紀以降の数学・コンピュータ・証明

数学とコンピューティングの関係は、ますます密接になってきました。数学的論理はさらに発展し、コンパイラ設計、形式検証、プログラム解析、証明支援系などへと応用されました。人間が手計算では扱いきれない巨大な数値問題を対象とする計算数学も成長しました。

とはいえ、数学が「ボタンを押すだけ」の作業になったわけではありません。むしろ機械の助けを借りる時代であっても、肝心なのは人間の創造性です。どんな定義を採用するか、どんな構造を築くか、どんな戦略を立てるかといった部分は、人間の役割のままです。コンピュータは数学の射程を広げてはくれますが、洞察の必要性をなくしてはくれません。

変わったのは、チェックしたり探索したり、時には証明したりできる規模です。だからこそ、コンピュータ支援証明は時代の節目の出来事として受け止められました。厳密な推論が依然として標準であり続ける一方で、その推論を支える道具立てが劇的に拡張された、新たな段階を告げる出来事だったのです。

単純な問いが驚くほど深くなる世界

離散数学のもっとも魅力的な点のひとつは、「言葉にするのは簡単なのに、決着をつけるのは途方もなく難しい」問いがしばしば現れるところです。「どんな地図も 4 色で塗れるか?」「同じ大きさの球は、どれくらい高い密度で詰め込めるか?」「すばやく検証できる問題は、すべてすばやく解くこともできるのか?」

これらの問いは、どこか遊び心すら感じさせます。しかし実際には、証明の基礎、アルゴリズムの限界、そして計算という行為の構造そのものに深く関わっています。

そこに数学特有の魅力があります。ごく単純な言葉で述べられた命題が、まったく新しい世界への入口になりうるのです。そして離散数学の場合、その世界は知的に豊かなだけでなく、現代社会を取り巻くテクノロジーの形をも左右しています。

定理チェッカーよりも難解なパズルに挑戦しよう——DeepSwipe をダウンロードして、毎日スワイプしながら知識を深めてみませんか。