gpt4 book ai didi

python - 全局优化: How to find same minimum more consistently?

转载 作者:行者123 更新时间:2023-12-01 08:38:38 30 4
gpt4 key购买 nike

目前,我正在使用 scipy 库中的 basshopping 来查找优化目标函数的最佳 x(其中 x 总共由 4 个因子组成)。当我让它运行几次时,每次运行都会给出不同的结果。有没有办法使结果更加一致(即函数的最小化参数在多次迭代中相同)?

cons = [
{
'type': 'eq',
'fun': lambda x: x[0] + x[1] + x[2] - 1
},
{
'type': 'ineq',
'fun': lambda x: (w_0 / prob_death(T)[T-1]) - x[3]
},
{
'type': 'ineq',
'fun': lambda x: x[3] - 10000
}
]

bounds = ( (0, 1), (0, 1), (0, 1), (0, 1'000'000)) )

res = basinhopping(func = utility_expected,
x0 = np.array([0.33, 0.33, 0.33, 50000]),
minimizer_kwargs = {"method": 'SLSQP',
"bounds": bounds,
"constraints": cons,
"options": {
"eps": 0.01,
"ftol": 0.001
}
},
disp = False,
interval = 40,
niter = 250)

最佳答案

所以我对 scipy 的 basshopping 特别不熟悉,但如果我没看错的话,你已经给了它 0.01 的 epsilon 作为雅可比行列式的数值近似值。但是,您的变量的缩放比例非常不同。 (0-1 与 0-1000000)这可能会给你带来奇怪的行为。考虑将第四个变量缩放为 0-1。

此外,对于您要求优化器执行的操作来说,250 次迭代确实是一个很小的数字。尝试让它运行更长时间。

关于python - 全局优化: How to find same minimum more consistently?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53588332/

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