1

我正在创建一个遗传算法框架,并且我有一个包含 aTournament和一个EvolutionStrategy对象的人口类,以便我可以插入不同的锦标赛类型和进化策略。

目前我已经设置它,以便我通过从人口EvolutionStrategy中传入对象来创建一个新对象-Population

EvolutionStrategy strategy = new BasicStrategy(this);

BasicStrategy构造函数中我有

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

我对此有两个问题

1)这是否会创建正确的参考变量,从而可以立即访问人口更新,EvolutionStrategy或者我应该使用某种形式的同步?

2)有没有更好的方法来做到这一点?对我来说,在 中为策略提供Population一个参考变量,在Strategy.

4

1 回答 1

2
  1. 没事
  2. 我认为您应该有一个额外的类,例如EvolutionAlgorithm,您可以在其中分别存储Population(就正在进化的对象而言)和EvolutionStrategy。当你想进化你的种群时,你只需调用以种群为参数的进化策略方法(策略模式)。我认为 EvolutionStartegy 不需要存储人口。没有进化策略,人口也有意义。
于 2013-03-09T16:38:55.203 回答