ディオファントス方程式は複素変換したとしても効率的なアルゴリズムを見つけることはできない

Decrypt history, Encrypt future™

ディオファントス方程式は複素変換したとしても効率的なアルゴリズムを見つけることはできない

整数のみを扱う方程式であるディオファントス方程式は効率的な解の探索汎用アルゴリズムがない。これはチューリングマシンと同義である。一方、複素方程式には効率的に解を再現するアルゴリズムがある。

ディオファントス方程式(整数係数多項式)であっても、実数、複素数の範囲で解が存在するかどうか、そしてその解が何であるかは、整数解を探すのに比べて一瞬で(機械的に)判定・計算できる。

1. 複素数に「代数学の基本定理」

整数の世界では、x^2 – 2 = 0 のような極めて単純な式ですら「整数解なし」となり、解があるかないかを予想するだけでも一苦労です。しかし、複素数の世界には「代数学の基本定理」という絶対的なルールがあります。

【代数学の基本定理】

どんなに複雑な多項式(1変数)であっても、n 次の方程式には、複素数の範囲に必ずちょうど n 個の解が存在する。

つまり、複素数の世界では「解があるかないか」を悩む必要すらありません。「絶対に、次数の数だけ解がある」と最初から分かっているからです。

2. 多変数の場合でも「タルスキのアルゴリズム」がある

変数がたくさんある複雑なディオファントス方程式(例えば x^3y^2 + z^5 – w = 0 など)の場合、1変数のように簡単にはいきませんが、それでも実数や複素数の範囲であれば「解があるかどうか」を確実に判定する一般解法(アルゴリズム)が存在します。これは1948年に数学者アルフレト・タルスキが証明したもので、現代では「QE(限量記号消去法)」という技術として、コンピュータに数式を入力すれば一瞬で(あるいは機械的な計算手順の通りに)解の存在を判定してくれます。

3. なぜ複素数(実数)だと一瞬なのか?

一言で言えば、複素数や実数の世界は「隙間なく繋がっている(連続している)」からです。

繋がっている世界では、以下のような「グラフの性質」を使ったアプローチが可能になります。

  • グラフを描いたとき、線がプラス(上)からマイナス(下)に移動したなら、「繋がっているんだから、途中で必ずゼロ(横軸)を横切っているはずだ」と言える(中間値の定理)。

この「滑らかさ」のおかげで、コンピュータは「手探り」をする必要がありません。解がありそうな方向に滑らかに数値を近づけていく「ニュートン法」などの超高速な計算アルゴリズム(近道)が使えるため、一瞬で超高精度の近似解(ほぼ本物の解)を叩き出せるのです。

解を探す範囲難易度・アルゴリズムの有無性質
複素数 / 実数一瞬(判定可能)連続しているため、微分やグラフの隙間を埋める「近道」が使える。
整数(ディオファントス)不可能(判定不能・チューリングマシンと同じ)飛び飛び(離散)のため、近道がなく、本質的に「手探り」しかできない。

「ディオファントス方程式であっても、複素数の世界に持ち込めば一瞬でカタがつく」ため、数学的証明では離散構造を連続構造に置き換えて計算するという証明形式が取られています。

複素数の範囲でも解が出ない多項式方程式はあるのか

「複素数の範囲でも解が出ない多項式方程式はあるのか?」という疑問に対する答えは、「(最高次の係数がゼロではない一般的な)多項式方程式である限り、解が出ないものは絶対に存在しない」となります。

「代数学の基本定理」が、例外を一切許さない前提だからです。

しかし、質問の視点を「多項式(足し算と掛け算)」から「数式全般(複素数を使ったすべての方程式)」へと一歩広げると、複素数の世界であっても、「絶対に解が出ない方程式」や「解があるかどうかすら判定できない方程式」は、実は存在します。

パターン1:多項式ではない方程式(超越方程式)

足し算・掛け算だけでなく、指数関数(e^x)や三角関数(sin x)などを混ぜた方程式を超越方程式と呼びます。これらを使うと、複素数の世界であっても簡単に「解が出ない方程式」を作ることができます。

最も有名な例がこれです。

$$e^z = 0$$

複素数 z をどんなに工夫して選んでも、オイラーの公式を駆使しても、e^z の値を完全に「0」にすることは絶対にできません。(限りなく0に近づけることはできますが、ぴったり0になる解は複素数の世界にも存在しません)。

パターン2:解の「近似値」すらまともに計算できない方程式

複素数の方程式に解がある(存在する)ことと、私たちがその解を「具体的に書き出せる(計算できる)こと」は別問題です。

例えば、5次以上の多項式方程式(x^5 – x – 1 = 0 など)には、複素数の解が絶対に5個存在しますが、それらを「ルート(根号)」などを使って一発で表す公式は存在しないことが証明されています(アーベル・ルフィニの定理)。

