1

我在解决涉及约 20,000 个决策变量的 python 优化问题时遇到了麻烦。问题是非线性的,我希望对问题应用界限和约束。除此之外,可以计算关于每个决策变量的梯度。

界限很简单,每个决策变量必须位于区间 [0, 1] 中,并且对变量施加单调约束,即每个决策变量必须大于前一个。

我最初打算使用scipy.optimize包提供的 L-BFGS-B 方法,但我发现虽然它支持边界,但它不支持约束。

然后我尝试使用支持约束和边界的 SQLSP 方法。然而,因为它比 L-BFGS-B 需要更多的内存,而且我有大量的决策变量,所以我很快就遇到了内存错误。

这个问题来自的论文使用fminconMatlab 中的求解器来优化函数,据我所知,除了比 scipy 提供的 SQLSP 方法更节省内存之外,它还支持边界和约束的应用。但是,我无权访问 Matlab。

有谁知道我可以用来解决这个问题的替代方案?

任何帮助将非常感激。

4

0 回答 0