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

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


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


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


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


慕森王
浏览 73回答 1
1回答

函数式编程

用比二分法更好的方法求根对于整数搜索空间没有意义,因为它已经非常非常快了。例如,一万亿个值在不到 33 步内收敛。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python