1

私は、古応力反転のための遺伝的アルゴリズムプログラムを作成しようとしています.つまり、特定のデータセットから応力テンソルを計算したい.(最小化問題)

テスト用に合成データ セットを生成しましたが、期待どおりの結果が得られません。

私のフィットネス値は、最初の数回の反復で非常に迅速に収束しますが、しばらくすると平坦になり、その値よりも低いフィットネス値は得られません。

望ましいフィットネス ~ 10^(-6) 私が得るフィットネス ~ 0.015

また、私が扱っているデータの母集団 (母集団サイズ = 20) に気付きました。それらのほとんどは、数百回の反復後に同じ値をとります。つまり、20 のうち約 15 の値が同じなので、クロスオーバーだと思います。新しい子孫を作るのをやめます。

GA のロジスティクスは次のとおりです。 母集団サイズ 20 反復回数 1000 シングル ポイント クロスオーバー トーナメント 突然変異の選択確率 = 1/いいえ。ビットの

私はmatlabでプログラミングを実行しました

4

1 に答える 1

2

まあ、それはGAで起こります。それは早期収束と呼ばれます。

あなたのケースで私が最初に試みることは、集団のサイズを劇的に、たとえば 500 人に増やすことです。このような少数の人口は、均一になる可能性が非常に高くなります。次に、パラメーターを微調整します (クロスオーバーと突然変異の可能性)。これらがうまくいかない場合は、フィットネスの共有やクラウディングなどの他のテクニックを試すことができます.

于 2015-05-18T21:30:29.273 に答える