本文翻译自维基百科词条:http://en.wikipedia.org/wiki/Ski_rental_problem
  滑雪租赁问题(ski rental problem)是一类问题的总称,指在持续重复花费和消除或减少重复花费后一次性付清两种策略间做出选择。

     问题阐述:
     许多在线问题(online problems)有名为租/买问题的子问题。我们需要在保持现有每隔一段时间付一定费用,或利用若干次固定大规模付费一次付清两种情况下做出选择。滑雪租赁就是一个经典的小例子,租/买即是整个问题。它的基本版本如下:
     你要去滑雪,但天数未知(各种原因使你不能确定准确时间,比如,丧失兴趣、摔坏腿或恶劣的天气)。假设滑雪板的租赁价格是每天1美金,购买滑雪板的花费是10美金。每天你都需要在将滑雪板再租一天和购买一副新的滑雪板之间做出决策。如果你事先知道你会去滑雪多少天,你就能决定你的最少花费。滑雪少于10天,租赁划算;多于十天,当然买滑雪板更划算;如果刚好十天,那或租或买都无所谓。这个问题就是,当你事先不知道你要滑雪多少天时怎么办。
     这个问题能以如下的方式正式建立。你将会去滑雪,滑雪天数d未知。我们现在寻找一种算法,使你不知道d时使用这种算法和你事先知道d时选取的最优方案之间的花费比率最低。这个问题普遍在最坏情况下分析,即算法是固定的我们寻找所有可能d值在最坏情况下的性能。尤其是,没有针对d的分布的假设(很显然,根据d分布情况,会选择不同分析和不同的方案)。
     收支平衡算法(the break-even algorithm):
     收支平衡算法会指导你头9天租赁,如果第十天继续滑雪,那么购买滑雪板。如果你在头9天过程中终止滑雪,那么你的花费和你事先知道你滑雪天数的花费相同。如果你刚好滑雪10天后停止,你的花费是19美金,比你事先知道滑雪天数的花费多出了90%。这是收支平衡算法的最坏情况。收支平衡算法是针对此问题已知的最好的确定性算法。
     你能比收支平衡算法做得更好吗?
     当然。比如,你能抛硬币决定。如果硬币正面朝上,你在第8天购买滑雪板,否则,在第10天购买。这是一个随机化算法的例子。显而易见,在不考虑滑雪天数情况下,总花费的期望最多比你事先知道滑雪天数多80%。如果你滑雪10天,你的花费的期望值是1/2 [7 +10] + 1/2 [9+10] = 18 美金,比起前面的90%来仅为80%。
     相应于无视对手(oblivious adversary)的最好的随机化算法是根据下面的分布p随机选择天数i,租赁i-1天,若第i天继续滑雪则购买滑雪板。Karlin等人首先提出了这个算法的分布  其中购买滑雪板花费b美金然后每天的租赁价格是1美金。它得出的花费期望值仅为事先知道滑雪时间的e/(e-1)≈ 1.58倍。没有随机化算法能做到更好。
     应用:
     Snoopy caching
     TCP确认
     总竞争时间调度

