问题描述
我正在阅读网络流-理论,算法和应用程序,但我坚持以下定理的证明(第3章,第67页):
定理。假设?^?是算法的??ℎ迭代时最小化问题的某些解的目标函数值,?^ ∗是最小目标函数值。此外,假设该算法保证每次迭代?,
(1)(?^?-?^(?+ 1))≥?(?^?-?^ ∗)
(即迭代?+ 1的改进至少是总可能改进的1/3倍),且常数
证明。数量(?^?−?^ ∗)表示??ℎ迭代后目标函数值的总可能改进。考虑从迭代starting开始的连续2 /?迭代序列。如果算法的每个迭代将目标函数值提高至少?(?^?-?^ ∗)/ 2个单位,则该算法将在这2 /?个迭代中确定最佳解。取而代之的是,假设算法在?+ 1的某个迭代中将目标函数值提高了不到?(?^?-?^ ∗)/ 2个单位。换句话说,
(2)?^?-?^(?+ 1)≤?(?^?-?^ ∗)/ 2。
不等式(1)表示
(3)?(?^?-?^ ∗)≤?^?-?^(?+ 1)
不等式(2)和(3)暗示着
(?^?−?^ ∗)≤(?^?−?^ ∗)/ 2,
因此,该算法将总可能的改进(reduced ^?−?^ ∗)减少了至少2倍。因此,我们证明了在2 /?连续迭代中,该算法要么获得了最佳解,要么降低了可能的总改进量至少为2倍。由于possible是最大可能的改进,并且每个目标函数值都是整数,因此算法必须在?((????)/ ?)次迭代中终止。
为什么作者要关注2 / a迭代?
解决方法
我认为这样写是为了让计算机科学家更容易理解,我们每2 /α轮将整数数量减半,因此2 /α轮的超级轮数将为O(log)。没有特别的原因,我们不能更直接地进行数学运算:
T(n) is the gap between the nth solution and an optimal solution.
T(n) ≤ (1 - α) T(n-1) [assumption]
n
T(n) ≤ T(0) (1 - α) [by induction]
-α n x
< T(0) (e ) [by 1 + x < e for x ≠ 0]
-α (ln T(0))/α
T((ln T(0))/α) < T(0) e
= 1,
因此(ln T(0))/α
足以满足要求。