銀河式算法

銀河式算法  不是某一種具體算法的名稱 ， 而是一類對於極大規模數據表現特別優異的複雜算法 。 這類算法在常規問題中往往無法展現出優勢 ， 甚至效率低於一般的解決方案 ， 而當數據規模足夠大時 ， 效率將提升到不可思議的程度 。 這裏的 “ 足夠大 ” 實際上已經脫離了現實需求 ， 以至於這類算法從未在實踐中發揮作用 。 “ 銀河式算法 ” 一詞首先由理查德 · 立普頓和肯 · 里根提出 ， “ 銀河式 ” 意味着面對數據規模之大如銀河中的繁星 ， 且 “ 不會與地球上的問題打交道 ” 。 銀河式算法的著名示例包括一種大整數乘法 ， 其基於 維的快速傅里葉變換 。 這意味着只有當數值至少達到 （ 即 ） 位十進制數字之後, 這種算法的優勢才能發揮出來 ， 而這個數量級已經遠遠超過宇宙中原子的數量 ， 因此這種算法從未被真正使用過 。 即便銀河式算法看起來沒有用處 ， 但有關這類算法的思想和討論仍然對計算機科學大有裨益 。 一種看似不切實際的算法所展現出來的新技術 ， 可能會最終轉變爲比當下更好的實用算法 。 計算機的高速發展可能會使解決一些原本不曾邂逅的大規模問題變得迫在眉睫 ， 算力和存儲空間的提升可能會爲一些原本難以實施的複雜算法提供實踐機會 。 不切實際的算法會證明或證僞當下一些猜想的邊界 。 據立普頓所說 ， “ 這一點非常重要 ， 並且通常是我們找到此類算法的重要原因 。 例如 ， 如果明天發現一個因式分解算法具有巨大但可證明的多項式時間複雜度 ， 即使我們深信該算法可能永遠不會使用 ， 但仍會影響我們未來對於因式分解相關技術的研究 ， 爲更新穎 、 更可靠的想法提供經驗 。 ” 同樣 ， 一種用於解決布爾可滿足性問題的 、 時間複雜度爲 的算法雖然在實踐中不可用 ， 但仍然有益於人們探索P = NP問題 — — 這一計算機科學中最重要的開放性問題 ， 也是千禧年大獎問題之一 。