【路径规划】基于matlab遗传算法公交排班系统分析【含Matlab源码 220期】

举报
海神之光 发表于 2022/05/29 06:04:55 2022/05/29
【摘要】 一、获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。 获取代码方式2: 通过紫极神光博客主页开通CSDN会员,凭支付凭证,私信博主,可获得此代码。 ...

一、获取代码方式

获取代码方式1:
通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码。

获取代码方式2:
通过紫极神光博客主页开通CSDN会员,凭支付凭证,私信博主,可获得此代码。

获取代码方式3:
完整代码已上传我的资源:【路径规划】基于matlab遗传算法公交排班系统分析【含Matlab源码 220期】

备注:开通CSDN会员,仅只能免费获得1份代码(有效期为开通日起,三天内有效);
订阅紫极神光博客付费专栏,可免费获得1份代码(有效期为订阅日起,三天内有效);

二、遗传算法简介

1 公交排班系统背景分析
由于城市交通设施建设滞后于交通需求的增长速度,使城市交通状况日趋恶化,在主要交通道口和某些流量集中的道路上,不同程度地出现交通阻塞现象,城市交通问题已成为制约城市发展的一个瓶颈。
城市交通系统是由城市道路网、运载工具和管理系统组成的开放的复杂系统。解决城市交通的方法有很多,例如现在的限号举措就是其中一个比较好的方法,通过限号操作,步行坐公交车的人数增多,那么怎么解决公交运行排班问题,显得尤为必要。合理的解决公交排班系统问题,是一个复杂的问题,需要考虑人、车辆、道路等复杂因素,因此需要运用高科技技术方法才能较好的解决城市道路交通问题,现今,智能交通系统(ITS)便成为解决这个问题的重要途径之一。
运营车辆智能排班问题是公交车辆智能调度需要解决的典型问题之一,在智能交通系统(ITS)的背景下,公交车发车时刻表的制定是城市公交调度的核心内容,是公交调度日常指挥车辆正常运行的重要依据,也是公交调度人员和司乘人员进行工作的基本依据。合理的公交发车时刻表可以帮助公交企业提高车辆利用效率、降低运营成本和减少乘客的等车时间以提高服务质量等。
2 车辆行驶模型
在这里插入图片描述
3 乘客上下车模型
在这里插入图片描述
4 遗传算法的应用步骤
遗传算法GA是基于进化和遗传理论而提出来的全局寻优方法。
简单遗传算法解决问题的基本步骤如下:
(1)初始化:随机生成N个个体作为初始群体P(0),该种群就是目标函数可行解的一个集合。设置进化代数计数器归零,设置最大进化代数iter_max;
(2)个体评价:将初始种群代入目标函数中,根据适应度函数计算当前群体中各个种群的适应度;
(3)终止条件判断:给出终止条件,判断算法是否满足终止条件,若满足则转到(8);
(4)选择运算:对初始群体执行选择操作,优良的个体被大量复制,劣质的个体复制的少甚至被淘汰;
(5)交叉运算:以交叉概率来进行交叉运算;
(6)变异运算:以变异概率来进行交叉运算;
(7)群体P(t)经过选择运算、交叉运算、变异运算之后,得到由N个新个体构成的下一代群体P(t+1),则转(2),否则转(4);
(8)不断的进化,最终会得到目标函数中,适应度最高的个体,将其作为问题的最优解或满意解输出,终止计算。
在这里插入图片描述
在这里插入图片描述

三、部分源代码

% 产生t(i)序列
clc,clear,close all
warning off
Tmin = 1;   % 表示相邻车辆间发车间隔的最小值(min)
Tmax = 10;  % 表示相邻车辆间发车间隔的最大值(min)
delta = 4;  % 表示相邻车辆发车间隔之差的限制值
m = 500;    % 表示总的发车次数(车次)
a = randi(10);  % t(1)第一个值的取值范围设定为1-10之间随机取值
t(1) = a;       % 赋值
maxt = 960;    % t(i)的最大值
% Loop
for i=2:m
    flag = 1;       % 标志变量
    while flag == 1
        % Tmin< t(i)-t(i-1) < Tmax
        a1 = randi(9);
        if a1>Tmin+2 && i==2
            t(i)=t(i-1)+a1; % Tmin < t(i)-t(i-1) < Tmax
            flag = 0;   % i 时间点计算完毕
        elseif a1>Tmin+2 && i>2  % |t(i+1)-2*t(i)+t(i-1)|<delta 
            t(i)=t(i-1)+a1; % Tmin < t(i)-t(i-1) < Tmax
            if abs( (t(i)-t(i-1)) -(t(i-1)-t(i-2)) )<delta
                flag = 0;  % i 时间点计算完毕
            end
        end
    end
    function flag=test(code)
% code       output: 染色体的编码值
global Tmin Tmax delta
x=code; %先解码
flag=1;
for i=3:length(x)
    else
        flag=0;
    end
end    
% 产生t(i)序列
function ret=Mutation(pmutation,lenchrom,chrom,sizepop,num,maxgen)
% 本函数完成变异操作
% pcorss                input  : 变异概率
% lenchrom              input  : 染色体长度
% chrom     input  : 染色体群
% sizepop               input  : 种群规模
% opts                  input  : 变异方法的选择
% pop                   input  : 当前种群的进化代数和最大的进化代数信息
% bound                 input  : 每个个体的上届和下届
% maxgen                input  :最大迭代次数
% num                   input  : 当前迭代次数
% ret                   output : 变异后的染色体
function t = pop_meet_conditions(maxt)
global Tmin Tmax delta m tt PP Q cita
% 输入变量说明:
% Tmin = 1;   % 表示相邻车辆间发车间隔的最小值(min)
% Tmax = 10;  % 表示相邻车辆间发车间隔的最大值(min)
% delta = 4;  % 表示相邻车辆发车间隔之差的限制值
% m = 500;    % 表示总的发车次数(车次)
% maxt = 960;    % t(i)的最大值

% 输出变量说明:
% t为满足条件的个体

a = randi(10);  % t(1)第一个值的取值范围设定为1-10之间随机取值
t(1) = a;       % 赋值

flag = 1;       % 标志变量
% Loop
while flag==1
    
    for i=2:m
        flag = 1;       % 标志变量
        while flag == 1
            % Tmin< t(i)-t(i-1) < Tmax
            a1 = randi(9);
            if a1>Tmin+2 && i==2
                t(i)=t(i-1)+a1; % Tmin < t(i)-t(i-1) < Tmax
                flag = 0;   % i 时间点计算完毕
            elseif a1>Tmin+2 && i>2  % |t(i+1)-2*t(i)+t(i-1)|<delta 
                t(i)=t(i-1)+a1; % Tmin < t(i)-t(i-1) < Tmax
                if abs( (t(i)-t(i-1)) -(t(i-1)-t(i-2)) )<delta
                    flag = 0;  % i 时间点计算完毕
                end
            end
        end
    end 

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84

四、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
《智能优化算法及其MATLAB实例(第2版)》包子阳 余继周 杨杉著 电子工业出版社

文章来源: qq912100926.blog.csdn.net,作者:海神之光,版权归原作者所有,如需转载,请联系作者。

原文链接:qq912100926.blog.csdn.net/article/details/113654878

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。