新光明市菜篮子问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
新光明市菜篮子问题
————————————————————————————————作者:————————————————————————————————日期:
摘要:
菜市场供应问题实际上是最优分配问题,组合优化问题可以利用线性规划问题来解答,同时利用lingo软件的强大功能来得出最优组合。
关键字:线性规划 LINGO 组合优化
一、问题重述:
光明市是一个人口不到15万人的小城市。该市有ABC三个蔬菜收购点,再由各收购点分送到全市的8个菜市场,各菜市场的每天需求量及发生供应短缺时带来的损失也是确定的,从收购点到各菜市场调运费为1元/(100kg.100m). 问题一:设计一个供应方案,使用于蔬菜调运及预期的短缺损失为最小;
问题二:规定各菜市场短缺量不超过需求量的20%,重新设计供应方案;
问题三:增加蔬菜种植面积,试问增产的蔬菜每天应分别向A,B,C三个采购点供应多少最经济合理。
二、符号说明:
x第i个集散点向第j个菜市场供应蔬菜的数量
()ij
L第i个集散点到第j个菜市场的距离(两点之间的最短距离) ()ij
b第j个市场每天的需求量
j
d第j个市场每天的短缺损失
j
a第i个集散点每天的收购量
i
c第i个集散点向第j个菜市场的单位运费
()ij
i=1,2,3,4,5,6,7,8)
j=
(1,2,3
三、模型假设:
1、收购点的供应量及菜市场的需求量不变;
2、价格对需求量没有影响;
3、不考虑运送过程中对蔬菜的影响;
4、认为每一天的蔬菜需求量都为题目中的数据,不会发生变化;
5、不考虑其他因素对运输的影响。
四、问题分析:
问题一是要设计一个从收购点至个菜市场的定点供应方案,使用于蔬菜调运及预
期的短缺损失为最小,要得到最优的方案那费肯定就是的最小。就可以把问题转换为求最短路和最小费用问题,从而可以用线性规划来求解。
问题二是说若规定各菜市场短缺量一律不超过需求量的20%,重新设计定点供应方案即在问题一的基础之上更改约束条件即可求得。
问题三中说为满足城市居民的蔬菜供应,光明市的领导规划增加蔬菜种植面积,试问增产的蔬菜每天应分别向A,B,C 三个采购点供应多少最经济合理。假设供应满足需求的前提下,求最优组合,及不计损耗的最小运输费用。即可求出最经济合理的采购方案。
五、模型建立:
模型一:
为该市设计一个从各集散点至各菜市场的定点供应方案,使用于蔬菜调运及预期的短缺损失为最小。
即蔬菜调运费用和短缺损失费用之和最小。
目标函数:Min 1111((())*())m n n m
ij ij ij i j j i Z C x b j x d j =====+-∑∑∑∑ ⑴
约束条件:
某集散点的运输量应小于其需求量
()1
m ij i x
b j =≤∑ ⑵ 某收购点给各集散点的运输量应小于其收购量
()1
n ij j x a i =≤∑ ⑶
运输量非负
0ij x ≥ ⑷
模型二:
即各集散地运往菜市场的运量应不小于需求量的80%。即在原先的基础上再设定新的约束条件
目标函数:Min 1111((())*())m n n m
ij ij ij i j j i Z C x b j x d j =====+-∑∑∑∑ ⑸
约束条件:()()10.8m
ij i b j x b j =≤≤∑ ⑹
()1n
ij j x a i =≤∑ ⑺
0ij x ≥ ⑻
模型三:
由于各菜市场的需求量大于各集散点的收购量,所以要增大收购量来满足短缺的需求。即收购量大于目前的量,使需求量得到满足,不再产生短缺损失。 目标函数:Min 11m n
ij ij i j Z C x ===∑∑ ⑼
约束条件:()1m
ij i x b j ==∑ ⑽
()1n
ij j x a i =≥∑ ⑾
0ij x ≥ ⑿
六、模型求解:
模型一:
MODEL :
SETS :
jsd/1..3/:a;!三个集散地,收购量a(i);
csc/1..8/:b;!八个菜市场,每天需求量b(j);
dqss/1..8/:d;!各菜市场的单位短缺损失d(j);
j_c(jsd,csc):x,c,l;!i 到j 的距离矩阵为l(i,j),单位运费c(i,j),决策变量为 x(i,j);
ENDSETS
DATA :
a=200,170,160;
b=75,60,80,70,100,55,90,80;
d=10,8,5,10,10,8,5,8;
l=4,8,8,19,11,6,22,26,
14,7,7,16,12,16,23,17,
20,19,11,14,6,15,5,10;
c=1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1;
ENDDATA
@for (jsd(i):
[st1]@sum (csc(j):x(i,j))=a(i));!收购量限制;
@for (csc(j):
[st2]@sum (jsd(i):x(i,j))<=b(j));!需求量限制;