遗传算法选择与交叉题
Genetic algorithm selection and crossover questions
我使用自己的 GA 有一段时间了,我使用随机选择和精英主义(前 10% 左右)来获得 50% 的人口。然后我进行交叉以产生下一个 50%,当然随后是突变。这听起来很奇怪,但它已经让我对我的问题有了足够的了解,所以现在对它感到满意。
我想开始使用更精细的选择方法,特别是排名选择。我还想使用交叉概率。
我的问题是:
- 排位选择时,每个人只能被选择一次吗?
- parents 交叉后通常会发生什么情况?它们会被 children 取代,还是会传给下一代?
- When doing ranked selection, is each individual only allowed to be selected once?
好吧,如果每个人只被允许 selected 一次,你将不得不复制整个群体来形成新的群体。在排名 selection 中,您只需根据概率与个人排名成正比的概率进行选择,然后让机会决定是否或哪个个人被复制更多次。
- What typically happens to the parents after crossover? Do they get replaced by children or do they also go onto the next generation?
视情况而定。如果你有一个 so-called 世代方案,你总是会产生一个全新的种群来完全取代旧的。这个新人口的成员来自这四个 "sources":
- 直接从parent人口中复制的精英。
- 来自 parent 人群的 select 个体既没有交叉也没有突变(即也直接复制)。
- Children 的 parent 是 select 从 parent 种群交叉但未突变的 select。
- 突变 children 的 parent 是 select 从 parent 人口中编辑并交叉的。
另一方面,您可以有一个 so-called 稳态方案。在这个方案中,在每次迭代中,你 select 刚好足够的个体能够执行交叉,将它们交叉(如果概率允许),对它们进行变异(如果概率允许),然后你以某种方式将它们放回原始种群.这意味着必须有人被扔掉。根据您的替换策略,这可能是 parent 或 children(如果一个比另一个差)或总体中的任意成员。你可以这样做"inversed" selection,即 selection 的概率相反(最差的概率最高,最好的概率最低)。
最后一点 - 在 GA 领域,几乎任何你想出的机制都可能适用于你的特定问题,也可能不适用。你只需要尝试。毕竟是随机方法
我使用自己的 GA 有一段时间了,我使用随机选择和精英主义(前 10% 左右)来获得 50% 的人口。然后我进行交叉以产生下一个 50%,当然随后是突变。这听起来很奇怪,但它已经让我对我的问题有了足够的了解,所以现在对它感到满意。
我想开始使用更精细的选择方法,特别是排名选择。我还想使用交叉概率。
我的问题是:
- 排位选择时,每个人只能被选择一次吗?
- parents 交叉后通常会发生什么情况?它们会被 children 取代,还是会传给下一代?
- When doing ranked selection, is each individual only allowed to be selected once?
好吧,如果每个人只被允许 selected 一次,你将不得不复制整个群体来形成新的群体。在排名 selection 中,您只需根据概率与个人排名成正比的概率进行选择,然后让机会决定是否或哪个个人被复制更多次。
- What typically happens to the parents after crossover? Do they get replaced by children or do they also go onto the next generation?
视情况而定。如果你有一个 so-called 世代方案,你总是会产生一个全新的种群来完全取代旧的。这个新人口的成员来自这四个 "sources":
- 直接从parent人口中复制的精英。
- 来自 parent 人群的 select 个体既没有交叉也没有突变(即也直接复制)。
- Children 的 parent 是 select 从 parent 种群交叉但未突变的 select。
- 突变 children 的 parent 是 select 从 parent 人口中编辑并交叉的。
另一方面,您可以有一个 so-called 稳态方案。在这个方案中,在每次迭代中,你 select 刚好足够的个体能够执行交叉,将它们交叉(如果概率允许),对它们进行变异(如果概率允许),然后你以某种方式将它们放回原始种群.这意味着必须有人被扔掉。根据您的替换策略,这可能是 parent 或 children(如果一个比另一个差)或总体中的任意成员。你可以这样做"inversed" selection,即 selection 的概率相反(最差的概率最高,最好的概率最低)。
最后一点 - 在 GA 领域,几乎任何你想出的机制都可能适用于你的特定问题,也可能不适用。你只需要尝试。毕竟是随机方法