Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2010-05-02
帖子: 1
声望力: 0 ![]() |
![]()
(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 为什么出现错误? |
![]() |
![]() |