问题标签 [scipy-optimize-minimize]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
30 浏览

optimization - 解决优化问题的 Scipy 代码(编写了 gurobi 代码!)

我写了一个 Gorubi 优化代码,但是因为一些问题,我需要转换成 Scipy 代码。转换它仍然有困难。以下是与 Gorubi 相关的部分代码:

我的 x 约束只能有 -1 或 0 或 1 个值。另一个约束是 Y,其中每一步 y(i+1)-y(i) 等于 3.75*X(i)。
是否可以将此代码转换为 Scipy?或者你推荐任何其他图书馆?

0 投票
1 回答
20 浏览

python - 为什么 scipy.optimize.mminimize 不使用提供的初始猜测

我有一个用 python 编写的应用程序,用于计算函数的最小返回值。我使用 scipy.optimize.mminimize 和 SLSQP 作为优化方法。它循环运行,为了节省时间并将其从仅查找局部最小值中解脱出来,我需要它来使用我提供的 x0。问题似乎是它不在乎我给它什么 x0。它只是从随机值开始优化。我做错了什么?

我编写了一个小型测试应用程序来测试最小化器上的 x0:

0 投票
1 回答
35 浏览

python - Scipy 目标函数

我正在尝试将我的 gurobi 代码转换为 scipy,但我无法定义目标函数。在测试我是否正确定义了函数时,我得到了错误:

代码在这里:

错误的完整堆栈跟踪:

0 投票
1 回答
525 浏览

python - 将具有多个自变量和多个参数的函数传递给 scipy 优化最小化

这个问题之后,我想让我的问题尽可能具体,重点放在我无法解决的部分。考虑一个非常简单的函数:

现在我想使用 thescipy.optimize.minimize或任何其他现有函数来查找xand y(即参数)以最小化foo给定常量a,bc(即 args)。如果我只有一个参数和多个参数,那么从这个页面我可以做到:

如果我只有自变量,没有常量参数,那么从这个页面我可以做:

但是,我不能使用上述任何语法。我相信我必须将我的功能定义为:

但后来我不知道如何传递args和传递kwargsscipy.optimize函数。如果您能帮助我了解foo使用多个独立参数和函数的常量参数定义函数的最佳方法,我将不胜感激scipy.optimize。提前感谢您的支持。

0 投票
1 回答
164 浏览

scipy-optimize-minimize - scipy.optimize.minimize 和 Minuit 返回初始猜测值

我在使用 scipy.minimize.optimize 时遇到问题。这是我的代码。

我试图最小化func(x)关于 N 的函数以找到 N 最小值,但NMin(error).nMin()似乎正在返回x0 = 1而不是 N 最小值。这是我的输出。

我对此感到非常困扰,因为我似乎无法找到问题所在,而且我不明白为什么scipy.optimize不起作用。

0 投票
0 回答
258 浏览

python-3.x - scipy.optimize.minimize BFGS 中的 norm 变量有什么作用

它是最新的 scipy 1.4.1 包,我们有BFGS 局部最小化技术norm,它有一个设置为无穷大的子参数,文档说:

规范:浮动

范数阶(Inf 为最大值,-Inf 为最小值)。

这是什么意思?norm可以取什么值?我应该将它保留为 Inf,还是应该给它一些浮点值并尝试哪个更好?如果我将它设置为 -Inf 会发生什么?

这个变量在优化器中的作用是什么?

0 投票
1 回答
156 浏览

python - Python:使用 scipy optimize minimize 不会最小化函数

我是 Python 新手,我试图弄清楚一切是如何工作的。我对 scipy.optimize 包的最小化功能有一点问题。我尝试使用一些起始值最小化给定函数,但 python 给了我非常高的参数值。这是我的简单代码:

如果我运行这个脚本,最好的给定参数是:

这真的不能解决这个问题。我也尝试了一些稍微不同的起始值,但这并不能解决我的问题。谁能告诉我我的错误在哪里?非常感谢你的帮助!

0 投票
0 回答
344 浏览

python - scipy.optimize 中可调用函数中的 Python 多处理

我正在尝试在 scipy.optimize 的最小化函数调用的成本函数中使用多处理。在成本函数内部,我有一个要并行计算的循环。

代码的简化版本如下:

R = p.starmap(calc_R, shift_args)代码在该行冻结。

如何进行多处理?

非常感谢任何帮助。

0 投票
1 回答
1989 浏览

optimization - scipy-optimize-minimize does not perform the optimization - CONVERGENCE: NORM_OF_PROJECTED_GRADIENT_<=_PGTOL

I am trying to minimize a function defined as follows:

where variables take the following form:

decision = binary array

risk = array of floats

cost = constant

I know the solution will take the form of:

decision = 1 if (risk >= threshold)

decision = 0 otherwise

Therefore, in order to minimize this function I can assume that I transform the function utility to depend only on this threshold. My direct translation to scipy is the following:

This gives me the following result:

However, I know the result is wrong because in this case it must be equal to cost. On top of that, no matter what x0 I use, it always returns it as the result. Looking at the results I observe that jacobian=0 and does not compute 1 iteration correctly.

Looking more thoroughly into the function. I plot it and observe that it is not convex on the limits of the bounds but we can clearly see the minimum at 0.1. However, no matter how much I adjust the bounds to be in the convex part only, the result is still the same.

Function plot

What could I do to minimize this function?

0 投票
1 回答
250 浏览

python - Scipy最小化约束:两个值之一需要为零

我想最小化以下功能:

我想将以下约束添加到B = [1,2,3,4,5,6,....](B 始终具有偶数长度):

对于列表 (1,2), (3,4), (5,6)... (b1,b2) 中的每一对,在优化结束时,这两个值中的一个应该变为 0。所以从逻辑的角度来看:b1 + b2 = b1 xor b1 + b2 = b2

如果我把它写成一个约束,它看起来像这样:

约束如下所示:

但它不起作用,因为我的配对最后看起来像这样(我的每个值的界限是(0,20)):

看起来算法默认在else语句的约束中。我尝试将 B 初始化为 0,但随后出现 MathError,因为不能除以 0。

有没有办法实现这个?