Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 基于遗传算法或cvx工具的多目标凸优化_Algorithm_Matlab - Fatal编程技术网

Algorithm 基于遗传算法或cvx工具的多目标凸优化

Algorithm 基于遗传算法或cvx工具的多目标凸优化,algorithm,matlab,Algorithm,Matlab,我用cvx软件包和MATLAB解决了一个单目标凸优化问题(实际上与减少干扰有关)。现在我想把问题扩展到多目标问题。与cvx软件包相比,使用遗传算法解决该问题的优点和缺点是什么?我没有读过任何关于遗传算法的书,它是通过搜索网络来实现多目标优化的 基于导数(或梯度)的优化算法,包括凸优化算法,本质上是试图找到局部最小值。利弊如下 优点: 1.它可以非常快,因为它只尝试遵循导数给出的路径。 2.有时,它会达到全局最小值(例如,问题是凸的) 缺点: 1.当问题具有高度非线性和非凸性时,其解依赖于初始点,

我用cvx软件包和MATLAB解决了一个单目标凸优化问题(实际上与减少干扰有关)。现在我想把问题扩展到多目标问题。与cvx软件包相比,使用遗传算法解决该问题的优点和缺点是什么?我没有读过任何关于遗传算法的书,它是通过搜索网络来实现多目标优化的

基于导数(或梯度)的优化算法,包括凸优化算法,本质上是试图找到局部最小值。利弊如下

优点: 1.它可以非常快,因为它只尝试遵循导数给出的路径。 2.有时,它会达到全局最小值(例如,问题是凸的)

缺点: 1.当问题具有高度非线性和非凸性时,其解依赖于初始点,因此很有可能得到的解远离全局最优解。 2.对于多目标优化问题,这并不完全适用

由于上述缺点,对于多目标优化,我们通常使用进化算法。遗传算法属于进化算法

针对多目标优化问题开发的进化算法与基于梯度的算法有着根本的不同。它们是基于人口的,即维护多个解决方案(数百或数千个),而后者只维护一个解决方案

NSGA-II就是一个例子:

多目标优化的目的是寻找帕累托曲面(或最优折衷曲面)。由于曲面由多个点组成,基于种群的进化算法非常适合


(您可以使用基于梯度的算法解决一系列单目标优化问题,但除非可行集是凸的,否则它无法准确地找到它们。)

我认为这样的问题不适合解决,您应该试试。但你们确定CVX能解决多目标LP吗?你们必须通过最小化多目标的某些函数(如线性组合),将多目标问题转化为单目标问题。多目标极小化问题本身并不是一个定义良好的数学问题。例如,让
f(x)=x
g(x)=-x
。说“最小化
f(x)
g(x)
使得
x
[0,10]
中是一个非理性的问题。”