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

📄 hgate.m

📁 一种带量子门的改进的遗传算法matlab源程序。
💻 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 + -