布盧姆加速定理

在計算複雜性理論,布盧姆加速定理(英語:Blum's speedup theorem)為關於可计算函数複雜度的基本定理,最早由曼纽尔·布卢姆在1967年提出。

選定一種編程語言後,每個可計算函數仍由無窮多個程式實現,該些程式可能各有優劣。給定某個可計算函數和複雜度衡量時,算法理論經常尋找計算該函數「最不複雜」的算法(稱為「最優」,例如當複雜度用時間衡量時,便是「最快」)。布魯姆加速定理斷言,任何複雜度衡量下,都存在某個没有最優算法的可計算函數,亦即,任何該函數的程式實現都會比另一個實現複雜。此結論同時說明,無法同時定義全部可計算函數的複雜度(函數的複雜度是其最優程式的複雜度)。當然,不排除能找到特定函數的最優程式,並計算其複雜度。

定理敍述
給定布盧姆複雜度衡量(\varphi, \Phi)和二元全可計算函數f,必有全可計算謂詞g(即輸出只能為布爾值0, 1的全可計算函數),使得對於g的每個程式i,都有g的另一個程式j,使得對幾乎所有輸入x,都有
:f(x, \Phi_j(x)) \leq \Phi_i(x).

粗略而言,上式表明存在程式j,使其複雜度\Phi_j(x)比程式i的複雜度\Phi_i(x)更小,且可以遠遠更小(「遠遠」的含義由f指定)。f稱為加速函數,它可以很大(只需可計算)。例如,若取f(x, y) = 2^y,則j的複雜度很小,為O(\log \Phi_i(x))。

參見
*

參考資料
*

  • .

外部鏈結
*

评论 (0)

  • 还没有评论,来抢沙发吧。