「公式がなくても、ニュートン法などのコンピュータの計算(近似)で一瞬で出るのでは?」と思われるかもしれませんが、式の中にさらに「複素数の正弦関数(sin z)」などが複雑に絡み合ってくると、コンピュータが解の探索中に迷子になり、実質的に「計算が終わらない(解が出せない)」という現象が起きます。

パターン3:複素数におけるsin(πz)の代入

「実数や複素数の多項式なら一瞬で判定できる(タルスキのアルゴリズム)」が、そこに「 sin(πz) 」という関数を1つ放り込むだけで、複素数は一瞬にして「整数の世界(離散)」の非効率性へと引きずり下ろされます。

複素数の世界において sin(πz) = 0 になるのは、z が「整数」のときだけだからです。

これを利用すると、複素数の超越方程式の中に「整数の問題(ディオファントス方程式)」を埋め込む(模倣する)ことができてしまいます(リチャード・リプトンの研究)。

つまり、

  1. チューリングマシンを「ディオファントス方程式(整数)」に翻訳する(DPRM定理)。
  2. そのディオファントス方程式の変数 x を、複素数の方程式の中に「 x + sin(πz) = 0 」のような形で組み込む。

こうして作られた複素数の方程式は、見た目は滑らかな複素数の世界にありながら、その中身はチューリングマシンの停止性問題そのものになります。結果として、「この複素数方程式に解があるかどうかは、実際にやってみるまで神様にも分からない(判定不可能)」という怪物が、複素数の世界にも誕生してしまうのです。

  • 純粋な多項式(普通のディオファントス方程式の舞台を複素数に変えただけ)なら: 100%絶対に解があり、一瞬で判定できます。
  • 一歩はみ出して「指数・三角関数」などを許すと: 複素数の世界であっても「絶対に解がない式」が作れますし、最悪の場合、またしても「チューリングマシンの無限ループの呪い(やってみないと分からない)」が復活することになります。

複素数の世界で効率的に見つけた解を、最後に sin(πz) のフィルターに通して整数化するというアプローチを取るのはどうかという経緯を数学者は通っている。チューリングマシンの罠(無限ループ)を回避して、複素数のパワーで計算を効率化できないか?しかしこれは効率化できないという解答になります。

1. なぜ「複素数で効率的に解を見つける」が失敗するのか?

「まず 滑らかな複素数の世界で効率的に解を探す」

純粋な多項式(普通の複素方程式)なら、解の方向へ滑らかに近づいていく効率的なアルゴリズム(ニュートン法など)が使えます。

滑らかな世界で効率的に解を探すアルゴリズム(ニュートン法など)は、「傾き(微分)を見て、坂を下った先にゼロがある」という前提で動いています。しかし、無限に波打つグラフ(sin(πz))では、コンピュータは一歩進むたびに上り坂と下り坂が激しく入れ替わり、「どっちに行けば本当の解があるのか」が分からなく(無限ループ)なります。

2. sinを後から代入するのはどうか?

では、式を分けて考えてみましょう。

  1. まず、整数縛りのない普通の複素方程式 P(z) = 0 を解く(これは一瞬で解けます)。
  2. 出てきた複素数の解 z を、最後に sin(π z) = 0 に代入して、整数になっているか(=条件を満たすか)チェックする。

これなら「効率的に見つけた解に最後に代入する」というアイデアになります。しかし、ここで次元の壁が立ちはだかります。

実数は1次元の線、複素数は2次元の平面

普通の複素方程式 P(z) = 0 を解くと、出てくる解は複素数平面のあちこちに飛び散った「点」(または滑らかな「曲線」)になります。この、偶然見つかった複素数の点や曲線が、「ぴったり綺麗に整数の格子点(1, 2, 3…)の上に載っている確率」は、実質的にゼロです。つまり、普通に複素数の解を探すと、100%「整数ではない複素数(例えば 1.43 + 2.5i など)」ばかりが見つかります。それを最後に sin に入れても「整数じゃないからダメ」となるだけで、肝心の「整数限定の解」には永遠にたどり着けません。

整数は整数系の内部でしか探索することができない

  • 一気に解こうとすると、sin の無限の波のせいで複素数の高速アルゴリズムが破壊される。
  • 分けて解こうとすると、複素数の広い海で適当に見つけた解は、決して整数の島(目的の解)にヒットしない。

結局、整数(デジタル)の条件を含んだ問題を解くためには、複素数というアナログの強力な乗り物を使ってもなお、「地道に1つずつ整数を代入して手探りで探す(チューリングマシンを走らせる)」という泥臭い方法に戻らざるを得ないのです。

「複素数で効率的に見つけたものを、最後に型にハメればいいのでは?」というアイデアは、数学者が「これで行けるか」と夢見た究極のショートカットでしたが、やはりチューリングマシンの壁は限界であったということになります。

整数解は、整数の世界で、泥臭く手探りで探すしかない。近道はない。