gpt4 book ai didi

python - 优化程序的可变变量

转载 作者:太空宇宙 更新时间:2023-11-03 18:48:33 24 4
gpt4 key购买 nike

如何创建具有可变变量的目标函数?

我正在尝试优化具有多个变量的某个函数,所有变量都具有不同程度的不确定性。

result = opt.minimize(fObj,x0,method='nelder-mead',
options={'xtol':1e-1})

fObj 有许多变量,例如 a、b、c、d、e、f、g 等。但是,由于我的目标函数中的信息,只有同时优化 3 个变量才有意义。所以我想通过改变 a、c 和 d 以及接下来的 a、d 和 f 来进行尝试。

我想创建一个只有两个输入的函数:

  1. 要优化的变量(3 个字符串的数组?)
  2. 他们的起始值

我正在考虑的选项是通过全局变量为 fObj 提供所有变量的默认值,并包含一个带有变量名称的全局字符串以替换为 exec() 函数。

def fObj(x):
global a, b, c, d, e, f, g, h, VarList

# some hocus pocus that reads VarList
# e.g.
# VarList = ['c', 'd', 'f']
# c = x[0]
# d = x[0]
# f = x[0]

return someMathematiclOutputInvolvingAllVars

实现这一目标的最佳/最Pythonic方法是什么?

最佳答案

如果 a、b、c ... 是 float ,例如我会使用 float 容器:

class MyFloat:
self.val
...

a = MyFloat(0.1)
...
def fObj():
global a, b
use a.val, b.val, ... instead of a, b, ...

opt.min 函数被赋予了要在(A、C、D)上最小化的变量数组,并且它可以在不知道它们的名称是什么的情况下更改它们的值

这不是很Pythonic,但我认为它对于您的复杂问题来说仍然足够简单:)

关于python - 优化程序的可变变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18916306/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com