摘要:TSP是一个典型的NPC问题
本文首先介绍旅行商问题和粒子群优化算法的基本概念
然后构造一种基于交换子和交换序[1]概念的粒子群优化算法,通过控制学习因子和、最大速度,尝试求解旅行商问题
本文以中国31个省会城市为例,通过MATLAB编程实施对旅行商问题的求解,得到了一定优化程度的路径,是粒子群优化算法在TSP问题中运用的一次大胆尝试
关键字:TSP问题;粒子群优化算法;MATLAB;中国31个城市TSP
1粒子群优化算法求解旅行商问题1
旅行商问题的概述旅行商问题,即TSP问题(TravelingSalesmanProblem)又译为旅行推销员问题货郎担问题,是数学领域中著名问题之一
假设有一个旅行商人要拜访n个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市
路径的选择目标是要求得的路径路程为所有路径之中的最小值
TSP问题是一个组合优化问题,其描述非常简单,但最优化求解非常困难,若用穷举法搜索,对N个城市需要考虑N
种情况并两两对比,找出最优,其算法复杂性呈指数增长,即所谓“指数爆炸”
所以,寻求和研究TSP问题的有效启发式算法,是问题的关键
粒子群优化算法的概述粒子群优化算法(ParticleSwarmoptimization,PSO)又翻译为粒子群算法、微粒群算法、或微粒群优化算法
是通过模拟鸟群觅食行为而发展起来的一种基于群体协作的随机搜索算法
通常认为它是群集智能(Swarmintelligence,SI)的一种
它可以被纳入多主体优化系统(MultiagentOptimizationSystem,MAOS)
粒子群优化算法是由Eberhart博士和Kennedy博士发明
PSO模拟鸟群的捕食行为
一群鸟在随机搜索食物,在这个区域里只有一块食物
所有的鸟都不知道食物在那里
但是他们知道当前的位置离食