布尔值单调函数在正整数集合中定义,.
目标是寻找. 界限和是先验已知的。
的一个显着属性是它有更高的概率位于周围的区域(已知的先验)。确切的概率分布,虽然未知,(可能无关紧要)可以被认为是连续的 CDF,具有更高的权重因子
我已经实现了一个简单的二进制搜索,但我正在寻找更有效的解决方案,以某种方式解释给定的概率信息(即集中在周围),我正在寻找一种有效的算法来找到. 不失准确性。
我知道二进制搜索是最坏的情况, 但计算量如此之大,以至于我连这个都买不起。
布尔值单调函数在正整数集合中定义,.
目标是寻找. 界限和是先验已知的。
的一个显着属性是它有更高的概率位于周围的区域(已知的先验)。确切的概率分布,虽然未知,(可能无关紧要)可以被认为是连续的 CDF,具有更高的权重因子
我已经实现了一个简单的二进制搜索,但我正在寻找更有效的解决方案,以某种方式解释给定的概率信息(即集中在周围),我正在寻找一种有效的算法来找到. 不失准确性。
我知道二进制搜索是最坏的情况, 但计算量如此之大,以至于我连这个都买不起。
由于您的函数没有导数,因此您无法在某种渐近意义上击败二分搜索。但是您可以尝试为二分搜索找到好的起点。
例如,找到以便-- 即最可能的切换点。那么,如果, 采用作为二分搜索起始区间的左端点;否则,将其用作正确的起点。在任何情况下,很可能接近最终解决方案。
对于间隔的另一个起点,让我们假设您有-- 即,我们正在寻找一个左端点区间的,与是正确的。试一下,例如,作为一个标准偏差的点,即选择以便. 如果确实,然后设置你知道切换点在区间内. 另一方面,如果,那么切换点实际上是在左边,你会设置然后再试一次以便. 然后重复直到你最终有一个起始间隔. 有了这个,你就可以开始你的二分搜索了。