1

私は遺伝的アルゴリズムのフレームワークを作成しています。さまざまなトーナメントタイプと進化戦略をプラグインできるように、TournamentEvolutionStrategyオブジェクトを含む人口クラスがあります。

現在、ポピュレーションからオブジェクトEvolutionStrategyを渡すことで新しいオブジェクトを作成するように設定しています-Population

EvolutionStrategy strategy = new BasicStrategy(this);

BasicStrategyコンストラクターで私は持っています

Population pop;
public BasicStrategy(Population pop)
{
    this.pop = pop;
}

これに関して2つの質問があります

1)これにより、適切な参照変数が作成され、母集団の更新にすぐにアクセスできるようになりますか、EvolutionStrategyそれとも何らかの形式の同期を使用する必要がありますか?

2)これを行うためのより良い方法はありますか?Populationの戦略への参照変数との母集団への参照変数を持つことは私には無駄に思えますStrategy

4

1 に答える 1

2
  1. それは結構です
  2. Population(進化しているオブジェクトに関して)とEvolutionStrategyを別々に格納するEvolutionAlgorithmのような1つの追加クラスが必要だと思います。人口を進化させたいときは、人口を引数としてevolutionStrategyのメソッドを呼び出すだけです(戦略パターン)。EvolutionStartegyは人口を保存する必要はないと思います。また、人口はevolutionStrategyなしで意味をなすことができます。
于 2013-03-09T16:38:55.203 に答える