91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 1.82MB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2023-08-13
  • 語言: Matlab
  • 標簽: NSGA-Ⅱ??matlab??NSGA??

資源簡介

1)本程序主要針對測試函數集ZDT1進行的NSGA-Ⅱ算法的編寫; 2)本程序有詳細的備注解釋; 3)本文件里包含論文《非支配排序遺傳算法(NSGA)的研究與應用》.pdf,用來指導學習NSGA-Ⅱ算法

資源截圖

代碼片段和文件信息

function?NSGAII()
clc;
%?format?compact;
tic;
%?hold?on

%--初始化?參數設定
generations=100;????????%迭代次數
popnum=100;?????????????%種群大?。ㄅ紨担?br/>poplength=30;???????????%個體長度
minvalue=repmat(zeros(1poplength)popnum1);???%個體最小值---B?=?repmat(A?m?n)?%將矩陣A復制m*n塊,即B由m*n塊A平鋪而成
maxvalue=repmat(ones(1poplength)popnum1);????%個體最大值
population=rand(popnumpoplength).*(maxvalue-minvalue)+minvalue;????%產生新的初始種群

????%--開始迭代進化
????for?gene=1:generations??????%開始迭代

????????%--交叉
????????newpopulation=zeros(popnumpoplength);??%子代種群
????????for?i=1:popnum/2????????????????????????%交叉產生子代
????????????k=randperm(popnum);?????????????????%從種群中隨機選擇出兩個父母,不采用二進制聯賽方法
????????????beta=(-1).^round(rand(1poplength)).*abs(randn(1poplength))*1.481;?????%采用正態分布交叉產生兩個子代
????????????newpopulation(i*2-1:)=(population(k(1):)+population(k(2):))/2+beta.*(population(k(1):)-population(k(2):))./2;??%產生第一個子代
????????????newpopulation(i*2:)=(population(k(1):)+population(k(2):))/2-beta.*(population(k(1):)-population(k(2):))./2;????%產生第二個子代
????????end
????????%--變異
????????k=rand(size(newpopulation));????%隨機選擇要變異的基因位
????????miu=rand(size(newpopulation));??%采用多項式變異
????????temp=k<1/poplength?&?miu<0.5;???%要變異的基因位
????????newpopulation(temp)=newpopulation(temp)+(maxvalue(temp)-minvalue(temp)).*((2.*miu(temp)+(1-2.*miu(temp)).*(1-(newpopulation(temp)-minvalue(temp))./(maxvalue(temp)-minvalue(temp))).^21).^(1/21)-1);????????%變異情況一
????????newpopulation(temp)=newpopulation(temp)+(maxvalue(temp)-minvalue(temp)).*(1-(2.*(1-miu(temp))+2.*(miu(temp)-0.5).*(1-(maxvalue(temp)-newpopulation(temp))./(maxvalue(temp)-minvalue(temp))).^21).^(1/21));??%變異情況二

????????%--越界處理/種群合并
????????newpopulation(newpopulation>maxvalue)=maxvalue(newpopulation>maxvalue);?%子代越上界處理
????????newpopulation(newpopulation????????newpopulation=[population;newpopulation];???%合并父子種群

????????%--計算目標函數值
????????functionvalue=zeros(size(newpopulation1)2);???%合并后種群的各目標函數值,這里問題是ZDT1
????????functionvalue(:1)=newpopulation(:1);???%計算第一維目標函數值
????????g=1+9*sum(newpopulation(:2:poplength)2)./(poplength-1);
????????functionvalue(:2)=g.*(1-(newpopulation(:1)./g).^0.5);?%計算第二維目標函數值

????????%--非支配排序
????????fnum=0;?????%當前分配的前沿面編號
????????cz=false(1size(functionvalue1));??????%記錄個體是否已被分配編號
????????frontvalue=zeros(size(cz));?????????????%每個個體的前沿面編號
????????[functionvalue_sortednewsite]=sortrows(functionvalue);?%對種群按第一維目標值大小進行排序?則第一行個體p即為種群中支配個體p的數量為零的個體,Np=0
????????while?~all(cz)??????%開始迭代判斷每個個體的前沿面,采用改進的deductive?sort
????????????fnum=fnum+1;
????????????d=cz;
????????????for?i=1:size(functionvalue1)?%:(1)找到種群中所有n=0的個體,并保存在當前集合F1中;
????????????????if?~d(i)
????????????????????for?j=i+1:size(functionvalue1)?%判斷i對應的所有集合里面的支配和非支配的解,被i支配則為1,不被i支配則為0
????????????????????????if?~d(j)
????????????????????????????k=1;
????????????????????????????for?m=2:size(functionvalue2)?%判斷是否支配,找到個體p不支配的個體,標記為k=0
???????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????5838??2019-04-12?22:40??NSGA_Ⅱ\NSGAII.m
?????文件?????????310??2019-04-12?22:59??NSGA_Ⅱ\備注.txt
?????文件?????1970580??2019-03-15?16:20??NSGA_Ⅱ\非支配排序遺傳算法(NSGA)的研究與應用.pdf

評論

共有 條評論