遗传算法:交叉操作 SCX 2010

sequential constructive crossover (SCX) 2010

SCX根据父代better edges构造子代,与GNX,ERX不同的是,SCX不仅取决于父代的构造,也能够生成新的,更好的构造,这些构造可能在两个选择的父代中都没有出现。

算法步骤:

  1. 从第一个节点node 1开始
  2. 依次搜索两个父代染色体,比较在父代中出现在节点P后面的第一个合法节点(没有被访问过的),如果父代中P节点后面没有合法节点,一次搜索{2,3,4,...n},选择第一个合法的节点,执行3
  3. 假设节点α和β分别在第一个和第二个父代中,选择下一个节点执行4
  4. 如果 ,选择α,否则选择β作为下一个节点,将其连接到已经选中的节点后面,如果都已经被选择则停止,否则,将当前的节点命名为P,执行2

假设父代分别为 ,对于非对称的TSP有

此时P1和P2的值分别是312和331,下面是SCX的执行步骤:选择第一个节点1,在P1和P2中第一个节点后面的合法节点分别是5,6,C15=35,C16=63,C15<C16,所以选5,O1的染色体为(1,5),在P1和P2中5后面的合法染色体都是7,所以O1的染色体为(1,5,7),在P1中7后面的合法节点是3,P2中没有,因此考虑{2,3,4,...n}中第一个合法的节点,是2,C73=43>31=C72,所以O1的染色体为(1,5,7,2),重复上面的步骤,2后面的合法节点3和4,C23=86 >46=C24,所以O1的染色体为(1,5,7,2,4),4后面的合法节点在P1中没有,P2中是3,对于P1考虑{2,3,4,...n}中第一个合法的节点,也是3,所以O1的染色体为(1,5,7,2,4,3),3后面的合法节点在P1中是6,P2没有,考虑{2,3,4,...n}中第一个合法的节点,也是6,所以O1的染色体为(1,5,7,2,4,3,6),TSP最后的结果是266小于父代两个染色体。

  •  
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值