光明市的菜篮子工程.doc
《光明市的菜篮子工程.doc》由会员分享,可在线阅读,更多相关《光明市的菜篮子工程.doc(48页珍藏版)》请在冰豆网上搜索。
光明市的菜篮子工程
摘要
本文研究的是蔬菜市场为满足不同条件的最优调配方案问题,用了Froyd算法、线性规划建立了一系列数学规划模型,并用MATLAB和LINGO软件编程实现。
关于问题一:
用Froyd算法结合MATLAB编程求出收购点至个菜市场的最短距离,以用于蔬菜调运及预期的短缺损失为最小为目标建立线性规划模型。
用LINGO编程求得日均费用最少为4610元。
关于问题二:
在模型一的基础增加各菜市场短缺量一律不超过需求量的20%的约束条件,用LINGO编程求得最少日均费用以及最优供应方案。
费用最少为4806元,供应方安见正文。
关于问题三:
在模型一的基础上,改为以供货充足、费用最小为目标,建立模型三,用LINGO编程求得日均费用为4770元,增产的蔬菜每天应分给C收购点8000Kg。
关键字:
蔬菜市场调配方案Froyd算法线性规划
一、问题的重述
海江市是一个人口不到20万人的小城市。
根据该市的蔬菜种植情况,分别在菜市场(A),菜市场(B)和菜市场(C)设三个收购点,再由各收购点分送到全市的8个菜市场,该市道路情况,各路段距离(单位:
100m)及各收购点,菜市场①⑧的具体位置见图3.2.按常年情况,A,B,C三个收购点每天收购量分别为30000,25000和20000(单位:
100kg),各菜市场的每天需求量及发生供应短缺时带来的损失(元/100kg)见表3.设从收购点至各菜市场蔬菜调运费为1元/(100kg.100m).
①7②
54837
A76B
⑥685
54711
74③
756
6⑤35④
866
10C10⑧
511
⑦
表3
菜市场
每天需求(100kg)
短缺损失(元/100kg)
①
150
10
②
100
8
③
120
5
④
100
10
⑤
140
10
⑥
100
8
⑦
140
5
⑧
120
8
(a)为该市设计一个从收购点至个菜市场的定点供应方案,使用于蔬菜调运及预期的短缺损失为最小;
(b)若规定各菜市场短缺量一律不超过需求量的20%,重新设计定点供应方案;
(c)为满足城市居民的蔬菜供应,光明市的领导规划增加蔬菜种植面积,试问增产的蔬菜每天应分别向A,B,C三个采购点供应多少最经济合理。
二、符号说明
从A到i(各个菜市场)的最短距离
从B到i(各个菜市场)的最短距离
从C到i(各个菜市场)的最短距离
从A到i(各个菜市场)的运货量
从B到i(各个菜市场)的运货量
从C到i(各个菜市场)的运货量
总调运费
短缺损失
总费用
三模型假设
1、假设日需求量与缺货损失费用不变。
2、假设在蔬菜调配的过程中无意外发生。
3、假设新增产的蔬菜能够满足缺货量。
四模型的建立与求解
4.1问题一
4.1.1问题的分析:
为了使用于蔬菜调运及预期的短缺损失为最小,即调运费用与缺货损失之和最小。
首先考虑调运费用P,P为距离与送货量的积,因为与送货距离相关,我们必须先求出A、B、C三个采购点至各个菜市场的最短距离。
采用Froyd算法,结合MATLAB编程实现。
其次考虑缺货损失Q,以题中要求为约束条件,损失最低位目标建立线性规划模型,用LINGO编程求解。
4.1.2模型的建立与求解:
由图和表格的信息知,建立一个线性规划模型,使得蔬菜调运及预期的短缺损失为最小。
调运总费用P为:
若使调运总费用最少,则应保证A、B、C三个收购点到8个菜市场的路程最短,最短路线的求解过程如图一:
图一:
求解过程图
分析上图可知,该路线为无向网络,就该图而言,网络弧集为:
E=[(v1,v2),(v1,v4),(v1,v5),(v2,v1),(v2,v3),(v2,v5),(v2,v6),(v3,v2),.(v3,v6),(v3,v8),(v3,v9),(v4,v1),(v4,v5).(v4,v7),(v4,v10),(v5,v1),(v5,v2),(v5,v4),(v5,v6),(v5,v7),(v5,v8),(v6,v2),(v6,v3),(v6,v5),
(v6,v8),(v7,v4),(v7,v5),(v7,v8),(v7,v11),(v8,v3),(v8,v5),(v8,v6),(v8,v7),(v8,v9),(v8,v11),(v9,v3),
(v9,v8),(v9,v11),(v9,v13),(v9,v15),(v10,v4),(v10,v11),(v10,v12),(v10,v14),(v11,v7),(v11,v8),(v11,v9)(v11,v10),(v11,v12),(v12,v10),(v12,v11),(v12,v13),(v12,v14),(v13,v9),(v13,v12),(v13,v14),
(v14,v10),(v14,v12),(v14,v13),(v15,v9)]
下面来确定网络权矩阵:
W=
其中
=,当(,)属于E时,为弧(,)的权
=0,i=1,2,3……n
=inf,当(,)不属于E时。
(inf为无穷大,n为网络结点个数)
按上述规定,该网络的权矩阵为:
07inf54infinfinfinfinfinfinfinfinfinf
707inf83infinfinfinfinfinfinfinfinf
inf70infinf6inf711infinfinfinfinfinf
5infinf06inf5infinf7infinfinfinfinf
48inf60748infinfinfinfinfinfinf
inf36inf70inf5infinfinfinfinfinfinf
infinfinf54inf04infinf7infinfinfinf
infinf7inf85406inf5infinfinfinf
infinf11infinfinfinf60inf3inf6inf5
infinfinf7infinfinfinfinf068inf10inf
infinfinfinfinfinf753606infinfinf
infinfinfinfinfinfinfinfinf860105inf
infinfinfinfinfinfinfinf6infinf10011inf
infinfinfinfinfinfinfinfinf10inf5110inf
infinfinfinfinfinfinfinf5infinfinfinfinf0
因为上述网络有15个结点,故网络的权矩阵均为15阶矩阵。
现在给出网络最短路线的Froyd算法:
(1)d1=w.(w为所给网络的n阶权矩阵)
(2)dk=,k=2,3,…,p.
其中=min[+,i,j=1,2,…,n.
计算次数的确定:
当0时,p由下式确定:
pln(n-1)/ln2,这样的dp就确定了网络各点间的最短距离。
此处n=15,解出p3.8074
故只需要取p=4即可,即算到d4即可。
按照Froyd算法:
d1=d,d2=fld(15,d1),d3=fld(15,d2),
d4=(fld(15,d3),算的d4为:
0714541081218121520242223
707128312814191319202419
14701613611711181218172316
512160613591571215211720
48136074814131117202219
103613709511161016172116
81211549041012713161815
128798540611511121611
18141115141110609396145
1219187131612119068151014
1513121211107536069118
201