PSO应用TSP中Basic Swap Sequence(交换子)构造

文章探讨了如何将PSO算法适应于离散优化问题,特别是旅行商问题(TSP)。由于PSO原本设计用于连续区间,所以在处理TSP时需要修改。文中提出使用BBS(Best-BetterSwap)策略替代连续靠拢操作。提供了一个Matlab实现示例,展示了如何进行变量交换以更新粒子位置。
摘要由CSDN通过智能技术生成

在pso应用于离散优化例如tsp时,由于其算法本身是针对连续区间的,因此需要对其进行改造。本文针对pso中更新粒子所用到的基本交换子的构造进行简单记录。

在连续区间的pso中在更新位置时,会有一个向此时最优位置靠拢的操作。但需要注意的是针对连续区间的靠拢操作对于离散的tsp并不适用,故采取BBS来代替。基本定义可参考本文

基本流程如下:
在这里插入图片描述

matlab实现(求解x_>pbest的BBS)

function [ bbs ] = bbs_solve(pbest,x)
len = length(pbest);    %获取长度
bbs = ones((len-1)*2,1);
for i =1:len-1          
    index = find(x == pbest(i));
    if i~=index         %i与x对应下标相同与否
      bbs(2*i-1) = i;
      bbs(2*i) = index;
    end
    % 交换
    tmp = x(index);      
    x(index) =x(i);
    x(i) = tmp;
end
end
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值