一、获取代码方式

获取代码方式1:
完整代码已上传我的资源:【优化算法】量子遗传优化算法(QGA)【含Matlab源码 1123期】

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

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

二、遗传算法简介

1 引言


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


2.2 遗传算法的理论基础




2.3 遗传算法的基本概念






2.4 标准的遗传算法


2.5 遗传算法的特点


2.6 遗传算法的改进方向

3 遗传算法流程



4 关键参数说明

三、部分源代码

clc;
clear all;
close all;
%----------------参数设置-----------------------
MAXGEN=200;                        % 最大遗传代数
sizepop=40;                        % 种群大小
lenchrom=[20 20];          % 每个变量的二进制长度
trace=zeros(1,MAXGEN);
%--------------------------------------------------------------------------
best=struct('fitness',0,'X',[],'binary',[],'chrom',[]);   % 最佳个体 记录其适应度值、十进制值、二进制编码、量子比特编码
%% 初始化种群
chrom=InitPop(sizepop*2,sum(lenchrom));
%% 对种群实施一次测量 得到二进制编码
binary=collapse(chrom);
%% 求种群个体的适应度值,和对应的十进制值
[fitness,X]=FitnessFunction(binary,lenchrom);         % 使用目标函数计算适应度
%% 记录最佳个体到best
[best.fitness bestindex]=max(fitness);     % 找出最大值
best.binary=binary(bestindex,:);
best.chrom=chrom([2*bestindex-1:2*bestindex],:);
best.X=X(bestindex,:);
trace(1)=best.fitness;
fprintf('%d\n',1)
%% 进化
for gen=2:MAXGENfprintf('%d\n',gen)  %提示进化代数%% 对种群实施一次测量binary=collapse(chrom);%% 计算适应度[fitness,X]=FitnessFunction(binary,lenchrom);%% 量子旋转门chrom=Qgate(chrom,fitness,best,binary);[newbestfitness,newbestindex]=max(fitness);    % 找到最佳值% 记录最佳个体到bestif newbestfitness>best.fitnessbest.fitness=newbestfitness;best.binary=binary(newbestindex,:);best.chrom=chrom([2*newbestindex-1:2*newbestindex],:);best.X=X(newbestindex,:);endtrace(gen)=best.fitness;
end%% 画进化曲线
plot(1:MAXGEN,trace);
title('进化过程');
xlabel('进化代数');
ylabel('每代的最佳适应度');%% 显示优化结果
disp(['最优解X:',num2str(best.X)])
disp(['最大值Y:',num2str(best.fitness)]);
function chrom=Qgate(chrom,fitness,best,binary)
%% 量子旋转门调整策略
% 输入  chrom:更新前的量子比特编码
%     fitness:适应度值
%        best:当前种群中最优个体
%      binary:二进制编码
% 输出  chrom:更新后的量子比特编码
sizepop=size(chrom,1)/2;
lenchrom=size(binary,2);
for i=1:sizepopfor j=1:lenchromA=chrom(2*i-1,j);   % αB=chrom(2*i,j);     % βx=binary(i,j);b=best.binary(j);if ((x==0)&(b==0))||((x==1)&(b==1))delta=0;                  % delta为旋转角的大小s=0;                        % s为旋转角的符号,即旋转方向elseif (x==0)&(b==1)&(fitness(i)<best.fitness)delta=0.01*pi;if A*B>0s=1;elseif A*B<0s=-1;elseif A==0s=0;elseif B==0s=sign(randn);endelseif (x==0)&(b==1)&(fitness(i)>=best.fitness)delta=0.01*pi;if A*B>0s=-1;elseif A*B<0s=1;elseif A==0s=sign(randn);elseif B==0s=0;endelseif (x==1)&(b==0)&(fitness(i)<best.fitness)delta=0.01*pi;if A*B>0s=-1;elseif A*B<0s=1;elseif A==0s=sign(randn);elseif B==0s=0;endelseif (x==1)&(b==0)&(fitness(i)>=best.fitness)delta=0.01*pi;if A*B>0s=1;elseif A*B<0s=-1;elseif A==0s=0;elseif B==0s=sign(randn);endende=s*delta;       % e为旋转角U=[cos(e) -sin(e);sin(e) cos(e)];      % 量子旋转门y=U*[A B]';        % y为更新后的量子位chrom(2*i-1,j)=y(1);chrom(2*i,j)=y(2);end
endfunction X=bin2decFun(x,lenchrom,bound)
%% 二进制转化成十进制
% 输入      x:二进制编码
%    lenchrom:各变量的二进制位数
%       bound:各变量的范围
% 输出      X:十进制数
M=length(lenchrom);
n=1;
X=zeros(1,M);
for i=1:Mfor j=lenchrom(i)-1:-1:0X(i)=X(i)+x(n).*2.^j;n=n+1;end
end
X=bound(:,1)'+X./(2.^lenchrom-1).*(bound(:,2)-bound(:,1))'; 

