MATLAB智能算法30个案例分析学习笔记

基于混合和粒子群算法的TSP搜索算法

混合粒子群

与粒子群优化算法不同,传统算法通过跟踪极值来更新粒子的位置(极值包括个体极值和群体极值;个体极值:个体所经历位置中计算得到最优位置;群体极值:种群中的所有粒子搜索到的适应度的最优位置),该算法引入遗传算法中交叉和变异操作,通过粒子同个体极值和群体极值交叉以粒子自身变异的方法搜索最优解,扩展了算法的应用领域。

  1. 问题描述
    TSP问题:traveling saleman problrm,是最基本的路线问题。寻求单一旅行者由起点出发,通过所给定的需求点之后,最后回到起点的最小路径成本问题。
    常见的TSP问题包括零件加工,路径遍历最优等问题。
  2. 求解步骤
    与粒子群优化算法不同,该算法在流程中添加了交叉环节(个体最优交叉、群体最优交叉)和变异环节(粒子变异),在粒子群优化算法中,那两个步骤为速度更新和位置更新。
    流程描述:
    **种群初始化:**怎样用一个个体表达这个问题的解以及把所有的个体累计到一起来表达整个种群。
    **适应度值计算:**根据个体编写评价函数,使得评价函数能对应其他的适应度值
    **更新粒子:**有了适应度值之后,更新每次的个体极值和群体极值。速度更新和位置更新不要了
    **个体最优交叉:**把个体和个体最优粒子进行交叉得到新粒子
    **群体最优交叉:**把个体和群体最优粒子进行交叉得到新粒子
    **粒子变异:**粒子自身变异到新粒子。
    判断算法是否结束:
    **补充说明:**遗传算法中的交叉变异,交叉:从一个种群中随机的选取两个个体。变异类似。
  3. 算法实现:
    (1)个体编码
    采用整数编码的方式,在TSP遍历中,每个粒子表示经历的所有城市。
    适应度操作:适应度值为所有路径的路径之和,适应度值越小,表示路径越短。要结合具体问题具体分析,适应度值可以简单可以复杂。
    (2)交叉操作
    个体通过和个体极值和群体极值交叉来更新,交叉方法采用整数交叉法,首先选择两个交叉位置,然后把个体和个体极值和群体极值进行交叉。
    (3)变异操作
    变异方法采用个体内部两位互换的方法,首先随机选择变异位置,POS1和POS2,然后把两个变异位置互换。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值