三億個還不夠!黎曼函數的非平凡零點是怎麼算的?多少個才是頭?

三億個零點擺平了 Zagier, 但顯然遠不是對 Riemann ζ 函數非平凡零點進行計算的終點。 不過在介紹進一步的進展之前, 我們先要對零點計算做一點補充說明。

當我們說到零點計算的時候, 一般人會很自然地認為所謂零點計算, 顧名思義就是計算零點的數值。 不知讀者在閱讀 上一節 時有沒有想過這樣一個問題: 那就是三億個零點, 即使每個只保留十位有效數字, 寫下來也有三十億個數字 (如果加上小數點、 等號及零點編號等, 則數字差不多還要翻上一番)。 這許多數字以每頁三千個數字而論, 起碼也要一百萬頁紙才能記錄下來!

三億個還不夠!黎曼函數的非平凡零點是怎麼算的?多少個才是頭?

當然, 大規模的零點計算既然是用計算機進行的, 計算結果不是非得記錄在紙上不可的。 但三十億個數字所需佔據的存儲空間差不多是 3GB, 這在今天雖然算不了什麼, 在 1982 年卻是非同小可的數量, 用任何方式來記錄都並不容易。 以計算機硬盤為例, 當時容量為幾個 MB 的就算是很大的硬盤了, 價格十分昂貴。 而要想記錄三億個零點, 起碼需要上千個那樣的硬盤! 那得花多少錢? 若果真如此, Zagier 豈不還大大低估了他那兩瓶葡萄酒的價值?

其實, 狡猾的 te Riele 根本就沒有計算那三億個零點的具體數值。 事實上, 除了最初那些小範圍的計算外, 我們前面介紹的大規模零點計算基本上都並不給出零點的具體數值, 而只是驗證它們是否在臨界線上。 因此, 當人們說 “計算了前 N 個零點” 時, 實際上指的往往只是驗證了前 N 個零點是否位於臨界線上。

三億個還不夠!黎曼函數的非平凡零點是怎麼算的?多少個才是頭?

但是不計算零點的數值, 又如何能判斷零點是否在臨界線上呢? 答案其實很簡單。 我們在 第十一節 中曾經介紹過, 要研究 Riemann ζ 函數在臨界線上的零點, 只需研究 Z(t) 的符號改變即可。 假如在區間 0至少有 N 個零點。 另一方面, 我們雖不確定是否所有零點都在臨界線上, 卻知道它們全部位於臨界帶 0零點總數 (最早的方法是由 Riemann 本人給出的, 即對 dξ(s)/2πiξ(s) 沿矩形區域 {0

  1. 在臨界帶內位於區間 0
  2. 在臨界線上位於區間 0

就可以推知 Riemann ζ 函數的前 N 個零點全部位於臨界線上。 由於這兩者的證明都不必涉及零點的具體數值。 因此我們可以不計算零點數值就直接證明 Riemann ζ 函數的前 N 個零點 (或更一般地, 複平面上某個區域內所有的非平凡零點) 都位於臨界線上, 這正是大多數零點計算所採用的方法。

對 Riemann ζ 函數零點的計算越推進 (即 N 越大), 我們在複平面上沿虛軸方向就延伸得越高 (即 T 越大)。 隨著計算機的運算速度越來越快、 運算成本越來越低, te Riele 的三億個零點的記錄很快就失守了。 四年後, 由他本人及 J. van de Lune 領銜將計算推進到了十五億個零點。

三億個還不夠!黎曼函數的非平凡零點是怎麼算的?多少個才是頭?

此後 van de Lune 及其他一些人繼續進行著零點計算。 不過這時已很少有人像當年的 Turing 那樣覺得有可能通過零點計算直接找到 Riemann 猜想的反例, 也再沒有像 Zagier 那樣敢於下注的 “勇士” 了。 人們在計算零點上的興趣和投入遂大為下降。 這其中一個顯著的變化就是逐漸用廉價的小型或微型計算機取代以往的大型計算機, 且往往使用機器的閒散時間而非正規工作時間來進行零點計算。 但儘管如此, 計算機技術的神速發展還是抵消了所有這些因素帶來的不利影響。 零點計算仍在推進著, 只是推進的速度變得緩慢起來。 這種趨勢一直延續到了二十世紀末 (2000 年)。

但是到了二十一世紀伊始的 2001 年 8 月, 情況有了新的變化。 德國 Böblingen IBM 實驗室的研究者 Sebastian Wedeniwski 啟動了一個被稱為 ZetaGrid 的計劃, 建立了遠勝於往昔的強有力的 Riemann ζ 函數非平凡零點計算系統, 重新將零點計算推向了快車道。

三億個還不夠!黎曼函數的非平凡零點是怎麼算的?多少個才是頭?

(Sebastian Wedeniwski 。圖片來自網絡)

ZetaGrid 系統將零點計算通過計算機網絡分散到了大量的計算機上, 從而極大地拓展了資源利用面。 這種將計算工作通過網絡分散到大量計算機上的計算被稱為分佈式計算(distributed computing)。 ZetaGrid 剛啟動的時候, 加入系統的計算機只有 10 臺, 半年後就增加到了 500 臺, 這些都是 IBM 實驗室的內部計算機。 一年後, Wedeniwski 將 ZetaGrid 推向了互聯網, 任何人只要下載安裝一個小小的軟件包就可以使自己的機器加入 ZetaGrid, 此舉很快吸引了大量的參與者。 很快地, 在 ZetaGrid 上的聯網計算機總數就穩定在了一萬以上。

雖然 ZetaGrid 上的多數計算是利用那些聯網計算機的閒散 CPU 時間進行的, 但涓涓小溪可以匯成浩瀚江海, 由如此大量的計算機所形成的總體運算能力依然十分可觀。 到了 2004 年 8 月, 即 ZetaGrid 誕生三週年的日子, 這一系統所計算的零點總數已超過了八千五百億個 (其中有六百萬個是由本文作者的計算機貢獻的), 而且還在以大約每天十億個以上的速度增加著。

三億個還不夠!黎曼函數的非平凡零點是怎麼算的?多少個才是頭?

(摘自《黎曼猜想漫談:一場攀登數學高峰的天才盛宴》,作者:盧昌海)


分享到:


相關文章: