蚁群算法-车辆配载率的路径优化

车辆配送路径优化问题可描述为:某商超配送中心要使用一定数量的车辆对一批货物进行配送服务,要求在不超过车辆的额定载重量和额定容积的条件下,安排这些货物的装载,使得车辆利用率最高。
针对以上问题做出假设:
(1) 只有一个配送中心,所有车辆都是从配送中心出发并最终回到配送中心;
(2) 配送中心和客户站点的具体位置已知;
(3) 配送车辆的类型相同,装载容量大小已知;
(4) 配送车辆的最大实际装载货物重量不能超过货车的最大承载重量;
(5) 配送车辆匀速行驶;
(6) 每个客户站点的需求量已知;
(7) 每条配送路线只能由一辆配送车辆进行配送,且每个站点只能被配送一次;
(8) 不考虑交通堵塞或不可通行的情况。
数学模型
模型中的数学符号决策变量描述
k 为车辆编号,k=1,2,…,l;
i,j 表示客户编号,i,j=0,1,2,…,n, i,j=0表示配送中心;
p 为货物编号,p=1,2,…,m;
Gk为车辆 k 的最大载重量;
Vk 为车辆 k 的最大容积;
g ip为货物 p 的重量;
Vip货物 p 的体积,且货物尺寸均小于货车车厢尺寸;
模型的约束条件限制:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
目标函数处理:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
算法仿真:
数据如下所示:
在这里插入图片描述
使用蚁群算法,matlab求解如下:

tic
clear
clc
%% 用importdata这个函数来读取文件 
dataset=importdata('input_test.txt'); %读取输入数据文件
%cap=200;
cap = 3000;
Rated_volume = 20;

%% 提取数据信息
vertexs=dataset(:,2:3);                                         %所有点的坐标x和y
customer=vertexs(2:end,:);                                      %顾客坐标
cusnum=size(customer,1);                                        %顾客数
demands=dataset(2:end,4);                                       %需求量
Tj_demands = dataset(2:end,5);                                  %体积需求
Cs = 2;
Ws = 50;
Vs = 0.06;
h=pdist(vertexs);
dist=squareform(h);                                             %成本矩阵即任意两点之间的距离
%% 初始化参数
m=50;                                                           %蚂蚁数量
alpha=1;                                                        %信息素重要程度因子
beta=5;                                                         %启发函数重要程度因子
rho=0.85;                                                       %信息素挥发因子
Q=5;                                                            %更新信息素浓度的常数
Eta=1./dist;                                                    %启发函数
Tau=ones(cusnum+1,cusnum+1);                                    %信息素矩阵
Table=zeros(m,cusnum);                                          %路径记录表
iter=1;                                                         %迭代次数初值
iter_max=100;                                                   %最大迭代次数
Route_best=zeros(iter_max,cusnum);                              %各代最佳路径
Cost_best=zeros(iter_max,1);                                    %各代最佳路径的成本
%% 迭代寻找最佳路径
while iter<=iter_max
    %% 先构建出所有蚂蚁的路径
    %逐个蚂蚁选择
    for i=1:m
        %逐个顾客选择
        for j=1:cusnum
            np = next_point(i,Table,Tau,Eta,alpha,beta,dist,cap,demands,Tj_demands,Rated_volume);
            Table(i,j)=np;
        end
    end
    %% 计算各个蚂蚁的成本
    cost=zeros(m,1);
    NV=zeros(m,1);
    TD=zeros(m,1);
    for i=1:m
        VC = decode(Table(i,:),cap,demands,dist,Tj_demands,Rated_volume);
        [cost(i,1),NV(i,1),TD(i,1)] = MulticostFun(VC,dist,demands,cap,Tj_demands,Rated_volume,Cs,Ws,Vs);
    end
    %% 计算最小成本及平均成本
    if iter == 1
        [min_Cost,min_index]=min(cost);
        Cost_best(iter)=min_Cost;
        Route_best(iter,:)=Table(min_index,:);
    else
        [min_Cost,min_index]=min(cost);
        Cost_best(iter)=min(Cost_best(iter - 1),min_Cost);
        if Cost_best(iter)==min_Cost
            Route_best(iter,:)=Table(min_index,:);
        else
            Route_best(iter,:)=Route_best((iter-1),:);
        end
    end
    %% 更新信息素
    bestR=Route_best(iter,:);
    [bestVC,bestNV,bestTD]=decode(bestR,cap,demands,dist,Tj_demands,Rated_volume);
    zz = decode_zz(bestR,cap,demands,dist,Tj_demands,Rated_volume);
    Tau=updateTau(Tau,bestR,rho,Q,cap,demands,dist,Tj_demands,Rated_volume);
    %% 打印当前最优解
    disp(['第',num2str(iter),'代最优解:'])
    disp(['车辆使用数目:',num2str(bestNV),',车辆行驶总距离:',num2str(bestTD),',最小成本:',num2str(min_Cost)]);
    disp('车辆载重体积:');
    disp(zz(:,1));
    fprintf('\n')
    %% 迭代次数加1,清空路径记录表
    iter=iter+1;
    Table=zeros(m,cusnum);
end
%% 结果显示
bestRoute=Route_best(end,:);
[bestVC,bestNV,bestTD]=decode(bestRoute,cap,demands,dist,Tj_demands,Rated_volume);
draw_Best(bestVC,vertexs);

在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 各类智能优化算法改进及应用 生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化 2 机器学习和深度学习方面 卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断 2.图像处理方面 图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知 3 路径规划方面 旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化 4 无人机应用方面 无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配 、无人机安全通信轨迹在线优化 5 无线传感器定位及布局方面 传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化 6 信号处理方面 信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化 7 电力系统方面 微电网优化、无功优化、配电网重构、储能配置 8 元胞自动机方面 交通流 人群疏散 病毒扩散 晶体生长 9 雷达方面 卡尔曼滤波跟踪、航迹关联、航迹融合

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值