有人知道如何最好地实现随机算法(蒙特卡罗模拟近似值)在固定时间(5分钟)内运行吗? 即算法将继续采样新样本,直到执行时间约为5分钟?
该算法有助于在固定时间内比较不同的随机方法。
谢谢。
答案 0 :(得分:1)
你的问题有点模糊,但有几个可能的答案。如果您只是一次又一次地独立采样(因此采样通常非常快,与您的总时间相比),那么您只需要使用您的语言访问系统计时器,这样您就可以检测到运行时间是多少基本上等于你允许的最大运行时间,然后停止并给出你的估计。
然而,也存在具有预期运行时间的随机算法,它们可能在最大允许时间内完成。如果这是您正在处理的内容,那么最好的方法是根据任何随机性假设来了解运行时间的分布,然后设置一个策略,在该策略中运行算法一段指定的时间然后停止如果它还没有完成,然后以新的随机性重新启动。例如,如果在N个步骤内完成的概率为0.9,并且在2N步骤内完成的概率为0.01,否则您以超过2N步骤完成,那么如果您只有2N步骤可用,那么您的最佳策略是在N个步骤之后重新启动如果你还没完成。这最大化了在2N步骤内完成的概率。
答案 1 :(得分:0)
正如@Nico Schertler所说,你只是基于时间的条件,你可以使用蒙特卡罗模拟的这些例子中的任何一个正常在一个使用时间作为约束的while循环中。