形式陈述
列表访问模型
有一个由 个互异元素组成的线性列表;“无序”指不要求按键排序,列表位置本身仍有先后。访问当前位置为 的元素需要支付 ;访问完成后,可以把刚访问的元素免费向前移动任意距离。除此之外,任意相邻元素交换都要支付 1。这个约定称为 full-cost 模型;若把访问成本写成 ,单步记账中的常数项会相应改变,但证明结构不变。
Move-to-Front(MTF)在每次访问后都把该元素直接移到表头。它不估计长期频率,也不预知未来序列;状态完全由最近访问顺序形成。
与任意比较算法的竞争界
固定请求序列 ,并让比较算法 可以知道未来。记 为 的访问位置成本之和, 为 所做的付费相邻交换数, 为 在访问后对该元素所做的免费向前相邻交换数。
令 是 MTF 当前排列与 当前排列之间的逆序对数:一对元素在两份列表中的相对次序不同,就贡献 1。若初始排列可能不同,记初始势为 。把两份列表组成分析状态,并只把 MTF 的访问计为实际成本;比较算法的重排作为零实际成本的辅助状态变化。这个共同状态上的势能账本理路势能法Potential method用数据结构状态势函数的增量调整单步记账,以控制操作序列的总成本。给出
当两算法从同一排列开始时 。由于 的总成本为 ,舍去右侧的负项并放宽 ,得到
因此 MTF 对允许动态重排的离线最优算法也是 2-competitive;不同初始排列只产生与请求长度无关的加性项。
一次访问的逆序账本
处理某次请求 时,设 在 的列表中位于第 位,在 MTF 列表中位于第 位。再设有 个元素同时满足:它们在 MTF 中位于 前面,却在 中位于 后面。MTF 把 移到表头时,与这 个元素之间原有的逆序被消去;其余 个共同位于 前面的元素与 形成新逆序。所以
其摊还访问成本为
共同位于 前面的元素有 个,而 中 前面总共只有 个元素,因此 ,从而
随后, 免费把 向前交换一次,就会消去一个与 MTF 的逆序;每个付费相邻交换至多把势增加 1。把这些变化逐步计入,再对全部请求求和,就得到前面的全局不等式。这里使用的是 ,即逆序对数本身;不需要额外乘 2。
直觉
MTF 把“刚被请求”当作短期局部性的信号。一个热点第一次可能在列表深处,但访问后立即来到表头;连续热点的后续成本都降为 1。热点发生切换时,新热点也会自动前移,不需要维护频率计数或显式时间戳。
逆序势衡量的不是一份列表自身有多乱,而是在线列表与比较算法的排列差异。MTF 为寻找 越过的元素越多,本次访问越贵;同一批元素也正是势变化的全部来源。于是实际成本和“靠近比较算法”或“远离比较算法”的变化可以放在同一本账上结算。
Move-to-Front 的访问与逆序势账本
例子与边界
设 MTF 当前列表为 [c,a,b,d],比较算法 的列表为 [a,b,c,d],本次请求 b。这里 、;在 MTF 中位于 b 前面但在 中位于它后面的只有 c,所以 。MTF 把 b 移到表头时
实际成本为 3,摊还成本仍为 3,而 ,这一步恰好取等。势没有变化并不表示列表没变,而是新增和消去的逆序数量刚好抵消。
模型边界必须固定。经典免费操作只允许“刚访问的元素向前移动”;若允许免费任意重排整个列表,比较基准会被彻底改变。若交换具有非单位权重、元素大小不同或访问代价不是位置的线性函数,也需要新的势函数或新的竞争界。
MTF 的保证是序列总成本,不是逐次延迟上界。一个长期未访问的元素第一次仍可能花费线性成本。static optimum 只选择一个固定排列,dynamic optimum 则能随序列付费调整;两种基准对应不同问题,不能只写“优于最优排列”而省略最优算法允许的操作。
Transpose 每次只把访问项前移一位,Frequency Count 按累计次数排序。它们也会让热点前移,却不因此自动继承 MTF 的 2-竞争性;竞争定理依赖具体状态更新与势变化,而不是“具有自调整性”这一宽泛描述。
推论与应用
MTF 是自调整数据结构理路自调整数据结构Self-adjusting data structure根据访问历史重排内部表示的数据结构设计;具体序列敏感界还需逐种结构证明。和竞争分析理路竞争分析Competitive analysis在同一请求序列上比较在线算法总成本与预知未来的离线最优。的早期范例。证明中的势同时依赖在线算法与比较算法,展示了势能法理路势能法Potential method用数据结构状态势函数的增量调整单步记账,以控制操作序列的总成本。不仅能分析单个数据结构的摊还操作,也能追踪两个动态状态之间的距离。
在 paging 的阶梯成本模型中,列表前 个位置可视为缓存,MTF 的最近访问顺序对应 LRU。两者的具体成本函数不同,但“最近访问元素移到最前、最久未用元素逐渐后退”的状态语义相同;从 list update 迁移结论时仍需重新核对成本模型和允许操作。
参考资料
- Daniel D. Sleator and Robert E. Tarjan, “Amortized Efficiency of List Update and Paging Rules,” Communications of the ACM 28(2), 1985, pp. 202–208.
- Allan Borodin and Ran El-Yaniv, Online Computation and Competitive Analysis, Cambridge University Press, 1998, Chapter 3.