最新供应与选址数学模型
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
供应与选址数学模型
供应与选址数学模型
摘要:本论文主要讨论并解决了某公司每天的供应计划与临时料场选址的相关问题。为使总吨千米数达到最小,在考虑有直线道路连通的情况下建立相应的数学模型,给出了相关算法。并运用Lingo9.0等软件编程和处理相关数据,得到最优决策方案。
问题一是一个线性规划问题,我们首先建立单目标的优化模型,也即模型
一.借助Lingo软件得到了该公司每天向六个建筑工地运输水泥的供应计
划如表1,从而可使得总的吨千米数最小.
问题二是在问题一的基础上建立一个非线性规划模型,保持供应计划不变的情况下,改变临时料场的位置以使吨千米数进一步减少。用
lingo求解可知当新建的临时料场位于C(6,4),D(7,8)两位置时,节省的吨千米数可达到 30 .
表1 A,B两料场每天分别向各工地运送的水泥量
关键字:线性规划吨千米数供应计划
一、问题重述
某公司有6个建筑工地要开工,每个工地的位置(用平面坐标系a,b表示,距离单位:千米)及水泥日用量d(吨)由下表给出. 目前有两个临时料场位于A(5,1),B(2,7),日储量各有30吨.
(1)试制定每天的供应计划,即从A,B两料场分别向各工地运送多少吨水泥,使总的吨千米数最小?
(2)为了进一步减少吨千米数,打算舍弃两个临时料场,改建两个新的,日储量各为20吨,问应建在何处,节省的吨千米数会多大?
二、基本假设
1、料场与工地之间有直线道路;
2、两料场供应量应与工厂日用量达到平衡;
3、改建后供应计划保持原计划不变;
4、每个工地的位置用平面坐标的形式表示;
三、基本符号说明
i:第i个临时料场;
j:第j个建筑工地;
j d :工地j 的水泥日用量;
ij
c
:料场i 到工地j 的水泥运输量; ij
r
:料场i 到工地j 的距离;
i
e :料场i 的日储量;
四、问题的分析,模型的建立及求解
4.1.1问题一的分析
某公司有6个建筑工地,位置坐标为(j a ,j b ) (单位:千米),水泥日用量
j d (单位:吨)
现有A(5,1),B(2,7) 两料场,记(i x ,i
y ),i =1,2,日储量i e 各有30
吨.
已知每个工地的位置及水泥日用量如下表
4.1.2模型一的建立
由题知,问题一是一个线性规划模型,确定分配量求最小值,即使
总的吨千米数最小. 则目标函数:
2
6
11min ij ij i j c r ==∑∑
其中ij r =
约束条件:
s.t 2
6
6
111
ij j i j j c d ====∑∑∑
2
6
11
ij i i j c e ==≤∑∑ 其中i e 为30吨
4.1.3模型一的求解
将已知数据代入模型中,用lingo 软件求解(程序见附录1),得到结果(程序运行结果见附录2)如下表:
A ,
B 两料场每天分别向各工地运送的水泥量
4.2.1问题二的分析
问题二是在问题一的基础上,进一步减少吨千米数,舍弃两个临时料场,改建两个新的临时料场,日储量各为20吨,求新建的料场的位置,在其它条件不变下使总吨公里数最小,此时节省的吨千米数最大.为此,需建立一个非线形规划模型.
4.2.2模型二的建立
问题二是一个非线性模型,求解取最小值时需满足的最优条件.
目标函数: 2
6
11min i j c ==∑∑约束条件:
s.t 2
6
6
11
1
ij j i j j c d ====∑∑∑
26
11
ij i i j c e ==≤∑∑其中i e 为20吨
0i x ≥,0i
y ≥
4.2.2模型二的求解
将模型一求得的供用计划数据代入模型二中,用lingo (其程序见附录3)
求解得(4,6)(7,8)此时节省的最大吨千米数最大89.88349.
五、模型的评价
本文优点是建立了规划模型,通过lingo 软件进行线性求解,得出各种供应计划方案的最优解;不足之处,在处理供应计划与选址的关系上比较含糊,没有深入讨论.
六、参考文献
[1] 姜启源、谢金星等,数学模型 ,北京:高等教育出版社. 2007.8.
[10]席少霖等,最优化计算方法,上海:上海科学技术出版社,2003.
[8] 谢金星等,优化建模与LINDO/LINGO软件,北京:清华大学出版社,2005.7.
附录七
附录1
MODEL:
Title Location Problem;
sets:
demand/1..6/:a,b,d;
supply/1..2/:x,y,e;
link(supply,demand):c;
endsets
data:
!需求点的位置;
a=1,8,0,5,3,8;
b=1,0,4,6,6,7;
!供需量;
d=4,6,6,7,8,11;
e=30,30;
enddata
init:
!初始点;
x,y=5,1,2,7;
endinit
!目标函数;
[OBJ] min=
@sum(link(i,j): c(i,j)*((x(i)-a(j))^2+(y(i)-
b(j))^2)^(1/2) );
!需求约束;