本文翻译自维基百科词条: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. TF101出现“DMClient已停止”处理办法

    设定->应用程式->全部->DMClient强制停止 然后 清除数据 然后 重开机 测试通过.

  2. luogu2765 魔术球问题 网络流

    题目大意: 假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为1,2,3,...的球.(1)每次只能在某根柱子的最上面放球.(2)在同一根柱子中,任何2个相邻球的编号之和为完全平方数.试设计一 ...

  3. ortp库使用入门

    我们知道, RTP(Real-timeTransportProtocol)是用于Internet上针对多媒体数据流的一种传输协议,做流媒体传输方面的应用离不开RTP协议的实现及使用,为了更加快速地在项 ...

  4. 曼哈顿距离 C++

    template <class T1, class T2>double ManhattanDistance(std::vector<T1> &inst1, std::v ...

  5. 8.19noip模拟题

      2017 8.19 NOIP模拟赛 by coolyangzc 共3道题目,时间3小时 题目名 高级打字机 不等数列 经营与开发 源文件 type.cpp/c/pas num.cpp/c/pas ...

  6. 使用JQuery制作幻灯片(轮播图)

    1.首先看一下目录结构 images文件夹放所需要播放的图片. js文件夹放jquery库和main.js 2.html代码: <!DOCTYPE html> <html lang= ...

  7. Eclipse 每次ctrl-c ctrl-v 就变慢?

    继续闲着,所以继续写 大小: 60.7 KB 查看图片附件

  8. 20小时掌握网站开发(免费精品htmlcss视频教程)

    自己最近研发了一套新的htmlcss教程,并进行了授课实施,视频教程百度云下载链接如下: 视频及案例源码下载地址 本套教程视频需要安装屏幕录像专家软件才能观看,屏幕录像专家下载地址如下: 屏幕录像专家 ...

  9. php全局变量 超全局变量

    php中有许多超全局变量,这意味着它们在一个脚本的全部作用域中都可用.在函数或方法中无需执行 global $variable; 就可以访问它们. 这些超全局变量是: $GLOBALS    引用全局 ...

  10. 查看SqlServer连接所使用的端口号

    最近一个项目里用到了一个插件,在配置时发现连接数据库使用的是JDBC,输入URL时用到了端口号.印象中在使用Sqlserver时貌似没有提到端口号,在网上查阅了一下,记录下来省的忘了 方法是通过内置的 ...