遞迴關係式與主定理

阿克拉-巴齊方法(Akra-Bazzi method)

/ AH-krah BAH-zee /

主定理工整得令人愉快,卻很死板:它堅持所有子問題的規模都是 n/b。真實演算法有時會不均地切割——比方一塊 n/3、另一塊 2n/3——這時主定理就是不適用。阿克拉-巴齊方法是更強大的工具,能處理這些雜亂、不均的遞迴式。

它求解形如 T(n) = sum over i of a_i T(n / b_i) + f(n) 的遞迴式,其中各子問題可以有不同的縮小倍數 b_i 與不同的重數 a_i。做法:先找出唯一一個數 p,使方程式 sum over i of a_i / (b_i)^p = 1 成立。這個 p 推廣了臨界指數 log_b a(在等分情況下正好給出它)。然後 T(n) = Theta( n^p * (1 + integral from 1 to n of f(u) / u^(p+1) du) )。用文字說:n^p 是葉子基準,而那個積分衡量合併工作 f 在所有尺度上相對於這個基準貢獻了多少。若 f 小,n^p 那一項勝出;若 f 大,積分勝出;公式會自動把兩者融合。

只要切割不均、只要你加入像 T(floor(n/2)) + T(ceil(n/2)) 這種小的低階偏移,或只要你想確認某個主定理結果在取整下依然成立,阿克拉-巴齊就是對的工具。誠實的取捨:那個積分可能很棘手,而此法(標準形式)仍希望子問題規模是 n/b_i 加上小擾動,且 f 相當規矩(多項式成長、滿足溫和的平滑條件)。不過對常見情況,它乾淨地重現了每一個主定理答案,以及許多主定理搆不到的答案。

中位數的中位數選擇法:T(n) = T(n/5) + T(7n/10) + Theta(n)。解 (1/5)^p + (7/10)^p = 1;其解 p < 1,又因為 f(n) = n 成長得比 n^p 快,積分主導,得 T(n) = Theta(n)——線性時間選擇。由於切割不均,主定理無法證明這點。

解 sum a_i / b_i^p = 1 求出 p,再算積分,把葉子工作與合併工作融合。

阿克拉-巴齊推廣了主定理,但並非毫無限制:f 仍需要溫和的平滑(多項式型成長)條件,且規模必須是 n/b_i 加上小擾動。它不會神奇地解出像 T(n) = T(n-1) + 1 這種形狀並非分治的遞迴式。

又稱
Akra-Bazzi theoremgeneralized master theorem阿克拉-巴齊定理