附1:用LINGO求解线性规划的例子 一奶制品加工厂用牛奶生产A1、A2
- 格式:doc
- 大小:18.50 KB
- 文档页数:6
1 •一奶产品加工厂用牛奶生产A1,A2两种奶产品,1桶牛奶可以在甲类设备上用12h加工,成3kg A1,或者在乙类设备上用8h加工成4kg A2。
根据市场需求,生产的A1, A2全部能售出,且每千克A1获利24元,每千克A2获利16元。
现在加工厂每天能得到50桶牛奶供应,每天正式工人的劳动时间为480h,并且甲类设备每天最多加工100kg A1,乙类设备的加工时间没有限制,讨论以下问题1)若35元可以买一桶牛奶,做这项投资是否值得?若投资,每天最多购买多少桶牛奶?2)若聘用临时工人以增加劳动时间,付给临时工人的工资最多是多少?3)由于市场需求变化,每千克A1的获利增加到30元,是否改变原有的生产计划?Lingo程序:model:max=72*x+64*y;x+y<50;12*x+8*y<480;3*x<100;end2.—汽车厂生产小、中、大三种类型的的汽车,已知各类型每辆车对钢材、劳动时间的需求,利润以及每月工厂钢材、劳动时间如下表1)制定生产计划,使工厂利润最大;23.建筑工地的位置(a,b)和水泥日用量d如下表,目前有两个临时料场位于P (5,1), Q(2,7),日储量各有20t。
1)求从P,Q两料场分别向各工地运送多少吨水泥,使总的吨公里数最小;2)现打算舍弃原有料场,新建两个料场A,B,求新料场的位置,使新的吨公里数最小,此时与P,Q相比能节省多少吨公里。
4.设从4个产地Ai往3个销地Bj运送物资,产量、销量和单位运费如下表,求总运费最少的运输方案和总运费。
Lingo程序:Model: sets:warehouse/1..3/:a;customer/1..4/:b;link(warehouse,customer):c,x; endsetsdata:a=30,25,21;b=15,17,22,12;c=6,2,6,7,4,9,5,3,8,8,1,5;enddata[OBJ]min=@sum(link:c*x);@for(warehouse(i):@sum(customer(j):x(i,j))<a(i)); @for(customer(j):@sum(warehouse(i):x(i,j))=b(j)); end5.求下图中v1到v11的最短路9 W 丄vlOLingo程序:Model:sets:cities/1..11/;roads(cities,cities):p,w,x; endsetsdata: ! 半连通图和权图p=0 1 1 1 00 0 0 0 0 00 0 1 0 10 0 0 0 0 00 1 0 1 11 1 0 0 0 00 0 1 0 0 0 1 0 0 0 00 1 1 0 0 1 0 1 1 0 00 0 1 0 1 0 1 0 1 0 00 0 1 1 0 1 0 0 1 1 00 0 0 0 1 0 0 0 1 0 10 0 0 0 1 1 1 1 0 1 10 0 0 0 0 0 1 0 1 0 10 0 0 0 0 0 0 1 1 1 0;w=0 2 8 1 0 0 0 0 0 0 02 0 6 0 1 0 0 0 0 0 08 6 0 7 5 1 2 0 0 0 01 0 7 0 0 0 9 0 0 0 00 1 5 0 0 3 0 2 9 0 00 0 1 0 3 0 4 0 6 0 00 0 2 9 0 4 0 0 3 1 00 0 0 0 2 0 0 0 7 0 90 0 0 0 9 6 3 7 0 1 20 0 0 0 0 0 1 0 1 0 40 0 0 0 0 0 0 0 9 2 4;enddata n=@size(cities); min=@sum(roads:w*x);@for(cities(i)|I # ne # 1 # and # I # ne # n: @sum(cities(j):p(i,j)*x(i,j)) =@sum(cities(j):p(j,i)*x(j,i)));@sum(cities(j):p(1,j)*x(1,j))=1;end6.露天矿里有若干个爆破生成的石料堆,每堆称为一个铲位,每个铲位已预先根据铁含量将石料分成矿石和岩石。
基于核心素养的数学建模课程的案例研究*———以奶制品的生产与销售模型为例王天松俞芳(昌吉学院数学系新疆昌吉831100)摘要:数学建模课程是高校数学专业的基础课程之一,本文以奶制品的生产与销售模型教学设计为例,从教材分析、学情分析、教学目标、教学重难点、教学方法、教学过程等六个方面介绍数学建模课程的教学案例,最后针对案例给出相应的案例反思。
关键词:数学建模;教学案例;模型;反思中图分类号:G642文献标识码:A文章编号:1672-1578(2021)01-0001-03随着我国教育改革的不断发展,核心素养理念在高校教育改革中的地位愈显突出,逐渐成为目前高校教育改革的一项新的要求。
《数学建模》课程的开设和数学建模竞赛的开展促进了高校数学的教学教改,对学生综合素质的提高起到了积极、有效的作用[1-2]。
本文以奶制品的生产与销售模型教学设计为例,从教材分析、学情分析、教学目标、教学重难点、教学方法、教学过程等六个方面介绍数学建模课程的教学设计,最后针对案例给出相应的案例反思[3-5]。
1奶制品的生产与销售模型的教学设计1.1教材分析数学建模是高校数学专业重要的一门专业课程,通过这门课程的学习,应使学生获得数学建模的系统知识、数学思想与思维方法。
对于数学专业学生深刻理解和灵活使用数学知识解决实际问题至关重要,其内容是初步进行科学研究的重要工具,在金融、经济、社会科学等方面有着广泛的应用。
事实上,本课程是学生进行毕业论文写作及科研的阶梯,也为深入理解高等数学打下必要的基础。
本节内容选自姜启源版《数学模型》第四章第一节奶制品的生产与销售,是数学规划模型章节中的第一讲,主要是通过分析两个实际问题讲解线性规划模型(简称LP模型)的建模方法和利用LINGO的求解方法。
这节内容将为后面的模型探索打下坚实的基础,同时为了解LINGO软件的使用提供很好的平台,因此本节内容在该章节中具有重要的地位。
1.2学情分析数学系大四的学生具有一定的数学理论基础,而且具备一定的思维能力、逻辑能力以及综合运用知识的能力。
第3篇 线性规划模型线性规划通常研究资源的最优利用问题.例如,在任务确定的条件下,如何用最少的资源(如资金、原材料、人工、时间、设备等)去完成确定的任务;在资源一定的条件下,如何组织生产,使得成本最小,或者利润最大,等等.线性规划可以分为连续规划、整数规划和0-1规划.3.1 生产计划问题例3.1 一个奶制品加工厂用牛奶生产1A 、2A 两种奶制品,1桶牛奶可以在甲车间用12小时加工成3千克1A ,或者在乙车间用8小时加工成4千克2A .根据市场需求,生产出的1A 、2A 能够全部售出,且每千克1A 获利24元,每千克2A 获利16元.现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为480小时,并且甲车间的设备每天至多能加工100千克1A ,乙车间的设备的加工能力可以认为没有上限限制,(即加工能力足够大),试为该厂制订一个生产计划,使得每天的获利最大.3.2 零件配套问题例3.2 某产品由2件甲零件和3件乙零件组装而成。
两种零件必须在设备A 、B 上加工,每件甲零件在A 、B 上的加工时间分别为5分钟和9分钟,每件乙零件在A 、B 上的加工时间分别为4分钟和10分钟。
现有2台设备A 和3台设备B ,每天可供加工时间为8小时。
为了保持两种设备均衡负荷生产,要求一种设备每天的加工总时间不超过另一种设备总时间1小时。
怎样安排设备的加工时间使得每天加工的产品的产量最大?3.3 背包问题例3.3 一个旅行者的背包最多只能装20千克物品. 现有4件物品的重量分别为4千克、6千克、6千克、8千克,4件物品的价值分别为1000元,1500元, 900元, 2100元. 这位旅行者应携带哪些物品使得携带物品的总价值最大?3.4 选择加工方式问题例3.4 企业计划生产4000件某种产品,该产品可自己加工、外协加工任意一种形式生产.已知每种生产的固定成本、生产该产品的单件成本以及每种生产形式的最大加工数量如表3-1所示,怎样安排产品的加工使总成本最小.3.5 灵敏度分析在线性规划模型(3-6)中,对于价值系数j c 、资源系数i b 和工艺系数ij a ,当其中的某些参数发生微小的变化时,最优解和最优值的变化情况怎样?这就是线性规划的灵敏度分析.具体来说,灵敏度分析主要分析以下2个方面:1.系数变化时,最优解有什么变化;2.系数在什么范围内变化时,原最优解不变. 我们以例3.1为例来说明灵敏度分析的方法.2.5.1 对价值系数j c 进行灵敏度分析在模型(3-6)中,假设每千克1A 获利由24元提高到25元,那么目标函数为127564f x x =+.模型的其余部分都不变,使用lingo 软件求解,程序和结果见附录9. 从求解结果来看,最优解没有变化,仍然是*(20,30)T x =.当然由于价格变大了,最优值必然会增加的(增加了60元).反复实验,可以发现,只要价格在[21,31]内,最优解都是不变的.这说明最优生产方案对于奶制品1A 的价格变化不是很敏感.类似地可以分析奶制品2A 对价格的敏感性. 2.5.2 对资源系数i b 进行灵敏度分析在模型(3-6)中,假设每天能得到51桶牛奶的供应,那么,原料供应约束为1251x x +≤.其余部分都不变,使用lingo 软件求解,程序和结果见附录10. 从求解结果来看,最优解发生了变化,是*(18,33)T x =.最优值增加了48元.这说明最优生产方案对于牛奶的供应量的变化是非常敏感的.我们把48元叫做1桶牛奶的影子价格,它记录在“Dual Price ”一栏.影子价格的功能是,如果购买1桶牛奶的成本低于48元,就可以扩大购买量来扩大生产规模,因为这样可以增加利润;如果购买1桶牛奶的成本高于48元,就可以卖掉牛奶来压缩生产规模,因为这样也可以增加利润;其实,有关资源系数的灵敏度分析可以直接根据原模型(3-6)的求解结果“Dual Price ”一栏的数据进行,而不必重新建模.比如,对于劳动时间约束,每增加1小时,总收入增加2元.而对于设备甲的加工能力约束,就完全没有敏感性了,因为此时还剩余46小时没有用完.2.5.3 对工艺系数ij a 进行灵敏度分析在模型(3-6)中,假设1桶牛奶可以在甲车间用13小时加工成3千克1A (加工时间增加了1小时),劳动时间约束变为12138480x x +≤.其余部分都不变,使用lingo 软件求解,程序和结果见附录11. 从求解结果来看,最优解发生了变化,是*(16,34)Tx =.生产奶制品1A 的牛奶减少4桶,而生产奶制品2A 的牛奶增加4桶,这说明最优生产方案对于1A 的工艺系数是非常敏感的.由于生产效率降低了,所以应该减少奶制品1A 的生产规模.并不是对每个系数都要进行灵敏度分析.比如,在本例中,工艺系数在一定时期内是相对固定的,除非企业要进行技术改造,因此对工艺系数就没有必要进行灵敏度分析.3.6 两辆铁路平板车的装货问题例3.5 有7种规格的包装箱要装到两辆平板车上去,包装箱的宽和高是一样的,但厚度t (以厘米计)及重量w (以千克计)是不同的。
Lingo基本用法总结(除集函数部分)LINGO是用来求解线性和非线性优化问题的简易工具。
Lingo免费版可以支持30个未知数,lingo破解版可以支持几万个未知数、几万个约束条件。
当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口:外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。
在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。
下面举两个例子。
例1.1 如何在LINGO中求解如下的LP问题:在模型窗口中输入如下代码:min=2*x1+3*x2;x1+x2>=350;x1>=100;2*x1+x2<=600;然后点击工具条上的按钮即可。
得到如下结果:所以当x1为250,x2为100时目标函数得到最大值。
算术运算符Lingo 中变量不区分大小写,以字母开头不超过32个字符算术运算符是针对数值进行操作的。
LINGO 提供了5种二元运算符: ^ 乘方 ﹡ 乘 / 除 ﹢ 加 ﹣ 减 LINGO 唯一的一元算术运算符是取反函数“﹣”。
这些运算符的优先级由高到底为:高 ﹣(取反) ^ ﹡/ 低 ﹢﹣运算符的运算次序为从左到右按优先级高低来执行。
运算的次序可以用圆括号“()”来改变。
例:在x1+x2>=350,x1>=100,2*x1+x2<=600的条件下求2*x1+3*x2的最小值 在代码窗口中编写 min =2*x1+3*x2; x1+x2>=350; x1>=100;2*x1+x2<=600;然后单击上面菜单lingo 菜单下solve 键即可。
数学函数标准数学函数:@abs(x) 返回x 的绝对值@sin(x) 返回x 的正弦值,x 采用弧度制 @cos(x) 返回x 的余弦值 @tan(x) 返回x 的正切值 @exp(x) 返回常数e 的x 次方 @log(x) 返回x 的自然对数@lgm(x) 返回x 的gamma 函数的自然对数 @sign(x) 如果x<0返回-1;否则,返回1@floor(x) 返回x 的整数部分。
附1:用LINGO求解线性规划的例子一奶制品加工厂用牛奶生产A1、A2两种奶制品,1桶牛奶可以在设备甲上用12小时加工成3公斤A1,或者在设备乙上用8小时加工成4公斤A2。
根据市场需求,生产的A1、A2能全部售出,且每公斤A1获利24元,每公斤A2获利16元。
现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为480小时,并且设备甲每天至多能加工100公斤A1,设备乙的加工能力没有限制。
试为该厂制定一个生产计划,使每天获利最大,并进一步讨论以下3个附加问题:1)若用35元可以购买到1桶牛奶,应否作这项投资?若投资,每天最多购买多少桶牛奶?2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元?3)由于市场需求变化,每公斤A1的获利增加到30元,应否改变生产计划?数学模型:设每天用x1桶牛奶生产A1 ,用x2桶牛奶生产A2目标函数:设每天获利为z元。
x1桶牛奶可生产3x1公斤A1,获利24*3x,x2桶牛奶可生产4*x2公1斤A2,获利16*4x2,故z=72x1+64x2约束条件:原料供应:生产A1、A2的原料(牛奶)总量不超过每天的供应50桶,即x1+x2≤50劳动时间:生产A1、A2的总加工时间不超过每天正式工人总的劳动时间480小时,即12x1+8x2≤480设备能力:A1的产量不得超过设备甲每天的加工能力100小时,即3x1≤100≥0非负约束:x1、x2均不能为负值,即x1≥0,x2综上所述可得max z=72x1+64x2s.t.x1+x2≤5012x1+8x2≤4803x1≤100x1≥0,x2≥0显然,目标函数和约束条件都是线性的,这是一个线性规划(LP),求出的最优解将给出使净利润最大的生产计划,要讨论的问题需要考虑参数的变化对最优解和影响,一般称为敏感性(或灵敏度)分析。
LINGO求解线性规划用LINGO求解线性规划时,首先在LINGO软件的模型窗口输入一个LP模型,模型以MAX或MIN 开始,按线性规划问题的自然形式输入(见下面例子所示)。
Lingo软件题目与答案1.一奶产品加工厂用牛奶生产A1,A2两种奶产品,1桶牛奶可以在甲类设备上用12h加工,成3kg A1,或者在乙类设备上用8h加工成4kg A2。
根据市场需求,生产的A1,A2全部能售出,且每千克A1获利24元,每千克A2获利16元。
现在加工厂每天能得到50桶牛奶供应,每天正式工人的劳动时间为480h,并且甲类设备每天最多加工100kg A1,乙类设备的加工时间没有限制,讨论以下问题1)若35元可以买一桶牛奶,做这项投资是否值得?若投资,每天最多购买多少桶牛奶?2)若聘用临时工人以增加劳动时间,付给临时工人的工资最多是多少?3)由于市场需求变化,每千克A1的获利增加到30元,是否改变原有的生产计划?Lingo程序:model:max=72*x+64*y;x+y<50;12*x+8*y<480;3*x<100;end2.一汽车厂生产小、中、大三种类型的的汽车,已知各类型每辆车对钢材、劳动时间的需求,利润以及每月工厂钢材、劳动时间如下表。
1)制定生产计划,使工厂利润最大;2)若生产某类型车,则至少需生产80辆,求改变后的生产计划。
3.建筑工地的位置(a,b)和水泥日用量d如下表,目前有两个临时料场位于P(5,1),Q(2,7),日储量各有20t。
1)求从P,Q两料场分别向各工地运送多少吨水泥,使总的吨公里数最小;2)现打算舍弃原有料场,新建两个料场A,B,求新料场的位置,使新的吨公里数最小,此时与P,Q相比能节省多少吨公里。
4.设从4个产地Ai往3个销地Bj运送物资,产量、销量和单位运费如下表,求总运费最少的运输方案和总运费。
Lingo程序:Model:sets:warehouse/1..3/:a;customer/1..4/:b;link(warehouse,customer):c,x;endsetsdata:a=30,25,21;b=15,17,22,12;c=6,2,6,7,4,9,5,3,8,8,1,5;enddata[OBJ]min=@sum(link:c*x);@for(warehouse(i): @sum(customer(j):x(i,j))<a(i));@for(customer(j):@sum(warehouse(i):x(i,j))=b(j));end5.求下图中v1到v11的最短路Lingo程序:Model:sets:cities/1..11/;roads(cities,cities):p,w,x; endsetsdata: !半连通图和权图;p=0 1 1 1 0 0 0 0 0 0 00 0 1 0 1 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1 0 1 0 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 1 0 0 0 1 0 10 0 0 0 1 1 1 1 0 1 10 0 0 0 0 0 1 0 1 0 10 0 0 0 0 0 0 1 1 1 0;w=0 2 8 1 0 0 0 0 0 0 02 0 6 0 1 0 0 0 0 0 08 6 0 7 5 1 2 0 0 0 01 0 7 0 0 0 9 0 0 0 00 1 5 0 0 3 0 2 9 0 00 0 1 0 3 0 4 0 6 0 00 0 2 9 0 4 0 0 3 1 00 0 0 0 2 0 0 0 7 0 90 0 0 0 9 6 3 7 0 1 20 0 0 0 0 0 1 0 1 0 40 0 0 0 0 0 0 0 9 2 4;enddatan=@size(cities);min=@sum(roads:w*x);@for(cities(i)|I # ne # 1 # and # I # ne # n: @sum(cities(j):p(i,j)*x(i,j))=@sum(cities(j):p(j,i)*x(j,i)));@sum(cities(j):p(1,j)*x(1,j))=1;end6.露天矿里有若干个爆破生成的石料堆,每堆称为一个铲位,每个铲位已预先根据铁含量将石料分成矿石和岩石。
第3篇 线性规划模型线性规划通常研究资源的最优利用问题.例如,在任务确定的条件下,如何用最少的资源(如资金、原材料、人工、时间、设备等)去完成确定的任务;在资源一定的条件下,如何组织生产,使得成本最小,或者利润最大,等等.线性规划可以分为连续规划、整数规划和0-1规划.3.1 生产计划问题例3.1 一个奶制品加工厂用牛奶生产1A 、2A 两种奶制品,1桶牛奶可以在甲车间用12小时加工成3千克1A ,或者在乙车间用8小时加工成4千克2A .根据市场需求,生产出的1A 、2A 能够全部售出,且每千克1A 获利24元,每千克2A 获利16元.现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为480小时,并且甲车间的设备每天至多能加工100千克1A ,乙车间的设备的加工能力可以认为没有上限限制,(即加工能力足够大),试为该厂制订一个生产计划,使得每天的获利最大.3.2 零件配套问题例3.2 某产品由2件甲零件和3件乙零件组装而成。
两种零件必须在设备A 、B 上加工,每件甲零件在A 、B 上的加工时间分别为5分钟和9分钟,每件乙零件在A 、B 上的加工时间分别为4分钟和10分钟。
现有2台设备A 和3台设备B ,每天可供加工时间为8小时。
为了保持两种设备均衡负荷生产,要求一种设备每天的加工总时间不超过另一种设备总时间1小时。
怎样安排设备的加工时间使得每天加工的产品的产量最大?3.3 背包问题例3.3 一个旅行者的背包最多只能装20千克物品. 现有4件物品的重量分别为4千克、6千克、6千克、8千克,4件物品的价值分别为1000元,1500元, 900元, 2100元. 这位旅行者应携带哪些物品使得携带物品的总价值最大?3.4 选择加工方式问题例3.4 企业计划生产4000件某种产品,该产品可自己加工、外协加工任意一种形式生产.已知每种生产的固定成本、生产该产品的单件成本以及每种生产形式的最大加工数量如表3-1所示,怎样安排产品的加工使总成本最小.3.5 灵敏度分析在线性规划模型(3-6)中,对于价值系数j c 、资源系数i b 和工艺系数ij a ,当其中的某些参数发生微小的变化时,最优解和最优值的变化情况怎样?这就是线性规划的灵敏度分析.具体来说,灵敏度分析主要分析以下2个方面:1.系数变化时,最优解有什么变化;2.系数在什么范围内变化时,原最优解不变. 我们以例3.1为例来说明灵敏度分析的方法.2.5.1 对价值系数j c 进行灵敏度分析在模型(3-6)中,假设每千克1A 获利由24元提高到25元,那么目标函数为127564f x x =+.模型的其余部分都不变,使用lingo 软件求解,程序和结果见附录9. 从求解结果来看,最优解没有变化,仍然是*(20,30)T x =.当然由于价格变大了,最优值必然会增加的(增加了60元).反复实验,可以发现,只要价格在[21,31]内,最优解都是不变的.这说明最优生产方案对于奶制品1A 的价格变化不是很敏感.类似地可以分析奶制品2A 对价格的敏感性. 2.5.2 对资源系数i b 进行灵敏度分析在模型(3-6)中,假设每天能得到51桶牛奶的供应,那么,原料供应约束为1251x x +≤.其余部分都不变,使用lingo 软件求解,程序和结果见附录10. 从求解结果来看,最优解发生了变化,是*(18,33)T x =.最优值增加了48元.这说明最优生产方案对于牛奶的供应量的变化是非常敏感的.我们把48元叫做1桶牛奶的影子价格,它记录在“Dual Price ”一栏.影子价格的功能是,如果购买1桶牛奶的成本低于48元,就可以扩大购买量来扩大生产规模,因为这样可以增加利润;如果购买1桶牛奶的成本高于48元,就可以卖掉牛奶来压缩生产规模,因为这样也可以增加利润;其实,有关资源系数的灵敏度分析可以直接根据原模型(3-6)的求解结果“Dual Price ”一栏的数据进行,而不必重新建模.比如,对于劳动时间约束,每增加1小时,总收入增加2元.而对于设备甲的加工能力约束,就完全没有敏感性了,因为此时还剩余46小时没有用完.2.5.3 对工艺系数ij a 进行灵敏度分析在模型(3-6)中,假设1桶牛奶可以在甲车间用13小时加工成3千克1A (加工时间增加了1小时),劳动时间约束变为12138480x x +≤.其余部分都不变,使用lingo 软件求解,程序和结果见附录11. 从求解结果来看,最优解发生了变化,是*(16,34)Tx =.生产奶制品1A 的牛奶减少4桶,而生产奶制品2A 的牛奶增加4桶,这说明最优生产方案对于1A 的工艺系数是非常敏感的.由于生产效率降低了,所以应该减少奶制品1A 的生产规模.并不是对每个系数都要进行灵敏度分析.比如,在本例中,工艺系数在一定时期内是相对固定的,除非企业要进行技术改造,因此对工艺系数就没有必要进行灵敏度分析.3.6 两辆铁路平板车的装货问题例3.5 有7种规格的包装箱要装到两辆平板车上去,包装箱的宽和高是一样的,但厚度t (以厘米计)及重量w (以千克计)是不同的。
附1:用LINGO求解线性规划的例子一奶制品加工厂用牛
奶生产A1、A2
附1:用LINGO求解线性规划的例子
一奶制品加工厂用牛奶生产A、A两种奶制品,1桶牛奶可以在设备甲上用12小时加工成3公斤A,121或者在设备乙上用8小时加工成4公斤A。
根据市场需求,生产的A、A能全部售出,且每公斤A获利212124元,每公斤A获利16元。
现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为4802 小时,并且设备甲每天至多能加工100公斤A,设备乙的加工能力没有限制。
试为该厂制定一个生产计划,1
使每天获利最大,并进一步讨论以下3个附加问题:
1)若用35元可以购买到1桶牛奶,应否作这项投资,若投资,每天最多购买多少桶牛奶,
2)若可以聘用临时工人以增加劳动时间,付给临时工人的工资最多是每小时几元,
3)由于市场需求变化,每公斤A的获利增加到30元,应否改变生产计划, 1
数学模型:设每天用x桶牛奶生产A1 ,用x桶牛奶生产A2 12
目标函数:设每天获利为z元。
x桶牛奶可生产3x公斤A1,获利24*3x,x桶牛奶可生产4*x公11122斤A2,获利16*4x,故z=72x+64x212
约束条件:
原料供应:生产A、A的原料(牛奶)总量不超过每天的供应50桶,即 12
x+x?50 12
劳动时间:生产A、A的总加工时间不超过每天正式工人总的劳动时间480小时,即 12
12x+8x?480 12
设备能力:A的产量不得超过设备甲每天的加工能力100小时,即 1
3x?100 1
非负约束:x、x均不能为负值,即x?0,x?0 2121
综上所述可得
max z=72x+64x 12
s.t.
x+x?50 12
12x+8x?480 12
3x?100 1
x?0,x?0 21
显然,目标函数和约束条件都是线性的,这是一个线性规划(LP),求出的最优解将给出使净利润最大的生产计划,要讨论的问题需要考虑参数的变化对最优解和影响,一般称为敏感性(或灵敏度)分析。
LINGO求解线性规划
用LINGO求解线性规划时,首先在LINGO软件的模型窗口输入一个LP模型,模型以MAX或MIN开始,按线性规划问题的自然形式输入(见下面例子所示)。
以下解加工奶制品的生产计划问题:
由于LINGO中已假设所有的变量都是非负的,所以非负约束条件不必输
入;LINGO也不区分变量中的大小写字符(实际上任何小写字符将被转换为大写字符);约束条件中的“〈=”及“〉=”可用“〈”及
“〉”代替。
在LINGO模型窗口输入如下:
max=72*x1+64*x2;
x1+x2<=50;
12*x1+8*x2<=480;
3*x1<=100;
用鼠标单击菜单中的求解命令(Solve)就可以得到解答,结果窗口显示如下: LP OPTIMUM FOUND AT STEP 2
OBJECTIVE FUNCTION VALUE
1) 3360.000
VARIABLE VALUE REDUCED COST
X1 20.000000 0.000000
X2 30.000000 0.000000
ROW SLACK OR SURPLUS DUAL PRICES
2) 0.000000 48.000000
3) 0.000000 2.000000
4) 40.000000 0.000000
NO. ITERATIONS= 2
计算结果表明:
“LP OPTIMUM FOUND AT STEP2”表示单纯形法在两次迭代(旋转)后得到最优解。
“OBJECTIVE FUNCTION VALUE 1)3360.000”表示最优目标值为
3360.000(LINGO中将目标函数自动看作第1行,从第二行开始才是真正的约束条件)。
“VALUE”给出最优解中各变量(VARIABLE)的值:x=20.000000,x=30.000000。
12
“REDUCED COST”的含义是(对MAX型问题):基变量的REDUCED COST值为0,
对于非基变量,相应的REDUCED COST值表示当非基变量增加一个单位时(其它非基变量保持不变)目标函数减少的量。
本例中两个变量都是基变量。
“SLACK OR SURPLUS”给出松弛(或剩余)变量的值,表示约束是否取等式约束;第2、第3行松弛变量均为0,说明对于最优解而言,两个约束均取等式约束;第4行松弛变量为40.000000,说明对于最优解而言,这个约束取不等式约束。
“DUAL PRICES”给出约束的影子价格(也称为对偶价格)的值:第2、第3、第4行(约束)对应的影子价格分别48.000000,2.000000,0.000000。
“NO. ITERATIONS= 2”表示用单纯形法进行了两次迭代(旋转)。
灵敏度分析,则LINGO还会输出以下结果:
RANGES IN WHICH THE BASIS IS UNCHANGED:
OBJ COEFFICIENT RANGES
VARIABLE CURRENT ALLOWABLE ALLOWABLE
COEF INCREASE DECREASE
X1 72.000000 24.000000 8.000000
X2 64.000000 8.000000 16.000000
RIGHTHAND SIDE RANGES
ROW CURRENT ALLOWABLE ALLOWABLE
RHS INCREASE DECREASE
2 50.000000 10.000000 6.666667
3 480.000000 53.333332 80.000000
4 100.000000 INFINITY 40.000000
以上显示的是当前最优基(矩阵)保持不变的充分条件(RANGES IN WHICH THE BASIS IS UNCHANGED),包括目标函数中决策变量应的系数的变化范围(OBJ COEFFICIENT RANGES)和约束
的右端项的变化范围(RIGHTHAND SIDE RANGES)两部分。
前一部分的输出行
X1 72.000000 24.000000 8.000000
表示决策变量X1当前在目标函数中对应的系数为72,允许增加24和减少8。
也就是说,当该系数在
区间[64,96]上变化时(假设其它条件均不变),当前最优基矩阵保持不变。
对X2对应的输出行也可以类
似地解释。
由于此时约束没有任何改变,所以最优基矩阵保持不变意味着最优解不变(当然,由于目标函
数中的系数发生变化,最优值还是会变的)。
后一部分的输出行
2 50.000000 10.000000 6.666667
表示约束2当前右端项为50,允许增加10和减少6.666667。
也就是说,当该系数在区间[43.333333,
60]上变化时(假设其它条件均不变),当前最优基矩阵保持不变。
对约束3、约束4对应的输出行也可以
类似地解释。
由于此时约束已经改变,虽然最优基矩阵保持不变,最优解和最优值还是会变的。
但是,由
于最优基矩阵保持不变,所以前面的“DUAL PRICES”给出的约束的影子价格此时仍然是有效的。
用LINGO求解加工奶制品的生产计划,结果如下:
20桶牛奶生产A, 30桶生产A,利润3360元。
12
1)35元可买到1桶牛奶,要买吗,
由于原料的影子价格为48,35 <48, 应该买~
2)聘用临时工人付出的工资最多每小时几元,
由于工时的影子价格为2,聘用临时工人付出的工资最多每小时2元
3)A获利增加到 30元/千克,应否改变生产计划 1
由于要使最优解保持不变,X1系数的允许变化范围为[64,96]。
x系数由24*3=72增加为30*3=90,1
在允许范围内。
所以不改变生产计划。