译:滑雪租赁问题(ski rental problem)的更多相关文章

  1. 洛谷 P3650 [USACO1.3]滑雪课程设计Ski Course Design

    P3650 [USACO1.3]滑雪课程设计Ski Course Design 题目描述 农民约翰的农场里有N座山峰(1<=N<=1000),每座山都有一个在0到100之间的整数的海拔高度 ...

  2. 区分DDD中的Domain, Subdomain, Bounded Context, Problem/Solution Space

    区分DDD中的Domain, Subdomain, Bounded Context, Problem/Solution Space 译自: Domain, Subdomain, Bounded Con ...

  3. USACO Section 1.3 题解 (洛谷OJ P1209 P1444 P3650 P2693)

    usaco ch1.4 sort(d , d + c, [](int a, int b) -> bool { return a > b; }); 生成与过滤 generator&& ...

  4. Luogu USACO Training 刷水记录

    开个坑记录一下刷USACO的Training的记录 可能会随时弃坑 只有代码和做法简述 可能没有做法简述 [USACO1.1]你的飞碟在这儿Your Ride Is He… 模拟,细节已忘 #incl ...

  5. Form Template Method

    <重构>中此方法叫做塑造模板函数,在设计模式中,对应的模式就是模板模式.重构中的很多变动比较大的方法都会导致重构,但重构中有非常多的小重构手法.就好像建筑一个房子,设计模式教你厨房客厅怎么 ...

  6. SFC游戏列表(维基百科)

    SFC游戏列表 日文名 中文译名 英文版名 发行日期 发行商 スーパーマリオワールド 超级马里奥世界 Super Mario World 1990年11月21日 任天堂 エフゼロ F-Zero F-Z ...

  7. BZOJ 1571: [Usaco2009 Open]滑雪课Ski

    Description Farmer John 想要带着 Bessie 一起在科罗拉多州一起滑雪.很不幸,Bessie滑雪技术并不精湛. Bessie了解到,在滑雪场里,每天会提供S(0<=S& ...

  8. 滑雪(ski)

    滑雪(ski) 题目描述 Michael喜欢滑雪.这并不奇怪,因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...

  9. [USACO09OPEN]滑雪课Ski Lessons

    题目描述 Farmer John wants to take Bessie skiing in Colorado. Sadly, Bessie is not really a very good sk ...

随机推荐

  1. 关于MFC控件删除出现“具有该ID的控件已存在”这样的情况的解决方案,详细,网上都没有这么详细的,我是“深受其害”,所以想将详细的方法分享出去。

    网上关于MFC控件删除出现“具有该ID的控件已存在”这样的情况,在网上找了很多关于这方面的东西,但是都不是很全,也不容易弄明白.现在问我直接通过一个项目和图片的形式和大家一块分享一个这个解决方法(如有 ...

  2. E20170915-hm

    client n. 顾客; 当事人; 诉讼委托人; [计算机] 客户端; seal  n. 密封; 印章; 海豹; 封条;  v. 密封; 盖章; 决定; 封上(信封); sheet  n. 纸; 被 ...

  3. Oracle 12.2.0.1 RAC for rhel 7.X 数据库安装(节点1执行root.sh失败)

    说明: 最开始是用的rehat7.2安装12.2.0.1,后面安装GI节点一执行root.sh脚本失败,排查原因,最开始以为是操作系统的问题,换成rehat7.6,同样的出现问题,经过一番折腾,后面通 ...

  4. # 深入理解Redis(二)——内存管理的建议与技巧

    引语 随着使用Redis的深入,我们不可避免的需要深入了解优化Redis的内存,本章将重点讲解Redis的内存优化之道,同时推荐大家阅读memory-optimization一文. 想要高效的使用Re ...

  5. css的选择器效率分析

    我们都知道,CSS具有叠加性(同一个元素被多条样式规则指定),继承性(后代元素会继承前辈元素的一些样式和属性)和优先级 (由于CSS的叠加性和继承性,将产生优先级,这指的是哪条样式规则会最终作用于指定 ...

  6. Eclipse安装配置——For Java

    1.下载安装JRE 2.下载Eclipse,解压到相应文件夹 3.配置Eclipse 3.1 配置字体大小  -12号 3.2配置workspace默认编码,utf-8,默认系统windows 3.3 ...

  7. JAVA可能问的几个面试题问题及问题的标准答案

    问题一:你希望工作环境是怎样的? 标准答案:我对环境没有苛求,我会努力适应环境的. 注:此问题是在测试你的求职心态,是以自己为中心还是以工作为中心. 问题二:你觉得自己有哪些缺点? 标准答案:说一些对 ...

  8. 怎么不让别人ping服务器

    频繁地使用Ping命令会导致网络堵塞.降低传输效率,为了避免恶意的网络攻击,一般都会拒绝用户Ping服务器.为实现这一目的,不仅可以在防火墙中进 行设置,也可以在路由器上进行设置,并且还可以利用Win ...

  9. 安装rails卡住很慢 出现302 Moved Temporarily

    在MAC上安装rails的时候,使用命令$ gem install rails 发现一直没响应,使用$ gem install rails-V命令发现,安装会在中间卡住,出现302 Moved Tem ...

  10. 黑客常用dos命令

    http://blog.csdn.net/CSDN___LYY/article/details/77802438