四、运行结果

五、matlab版本及参考文献

1 matlab版本
2014a

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

【优化算法】量子遗传优化算法(QGA)【含Matlab源码 1123期】相关推荐

  1. 【单目标优化求解】基于matlab黑猩猩算法求解单目标问题【含Matlab源码 1413期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[单目标优化求解]基于matlab黑猩猩算法求解单目标问题[含Matlab源码 1413期] 点击上面蓝色字体,直接付费下载,即可. 获取代 ...

  2. 【风电功率预测】基于matlab帝国殖民竞争算法优化BP神经网络风电功率预测【含Matlab源码 1314期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源: [风电功率预测]基于matlab帝国殖民竞争算法优化BP神经网络风电功率预测[含Matlab源码 1314期] ⛄二.帝国殖民竞争算法简 ...

  3. 【APF三维路径规划】基于matlab人工势场算法无人机三维路径规划【含Matlab源码 168期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab人工势场算法无人机三维 ...

  4. 【RRT三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 155期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT算法无人机三维 ...

  5. 【RRT三维路径规划】基于matlab RRT算法无人机三维路径规划【含Matlab源码 1363期】

    一.获取代码方式 获取代码方式1: 通过订阅紫极神光博客付费专栏,凭支付凭证,私信博主,可获得此代码. 获取代码方式2: 完整代码已上传我的资源:[三维路径规划]基于matlab RRT算法无人机三维 ...

  6. 【物流选址】基于matlab免疫算法求解物流选址问题【含Matlab源码 020期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[物流选址]基于matlab免疫算法求解物流选址问题[含Matlab源码 020期] 获取代码方式2: 付费专栏Matlab路径规划(初级版 ...

  7. 【A_star三维路径规划】基于matlab A_star算法无人机三维路径规划【含Matlab源码 446期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[三维路径规划]基于matlab A_star算法无人机三维路径规划[含Matlab源码 446期] 获取代码方式2: 付费专栏Matla ...

  8. 【ACO TSP】基于matlab蚁群算法求解31城市旅行商问题【含Matlab源码 1147期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab蚁群算法求解31城市旅行商问题[含Matlab源码 1147期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

  9. 【配电网重构】基于matlab粒子群算法33节点配电网重构【含Matlab源码 1829期】

    ⛄一.配电网重构简介 1 配电网重构的数学模型 1.1 配电网重构的目标函数 配电网重构的数学模型实质就是多目标多约束的最优解问题, 配网重构的目标一般由以下几类: (1) 配电网最小网损为目标; ( ...

  10. 【LSSVM回归预测】基于matlab灰狼算法优化最小支持向量机GWO-LSSVM数据预测【含Matlab源码 2259期】

    ⛄一.灰狼算法优化最小支持向量机GWO-LSSVM简介 1 算法理论 采用灰狼优化算法的最小二乘支持向量机模型预测时,为避免过拟合现象和检验该模型的有效性,将实证部分主要分为:①基于灰狼优化算法的最小 ...

最新文章

  1. Python 之 matplotlib (八)Bar
  2. apriori算法代码python_Apriori算法的Python实现
  3. 依赖注入之针对不同类型变量的几种注入方式
  4. Java基础- super 和 this 解析
  5. python启动多个进程_Python程序中的进程操作--—--开启多进程
  6. linux桌面变成黑白,用虚拟机装了linux后开启为什么界面是黑色的呢?
  7. Java中complex怎么被调用_java中存在三种调用机制
  8. CVPR2020 | 阿里结构感知3D目标检测,KITTI BEV 排行榜第一!
  9. node中的数据持久化
  10. ubuntu drbd双机互备
  11. Linux 安装 nginx注意
  12. php打印机 纸张大小,打印设置信息中的纸张类型,如何取自定义纸张!
  13. 南京大学计算机考研资料汇总
  14. [家里蹲大学数学杂志]第033期稳态可压Navier-Stokes方程弱解的存在性
  15. 什么是前台?什么是中台?什么是后台?
  16. MySQL 事务隔离级别
  17. 蓝桥:8皇后·改(⼋皇后问题)
  18. Springboot导出excel,合并单元格示例
  19. 大数据运作原理是什么?
  20. 联通资费大幅下降意在强奸iPhone用户

热门文章

  1. Python 学习笔记---爬取海贼王动漫
  2. OpenStack_I版 5.Nova部署
  3. AD中批量导入域用户的命令
  4. 第12章 决策树 学习笔记上
  5. 20200114每日一句
  6. Python迭代器的生成与学习笔记
  7. 20191115英文每日一句
  8. Unity 在windows10上资源默认下载的路径
  9. 按照ISO26262标准检验建模规范:基于模型的软件开发质量工具
  10. Atitit 数据库核心技术index索引技术 btree hash lsm fulltxt目录1.1. HASH