我是靠谱客的博主 还单身鲜花,最近开发中收集的这篇文章主要介绍算法导论【在线算法】—The Ski-Rental Problem、The Lost Cow Problem、The Secretary ProblemThe Ski-Rental ProblemThe Lost Cow ProblemThe Secretary Problem,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

算法导论【在线算法】

  • The Ski-Rental Problem
    • 问题描述
    • 在线算法
    • 证明
  • The Lost Cow Problem
    • 问题描述
    • 在线算法
    • 类似问题—寻宝藏
  • The Secretary Problem
    • 问题描述
    • 在线算法
    • The Best Possible k

The Ski-Rental Problem

问题描述

  • 假设你正在上滑雪课。每节课结束后,你决定(取决于你喜欢的程度、你的骨骼状况和天气)是继续滑雪还是完全停止滑雪。
  • 你可以选择以1美元一次的价格租用滑雪板,也可以以B美元的价格购买滑雪板。
  • 你是买还是租?
  • 如果你事先知道你一生中会滑雪多少次,那么选择租还是买就很简单了。
  • 如果你要滑雪超过 B B B次,那就在开始前购买,否则就一直租。该算法的代价为 m i n ( T , B ) min(T,B) min(T,B)
  • 这种对未来了如指掌的策略被称为离线策略。

在线算法

  • 实际上,你不知道你会滑雪多少次。你该怎么办?
  • 在线策略是:取一个数字k,这样在租用k−1次后,您将购买滑雪板(就在第k次滑雪之前)。
  • 如果我们取 k = B k=B k=B,那么可以保证我们支付不会超过离线策略成本两倍的费用
  • 例如:假设B=7美元,那么,在6次租金之后,你就买了。总付款:6+7=13$

证明

最坏情况下, k = B k=B k=B,我们选择在滑雪次数 T = k − 1 T=k-1 T=k1次后再也不滑雪,那么在线算法的总费用为 B − 1 + B = 2 B − 1 B-1+B=2B-1 B1+B=2B1,而离线算法取得的最优解为 m i n ( T , B ) = B min(T,B)=B min(T,B)=B,此时竞争比为 2 B − 1 B = 2 − 1 B cfrac{2B-1}{B}=2-cfrac{1}{B} B2B1=2B1,则我们说这个策略是 ( 2 − 1 B ) (2-cfrac{1}{B}) (2B1)竞争的
在这里插入图片描述

The Lost Cow Problem

问题描述

  • Old McDonald失去了他最喜欢的奶牛。最后一次看到它朝着通向两条无限道路的路口行进。没有一位目击者能说出奶牛是选择了左边还是右边的路线。
  • 在这里插入图片描述

在线算法

  • 在线算法是9-competitive的,换句话说:在找到奶牛之前可能经过的距离最多是最佳离线算法(知道奶牛在哪里)距离的9倍
  • 最坏的情况是,他发现奶牛的距离比他上次在这一侧搜索的距离稍远
  • 因此, O P T = 2 j + ε OPT=2j+ε OPT=2j+ε,其中 j = j= j=迭代次数, ε ε ε是某个小距离。然后
  • 在这里插入图片描述
  • 伪代码如下:

在这里插入图片描述

类似问题—寻宝藏

在这里插入图片描述
在这里插入图片描述

m m m条路编号为 1 , 2 , 3... m 1,2,3...m 1,2,3...m,从第一条路开始寻找,初始寻找距离为 d = 1 d=1 d=1,如果在这个距离内找到了宝藏则结束寻找,没找到则寻找距离翻倍,切换至寻找下一条路径,路径编号对 m m m取模,保证每次寻找的路径都是合法的,直到找到宝藏。

Treasure(m)
d = 1;current side = 1
while true do
Walk distance d on current side
if find treasure then
exit
else
d = 2d
current side = (current side+1)%m
return to starting point

该算法的竞争比为 O ( m ) O(m) O(m)

证明:

​ 最坏的情况是,发现宝藏的距离比上次在这条路上搜索的距离稍远一点点,因此,最优解为 O P T : 2 j + ε OPT:2^j +ε OPT2j+ε,其中 j j j=迭代次数, ε ε ε是某个小距离。则:

C o s t O P T = 2 j + ε > 2 j        C o s t O N = m ( 1 + 2 + 4 + . . . + 2 j + 1 ) + 2 j + ε = m ⋅ 2 j + 2 + 2 j + ε = ( 4 m + 1 ) ⋅ 2 j + ε < ( 4 m + 1 ) ⋅ C o s t O P T begin{aligned} Cost OPT &= 2^j +ε>2^j\ Cost ON&= m(1+2+4+...+2^{j+1})+2^j +ε\ &= m · 2^{j+2} +2^j +ε = (4m+1)· 2^j +ε < (4m+1) · Cost OPT end{aligned} CostOPT      CostON=2j+ε>2j=m(1+2+4+...+2j+1)+2j+ε=m2j+2+2j+ε=(4m+1)2j+ε<(4m+1)CostOPT

所以竞争比为 O ( 4 m + 1 ) = O ( m ) O(4m+1)=O(m) O(4m+1)=O(m)

The Secretary Problem

问题描述

  • 我们有n位候选人(可能是求职者或可能的婚姻伴侣)。
  • 我们的目标是选择最好的候选人。
  • 假设候选人可以从最好到最坏完全排序,没有任何联系。
  • 候选人以随机顺序依次到达。
  • 我们只能在候选人到达时确定他们的相对排名。
  • 我们不能观察绝对等级。
  • 每次面试后,我们必须立即接受或拒绝申请人。
  • 候选人一旦被拒绝,就不能被召回。
  • 一旦候选人被录取,我们就停止面试。

在线算法

  • 已知候选人数n
  • 在线策略在遇到第i位候选人后,我们能够给出分数score(i)
  • 选择一个正整数k<n,面试并拒绝前k位候选人。
  • 继续面试剩下的n-k位,并接受第一位得分高于前k位候选人的候选人。
  • 如果最高分在第一批面试的k人里,那么我们必须接受第n位即最后一位申请人
  • 伪代码:在这里插入图片描述

The Best Possible k

结论:如果我们在 k = n e k=cfrac{n}{e} k=en的情况下实施我们的策略,我们将以至少 1 e cfrac{1}{e} e1的概率成功雇佣我们最合格的申请人

最后

以上就是还单身鲜花为你收集整理的算法导论【在线算法】—The Ski-Rental Problem、The Lost Cow Problem、The Secretary ProblemThe Ski-Rental ProblemThe Lost Cow ProblemThe Secretary Problem的全部内容,希望文章能够帮你解决算法导论【在线算法】—The Ski-Rental Problem、The Lost Cow Problem、The Secretary ProblemThe Ski-Rental ProblemThe Lost Cow ProblemThe Secretary Problem所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部