订货论文1231.docx
《订货论文1231.docx》由会员分享,可在线阅读,更多相关《订货论文1231.docx(36页珍藏版)》请在冰豆网上搜索。
订货论文1231
订货优化问题
摘要
1、本文结合题目要求和实际情况,提出两种假设:
各种货物单独订货,彼此无不干涉;各种货物同时订货,且共用同一个周期。
另外,在决定订货方案时从长远着眼,为尽可能减少订货费用,使周期T可取任意值,而未必在一年内完成整数个周期。
2、在“各种货物单独订货彼此不干涉”的情况下,列出了目标函数和约束方程,运用LINGO进行了求解。
又在分析了各种费用对于对于最优解的求解的影响后,优先考虑其中影响较大的因素,对模型改进后再次运用LINGO求解。
3、在“各种货物同时订货,且共用同一个周期”的假设下,该公司将的订货、运货、存货、销售,都将以T为周期,并保持同一方式进行。
对于这种简明的订货方式,列出了目标函数和约束方程,运用LINGO进行了求解。
4、最后对模型进行了评价分析和改进,提出了对公司订货的建议。
关键词:
LINGO线性规划约束条件
问题重述
某个商业公司管理着5个仓库(B1—B5)和8个分店(C1—C8),主要经营10种物资,而这些物资全部向3个工厂(A1—A3)进货。
公司的工作流程是根据8个分店的销售需要,先向工厂订货,然后将各种物资运送到仓库,再由仓库运送到分店进行销售。
分店只消耗物资,不储存物资。
各个工厂生产10种物资的全部或部分物资,年产量如表一,而各种物资单价如表二。
每个工厂到每个仓库的运输单价如表三,每个仓库的容量如表四。
同种物资在不同的仓库的库存费一样,而不同物资的库存费是不同的,另外每种物资有着自己的体积,物资的库存费与单位占用库容如表五。
5个仓库到8个分店的运输单价如表六,8个分店对物资的年需求量如表七。
(提示:
可以假设需求是均匀发生的,每个固定的周期就到仓库提货,仓库的货物也均匀减少)。
公司每次订货都会有其它的各种花费,不妨称为订货费,设公司每次的订货费为1万元,另外,一次订货可使用的流动资金上限为100万元,如果进行销售时不允许缺货,请问:
公司一年之中应该怎样组织订货(各种物资的订货次数、订货量、向哪个工厂订货以及运输方案)使得总的花费最少?
问题假设
(1)订货严格依据计划执行,不考率订货中产生的突发因素(如人力、天气等)。
(2)假定工厂和仓库在能力范围内将尽可能的满足本公司的要求。
(3)分店货物销售不考虑随机性,即货物随时间均匀消耗。
(4)每个周期开始的时候开始进货,周期结束的时候仓库货物消耗完。
(5)忽略运输货物过程中所消耗的时间。
符号说明
符号
意义
T
订货周期(年)
P
订货中的总花费
P1
出厂物资总额
P2
从工厂到仓库运费
P3
货物储存费
P4
从仓库到分店的运费
Pt
将一个周期的订货花费
rij
Wr从i厂到j仓库的数量
ij
从i厂到j仓库的运费
Wr在j仓库的储存单价
Wr从j仓库到k分店的运费
Ai的Wr的产量
Ck对Wi的需求量
问题分析
题目需要选择订货方式、订货周期、订货量、及运输方案,使得总花费P获得最小值。
这类问题为线性优化问题,我们需要找出目标函数及约束条件,然后利用LINGO求解。
由于需要对多种商品、多个工厂库存分销商店进行规划,目标函数和约束条件难以直接表达。
因此,我们建立以下两种模型来简化求解的复杂性。
一种是假设每次订货只定一种货物,各种货物的订购存储销售互不影响。
此时每种货物都有自己的订货周期。
另一种是假设订货周期固定,每个周期的订货单及储存方式、运输方式都是确定的。
此时只需分析一个订货周期的费用即可。
由于货物不断的从仓库运走,因此每个时刻的储存量、储存费用并不相同。
因为货物消耗为线性的,储存量、储存费也可线性表示出来。
模型的建立和求解
订货中的总花费P为订货费P0、物资总额P1、运输费、储存费P3。
其中每次订货费固定为1万元,运输费为从工厂到仓库运费P2、从仓库到分店的运费P4之和。
即:
P=P0+P1+P2+P3+P4
因此我们需要选择订货方式、订货周期、订货量、及运输方案,使得P获得最小值。
模型一、
货物Wr(r=1,2,3,4,5,6,7,8,9,10)从工厂Ai(i=1,2,3)到仓库Bj(j=1,2,3,4,5),再到Ck(k=1,2,3,4,5,6,7,8),可以有n=10×3*5*8=1200种不同的路线选择,此时选择范围过于宽广。
因此,我们假定:
一次订货只进一种货物,各种货物的订单互不干扰和影响。
这样,就可以简化为每种货物有120种运输方法。
如下图所示。
图1
Wi的一年订货次数:
Nr=
T-------订货周期(年)
P0=
从厂家买入的物资总额为:
P1=
pij-----Ai出厂的Wr的价格
rij--------Wr从i厂到j仓库的数量
从工厂到仓库的总运费为:
P2=
ij---------从i厂到j仓库的运费
总的存储费为:
P3=[
/2]
---------Wr在j仓库的储存单价
从仓库到分店的总运费为:
P4=
-------Wr从j仓库到k分店的数量
--------Wr从j仓库到k分店的运费
订货的总花费:
P=P0+P1+P2+P3+P4
这里我们还要考虑到以下限制:
每次订货费用小于100万Pr<100(万)
从仓库运出的货物量要小于厂家的生产能力
即Nr
<
(r=1,2,3,4,5,6,7,8,9,10i=1,2,3)
-----Ai的Wr的产量
从工厂运到仓库的货物等于从仓库运到分店的货物
即
rij=
(r=1,2,3,4,5,6,7,8,9,10j=1,2,3,4,5)
仓库中的货物小于仓库容量
即
=
(j=1,2,3,4,5)
运到个分店的货物满足需求
即Nr
=
(r=1,2,3,4,5,6,7,8,9,10j=1,2,3,4,5,6,7,8)
-----Ck对Wi的需求量
对此线性规划问题,用LINGO求解最为方便精确。
将上述方程式输入程序中,运行之后可以求得我们所需要的最优解。
用LINGO求解当所有条件有约束时,很难解出全局最优解,局部最优解很快解出,在很长时间不变。
局部最优解中:
从厂家买入费用10648750
厂家到仓库运费365985.0
从仓库到分店运费95817.00
订货费815553.0
库存费330375.8
总计12256480
可以看出,除了从厂家买入费用,其余都相对较小,剩下的最大是订货费。
而订货费与库存费分别与订货次数成正比与反比,这也是求解较慢的原因。
现不考虑运费,直接从厂家运到分店,这里约束改为:
运出厂家的小于厂家产量
运到分店的等于需求
订的货小于总的库存空间
然后考虑运输与库存,这只是一个线性规划,求解较快。
由于用到上次求解结果,等号不能严格取到,这里定义一小量做为误差限(0.08)(具体程序见附录)
最终得出结果:
从厂家买入费用10648800
厂家到仓库运费373636.9
从仓库到分店运费90294.14
订货费1101632.
库存费202330.0
总计12416693
这种方法虽然并非最优解,但速度提高很多,便于做快速决策。
此时用LINGO求得的最优订货方案如下表格:
一年的订货次数:
货物编号
1
2
3
4
5
6
7
8
9
10
订货次数
11.765
9.6515
11.974
13.158
11.295
7.5737
11.418
13.238
11
9.090909
各货物的年运量如下
W1
仓库\工厂
A1
A2
A3
B1
0
710.01
0
B2
8.00E-03
0
0
B3
8.00E-03
0
0
B4
0
1290.032
0
B5
1800.021
0
0
分店\仓库
B1
B2
B3
B4
B5
C1
59.986
0
0
0
1.30E-02
C2
0
0
0
90.008
0
C3
150.008
0
0
0
0
C4
0
0
0
0
299.992
C5
0
0
0
400.008
0
C6
500.008
0
0
0
0
C7
0
0
0
800.008
0
C8
0
0
0
0
1500.008
W2
仓库\工厂
A1
A2
A3
B1
0
0
1000.002
B2
0
0
0
B3
0
0
1400.008
B4
0
1100.263
99.721
B5
0
0
0
分店\仓库
B1
B2
B3
B4
B5
C1
0
0
299.992
0
0
C2
799.992
0
0
0
0
C3
0
0
500.008
0
0
C4
0
0
399.992
0
0
C5
0
0
0
0
0
C6
200.0015
0
0
0
0
C7
0
0
0
1199.992
0
C8
0
0
200.008
0
0
W3
仓库\工厂
A1
A2
A3
B1
0
0
150.008
B2
1957.339
0
0
B3
0
0
556.45
B4
90
0
0
B5
886.2827
0
0
分店\仓库
B1
B2
B3
B4
B5
C1
0
0
0
0
800.008
C2
0
500.008
0
0
0
C3
0
0
400.008
0
0
C4
0
0
156.434
0
43.574
C5
150
0
0
0
0
C6
0
1000.008
0
0
0
C7
0
0
0
89.992
0
C8
0
457.3153
0
0
42.69274
W4
仓库\工厂
A1
A2
A3
B1
0
973.4916
326.5084
B2
0.008
0
0
B3
0
0
1173.496
B4
123.4856
26.50841
0
B5
626.5044
0
0
分店\仓库
B1
B2
B3
B4
B5
C1
0
0
0
0
99.992
C2
1199.992
0
0
0
0
C3
0
0
800.008
0
0
C4
0
0
373.4796
0
26.51241
C5
99.992
0
0
0
0
C6
0.008
0
0
0
0
C7
0
0
0
149.992
0
C8
0
0
0
0
499.992
W5
仓库\工厂
A1
A2
A3
B1
0
0
0
B2
1000.008
0
0
B3
0.008
0
0
B4
289.992
0
0
B5
1849.994
0
0
分店\仓库
B1
B2
B3
B4
B5
C1
0
0
0
0
199.992
C2
0
0
0
0
500.008
C3
0
599.992
0
0
0
C4
0
0
0
0
149.992
C5
0
0
0
199.992
0
C6
0
400.008
0
0
0
C7
0
0
0
89.992
0
C8
0
0
0
0
999.994
W6
仓库\工厂
A1
A2
A3
B1
0
0.008
0
B2
509.4408
0
0
B3
0
0
999.7204
B4
0
1340.529
0
B5
490.2796
0
0
分店\仓库
B1
B2
B3
B4
B5
C1
0
0
109.7204
0
490.2716
C2
0
359.4391
0
40.5529
0
C3
0
0
0.008
0
0
C4
0
0
799.992
0
0
C5
0
0
0
299.992
0
C6
0
149.9937
0
0
0
C7
0
0
0
999.992
0
C8
0
0
89.992
0
0
W7
仓库\工厂
A1
A2
A3
B1
0
1548.709
0
B2
0
0
0
B3
0
0
1141.792
B4
0
449.433
0
B5
0
0
0
分店\仓库
B1
B2
B3
B4
B5
C1
399.992
0
0
0
0
C2
148.719
0
0
51.27302
0
C3
0
0
799.992
0
0
C4
0
0
191.816
308.176
0
C5
0
0
0
0
0
C6
999.992
0
0
0
0
C7
0
0
0
89.992
0
C8
0
0.008
149.976
0
0.008
W8
仓库\工厂
A1
A2
A3
B1
0
1231.126
0
B2
0.008
0
0
B3
800.016
0
0
B4
718.6147
0
0
B5
480.2913
0
0
分店\仓库
B1
B2
B3
B4
B5
C1
0
0
0
0
80.008
C2
0
0
0
49.73274
50.27526
C3
0
0
800.008
0
0
C4
0
0
0
0
149.992
C5
231.11
0
0
168.882
0
C6
1000.008
0
0
0
0
C7
0
0
0
499.992
0
C8
0
0
0
0
200.008
W9
仓库\工厂
A1
A2
A3
B1
0
0
0
B2
1345.992
0
0
B3
0
0
2243.992
B4
0
0
0
B5
150
0
0
分店\仓库
B1
B2
B3
B4
B5
C1
0
0
0
0
149.992
C2
0
799.992
0
0
0
C3
0
0
400.008
0
0
C4
0
0
1499.992
0
0
C5
0
89.992
0
0
0
C6
0
200.008
0
0
0
C7
0
99.984
0
0.008
0
C8
0
156.008
343.984
0
0
W10
仓库\工厂
A1
A2
A3
B1
0
0
0
B2
1199.992
0
0
B3
0
0
1200.008
B4
0
1199.992
299.984
B5
0
0
0
分店\仓库
B1
B2
B3
B4
B5
C1
0
0
599.992
0
0
C2
0
499.992
0
0
0
C3
0
0
0.008
0
0
C4
0
0
399.992
0
0
C5
0.000039
300
0
499.992
0
C6
0
399.992
0
0
0
C7
0
0
0
999.992
0
C8
0
0
200.008
0
0
最终求得各种物品的成本价为:
商品
W1
W2
W3
W4
W5
W6
W7
W8
W9
W10
成本/元
144.13
226.70
263.31
302.26
351.87
357.54
447.50
493.48
506.68
546.97
模型二、
假设该公司各次订货始终保持同一订单,即各次订货方式不变,这也就导致了各次订货从工厂到仓库,从仓库到分店以及库存方式(包括时间)都采取同一种方式。
另外,这也就意味着各种货物将在同一时间销售完毕。
总之,设定从订货到货物同时售完为一个周期T,则该公司将的订货、运货、存货、销售,都将以T为周期,并保持同一方式进行。
这种订货方式简单明了,易于与工厂、运输、仓库、分店等方面达成统一,便于运作,更贴近实际。
图2
如图2所示,将订货周期T和每个周期内订货方式、运输方式固定,并设定货物都将在该周期内均匀消耗完。
此时只需将一个周期的订货花费Pt表达出即可。
此时,设一年订货次数:
N=
T-------订货周期(以年为单位),
则总订货费为,
P0=N
(万)
从厂家买入的货物总额为:
P1=
其中,pij-----Ai出厂的Wr的价格;
rij--------Wr从i厂到j仓库的数量。
从工厂到仓库的总运费为:
P2=
ij---------从i厂到j仓库的运费
总的存储费为:
P3=[
/2]
---------Wr在j仓库的储存单价
从仓库到分店的总运费为:
P4=
其中,
-------Wr从j仓库到k分店的数量;
--------Wr从j仓库到k分店的运费。
于是可得,订货的总花费:
P=P0+P1+P2+P3+P4
这里我们还要考虑到以下限制条件:
每次订货费用小于100万:
P0+P1<=1e7N
即,P1<=99×1e5N。
从仓库运出的货物量要小于厂家的生产能力
即,N
<
(r=1,2,3,4,5,6,7,8,9,10i=1,2,3)
其中,
-----Ai的Wr的产量
从工厂运到仓库的货物等于从仓库运到分店的货物
即,
rij=
(r=1,2,3,4,5,6,7,8,9,10j=1,2,3,4,5)
仓库中的货物小于仓库容量
即,
=
(j=1,2,3,4,5)
运到个分店的货物满足需求
即,N
=
(r=1,2,3,4,5,6,7,8,9,10j=1,2,3,4,5,6,7,8)
其中,
-----Ck对Wi的需求量
利用LINGO软件求解,编写相应的目标函数和限制条件,运行之后可以求得在该假设下的最优解。
LINGO求得的最优解:
每年总支出P=1139.11万元
每年货物总额P0=1064.88万元
每年从工厂到仓库的总运费P1=356.18万元
每年从仓库到分店的总运费P2=93.43万元
每年订货费P3=15.33万元
每年库存费P4=13.95万元
订货周期T=24天
具体订货、运输、存储方式如下:
从工厂一(f1)订购、并运输到各仓库(wh1-5)的情况如下:
(单位:
件)(另外2个工厂见附录)
f1--wh1
f1--wh2
f1--wh3
f1--wh4
f1--wh5
g1
0
10
0
0
108
g2
0
0
0
0
0
g3
0
81
0
0
105
g4
0
0
0
0
49
g5
0
84
0
0
121
g6
0
39
0
0
26
g7
0
0
0
0
0
g8
0
101
2
0
28
g9
0
78
0
0
3
g10
0
79
0
0
0
从仓库1(wh1)运输到各分店(s1-8)的情况如下:
(单位:
件)(另外5个仓库见附录)
wh1-s1
wh1-s2
wh1-s3
wh1-s4
wh1-s5
wh1-s6
wh1-s7
wh1-s8
g1
0
0
0
0
0
32
0
0
g2
0
0
0
0
0
0
0
0
g3
0
0
0
0
0
0
0
0
g4
0
0
0
0
0
0
0
0
g5
0
0
0
0
0
0
0
0
g6
0
0
0
0
0
0
0
0
g7
18
0
0
0
0
65
0
0
g8
0
0
0
0
0
15
0
0
g9
0
0
0
0
0
0
0
0
g10
0
0
0
0
0
0
0
0
模型的分析和改进
在本文中,结合实际提出了“各种货物单独订货,彼此无不干涉”、“各种货物同时订货,且共用同一个周期”两种假设,并分别建立相应模型,制定出对应的订货方案,在商业公司制定进货方案时,可按境况选择其中一种订货方式。
在建立模型时,从长远打算,并未拘泥于每年完成整数个周期,使得订货周期取值更广泛,进一步实现了平均每年总支出的优化。
这种方法是一种可以指定长期订货计划的方法。
但实际中需求量与厂家进价不可能长期不变,对于波动的情况,必须有短期计划。
另外,所设模型仓库的利用率也不高。
模型改进:
为了适应短期计划,可以初设仓库中有存货,并在第一种货物刚消耗完时订货,订货时货物可大于需求,但不要大的过多。
对于仓库利用率,可将货物分为两份订货,订货时间错开,这样最多可节省1/4的容量,以存放更多货物。
参考书目:
[1]姜启源,谢金星,叶俊.数学模型(第三版)[O22].2003,高等教育出版社
[2]陈理容数学建模导论[022]2000北京邮电学出版社
[3]徐丽娜数制控制建模与分析·设计实现·第二版[O22].2006科学出版社
附录
模型一的LINGO程序清单:
(1)改进前:
model:
sets:
!
数据约束;
factory/f1..f3/;
warehouse/wh1..wh5/:
capacity;
shop/s1..s8/;
goods/g1..g10/:
depo,volume,n;!
persentofayear;
f_to_w(factory,warehouse);!
:
cost1;
w_to_