数学建模配送中心选址问题
配送中心选址
某省共有92个城市,城市位置、标号,公路交通网数据见附件1。
某企业在该省标号前20位的城市建立了直销中心,各直销中心负责所在城市的销售,销售量见附件1。该企业欲在该省设立一个配送中心负责给直销中心配送产品,配送中心建设成本为30万元。每吨公里运费2元,每吨产品的销售利润为300元。
试建立数学模型分析研究下面的问题:
(1)为了降低运输成本,配送中心应选在哪个城市?
第一步画图
clc,clear all %%导入数据 [nums]=xlsread("D:桌面配送中心选址问题附件1.xls","城市及销售中心数据"); [nums2]=xlsread("D:桌面配送中心选址问题附件1.xls","全省公路路线"); %%生成坐标矩阵A和生成01对应坐标矩阵B x=nums(1:92,2); y=nums(1:92,3); A(1:92,1:2)=nums(1:92,2:3); B=zeros(92,92); i=1; while i<=140 X=nums2(i,1); Y=nums2(i,2); B(X,Y)=1; B(Y,X)=1; i=i+1; end %画图%A为xy坐标矩阵,B为城市之间01矩阵 gplot(B,A,"-*")
第一问求解
1:先pdist求出图像中各个点距离矩阵z
2:利用上面01矩阵B求出真实得邻接矩阵
3:求取第一问得结果 (35城市最好)
%求真实带权邻接矩阵W W=zeros(92,92); distmat = pdist(A);%求所有点间直线距离 z=squareform(distmat); for i=1:92 for j=i:92 if B(i,j)==1 W(i,j)=z(i,j); W(j,i)=z(j,i); else W(i,j)=inf; W(j,i)=inf; end end end [dist,mypath]=floyd2(W);%%dist全连接邻接矩阵表 mapath路径表 %%第一问解题 W_20=dist(1:20,1:92); for i=1:20 W_20(i,i)=0; end Totallen_20=sum(W_20); min(Totallen_20);%35城市节点最好
第二问:
1:matlab
求出92个城市5年来运费总和,可以直观看出那个城市运费最小(但貌似并没有什么用)
2:关键利用lingo线性规划目标函数费用最小
%第二问解题 w_20=W_20; for i=1:92 w_20(1:20,i)=w_20(1:20,i).*nums(1:20,4).*120; end Totalcost_20=sum(w_20);%92城市5年运费总和,接下来lingo求解
Lingo
目标:min z=建设配送中心费用+运输费用
{
∑(j=1:92)每个配送中心配送量=直销中心销售量(i=1:20)
92城市选的配送中心(0或者1)
每个配送中心配送量>=0
}
后续在等队友补充,本人浅做一下下
下一篇:
学习笔记07 - java枚举类与注解