由于粒子群算法具有易于理解实现等特点,受到科学与工程领域的广泛关注,但其搜索策略较为单一,使得算法很难获得Pareto前沿且容易陷入局部最优和无限迭代,在全局搜索和收敛性方面还有一定的不足。受P系统理论启发,本文提出了一种基于膜系统框架的多目标粒子群优化算法用于解决多目标优化问题。根据P系统的层次结构、对象和规则,在基本膜中采用粒子群算法实现并行搜寻策略,在表层膜中采用非支配排序和拥挤距离机制来提高算法收敛速度,并通过进化规则以保持解的多样性。仿真实验采用KUR、ZDT系列和DTLZ系列测试函数对MPSO算法进行测试,并与其他多目标优化算法进行对比,包括MOPSO、dMOPSO、SMPSO、MMOPSO、MOEA/D、SPEA2、PESA2、NSGAII。实验结果表明:新算法能够保证解的多样性,快速收敛并接近于真实的Pareto前沿。
现实中许多工程和科学问题都存在多个彼此相互冲突的问题,如:相同材料的强度和重量,商品的成本和质量。
如何求得这些问题的最优解是工程和学术领域的焦点问题。
和简单的单目标优化问题不同, 多目标问题最大特点是在提高某些目标的性能时,会降低其它某些目标性能,同时求得所有目标的最优解是不可能的。多目标问题就是在不同目标间进行协调,使每个目标性能尽可能达到最优。但这会导致数量较多的最优解,甚至达到无穷多个[1]。
解决多目标优化问题的原始方法通常会将问题转换成单目标优化,采用数学规划方式进行求解,每次只能得到一种权重情况下的解。但对于多目标优化的目标函数和约束函数可能是非线性、不可微或不连续的,故采用传统的数学规划方法效率较低,且对于权重和目标给定的次序较敏感[2]。由于粒子群算法概念简单、易于实现,越来越多的学者尝试运用将粒子群算法与其它优化算法融合解决多目标优化算法问题。
Li 最早将粒子群优化(Particle Swarm Optimization, PSO)与NSGA2 结合用于解决多目标优化问题[3];Coello 等人在PSO 中采用自适应网格的方法,提出了经典的MOPSO 算法[4];张提出了一个基于粒子群优化膜计算理论的云计算资源调度算法[5];Liu 等提出了将遗传机制引入到膜系统的膜算法,该求解ZDT 优化问题表现出了较好的求解性能[6];Parsopoulos 和Vrahatis 提出了一种目标聚合的多目标粒子群算法,采用固定的和自适应的权重组合将多目标优化问题转换为单目标优化问题,然后采用基于粒子群算法进行求解, 但每运行一次算法只能获得一个Pareto 最优解[7];Hu 和Eberhart 提出了一种动态邻近法来求解多目标优化算法,采用动态邻近策略来为粒子选取最优经验,但一次只能对一个目标寻优,其本质还是用一维的方法来处理多目标[8];Dou 在膜系统上提出了一种新的粒子群优化算法用于膜系统的特征选择,利用P 系统的层次结构和消息机制,将粒子群算法作为子算法引入所有基本膜中[9]。
与其它多目标优化算法相比,MOPSO 有着收敛速度快的特点,但其在解均匀性和并行性方面表现较差。由于膜结构具有良好的并行性,并且结构简单,易于与其他进化算法相融合等特点,部分学者尝