?? qgate.asv
字號:
function ret=Qgate(individuals,best,sizepop,lenchrom)
% 根據(jù)<一種基于量子染色體的遺傳算法>中的量子門調(diào)整策略編寫
% 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);
deltae=0.01*pi; % 旋轉角的大小
if ((x==0)&(b==0))||(x==0&b==1&(individuals.fitness(i)<best.fitness))
deltae=0;
s=0; % s為旋轉角的符號,即旋轉方向
elseif ((x==0)&(b==1)&(individuals.fitness(i)>=best.fitness))||((x==1)&(b==0)&(individuals.fitness(i)<best.fitness))
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==1))||(((x==1)&(b==0)&(individuals.fitness(i)>=best.fitness)))
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; % 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
end
ret=chrom;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -