我们应该在遗传算法中产生多少后代?

How many offspring should we produce in Genetic Algorithm?

假设我有100个popsize,我应该生10个后代吗? 我想要 popsize 和 offspring 之间的最佳组合以实现快速收敛,并请包括论文。

没有最好的 offspring/population 可以用遗传算法解决的每个问题。每个问题都有一个最佳配置,这是未知的,不仅是 offspring/population,还有变异机会、染色体设计等......

也就是说,有多种解决方案,如完全替代、部分替代等。各有优缺点。您应该探索它们并决定哪一个最适合您的问题。

-假设您的 GA 的人口规模 N

chrom # 0 = "01010110101" | Fitness = f0
chrom # 1 = "11010010111" | Fitness = f1
chrom # 2 = "01010111011" | Fitness = f2
chrom # 3 = "01111010100" | Fitness = f3
.
.
.
chrom # N = "01011010110" | Fitness = fN

-您从大小为 T 的主要群体中随机应用染色体锦标赛:(T < N)

Tournament chrom # 0 = "01010110101" | Fitness = f0
Tournament chrom # 1 = "11010010111" | Fitness = f1
Tournament chrom # 2 = "01010111011" | Fitness = f2
Tournament chrom # 3 = "01111010100" | Fitness = f3
.
.
.
Tournament chrom # T = "01011010110" | Fitness = fT

简单地获得配偶染色体:

Mate Chromosome # 1

另一场比赛:

Mate Chromosome # 2

您将交叉应用于 return 个后代:

Crossover(Mate Chromosome # 1, Mate Chromosome # 2) => offspring

这在技术上意味着你会为你的新种群获得 N 个后代。

Mutation(offspring) => new chromosome for new population

继续迭代,直到收敛到目标染色体的最大尺寸。