韩信分油问题6994.docx
- 文档编号:27035427
- 上传时间:2023-06-26
- 格式:DOCX
- 页数:12
- 大小:832.32KB
韩信分油问题6994.docx
《韩信分油问题6994.docx》由会员分享,可在线阅读,更多相关《韩信分油问题6994.docx(12页珍藏版)》请在冰豆网上搜索。
韩信分油问题6994
韩信分油问题
上海市爱国学校七
(2)班姚逸磊
指导老师:
滕晨晖
摘要:
很早的时候,我就听过这样一则趣味数学故事―――《韩信分油》:
据说,韩信在一次外出巡游时,遇到了一个农夫。
农夫很发愁,他有一桶油,重10斤,农夫手头有两个桶,一个3斤,一个7斤,农夫想把这一桶10斤的油分成两个5斤。
如果想利用一个3斤和一个5斤的油桶,把一桶8斤的油分成两桶4斤的油呢?
现实生活中也常遇到此种问题,那么该如何解决呢?
有什么技巧规律吗?
关键词:
韩信分油两个桶10斤的油两个5斤
模型假设:
以分10斤油为例。
10斤、3斤、7斤的桶命名为A、B、C。
如何把这一桶10斤的油分成两个5斤呢?
模型建立:
先从A中倒3斤油把B灌满,然后再把这3斤油倒入C中。
接着,再从A中倒出3斤油把B灌满,再把这3斤油倒入C中。
第三次,从A中倒出3斤油把B灌满。
此时,A中剩油1斤,B中剩油3斤,C中剩油6斤。
此时,从B中倒出1斤油,把C灌满。
这时,A中剩油1斤,B2斤,C7斤。
把C中的油全部倒入A中,再把B中油全部倒入C中。
此时,A中剩油8斤,B0斤,C2斤。
从A中倒油入B,直至B满为止,再把B中3斤油全部倒入C中,终于,A中剩油5斤,B0斤,C5斤,满足题意。
图:
模型求解:
用倒推法,总量10斤油平均分配,而没有5斤的容器。
由于容量最小的是3斤的油葫芦故先用油葫芦将7斤的瓦罐装满,则油葫芦内还有2斤。
再将瓦罐内7斤油倒回油桶,将油葫芦内2斤油倒入瓦罐,再装3斤即到5斤
模型检验:
我认为规律就是一定要从小的容器着手(3斤的油葫芦),一点一点分配10=5+5;5=3+2;再联想到大的7斤的瓦罐2+7=9;而9=3+3+3
为什么都是加没有减了?
因为加2斤的有到7斤的瓦罐有可能,而从7斤的瓦罐倒出2斤的油很难(如果可以的话,就不用这么复杂了)!
总结:
韩信分油利用倒推法可以求出这种解法。
同学们不妨试试利用倒推法将一个3斤和一个5斤的油桶,把一桶8斤的油分成两桶4斤的油,相信你一定可以的!
匈牙利解法概述
匈牙利解法是求解指派问题的一种新颖而又简便的解法,它是美国数学家库恩(Kuhn)于1955年提出的.库恩引用了匈牙利数学家康尼格(Konig)一个关于矩阵中0元素的定理:
系数矩阵中独立0元素的最多个数等于能覆盖所有0元素的最小直线数,这种解法称为匈牙利法.
指派问题的最优解有这样一个性质,若从系数矩阵的一行(列)各元素中分别减去该行(列)的最小元素,得到新矩阵,那么以新矩阵为系数矩阵求得的最优解和用原矩阵求得的最优解相同.利用这个性质,可使原系数矩阵变换为含有很多0元素的新矩阵,而最优解保持不变.
[编辑]
匈牙利解法的步骤
具体操作为第一步:
使指派问题的系数矩阵经变换,在各行各列中都出现0元素.
(1)从系数矩阵的每行元素减去该行的最小元素;
(2)再从所得系数矩阵的每列元素中减去该列的最小元素.第二步:
进行试指派.若此时得到的mPn,应回到第一步,重新对系数矩阵进行变换。
但要把第一步的过程改为
(1)从系数矩阵的每列元素减去该列的最小元素;
(2)再从所得系数矩阵的每行元素中减去该行的最小元素.这样做就使得新矩阵的0元素比较多些.再进入第二步进行试指派就可以得到最优解.利用前面的性质可以证明这个最优解就是我们所要求的原问题的最优解,从而使得求解变得更为简捷。
[编辑]
匈牙利解法原理[1]
其基本原理是:
为了实现目标极小,在系数矩阵元素
的条件下,如果能使矩阵具有一组处于不同行又不同列的零元素(
)打上括号(),对应该元素的决策变量xij=1,未打括号元素对应的决策变量Xij=0,那么目标函数值
为最小,这样的组合解就是最优解。
定理1:
从(cij)矩阵的每行(或列)减去或加上一个常数ui(或vj)构成新矩阵(
),
,则对应(
)的(xij)最优解与原(cij)的最优解等价。
证明:
如从新矩阵中得到最优解(xij),则其目标函数值达到极值:
其中:
K为一常数,故当
达到极值时Z也达到极值。
所以(xij)也为原矩阵(cij)的最优解。
利用这个定理,可以使原系数矩阵(Cij)变换成含有很多0元素的新系数矩阵
,从而最优解保持不变。
独立的0元素:
在系数矩阵
中,位于不同行不同列的0元素。
若能在系数矩阵
中找出n个独立的0元素,则令解矩阵(Xij)中对应这n个独立0元素的取值为1,其他元素取值为0。
将其代入目标函数中得到
因
故它一定是最小值。
这就是以
为系数矩阵的分派问题的最优解,也就是原问题的最优解。
[编辑]
非标准指派问题[1]
匈牙利法只适用于符合以下三个条件的分派问题的求解:
①目标函数为极小型;
②系数矩阵为方阵;
③系数矩阵元素值非负。
即:
对于不满足上述三个条件的分派问题应转化为标准指派问题。
1)当分派问题目标要求极大时,即求
此时,可把求极大型转变为求极小型,利用式:
max=Z=min(−Z)即:
再由定理1,矩阵
每行均可加上一个常数M(或令Cij中最大元素为M即可),令:
bij=M−Cij,这时系数矩阵可变换为:
这时,
,B叫C的缩减矩阵。
符合匈牙利法的条件。
由定理1可知:
所得的最小解就是原问题的最大解。
(2)系数矩阵不是方阵,目标仍为Min型问题:
系数矩阵化为方阵。
其特点是:
m个人分派做n项工作,系数矩阵(Cij)为m×n矩阵,m≠n。
①若m ②若m>n,则增添虚构的s=m–n列,补成方阵,但是对应的Cij=0。 [编辑] 匈牙利解法的示例 步骤一: 将这系数矩阵进行变换,使各行各列都出现0元素.从系数矩阵的每行元素减去该行的最小元素即得每行每列都有有0元素的系数矩阵. 步骤二: 进行试指派,找出独立的0元素.独立0元素用Θ表示,其它0用Φ表示得到 …… (1) 这里Θ的个数m=4,而n=5;问题没有得到求解,运用步骤三继续求解. 步骤三: 作最少的直线覆盖所有的0元素,以确定该系数矩阵中能找到最多的独立元素数.为此按以下步骤进行. (1)对没有Θ的行打√号: ; (2)对已打√号的行中所含0元素的列打√号; (3)再对所有打√号的列中的含有@元素的行打√号; (4)重复2、3直到得不出新的打√号的行列为止. (5)对没有打√号的行画一横线,有打√号的列画一纵线,这就得到覆盖所有0元素的最少直线数. 令直线数为l.若l 在此例中,对矩阵 (1)按以下次序进行: 先在第五行旁打√,接着可判断应在第一列下打√,接着在第3行旁打√,经检查不能再打√了.对没有打√行画一直线以覆盖0元素,对打√的列画一直线以覆盖0元素,得: …… (2) 由此可见l=4 (2)矩阵进行变换转步骤四. 步骤四: 对 (2)矩阵进行变换的目的是增加0元素. 为此在没有被直线覆盖的部分中找出最小元素.然后在打√行各元素中都减去这个最小元素,而在打√列的各元素上都加上这个最小元素,以保证原来0元素不变.这样得到新系数矩阵(它的最优解和原问题相同).若得到n个独立的0元素,则已得最优解,否则回到步骤三重复进行. 在矩阵 (2)中,在没有被覆盖部分(第3、5行)中找到最小元素为2,然后在第3、5行各元素分别减去2。 给第l列各元素加2,得到新矩阵(3) ……(3) 按步骤二,找出所有的独立0元素。 得到矩阵(4) ……(4) 它具有n个独立0元素.这就得到了最优解,相应解矩阵为 由解矩阵得最优指派方案: 甲——B,乙——D,丙——E,丁——C,戊——A 所需总时间为minz=32
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 韩信分油 问题 6994