Power 3计数器的摊销分析

时间:2018-09-11 00:53:26

标签: algorithm amortized-analysis

我经常阅读算法教科书Cormen,Liserson,Rivest和Stein。

摊销分析是其中有趣的一章。当选择电位函数时,二进制计数器是一个困难的例子。我想知道如果计数器的3的幂具有某些系数(例如x1 * 1 + x2 * 3 + x3 * 9 + ...)。

在这种情况下如何确定电位函数?

1 个答案:

答案 0 :(得分:0)

要证明增加基数为3的计数器需要固定的摊销时间,可以使用电位方法,将当前值中的2s用作电位函数。

增量操作可以分为两部分:

  1. 该值末尾的连续2s更改为0。

  2. 这2s左边的第一个数字递增。

步骤(1)所做的工作与从状态中移除的2秒成比例。

这两个2s中的每一个都由上一个操作的Step(2)进行相加,这需要固定的时间,并且最多可以加2。

让Φ为当前状态下的2s。

    步骤(1)所花费的时间与其减少Φ的数量成正比。由于Φ总是> = 0,因此在步骤(1)中完成的总工作量以许多增量最多与Φ的增加量成正比。
  • 在每个增量中,步骤(2)花费恒定的时间,并且将Φ(最终可以由步骤(1)执行的总工作量)增加至多1,表示实际执行的工作量是恒定的,并在步骤(1)中排队等待一定数量的工作。总的来说,这是一笔固定数量的工作,可以按当前和将来的增量进行摊销。