我有以下二次程序
其中矩阵是对称负定的!
我对使用对称正定矩阵没有任何问题. 我使用 JOptimizer 的 QP 求解器。但带负它不起作用。(JOptimizer 只能处理凸优化。)
我该如何解决?它必须是非凸问题解决器吗?到目前为止,我发现了 Couenne ,它可以处理非凸 MINLP。
我有以下二次程序
其中矩阵是对称负定的!
我对使用对称正定矩阵没有任何问题. 我使用 JOptimizer 的 QP 求解器。但带负它不起作用。(JOptimizer 只能处理凸优化。)
我该如何解决?它必须是非凸问题解决器吗?到目前为止,我发现了 Couenne ,它可以处理非凸 MINLP。
您确实意识到您的目标至少存在两个问题:
一般来说,这是一个可能存在的问题解决方案是变量的数量。一个例子是,如果你试图找到解决方案
您的问题是不适定的:您将约束声明为 但这不是一个封闭集,因此尽管您有一个收敛到可行边界的最小化点序列,但可能不存在最小化器放。你需要通过要求
您的问题是一个非凸边界约束二次规划问题。有很多软件包可以解决这些问题。请参阅求解器列表
这不仅是一个非凸规划问题,它实际上是一个凹规划问题,即受凸约束的凹函数的最小化。我将假设您已重新制定使用 <= 而不是 < 作为绑定约束。
因为你的凹规划问题有一个紧凑的约束区域,所以在约束区域的一个极值点必须至少存在一个全局最小值。例如,参见第 10 页的定理 1.1。Reiner Horst, Hoang Tuy 的“全局优化:确定性方法”第10 章。顶点之一必须存在全局最小值是的维数。因此,您可以通过对目标函数的蛮力评估来解决全局最优性问题所有个顶点,并选择具有目标函数最小值的顶点(或顶点)。如果不太大,这种方法可以正常工作。
更一般地,您可以使用 CPLEX 的 QP 求解器将此求解为全局最优,将 solutiontarget 设置为 3(求解为全局最优)。如果您对局部最优解感到满意,则可以将 solutiontarget 设置为 2。BARON 也可以使用解决这个问题以达到全局最优。此外,除了一些其他全局求解器之外,还有许多局部 QP 求解器(必须接受非凸问题)也可以。
请注意,如果您使用通用局部非线性求解器通过 Quasi-Newton Method 求解此凹 QP,并且您使用 BFGS 作为 Quasi-Newton 方法的选择,则性能可能会很差,甚至可能不会成功。这是因为 BFGS 保持半正定 Hessian 逼近,因此是目标函数逼近,为了优化目的,这是一个非常差的凹函数表示。然而,SR1 Quasi-Newton 方法可能会成功,因为它的确定性可以根据梯度差异适应它“看到”的内容。