遗传算法:交叉操作 Order Crossover OX1, OX2, OX3, OX4, OX5

OX11985:是最基本的Order Crossover ,执行过程如下:

  1. 首先从父代随机选择两个个体P1,P2和两个点
  2. 将P1,P2两点之间部分提取出来,放在子代O1,O2相同位置(这里与PMX是相反的)
  3. 子代中打叉的部分的填入方式是:从另一个父代第二个切点开始,删除已经填入的部分,然后按照顺序填入。例如,O1已经填入的部分来自于P1,然后将P2第二个切点排序,得到3,7,4,2,5,1,6,8,此时删除2,7,1三个点,剩余部分为3,4,5,6,8,然后将上面的序列按照顺序填入O1 同理

OX2 1991 与OX1相似,不同的是repairing procedure。

  1. 首先从父代随机选择两个个体P1,P2和两个点
  2. 将P1,P2两点之间部分提取出来,放在子代O1,O2相同位置
  3. 将另一个父代染色体按照顺序排列并删除已经存在的基因,如P2的序列为4,5,7,1,2,6,8,9,3,删除3,4,5后为7,1,2,6,8,9,将该序列填入O1中,则O1为7,1,3,4,5,2,6,8,9,同样可求得O2 

OX3 2011:OX1中两个父代染色体中的cut points位置是相同的,而OX3做了改进,即两个染色体中的cut points位置不同,但是cut points个数相同,显然OX1是OX3的一个特例。OX3的repairing procedure 与OX1相同。举例如下:

两个父代染色体 和,保持父代cut points的基因不变,以另一个父代的基因序列删除已经存在的基因进行填充,O1填充5,4,1,9,8,3,O2填充4,1,5,2,7,6,因此两个子代分别为 和

OX4 2011:OX4中的cut points不仅位置不同,数量也不同。其余的操作与OX1相同。

父代染色体 ,将P1中的cut points复制到O1,将填充到O1中的剩余位置,同理O2,则

OX5 2011:与OX1的不同之处就是使用2对cut points。

父代染色体,将cut points直接复制到O1和O2中,然后其余位置分别用

 填充,则

注意:在生成填充序列时,要从最后一个cut point后面复制父代染色体,然后再删除

实验比较:

在TSP3个问题上的比较OX2的速度是最快的,但是新提出的OX3,OX4,OX5效果都比OX1,OX2要好很多。

 

reference:

Kusum Deep and Hadush Mebrahtu. 2011. New variations of order crossover for travelling salesman problem. International Journal of Combinatorial Optimization Problems and Informatics 2, 1, 2–13.

  • 2
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值