-
- 概述
旅行商问题(Travel Salesman Problem,TSP)是运筹学领域典型的组合优化问题,其目的是在一个完全图G=(N,A)中找到费用最小的哈密顿回路。其中N={1,…,n}表示城市构成的集合,A={(i,j)|i∈N,j∈N,i≠j}表示边构成的集合。TSP在实际中具有非常广泛的应用,例如,机组调度、热轧调度、日程安排、自主移动机器人任务规划、印刷机调度等。由于TSP是一类具有二元决策变量的NP-hard问题,启发式算法常被用于解决这类问题,包括蚁群算法、遗传算法、局部搜索、神经网络、模拟退火、禁忌搜索等。TSP的数学模型可以表述如下:
其中,xij为0-1变量,表示路段(i,j)是否在最优的旅行路径中,即推销员是否通过该路段。cij表示从城市i到城市j所需要的花费。
-
- 蚁群算法
蚁群算法是受到对真实蚂蚁群觅食行为研究的启发而提出。生物学研究表明:一群相互协作的蚂蚁能够找到食物和巢穴之间的最短路径,而单只蚂蚁则不能。生物学家经过大量细致观察研究发现,蚂蚁个体之间的行为是相互作用相互影响的。蚂蚁在运动过程中,能够在它所经过的路径上留下一种称之为信息素的物质,而此物质恰恰是蚂蚁个体之间信息传递交流的载体。蚂蚁在运动时能够感知这种物质,并且习惯于追踪此物质爬行,当然爬行过程中还会释放信息素。一条路上的信息素踪迹越浓,其它蚂蚁将以越高的概率跟随爬行此路径,从而该路径上的信息素踪迹会被加强,因此,由大量蚂蚁组成的蚁群的集体行为便表现出一种信息正反馈现象。某一路径上走过的蚂蚁越多,则后来者选择该路径的可能性就越大。蚂蚁的运动过程可以简单归纳如下:
(1)当周围没有信息素指引时,蚂蚁的运动具有一定的惯性,并有一定的概率选择其他方向;
(2)当周围有信息素的指引时,按照信息素的浓度强度概率性的选择运动方向;
(3)找食物时,蚂蚁留下与家相关的A信息素,找家时,蚂蚁留下与食物相关的B信息素,并随着移动距离的增加,洒播的信息素越来越少;
(4)随着时间推移,信息素会自行挥发。
应用蚁群算法求解TSP问题时,需要建立一个虚拟的始终点,可以直观地理解为蚂蚁巢穴和食物所在地,一个所经过城市的路径的排列就构成了TSP的一个解。算法的核心是信息素的记忆和更新。以下做重点说明。在算法开始时,由于从来没有蚂蚁去寻