“分治算法常先导出规则递推,再检查它落在哪一类。代入法可以验证猜测并处理取整、边界或附加项;Akra–Bazzi 方法则处理更一般的不等规模分支。”
形式陈述
代入法先猜测递推关系的解界,再用数学归纳法核对基例和递推步。待证界中的常数必须统一选定,不能随当前规模改变。上界和下界分别证明后,才可用渐近记号报告紧确阶。
例如,对
从2而非1开始很重要:正的
直觉
猜测给出希望证明的增长率,归纳代入检验递推是否会把它推高。需要的松弛可能来自主项常数,也可能来自一个精心选择的低阶修正项;调整的目的,是让每次递推都留下足够空间支付本层工作。
递归参数必须严格更小。对一般整数规模,可以用所有较小情形作为归纳假设;对上面的幂点序列,也可以对高度
图中
例子与边界
何时真的需要低阶修正
对
只要
取整与基例区间
若
上界证明应把子问题代入上界,下界证明应代入下界;有减项时,还须检查不等式方向和符号。只在若干规模上数值吻合,是寻找猜测的线索,并未覆盖所有递归规模。
推论与应用
递归树法和主定理可以产生候选增长率,代入法负责检查常数、基例和误差项。加入一个修正项之后,仍应说明它在目标渐近范围内不改变主阶。
有界搜索树按参数
参考资料
- Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest、Clifford Stein,Introduction to Algorithms, 4th ed., MIT Press, 2022,§4.3:递推式的代入法。
- Jon Kleinberg、Éva Tardos,Algorithm Design,Pearson,2005,Chapter 5:分治递推与归纳分析。