数学建模配送中心选址问题

配送中心选址

某省共有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

}

后续在等队友补充,本人浅做一下下

经验分享 程序员 微信小程序 职场和发展