资源简介

带有约束条件的NSGA-2算法及过程解释。 可以参考我之前写的代码解释。 直接放到matlab中运行主函数,输入测试函数序号,就可以运行。

资源截图

代码片段和文件信息

function child_offspring  = genetic_operator(parent_selected)
global V xl xu etac 

% 1. 交叉&变异
% 2. 选择锦标赛完成后的个体进行交叉变异;
% 3. 输出 ‘child_offspring‘. 

%% Reference 
% Deb & samir agrawal“A Niched-Penalty Approach for Constraint Handling in Genetic Algorithms“. 
%% SBX cross over operation incorporating boundary constraint
[N] = size(parent_selected1);
xl1=xl‘;
xu1=xu‘;
rc=randperm(N);
for i=1:(N/2)
    parent1=parent_selected((rc(2*i-1)):);
    parent2=parent_selected((rc(2*i)):);
    if (isequal(parent1parent2))==1 & rand(1)>0.5
        child1=parent1;
        child2=parent2;
    else 
        for j = 1: V  
            if parent1(j)               beta(j)= 1 + (2/(parent2(j)-parent1(j)))*(min((parent1(j)-xl1(j))(xu1(j)-parent2(j))));
            else
               beta(j)= 1 + (2/(parent1(j)-parent2(j)))*(min((parent2(j)-xl1(j))(xu1(j)-parent1(j))));
            end   
        end
         u=rand(1V);
         alpha=2-beta.^-(etac+1);
         betaq=(u<=(1./alpha)).*(u.*alpha).^(1/(etac+1))+(u>(1./alpha)).*(1./(2 - u.*alpha)).^(1/(etac+1));
        child1=0.5*(((1 + betaq).*parent1) + (1 - betaq).*parent2);
        child2=0.5*(((1 - betaq).*parent1) + (1 + betaq).*parent2);
    end
    child_offspring((rc(2*i-1)):)=poly_mutation(child1);           % polynomial mutation
    child_offspring((rc(2*i)):)=poly_mutation(child2);             % polynomial mutation
end

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-10-26 00:21  Constrained NSGA2\
     文件        4682  2019-10-25 23:42  Constrained NSGA2\Main_NSGA2.m
     文件        5637  2019-10-25 22:25  Constrained NSGA2\NDS_CD_cons.m
     文件        2063  2015-02-24 10:48  Constrained NSGA2\Readme.m
     文件        1465  2019-10-25 23:14  Constrained NSGA2\genetic_operator.m
     文件        1319  2015-02-24 10:48  Constrained NSGA2\license.txt
     文件         686  2019-10-25 18:27  Constrained NSGA2\normalisation.m
     文件         582  2015-02-24 10:48  Constrained NSGA2\poly_mutation.m
     文件         611  2019-10-25 23:24  Constrained NSGA2\replacement.m
     文件        3458  2019-10-25 05:54  Constrained NSGA2\test_case.m
     文件        1575  2019-10-25 23:12  Constrained NSGA2\tour_selection.m

评论

共有 条评论