我使用带有MATLAB的cvx包解决了单个目标凸优化问题(实际上与减少干扰减少有关)。现在我想将问题扩展到多目标问题。与cvx包相比,使用遗传算法解决它的优点是什么?我还没有读过关于遗传算法的任何内容,而是通过搜索网络来实现多目标优化。
答案 0 :(得分:0)
基于导数(或梯度)的优化算法(包括凸优化算法)本质上试图找到局部最小值。优点和缺点如下。
优点: 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
多目标优化的目的是找到帕累托曲面(或最佳折衷曲面)。由于 surface 由多个点组成,因此基于种群的进化算法非常适合。
(您可以使用基于梯度的算法解决一系列单目标优化问题,但除非可行集是凸的,否则无法准确找到它们。)