基于非支配排序的多目标PSO算法MATLAB实现

本文共496个字,预计阅读时间需要2分钟。

这一篇是Xue Bing在一区cybernetics发的论文,里面提出了两个多目标PSO特征选择算法,一个是NSPSO另一个是CMDPSO。其中NSPSO是参考了NSGA2的框架和思想。

该算法简介请转到:

基于非支配排序的多目标PSO算法

伪代码

具体流程

  • ①划分数据集为测试集和训练集
  • ②初始化PSO算法
  • ③迭代开始
  • ④计算两个目标值(论文中是特征数和错误率)
  • ⑤非支配排序
  • ⑥拥挤距离度量并排序
  • ⑥对每个粒子从第一前沿面选择一个粒子作为gbest,更新当前粒子
  • ⑦调整粒子群
  • ⑧迭代结束返回

MATLAB实现:

NSPSO:

注意其中FSKNN是我的问题的评价函数,包含两个目标值,都存入到pfitness中

NDSort.m为非支配排序代码,请转到

非支配排序算法通用MATLAB代码

拥挤距离代码:

Truncation.m代码:

 

读者评分
[评分人数: 2 平均分: 5]

13 位极客在 “基于非支配排序的多目标PSO算法MATLAB实现” 留下足迹

  1. 楼主您好,我最近也在做NSPSO算法的一个多目标问题,有几个问题想咨询一下,楼主可以加一下联系方式吗?

  2. 非常感谢楼主的代码,想问下楼主两个目标(最小化特征数和最小化错误率)评价函数是怎么写的。同一篇论文的CMDPSOFS算法楼主能够实现吗,谢谢

评论

OmegaXYZ