- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数学建模最佳分油模型
楚雄师范学院
2013年数学建模培训第一次预赛论文
? 题 目 最佳分油模型
???? ???? 姓 名
????????? 系(院)
????????? 专 业
??2013 年 5 月 17 日
最佳分油模型
【摘要】 本文主要是根据分油问题而建立的数学模型,从分油问题出发写出相关代码,最终求出最佳的决策方案,并用所学的知识推广成一般数学模型。
【关键字】 C++实现 线性规划 图表显像法 递归作图
一、问题重述
有一个人用装10斤油的瓶装了一瓶油拿到市场上去卖,正好来了两个买油的,每人要买5斤,但是没有秤,只有二只空瓶,一个能装7斤油,另一个能装3斤油。试建立模型分析应如何用这3个瓶把10斤油分成两份各为5斤的油。
二、问题分析
古有“韩信分油”的典故,根据“韩信分油”将上述的问题用数学语言描述为:有三个无容量刻度的容器A、B、C,且容量分别为10、7、3斤。容器A中装满10斤油,B、C为空容器,怎么利用三个容器将10斤油平均分给另外两个小的容器中?经过思考、查阅资料,我们可以利用逐项列举的图解法,得出分油结果。可当容器A、B、C容量很大时,这种逻辑方法就很难完成分油任务。
所以面对该分油问题,我们将它进行推广,记三个容器A、B、C且容量分别为a、b、c斤;容器A中装满a升油,B、C都为空容器。怎么利用三个容器将a升油平均二等分?对于这个问题,应用数学知识构建立数学模型,提出一种通用的方法进行求解。
三、问题假设
1、假设每次倒油的时候都没有油漏掉;
2、假设倒油时三个容器都不会将由留剩余容器壁上;
2、假设A、B、C三个容器都没有损坏。
四、符号说明
→:表示容器**向容器XX倒入油
:B中的油量
:C中的油量
:第次倒油时,B容器内的油改变量
:第次倒油时,C容器内的油改变量
D:允许决策集合
五、模型的建立与求解
1、基本问题解决
基于问题,我们通过逻辑推理,用最基本方法:将一容器内的油向另外的容器中倾倒的方法,得出下面分油方法动态规划模型的思想写出代码,最终得出结果。
分油问题function algorythm(){/*??? 分油问题 Halve Oil
??? 某人用只 10 千克的桶装满了一桶油去卖, 正好来了两个买油的,每人要买 5 千克,但没有秤,只有两只可装 7 千克和 3 千克的空桶。问怎样利用这两只空桶将油平均分成两份??? 很显然,每次倒油时必须是倒空或倒满一只桶。三只桶里油的重量之和总是不变的,所以,我们只需讨论用来分油的两只桶装油数量的变化情况。这样我们便可通过平面上的点来表示各种可能的状态,如图
??? 设三个桶的容量分别为 C、B、A
?????????????????????? (B)
??????? 3 ●─●─●─●─●─●─●─●????????? │? │? │? │? │? │? │? │??????? 2 ●─○─○─○─○─○─○─●???? (A)? │? │? │? │? │? │? │? │ (A)??????? 1 ●─○─○─○─○─○─○─●????????? │? │? │? │? │? │? │? │??????? 0 ●─●─●─●─●─●─●─●????????? 0?? 1?? 2?? 3?? 4?? 5?? 6?? 7?????????????????????? (B)
?????????? ●为可能状态? ○为不可能状态
若 A+BC 则上面的矩形将不同程度地缺掉右上角。 每倒油一次,三个桶便由一种状态变为另一种状态。如果用 (B,A) 表示两个分油桶装油的数量, 那么,我们的目的是要将油倒来倒去,最后达到目标状态 (5,0)??? 于是分油问题便成为在图中寻求从点 (0,0) 到点 (5,0) 的有向路径。有两个问题需要解决:一是有多少条不同的路径;二是哪条路径最短??? 对于问题一,我们采用回溯技术,于每种状态从上下左右斜五个方向对整个
状态空间进行搜索,直至找出所有解??? 对于问题二,利用上面的算法固然可以找出最佳解,但搜索整个状态空间却费时太多。必须另外设计算法。下面算法的思想是:设三个桶由大到小分别为 C,B,A 并将其摆成三角形
?????????? C
??????? B???? A
??? 第一轮,有条件地逆时钟方向倒油,直至达到目标状态??? 第二轮,有条件地顺时针方向倒油,达到目标状态后,比较两轮倒油的次数。较
文档评论(0)