200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【优化求解】基于遗传算法的城市区域交通信号优化控制matlab代码

【优化求解】基于遗传算法的城市区域交通信号优化控制matlab代码

时间:2021-08-11 17:42:29

相关推荐

【优化求解】基于遗传算法的城市区域交通信号优化控制matlab代码

1 简介

城市交通的拥堵是当今社会普遍关注的问题,它严重影响着城市经济的发展以及人们日常的生活出行。交叉口做为城市道路交通的集散点,是交通拥堵的多发地点,因此对交叉口进行良好的信号控制是解决道路拥堵的有效途径。然而城市道路错综复杂,交叉口之间具有关联性,单独对某个拥堵的交叉口或者某条交通干道进行优化控制并不能从根本上解决问题,而应根据交通子区划分原则将一些交叉口划分到同一子区进行协调控制,这样才能起到一定的改善作用。本文结合国内外城市交通控制的现状,通过对交通控制的基本理论以及交通控制子区的划分原则和方法的阐述,构建了以区域内交叉口总延误最小为目标的城市交通区域信号控制优化模型。在优化控制的模型中所采用的延误计算公式分为两类,一类为路网边缘进入车流的延误计算;另一类为路网中间车流的延误计算,其中第二类延误计算公式将两个交叉口之间的相位差作为延误的影响参数引入计算中。通过对所要优化区域的实际调查,得到了区域内各交叉口的信号配时、信号周期以及延误等数据,将所调查得到的配时、周期等参数带入延误计算模型求出延误,然后与实际调查延误进行对比,验证模型的可行性;之后将建立的优化控制模型分别应用在干线和区域的交通优化控制上。​

2 部分代码

%% GA%% 清空环境变量clc,clear,closeallwarningofffeaturejitoff%% 遗传算法参数初始化maxgen=50; % 进化代数,即迭代次数sizepop=50;% 种群规模pcross= [0.7];% 交叉概率选择,0和1之间pmutation= [0.01]; % 变异概率选择,0和1之间% 城市交通信号系统参数C=140;L=10;load('data.mat') % 包含交通流量q以及饱和流量xijq=q./3600; % 转化为秒sxij=xij./3600; % 转化为秒s%染色体设置lenchrom=ones(1,3); % t1、t2、t3bound=[38,59;26,37;33,44;]; % 数据范围%---------------------------种群初始化------------------------------------individuals=struct('fitness',zeros(1,sizepop),'chrom',[]); %将种群信息定义为一个结构体avgfitness= []; %每一代种群的平均适应度bestfitness= [];%每一代种群的最佳适应度bestchrom= []; %适应度最好的染色体%% 初始化种群fori=1:sizepop% 随机产生一个种群individuals.chrom(i,:)=Code(lenchrom,bound);% 编码(binary和grey的编码结果为一个实数,float的编码结果为一个实数向量)x=individuals.chrom(i,:);% 计算适应度individuals.fitness(i)=fun(x); % 染色体的适应度end%% 找最好的染色体[bestfitnessbestindex] =min(individuals.fitness);bestchrom=individuals.chrom(bestindex,:); % 最好的染色体% 记录每一代进化中最好的适应度和平均适应度trace= [bestfitness];%% 迭代求解最佳初始阀值和权值% 进化开始fori=1:maxgendisp(['迭代次数:',num2str(i)])% 选择individuals=Select(individuals,sizepop);% 交叉individuals.chrom=Cross(pcross,lenchrom,individuals.chrom,sizepop,bound);% 变异individuals.chrom=Mutation(pmutation,lenchrom,individuals.chrom,sizepop,i,maxgen,bound);% 计算适应度forj=1:sizepopx=individuals.chrom(j,:); % 解码individuals.fitness(j)=fun(x); % 染色体的适应度end% 找到最小和最大适应度的染色体及它们在种群中的位置[newbestfitness,newbestindex]=min(individuals.fitness);[worestfitness,worestindex]=max(individuals.fitness);% 代替上一次进化中最好的染色体ifbestfitness>newbestfitnessbestfitness=newbestfitness;bestchrom=individuals.chrom(newbestindex,:);endindividuals.chrom(worestindex,:)=bestchrom;% 剔除最差个体trace=[trace;bestfitness];%记录每一代进化中最好的适应度endx= [bestchrom,C-L-sum(sum(bestchrom))] % 最佳个体值D=trace(end) % 延误误差DE=D./sum(sum(q)); % 平均延误E%% 遗传算法结果分析figure('color',[1,1,1]),plot(1:length(trace),trace(:,1),'b--');title(['适应度曲线 ''终止代数='num2str(maxgen)]);xlabel('进化代数'); ylabel('适应度');legend('fz最佳适应度');

3 仿真结果

4 参考文献

[1]赵宇航. 基于遗传算法的城市区域交通信号优化控制[D]. 大连交通大学, .

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,有科研问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。