1 简介

在给定有限的候选公交站点、有限的连接,已知各OD对乘客的出行需求的情况下,进行定制公交的路线设计,寻找最优的运行路线,确定每辆车运送的乘客数量。车辆从场站出发,最终返回场站。每个站点有规定的时间间隔,车辆超出该时间间隔外到达站点将有乘客放弃使用该服务。        假设:(1)已知各OD对的出行需求;(2)预先设定每个站点的规定时间间隔和停站时间;(3)已知站点间的运行时间和距离;(4)车辆的容量和平均车速是给定的常数;(5) 定制公交运行线路是双向的物理网络。

【路径规划】基于遗传和禁忌搜索算法求解带时间公交车车辆路径规划问题matlab源码_VRP

【路径规划】基于遗传和禁忌搜索算法求解带时间公交车车辆路径规划问题matlab源码_VRP_02

【路径规划】基于遗传和禁忌搜索算法求解带时间公交车车辆路径规划问题matlab源码_VRP_03

【路径规划】基于遗传和禁忌搜索算法求解带时间公交车车辆路径规划问题matlab源码_VRP_04

【路径规划】基于遗传和禁忌搜索算法求解带时间公交车车辆路径规划问题matlab源码_VRP_05

【路径规划】基于遗传和禁忌搜索算法求解带时间公交车车辆路径规划问题matlab源码_VRP_06

【路径规划】基于遗传和禁忌搜索算法求解带时间公交车车辆路径规划问题matlab源码_VRP_07

2 部分代码

%
%
clear
clc
close all
tic
%% 用importdata这个函数来读取文件
c101=importdata('.\data\c101.txt');
cap=50;                                                        %车辆最大装客量
%% 提取数据信息
E=c101(1,5);                                                    %发车中心时间窗开始时间
L=c101(1,6);                                                    %发车中心时间窗结束时间
vertexs=c101(:,2:3);                                            %所有点的坐标x和y
customer=vertexs(2:end,:);                                       %站点坐标
cusnum=size(customer,1);                                         %站点数
v_num=21;                                                        %车辆最多使用数目
demands=c101(2:end,4)./2;                                          %每个站点乘客量
a=c101(2:end,5);                                                %站点时间窗开始时间[a[i],b[i]]
b=c101(2:end,6);                                                %站点时间窗结束时间[a[i],b[i]]
s=c101(2:end,7);                                                %站点的服务时间
h=pdist(vertexs);
dist=squareform(h);                                             %距离矩阵,满足三角关系,暂用距离表示花费c[i][j]=dist[i][j]
alpha=10;                                                       %违反的容量约束的惩罚函数系数
belta=100;                                                      %违反时间窗约束的惩罚函数系数
MAXGEN=100;                                                     %迭代次数
%% 遗传算法
NIND=100;                                                       %种群大小
Pc=0.9;                                                         %交叉概率
Pm=0.05;                                                        %变异概率
GGAP=0.9;                                                       %代沟(Generation gap)
N=cusnum+v_num-1;                                               %染色体长度=站点数目+车辆最多使用数目-1
addpath('.\GA\')
[FF_GA,bestVC_GA]=ga(cusnum,a,b,L,s,dist,demands,cap,NIND,N,alpha,belta,GGAP,Pm,Pc,MAXGEN);
rmpath('.\GA\')
%%
%% 禁忌搜索设置参数
lamda=0.015;
delta=0.5;
vehicles_customer=cell(cusnum,1);                           %每辆车所经过的站点
TbLength=20; %禁忌长度
addpath('.\TW\')
[FF_TW,bestVC_TW]=TW(cusnum,a,b,L,s,dist,demands,cap,alpha,belta,MAXGEN,TbLength,delta,lamda);
rmpath('.\TW\')
disp('遗传算法最优解:')
draw_Best(bestVC_GA,vertexs);
title('遗传算法最优派车方案路线图')
disp('禁忌搜索算法最优解:')
draw_Best(bestVC_TW,vertexs);
title('禁忌搜索算法最优派车方案路线图')
figure(3);
hold on;box on
xlim([0,MAXGEN])
title('迭代曲线')
xlabel('代数')
ylabel('最优值')
plot(1:MAXGEN,FF_GA,'b-',1:MAXGEN,[FF_TW,FF_TW(end)],'r-')
legend('遗传算法','禁忌搜索算法')
toc


3 仿真结果

【路径规划】基于遗传和禁忌搜索算法求解带时间公交车车辆路径规划问题matlab源码_VRP_08

【路径规划】基于遗传和禁忌搜索算法求解带时间公交车车辆路径规划问题matlab源码_VRP_09

【路径规划】基于遗传和禁忌搜索算法求解带时间公交车车辆路径规划问题matlab源码_VRP_10

4 参考文献

[1]阎庆, and 邰蕾蕾. "用混合遗传算法解决有时间窗的车辆路径规划问题." 安徽大学学报(自科版) 032.002(2007):41-44.

【路径规划】基于遗传和禁忌搜索算法求解带时间公交车车辆路径规划问题matlab源码_VRP_11