基于双参数蜜蜂算法解决车辆路径问题(Matlab代码实现)

欢迎来到本博客❤️❤️

博主优势:博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

本文目录如下:

目录

1 概述

2 运行结果

3 Matlab代码实现

4 参考文献


1 概述

群智能起源于自然环境中生物群体经过长期自然进化后具有的解决问题的能力,其中的许多问题在人类看来可以归属于高复杂度的优化问题。受到生态系统中一些具有社会群体特征的物种的行为启发,模仿自然与生物机理的群智能优化方法应运而生。群智能优化方法的发展为使用传统的优化方法难以解决的NP-困难问题提供了有效的求解工具。英国学者Pham教授于2005年提出的蜜蜂算法属于群智能优化算法的一员,该算法受自然界中蜂群的觅食行为启发,是根据蜜蜂探测、选择食物源并最终采集到高质量蜂蜜的内部运行协作机制而设计出的仿生计算方法。该算法主要特征是用侦查蜂角色划分的方式直接体现优化方法普遍需要应对的相互矛盾两方面:利用性搜索与探测性搜索,因此容易控制操作。

运输业是现代物流业中非常重要的组成部分,据统计运输作业成本占物流业总成本的比例超过一半,提高运输作业效率及降低运输作业成本将有力地促进物流业总成本的下降。运输业可分为长距离的干线运输和短距离的市内配送,车辆路径优化问题是市内配送中一个重要的研究课题,车辆路径的优化将为企业降低运输配送成本,提高货物送达服务水平。 带取送车辆路径优化问题是车辆路径优化问题的一个重要分枝,它是指同时为顾客提供送货与取货服务的过程中优化车辆路径,提高配送作业效率,进而为企业节约更多的运输成本。考虑装卸策略的带取送车辆路径优化问题是指在带取送车辆路径优化问题的基础上进一步考虑货物的装载与卸载,使用不同装卸策略寻求包括车辆路径成本与额外装卸成本的总成本最优目标。 本文在现有文献的基础上提出一种新装卸策略的带取送车辆路径优化问题。

2 运行结果

部分代码:

clc;
clear;
close all;
%% Problem Definition
[typeOfFunction] = 'EilA101';
Instance=TsplibVRP(typeOfFunction);
Dims=Instance.dim;
ObjFunction=@(x) Instance.evaluation( x );             
VarSize=[1 Dims];                                      
%% Bees Algorithm Parameters
n= 10; nep = 40; 
MaxEval = 1000000;
recruitment = round(linspace(nep,1,n));
assigntment = round(linspace(1,Dims,n)); 
ColonySize=sum(recruitment)        
MaxIt=round(MaxEval/ColonySize);

%% Initialization
Empty_Patch.Position=[]; Empty_Patch.Cost=[]; Empty_Patch.Sol=[];
Empty_Patch.Counter=[];
Patch=repmat(Empty_Patch,n,1);
counter=0;
for i=1:n
    [Patch(i).Position,Patch(i).Cost, Patch(i).Sol]=BiBA_Clustering_using_Coverage(Instance);
    counter = counter + 5000;
    Patch(i).Counter = counter;
end
% Sort
[~, SortOrder]=sort([Patch.Cost]);
Patch=Patch(SortOrder);
BestSol=Patch(1);
% Array to Hold Best Cost Values
BestCost=zeros(MaxIt,1);
Counter=zeros(MaxIt,1);
OptSol.Cost=inf;

3 Matlab代码实现

4 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]陈渊,马宏伟.基于蜜蜂算法的支持向量机特征选择和参数优化[J].组合机床与自动化加工技术,2013(11):41-43+54.

[2]田微. 基于动态粒子蜜蜂算法的群机器人任务分配方法研究[D].吉林大学,2017.

[3]孙成恺. 改进二进制蜜蜂算法及其在组合优化问题中的应用[D].上海大学,2014.

你可能感兴趣的:(路径规划(Matlab代码),matlab,算法,开发语言)