遗传算法或遗传编程中的交叉概率和突变概率是什么?

28

遗传算法或遗传规划中的交叉概率和变异概率是什么?有人能够从实现的角度解释一下吗?


2
http://en.wikipedia.org/wiki/Genetic_algorithm 有两个链接,分别解释了遗传算法。 - Amber
2
Reddy,这是作业吗? - Kiril
2
不!我正在使用Java实现遗传算法来解决网络分区问题。我有点困惑交叉概率到底是什么意思?我找不到任何清晰解释交叉概率的文章。我正在寻求已经实现过的人的帮助! - Reddy
4个回答

41
突变概率(或比率)基本上是对随机改变染色体元素的可能性进行测量。例如,如果您的染色体被编码为长度为100的二进制字符串,并且您有1%的突变概率,则意味着您随机选择的100个位元中平均会有1个被翻转。 交叉基本上模拟了性遗传重组(如人类繁殖),通常在GAs中有多种实现方式。有时,在GAs中适度应用交叉(因为它会破坏对称性,这并不总是好事,你也可能失明),所以我们谈论交叉概率来表示将选取多少对夫妇进行交配(他们通常是按照选择标准选取的 - 但这是另一个故事)
这就是简短的故事-如果想要长篇大论,您就需要努力点击Amber发布的链接或者去谷歌搜索-上次我检查还是个好选择 :)

8
根据Goldberg(搜索、优化和机器学习中的遗传算法),交叉概率是特定交配会发生交叉的概率;也就是说,不是所有交配都必须通过交叉来进行繁殖,但可以选择Pc=1.0。
突变概率由JohnIdol提供。

5

这显示了在交叉配对中从父母遗传的特征数量!

注意:如果交叉概率为100%,则所有后代都是通过交叉配对产生的。如果为0%,则整个新一代是由旧种群中染色体的精确副本组成的(但这并不意味着新一代是相同的!)。


3

以下是关于这两个概率的简单解释:

http://www.optiwater.com/optiga/ga.html

Johnldol对变异概率的回答与该网站所说完全一致:

"每个染色体中的每个位点都会通过生成介于零到一之间的随机数进行可能的变异检查,如果此数字小于或等于给定的变异概率(例如0.001),则该位点的值将发生改变。"

至于交叉概率,也许它是由交叉操作产生的下一代人口的比例。而其他的人口...可能是通过先前的选择或者您可以将其定义为最适合的幸存者。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接