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

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

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

该算法简介请转到:

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

伪代码

具体流程

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

MATLAB实现:

NSPSO:

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

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

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

拥挤距离代码:

Truncation.m代码:

 

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

  1. 非常感谢您的慷慨帮助,但是冒昧地请问您有“非支配排序的多目标PSO算法”的另一个算法CMDPSO吗?再次打扰,万分抱歉!

  2. 非常感谢楼主,看到了这篇感到收益匪浅,我想运行一下代码再仔细学习一下,能发一下吗?我的邮箱1442476218@qq.com,保证只做自己学习使用,不做他用,谢谢您了

  3. 抱歉深夜还来请教您问题。我把评价函数换成ZDT1后,GEN到了4时,Truncation函数发生出错,
    错误使用 pdist2 (line 224)
    PDIST2 does not accept complex data for built-in distances.
    请问为什么会这样呢?

  4. 楼主,您好,能否发一下您推荐的这篇文章,我搜了好久都没有搜索到这篇,只看到了其他,我的邮箱是1637678434@qq.com,谢谢您了

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

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

评论