1、摘 要本文建立了关于购存销的最优方案模型,购存销的最优方案模型问题是一类线性规划求目标函数最优解的问题,其意义在于要在有限的投资资源里获得最大的收益,这就要求我们要明确目标,牢牢把握住各个方面的信息,深入分析各个变量之间的关系,确定自变量和因变量的相互制约关系,从而列出目标函数及约束条件基于此类模型的特点,我们用数学中的线性规划的方法,利用分步建模法分别建立了该公司冬,春,夏,秋各个季度的购存销模型,然后,根据各个季度之间的联系再列出总目标并整合出其中相关的约束条件。最后利用Lindo数学建模软件进行编程求解,得出以下结果: 方案季度购进库存销售季度代号110001002143.2558143
2、.2558141403196.744186020041600160统计6003.255814600该公司每年的最大利润为4797.674万元。结果还给我们显示了在各类变量在此最大利润的情况下,改变其中一种变量的值就会一个单位时效益的增量,同时还给出在最大收益不变的情况下各类变量的变动范围,也就是说在最佳方案不变的情况下,可以有适当调度各类资源的范围。即结果还给出了灵敏度分析。关键词:购存销;分步建模法;线性规划模型;Lindo;灵敏度分析目 录1 问题重述31.1 相关背景31.2 具体数据要求31.3 需要解决的问题42 问题的分析52.1 目标细化法52.2 购进的方案分析52.3 库存问
3、题分析62.4 销售方案的分析63 模型的假设74 名词解释和符号说明75 模型的建立与求解85.1 冬季情况:85.2 春季情况95.3 夏季情况105.4 秋季情况115.5 总体情况125.6 模型的求解136 模型结果的显示和灵敏度分析136.1 结果显示136.2 灵敏度分析147 模型的评价与推广147.1 模型的优缺点147.2 模型的推广158 参考文献159 附录151 问题重述1.1 相关背景现一个木材储运公司有很大的仓库用以储运出售木材。由于木材季度价格的变化,该公司于每季度初购进木材,一部分于本季度内出售,一部分储存起来以后再销售。然而,库存起来的木材需要额外的存储费用
4、,如果存储过多的话就会有额外的经济支出,并且在每年秋末还不一定能销售完。但如果不库存的话,预计多少销售量就购进多少木材也不行,因为买进卖出的价格均不相同,如果单纯采取这样的方法会与公司利润最大化相矛盾,而且风险很大。基于这种情况,我们需要找出一个合理的购进和库存方案来保证在满足各个条件的基础上实现公司的利润最大化,因此,我们建立了这个问题的线性规划模型。 1.2 具体数据要求已知该公司仓库的最大储存量为20万m3,储存费用为元/m3,式中,u为储存时间(季度数)。已知每季度的买进卖出价及预计的销售量如下表1所示。季度买进价/元/m3卖出价/元/m3预计销售量/万m3冬410425100春430
5、440140夏460465200秋450455160从以上各数据中,我们可以得到三组数据信息:1、储存费用的变化储存费用的计算中要考虑储存时间的变化,也就是说,储存的时间越长,需要维护的费用总和就越多,这就要求在销售时要注意分配销售。2、购进价格的变化 由于市场的价格波动以及供求关系的影响,每个季度木材的进价各不相同,这就要求在进货时要综合考虑各方面的因素,确定一个合理的木材购进方案,这将是一组重要的约束条件。3、销售情况从表1中,我们可以得到每个季度的木材出售价格以及相应的预计销售量,这是销售的原始数据。1.3 需要解决的问题据给定的原始数据,公司要做出最优的购进、库存以及销售方案,就要充分
6、考虑到各个方面的条件和约束。利用给定的数据建立线性规划的数学模型,然后,用一系列约束条件来求得使公司利润最大,同时又使购进、库存、销售各个方面均协调的经营模式。2 问题的分析木材的购存销问题是一类利用线性规划求目标函数最优解的问题,面对此类问题,我们先要深入分析各个变量之间的关系,确定自变量和因变量的相互制约关系,从而列出目标函数及约束条件,建立基于线性规划的数学模型,然后求解出目标函数的最优解,在这个最优解的情况下,我们就可以得出我们要的方案。具体分析如下:2.1 目标细化法我们要建立购存销平衡的方案,无非是想要在条件约束范围内达到公司利润最大化的目标,而单纯考虑这个目标比较困难。因此,我们
7、考虑将公司一年的利润目标分设冬、春、夏、秋四个分目标,这样我们可以根据各个季度的不同情况分别立项建立模型,然后,根据各个季度之间的联系再求解出总目标。这里的联系主要包括库存的多少和销售的分配。2.2 购进的方案分析每个季度的购进价格各不相同且还有库存的木材,所以在每个季度购进木材时要分析库存的多少及销售情况,将公司拥有的总木材量控制在一定的范围内,这样可以有充足的木材可以销售同时也不会有过多的木材用于存储,可以节省支出。2.3 库存问题分析这里讲的库存并不是像每季度都清仓的那种情况一样,也就是说这里的库存并不一定是上个季度库存下来的木材,也有可能是再上次购进的木材,这样根据库存时间的长短而库存
8、费用不同,就不能用简单的数学算术来进行运算。例如:冬季购进的木材,除了供销售的木材外,其余的库存起来,到春季来临之时,考虑到等到夏秋季节时的木材进价较高或者是春季销量有限,于是有部分冬季购进的木材在春季并没有完全卖出而是留在了夏季才卖出。这样,那部分木材在冬季库存的一个季度,在春季同样库存了一个季度。这种情况要计算库存花费就要分开来讨论。2.4 销售方案的分析根据预计的销售量一定的情况下,每个季度要销售出去的木材分两种情况:一是本季度新购进的木材;二是从仓库中拿出来销售的木材。销售方案的不同会影响到上面库存分析的问题,这里第二种用于销售的木材就有上面第三点所提到的情况。因此,我们需要对各个季度
9、作不同的讨论,将各种可能的情况都考虑进去,分别制定方案,然后综合起来考虑,联合购进方案以及库存方案进行求解最后得到一组满意的解。3 模型的假设1、假设木材市场稳定,即不会对木材购进造成影响。2、本季度库存的费用不包括本季度要销售的木材,而只算存储起来备以后销售的部分。3、不会出现市场需求过大而中途购进木材的情况。4、预计销售量准确,不考虑预计更改的情况5、所有的数据均为原始数据,来源真实可靠4 名词解释和符号说明符号符号说明i表示第i(i=1,2,3,4)季度冬、春、夏、秋的代号表示第 i季度购进的木材量表示第i季度购进的木材在第j季度卖出的木材量表示第i季度购进在第j季度库存的木材的库存量表
10、示第i季度公司的利润表示第i季度花费在库存上的费用表示第i季度购进木材的价格表示第i季度销售木材的价格5 模型的建立与求解经过上面问题的分析和模型的假设,接下来我们要建立基于线性规划的木材购存销模型,从上面的分析我们知道,要对各个季度分别进行考虑,即分部建模法,分别建立各个分目标,然后综合考虑求解总目标。这样当我们确定了总目标的最优解时,我们也就分别确定了购进、库存、销售的最优方案了。具体如下:5.1 冬季情况:由于每年的秋季都将所有库存的木材都售完,因此每年的冬季是一个周期的开始,仓库里并没有多余的木材。此时在冬季初购进的木材分两种情况处理:一是用于本季度卖出,根据假设此部分不在库存花费之外
11、;二是库存起来备以后销售,同样,第一季度的销售情况也简单,只考虑本季度刚购进的木材部分而不用考虑从库存拿出来的情况。下面根据购进,库存,销售的关联分别列出关系等式,并给出相应的说明。木材数量平衡关系: =+库存费用: =(a+b)*冬季公司利润: =*-*-变量说明:代表第 1季度(冬季)购进的木材量,表示第1季度购进的木材在第1季度卖出的木材量,表示第1季度购进在第1季度库存的木材的库存量,表示第1季度花费在库存上的费用,表示第1季度公司的利润,表示第1季度购进木材的价格,表示第1季度销售木材的价格,a,b分别是库存费用公式中的两个常量,在这里为第一季度,故u=1。5.2 春季情况 春季除了
12、新购进的木材外,还有冬季库存留下来的那部分木材,这两部分木材都可以作两种处理,一种是用于销售,另一种是库存起来。这样,库存方面既有本季度刚刚购进的木材,也有上个季度库存的木材仍没有卖出的部分,这样在计算库存费用时就要分两部分计算,即u分别为1和2的情况。销售也是由本季度刚刚购进的部分和前一季度留下来的木材两部分构成,只不过销售是以统一价格销售。下面根据购进、库存、销售的关联分别列出关系等式,并给出相应的说明。木材数量平衡关系: +=+库存费用: =(a+b)*+ (a+2b)*春季公司利润: =*(+)-*-变量说明:代表第 1季度(冬季)购进的木材量,表示第2季度购进的木材在第2季度卖出的木
13、材量,表示第1季度购进的木材在第2季度卖出的木材量,表示第1季度购进在第1季度库存的木材的库存量,表示第1季度购进在第2季度库存的木材的库存量,表示第2季度购进在第2季度库存的木材的库存量,表示第2季度花费在库存上的费用,表示第2季度公司的利润,表示第2季度购进木材的价格,表示第2季度销售木材的价格,a,b分别是库存费用公式中的两个常量,在这里为第二季度,故u=1和u=2。5.3 夏季情况夏季除了新购进的木材外,还可能有冬季、春季库存留下来的那部分木材,这两部分木材都可以作两种处理,一种是用于销售,另一种是库存起来。这样,库存方面既有本季度刚刚购进的木材,也有上两季度库存的木材仍没有卖出的部分
14、,这样在计算库存费用时就要分三部分计算,即u分别为1、 2和3的情况。销售也是由本季度刚刚购进的部分和前两季度留下来的木材两部分构成,只不过销售是以统一价格销售。下面根据购进,库存,销售的关联分别列出关系等式,并给出相应的说明。木材数量平衡关系: +=+库存费用: =+夏季公司利润: =*(+)-*-变量说明:代表第 1季度(冬季)购进的木材量,表示第1季度购进的木材在第3季度卖出的木材量,表示第2季度购进的木材在第3季度卖出的木材量,表示第3季度购进的木材在第3季度卖出的木材量,表示第1季度购进在第3季度库存的木材的库存量,表示第2季度购进在第3季度库存的木材的库存量,表示第3季度购进在第3
15、季度库存的木材的库存量,表示第3季度花费在库存上的费用,表示第3季度公司的利润,表示第3季度购进木材的价格,表示第3季度销售木材的价格,a,b分别是库存费用公式中的两个常量,在这里为第三季度,故u=1,n=2和n=3。5.4 秋季情况秋季除了新购进的木材外,还有前面库存留下来的那部分木材,这两部分木材都作同种处理,即全部用于销售。这样,仓库清空就不要计算存储那部分费用,只要考虑销售方面的情况。下面根据购进,销售的关联分别列出关系等式,并给出相应的说明。木材数量平衡关系: +=+秋季公司利润: =*(+)-*变量说明:代表第 4季度(冬季)购进的木材量,表示第1季度购进的木材在第4季度卖出的木材
16、量,表示第2季度购进的木材在第4季度卖出的木材量,表示第3季度购进的木材在第4季度卖出的木材量,表示第4季度购进的木材在第4季度卖出的木材量,表示第1季度购进在第3季度库存的木材的库存量,表示第2季度购进在第3季度库存的木材的库存量,表示第3季度购进在第3季度库存的木材的库存量,表示第4季度公司的利润,表示第4季度购进木材的价格,表示第4季度销售木材的价格。5.5 总体情况下面我们联系四个季度的情况,从总体的角度寻找他们之间的联系,然后列出目标表达式。总体购进量与销售量的平衡关系=约束条件:目标表达式: 公司一年的总收益等于各个季度的收益之和,即公司的年总利润m为:m=+5.6 模型的求解将模
17、型中的相关约束条件和目标函数进行适当的整理后,然后,将上述模型利用Lindo软件编程求得其结果(详见附录2)6 模型结果的显示和灵敏度分析6.1 结果显示经过求解,得出如下表的最优方案: 方案季度购进库存销售季度代号110001002143.2558143.2558141403196.744186020041600160统计6003.255814600从而得出公司每年最大收益为4797.674万元。6.2 灵敏度分析从运行结果可以看出,当够进量,库存量以及销售量其中之一细微变化是就会引起其他变量的变动,具体的如附录二所示7 模型的评价与推广7.1 模型的优缺点1.优点: (1)利用Lindo软
18、件对数据进行处理并求解,简便,直观、快捷,并且,快速给出了各个变量的情况和变量变化时给结果带来直接影响的罗列,即直接给出了敏感性分析;(2)本文建立的模型与实际紧密联系,并且可以直接移植在与此模型相关的最优化问题上。(3)本模型简单直观,采用分步建模法,思路清晰,容易理解。2.缺点:(1)本模型只考虑市场稳定的情况下运作,将一些复杂的因素简化了,即不能处理相对较复杂的问题上。(2)利用Lindo处理数据不能用图形化的方法来描述各个变量的变动情况,不大直观。7.2 模型的推广可以利用事先预测市场的变动,进而可以把此模型推广为求整个周期运作期间市场变动情况下改变购进量和销售量的模型,这样就需要考虑
19、根据实际情况作出各个阶段的最优方案。8 参考文献1 陈东彦,数学建模,北京:科学出版社,2007.12 第一版;2 徐全智,杨晋浩,数学建模入门,成都,电子科技大学出版社,20039 附录附录1(A) 一个木材储运公司有很大的仓库用以储运出售木材。由于木材季度价格的变化,该公司于每季度初购进木材,一部分于本季度内出售,一部分储存起来以后。已知该公司仓库的最大储存量为20万m3,储存费用为元/m3,式中,u为储存时间(季度数)。已知每季度的买进卖出价及预计的销售量如下表所示。季度买进价/元/m3卖出价/元/m3预计销售量/元/m3冬410425100春430440140夏460465200秋45
20、0455160由于木材不宜久贮,所有库存木材应于每年秋末售完,试建立这个问题的线性规划模型。附录2源程序:max m1+m2+m3+m4stx1-k11=100n1-170k11=0m1+410x1+n1=42500x2+k11-k22-k12=140n2/k22-270k12/k22=170m2+430x2+n2=61600x3+k22+k12-k33-k23-k13=200n3-270k23-370k13-170k33=0m3+460x3+n3=93000x4+k33+k23+k13=160m4+450x4=72800x1+x2+x3+x4=600k12-k110k13-k120k23-k
21、220k22+k1220k33+k23+k1320k1120k1220k2220k1320k2320k3320end运行结果:LP OPTIMUM FOUND AT STEP 1 OBJECTIVE FUNCTION VALUE 1) 4797.674 VARIABLE VALUE REDUCED COST M1 1500.000000 0.000000 M2 0.000000 0.069767 M3 2497.674316 0.000000 M4 800.000000 0.000000 X1 100.000000 0.000000 K11 0.000000 0.000000 N1 0.000
22、000 0.705882 X2 143.255814 0.000000 K22 3.255814 0.000000 K12 0.000000 0.000000 N2/K22 170.000000 0.000000 K12/K22 0.000000 0.000000 N2 0.000000 1.069767 X3 196.744186 0.000000 K33 0.000000 180.000000 K23 0.000000 280.000000 K13 0.000000 380.000000 N3 0.000000 0.000000 X4 160.000000 0.000000 ROW SLA
23、CK OR SURPLUS DUAL PRICES 2) 0.000000 0.000000 3) 0.000000 -0.294118 4) 0.000000 1.000000 5) 0.000000 -50.000000 6) 0.000000 0.000000 7) 0.000000 1.069767 8) 0.000000 -50.000000 9) 0.000000 -1.000000 10) 0.000000 1.000000 11) 0.000000 -40.000000 12) 0.000000 1.000000 13) 0.000000 -410.000000 14) 0.0
24、00000 0.000000 15) 0.000000 0.000000 16) 3.255814 0.000000 17) 16.744186 0.000000 18) 20.000000 0.000000 19) 20.000000 0.000000 20) 20.000000 0.000000 21) 16.744186 0.000000 22) 20.000000 0.000000 23) 20.000000 0.000000 24) 20.000000 0.000000NO. ITERATIONS= 1 RANGES IN WHICH THE BASIS IS UNCHANGED:
25、OBJ COEFFICIENT RANGES VARIABLE CURRENT ALLOWABLE ALLOWABLE COEF INCREASE DECREASE M1 1.000000 INFINITY 0.206897 M2 1.000000 0.069767 INFINITY M3 1.000000 0.260870 0.065217 M4 1.000000 0.400000 INFINITY X1 0.000000 119.999992 INFINITY K11 0.000000 119.999992 INFINITY N1 0.000000 0.705882 INFINITY X2
26、 0.000000 INFINITY 30.000015 K22 0.000000 0.000000 30.000015 K12 0.000000 119.999992 0.000000 N2/K22 0.000000 0.000000 INFINITY K12/K22 0.000000 0.000000 INFINITY N2 0.000000 1.069767 INFINITY X3 0.000000 30.000015 119.999992 K33 0.000000 180.000000 INFINITY K23 0.000000 280.000000 INFINITY K13 0.00
27、0000 380.000000 INFINITY N3 0.000000 1.027027 INFINITY X4 0.000000 INFINITY 180.000000 RIGHTHAND SIDE RANGES ROW CURRENT ALLOWABLE ALLOWABLE RHS INCREASE DECREASE 2 100.000000 0.000000 0.000000 3 0.000000 0.000000 621.951233 4 42500.000000 INFINITY 1500.000000 5 140.000000 0.000000 0.000000 6 170.00
28、0000 INFINITY 170.000000 7 61600.000000 7200.000000 1400.000000 8 200.000000 0.000000 0.000000 9 0.000000 2497.674316 0.000000 10 93000.000000 INFINITY 2497.674316 11 160.000000 0.000000 0.000000 12 72800.000000 INFINITY 800.000000 13 600.000000 0.000000 0.000000 14 0.000000 3.255814 0.000000 15 0.0
29、00000 INFINITY 0.000000 16 0.000000 INFINITY 3.255814 17 20.000000 INFINITY 16.744186 18 20.000000 INFINITY 20.000000 19 20.000000 INFINITY 20.000000 20 20.000000 INFINITY 20.000000 21 20.000000 INFINITY 16.744186 22 20.000000 INFINITY 20.000000 23 20.000000 INFINITY 20.000000 24 20.000000 INFINITY 20.00000018