1 内容介绍
1.1 OD
在四阶段法交通需求预测中,交通分布预测需要现状 OD 出行量,现状 OD 出行量可以
通过直接调查或间接推算获得,直接调查需要花费大量的人力、物力、财力、精力和时间,
一般较少采用;相反通过 OD 反推方法花费代价较低,若采用的方法合理,误差较小,结果
可靠。近年来,关于 OD 矩阵推算方面出现了许多方法,大体上可分为参数估计法,矩阵估
计法,以及结合以上两种方法构造的新方法。尽管 OD 矩阵推算方法很多,但各有不足之处,
本文以路段观测流量反推分布矩阵,提出了一种改进的遗传算法求解极大熵 OD 反推模型,
经算例分析,精度较高
1.2 遗传算法概述
遗传算法(Genetic Algorithm,以下简称 GA)是一种基于自然选择和群体遗传机理的搜索
算法,它将问题可行解表示成一群“染色体”,根据适应度高的个体生存的原则,通过遗传操
作(选择、交叉、变异)不断进化,最终收敛到最优个体上或达到预先设定的迭代次数为止,
即求得问题最优解。与其它求解算法相比,GA 有其自身的优势:它不要求目标函数满足诸如
连续性、导数存在和单峰等假设[3],然而 GA 本身也存在缺陷:演化过程中容易发生过早收敛
现象。过早收敛是指遗传算法在演化过程中长时间甚至永久停滞在某一局部最优解,而不是
全局最优解上[3]。传统的遗传算法局部搜索能力较差,尤其是接近局部最优解时,收敛速度
比较慢,最终搜索得到的结果往往不是全局最优解,而是局部最优解。
2 仿真代码
%% 清空环境
clear
clc
global W Cmax Mxf1 Mxf2 Mxf3 Mxf4 Q0 b1 b2 b3 b4 N
%% 已知参数
W=[9 14 5 9 8 7 8 7 6 10 10 9 8 6 5 10 8 9 11]; %零流时间
Cmax=[700 900 800 600 600 900 600 300 900 500 700 600 700 500 400 800 700 700 600]; %路段能力
%路段-路径矩阵
Mxf1=[1,1,1,1,1,1,0
0,0,0,0,0,0,1
1,1,1,0,0,0,0
0,0,0,1,1,1,0
0,0,0,0,0,0,0
0,0,0,0,0,0,0
0,0,0,0,0,0,0
0,0,0,0,0,0,0
1,0,0,0,0,0,0
0,1,1,0,0,0,0
0,0,0,1,1,0,0
0,0,0,0,0,1,1
0,1,0,1,0,0,0
0,0,1,0,1,0,0
1,0,0,0,0,0,0
0,0,0,0,0,0,0
1,1,0,1,0,0,0
0,0,0,0,0,0,0
0,0,1,0,1,1,1];
Mxf2=[1,1,1,1,0
0,0,0,0,1
1,1,1,0,0
0,0,0,1,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
0,0,0,0,0
1,1,0,0,0
0,0,1,0,0
0,0,0,1,1
0,0,0,0,0
0,0,1,1,1
0,0,0,0,0
0,1,0,0,0
1,0,0,0,0
0,0,0,0,0
0,1,1,1,1
0,0,0,0,0];
Q=QQ1+QQ2+QQ3+QQ4;
t=W.*(1+0.15*(Q./Cmax).^4);
T=t;
for i=1:length(Q1)
T1(i)=Q1(i)*T*Mxf1(:,i);
end
for i=1:length(Q2)
T2(i)=Q2(i)*T*Mxf2(:,i);
end
for i=1:length(Q3)
T3(i)=Q3(i)*T*Mxf3(:,i);
end
for i=1:length(Q4)
T4(i)=Q4(i)*T*Mxf4(:,i);
end
%% 路径时间
for i=1:length(Q1)
TT1(i)=T*Mxf1(:,i);
end
for i=1:length(Q2)
TT2(i)=T*Mxf2(:,i);
end
for i=1:length(Q3)
TT3(i)=T*Mxf3(:,i);
end
for i=1:length(Q4)
TT4(i)=T*Mxf4(:,i);
end
Punish1=0;
for i=1:length(Q)
if Q(i)>Cmax(i)
Punish1=Punish1+1e5;
end
end
QQQ=[Q1(end) Q2(end) Q3(end) Q4(end)];
Punish2=0;
for i=1:length(QQQ)
if QQQ(i)<0
Punish2=Punish2+1e5;
end
end
figure(1)
plot(1:MAXGEN,y(:,1),'b')
hold on
plot(1:MAXGEN,y(:,2),'r--')
xlabel('进化代数')
ylabel('目标函数值')
legend('最优个体目标函数','种群目标函数值平均值')
3 运行结果
4 参考文献
[1]赵安岭. 基于公交动态客流OD的车辆调度优化模型研究[D]. 重庆交通大学, 2015.
[2]吴典文. "基于遗传算法的高速路出入口OD反推研究." 山西建筑 037.004(2011):136-137.
[3]杜长飞. 基于OD估计的路网交通检测器优化布设研究. Diss. 北京交通大学, 2012.
[4]于德新, 杨兆升, 刘雪杰,等. 基于DTA的OD估计方法的交通检测器优化布置模型研究[J]. 公路交通科技, 2006, 23(12):111-117.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。