在 scipy.optimize.minimize 中使用“无限边界”?

Gii*_*nna 1 python scipy

我需要最大化一个 3 变量函数,它在以下空间中定义:

]0, ?[ x ]1, ?[ x [0, ?[

我将使用 scipy.optimize.minimize 中的 SLSQP 算法,我认为应该完成定义函数的边界。但我不知道如何在 python 或这个限制中写“无穷大”。也许应该使用约束来完成,但我找不到定义它的方法。

如果我能得到一些帮助,我会很高兴。

提前致谢!

Bak*_*riu 6

scipy.optimize.minimize的文档指出:

边界:序列,可选

变量的界限(仅适用于 L-BFGS-B、TNC 和 SLSQP)。(min, max)中的每个元素成对x,定义该参数的边界。采用None了分之一或最大时,有在该方向没有约束。

所以你不必代表无穷大,只需 pass None。传递浮点无穷大可能无法按预期工作。


在python中表示无穷大的标准方法是使用float('inf')正无穷和float('-inf')负无穷。这些代表标准 IEEE 754 无穷大值。

numpy还提供numpy.inf