📄 migration.m
字号:
% 移民函数
function [individualQ,individualR]=Migration(n,k,preGen,migGen,migRate,numLayer,bestIndR,individualQ,individualR)
number=floor(n*migRate); %单列量子变化个数(目前存在BUG,只能n=20,migRate=0.1)
for i=1:k
for j=1:4
while (1)
poi=rand(1,number);
if abs(poi(1)-poi(2))>(1/n)
break
end
end
for jj=1:number
for ii=1:n
if ((ii-1)/n)<=poi(jj)&poi(jj)<=(ii/n) % 选择移民位置
p=rand(1,1);
if p>0.5
Ma=(1/sqrt(2)); % 随机生成新的量子位
else
Ma=-(1/sqrt(2));
end
% Mb=sqrt(1-(Ma^2));
p=rand(1,1);
if p>0.5
Mb=(1/sqrt(2));
else
Mb=-(1/sqrt(2));
end
[individualQ(1,ii,j,i)]=Ma;
[individualQ(2,ii,j,i)]=Mb;
end
end
end
[individualR(j,i)]=tranQ2R(individualQ(1,:,j,i),n,j,k,numLayer,bestIndR);
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -