NSGA-II即是一种经典的多目标优化算法,核心在于快速非支配排序算法,个体拥挤度距离计算,精英保存策略。理解它的重要途径是阅读作者Deb的原文《A Fast and Elitist Multiobjective Genetic Algorithm》。具体算法可以在matlab官网寻找,GitHub也可以。
NSGA-II算法的进化流程如下:
(1)采用合适的方式随机产生初始父代种群P0,种群规模为N,通过交叉变异产生种群大小也为N的子代种群Q0。
(2)父代种群和子代种群共同组成种群Ri;采用快速非支配排序策略,将种群Ri的全部个体进行分层,每一层为一个非支配集Fi;计算每一非支配集的全体局部拥挤度并排序。
(3)按照排序顺序陆续将非支配集包含的个体填充进新的父代种群Pi+1,当填充的某一级非支配集的全部个体将导致种群大小超过N时,按个体拥挤度大小将部分个体优先填充进种群Pi+1,直至Pi+1的规模大小为N为止。
(4)Pi+1经过常规的遗传操作生成子代种群Qi+1。
(5)如果迭代次数未达到设定值,则再进行2、3、4步的操作。
Fig.1. NSGA-II的种群产生过程
轨迹优化重要参考文献
对于各种插值方式在工业机器人关节轨迹与空间轨迹构造上的应用,以及各种轨迹优化方法的应用介绍,可以参考意大利人Gasparetto的综述: Gasparetto, P. Boscariol, A. Lanzutti, R. Vidoni, Path planning and trajectory planning algorithms: A general overview, in: Mech. Mach. Sci., (2015) 3–27. doi:10.1007/978-3-319-14705-5_1.
对于多目标优化算法的Pareto解集的评估准则,可以参考Saravanan的好几篇相似的文献,譬如Saravanan R, Ramabalan S, Balamurugan C. Evolutionary optimal trajectory planning for industrial robot with payload constraints[J]. The International Journal of Advanced Manufacturing Technology, 2008, 38(11): 1213-1226.
应用五次NURBS在机器人关节轨迹构造上,并采用NSGA-II算法做优化,并采用简单的评估准则作解集的评估,可以参考Shi的论文,缺点是他的插值函数带有权重,评估准则也较简单。X. Shi, H. Fang, L. Guo, Multi-objective optimal trajectory planning of manipulators based on quintic NURBS, in: Mechatronics Autom. (ICMA), 2016 IEEE Int. Conf., IEEE, 2016: pp. 759–765. doi: 10.1109/ICMA.2016.7558658.