Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 人工智能 > 进化计算
进化计算 A discussion board for Evolutionary Computation.
回复
 
主题工具 显示模式
旧 2010-07-19, 00:36   #1
xdyong
初级会员
 
注册日期: 2010-05-02
帖子: 1
声望力: 0
xdyong 正向着好的方向发展
很差 部分匹配交叉PMX

(1)部分匹配交叉
随机选取两个交叉点,以确定一个匹配段,根据两个父体中两个交叉点之间
的中间段给出的映射关系生成两个子个体。例如在两个父体中随机选择两个交叉
点,以“|”表示。
A=984|567|1320
B=871|230|9546
则由交换段确定的部分映射为:
2-5,3-6,0-7,
首先, 两个交叉点之间的中间段交换,得到:
A’ =984|230|1320
B’=871|567|9546
然后对于 A’, B’两子个体中交换区域以外出现的遍历重复,依据交换区域内
的位置映射关系,逐一交换,最后得到:
A’’=984|230|1657
B’’=801|567|9243

假设两个父体为:
X:1 |3 4 2| 5 6
Y:1 |2 3 6 |5 4
则由交换段确定的部分映射为:
3-2,4-3,2-6,
首先, 两个交叉点之间的中间段交换,得到:
X:1 |2 3 6| 5 6
Y:1 |3 4 2 |5 4
然后对于 X, Y两子个体中交换区域以外出现的遍历重复,依据交换区域内
的位置映射关系,逐一交换,最后得到:
X:1 |2 3 6| 5 2
Y:1 |3 4 2 |5 3

为什么出现错误?
xdyong 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 19:20


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.