進化的アルゴリズムの理解に問題があります。私はこの手法を数回使用しようとしましたが、常に同じ問題に遭遇しました。それは、シミュレーテッドアニーリングへの縮退です。
かっこで囲まれたフィットネスを使用した最初の人口は次のとおりです。
A(7)、B(9)、C(14)、D(19)
交配と突然変異の後、私には次の子供がいます:
AB(8.3)、AC(12.2)、AD(14.1)、BC(11)、BD(14.7)、CD(17)
最も弱いものを排除した後、私たちは
A、AB、B、AC
次のターン、ABは再び交尾し、結果は約8になり、ACを押し出します。次のターン、ABは再び、Bを押し出します(突然変異が主に> 1の範囲で適応度を変えると仮定します)。
現在、わずか数ターン後に、プールには元々最も適切な候補(A、B)とそれら2つの突然変異(AB)が入力されます。これは、初期プールのサイズに関係なく発生しますが、少し時間がかかります。たとえば、初期人口が50の場合、50ターンかかり、その後、他のすべてが排除され、より複雑なシミュレーテッドアニーリングでセットアップ全体が回転します。初めに、私も候補者を自分たちと交配させ、問題を悪化させました。
だから、私は何が恋しいですか?私の突然変異率は単純に小さすぎますか?それを増やすと消えますか?
これが私がそれを使用しているプロジェクトです: http ://stefan.schallerl.com/simuan-grid-grad/ ええ、コードはバグがあり、インターフェースはひどいです、しかし私は今それを修正するのが面倒です-そして注意してください、それはあなたのブラウザをロックするかもしれません。Firefoxは一度はクロームより遅くないと思っていても、クロームを使用する方が良いでしょう(おそらく、画像比較のトレースは効果があります、イェーイ!)。興味のある方は、ここでコードを見つけることができます。
ここで私はev-algのアイデアを捨てて、シミュレーテッドアニーリングに行きました。
ps:シミュレーテッドアニーリングについてさえよくわかりません-それは進化的アルゴリズムのようなもので、人口サイズが1だけですよね?