遗传算法-迭代优化

Genetic algorithm - iterative optimization

嗨,我是绝对的初学者,我有一个关于遗传算法中迭代优化的理论问题。

迭代优化在逻辑上属于遗传循环的哪个位置(见下文)?我不太确定,但我认为它可能是在种群初始化或变异中,具体取决于给定的问题。

关于迭代优化算法更具体 - 我想使用 "hill climbing" 或 "simulated annealing"。

我用这个模型作为参考:

好吧,有几种可能性,基本上所有的可能性都是有道理的。

如果将优化阶段放在种群初始化之后(在遗传算法本身之前 运行 一次),那么您得到的是已经优化的初始种群。这可能很有用,因为遗传算法不必进行太多搜索,但它可能会以您优化到某些局部最优值的方式有害,可能会在此过程中丢失有用的信息。

如果将优化阶段放在选择之前,就会得到所谓的模因算法。 MA 基于这样一个事实,即有机体在其整个生命周期中都在学习(优化)。您有两种可能性:

  1. 取一个个体,对其进行优化,并用优化后的版本替换原来的个体。这被称为 "Lamarckian evolution",基于学习到的特征可以传递给后代的想法(最初由 Jean-Baptiste Lamarck 在 19 世纪初提出)。

  2. 取一个个体,对其进行优化,然后将优化后的个体丢弃,并将其适应度分配给原始的、未优化的个体。在这个变体中,优化有效地成为适应度评估过程的一部分。这被称为 "Baldwin effect" 并且基于这样的想法(最初由 James Mark Ba​​ldwin 在 19 世纪末提出),即学习的特征不能传递给后代,而遗传信息描述的是学习能力。顺便说一下,这就是自然进化的实际运作方式。

优化当然可以放在所有其他地方,但没有使用(至少我不知道有这样的情况)。但是,您的问题和 mutation/crossover 运算符可能会使这些地方的优化可能在某种程度上是有益的。或者你可以尝试看看你得到了什么。