如何最小化仅使用整数输入的实函数

How to minimize a real function with only integer input

哪些优化算法适用于整数输入、浮点输出?

一个想法只是使用 Brent 搜索,但构建了一种方法,该方法对两个最近的点进行插值以伪造实数输入而不是整数输入。

我的第二个想法是,这似乎是一个普遍的需求,scipy 中一定已经有一些东西可以做到这一点 and/or 更适合它的算法?

Bisect 当然适用于此,但对于大量输入,它的收敛时间可以改进。像布伦特优化这样的混合体会更好。

https://docs.scipy.org/doc/scipy/reference/optimize.html

例子

a = []
for i in range(10):
    a.append(i-5+.8)

# a = [-4.2, -3.2, -2.2, -1.2, -0.19999999999999996, 0.8, 1.8, 2.8, 3.8, 4.8]
# How to find a[x] such that a is as close to 0 as possible? x = 4, a = -0.2

用比二分法更好的方法求根对于整数搜索没有意义space,因为它已经非常非常快了。例如,一万亿个值在不到 33 步内收敛。

(参见上面 AirSquid 的评论)