我想知道GA的交叉阶段。根据我的理解,0.7 =>发生交叉的几率为70%,这是一个典型的价值。如果你的父母选择过程是基于特定染色体的返回适应性,那么最适合染色体的概率很高,并且没有经历交叉,精英主义真的有必要吗?
我还需要应用过滤器去除每一代的重复染色体吗?
答案 0 :(得分:4)
即使具有较高的交叉率,并且选择过程选择较高的染色体进行交叉,总有机会(无论多小)您将从一代传递到下一代染色体。精英主义意味着一旦找到一个好的结果,它将永远留在人口中,直到找到更好的结果。
无论失去最佳成绩的机会有多小,最好采用安全防护来确保它永远不会发生。
关于去除重复的染色体,没有必要,但它通常可以确保群体不会变得陈旧并且填充相同的染色体。一般来说,我应用的功能是每代都不会去除重复的染色体,但是在给定的代数之后。这主要是为了提高算法的整体速度,但如果需要,可以在每一代实现。
由于突变本身可以阻止群体被所有相同的染色体填充,因此删除重复也变得不那么必要了。就个人而言,我更喜欢同时应用重复删除和变异,尽管它们有效地执行相同的任务。根据我的遗传算法经验,各种各样总是好的,因此对同一任务具有不同的功能通常可以产生更好的结果。