💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
非支配排序遗传算法(NSGA)是一种多目标优化算法,旨在解决具有多个目标函数的优化问题。NSGA是在遗传算法的基础上发展而来的,它通过一种称为"非支配排序"的策略,将解空间中的个体分为不同的等级,并通过交叉和变异等遗传操作来搜索适应于多个目标的优质解。NSGA首先对种群中的个体进行非支配排序,即根据个体之间的优劣关系将其划分为多个不同的前沿等级。一个个体如果在某个目标函数上优于另一个个体且不劣于另一个个体,则认为它是非支配的。这样,种群中的个体就被划分为多个前沿等级,每个等级中的个体都不受其他等级中个体的支配。NSGA的特点在于能够有效地搜索多目标优化问题的帕累托前沿,即所有最优解构成的集合。它在解决具有多个相互竞争目标的复杂优化问题时表现出色,已被广泛应用于工程设计、资源分配、机器学习等领域。
📚2 运行结果
部分代码:
function [ f1 ] = NSGA2_fitness1( dna)
%NSGA2_FITNESS1 Summary of this function goes here
%本函数计算航路长度代价
dnanum=size(dna,1); %种群数目
dnalength=size(dna,2)-1; %有几段?相当于种群中的个体为点,点与点之间依次相连有多少条线段,因此要减1
f1=zeros(dnanum,1); %每段对应的航路长度代价
for i=1:1:dnanum
f1(i,1)=0;
for j=1:1:dnalength
d(1)=(dna(i,j+1,1)-dna(i,j,1))*10;
d(2)=(dna(i,j+1,2)-dna(i,j,2))*10; % *10是因为每小段又划分为10格?
d(3)=dna(i,j+1,3)-dna(i,j,3);
d=d.^2;
f1(i,1)=f1(i,1)+sqrt(d(1)+d(2)+d(3));
%i个体数目
end
end
% Detailed explanation goes here
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]王广生,孙祎峥,孙海军,等.内河船舶尾气监测的多无人机路径规划研究[J].港口航道与近海工程,2024,61(01):93-98.DOI:10.16403/j.cnki.ggjs20240118.
[2]卢颖,庞黎晨,陈雨思,等.一种面向城市战的无人机路径规划群智能算法[J].兵工学报,2023,44(S2):146-156.