我已经用MATLAB的cvx包解决了一个单目标凸优化问题(实际上与减少干扰有关)。现在我想把这个问题扩展到多目标问题。与cvx包相比,使用遗传算法解决该问题的优缺点是什么?我没有读过关于遗传算法的任何东西,它是通过搜索网络进行多目标优化而产生的。
发布于 2020-02-05 09:09:50
基于导数(或梯度)的优化算法,包括凸优化算法,本质上都是试图找到局部极小值。优点和缺点如下。
优点: 1.它可以非常快,因为它只尝试遵循导数给出的路径。2.有时,它会达到全局最小值(例如,问题是凸的)。
缺点: 1.当问题是高度非线性和非凸的时候,解依赖于初始点,因此所获得的解很可能远离全局最优解。2.它对多目标优化问题不是很适用。
由于上述缺点,对于多目标优化,一般采用进化算法。遗传算法属于进化算法。
为多目标优化问题开发的进化算法与基于梯度的算法有根本的不同。它们是基于群体的,即维护多个解决方案(成百上千个),而后者只维护一个解决方案。
NSGA-II是一个例子:https://ieeexplore.ieee.org/document/996017、https://mae.ufl.edu/haftka/stropt/Lectures/multi_objective_GA.pdf、https://web.njit.edu/~horacio/Math451H/download/Seshadri_NSGA-II.pdf
多目标优化的目的是找到Pareto曲面(或最优折衷曲面)。由于曲面由多个点组成,因此基于种群的进化算法非常适合。
(您可以使用基于梯度的算法解决一系列单目标优化问题,但除非可行集是凸的,否则无法准确地找到它们。)
https://stackoverflow.com/questions/34579416
复制相似问题