迭代地找到一个数字 - 算法设计

时间:2013-04-16 11:58:50

标签: algorithm loops optimization iteration convergence

我正在尝试设计一种算法,根据一套规则为我找到一个价格。

现状

我们目前将所有产品的“价格”设置为0.01英镑,并将'line_crossed'属性设置为false。我们计算保证金为0.01英镑,虽然保持负值,但价格加倍(2^n增加)。一旦保证金变为正数,我们将'line_crossed'设置为true并切换到不同的公式。

该公式跟踪最后使用的价格和当前价格,并且将向正确的方向移动(如果保证金为负则向上移动,如果保证金为正则向下移动),移动方向的差值的绝对值的一半。当前和最后的价格。它一直这样做,直到保证金介于-0.01和0.01之间。

基本上呈指数上升,不连续,然后收敛到所需价格。

在20,000多种产品的列表中,此算法最多需要28次迭代,直到找到所有产品的均衡价格。

期望情况

我已经玩弄了使用二元搜索的想法以及我们对产品(成本)的一些信息,以告知合理的起始价格。然而,目前我赞成使用上述算法的变体的想法,除了不总是使用最后和当前价格之间的绝对差异的一半,使用加权版本取决于距离0边距的距离。 (目前,如果我们在上涨路上的价格为8英镑,收支平衡价格为8.01英镑,我们将上涨至16英镑,然后通过多个步骤降至8.01英镑。)

有什么想法吗?感觉它已经解决了,但我不知道解决方案。

谢谢,

马特

0 个答案:

没有答案