📄 hgate.m
字号:
function ret=Hgate(individuals,best,binary,sizepop,lenchrom)
% 根据<Quantum-Inspired Evolutionary Algorithms with a new termination criterion,H gate and two-phase scheme>编写
% H gate
global maxgen gen
for i=1:sizepop
for j=1:sum(lenchrom)
A=individuals.chrom(2*i-1,j); % α
B=individuals.chrom(2*i,j); % β
x=binary(i,j);
b=best.binary(j);
deltae=0; % 旋转角的大小
s=0; % s为旋转角的符号,即旋转方向
if (x==0&b==1&(individuals.fitness(i)<=best.fitness))
deltae=0.01*pi;
if A*B>0
s=1;
elseif A*B<0
s=-1;
elseif A==0
s=0;
elseif B==0
s=sign(randn);
end
elseif (x==1&b==0&(individuals.fitness(i)<=best.fitness))
deltae=0.01*pi;
if A*B>0
s=-1;
elseif A*B<0
s=1;
elseif A==0
s=sign(randn);
elseif B==0
s=0;
end
end
e=s*deltae; % e为旋转角
u=[cos(e) -sin(e);sin(e) cos(e)]; % 量子旋转门
y=u*[A B]'; % y为更新后的量子位
E=0.01;
if y(1)^2<=E
y=[sqrt(E) sqrt(1-E)]';
else if y(1)^2>=1-E
y=[sqrt(1-E) sqrt(E)]';
end
end
chrom(2*i-1,j)=y(1);
chrom(2*i,j)=y(2);
end
end
ret=chrom;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -