如何使用 JOptimizer 或任何其他 Java 库解决给定的优化任务?

How to solve a given optimization task with JOptimizer or any other Java library?

我有这样一个优化问题:

min a * x1^2 + b * x2^2 + c*x3^2 + d * x1*x2 + e * x1*x3 + f * x2*x3

s.t。

x1 + x2 + x3 + x4 = 1

x1, x2, x3, x4 >= 0

其中 a、b、c、d、e、f 为双精度数字

你能帮助我使用 Java 库(例如 JOptimizer)解决这个问题吗?最近一直想找点合适的,但是没找到..

看看 http://www.joptimizer.com/quadraticProgramming.html 中显示的第一个示例。

您的 P 矩阵是:

P={{a, d/2, e/2, 0},{d/2, b, f/2, 0},{e/2, f/2, c, 0},{0, 0, 0, 1}}

下面和例子中的几乎一样。 PS:为了有一个凸问题P矩阵必须是正的,即:

(c d^2)/4 - (b e^2)/4 + (d e f)/4 - (a f^2)/4 > 0