遗传算法解决TSP问题

TSP问题

假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。

  • 路径的选择目标是要求得的路径路程为所有路径之中的最小值

即:

  • 已给一个n个点完全图,每条边都有一个长度,求总长度最短的经过每个顶点正好一次的封闭回路
    • 如果把所有路径进行组合,哪就是n^n^种

早期的研究者使用精确算法求解该问题,常用的方法包括:分枝定界法、线性规划法、动态规划法等。但是,随着问题规模的增大,精确算法将变得无能为力,因此,在后来的研究中,国内外学者重点使用近似算法或启发式算法,主要有遗传算法、模拟退火法、蚁群算法、禁忌搜索算法、贪婪算法和神经网络等。

阅读全文

JavaScript版装饰者模式

本文是基于JavaScript的装饰者模式
由浅入深介绍JavaScript的装饰者模式,以及与传统面向对象语言的装饰者模式的区别。
包含大量代码示例以及注释
内容包括

  • 为什么需要装饰者模式
  • 传统面向对象的装饰者模式
  • JavaScript的装饰者
  • 装饰函数
  • 用AOP装饰函数
  • AOP的应用实例
  • 装饰者模式和代理模式的区别
阅读全文

Git Flow超详细版

为什么要用git flow?

  • 在实际生产开发的过程中,如果每个人都随意的创建分支,随意的提交commit,必将导致整个git仓库非常的混乱,不易于团队协作

git flow的提出

  • Vincent Driessen 同学为了解决这个问题提出了A Successful Git Branching Model,最后形成了业内普遍采用的git 工作流程,大家都在约定的流程内使用git,使得团队协作效率大大提高‌
阅读全文

本站介绍