私は現在、Java で遺伝的プログラミング アルゴリズムに取り組んでいます。私の実験では、いくつかの設定の組み合わせを試しており、必要な時間を把握するために、すべての設定の組み合わせを数回実行して、平均などを取ることができます.
ただし、シードとして定数値を使用して Random rng インスタンスを 1 つだけ開始したとしても (必ずしも残念なことではありません)、同じ設定で実行すると異なる結果が得られることがあります。
それで、私の質問は、自分のコードで新しい乱数ジェネレーターを明示的に作成することを除いて、ランダム性の他のソースは何でしょうか?
セット、ハッシュなどの方法にあるのでしょうか??? そして、それらの作業を予測可能にするにはどうすればよいでしょうか?
私はすでに Collections.shuffle への呼び出しを確認し、単一の Random インスタンスでそれらをシードしました...
どんな提案でも大歓迎です。
一部のコメントは、コードを投稿することを提案しています。ただし、特定のフィードバックを求めているわけではありませんが、ランダム性の(望ましくない)ソースが何であるかを一般的に知りたいと思っています。私が言及するのを忘れていたのは、もちろん複数のスレッドの使用です。
もちろん、そのソースからのランダム性を防ぐために、強制的にコードをシングル スレッドで実行します。