美文网首页
2019-04-16派森学习第148天

2019-04-16派森学习第148天

作者: 每日派森 | 来源:发表于2019-04-16 16:59 被阅读0次

遗传算法中的crossover和VRP问题中的2-Opt算法。

交叉(crossover)

两个染色体的某一相同位置处DNA被切断,前后两串分别交叉组合形成两个新的染色体。也称基因重组或杂交;

2-opt算法

2-opt算法的核心在于随机选择一个区间段进行优化,这个优化只是对于当前一个状态的优化,并不是对全局的优化。

算法的步骤:

首先确定算法的最大迭代次数MAX,初始化一个计数器N用于记录迭代次数

1、随机一条初始化可选择的路线,途径所有城市,比如: A => B => C => D => E => F => G = > H => A, 假设这一条就是最短的路径。

2、 随机选择两个不同的途径的城市,反转这两个城市在内的中间的路线,比如随机选择(C、F)

那么此时老路径被分割成了三段:

(A => B) =>( C => D => E => F )=> (G = > H => A)

翻转后,得到的新路径

(A => B) =>( F => E => D => C )=> (G = > H => A)

3、如果新路径(A => B => F => E => D => C => G = > H => A)的距离总长小于老路径(A => B => C => D => E => F => G = > H => A)距离总长,那么最短的路径变为新路径,计数器N=0;如果新路径距离总长大于老路径,那么老路径还是当前的最短路径,计数器N+1。如果 N ≥ MAX , 算法结束,当前的路径就是最短路径(局部最优的最短路径)。

这个算法得到的路线是局部最优的,也就是它会根据迭代次数的不一样,可能呈现出不一样结果,并不是绝对正确的结果,只是优化后的相对正确。如果要得到绝对正确的结果,就需要把所有的路线都列出来计算所有的距离,这样就会爆炸。

相关文章

  • 2019-04-16派森学习第148天

    遗传算法中的crossover和VRP问题中的2-Opt算法。 交叉(crossover) 两个染色体的某一相同位...

  • day16

    2019-04-16

  • 2019-06-20派森学习第187天

    通过restlet插件将参数post进web,然后程序执行成功:

  • 2019-06-21派森学习第188天

    修改的程序又出现了一个小BUG: 通过print测试,发现问题是index2workpackage_id函数处理问...

  • 2019-03-06派森学习第108天

    今天想把插入排序做出来。 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理...

  • 2019-03-07派森学习第109天

    早上来的路上又理了一下思路, 然后, 不到5分钟就写出来昨天的插值算法, 可能是昨天也急着写好, 所以导致反而写不出来。

  • 2019-03-05派森学习第107天

    毕竟以后要学习机器学习,少不了算法。 今天就自己开始写一些经典的算法吧,把经典的算法用python写一下。 从冒泡...

  • 2019-02-28派森学习第102天

    昨天把txt生成excell程序解决后,解放了很多劳动力啊。今天发起文章就容易多了。 科技解放人类。 接下来,需要...

  • 2019-03-09派森学习第111天

    今天先把机器学习的入门的贝叶斯公式重新回顾,总结了一下:

  • 2019-03-08派森学习第110天

    今天继续观看强化学习的视频,并且把源程序自己下载下来,并且做了修改。 强化学习迷宫的游戏,让机器自己学会找到黄色目...

网友评论

      本文标题:2019-04-16派森学习第148天

      本文链接:https://www.haomeiwen.com/subject/pnwbwqtx.html