【AA notes】Online & Paging

Online算法(区别于offline 算法)的3个特点:

  1. 基于部分的input,只知道当前和过去的,并不知道未来的input
  2. 相当于在现有input的基础上用贪心算法(local gready)
  3. 从全局来看并不是最优,因为不能对global data做出accurate assumption
为了分析online算法,我们引入霸气牛逼吊炸天的 competitive analysis技术。
那么拿online算法的cost和谁比呢?那必然是和上帝视角的offline算法,最优的cost,C_opt。
如果一个online算法A满足下面:
K competitive def
那我们就说,算法A是K-competitive的,意思就是A的cost不超过(offline opt 的乘以K,再加个常数)。
其实competitive analysis也是一种amortized analysis, 只不过它算的不是简单的amortized cost, 而是相对的,相对于(offline opt)。

举个栗子,Move-To-Front, 一种update linked list中元素排序的方法,使得总access cost变小。
Offline opt 有static(元素位置不能改变) 和dynamic(元素位置可以改变)两种version. 可以尝试分析一下,static还可以,dynamic特别酸爽。


Paging算法
假设有cache(容量小)和main memory(容量大) 两级的memory系统。CPU要处理的时候,是从cache读入data的。
所以要是能把CPU较为常用的data放在cache里就能节省时间,但是cache比较小,所以就得决定什么内容放cache。
CPU在cache里面找一个page, 没找到,就叫page fault。我们的目标:减小page fault.
cache容量有限,有进就有出,如果需要discard一些page, 我们有一些策略: FIFO,或者least recently used, 或者least frequently used.
相对应的offline opt上帝视角开挂法就是:size k = 3
Opt



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值