シミュレートされたアニーリング プログラムを作成していますが、デバッグに問題があります。どんなアドバイスでも大歓迎です。
まず第一に、出力は決定論的ではないため、100 回実行して平均と標準偏差を調べました。
しかし、1 つのテスト ケースを完了するのに何年も (> 30 分) かかります。
通常、私は入力を削減しようとしますが、反復回数を減らすと、完全には予測できない方法で結果の精度が直接低下します。たとえば、冷却スケジュールは、反復回数にスケーリングされた指数関数的減衰です。個別の実行回数を減らすと、出力の信頼性が非常に低くなります (私が見つけようとしているバグの 1 つは、実行間の大きな差異です)。
時期尚早の最適化がすべての悪の根源であることは知っています。プログラムが正しくなる前に最適化するのは時期尚早であるに違いありませんが、これをより高速な言語 (Cython または C) に書き直すことを真剣に考えています。最終的に提出のためにPythonに移植します。
それで、私が今持っているものよりも優れたシミュレートされたアニーリングアルゴリズムをテストする方法はありますか? または、テストの合間に別の作業を行う必要がありますか?
開示:これはコースワークの課題ですが、実際のシミュレーションを手伝ってほしいと言っているわけではありません。