我需要MATLAB代码异构舰队车辆路径问题。请帮助

7视图(30天)
两种类型的车辆将货物分发给13个客户从一个仓库。有两个汽车每种类型(1)可用。
我需要使用这种方式1中的车辆车辆将达到一个客户一次,满足它的需求。如果这样的情况可能有空间的车辆,可以满足部分客户的需求,我不会选择这个选项,而我需要另一辆车,将履行整个需求。2车辆不得不开始从仓库之后,回到相同的仓库分布。
目标是最小化总成本。成本部分有两部分,一个是对碳排放成本和其他燃料消耗成本。
得宝= 24.84773520196375的纬度
得宝= 89.36247177231718的经度
纬度和经度的路线(仓库和13个客户):
纬度= (24.84773520196375,24.87335674,24.83320423,25.53737433,25.33029507,25.38906214,24.92971916,25.10335573,24.82309822,25.04680312,24.55426666,24.45587069,24.07761762,24.31666401);
经度= (89.36247177231718,89.17118594,89.07546406,89.44736919,89.54767327,88.99127121,91.68730257,89.02807458,88.93028983,88.75279426,89.50367434,89.65933574,89.61773818,89.56760534);
的参数是:
运输成本从顾客点我到客户点j
=燃料消耗成本
=碳排放成本
C p =单位成本= 109 Tk每升的燃料
C e = 环境成本的单位碳排放= 374.42每公斤Tk
xij =路线选择变量= 1如果m型车辆提供点我j紧随其后
= 0;如果m型车辆不提供点我j紧随其后
dij =路程从顾客点我到客户点j
epsilon_m =燃料消耗单位距离= [0.0675,0.07479]
E =单位燃料消耗碳排放系数= 2.6公斤每升
(没有需求。纸箱)的客户我= ( 48 36 15 35 14 28 18 29 17 24 57 30 8]
(注意,需求得宝是0)
负载能力的车辆m = (116、231)
h =车辆类型= 2
n =客户的数量= 13
(i = 1是得宝)
一个png文件,其中包含成本函数,目标函数和约束函数是在这里。
约束2、3表明 每个客户点只能由1车,
约束 4表明,车辆不会超载
约束 5表明,所有车辆从仓库(i = 1) &完成后返回仓库分布
2的评论
Humayra Adiba
Humayra Adiba 2023年5月13日
我已经写代码。我也安装CVX解算器。但一个错误表明“SeDuMi不支持二进制变量。万博1manbetx请选择一个不同的解决。”Could you please tell me how to solve binary variables with MATLAB built-in solvers? Thanks in advance.
的代码是:
%的参数
g =[0, 48岁,36岁,15岁,35岁,14日,28日,18日,29日,17日,24日,57岁,30日8];
h = 2;
b = (116 - 231);
n =长度(g);
Cp = 109;% Tk每升
Ce = 374.42;% Tk每公斤
ε= (0.0675 - 0.07479);% L /公里
E = 2.6;%公斤每升
%每个点之间的距离
距离= 0 (n, n);
距离= [0 19.50815442 29.00620008 77.15867599 56.80704345 70.85085821 234.6750531 44.09093748 43.69802305 65.33176759 35.61366498 52.90278382 89.44572393 62.58939896;
19.50815442 0 10.64009699 78.89056466 63.39328642 60.13608486 253.8428177 29.36168037 24.94081297 46.37815297 48.85535436 67.73645361 99.35483655 73.74425004;
29.00620008 - 10.64009699 0 86.78329873 72.91614085 62.38717068 263.6805669 30.41693163 14.69362728 40.28078205 53.23056828 72.40560757 100.3572904 75.99775107;
0 77.15867599 78.89056466 86.78329873 25.13277089 48.66857223 235.2119931 64.07200893 94.95007095 88.6099902 109.4636361 122.1401947 163.2257997 136.2771608;
0 56.80704345 63.39328642 72.91614085 25.13277089 56.2877433 219.950659 58.04308714 83.94574689 - 85.9696202 86.40437437 - 97.8816683 139.4710732 - 112.7285796;
0 70.85085821 60.13608486 62.38717068 48.66857223 56.2877433 276.1037268 31.98400676 63.23114691 44.98772141 106.2268961 123.7160745 158.9590374 132.6677688;
0 234.6750531 253.8428177 263.6805669 235.2119931 219.950659 276.1037268 268.6427292 278.3695889 296.0392463 224.433138 211.5440557 229.8328972 224.8457569;
0 44.09093748 29.36168037 30.41693163 64.07200893 58.04308714 31.98400676 268.6427292 32.6850663 28.42909328 77.66215158 96.15106353 128.6991433 - 103.0641737;
0 43.69802305 24.94081297 14.69362728 94.95007095 83.94574689 63.23114691 278.3695889 32.6850663 30.64402763 65.18724693 84.24277853 108.2284206 85.58534207;
0 65.33176759 46.37815297 40.28078205 88.6099902 85.9696202 44.98772141 278.3695889 28.42909328 30.64402763 93.50987654 112.6831433 102.4241872 115.6234057;
35.61366498 48.85535436 53.23056828 109.4636361 86.40437437 106.2268961 296.0392463 77.66215158 65.18724693 93.50987654 0 19.17707448 54.24657786 27.20137515;
52.90278382 67.73645361 72.40560757 122.1401947 97.8816683 123.7160745 224.433138 96.15106353 84.24277853 112.6831433 19.17707448 0 42.27066922 - 18.05283258;
89.44572393 99.35483655 100.3572904 163.2257997 139.4710732 158.9590374 229.8328972 128.6991433 108.2284206 102.4241872 54.24657786 42.27066922 27.06271612 0;
62.58939896 73.74425004 75.99775107 136.2771608 112.7285796 132.6677688 224.8457569 103.0641737 85.58534207 115.6234057 27.20137515 18.05283258 27.06271612 0];
%制定和解决优化问题
% cvx_solver (“sedumi”);
cvx_begin
变量x (n, n、h)二进制%路线选择变量
epsilon_resized = repmat(重塑(ε,1,1,[]),[n, n, 1]);
最小化(Cp *金额(金额(金额(距离。* epsilon_resized。* x)))) %燃料消耗成本
j = 1: n
总和(x (: j:)) = = 1;%每个客户点只能由1车
结束
因为我= 2:n
总和(x(我::))= = 1;%客户点每辆车只能为1
结束
m = 1: h
金额(金额(x (:,:, m) * g)) < = b (m) %车辆不会超载
总和(x (1: m)) = =总和(x (: n m)) %所有车辆从和返回配送中心
结束
i = 1: n
j = 1: n
m = 1: h
x (i, j, m) > = 0;
结束
结束
结束
cvx_end
%显示解决方案
流(“最低成本:% f Tk \ n ', Cp *金额(金额(金额(repmat(ε,[n、n、h])。*距离。* x))) + Ce * E *金额(金额(金额(repmat(ε”,[n、n、h])。*距离。* x))));
m = 1: h
流(“线路车辆类型% d: \ n”,米);
路线= [1];
因为我= 2:n
如果x(路线(结束),我米)> 0
路线=(路线我);
结束
结束
流(% d - >,路线);
流(% d \ n, n + 1);
结束

登录置评。

答案(1)

Torsten
Torsten 2023年5月13日
移动:Torsten 2023年5月13日
尝试运用MATLAB的具体问题具体分析方法来解决优化问题。
或,如果你的目标函数和约束是线性的,你已经习惯了solver-based设置,直接使用“intlinprog”。

类别

找到更多的在静力学和动力学帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!