竞争比的定义
考虑一个常见的页面管理问题,计算机中有两层存储,一层是高速cache,它能够缓存k个项目,一层是主存储器,它较为缓慢,但是可存储比cache多得多的项目。学过操作系统这门课程的同学都知道,页面的置换有很多的经典算法,比如LRU,FIFO,LFU等,这些都是在不知道未来的页面请求的情况下,给出页面置换的策略。现在有一个请求序列R = (r1,r2,···rn)为一个在线页面管理算法A的请求序列,如果请求的项目在高速cache中,就为命中(hit),否则称之为缺失(miss),fA(r1,r2,···rn)为在线页面管理算法A在序列R上缺失的数目。对于同样的一个序列R,离线算法MIN知道所有的请求序列,在页面置换的时候就可以置换出未来最远才会被请求的项目,用fO(r1,r2,···rn)表示离线算法在序列R上缺失的最小数目。
定义:一个确定性在线页面管理算法A被称为是C-竞争的,如果存在常数b,使得对于每个请求序列r1,r2,···rn,满足:
fA(r1,r2,···rn) - CfO(r1,r2,···rn)<=b
其中,常数b必与N无关,但可以依赖与k。A的竞争性洗漱是使得A是C-竞争的下确界,记为CA。
从上面这个定义我们可以看出,C越小,表示在线算法A的缺失数目越和最优算法接近,性能也就越好。如果把减号后面的部分移到等号的右边,然后在将fO(r1,r2,···rn)除到左边,C也可以看作最在线算法和最优算法的比值。
竞争比的一些性质
还没写完,接着写······