计算机科学导论实验报告-老鼠喂药问题的探索.pdfVIP

  • 14
  • 0
  • 约8.38千字
  • 约 10页
  • 2018-12-29 发布于广东
  • 举报

计算机科学导论实验报告-老鼠喂药问题的探索.pdf

中国科学院大学 计算机科学导论 课程实验报告 国科大2014级计算机第六组关于算法实验的报告 第一题 规则:2小鼠1毒瓶,你可以喂老鼠1与一些瓶子。老鼠喝毒瓶时将立 即死亡。 目标:用最少的步骤。 要求: 试图找到唯一的毒瓶最少的步骤。如果你的策略涵盖所有情况,你赢 了,否则,你输了。最好的结果将是统计。 你和你的伙伴将一共有3次机会提交 问题分析:这是一个与博弈有关的问题。电脑的目的在于使你的步骤 尽可能地多,而你的目的是使步骤尽可能的少。这样就存在一个纳什 均衡问题。我们考虑子博弈精炼纳什均衡,使参与者的决策在任何时 点上都是最优的,决策者要 “随机应变”,“向前看”,而不是固守旧 略。这样就有一个动态的问题。值得注意的是,必须将毒药瓶喂给老 鼠,老鼠死亡,游戏才结束。问题初解:构造函数F (n,m)表示在有 n个老鼠,m个瓶子时所需要的最少步数。对于两只老鼠的情况,假 设第一次把k个瓶子为给老鼠一,此时电脑有两种选择,老鼠一死或 者不死。若老鼠一不死,则剩余2只老鼠和 (m-k)个瓶子,接下来 会需要F(2,(m-k))步骤检测出毒老鼠。这样一共需要(1+F(2,(m-k))) 步。若老鼠死亡,这样毒药瓶一定在k个瓶子中,一共需要 (1+k) 步,这样电脑与你博弈,他会选择max{(1+F (2,(m-k))),(1+k)} All rights reserved. 转载引用请注明出处。 中国科学院大学 计算机科学导论 课程实验报告 的事件发生,而我们与电脑博弈,我们则需要选择min{max{(1+F (2, (m-k))),(1+k)}}的事件发生。 对问题初解的评价:是最直接的想法,也是最有难度的想法。如果会 编程的话,只要编一个程序,这个问题完全可以推广到n个老鼠,m 个瓶子时所需要的最少步数。当nm 时,显然,需要m步即可。当 nm时,只需修正为F (n,m) min{max{(1+F (n,(m-k))),1+F (n-1, k)}}即可。但我们组对编程没达到那种要求,所以我们另寻思路。 最终解答: ·基本思想:博弈论,由特殊到一般,归纳法 下面的表格为1到29个瓶子数,2个老鼠时,最优步骤数。计算时 的技巧这里仅给出当8个瓶子时,如何求解最优步骤数。其余同理。 当取1瓶给老鼠,不可能死,为7瓶最优值加1,5步;取2瓶给老鼠, 死,3步,活,为六瓶最优值加1,5步;如此地推下去…… 1 2 3 4 5 6 7 8 9 10 瓶子 All rights reserved. 转载引用请注明出处。 中国科学院大学 计算机科学导论 课程实验报告 数 1 2 3 3 4 4 4 5 5 5 最优 步骤 数 11 12 13 14 15 16 17 18 19 20 瓶子 数 5 6 6 6 6 6 7 7 7 7 最优 步骤 数 21 22 23 24 25 26 27

文档评论(0)

1亿VIP精品文档

相关文档