⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qgate.asv

📁 一种带量子门的改进的遗传算法matlab源程序。
💻 ASV
字号:
function ret=Qgate(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);
        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 + -