我开发了一个求解旅行商问题的蚁群优化软件,但是由于蚁群算法的随机性,每次执行蚁群算法都会产生不同的近似最优解。有什么办法使ACO更具确定性吗?我知道它永远不会是100%的确定性,但是我需要它能够在相同的问题空间上多次运行,并且至少在大多数时候都能想出一个类似的解决方案。我尝试过调整α,β,ρ和迭代次数,但我只是在黑暗中拍摄。
发布于 2014-02-12 15:09:09
正如Michael已经指出的那样:使用种子伪随机数生成器(PRNG),并在您的实现中重复使用相同的代码。
在Java中,可以这样做:
Random workingRandom = new Random(0L);
// Never use Math.random(), always use workingRandom.next*() instead您可能需要禁用一些其他的东西(特别是在多线程实现中),以实现100%的可再现性,我在实现的docs部分4.4.3.4.可复制中讨论了其中的一些内容(例如在需要时用LinkedHashMap代替HashMap )。
https://stackoverflow.com/questions/21729436
复制相似问题