问题标签 [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.
optimization - 解决优化问题的 Scipy 代码(编写了 gurobi 代码!)
我写了一个 Gorubi 优化代码,但是因为一些问题,我需要转换成 Scipy 代码。转换它仍然有困难。以下是与 Gorubi 相关的部分代码:
我的 x 约束只能有 -1 或 0 或 1 个值。另一个约束是 Y,其中每一步 y(i+1)-y(i) 等于 3.75*X(i)。
是否可以将此代码转换为 Scipy?或者你推荐任何其他图书馆?
python - 为什么 scipy.optimize.mminimize 不使用提供的初始猜测
我有一个用 python 编写的应用程序,用于计算函数的最小返回值。我使用 scipy.optimize.mminimize 和 SLSQP 作为优化方法。它循环运行,为了节省时间并将其从仅查找局部最小值中解脱出来,我需要它来使用我提供的 x0。问题似乎是它不在乎我给它什么 x0。它只是从随机值开始优化。我做错了什么?
我编写了一个小型测试应用程序来测试最小化器上的 x0:
python - Scipy 目标函数
我正在尝试将我的 gurobi 代码转换为 scipy,但我无法定义目标函数。在测试我是否正确定义了函数时,我得到了错误:
代码在这里:
错误的完整堆栈跟踪:
python - 将具有多个自变量和多个参数的函数传递给 scipy 优化最小化
在这个问题之后,我想让我的问题尽可能具体,重点放在我无法解决的部分。考虑一个非常简单的函数:
现在我想使用 thescipy.optimize.minimize
或任何其他现有函数来查找x
and y
(即参数)以最小化foo
给定常量a
,b
和c
(即 args)。如果我只有一个参数和多个参数,那么从这个页面我可以做到:
如果我只有自变量,没有常量参数,那么从这个页面我可以做:
但是,我不能使用上述任何语法。我相信我必须将我的功能定义为:
但后来我不知道如何传递args
和传递kwargs
给scipy.optimize
函数。如果您能帮助我了解foo
使用多个独立参数和函数的常量参数定义函数的最佳方法,我将不胜感激scipy.optimize
。提前感谢您的支持。
scipy-optimize-minimize - scipy.optimize.minimize 和 Minuit 返回初始猜测值
我在使用 scipy.minimize.optimize 时遇到问题。这是我的代码。
我试图最小化func(x)
关于 N 的函数以找到 N 最小值,但NMin(error).nMin()
似乎正在返回x0 = 1
而不是 N 最小值。这是我的输出。
我对此感到非常困扰,因为我似乎无法找到问题所在,而且我不明白为什么scipy.optimize
不起作用。
python-3.x - scipy.optimize.minimize BFGS 中的 norm 变量有什么作用
它是最新的 scipy 1.4.1 包,我们有BFGS 局部最小化技术norm
,它有一个设置为无穷大的子参数,文档说:
规范:浮动
范数阶(Inf 为最大值,-Inf 为最小值)。
这是什么意思?norm
可以取什么值?我应该将它保留为 Inf,还是应该给它一些浮点值并尝试哪个更好?如果我将它设置为 -Inf 会发生什么?
这个变量在优化器中的作用是什么?
python - Python:使用 scipy optimize minimize 不会最小化函数
我是 Python 新手,我试图弄清楚一切是如何工作的。我对 scipy.optimize 包的最小化功能有一点问题。我尝试使用一些起始值最小化给定函数,但 python 给了我非常高的参数值。这是我的简单代码:
如果我运行这个脚本,最好的给定参数是:
这真的不能解决这个问题。我也尝试了一些稍微不同的起始值,但这并不能解决我的问题。谁能告诉我我的错误在哪里?非常感谢你的帮助!
python - scipy.optimize 中可调用函数中的 Python 多处理
我正在尝试在 scipy.optimize 的最小化函数调用的成本函数中使用多处理。在成本函数内部,我有一个要并行计算的循环。
代码的简化版本如下:
R = p.starmap(calc_R, shift_args)
代码在该行冻结。
如何进行多处理?
非常感谢任何帮助。
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.
What could I do to minimize this function?
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。
有没有办法实现这个?