关于产品利润最大数学建模.docx
- 文档编号:11996735
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:17
- 大小:40.86KB
关于产品利润最大数学建模.docx
《关于产品利润最大数学建模.docx》由会员分享,可在线阅读,更多相关《关于产品利润最大数学建模.docx(17页珍藏版)》请在冰豆网上搜索。
关于产品利润最大数学建模
小组成员:
信计1011胡景煌信计1011戴幼婷信计1011温春金
关于产品利润最大的问题
摘要
本题讨论了在生产设备有限的情况下如何分配生产设备使公司上半年的产品可以获得最大利益的问题。
实质上是关于多目标的优化问题,根据题中所给的条件和问题提取相关的约束条件和目标函数,建立模型。
对于问题一是在规定每个月有哪些配件要进行维修而不能用于生产,而且公司每个月的工作时间有限只有24*2*8个小时,还得规定存储量每个月每件产品不能超过100件到六月底各产品剩余为50件的情况下,这时候要如何合理地分配设备使得既能满足最大需求量又能获得最大利益?
由于生产出来的产品需要每个月五元的存储费,因此要求的最大利润就可以用商品的利润减去产品的存储费。
最后建立以总利润最大为目标函数,以满足产品设备数,时间为每个月24*2*8小时为约束条件,建立优化模型,使用lingo编程实现产品设备的划分和利润的最大。
第二题是在第一题的基础上改变对产品设备的约束条件,把规定哪个月需要维修的设备这个约束条件改成规定每个设备除了4台磨床只需安排两台维修外其余设备都得安排一个月用于维修,我们利用在生产的设备加上在修改的设备会等于所拥有的设备建立矩阵,用lingo算法算出最优解。
关键词lingo优化
问题的重述
为了使获得的利润最大,我们应该最有效地分配设备生产适度的产品使获得的产品的利润最大而存储费用最小。
该产总共有四台磨床,两台立钻,三台水平钻,一台镗床和一台刨床。
问题一由于一月份要维修磨床一台,二月份要维修水平钻两台,三月份要维修镗床一台,四月份要维修一台立钻,五月份要一台磨床和一台立钻,六月份要维修一台刨床和一台水平钻,这就意味着一月份可用于生产的设备有三台磨床,两台立钻,三台水平钻,一台镗床和一台刨床,二月份有四台磨床,两台立钻,一台水平钻,一台镗床和一台刨床;三月份有四台磨床,两台立钻,三台水平钻和一台刨床;四月份四台磨床,一台立钻,三台水平钻,一台镗床和一台刨床;五月份有三台磨床,一台立钻,三台水平钻,一台镗床和一台刨床;六月份四台磨床,两台立钻,一台水平钻和一台镗床。
由于一个月的工作时间只有24*2*8小时,所以每台设备的工作量不能超过这个月的工作时间,已知每种产品的未销售的每个月需要存储费每个月五元,每种产品的存储量不能超过100件,一月初无库存,六月末各产品各个储存量都为50,问如何安排生产使总利润最大;第二问中若设备在一到六月内均需安排一个月用于维修(其中四台磨床只需安排两台在上半年维修),这时该怎么分配最优的设备维修使得总利润最大。
模型假设
1、假设每件产品在生产是只能用一个设备,不能在同一时间用到两个或以上的设备。
2、每种产品的生产除了设备、时间有冲突外都是独立的。
3、产品储存期间无损坏现象。
4、消费的产品无退货现象。
5、维修是由自己产里的工作人员进行维修,所以不用额外的维修费。
符号说明
表示第i种产品第j个月的产量;
表示第i种产品的利润;
表示生产单位第i种产品所需的磨床;
表示生产单位第i种产品所需的立钻;
表示生产单位第i种产品所需的水平钻;
表示生产单位第i种产品所需的镗床;
表示生产单位第i种产品所需的刨床;
表示第i产品第j个月的需求量;
表示第i产品第j个月的最大需求量;
表示第i产品第j个月末的剩余量;
W表示总利润最大值;
问题分析
在第一问中因为每种产品每件的利润已经固定的,所以要考虑每种设备的合理分配下使能尽量满足需求获得最大利润需要考虑的是设备的数量有限,每个月的工作时间有限,产品的存储量有限;第一个月可用于生产的设备有三台磨床,两台立钻,三台水平钻,一台镗床和一台刨床,一月初时无库存的;二月份有四台磨床,两台立钻,一台水平钻,一台镗床和一台刨床;三月份有四台磨床,两台立钻,三台水平钻和一台刨床;四月份四台磨床,一台立钻,三台水平钻,一台镗床和一台刨床;五月份有三台磨床,一台立钻,三台水平钻,一台镗床和一台刨床;六月份四台磨床,两台立钻,一台水平钻和一台镗床,并且规定每个月每种产品的库存不能超过100件,第六个月各产品的库存都为50件,为了求得最大利润我们得求出产品利润和存储费用,显然,这是个双目标问题,我们用产品利润
减去存储费用5
即为所获得的利润,而每个月的存储量又会等于上个月的存储量加上这个月生产而未销售的量,为了使程序简单,我们运用矩阵X,Y,M,b分别表示生产量,销售量,最大需求量,生产单位各种产品所需的有关设备台时。
用LINGO软件求出最大利益。
在第二问中要求我们自行拟定设备的维修时间,要求除了磨床只要维修两台外,其他设备每台都得维修,这时利润最大化的关键就是怎么分配好设备维修了,我们不凡设置一个矩阵f0用于表示刚开始每种设备每个月可用的台数,用D表示每种设备每个月用于维修,用0表示这个月不维修,用1表示这个月维修设置一个0-1矩阵,其中,磨床只能拿两台去修,立钻两台,水平钻三台,镗床一台,刨床一台,则F=f0-D就表示每个月每种设备可用的台数。
这样其他条件不变,使利润最大的维修分配工作就可以用lingo程序求出了。
模型的建立与求解
该题第一问中在分配好设备维修的情况下,就得分配好可用设备的使用了,我们主要考虑如何分配时利润最大我们建立以最大利润为目标,以设备和时间,存储量为约束条件来达到目标。
(程序见附录一)
目标函数:
Max=
约束条件:
0
且
Zi=1,2,3,4,5,6,7;j=1,2,3,4,5,6
0且
Zi=1,2,3,4,5,6,7;j=1,2,3,4,5,6
0且
Zi=1,2,3,4,5,6,7;j=1,2,3,4,5,6
=50i=1,2,3,4,5,6,7
=
-
i=1,2,3,4,5,6,7
k=1,2,3,4,5;i=1,2,3,4,5,6,7,8;j=1,2,3,4,5,6
求解结果:
X(1,1)500.00000.000000
X(1,2)700.00000.000000
X(1,3)0.0000000.000000
X(1,4)200.00000.000000
X(1,5)0.0000000.000000
X(1,6)550.00000.000000
X(2,1)888.00000.000000
X(2,2)600.00000.000000
X(2,3)0.0000000.000000
X(2,4)300.00000.000000
X(2,5)100.00000.000000
X(2,6)550.00000.000000
X(3,1)300.00000.000000
X(3,2)200.00000.000000
X(3,3)0.0000000.000000
X(3,4)400.00000.000000
X(3,5)600.00000.000000
X(3,6)0.0000000.000000
X(4,1)300.00000.000000
X(4,2)0.0000000.000000
X(4,3)0.0000000.000000
X(4,4)500.00000.000000
X(4,5)100.00000.000000
X(4,6)350.00000.000000
X(5,1)800.00000.000000
X(5,2)500.00000.000000
X(5,3)0.0000000.000000
X(5,4)200.00000.000000
X(5,5)1100.0000.000000
X(5,6)0.0000000.000000
X(6,1)200.00000.000000
X(6,2)300.00000.000000
X(6,3)400.00000.000000
X(6,4)0.0000000.000000
X(6,5)300.00000.000000
X(6,6)550.00000.000000
X(7,1)0.0000000.000000
X(7,2)140.00000.000000
X(7,3)0.0000000.000000
X(7,4)100.00000.000000
X(7,5)100.00000.000000
X(7,6)0.0000000.000000
Q(1,1)0.0000000.000000
Q(1,2)100.00005.000000
Q(1,3)0.0000005.000000
Q(1,4)0.0000005.000000
Q(1,5)0.0000005.000000
Q(1,6)50.000000.000000
Q(2,1)0.0000000.000000
Q(2,2)100.00005.000000
Q(2,3)0.0000005.000000
Q(2,4)0.0000005.000000
Q(2,5)0.0000005.000000
Q(2,6)50.000000.000000
Q(3,1)0.0000000.000000
Q(3,2)0.0000005.000000
Q(3,3)0.0000005.000000
Q(3,4)0.0000005.000000
Q(3,5)100.00005.000000
Q(3,6)50.000000.000000
Q(4,1)0.0000000.000000
Q(4,2)0.0000005.000000
Q(4,3)0.0000005.000000
Q(4,4)0.0000005.000000
Q(4,5)0.0000005.000000
Q(4,6)50.000000.000000
Q(5,1)0.0000000.000000
Q(5,2)100.00005.000000
Q(5,3)0.0000005.000000
Q(5,4)0.0000005.000000
Q(5,5)100.00005.000000
Q(5,6)50.000000.000000
Q(6,1)0.0000000.000000
Q(6,2)0.0000005.000000
Q(6,3)0.0000005.000000
Q(6,4)0.0000005.000000
Q(6,5)0.0000005.000000
Q(6,6)50.000000.000000
Q(7,1)0.0000000.000000
Q(7,2)0.0000005.000000
Q(7,3)0.0000005.000000
Q(7,4)0.0000005.000000
Q(7,5)100.00005.000000
Q(7,6)50.000000.000000
综上得到最大利润为934730.0
第二问中改变设备的维修计划,让我们自行设计一个计划使得利润最大,我们还是用lingo软件编程。
(程序间附录二)
目标函数:
MaxMax=
约束条件:
0
且
Zi=1,2,3,4,5,6,7;j=1,2,3,4,5,6
0且
Zi=1,2,3,4,5,6,7;j=1,2,3,4,5,6
0且
Zi=1,2,3,4,5,6,7;j=1,2,3,4,5,6
=50i=1,2,3,4,5,6,7
=
-
i=1,2,3,4,5,6,7
k=1,2,3,4,5;i=1,2,3,4,5,6,7,8;j=1,2,3,4,5,6
i=1,2,3,4,5;j=1,2,3,4,5,6,7
求解结果:
X(1,1)500.00000.000000
X(1,2)600.00000.000000
X(1,3)400.00000.000000
X(1,4)0.0000000.000000
X(1,5)0.0000000.000000
X(1,6)550.00000.000000
X(2,1)1000.0000.000000
X(2,2)500.00000.000000
X(2,3)700.00000.000000
X(2,4)0.0000000.000000
X(2,5)100.00000.000000
X(2,6)550.00000.000000
X(3,1)300.00000.000000
X(3,2)200.00000.000000
X(3,3)100.00000.000000
X(3,4)0.0000000.000000
X(3,5)500.00000.000000
X(3,6)150.00000.000000
X(4,1)300.00000.000000
X(4,2)0.0000000.000000
X(4,3)100.00000.000000
X(4,4)0.0000000.000000
X(4,5)100.00000.000000
X(4,6)350.00000.000000
X(5,1)800.00000.000000
X(5,2)400.00000.000000
X(5,3)600.00000.000000
X(5,4)0.0000000.000000
X(5,5)1000.0000.000000
X(5,6)1150.0000.000000
X(6,1)200.00000.000000
X(6,2)300.00000.000000
X(6,3)400.00000.000000
X(6,4)0.0000000.000000
X(6,5)300.00000.000000
X(6,6)550.00000.000000
X(7,1)100.00000.000000
X(7,2)150.00000.000000
X(7,3)200.00000.000000
X(7,4)0.0000000.000000
X(7,5)0.0000000.000000
X(7,6)110.00000.000000
F(1,1)0.0000000.000000
F(1,2)0.0000000.000000
F(1,3)0.0000000.000000
F(1,4)2.0000000.000000
F(1,5)0.0000000.000000
F(1,6)0.0000000.000000
F(2,1)0.0000000.000000
F(2,2)1.0000000.000000
F(2,3)0.0000000.000000
F(2,4)1.0000000.000000
F(2,5)0.0000000.000000
F(2,6)0.0000000.000000
F(3,1)0.0000000.000000
F(3,2)0.0000000.000000
F(3,3)0.0000000.000000
F(3,4)3.0000000.000000
F(3,5)0.0000000.000000
F(3,6)0.0000000.000000
F(4,1)0.0000000.000000
F(4,2)0.0000000.000000
F(4,3)0.0000000.000000
F(4,4)1.0000000.000000
F(4,5)0.0000000.000000
F(4,6)0.0000000.000000
F(5,1)0.0000000.000000
F(5,2)0.0000000.000000
F(5,3)0.0000000.000000
F(5,4)1.0000000.000000
F(5,5)0.0000000.000000
F(5,6)0.0000000.000000
解得最大利润为1088550
模型结果的分析与检验
优点:
1、首先对数据以及元素间的相关性进行分析,处理;
2、所建立的模型与实际紧密相关,由一些利用简单的模型就能达到很好的效果,有很好的推广性。
3、运用lingo软件,可信度高。
缺点:
1、没有考虑设备的维修费用。
模型的推广
本模型的建立是对于研究设备一定的条件下,如何分配设备使得产品利润达到最大,这对提高工厂的利润是有重要意义的!
参考文献
1、姜启源,数学模型(第二版),北京:
高等教育出版社,2003
2、谢金星,优化建模与LINDO/LINGO软件,北京:
清华大学出版社,2005.7
model:
!
定义节点数据;
sets:
product/1..7/:
profit;!
profit表示收益;
month/1..6/:
;!
表示月份;
tool/1..5/:
;!
表示工具编号;
link0(product,month):
x,y,m,q;!
x,y,m,b,q分别表示产量,销售量,最大需求量,剩余量;
link1(tool,product):
b;!
b表示生产台时;
link2(tool,month):
z;!
z表示可用工具数目;
endsets
!
赋值;
data:
b=0.50.7000.30.20.5
0.10.200.300.60
0.200.80000.6
0.050.0300.070.100.08
000.0100.0500.05;
m=5006003002000500
1000500600300100500
3002000400500100
30000500100300
80040050020010001100
2003004000300500
100150100100060;
z=344434
222112
313332
110111
111110;
profit=1006080401109030;
enddata
!
目的函数;
!
以下的i,j,k分别表示产量,月份,工具的循环数;
max=@sum(product(i):
@sum(month(j):
profit(i)*y(i,j)-5*q(i,j)));
!
约束条件;
@for(product(i):
@for(month(j):
@gin(x(i,j));@gin(y(i,j));@gin(q(i,j))));
!
每月剩余量约束;
@for(link0(i,j)|j#eq#6:
q(i,j)=50);
@for(link0(i,j)|j#eq#1:
q(i,j)=0);
@for(link0(i,j):
q(i,j)<=100);
!
每月产量,销售量,最大需求量,库存量约束;
@for(link0(i,j):
y(i,j)<=m(i,j));
@for(link0(i,j)|j#ne#1:
q(i,j)=x(i,j)-y(i,j)+q(i,j-1));
@for(link0(i,j):
q(i,1)=x(i,1)-y(i,1);x(i,1)>=y(i,1));
@for(link2(k,j):
@sum(product(i):
b(k,i)*x(i,j))<=24*16*z(k,j));
end
附录一
model:
!
定义节点数据;
sets:
product/1..7/:
profit;!
profit表示收益;
month/1..6/:
;!
表示月份;
tool/1..5/:
t,d;!
t表示维修机器总数,d表示在工作工具(每种机器每月工作的机器叠加);
link0(product,month):
x,y,m,q;!
x,y,m,b,q分别表示产量,销售量,最大需求量,剩余量;
link1(tool,product):
b;!
b表示生产台时;
link2(tool,month):
l,p,f;!
分别表示工具数目上限,实际可用工具数目,在维修数目;
endsets
!
赋值;
data:
b=0.50.7000.30.20.5
0.10.200.300.60
0.200.80000.6
0.050.0300.070.100.08
000.0100.0500.05;
m=5006003002000500
1000500600300100500
3002000400500100
30000500100300
80040050020010001100
2003004000300500
100150100100060;
l=444444
222222
323332
111111
111111;
profit=1006080401109030;
t=22311;
d=22101555;
enddata
!
目的函数;
!
以下的i,j,k分别表示产量,月份,工具的循环数;
max=@sum(product(i):
@sum(month(j):
profit(i)*y(i,j)-5*q(i,j)));
!
约束条件;
!
整数条件;
@for(product(i):
@for(month(j):
@gin(x(i,j));@gin(y(i,j));@gin(q(i,j))));
@for(tool(k):
@for(month(j):
@gin(p(k,j));@gin(f(k,j))));
!
每月剩余量约束;
@for(link0(i,j)|j#eq#6:
q(i,j)=50);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 产品 利润 最大 数学 建模
![提示](https://static.bdocx.com/images/bang_tan.gif)