可構函數

複雜度理論裡,函數時間可構(英語:time constructible),意即存在運行時間規模在內的圖靈機,當輸入時,圖靈機輸出。定義此類函數是為了排除一些無法成為圖靈機運行時間上界的函數。[1]

時間可構函數

有兩種不同的方式去定義時間可構函數。第一種定義裡,函數 時間可構,當且僅當存在正整數 和圖靈機 ,使得對所有 ,在輸入字串  個1)後,該圖靈機恰好 步後停機。第二種定義裡,函數 時間可構,當且僅當存在圖靈機 ,在輸入字串  個1)後,它會在 時間內輸出 的二進制(亦可以用輸出一進制,兩種表示的定義等價,因為可以用 時間轉換兩種表示)。[1]

另外,還有整體時間可構函數:函數 時間全可構當且僅當存在圖靈機 ,對所有自然數 ,輸入字串 後,恰好在 步後停機。這個定義比前兩個定義更狹窄,但在多數應用裡,使用哪種定義都無傷大雅[來源請求]

空間可構函數

類似地,函數 空間可構,當且僅當存在正整數 和圖靈機 ,使得對所有 ,在輸入字串 後,該圖靈機恰好在使用了 個格子後停機。等價地,函數 空間可構,當且僅當存在圖靈機 ,在輸入字串  個1)後,它會在O(f(n))空間內輸出 的二進制(或一進制)。[1]

另外,函數 空間全可構當且僅當存在圖靈機 ,對所有自然數 ,在輸入字串 後,恰好在使用了 個格子後停機[來源請求]

例子

所有滿足 (其中 是常數)的常見函數(例如 )都是時間和空間可構的。除了最終是常數的函數, 裡的函數都不時間可構,因為圖靈機甚至沒有時間完整讀入 。不過 是空間可構的。

應用

複雜度理論的結論,例如時間階層定理使用了時間可構函數去刻劃複雜度層級。這是因為時間層級能成立的基石是能在O(f(n))時間內判斷其他算法是否已經用了超過 步的圖靈機。假若 不能在這麼多步以內計算,該圖靈機當然不可能存在。類似的複雜度定理一般對所有自然的函數 都成立,但不一定對人為構造的 成立。時間可構函數的嚴謹定義成功準確刻劃了這些滿足時間階層定理的函數。

空間可構函數在空間階層定理裡亦有類似的應用。

本條目含有來自PlanetMathconstructible》的內容,版權遵守創用CC協議:署名-相同方式共享協議

參考文獻

  1. ^ 1.0 1.1 1.2 Goldreich, Oded. Computational Complexity: A Conceptual Perspective. Cambridge University Press. 2008: 130, 139. ISBN 978-0-521-88473-0.