求解TSP问题的离散捕鱼策略优化算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第44卷 第6A期2017年6月计算机科学
COMPUTER S
CIENCEVol.44No.6A
June
2017本文受广西自然科学基金资助项目(0832084
)资助。
陈建荣(1982-),男,硕士,助理研究员,主要研究方向为计算智能、数据挖掘等,E-mail:carl204@163.com;陈建华(1982-),男,硕士生,主要研究方向为计算智能、数据挖掘等(通信作者)。
求解TSP问题的离散捕鱼策略优化算法
陈建荣1 陈建华2
(右江民族医学院 百色533000)1 (
右江区新型农村合作医疗管理中心 百色533000)2
摘 要 针对典型离散优化问题旅行商问题,提出了一种离散捕鱼策略优化算法。
结合TSP问题的特点,首先给出渔夫个体的离散编码方法,并在此基础上提出相异集和交换操作的基本概念;然后对渔夫个体之间的距离进行重新定义,并对渔夫个体的几种搜索策略进行重新描述;最后在TSPLIB标准库中选取3个算例对算法进行性能测试。
数值仿真实验结果表明,对于求解TSP问题,离散捕鱼策略优化算法具有求解精度高、稳定性好、运行速度快等优点,为求解TSP问题提供了一种可行的新选择。
关键词 离散,捕鱼策略,优化算法,旅行商问题中图法分类号 TP18 文献标识码 A
Discrete Fishing Strategy
Optimization Algorithm for TSPCHEN Jian-rong1 CHE
N Jian-hua2
(Youjiang Medical University for Nationalities,Baise 533000,China)1(New Rural Cooperative Medical Manag
ement Center,Baise 533000,China)2
Abstract The classical fishing strategy can only solve the optimization problem on a continuous domain,but there is norelative research on discrete domain.To solve traveling salesman problem,a discrete fishing strategy optimization algo-rithm was presented.An efficient discrete encoding method was given with the characteristics of TSP,and base on this,the basic concepts of the distinct set and the exchange operations was put forward.A new distance formula was givenand the several search strategy has redescription.The experiment results about TSP form TSPLIB indicate that the al-gorithm shows high accuracy,stability
and quickly.And it provides a new choice to solve TSP.Keywords Discrete,Fishing strategy,Optimization algorithm,TSP
1 引言
捕鱼策略优化算法[1]
(Fishing Strategy
Optimization Al-g
orithm)是受到渔夫在江面上撒网捕鱼的行为习惯启发而提出的一种群智能优化算法。
该算法具有鲁棒性强、
收敛速度快、优化精度高、编程实现简单等优点。
近年来,其在静态电压稳定裕度计算、高炉面料传感器布置、无线电频谱分配、变电站规划、
无线传感器网络节点定位、微博热点话题预测、机组优化等领域[2-
12]得到了较为广泛的应用。
同时,该算法在改进、
结合等[13-
20]方面也不断得到深入研究。
目前,不管是算法的应用成果,还是理论方面的探讨,均在连续型论域下进行。
为拓宽算法的适用范围,以经典NP难的旅行商问题为例,提出一种离散捕鱼策略优化算法(Dis-crete Fishing Strategy
Optimization Algorithm,DFSOA)。
2 捕鱼策略优化算法简介
捕鱼策略优化算法是通过对渔夫捕鱼行为习惯的观察和模仿而提出的。
为了能够模拟优化问题的实际,算法对捕鱼
环境和渔夫的行为做如下基本假设[1]
:1)
水中鱼的密度不受渔夫捕鱼行为的影响;2)
渔夫对水中鱼群的分布情况一无所知;3)往鱼群密集的方向前进,以便能捕到更多的鱼;4)当前位置鱼的密度比周围高,则停留在当前位置撒网捕鱼;5)为了能将鱼一网打尽,渔夫会使用网眼更小的渔网进行捕鱼作业;6)渔夫之间避免相互碰撞;7)当前位置没有鱼或鱼的密度比较低时,渔夫会到其他地方捕鱼。
算法首先在定义域范围内对渔夫位置进行随机初始化,然后各渔夫根据当前状态选择相应的搜索策略来进行寻优搜索。
迭代过程中,
渔夫会根据自身所处状态来选择下一步该采取哪一种搜索策略进行搜索。
通过渔夫的共同努力,最终找到问题的最优解。
3 离散捕鱼策略优化算法
3.1 编码方法及问题描述
对于规模为N的TSP问题,一个可行编码为N个城市的全排列表示为(a1,…,ai,…,aN),其中ai取[1,N]之间的整数,表示第ai个城市位于周游路径中的第
i个位置。
例1 对于规模N=6的TSP问题,渔夫编码X1=(2,4,1,3,5,6),则其对应的城市周游顺序为2→4→1→3→5→6。
设X=(a1,…,ai,…,aN)
,定义目标函数:
f(
X)=dis(aN,a1)+∑N-1
i=1dis(ai,ai+1)(1
)其中,dis(ai,ai+1)表示城市ai和ai+1间的距离。
那么,TSP问题的最优解可以描述为,
寻找一个可行的城市全排列序列X=(a*1,…,a*i,…,a*
N),使得根据城市顺序a*1→…→a*i→…→a*
N计算周游路径时得到长度最短的
路径值,即min f(X)。
3.2 相关定义
定义1 给定序列X=(a1,…,a2,…,aN),X*=(a*
1,…,a*2,…,a*N),
把X与X*中处于相同位置的元素进行比较,若ai=a*
i,则令ti=0,否则令ti=1。
将对比结果依次记入序列T=(t1,…,ti,…,tN)
中,则称T中非零元素的下标组成的集合P={pj|pj=
i,ti≠0}为X与X*
的相异集,j=1,2,…,‖T‖,‖T‖为T中元素的个数。
例2 序列X1=(2,1,6,5,3,4)和X2=(4,1,6,2,3,5)在第1,4,6这3个位置上有不同的元素,则其相异集为P={1,4,6
}。
定义2 若X1和X2两序列的相异集为P,则称‖P‖
为X1和X2间的距离,记作d(X1,X2)。
‖P‖为P中元素的个数。
例3 若序列X1,X2相异集P={1,4,6
},那么两序列间的距离d(X1,X2)=3。
定义3 设X=(a1,…,ai,…,aj,…,aN),其中正整数i和j满足1≤i<j≤N。
将X中第i和第j个元素交换,
即将ai和aj两个元素交换,称为一次交换操作。
若i和j通过随机方式产生,那么该交换操作称为一次随机交换操作。
3.3 搜索策略
设k渔夫初始位置Xk0
=(ak01,…,ak0i,…,ak
0N),以当前位置为“
中心”、以L为半径的撒网点集为:Ωk={Xkj
=(akj1,…,akji,…,akjN)|j=1,2,…,M}(2
)其中,每一个Xkj均由Xk0经过L次随机交换操作得到。
ak
j
i表示编号为ak
ji
的城市排在序列中的第i个位置。
撒网次数M和撒网半径L均为给定的正整数。
(1)移动搜索:若f(X′)=minXkj
∈Ωkf(Xkj)<
f(Xk0),j=1,2,…,M,则k渔夫位置从Xk0移动到X′,并以X′为新的“中心”,根据式(2)重新构造撒网点集Ωk′。
(2)收缩搜索:若f(X′)=minXkj
∈Ωkf(Xkj)≥
f(Xk0),j=1,2,…,M,则k渔夫停留在Xk0
处,以L′=[αL]为撒网半径,根据式(2)重新构造撒网点集Ωk
′。
(3)沿途搜索:若经过C次连续的收缩搜索,k渔夫仍停留在Xk0处,且当前群体最优X*≠Xk0,d(X*,Xk0)>L,那么构造Xk0和X*的相异集P。
在P中随机选出一个元素pg,然后在Xk0中寻找与a*相等的元素ak0
ph
,a*为X*中第pg个元素,接着将Xk0中的两个元素ak0pg与ak
0
p
h
交换,得到X′k0。
重新构造X′k0
和X*
的相异集P′,并重复上述交换操作,直到满足d(X*,X′k0)=d(X*,Xk0)-L,X′k0为每一次交换操作结束时k渔夫的位置。
最后,根据式(2)重新构造撒网点集Ωk
′。
(4
)随机搜索:若k渔夫不满足执行上述3种搜索策略的条件,则对其进行随机初始化,并根据式(2)重新构造撒网点集Ωk
′。
3.4 算法流程
算法设置有群体公告板gbest,输入参数有:渔夫规模K、撒网半径L、收缩系数α、收缩次数阈值C和迭代次数N。
算法搜索步骤:
step
1 随机初始化K个渔夫;step2 若算法迭代次数达到N,则输出最优解及最优值;step3 根据当前渔夫状态,执行相应的搜索策略(移动搜索、
收缩搜索、沿途搜索和随机搜索);step4 若找到更优值,则更新gbest,转step
2。
4 实验结果及分析
4.1 实验环境与参数设置
实验环境为Intel Core i7-4790KCPU@4.00GHz,16GB内存,Windows10
64bit操作系统,MATLAB2015b仿真软件。
为测试算法的收敛性和稳定性,消除算法参数、初始值和随机性对算法的影响,采用如下方法:1)算法独立运行50次,以这50次运行的平均值作为最终测试结果;2)每次运行时,均采用MATLAB的随机函数对渔夫个体编码进行初始化;3)将所有算例中算法的参数进行统一设置:渔夫规模K=20、撒网半径L=10、撒网次数M=50、收缩系数α=0.5、收缩搜索阈值C=10、最大迭代次数N=1000。
4.2 算例及结果分析
为验证算法性能,在TSPLIB测试库中选取3个算例,即Burma14,Ulysses16和Ulysses22。
DFSOA算法的实验结果见表1,收敛曲线和求得的最优路径如图1-图6所示。
表1 实验结果
算例TSPLIB提供的最优路径长度
本文最优本文最差平均值标准差平均迭代次数
收敛比例运行时间/sBurma14-30.878504 30.878504 30.878504 0 106 50/50 3.42Ulysses16 74.108736 73.987618 73.987618 73.987618 0 131 50/50 3.53Uly
sses22 75.665149
75.309701
75.309701
75.309701
0
357
50/50
3.9
5
图1 DFSOA算法求解Burma14的收敛曲线
图2DFSOA算法求解Uly
s-ses16
的收敛曲线
图3DFSOA算法求解Uly
s-ses22的收敛曲线
图4DFSOA算法优化Burma14的最优路径图
(下转第160页)
0
41计算机科学
2
017年
best_ratio的方法。
通过一系列的实验证明,相比通常给定一个固定阈值的方法,利用本文所提方法求出的阈值不仅可以获取更多的匹配点,
而且匹配正确率也得到了很大的改善;而且,在实验过程中,通过对画出的曲线进行分析,还可以得出阈值在0.7附近时匹配率能达到95%左右的结论,虽然这是以减少匹配点数目为代价的,
但这部分匹配点数目的损失一般都是在可控范围内的。
最后,本文对最佳阈值求解出的结果进行了双向匹配,剔除了部分误匹配点,进一步提高了匹配正确率。
参考文献
[1]LOWE D G.Distinctive image features from scale-invariant key
-points[J].International Journal of Computer Vision,2004,60(2):91-
110.[2]HARRIS C,STEPHENS M.A combined corner and edg
e detec-tor[C]∥Alvey
Vision Conference.1988:50.[3]TOMASI C,KANADE T.Detection and tracking
of point fea-tures[M].Pittsburgh:School of Computer Science,CarnegieMellon
Univ.,1991.[4]BAY H,TUYTELAARS T,Van Gool L.Surf:Speeded up
ro-bust features[C]∥European Conference on Computer Vision.Springer Berlin Heidelberg
,2006.[5]MIKOLAJCZYK K,SCHMID C.A p
erformance evaluation oflocal descriptors[J].Pattern Analysis and Machine Intelligence,2005,27(10):1615-
1630.[6]万剑华,孙姝娟,曾喆.SIFT算法距离比阈值自适应改进研究
[J].中国石油大学学报(自然科学版),2013,37(4):71-75,82.[7]王泽梁,汪道寅,汪丽华.基于距离比阈值参数自适应的SIFT
算法研究[J].陕西科技大学学报(自然科学版),2011,29(5):44-
47,72.[8]FISCHLER M A,BOLLES R C.Random samp
le consensus:aparadigm for model fitting with applications to image analysisand automated cartography[J].Communications of the ACM,1981,24(6):381-
395.[9]SCHARSTEIN D,SZELISKI R.A taxonomy
and evaluation ofdense two-frame stereo correspondence algorithms[J].Interna-tional Journal of Computer Vision,2002,47(1-3):7-42.[10]骞森,朱剑英.基于改进的SIFT特征的图像双向匹配算法[J].
机械科学与技术,2007,26(9):1179-
1182.[11]赵璐璐,耿国华,李康,等.基于SURF和快速近似最近邻搜索
的图像匹配算法[J].计算机应用研究,2013,30(3):921-923.(上接第140页
)
图5 DFSOA算法优化Ulysses16的最优路径图
图6DFSOA算法优化Uly
sses22的最优路径图
由实验结果及收敛曲线图可得出:1)DFSOA算法求解精度高,对Ulysses16和Ulysses22算例的求解结果均优于TSPLIB测试库中提供的最优路径长度(Burma14因TSPLIB未提供最优路径长度而无法比较);2)从平均值、标准差和收敛比例3个方面可以看出,DFSOA算法稳定性好,每次都能收敛到最优解;3)DFSOA算法收敛速度快,求解算例最优路径的平均耗时不超过4s。
结束语 以求解TSP问题为例,提出了一种离散捕鱼策略优化算法。
实验结果表明,DFSOA算法具有求解精度高、稳定性好、收敛速度快的优点,能够在可接受的时间内求得问题的最优解。
因此,该算法是有效且可行的。
DFSOA算法是将捕鱼策略优化算法应用于离散域优化的一种新尝试。
下一步的研究是将离散捕鱼策略优化算法用于求解大规模TSP问题和离散域的其他优化问题。
参考文献
[1]陈建荣,王勇.采用捕鱼策略的优化方法[J].
计算机工程与应用,2009,45(9):53-
56.[2]陈建荣,陈建华,王勇,等.求解矩阵特征值的捕鱼算法[J].
计算机工程与应用,2012,48(20):55-
59.[3
]李娟,刘海龙.动态连续潮流与改进捕鱼算法结合计算静态电压稳定裕度[J].华北电力大学学报(自然科学版),2013,40(3):11-
16.[4
]苗亮亮,陈先中,侯庆文,等.高炉料面传感器布置的混沌捕鱼策略[J].仪器仪表学报,2014,35(1):132-
139.[5]项响琴,张沪寅.渔夫捕鱼优化算法的认知无线电频谱分配[J].
计算机工程与应用,2014,50(6):72-
76.[6]王泽黎.基于小生境渔夫捕鱼算法的变电站规划[J].
电力系统保护与控制,2014(16):84-
88.[7
]王英彦,曾瑞.基于改进单锚节点的无线传感器网络节点定位算法[J].激光杂志,2014(12):128-
131.[8]姬建新.捕鱼算法优化核极限学习机的微博热点话题预测[J].
激光杂志,2015(1):128-
131.[9
]潘长森,王小亭,梁晓龙.基于支持向量机的水资源预测模型[J].成都信息工程学院学报,2015(1):59-
62.[10]张凤梅,邹丽.捕鱼算法优化支持向量机的视频检索模型[J].
计算机与数字工程,2015(2):264-
268.[11]徐敏,戴薇.基于渔夫捕鱼优化算法的配电网络重构[J].
电测与仪表,2015(13):43-
47.[12
]谢怡文,赵刚.基于改进单锚节点的无线传感器网络节点定位算法[J].计算机应用与软件,2015(11):148-
150.[13]庞兴,王勇.一种采用动态策略的模拟捕鱼优化方法[J].
山东大学学报(工学版),2010,40(3):19-
25.[14]WANG Y,HE D N,GUAN Y J,et al.An improving
FSOA op-timization by using orthogonal transform[C]∥Proc of the Inter-national Conference on Electronic Commerce,Web Application,and Communication.2011:63-
69.[15]陈建荣,陈建华,王勇.一种改进的模拟捕鱼寻优算法[J].
计算机工程与应用,2011,47(34):47-
50.[16]李景洋,王勇,路闯.具有认知能力的捕鱼策略优化算法[J].
计算机应用研究,2013,30(1):124-
126.[17]李景洋,王勇,李春雷.自调整的捕鱼策略优化算法[J].
计算机工程与科学,2014,36(5):923-
928.[18]庞兴,王勇.PSO与捕鱼策略相结合的优化方法[J].
计算机工程与应用,2011,47(8):36-
50.[19
]陈建荣,王勇.一种人工鱼算法与捕鱼算法相结合的优化方法[J].计算机应用与软件,2011,28(4):196-
199.[20
]梁晓龙,李祚泳,汪嘉杨.蜜蜂进化遗传与捕鱼策略相结合的优化算法[J].数学的实践与认识,2016(17):143-
148.061计算机科学
2
017年。