1. 粒子群算法
  1. 算法流程:
  1. 初始化粒子群,随机产生所有粒子的位置和速度并确定粒子的pbest和gbest。
  2. 对每个粒子,将它的当前位置与它经历过的最好位置pbest进行比较,如果当前位置更好,则将其作为当前的最好位置pbest;否则,pbest保持不变;
  3. 对每个粒子,将它的当前位置和群体中所有粒子所经历的最好位置gbest进行比较,如果这个粒子的位置更好,则将其设置为当前gbest;否则,gbest保持不变;
  4. 更新粒子的速度和位置,更新公式如下所示:
  5. 终止条件判断
  1. 多目标基本概念
  2. 多目标粒子群
  1. 参考论文:
    MOPSO)Coello C ,  Pulido G T ,  Lechuga M S . Handling multiple objectives with particle swarm optimization[J]. IEEE Transactions on Evolutionary Computation, 2004, 8(3):256-279.
    (Adaptive grid) J. D. Knowles and D. W. Corne, “Approximating the nondominated front using the Pareto archived evolution strategy,” Evol. Comput., vol. 8, pp. 149–172, 2000.
  2. 概述:算法(论文《MOPSO》)主要工作:①基于PSO处理多目标优化问题;②基于自适应网格管理外部档案中的非支配解;③引入变异操作增强全局寻优能力,拓展算法的多样性(注:该操作是PSO已有的改进之一)
  3. MOPSO算法流程图:
  4. 多目标粒子群算法 java 多目标粒子群算法步骤_启发式算法

  5. 流程说明
  1. 外部档案REP用于存储非劣解,根据非劣解在目标空间中的值划分网格。网格操作类似于小生境 (相比于小生境,该策略的计算开销更小),如果网格内粒子数过多,粒子被选择作为领导粒子的可能性越小。
  2. 对于新解是否插入REP中,有如下几种情况(
    ①:如果当前archive是空的,则直接将新解插入archive中,如图case1;
    ②:如果新解受archive中某一个解所支配,则不插入archive,如图case2;
    ③:如果新解支配archive中的某些解,则移除archive中这些解,并将新解插入archive,如图case4;
    ④:如果archive达到预设的规格,新解是否插入,则根据自适应网格进行插入判定(自适应网格用于获取分布均匀的Pareto前沿);
    ):
  3. 多目标粒子群算法 java 多目标粒子群算法步骤_hive_02

  4. 下图为新解在已有网格边界内以及在边界外两种情况:
  5. 多目标粒子群算法 java 多目标粒子群算法步骤_多目标粒子群算法 java_03

  6. 变异操作伪代码:
  7. 多目标粒子群算法 java 多目标粒子群算法步骤_多目标_04

  8. 【其他相关说明】:用到的对比算法(NSGA-II、microGA、PAES)和指标(SP、ER(错误率)、GD(世代距离)、time(算法时间));