美文网首页
竞争分析 自组织表(初步学习)

竞争分析 自组织表(初步学习)

作者: LiBiscuit | 来源:发表于2018-10-23 15:48 被阅读133次

    今天看了MIT算法导论公开课之第14课 竞争性分析、自组织表 所以就对所学到的知识作一下总结!  


    自组织表

    定义:含有n个元素的链表L

    用户操作

    a.访问其中的元素Access(x)

    b.查找元素的位置Rank(x)(从表头到x的距离)。

    c.置换相邻的元素reorded()

    算法操作:

    链表L可以通过交换相邻元素调整元素顺序,且置换代价为1。

    (如果考虑用户的访问可能是一系列的,而且一个元素被访问后,再次被访问的概率会增大,因此考虑对一个元素访问后将该元素和其前驱的元素交换(代价为O(1)),从而减少其下次访问的代价。)

    举个栗子:

    在线算法与离线算法

    1.在线算法

    必须立即完成这步操作,而不管之后的操作是什么(即不能预知后续操作)

    2.离线算法

    离线算法可以假设可以预读整个序列,从而可以对整个操作序列做优化。

    对比一下:可以看出两者的区别在于是不是知道后续的操作.

    可以举个栗子说明一下:

    我们经常玩的游戏俄罗斯方块,在玩的时候我们不能预知下一个出现的方块是什么,所以必须先完成当前的这个方块的操作。而离线方法,相当于你知道了后续所有方块,你就可以根据后续的方块来进行游戏操作了。

    画个重点:不论是在线算法还是离线算法,其目标都是使得对整个操作序列的总的访问代价最小。



    复杂度分析

    思想:MTF (前移思想)

    竞争分析


    公式解析:即算法A对S的操作代价不大于其最优的离线算法乘上a,再加k(K为常数)。

    Copt(S),即是如果知道所有操作序列,可以做到的最好的代价。

    对a的限定不依赖于任何输入,也不依赖于任何概率假设。


    自组织表的MTF(Move-to-front)算法为四竞争的证明


    今天是霜降啦~所以也要是元气满满 活力的一天啦~

    来自不想学习 想食补的小李啦!

    finally

    鸣谢一下参考:MIT算法导论公开课之第14课 竞争性分析、自组织表 - rye_whiskey的博客 - CSDN博客

    https://blog.csdn.net/yalishadaa/article/details/54945362

    相关文章

      网友评论

          本文标题:竞争分析 自组织表(初步学习)

          本文链接:https://www.haomeiwen.com/subject/ctrazftx.html