首页 理论教育蚁群算法原理及应用-城市道路交通事件影响分析与疏导策略

蚁群算法原理及应用-城市道路交通事件影响分析与疏导策略

【摘要】:蚂蚁系统是蚁群算法最原始的模型,也被称为基本蚁群算法,它是之后所有蚁群算法的原型。蚁群算法最初是由Dorigo M 等提出并应用于解决经典的TSP 问题,并取得了极好的效果。因此,本书将引入TSP 问题系统介绍基本蚁群算法的数学模型。Nothegger[21]、Dowsland[22]等人将蚁群算法应用于求解多种不同类型的指派问题,例如二次指派问题、频率指配问题及图形着色问题等。

蚁群算法是一种模拟蚂蚁群体觅食行为的仿生类优化算法。此算法最早是由意大利学者Dorigo M等[16]在1991年提出的,并在之后的几年内对此算法的数学模型及核心思想进行了详尽系统的阐述。[17] [18]下面对该算法的数学模型及其应用进行简单的描述。

蚂蚁系统(Ant System)是蚁群算法最原始的模型,也被称为基本蚁群算法,它是之后所有蚁群算法的原型。蚁群算法最初是由Dorigo M 等提出并应用于解决经典的TSP 问题(traveling salesman problem),并取得了极好的效果。因此,本书将引入TSP 问题系统介绍基本蚁群算法的数学模型。

TSP 问题可以简单描述为:给定n 个城市,并已知各城市两两之间的距离,现有一旅行商需对每座城市进行一次访问并最终返回原地,要求找出一条总行程最短的巡回路径。此时,设 G = ( C , L)是一个有向图,其中是n 个城市的集合,是n 个城市两两连接的集合,dij 是lij长度,TSP 问题的求解目的即是找出长度最短的Hamilton 圈。

为便于描述基本蚁群算法求解上述问题的过程,首先对下文所需的参数变量进行说明:

b (t)表示t 时刻位于城市ci 的蚂蚁数;

m 表示蚁群中蚂蚁的总数,n 表示此问题中城市的总数,且

τij (t)表示t 时刻路段(i, j)上的信息素量,且设τij (0)为一个常量;

ηij 表示路段(i, j)的能见度,且

(t)表示t 时刻蚂蚁k 由城市i 转移至城市j 的概率;

α 表示信息素的相对重要程度,反映了蚂蚁在选择路径的过程中信息素所起的作用;

β 表示能见度的相对重要程度,反映了蚂蚁在选择路径的过程中能见度所起的作用。

在初始时刻t = 0 时,各条路径的信息素τij (0)均相等,随机将m 只蚂蚁放置于n 个城市中,并采用禁忌表tabuk 记录蚂蚁k 当前走过的城市,依据一定的概率逐步选择下一个未访问过的城市。此处,t 时刻蚂蚁k 由城市i 转移至城市j 的概率 ( t )主要由路段(i, j)上的信息素量τij (t)及能见度ηij 决定,其表达式描述如下:

式中,表示蚂蚁k 下一步允许选择的城市集合。

当所有蚂蚁将所有城市都访问完成时,一个循环就结束了,此时为了避免出现遗留的信息素量过多而导致能见度信息被忽略,各路径上的信息素需进行更新处理。其更新规则表示如下:

式中, τ ij (t + n)为t+n 时刻路段(i, j)上的信息素量;∂为信息素的挥发系数,且∂∈(0,1);Δτij ( t)为本次循环中路段(i, j)上的信息素增量;Δ  (t )为蚂蚁k 在本次循环中释放在路段(i, j)上的信息素量。

针对不同的信息素更新策略,Dorigo M 分别提出了三种不同类型的基本蚁群算法模型:Ant-Cycle 模型、Ant-Quantity 模型、Ant-Density 模型,它们之间的区别主要在于Δτij ( t)计算方法的不同。

在Ant-Cycle 模型中,

式中,Q 为一只蚂蚁在本次循环中所释放的信息素总量,Lk 为蚂蚁k 在本次循环中所走路径的总长度。此模型是通过采用整体的路径信息,在完成一次循环后对所有路段上的信息素进行更新。

在Ant-Quantity 模型中,

此模型是通过采用局部的路径信息,在一个单位时间后对相应路径上的信息素进行更新,且其更新量与路径长度成反比。

在Ant-Density 模型中,

此模型同样是通过采用局部的路径信息,在一个单位时间后对相应路径上的信息素进行更新,但其只与单位时间释放的信息素量相关,与路径长度无关。

经对比研究发现,Ant-Cycle 模型相对于其他两种模型在TSP 问题的求解过程中具有更好的性能,因此通常将此模型作为基本蚁群算法。

由于该算法具有鲁棒性强、易于与其他算法相融合等优点,近年来其在指派问题、调度问题、车辆路径问题等许多应用领域均得到了极大的推广,且在算法的改进方面也获得了相关专家学者的广泛关注。

在应用方面,基于时间依赖理论、基于运货量及路径二维加载及带有时间窗等在内的多种条件,Gajpal[19]、Yu[20]等人采用蚁群算法求解了多种不同条件下的车辆路径问题。Nothegger[21]、Dowsland[22]等人将蚁群算法应用于求解多种不同类型的指派问题,例如二次指派问题、频率指配问题及图形着色问题等。除此之外,蚁群算法在多背包问题[23]、连续函数优化[24]、集覆盖[25]、机器学习[26]等方面的应用也均取得了极大的成功。在模型改进方面,Duan 等[27]通过对状态转移概率、信息素量、启发因子等因素进行自适应调节,达到对基本蚁群算法优化的目的。为了加快蚁群算法的求解速度,Yang 等[28]结合聚类分析理论将研究问题分解为多个子问题并求解,最终依据一定规则合成得出研究问题的最优解。蚁群算法具有易于陷入局部最优解的缺陷,Mishra 等[29]结合云模型对此缺陷进行了有效控制。