gpt4 book ai didi

python - 寻找离散函数的全局最小值

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:38:44 25 4
gpt4 key购买 nike

这是我的代码经过简化后的样子:

# This function returns some value depending on the index (integer)
# with which it is called.
def funct(index):
value <-- some_process[index]
# Return value for this index.
return value

允许的索引存储在列表中:

# List if indexes.
x = [0,1,2,3,...,1000]

我需要找到返回funct最小 值的x 索引。我可以应用蛮力方法并循环遍历完整的 x 列表,将所有值存储在新列表中,然后使用 np.argmin() 简单地找到最小值:

list_of_values = []
for indx in x:
f_x = funct(x)
list_of_values.append(f_x)

min_value = np.argmin(list_of_values)

我试过这个并且它有效,但是当 x 有太多元素时它变得非常昂贵。我正在寻找优化此过程的方法。

我知道scipy.optimize有一些优化功能可以找到全局最小值,如 annealbasin-hopping但我未能将它们正确应用到我的代码中。

当我只能用一个整数(索引)调用一个函数或者它们要求函数是连续的时,可以使用这些优化工具吗?

最佳答案

python 内置 min 接受一个 key 函数:

min_idx = min(x, key=funct)
min_val = funct(min_idx)

这为您提供了一个 O(n) 解决方案,其实现与您将在 Python 中实现的差不多。

关于python - 寻找离散函数的全局最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19144895/

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