1、基本概念
(1)量子遗传算法是量子计算与遗传算法相结合的智能优化算法,由K.H.Han等人提出,其将量子态、量子门、量子状态特性、概率幅等量子概念引入到遗传算法当中。量子遗传算法也是一种概率搜素算法,它采用量子位来表示基因。遗传算法的基因所表达的是某一确定的信息,而量子遗传算法中,由于量子信息的叠加性使量子位所表达的基因包含所有可能的信息。
(2)在量子计算中,量子比特|0〉和|1〉表示微观粒子的两种基本状态,根据叠加原理,量子信息的叠加态可以表示为这两个基本态的线性组合,即|ψ〉=α|0〉+β|1〉,式中α和β为复数,表示量子位状态的概率幅,其中和分别表示量子态|ψ〉因测量导致坍缩到|0〉态和|1〉态的概率,且满足的归一化条件
(3)在量子遗传算法中,染色体采用量子位的概率幅进行编码,编码方案如下:
θ为量子比特的相位,n为染色体数目,k为量子位的位数即解空间的维数,rand是[0,1]范围内的随机数。每个量子位为分上下两行,分别对应两个量子基本态的概率幅,满足归一化条件,因此每个个体包含上下两条文化基因链,每条基因链是优化问题的一个候选解。由此可知,量子遗传算法在种群规模不变的情况下,候选解个数比遗传算法多一倍,增加了解空间的多样性,提高了寻优成功的概率。
(4)在量子遗传算法中,采用量子旋转门改变量子比特相位,以更新量子位的概率幅,从而达到基因变异的效果。
2、量子遗传算法的基本步骤:
step1:初始化父代染色体
step2:对每个染色体基因位即量子位进行测量,得到一个状态。对每个状态计算适应度,记录最佳个体及适应度。
step3:遗传进化设定的代数,其中采用量子旋转门对每一代染色体进行遗传变异。
step4:达到终止条件,输出最佳个体及适应度。
-
% 利用量子遗传算法进行图像增强
-
clc,clear all;close all;
-
%% read picture
-
img=rgb2gray(imread(
'test1.jpg'));
-
img=imresize(img,
0.7);
-
figure(
1);
-
imhist(img);
% 原始图像直方图
-
figure(
2);
-
imshow(img);
% 原始图像
-
img=double(img);
-
[row,colume]=size(img);
% 图像大小
-
num_pixel=row*colume;
% 像素个数
-
%% 利用QGA求最优的alpha, beta
-
MAX_Geneic=
20;
% 遗传代数
-
sizePopu=
10;
% 初始种群数目
-
tic;
-
best=QGA_Sharpen(img,MAX_Geneic,sizePopu);
-
disp([
'The total time is ' num2str(toc)
's']);
-
fprintf(
'The final alpha is %f\n',best.B(
1));
-
fprintf(
'The final beta is %f\n',best.B(
2));
-
fprintf(
'The best fitness value is %f\n',best.fitnessVal);
-
%% 画出非线性函数(Beta函数)图像
-
x=
0:
0.01:
1;
-
y=pdf(
'beta',x,best.B(
1),best.B(
2));
-
figure(
4);
-
plot(x,y);
-
%% 处理之后的图像灰度值
-
img_sharp=best.sharpImg;
-
figure(
5);
-
imhist(uint8(img_sharp));
% 锐化后图像直方图
-
figure(
6);
-
imshow(uint8(img_sharp));
% 可视化处理后图像
-
%imwrite(uint8(cameraman),'test2_opt.jpg');
完整代码或者仿真咨询添加QQ1575304183
转载:https://blog.csdn.net/m0_57702748/article/details/117172717