如何在Python中优化黑盒功能?

时间:2017-01-25 09:55:05

标签: python scipy mathematical-optimization

我有一个优化的功能,我无法得到衍生物或Hessian或Jacobian(因此标题中的“黑匣子”)。说我的功能看起来像这样:

Private Sub cmdOk_Click()
    cmdOK.SetFocus
    DoEvents
    'Run your other code
End Sub

请注意,我只执行强制转换以显示该函数返回浮点数。

搜索空间/约束/边界(或者你称之为)将是:

def my_fun(some_int, some_other_int, some_string):
    return float(some_int + some_other_int + len(some_string))

我应该如何在python中制定问题?这是我到目前为止搜索过的内容:

  • Scipy optimizers似乎不接受在我的情况下适用的Nelder-Mead Simplex(或Powell方法)的约束
  • PyOpt ......好吧,我无法使用多变量目标函数
  • 还有Pyswarm。有谁知道如何在Pyswarm中做到这一点?

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以使用https://bender.dreem.com及其黑盒优化库:https://github.com/Dreem-Organization/benderopt/

它支持不同类型的参数。