- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用带有 method='COBYLA' 的 basshopping 来指定约束时遇到问题。这是一个出现问题的测试用例。本质上,约束被忽略,并且存在超出指定范围的功能试验。我指定一个简单的二次方程,最小值为 [0,0],搜索 -3<x[0]
,但正如您从输出中看到的,有很多搜索超出了该范围(我增加了步长以使其明显)
import numpy as np
from scipy.optimize import basinhopping
def f(x):
if x[0]<-3 :
print('outside range ',x[0])
return x[0]**2+x[1]**2
cons = [{'type':'ineq','fun': lambda x: x[0]+3}]
kwargs = {'method':'COBYLA','constraints':cons}
ret=basinhopping(f, [5,1],T=1,stepsize=1000,niter=1,minimizer_kwargs=kwargs)
print(ret)
runfile('py/cobyla_test', wdir='/py', post_mortem=True)
outside range -446.14581341127945
outside range -445.14581341127945
outside range -445.14581341127945
outside range -444.14581341127945
[etc... lots of output deleted]
[-4.81217825e-05 -5.23242054e-05] 5.0535284302996725e-09
最佳答案
如 scipy.optimize.basinhopping — SciPy v1.1.0 Reference Guide 所写,盆地跳跃是一个两步法:
take_step
回调)accept_test
回调)您指定的约束是针对最小化方法的,它们不会影响跳跃步骤。对于跳跃步长,可以调整 stepsize
(随机跳跃的最大位移),或者定义您自己的 take_step
。
“我认为约束的要点是它永远不会尝试约束之外的 x” - 数学问题中的约束,包括 constrained optimization problem ,不要那样工作。它们仅指定解决方案本身必须满足的条件。它们不限制在获得解决方案时可以使用哪些点,完全取决于算法来选择这些点。
限制数值方法搜索区域的方法是根据函数和方法的性质以某种特定的方式调整方法参数,以“引导”方法进入正确的方向。
关于python - 使用 COBYLA 方法进行盆地跳跃似乎可以忽略约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52359147/
我正在使用 COBYLA 对具有约束的线性目标函数进行成本最小化。我通过为每个约束包含一个约束来实现下限和上限。 import numpy as np import scipy.optimize de
我正在使用 COBYLA 对具有约束的线性目标函数进行成本最小化。我通过为每个约束包含一个约束来实现下限和上限。 import numpy as np import scipy.optimize de
我在使用带有 method='COBYLA' 的 basshopping 来指定约束时遇到问题。这是一个出现问题的测试用例。本质上,约束被忽略,并且存在超出指定范围的功能试验。我指定一个简单的二次方程
我有一个带有约束的优化问题,但 COBYLA 求解器似乎不遵守我指定的约束。 我的优化问题: cons = ({'type':'ineq', 'fun':lambda t: t},) # all va
我在 scipy 的 optimize.minimize 函数(v.0.11 为 cygwin 构建)中使用算法 'COBYLA'。我观察到在这种情况下似乎没有使用参数 bounds 。例如,简单的例
我正在使用 Accord.Net 的 Cobyla 解算器来解决一个相当简单的非线性问题。在某些情况下,该问题将没有可行点。当我运行一个明显不可行的简单问题时,即使解决方案不可行,求解器也会返回“成功
我正在使用 C++ 中的 NLopt 库、COBYLA 算法 来最小化基于对数的成本函数。我已经在 Matlab 中使用 fmincom 实现了相同的功能。Matlab 函数的性能比 NLopt 好得
我正在使用 scipy.optimize.minimize 来求解复杂的油藏优化模型(SQSLP 和 COBYLA,因为该问题同时受到边界和约束方程的约束)。每天有一个决策变量(存储),并且在目标函数
我是一名优秀的程序员,十分优秀!