0%

Lec14 竞争性分析,自组织表

MIT算法导论课程:Lec14 竞争性分析,自组织表,对应Sleator, Daniel D., and Robert E. Tarjan. "Amortized efficiency of list update and paging rules." Communications of the ACM 28, no. 2 (February 1985): 202-208.

1. Self-organizing lists

Self-organizing lists

Ln个元素,操作ACCESS(x)的成本为\(rank_L(x)\),也就是x到头节点的长度。L可以相邻元素的交换,cost为1.

On-line and off-line problems

on-line:序列操作S,必须立刻执行操作,不知道未来的操作。

off-line:可以提前看到之后所有的操作。

Goal:最小化总成本\(C_A(S)\)

Worst-case analysis of self organizing lists

worst case:总是访问L中的尾元素,\(C_A(S)=\Omega(|S|*n)\)

Average-case analysis of self organizing lists

假设元素x以概率p(x)被访问,\(E[C_A(S)]=\sum_{x\in L}p(x)*rank_L(x)\)。其中当L以概率P降序进行排序时期望成本最小。

Heuristic:对访问的元素进行计数,然后保存L以计数降序排序。

2. Move-to-front heuristic

在实践中发现move-to-front(MTF)启发式的方法有较好的结果。具体做法是在访问x后,将x移动到表头,\(cost=2*rank_L(x)\)。MTF方法对于局部性方法有较好的解。

3. Competitive analysis of MTF

定义: 一个on-line算法A是\(\alpha-competitive\) 如果存在常数k对于任何操作序列S\(C_A(S)\leq \alpha*C_{OPT}(S)+k\),其中\(OPT\)是off-line的最优算法。

Theorem: MTF对于self-organizing lists是一个4-competitive。

proof:

首先定义一些变量:

定义势能函数\(\Phi:{L_i}->R\) \[ \begin{aligned} &\Phi\left(L_{i}\right)=2 \cdot \mid\left\{(x, y): x \prec_{L_{i}} y \text { and } y \prec_{L_{i} *} x\right\}\\ &=2 \cdot \# \text { inversions } \end{aligned} \]

可以看出:

  • \(\Phi(L_i)\geq 0\) for all i>=0
  • \(\Phi(L_0)=0\) 如果MTF和OPT开始时一样

一次transpose,\(\Delta\Phi=\pm2\),因为一次transpose会产生或者消除一个逆序对。

下面看当访问一个元素会发生什么,进行如下的定义:

\(r=rank_{i-1}(x)=|A|+|B|+1\)\(r^*=|A|+|C|+1\).

MTF将x移动到表头,产生|A|的逆序对,消除了|B|的逆序。对OPT的每次transpose产生小于1的逆序对,因此\(\Phi(L_i)-\Phi(L_{i-1}\leq2(|A|-|B|+t_i))\).

Amortized cost

MTF第i次操作的平摊代价为: \[ \begin{aligned} \hat{c}_{i} &=c_{i}+\Phi\left(L_{i}\right)-\Phi\left(L_{i-1}\right) \\ & \leq 2 r+2\left(|A|-|B|+t_{i}\right) \\ &=2 r+2\left(|A|-(r-1-|A|)+t_{i}\right) \\ &=2 r+4|A|-2 r+2+2 t_{i} \\ &=4|A|+2+2 t_{i} \\ & \leq 4\left(r^{*}+t_{i}\right) \\ &=4 c_{i}^{*} \end{aligned} \]

因此我们可以得出:

\[ \begin{aligned} C_{\mathrm{MTF}}(S) &=\sum_{i=1}^{|S|} c_{i} \\ &=\sum_{i=1}^{|S|}\left(\hat{c}_{i}+\Phi\left(L_{i-1}\right)-\Phi\left(L_{i}\right)\right) \\ & \leq\left(\sum_{i=1}^{|S|} 4 c_{i}^{*}\right)+\Phi\left(L_{0}\right)-\Phi\left(L_{|S|}\right) \\ & \leq 4 \cdot C_{\mathrm{OPT}}(S) \end{aligned} \] Addendum

如果将把x转移到表头的代价看作0(x从表中拆除在插在表头,时间是常量),则MTF是2-competitive。

如果\(L_0\neq L_0^*\)

  • \(\Phi(L_0)\)最差情况为\(\Theta(n^2)\)
  • 因此:\(C_{MTF}\leq 4*C_{OPT}(S)+\Theta(n^2)\),也是4-competitive,因为\(|S|->+\infty\)\(n^2\)也是常量,n不受到|S|的影响。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

欢迎关注我的其它发布渠道