高效模拟算法与云市场定价模型解析
高效模拟算法部分
在计算机缓存研究领域,对于随机替换策略的缓存,为了近似每个缓存引用的命中概率,通常需要进行多轮朴素蒙特卡罗模拟。为了提高效率,研究人员设计了一种模拟算法,能够在单轮模拟中近似该概率。
算法原理与复杂度分析
在算法执行过程中,涉及到两个表 (h’) 和 (h’‘)。当清理 (h’‘) 时,对于其中的所有值 (x),有 (h’‘[x] \geq -dK)。由于 (c > K),这些值满足 (h’‘[x] \geq -dK = K - (dK + K) > K - (dK + c) = K - b),因此可以安全地进行修剪。
设 (s) 为 (h’) 和 (h’‘) 的大小之和,研究表明 (s \leq 2K)。在时间 (i) 时,如果 (a_i) 在 (h’) 或 (h’‘) 中被找到,(s) 不会增加,但 (b) 可能会增加;如果 (a_i) 在两个表中都未找到,(s) 和 (b) 都会增加 1。因此,当 (c) 从 0 增加到 (K) 时,(s) 的增量受 (b) 的增量限制。由于 (h’) 和 (h’‘) 每两步清理一次,所以 (s \leq 2K)。这样,该算法的空间复杂度为 (O(K) = O(\frac{\log \epsilon}{\log(1 - \frac{1}{M})}))。又因为清理表的 (O(K)) 成本会在至少 (K) 次缓存引用中分摊,所以时间复杂度仍为 (O(N))。
实验评估
研究人员实现了三种算法:普通算法、(\epsilon) - 近似变体算法,以及直接模拟当前缓存状态的朴素模拟算法。实验使用了 HMTT 平台独立的全
高效模拟算法与云市场定价模型解析
超级会员免费看
订阅专栏 解锁全文
1660

被折叠的 条评论
为什么被折叠?



