こんにちは、最小化の問題に matlab の最適化ツール ボックスを使用しています。ソルバーを実行すると、同じパラメーターを持つ 1 つの問題に対して異なる結果が得られます。では、どれが最良の答えであるかをどのように結論付けますか? ソルバーが同じパラメーターで実行するたびに1つの結果を返すようにするために必要なこと。どうもありがとうございました
2 に答える
遺伝的アルゴリズムは、ランダムサンプリング法を使用して、ランダムな候補ソリューションの世代を作成します。多くの種類の問題で、遺伝的アルゴリズムは局所最適に「スタック」する可能性があり、他の局所最適 (またはグローバル最適) が「遠すぎる」場合、交差や突然変異などの操作は「スタック」を解消するのに十分なバリエーションを提供しない可能性があります。 "。同じパラメーターを使用して一貫して異なる解を得ている場合は、貴重な情報に出くわしたことになります。(a) パラメーターが母集団を均一にしすぎている (変動がない) ため、母集団が局所的な最適値から逸脱するのを妨げているか、または ( b) あなたの問題は、遺伝的アルゴリズムには適していません。
突然変異率を極端に上げて、アルゴリズムをさらに多くの世代にわたって実行し、最終的な人口を見る代わりに (突然変異率が高いと構成が気まぐれになるため)、「生きた」寿命の合計を見てください。候補者。
ただし、あなたの質問は最初は少し不可解です。あなたは、「どれが一番いい答えですか?」と尋ねています。世代から世代へと最も不適合な候補者を「殺す」ための適合基準を定義したに違いありませんか? 各回答の適合度を計算して、どれがより「適合」と見なされるかを確認します。両方 (またはすべて) の答えが等しく当てはまる場合、問題に対する解決策は 1 つではありません。
私は私の問題の解決策のいくつかを得たと思います..すべての実行での答えの違いは、乱数発生器によるものです..この乱数発生器を制御することで同じ結果を得ることができます.