本号从现在起可以定制使用评估次数改进单目标群体算法,需要的私,价格贵,质量高。
目录:
一、多目标环形粒子群算法MO_Ring_PSO_SCD
二、多目标遗传算法NSGAII
三、MOCEC2020的24个多目标测试函数
四、实验结果
五、代码获取
一、多目标环形粒子群算法
摘要:本文提出了一种新的粒子群优化算法,用于求解可能有多个pareto最优解对应于同一目标函数值的多模态多目标优化问题。该方法采用基于索引的环形拓扑结构来诱导稳定的生态位,从而允许识别更多的帕累托最优解,并采用特殊的拥挤距离概念作为决策和目标空间中的密度度量。该算法不仅能定位和维持大量的pareto最优解,而且在决策空间和目标空间都能得到良好的分布。 此外,设计了新的多模态多目标优化测试函数和新的性能指标,以评估所提出算法的性能。利用基准函数将该方法与其他五种算法进行了有效性验证研究,以证明其有效性。
二、多目标遗传算法NSGAII
介绍:多目标遗传算法NSGA-II(Nondominated Sorting Genetic Algorithm II)是一种基于遗传算法的多目标优化算法,由Deb等人在2002年提出,作为对NSGA算法的改进。NSGA-II算法的基本思想是通过选择、交叉和变异操作来生成新的个体,并使用非支配排序方法来选择优秀的个体。以下是NSGA-II算法的主要特点:
非支配排序:算法首先对当前种群中的每个个体进行非支配排序,将个体按照非支配等级(rank)从小到大进行排序。这有助于识别出在不同目标函数上表现优异的个体。
拥挤距离:计算当前种群中每个个体的拥挤距离(crowding distance)。拥挤距离反映了在目标空间中个体之间的分布密度,拥挤距离越小,表示个体在目标空间中越分散,搜索能力越强。
选择、交叉和变异操作:根据非支配排序和拥挤距离,选择一定数量的个体进行交叉和变异操作,以生成新的后代,并对后代进行变异操作,以一定的概率随机改变某些基因的值。
NSGA-II算法通过重复上述步骤,直到满足停止准则,最终得到Pareto最优解集。相比于传统的多目标遗传算法,NSGA-II在以下方面进行了显著的改进:
降低计算复杂度:NSGA-II使用了快速非支配排序法,将算法的计算复杂度由O(mN3)降到了O(mN2),使得算法的计算时间大大减少。
应用精英策略:通过精英策略提高了优秀个体的保留概率,从而加快程序的执行速度。
NSGA-II算法已成功应用于多个领域,包括工程优化、金融分析和生物信息学等。由于其优秀的性能和效率,NSGA-II算法在解决多目标优化问题时得到了广泛的关注和应用。
需要注意的是,虽然NSGA-II算法在多目标优化方面取得了显著的成果,但在实际应用中仍需要根据具体问题调整算法参数和策略,以获得最佳优化效果。同时,随着研究的深入,新的多目标优化算法也在不断涌现,为解决复杂的多目标优化问题提供了更多的选择。
三、MOCEC2020的24个多目标测试函数
MOCEC2020的24个多目标测试函数来源于文章:A novel scalable test problem suite for multimodal multiobjective optimization,提出了一种新的可扩展多模态多目标测试问题集。所提出的测试问题具有局部Pareto最优集(PS)的存在、可扩展的PSs数量、非均匀分布的PSs数量、离散的Pareto前沿(PF)以及可扩展的变量和目标数量等特性。本文所提出的测试问题都是连续优化问题。因此,它们可以用来衡量多模态多目标连续优化算法的不同性能。此外,还提出了一种多目标问题的景观可视化方法来展示多模态多目标测试问题的性质。在此基础上,对这些问题的特征进行了分析和表征。此外,对现有的多模态多目标优化算法和几种流行的多目标优化算法进行测试,并与新的测试问题集进行比较。然后,讨论了多模态多目标优化算法应具有的性质,并展望了多模态多目标优化的未来研究方向。
详细如下:
四、实验结果
所有文件和运行结果如下:
评价指标IGD(Inverted Generational Distance)、PSP(Performance Strength Pareto Set)和hyp(Hypervolume)都是多目标优化算法中常用的性能度量指标。下面分别介绍这些指标的含义和计算方法。
IGD (Inverted Generational Distance)
IGD指标衡量了算法得到的解集与真实Pareto前沿之间的平均距离。它反映了算法得到的解集对真实Pareto前沿的逼近程度。IGD值越小,说明算法得到的解集与真实Pareto前沿越接近,性能越好。
PSP (Performance Strength Pareto Set)
PSP指标结合了IGD和收敛性比率(CR)来评估算法的性能。CR衡量了算法得到的解集对真实Pareto前沿的覆盖程度,而IGD则衡量了逼近程度。PSP通过结合这两个指标,提供了一个更全面的性能评估。
hyp (Hypervolume)
Hypervolume指标衡量了算法得到的解集在目标空间中所占的体积。它反映了算法得到的解集的多样性和广泛性。Hypervolume值越大,说明算法得到的解集在目标空间中分布越广泛,性能越好。
函数MF24运行结果如下:
部分代码:
% 添加必要的路径
addpath(genpath('MM_testfunctions/'));
addpath(genpath('Indicator_calculation/'));
clear;clc;close all;
% 全局变量
global fname
i_func = 24 ; % 测试函数的编号 1-24
% 获取函数的详细信息
[fname, n_obj, n_var, xl, xu, repoint, N_ops] = Get_F(i_func);
%% 加载参考 PS 和 PF 数据
load(strcat([fname, '_Reference_PSPF_data']));
% 初始化参数
popsize = 200 * N_ops;
Max_fevs = 10000 * N_ops;
Max_Gen = fix(Max_fevs / popsize);
%% 调用算法
% 运行 NSGAII 算法
[ps, pf] = NSGAII (fname, xl, xu, n_obj, popsize, Max_Gen);
% 运行 MO_Ring_PSO_SCD 算法
[ps1, pf1] = MO_Ring_PSO_SCD (fname, xl, xu, n_obj, popsize, Max_Gen);