0

巡回セールスマン問題を解決するために Ant Colony Optimization のソフトウェア実装を開発しましたが、ACO の確率的性質により、ACO アルゴリズムを実行するたびに、毎回異なる最適に近い解が生成されます。ACO をより決定論的にする方法はありますか? 100% 決定論的ではないことは理解していますが、同じ問題空間で複数回実行できる必要があり、少なくともほとんどの場合、同様の解決策を考え出す必要があります。α、β、ρ、および反復回数を微調整してみましたが、この時点では暗所で撮影しているだけです。

4

1 に答える 1

1

Michael がコメントとして既に述べたように、シードされた疑似乱数ジェネレーター (PRNG) を使用し、実装全体で同じものを再利用します

Java では、次のようにします。

Random workingRandom = new Random(0L);
// Never use Math.random(), always use workingRandom.next*() instead

100% の再現性を得るために (特にマルチスレッドの実装では) 無効にする必要がある可能性があるものは他にもいくつかあります。そのうちのいくつかについては、私の実装のドキュメント セクション4.4.3.4 で説明します。再現可能HashMap(必要に応じて交換するなどLinkedHashMap)。

于 2014-02-12T15:09:09.577 に答える