700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 遗传算法:交叉操作 Inver-over 算子

遗传算法:交叉操作 Inver-over 算子

时间:2018-07-21 01:06:15

相关推荐

遗传算法:交叉操作 Inver-over 算子

Inver-over 算子1998:Inver-over 算子可以看作是GA中交叉和变异的混合方法

Inver-over步骤:

随机初始化种群P如果没达到temination,对每一个个体,,随机从中选择一个city c执行下面的循环,生成随机数,如果rand()<=p,从剩余的city中随机选择一个;如果rand()>p,从P中随机选择一个个体,然后选择c下一个位置的city。执行上面的循环,直到选择的是c的下一个city则停止计算eval(si)>eval(),更优则替换。

举个例子:如果如果选择的city c=3,产生的随机数小于p,则从中选择另一个city=8,将c下一个位置与之间的数字全部逆序,则;;另一种情况,如果产生的随机数大于p,则从种群P中随机选择一个个体,假设选择的个体是,则选择c的下一个city,这里是5,作为,然后将中c下一个位置与之间的数字全部逆序,上面的过程执行多次,直到是c的下一个city。比如当前个体是,当前选中的city是6,不管随机数与p比较后选择那种方案生成,如果是8的话,循环结束。

实验部分:种群P=100,random inversion 概率p=0.02,结束条件是如果最后10次迭代最好的solution都没有得到改善。测试数据是TSPLIB。实验比较了simple inversion(p=1.0)和Lin-Kerninghan算法,前者时间和效果相差比较大,后者时间更短但是结果没有达到最优值。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。