qgate2.asv
来自「一种带量子门的改进的遗传算法matlab源程序。」· ASV 代码 · 共 70 行
ASV
70 行
function ret=Qgate2(individuals,best,sizepop,lenchrom)
% 根据自编量子门调整策略编写
% quantum gate
global delta
for i=1:sizepop
for j=1:sum(lenchrom)
A=individuals.chrom(2*i-1,j); % α
B=individuals.chrom(2*i,j); % β
x=individuals.binary(i,j);
b=best.binary(j);
if ((x==0)&(b==0))||((x==1)&(b==1))
deltae=0;
s=0;
elseif (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==0)&(b==1)&(individuals.fitness(i)>=best.fitness)
deltae=0.005*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
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
elseif (x==1)&(b==0)&(individuals.fitness(i)>=best.fitness)
deltae=0.005*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
end
e=s*deltae;
u=[cos(e) -sin(e);sin(e) cos(e)];
y=u*[A B]';
chrom(2*i-1,j)=y(1);
chrom(2*i,j)=y(2);
end
end
ret=chrom;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?