一、遗传算法简介

1 引言


2 遗传算法理论
2.1 遗传算法的生物学基础


2.2 遗传算法的理论基础




2.3 遗传算法的基本概念






2.4 标准的遗传算法


2.5 遗传算法的特点


2.6 遗传算法的改进方向

3 遗传算法流程



4 关键参数说明

二、部分源代码

%% 改进的GA
%% 清空环境变量
clc,clear,close all % 清除变量空间
warning off      % 消除警告
feature jit off  % 加速代码执行
%% 遗传算法参数初始化
maxgen = 50;                      % 进化代数,即迭代次数
sizepop = 50;                     % 种群规模
pcross = [0.7];                    % 交叉概率选择,0和1之间
pmutation = [0.01];                 % 变异概率选择,0和1之间
delta = 0.1;
% 城市交通信号系统参数
C = 140;
L = 10;
load('data.mat')  % 包含交通流量q以及饱和流量xij
q = q./3600;      % 转化为秒s
xij = xij./3600;  % 转化为秒s
%染色体设置
lenchrom=ones(1,3);    % t1、t2、t3
bound=[38,59;26,37;33,44;];   % 数据范围
%---------------------------种群初始化------------------------------------
individuals=struct('fitness',zeros(1,sizepop), 'chrom',[]);  %将种群信息定义为一个结构体
avgfitness = [];                      %每一代种群的平均适应度
bestfitness = [];                     %每一代种群的最佳适应度
bestchrom = [];                       %适应度最好的染色体%% 初始化种群
for i=1:sizepop% 随机产生一个种群individuals.chrom(i,:)=Code(lenchrom,bound); % 编码(binary和grey的编码结果为一个实数,float的编码结果为一个实数向量)x=individuals.chrom(i,:);% 计算适应度individuals.fitness(i)=fun(x);   % 染色体的适应度
end%% 找最好的染色体
[bestfitness bestindex] = min(individuals.fitness);
bestchrom = individuals.chrom(bestindex,:);    % 最好的染色体
% 记录每一代进化中最好的适应度和平均适应度
trace = [bestfitness]; %% 迭代求解最佳初始阀值和权值
% 进化开始
for i=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);t4 = C-L - t(1)-t(2)-t(3);
flag=1;
if (t(1)<bound(1,1))||(t(2)<bound(2,1))||(t(3)<bound(3,1))||(t(1)>bound(1,2))||(t(2)>bound(2,2))||(t(3)>bound(3,2))||t4<22||t4>33flag=0;
end
function ret=Mutation(pmutation,lenchrom,chrom,sizepop,num,maxgen,bound)
% 本函数完成变异操作
% pcorss                input  : 变异概率
% lenchrom              input  : 染色体长度
% chrom     input  : 染色体群
% sizepop               input  : 种群规模
% opts                  input  : 变异方法的选择
% pop                   input  : 当前种群的进化代数和最大的进化代数信息
% bound                 input  : 每个个体的上届和下届
% maxgen                input  :最大迭代次数
% num                   input  : 当前迭代次数
% ret                   output : 变异后的染色体
k1 = 0.6;   k2 = 0.7;
k3 = 0.001; k4 = 0.01;
% 计算适应度
for j=1:sizepopx=chrom(j,:);    % 解码f(j)=fun(x);     % 染色体的适应度
end
fmax = max(f);      % 适应度最大值
fmin = min(f);      % 适应度最小值
favg = mean(f);     % 适应度平均值for i=1:sizepop   %每一轮for循环中,可能会进行一次变异操作,染色体是随机选择的,变异位置也是随机选择的,%但该轮for循环中是否进行变异操作则由变异概率决定(continue控制)% 随机选择一个染色体进行变异pick=rand;while pick==0pick=rand;endindex=ceil(pick*sizepop);f1 = fun( chrom(index(1),:) );  % 个体适应度值f3 = max(f1);                   % 两者中大者if f3>=favgpmutation = k3*(fmax - f3)./(fmax-favg);elsepmutation = k4;end% 变异概率决定该轮循环是否进行变异pick=rand;if pick>pmutationcontinue;endflag=0;num = 0;chrom1 = chrom(i,:);while flag==0&&num<=20 % 变异位置pick=rand;while pick==0      pick=rand;endpos=ceil(pick*sum(lenchrom));  %随机选择了染色体变异的位置,即选择了第pos个变量进行变异pick=rand; %变异开始     fg=(rand*(1-num/maxgen))^2;if pick>0.5chrom(i,pos)=chrom(i,pos)+(bound(pos,2)-chrom(i,pos))*fg;elsechrom(i,pos)=chrom(i,pos)-(chrom(i,pos)-bound(pos,1))*fg;end   %变异结束

三、运行结果

四、matlab版本及参考文献

1 matlab版本
2014a

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

【优化求解】基于matalb改进的遗传算法求解IGA城市交通信号优化问题【含Matlab源码 215期】相关推荐

  1. 【Matlab路径规划】改进的遗传算法机器人避障路径规划【含GUI源码 703期】

    一.代码运行视频(哔哩哔哩) [Matlab路径规划]改进的遗传算法机器人避障路径规划[含GUI源码 703期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] ...

  2. 【血糖检测】改进深度回归网络的无创血糖检测【含Matlab源码 1572期】

    ⛄一.数字图像处理简介 图像处理基础教程链接 1 [基础教程]基于matlab图像处理(表示方法+数据结构+基本格式+类型转换+读取+点运算+代数运算)[含Matlab源码 834期] 2 [基础教程 ...

  3. 【TWVRP】基于matlab遗传算法求解带时间窗且车辆速度车辆路径规划问题【含Matlab源码 2094期】

    ⛄一.VRP简介 1 VRP基本原理 车辆路径规划问题(Vehicle Routing Problem,VRP)是运筹学里重要的研究问题之一.VRP关注有一个供货商与K个销售点的路径规划的情况,可以简 ...

  4. 【PSO三维路径规划】基于matlab粒子群融合遗传算法多无人机三维路径规划【含Matlab源码 333期】

    一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水下 ...

  5. 【PF三维路径规划】基于matlab改进的粒子滤波无人机三维路径规划【含Matlab源码 1269期】

    ⛄一.无人机简介 0 引言 随着现代技术的发展,飞行器种类不断变多,应用也日趋专一化.完善化,如专门用作植保的大疆PS-X625无人机,用作街景拍摄与监控巡察的宝鸡行翼航空科技的X8无人机,以及用作水 ...

  6. 【SDPTWVRP】基于matlab头脑风暴算法求解带时间窗和同时取送货车辆路径问题【含Matlab源码 1990期】

    ⛄一.头脑风暴优化算法(BSO)简介 头脑风暴(BSO)是一种将搜索空间不断缩减的算法.此算法通过不断迭代,最终将局部最优解慢慢精确至全局最优解.其基本过程如图1所示. 图1 头脑风暴算法流程 1 种 ...

  7. 【路径规划】基于matlab蚁群优化遗传算法机器人栅格地图最短路径规划【含Matlab源码 1581期】

    ⛄一.简介 路径规划是实现移动机器人自主导航的关键技术,是指在有障碍物的环境中,按照一定的评价标准(如距离.时间.能耗等),寻找到一条从起始点到目标点的无碰撞路径,这里选取最短距离路径规划的评价标准, ...

  8. 【AGA三维路径规划】基于matlab自适应遗传算法单无人机三维路径规划【含Matlab源码 214期】

    ⛄一.无人机简介 1 遗传算法 遗传算法由约翰·霍兰德在20世纪60年代提出,并于1975年首次出版,是一种基于达尔文的生物进化论和孟德尔的遗传学的随机搜索与优化算法[9].具有适用性广,鲁棒性强的全 ...

  9. 【图像分割】基于matlab形态学重建和过滤改进FCM算法(FRFCM)的图像分割【含Matlab源码 085期】

    ⛄一.简介 首先,通过引入形态学重构操作将图像的局部空间信息纳入FRFCM中,以保证抗噪性和图像细节保留.其次,基于局部空间邻居和聚类中心内像素之间距离的成员资格分区的修改被仅依赖于成员资格分区的空间 ...

  10. 【数字信号去噪】基于matlab改进的小波模极大值数字信号去躁【含Matlab源码 1710期】

    ⛄一.小波阈值法去噪概述 电能质量扰动信号的噪声大多以高斯白噪声的形式存在,利用小波变换对信号进行多分辨率分解,由于小波变换具有去除数据相关性的特点,故可以将有用信号与噪声的能量分离开来.信号中有效的 ...

最新文章

  1. Xming+putty操作篇
  2. mc服务器村民交易修改,【原创】【教程】MCPE自定义村民交易内容
  3. 信号与线性系统分析_什么是线性系统?如何辨别控制系统?控制系统基本要求是什么?...
  4. CCF201703-2 学生排队
  5. 检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070005。...
  6. 一个简单的文本编译器
  7. 【老生谈算法】matlab实现数字图像复原算法源码——数字图像复原算法
  8. TCP长连接和短连接区别
  9. 光盘/硬盘“无法复制:数据错误(循环冗余检查)”的解决方案
  10. python控制手机模拟器_Appium+python自动化23-Android夜神模拟器
  11. 小程序源码:游戏扫码登录多功能工具箱集合
  12. 【转】自己开发的iphone app打包为IPA包的方法
  13. vue项目无法在IE打开
  14. 64位windows无法正常安装dnw的解决方案
  15. 使用Python实现微信群发每日一句
  16. Google APIs .net 客户端库初体验
  17. sqlserver:文件和打印共享资源(*.*.*.210)处于联机状态,但未对连接尝试做出响应。
  18. VideoCapture通用属性标识符
  19. 基于ES的HBase二级索引方案
  20. 【机器学习概念笔记】:空间概念

热门文章

  1. ajax的理解与工作流程
  2. 2015-2016书籍计划
  3. 【学习笔记】常用的c/c++面试题
  4. 2020-11-30 04_机器视觉中的特征提取与描述
  5. 190217每日一句
  6. Atitit 信息检索 文档资料的查询与检索 目录 1. 索引法 1 1.1. 名字placeholder索引 1 1.2. 文本txt索引 1 1.3. 索引集合包zip 1 1.4. 文件名
  7. Atitit usrQC27模块化的规范模块化法 v4 t77 目录 1. 模块化层级(软件项目 1 1.1. 子项目》命名空间package机制》类》类文件》方法函数级别》语句 1 2. 常见的
  8. Atitit 编程语言的分类 v2 目录 1.1. 基于代数划分 第一代。。。第三代。。4gl。。5gl自然语言 1 1.2. 按照编程范式分类 . 命令式语言 .函数式语言...逻辑式语言
  9. Atitit spring单元测试 注解 获取服务名 Spring文件单独放在一个文件夹,去掉dubbo配置,方便测试 里面包含的mybatis 找不到,只好设置成相对于class绝对路径可以了
  10. Atitit.创业之uke团队规划策划 v9