运筹学案例分析
案例2:机械产品生产计划问题
信科0903班
1304090403
罗会会 指导老师:张鸿雁
20##-3-30
案例2(机械产品生产计划问题)机械加工厂生产7种产品(产品1到产品7)。该厂有以下设备:四台磨床、两台立式钻床、三台水平钻床、一台镗床和一台刨床。每种产品的利润(单位:元/件,在这里,利润定义为销售价格与原料成本之差)一级生产单位产品需要的各种设备的工时(小时/件)如表2所示,其中短划线表示这种产品不需要相应的设备加工。
表1
从一月份到六月份,每个月中需要检修设备见下表(在检修月份,检修设备完全不能用于生产)。每个月各种产品的市场销售量上限如4表所示。
每种产品的最大库存量为一百件,库存费用每件每月0.5元,在一月初,所有产品都没有库存,而要求在六月底,每种产品都有50件库存。工厂每天开两班,每班8小时,为简单起见,假定每月都工作24天。
表3
表4
生产过程中,各种工序没有先后次序要求;
(1)制定六个月的生产、库存、销售计划 使得六个月的总利润最大;
(2)在不改变以上计划的前提下,哪几个月中哪产品的售价可以提高以达到增加利润的目的,价格提高的幅度有多大。
(3)哪些设备的能力应该增加?请列出购置新设备的优先顺序。
(4)是否可以通过通过调整现有的设备检修计划来提高利润?提出一个新的设备检修计划,使原来计划检修的设备在这半年中都得到检修而使利润尽可能则增加。
(5)最优设备检修设备计划问题,构造一个最优设备检修计划模型,使在这半年中设备的检修台数满足案例中的要求而使利润最大。
?分析:要使产品利润最高,也就是说每个月的各种产品的加工,销售,库存三个方面的费用的一个混合约束使得总利润最大。假设这三个变量分别是xij ,yij ,zij;(i=1,2,3,4,5,6;j=1,2,3,4,5,6,7)
现在找一下第三个变量之间的关系, 即第i-1月的库存量+第i月的生产量=第i月的销售量+第i月的库存量。
一月份之前是没有库存的,但是题目要求在六月份各种产品的库存是50,即对第j种产品,有x1j-y1j-z1j=0;
z1j+x2j-y2j-z2j=0;...z5j+x6j-y6j=50.(j=1,2,3,4,5,6,7)
这是库存量的约束条件。总共42个约束。
再看工时的约束:
先看一月份的,以后月份类推;
0.5x1j+0.7x2j+0.3x5j+0.2x6j+0.5x7j1152;
0.1x1j+0.2x2j+0.3x4j+0.6x6j768;
0.2x1j+0.8x3j+0.6x71152;
0.05x1j+0.03x2j+0.07x4j+0.1x5j+0.08x7j384;
0.01x1j+0.05x5j+0.05x7j384;
xij0;(i=1,2,3,4,5,6;j=1,2,3,4,5,6,7)
这是生产量的约束 总共有67=42个约束。
再看销售量的约束:由表4
得到:y11500;
y121000;
......
y21600;.
......
y61500;
........
yij某值,此值由表4相应得到。
这是销售的限制,总共42个约束。
看利润函数maxf=10xi1+6xi2+3xi3+4xi4+xi5+9xi6+3xi7-0.5.建立线性规划模型:maxf=10xi1+6xi2+3xi3+4xi4+xi5+9xi6+3xi7-0.5.
x1j-y1j-z1j=0;
z1j+x2j-y2j-z2j=0;
.......
z5j+x6j-y6j=50.(j=1,2,3,4,5,6,7)
0.5x1j+0.7x2j+0.3x5j+0.2x6j+0.5x7j1152;
0.1x1j+0.2x2j+0.3x4j+0.6x6j768;
0.2x1j+0.8x3j+0.6x6j1152;
0.05x1j+0.03x2j+0.07x4j+0.1x5j+0.08x7j384;
0.01x1j+0.05x5j+0.05x7j384;
xij0;(i=1,2,3,4,5,6;j=1,2,3,4,5,6,7)
y11500;
y121000;
...
y61<=600;
yij某值;(i=1,2,3,4,5,6;j=1,2,3,4,5,6,7)
将这些数据代入lindo求解。
?关于设备检修计划的优化问题;我们先将机器编号,类型1:
磨床;类型2:立钻;类型3:水平钻; 类型4:镗床; 类型5:刨床;
于是引入变量mti 。t是类型数(t=1,2,3,4,5);i是月份。
mit即表示第i份第t类型的机床进行停车维修的台数。
1. 当t为1,2时,mit最大值是2.;
2. 当t为4,5时,mit最大值是1;
3. 当为3时,mit最大值是3;
这样有56=30个变量。
于是以前的模型就会变化:
假如把 机械加工能力以小时计的话,第i月份的研磨能力536-384mit ;
于是得到新的模型:maxf'=maxf=10xi1+6xi2+3xi3+4xi4+xi5+9xi6+3xi7-0.5.
0.5x1j+0.7x2j+0.3x5j+0.2x6j+0.5x7j+384mti1536;
0.1x1j+0.2x2j+0.3x4j+0.6x6j+384mti768;
0.2x1j+0.8x3j+0.6x71152;
0.05x1j+0.03x2j+0.07x4j+0.1x5j+0.08x7j+384mti384;
0.01x1j+0.05x5j+0.05x7j+384mti384;
y11500;
y121000;
.......
y61600;
yij某值;
(i=1,2,3,4,5,6;j=1,2,3,4,5,6,7)
=2, t=1,2;
=3, t=3;
=1, t=4;
=1, t=5;
将数据代入Lindo求解。
结果分析:
参考文献:《运筹学》I 类 第二版 徐玖平 胡智能等
附录:用Lindo求解过程。
第二篇:运筹学及应用案例-动态规划
徐州工程学院
数理学院
案例分析报告
课程名称 运筹学及应用
案例分析题目 农场五年计划的制定
专 业
班 级
姓 名
学 号
指导教师
成绩等级
20##年 12 月 4 日
目 录
小组成员分工………………………………………………………………………1
一.问题描述………………………………………………………………………2
二.问题分析………………………………………………………………………2
三.模型建立………………………………………………………………………3
四.模型求解与程序设计…………………………………………………………15
小组人员详细分工
一.问题描述
农场五年计划的制定
英国某农场主有200英亩土地的农场,现在要为未来五年制定生产计划:现在他有120头母牛,其中20头为不到2岁的幼牛,100头为产奶牛。每头幼牛需用2/3英亩土地供养,每头产奶牛需用1英亩。产奶牛平均每头每年生1.1头牛,其中一半为公牛,生出后不久即卖掉,平均每头卖30英镑。另一半为母牛,可以在生出后不久卖掉, 平均每头卖40英镑,也可以留下饲养,养至2岁成为产奶牛。幼牛每年损失5%,产奶牛每年损失2%。产奶牛养至12岁就卖掉,平均每头卖120英镑。现有的幼牛0岁和1岁各10头,100头产奶牛,从2岁到11岁,每一年龄的都有10头,应该卖掉的小母牛都已卖掉。
现有的20头是要饲养成产奶牛的,一头牛所产的奶提供年收入370英镑。现在最多只能养130头牛,超过此数每多养一头,要投资200英镑。每头产奶牛每年消耗0.6吨粮食和0.7吨甜菜,粮食和甜菜可由农场种植出来.每英亩产甜菜1.5吨,只有80英亩的土地适于种粮食,且产量不同,按产量可分为4组:第一组20英亩,亩产1.1吨;第二组30英亩,亩产0.9吨;第三组20英亩,亩产0.8吨;第四组10英亩,亩产0.65吨。从市场购粮食每吨90英镑,卖粮食每吨75英镑,买甜菜每吨70英镑,卖出50英镑。
养牛和种植所需劳动量为:每头幼牛每年10小时,每头产奶牛每年42小时,种一英亩粮食每年需4小时,种一英亩甜菜每年需14小时,其它费用:每头幼牛每年50英镑,每头产奶牛每年100英镑,种粮食每英亩每年15英镑,种甜菜每英亩每年10英镑。劳动费用现在每年为4000英镑,提供5500小时的劳动量,超过此数的劳动量每小时费用为1.20英镑。
任何投资和支出都从10年期贷款得到,贷款年利率15%,每年偿还本息总和的1/10,十年还清,每年的货币之差不能为负值.。此外,农场主不希望产奶牛的数目在五年末较现在减少超过50%,也不希望增加超过75%.
问题是应如何安排生产计划,使收益最大?
二.问题分析
农场养牛问题是一个农场生产计划最优化问题,农场投资最少收益为最大,要合理生产计划,减少不必要的成本。由题意有以下几点:
1. 第四年不饲养刚出生的小奶牛,第五年不饲养小奶牛,全部饲养产奶牛盈利最大。
2.种粮食和甜菜均有利可图,种粮食平均盈利比种甜菜平均盈利大,顾可以先满足粮食产量再考虑甜菜的产量。
每年粮食的产量为(吨):
3.第i年0岁的幼母牛要两后才成为产奶牛,即第i+2年成为产奶牛,所以第四、五年不能盈利出生的幼母牛全部卖,所以第四、五年出生的幼母牛全部卖:
4.使用穷举法求解,先不考虑贷款及还款做出最优解,然后通过每年运营所需费用以及贷款所需费用计算出贷款金额
5.贷款问题
任何投资都是从5年期的贷款得到。贷款的年利率为10%,每年偿还本息总共的1/5,五年还清。此外,农场主不希望产奶牛的数目在五年末与现在相比减少超过50%,也不希望增加超过75%。
三.模型建立
1符号说明
2 第一年收入情况
2 .1第一年总收入:
产奶收入:
卖公幼崽收入:
卖母幼崽收入:
卖粮食收入:
卖甜菜收入:
卖老牛收入:
总收入:
2.2 第一年总支出:
买甜菜的:
买粮食的:
超过160头牛的花费:
幼崽每年的消耗:
产奶牛每年的消耗:
种粮食的的花费:
种甜菜的花费:
劳动费用:
还贷费用:
总支出:
约束条件:
留下的幼牛崽头数:
面积:
消耗粮食:
消耗甜菜:
耗时:
牛的总头数限制:
产量的限制:
利用计算机得出第一年的最大净利润值为P1=53460英磅(计算程序看附录)
3第二年收入情况
3.1第二年总收入:
产奶收入:
卖公幼崽收入:
卖母幼崽收入:
卖粮食收入:
卖甜菜收入:
卖老牛收入:
总收入:
3.2 第二年总支出:
买甜菜的:
买粮食的:
超过160头牛的花费:
幼崽每年的消耗:
产奶牛每年的消耗:
种粮食的的花费:
种甜菜的花费:
劳动费用:
还贷费用:
总支出:
约束条件:
留下的幼牛崽头数:
面积:
消耗粮食:
消耗甜菜:
耗时:
牛的总头数限制:
产量的限制:
4 第三年收入情况
4.1第三年总收入:
产奶收入:
卖公幼崽收入:
卖母幼崽收入:
卖粮食收入:
卖甜菜收入:
卖老牛收入:
总收入:
4.2第三年总支出:
买甜菜的:
买粮食的:
超过160头牛的花费:
幼崽每年的消耗:
产奶牛每年的消耗:
种粮食的的花费:
种甜菜的花费:
劳动费用:
还贷费:
总支出:
约束条件:
留下的幼牛崽头数:
面积:
消耗粮食:
消耗甜菜:
耗时:
牛的总头数限制:
产量的限制:
5第四年收入情况
5.1第四年的收入:
产奶收入:
卖公幼崽收入:
卖母幼崽收入:
卖粮食收入:
卖甜菜收入:
卖老牛收入:
总收入费用:
5.2第四年总支出:
买甜菜的:
买粮食的:
超过160头牛的花费:
幼崽每年的消耗:
产奶牛每年的消耗:
种粮食的的花费:
种甜菜的花费:
劳动费用:
还贷费用:
总支出费用
约束条件:
面积:
消耗粮食:
消耗甜菜:
耗时:
牛的总头数限制:
产量的限制:
6 第五年收入情况
6.1 第五年收入:
产奶收入:
卖公幼崽收入:
卖母幼崽收入:
卖粮食收入:
卖甜菜收入:
卖老牛收入:
总收入费用:
6.2第五年总支出:
买甜菜的:
买粮食的:
超过160头牛的花费:
产奶牛每年的消耗:
种粮食的的花费:
种甜菜的花费:
劳动费用:
还贷费用:
总支出费用:
约束条件:
面积:
消耗粮食:
消耗甜菜:
耗时:
牛的总头数限制:
产量的限制:
7 第一至第五年的净利润
1——5年的净利润:
四.模型求解与程序设计
因为F1为S1的分段函数,所以,考虑S1分别为四个阶段的产量,用LINGO求解。
当S1<=20英亩时:
max=-90*x1+75*x2+50*x3+15*s1+10*h1+51050;
x1<=55;
0.7*x1+s1+h1<=86;
x2<=1.1*s1-60;
x3<=1.5*h1-70;
s1<=20;
No feasible solution found.
Total solver iterations: 3
Variable Value Reduced Cost
X1 0.000000 149.5000
X2 0.000000 0.9000000E+11
X3 29.00000 0.000000
S1 20.00000 0.000000
H1 66.00000 0.000000
Row Slack or Surplus Dual Price
1 38.00000 1.000000
2 55.00000 0.000000
3 0.000000 85.00000
4 -38.00000 0.9000000E+11
5 0.000000 50.00000
当20<=S1<=30时:
max=-90*x1+75*x2+50*x3+15*s1+10*h1+51050;
x1<=55;
0.7*x1+s1+h1<=86;
x2-0.9*s1+56<=0;
x3<=1.5*h1-70;
s1<=50;
s1>=20;
No feasible solution found.
Total solver iterations: 3
Variable Value Reduced Cost
X1 0.000000 0.1134000E+12
X2 0.000000 0.1800000E+12
X3 0.000000 0.1080000E+12
S1 39.33333 0.000000
H1 46.66667 0.000000
Row Slack or Surplus Dual Price
1 41.20000 1.000000
2 55.00000 0.000000
3 0.000000 0.1620000E+12
4 -20.60000 0.1800000E+12
5 0.000000 0.1080000E+12
6 10.66667 0.000000
7 19.33333 0.000000
当50<=S1<=70时:
max=-90*x1+75*x2+50*x3+15*s1+10*h1+51050;
x1<=55;
0.7*x1+s1+h1<=86;
x2-0.8*s1+51<=0;
x3<=1.5*h1-70;
s1<=70;
s1>=50;
、 No feasible solution found.
Total solver iterations: 3
Variable Value Reduced Cost
X1 0.000000 0.9450000E+11
X2 0.000000 0.1687500E+12
X3 0.000000 0.9000000E+11
S1 63.75000 0.000000
H1 22.25000 0.000000
Row Slack or Surplus Dual Price
1 36.62500 1.000000
2 55.00000 0.000000
3 0.000000 0.1350000E+12
4 0.000000 0.1687500E+12
5 -36.62500 0.9000000E+11
6 6.250000 0.000000
7 13.75000 0.000000
当S1>=70时:
max=-90*x1+75*x2+50*x3+15*s1+10*h1+51050;
x1<=55;
0.7*x1+s1+h1<=86;
x2-0.65*s1+40.5<=0;
x3<=1.5*h1-70;
s1<=80;
s1>=70;
No feasible solution found.
Total solver iterations: 2
Variable Value Reduced Cost
X1 0.000000 0.9450000E+11
X2 0.000000 0.6923077E+11
X3 0.000000 0.9000000E+11
S1 62.30769 0.000000
H1 23.69231 0.000000
Row Slack or Surplus Dual Price
1 42.15385 1.000000
2 55.00000 0.000000
3 0.000000 0.1350000E+12
4 0.000000 0.6923077E+11
5 -34.46154 0.9000000E+11
6 17.69231 0.000000
7 -7.692308 -0.9000000E+11
然后,通过matlab编程,分别带入各情况下的参数值:
function y=profit(x)%定义利润函数
a=[-90,75,50,15,10]';%系数矩阵
y=x*a+51050;%求利润
y
其系数矩阵分别为
[0.000000,0.000000,29.00000,20.00000,66.00000]
[0.000000,0.000000,0.000000,39.33333,46.66667]
[0.000000,0.000000,0.000000,39.33333,46.66667]
将其分别带入profit(x)利润函数,得出三种情况下的最佳利润分别为:
y =
53460
y =
5.2107e+004
y =
5.2107e+004
附录A:指导教师评语及成绩
成绩评定:
指导教师:
日 期: