我正在寻找一种方法,以找到最佳的参数为一个模拟。是关于台球/游泳池的破门。一个镜头被定义为7个参数,我可以模拟这个镜头,然后对结果进行评分,我想要计算出最佳的参数。
我在这里找到了以下链接:具有大量局部极小值的多参数优化提出了4种算法。在我使用的池模拟器中,每次模拟时,的镜头都会被一些随机值所改变。如果我两次模拟同一个镜头,结果就会不同。因此,我正在寻找一个算法,像在上面的链接,只有增加一个随机的元素,优化的7个参数,平均将产生最佳的参数,即最有可能成功的破门。我最初的想法是对镜头进行100或1000次的模拟,并将上述算法的平均值作为评分,但我仍然觉得有一个更好的方法。有谁有主意吗?
这7个参数是连续的,但在不同的范围内(一个从0到10,另一个从0.0到0.028575等等)。
谢谢
发布于 2012-08-12 19:13:09
至少对于某些算法来说,重复模拟相同的镜头可能不是必要的。只要你的替代方案有某种形式的动量,比如在群体模拟方法中,你就可以让它受到每个个体模拟结果的影响。在这种情况下,一个不幸的模拟只会稍微减缓参数空间中的运动,而质量的严重损失应该足以阻止和扭转运动。那些不使用动量的算法可能会被调整成有动量。如果不是,那么重复模拟似乎是最好的方法。除非你能得到你的手在模拟器的内部,并评级作为一个整体,而不必一遍又一遍地模拟它。
发布于 2012-10-08 12:12:59
您可以使用您在非确定性场景中提到的具有独立随机运行的算法。您的想法与重复模拟是好的,您可以阅读更多关于有多少重复,您可能需要考虑您的模拟(不幸的是,没有琐碎的答案)。如果你不太喜欢数学,而且跑得很快,那么就重复1.000次,再重复10.000次,看看结果是否有很大的不同。如果是,您必须收集更多的样本,如果不是,您可能在安全方面( 中心极限定理声明,结果收敛)。
此外,不只是考虑平均!确保查看每个算法的结果的标准差;您可能需要使用箱形地块来比较它们的四分位数。如果您只依赖于平均值,那么您可以选择一种算法,它会产生非常不同的结果,有时非常好,有时性能很差。
我不知道您使用的是哪种语言,但是如果您使用Java,我将维护工具,这可以简化您的"monte“风格的实验。
https://stackoverflow.com/questions/11924801
复制相似问题