【优化求解】基于NSGA2算法求解多目标优化问题matlab源码
生活随笔
收集整理的這篇文章主要介紹了
【优化求解】基于NSGA2算法求解多目标优化问题matlab源码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 模型簡介
2 部分代碼
clc clear?all close?all %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%pop?=?100;?%種群數量 gen?=?100;?%迭代次數 M?=?2;?%目標函數數量 V?=?30;%變量個數; %維度(決策變量的個數)min_range?=?zeros(1,?V);?%下界 生成1*30的個體向量 全為0 max_range?=?ones(1,V);?%上界 生成1*30的個體向量 全為1 pcl1=0.6;?pcl2=0.75;pch=0.9;pm=0.1; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% chromosome?=?initialize_variables(pop,M,V,min_range,max_range);%初始化種群chromosome?=?non_domination_sort_mod(chromosome,?M,?V);%對初始化種群進行非支配快速排序和擁擠度計算tic; for?i?=?1?:?genpool?=?round(pop/2);%round() 四舍五入取整 交配池大小tour?=?2;%競標賽 參賽選手個數parent_chromosome?=?tournament_selection(chromosome,?pool,?tour);%競標賽選擇適合繁殖的父代%交叉和變異算法的分布指數mu?=?20;%交叉和變異算法的分布指數mum?=?20;offspring_chromosome?=?genetic_operator(parent_chromosome,M,?V,mu,?mum,?min_range,?max_range);%進行交叉變異產生子代 該代碼中使用模擬二進制交叉和多項式變異 采用實數編碼[main_pop,~] =?size(chromosome);%父代種群的大小[offspring_pop,~] =?size(offspring_chromosome);%子代種群的大小clear?tempintermediate_chromosome(1:main_pop,:) =?chromosome;intermediate_chromosome(main_pop?+?1?:?main_pop?+?offspring_pop,1?:?M+V) =?offspring_chromosome;%合并父代種群和子代種群intermediate_chromosome?=?non_domination_sort_mod(intermediate_chromosome,?M,?V);%對新的種群進行快速非支配排序chromosome?=?replace_chromosome(intermediate_chromosome,?M,?V,?pop);%選擇合并種群中前N個優先的個體組成新種群if?~mod(i,100)clc;fprintf('%d generations completed\n',i);end end toc; disp(['運行時間: ',num2str(toc)]); xlswrite('NSGA2gaijin',chromosome); if?M?==?2plot(chromosome(:,V?+?1),chromosome(:,V?+?2),'o');xlabel('f_1');?ylabel('f_2');title('Pareto Optimal Front'); elseif?M?==?3plot3(chromosome(:,V?+?1),chromosome(:,V?+?2),chromosome(:,V?+?3),'*');xlabel('f_1');?ylabel('f_2');?zlabel('f_3');title('Pareto Optimal Surface'); end3 仿真結果
4 參考文獻
[1]張利. NSGA2算法及其在電力系統穩定器參數優化中的應用[D]. 西南交通大學, 2013.
博主簡介:擅長智能優化算法、神經網絡預測、信號處理、元胞自動機、圖像處理、路徑規劃、無人機等多種領域的Matlab仿真,有科研問題可私信交流。
?
總結
以上是生活随笔為你收集整理的【优化求解】基于NSGA2算法求解多目标优化问题matlab源码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript --- 手写Pr
- 下一篇: http --- http与https