简单记录一下如何证明FIF是是offline optimal page replacement algorithm.
主要参考文献
【1】Proof of the Farthest-in-Future Optimal Caching Algorithm – Henry Poon's Blog
【2】CSE 202: Design and Analysis of Algorithms
【3】大数据算法课程笔记8a:page replacement algorithm
具体过程就不再写了,参考文献写的很清楚。
形象化的例子参考文献1,抽象的证明参考文献2。文献3是个中文版,可以参考一下,它是按照归纳法的正规流程来写的。
有一点需要注意的是:在证明过程中,不论是哪个case,做出对应operations后各个schedule的cache的内容必须要保持一致,这是为了归纳法用的(从文献2证明的定理可以看出,这其实用到了归纳法)
PS:
【4】这个文献也不错:http://www.bioinfo.org.cn/~dbu/AlgorithmCourses/Lectures/Lec16.pdf 有时间了再验证下。
这个博客介绍了如何证明贪心算法的最优(事实上belady就是一个贪心算法):
漫谈算法(一)如何证明贪心算法是最优 using exchange argument - Gavin.Liu - 博客园 (cnblogs.com)
大家都说到一个fact,这里是个简单的证明:(算法书中也有)