ウィキペディアのシミュレーテッドアニーリングの記事では、SA温度を初期化して下げる方法に関する一般的なガイダンスを提供しています。これらのパラメータの効率的な選択は、通常、非常に問題に固有であり、面倒な試行錯誤によって特定する必要がある場合があります。
通常、最適化アルゴリズムは目的関数の最小値を検索します。最大化問題でこのようなアルゴリズムをそのまま使用する場合は、オプティマイザーに目的関数の否定を最小化するように依頼してください。たとえば、最大値を求めたい目的関数がであるとしましょう。次に、オプティマイザーに最小化するように要求する必要があります。つまり、(または、上記のコメントで示したように)。f(x)=score
-f(x)
-score
1-score
オンラインで利用できるシミュレーテッドアニーリングやその他のグローバル最適化アルゴリズムはたくさんあります。たとえば、最適化ソフトウェアのディシジョンツリーにあるこのリストを参照してください。残念ながら、これらのコードは通常C#で記述されていませんが、コードがFortranまたはCで記述されている場合、通常、P/Invokeを介してこれらのコードとインターフェイスするのはかなり簡単です。
オプティマイザーが必ずしもグローバル最適化を見つける必要がない場合は、ここにリストされている派生物のないオプティマイザーもいくつかあります。これらのコードの少なくとも1つは、C#バージョン、つまりBOBYQAで使用できます(実際、このアルゴリズムは私によってC#に適合されています:-)。