我正在尝试设计一种算法,根据一套规则为我找到一个价格。
现状
我们目前将所有产品的“价格”设置为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英镑。)
有什么想法吗?感觉它已经解决了,但我不知道解决方案。
谢谢,
马特