蚁群算法及算例
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
k ij Δτ ij k 1 m
Q k (i , 若蚂蚁 在本次周 游中经过边, j ) k ij Lk 0, 否则
Q ——正常数,
Lk ——蚂蚁 k 在本次周游中所走路径的长度。
开始时,令 ij 0 C
(四)算法步骤
1、初始化参数:开始时每条边的信息素量都相等。 ij (0) 0 ij (0) C 2、将各只蚂蚁放置各顶点,禁忌表为对应的顶点。 3、取1只蚂蚁,计算转移概率 Pijk (t ),按轮盘赌的方式 选择下一个顶点,更新禁忌表,再计算概率,再选 择顶点,再更新禁忌表,直至遍历所有顶点1次。 k 4、计算该只蚂蚁留在各边的信息素量 ij ,该蚂蚁 死去。 5、重复3~4,直至 m只蚂蚁都周游完毕。 6、计算各边的信息素增量 ij 和信息素量 ij (t n) 。 7、记录本次迭代的路径,更新当前的最优路径,清空 禁忌表。 8、判断是否达到预定的迭代步数,或者是否出现停滞 现象。若是,算法结束,输出当前最优路径;否, 转2,进行下一次迭代。
Q ——正常数,
Lk ——蚂蚁 k
在本次周游中所走路径的长度。
开始时, ij 0 C 令
(三)特点
◆是一种基于多主体的智能算法,不是 单个蚂蚁行动,而是多个蚂蚁同时搜索, 具有分布式的协同优化机制。 ◆本质上属于随机搜索算法(概率算法), 具有概率搜索的特征。 ◆是一种全局搜索算法,能够有效地避免 局部最优。
(四)优点
◆求解问题的快速性——由正反馈机制 决定; ◆全局优化性——由分布式计算决定, 避免蚁群在寻优空间中过早收敛;
D 10 E 2
m 参数设置: 5, 1, 1, 0.5, Q 100, ij (0) 2
τ ij t α ηij t β X , 如 果j J k i α β k Y pij t τ is t ηis t sJ k i 0 , 否 则
讨
论
1、对已学过的算法作出某种改进。 2、介绍自学的一种新的算法。 3、查阅文献,介绍某算法在某领域的 一个应用。ቤተ መጻሕፍቲ ባይዱ
4、应用某算法解决一个实际问题。
算 例 A
A
已知资料表
B 2 0 1 4 7 C 10 2 0 3 5 D 8 5 3 0 1 E 3 7 6 2 0 A B C 0 1 9
B
E
C
D
4、每只蚂蚁只能走合法路线(经过每个城市 1次且仅1次),为此设置禁忌表来控制。 5、所有蚂蚁都搜索完一次就是迭代一次,每 迭代一次就对所有的边做一次信息素更新,原 来的蚂蚁死掉,新的蚂蚁进行新一轮搜索。 6、更新信息素包括原有信息素的蒸发和经过 的路径上信息素的增加。 7、达到预定的迭代步数,或出现停滞现象 (所有蚂蚁都选择同样的路径,解不再变化), 则算法结束,以当前最优解作为问题的最优解。
(三)计算公式
k 1、转移概率 pij t 计算公式:
τ ij t α ηij t β , 如 果j J k i α β k pij t τ is t ηis t sJ k i 0 , 否 则
1 ij d ij
当所有蚂蚁完成1次周游后,各路径上的信息 素为: n) (1 ) ij (t ) ij ij (t
k ij Δτ ij k 1 m
Q k (i , 若蚂蚁 在本次周 游中经过边, j ) k ij Lk 0, 否则
(七)基于混合行为的蚁群算法 HBACA
特点:按蚂蚁的行为特征将蚂蚁分成4类,称为4个子蚁 群,各子蚁群按各自的转移规则行动,搜索路径,每迭 代一次,更新当前最优解,按最优路径长度更新各条边 上的信息素,如此直至算法结束。
蚂蚁行为——蚂蚁在前进过程中,用以决定其下一步移 动到哪个状态的规则集合。
1、蚂蚁以随机方式选择下一步要到达的状态。
(二)参数含义及符号
m ——蚂蚁数量;
k ——蚂蚁编号;
t ——时刻; n ——城市数;
d ij ——城市 i, j 之间的距离;
ij ——启发式因子(能见度),反映蚂蚁由
ij ——边 i, j 上的信息素量;
城市 i 转移到城市 j 的启发程度;
ij ——本次迭代边i, j 上的信息素增量;
Q , 若边 ij 是当前最优解的一部分 Δτ Lgb 0, 否则
ij
Δτ ij ——精英蚂蚁在边 ij ——精英蚂蚁个数;
上增加的信息素量;
Lgb
——当前全局最优解路径长度。
(二)蚁群系统 ACS
1、状态转移规则——伪随机比率规则 设 q0 (0,1) 为常数, q (0,1) 为随机数, 如果 q q0 ,则蚂蚁转移的下一座城市是使 [τ ij (t )]α [ηij (t )]β 取最大值的城市;若 q q0 , 仍按转移概率确定。 一般, q0 取值较大。 2、全局更新规则——只有精英蚂蚁才允许释放 信息素,即只有全局最优解所属的边才增加 信息素。 3、局部更新规则——蚂蚁每次从城市 i 转移到 城市 j 后,边 i, j 上的信息素适当减少。
关于 min , max 的取值,没有确定的方法,有的 书例子中取为0.01,10;有的书提出一个在最大 值给定的情况下计算最小值的公式。
(四)基于优化排序的蚂蚁系统 ASrank
特点:每次迭代完成后,蚂蚁所经路径由小到大排序, 并根据路径长度赋予不同的权重,路径越短权重越大。 k 信息素更新时对 ij 考虑权重的影响。
——信息素的相对重要程度;
——启发式因子的相对重要程度;
J k i ——蚂蚁
k 下一步允许选择的城市集合。
1 d ij
2、启发式因子计算公式:ij
3、信息素计算公式
当所有蚂蚁完成1次周游后,各路径上的信息素为:
ij (t n) (1 ) ij (t ) ij
(二)算法的产生与发展
1、产生——受蚁群觅食行为启发,意大利学者M.Dorigo 于1991年在其博士论文中首次系统地提出一种基于蚂蚁种群 的新型智能优化算法“蚂蚁系统(Ant system,简称AS)”, 并用该法求解旅行商问题,获得了较好的效果。 2、发展——后来,提出者及许多研究者对该算法作了各种 改进,将其应用于更为广泛的领域,如图着色问题、二次分 配问题、工件排序问题、车辆路径问题、车间作业调度问题、 网络路由问题、大规模集成电路设计等。近些年来,M.Dorigo 等人把蚂蚁算法进一步发展成一种通用的优化技术“蚁群优化 (Ant Colony Optimization,简称ACO)”,并将所有符合ACO 框架的算法称为“蚁群优化算法(ACO algorithm)”。 3、展望——初步的研究结果已显示出ACO算法在求解复杂 优化问题,特别是离散优化问题方面的优越性。虽然严格的 理论基础尚未奠定,但从当前的应用效果来看,此算法具有 光明的发展前景。
蚂蚁 2、蚂蚁以贪婪方式选择下一步要到达的状态。 行为 3、蚂蚁按信息素强度选择下一步要到达的状态。
4、蚂蚁按信息素强度和城市间距离选择下一步要 到达的状态 。
五、蚁群算法与遗传、模拟退火算法的比较
实验结果表明:
1、蚁群算法所找出的解的质量最高,遗传 算法次之,模拟退火算法最低。
2、蚁群算法的收敛速度最快,遗传算法次 之,模拟退火算法最慢。蚁群算法之所以 能够快速收敛到全局最优解,是因为该算 法的个体之间不断进行信息交流和传递。 单个个体容易收敛于局部最优,多个个体 通过合作可以很快地收敛于解空间的最优 解的附近。
蚁 群 优 化 算 法
(ACO算法)
一、概述 二、蚂蚁系统(AS) 三、算例 四、改进的ACO算法
一、概述
(一)算法背景——蚁群的自组织行为特征
1、高度结构化的组织——虽然蚂蚁的个体行为极其 简单,但由个体组成的蚁群却构成高度结构化的社会 组织,蚂蚁社会的成员有分工,有相互的通信和信息 传递。 2、自然优化——蚁群在觅食过程中,在没有任何提示 下总能找到从蚁巢到食物源之间的最短路径;当经过的 路线上出现障碍物时,还能迅速找到新的最优路径。 3、信息正反馈——蚂蚁在寻找食物时,在其经过的路 径上释放信息素(外激素)。蚂蚁基本没有视觉,但能 在小范围内察觉同类散发的信息素的轨迹,由此来决定 何去何从,并倾向于朝着信息素强度高的方向移动。 4、自催化行为——某条路径上走过的蚂蚁越多,留下 的信息素也越多(随时间蒸发一部分),后来蚂蚁选择 该路径的概率也越高。
(六)AS算法的优点与不足 较强的鲁棒性——稍加修改即可应用 于其他问题。(鲁棒性就是系统的健壮性 ,
优点
用以表征控制系统对特性或参数摄动的不敏 感性。)
分布式计算——本质上具有并行性。
易于与其他启发式算法结合。 不足 一般需要较长的搜索时间。 容易出现停滞现象。
三、算例——5个点的货郎担问题
参数设置:
mn 1, 1 0.5
ij 0 2
Q 100
四、改进的蚁群优化算法
▲最优解保留策略蚂蚁系统(带精 英策略的蚂蚁系统ASelite) ▲蚁群系统(ACS)
改进的 蚂蚁算法
▲最大-最小蚂蚁系统(MMAS) ▲基于优化排序的蚂蚁系统 (ASrank)
▲最优最差蚂蚁系统(BWAS)
k ij ——第 k 只蚂蚁在本次迭代中留在边 i, j
上的信息素量;
——信息素蒸发(或挥发)系数,
1 ——持久性(或残留)系数, 0 1 ;
Pijk (t ) ——时刻 t 蚂蚁 k 由城市 i 转移到城市 j 的 概率(转移概率);
tabu ——蚂蚁 k 的禁忌表。 k
▲一种新的自适应蚁群算法(AACA) ▲基于混合行为的蚁群算法(HBACA)
(一)带精英策略的蚂蚁系统 ASelite
特点——在信息素更新时给予当前最优解以额 外的信息素量,使最优解得到更好的利用。找 到全局最优解的蚂蚁称为“精英蚂蚁”。
ij t n 1 ij t ij ij
(五)最优最差蚂蚁系统 BWAS
特点:主要是修改了ACS中的全局更新公式,增加 对最差蚂蚁路径信息素的更新,对最差解进 行削弱,使信息素差异进一步增大。
(六)一种新的自适应蚁群算法 AACA
特点:将ACS中的状态转移规则改为自适应伪随机 比率规则,动态调整转移概率,以避免出现 停滞现象。 说明:在ACS的状态转移公式中, q0 是给定的常数; q0 在AACA中, 是随平均节点分支数ANB而变 化的变量。ANB较大,意味着下一步可选的城市较 多,q0 也变大,表示选择信息素和距离最好的边的 可能性增大;反之减小。
◆有限时间内答案的合理性——由贪婪 式搜索模式决定,使能在搜索过程的早期 就找到可以接受的较好解。
二、蚂蚁系统(AS算法)——最早的ACO算法
(一)算法基本思想(以旅行商为例说明) 1、根据具体问题设置多只蚂蚁,分头并行搜 索。 2、每只蚂蚁完成一次周游后,在行进的路上 释放信息素,信息素量与解的质量成正比。 3、蚂蚁路径的选择根据信息素强度大小(初 始信息素量设为相等),同时考虑两点之间的距 离,采用随机的局部搜索策略。这使得距离较短 的边,其上的信息素量较大,后来的蚂蚁选择该 边的概率也较大。
特点
规则1和2都是为了使搜索过程更具有指导性,即 使蚂蚁的搜索主要集中在当前找出的最好解邻域内。规 则3则是为了使已选的边对后来的蚂蚁具有较小的影响 力,以避免蚂蚁收敛到同一路径。
(三)最大最小蚂蚁系统 MMAS
特点
1、每次迭代后,只对最优解所属路径上的信 息素更新。
2、对每条边的信息素量限制在范围 min , max 内,目的是防止某一条路径上的信息素量远 大于其余路径,避免过早收敛于局部最优解。
Q k (i , 若蚂蚁 在本次周 游中经过边, j ) k ij Lk 0, 否则
Q ——正常数,
Lk ——蚂蚁 k 在本次周游中所走路径的长度。
开始时,令 ij 0 C
(四)算法步骤
1、初始化参数:开始时每条边的信息素量都相等。 ij (0) 0 ij (0) C 2、将各只蚂蚁放置各顶点,禁忌表为对应的顶点。 3、取1只蚂蚁,计算转移概率 Pijk (t ),按轮盘赌的方式 选择下一个顶点,更新禁忌表,再计算概率,再选 择顶点,再更新禁忌表,直至遍历所有顶点1次。 k 4、计算该只蚂蚁留在各边的信息素量 ij ,该蚂蚁 死去。 5、重复3~4,直至 m只蚂蚁都周游完毕。 6、计算各边的信息素增量 ij 和信息素量 ij (t n) 。 7、记录本次迭代的路径,更新当前的最优路径,清空 禁忌表。 8、判断是否达到预定的迭代步数,或者是否出现停滞 现象。若是,算法结束,输出当前最优路径;否, 转2,进行下一次迭代。
Q ——正常数,
Lk ——蚂蚁 k
在本次周游中所走路径的长度。
开始时, ij 0 C 令
(三)特点
◆是一种基于多主体的智能算法,不是 单个蚂蚁行动,而是多个蚂蚁同时搜索, 具有分布式的协同优化机制。 ◆本质上属于随机搜索算法(概率算法), 具有概率搜索的特征。 ◆是一种全局搜索算法,能够有效地避免 局部最优。
(四)优点
◆求解问题的快速性——由正反馈机制 决定; ◆全局优化性——由分布式计算决定, 避免蚁群在寻优空间中过早收敛;
D 10 E 2
m 参数设置: 5, 1, 1, 0.5, Q 100, ij (0) 2
τ ij t α ηij t β X , 如 果j J k i α β k Y pij t τ is t ηis t sJ k i 0 , 否 则
讨
论
1、对已学过的算法作出某种改进。 2、介绍自学的一种新的算法。 3、查阅文献,介绍某算法在某领域的 一个应用。ቤተ መጻሕፍቲ ባይዱ
4、应用某算法解决一个实际问题。
算 例 A
A
已知资料表
B 2 0 1 4 7 C 10 2 0 3 5 D 8 5 3 0 1 E 3 7 6 2 0 A B C 0 1 9
B
E
C
D
4、每只蚂蚁只能走合法路线(经过每个城市 1次且仅1次),为此设置禁忌表来控制。 5、所有蚂蚁都搜索完一次就是迭代一次,每 迭代一次就对所有的边做一次信息素更新,原 来的蚂蚁死掉,新的蚂蚁进行新一轮搜索。 6、更新信息素包括原有信息素的蒸发和经过 的路径上信息素的增加。 7、达到预定的迭代步数,或出现停滞现象 (所有蚂蚁都选择同样的路径,解不再变化), 则算法结束,以当前最优解作为问题的最优解。
(三)计算公式
k 1、转移概率 pij t 计算公式:
τ ij t α ηij t β , 如 果j J k i α β k pij t τ is t ηis t sJ k i 0 , 否 则
1 ij d ij
当所有蚂蚁完成1次周游后,各路径上的信息 素为: n) (1 ) ij (t ) ij ij (t
k ij Δτ ij k 1 m
Q k (i , 若蚂蚁 在本次周 游中经过边, j ) k ij Lk 0, 否则
(七)基于混合行为的蚁群算法 HBACA
特点:按蚂蚁的行为特征将蚂蚁分成4类,称为4个子蚁 群,各子蚁群按各自的转移规则行动,搜索路径,每迭 代一次,更新当前最优解,按最优路径长度更新各条边 上的信息素,如此直至算法结束。
蚂蚁行为——蚂蚁在前进过程中,用以决定其下一步移 动到哪个状态的规则集合。
1、蚂蚁以随机方式选择下一步要到达的状态。
(二)参数含义及符号
m ——蚂蚁数量;
k ——蚂蚁编号;
t ——时刻; n ——城市数;
d ij ——城市 i, j 之间的距离;
ij ——启发式因子(能见度),反映蚂蚁由
ij ——边 i, j 上的信息素量;
城市 i 转移到城市 j 的启发程度;
ij ——本次迭代边i, j 上的信息素增量;
Q , 若边 ij 是当前最优解的一部分 Δτ Lgb 0, 否则
ij
Δτ ij ——精英蚂蚁在边 ij ——精英蚂蚁个数;
上增加的信息素量;
Lgb
——当前全局最优解路径长度。
(二)蚁群系统 ACS
1、状态转移规则——伪随机比率规则 设 q0 (0,1) 为常数, q (0,1) 为随机数, 如果 q q0 ,则蚂蚁转移的下一座城市是使 [τ ij (t )]α [ηij (t )]β 取最大值的城市;若 q q0 , 仍按转移概率确定。 一般, q0 取值较大。 2、全局更新规则——只有精英蚂蚁才允许释放 信息素,即只有全局最优解所属的边才增加 信息素。 3、局部更新规则——蚂蚁每次从城市 i 转移到 城市 j 后,边 i, j 上的信息素适当减少。
关于 min , max 的取值,没有确定的方法,有的 书例子中取为0.01,10;有的书提出一个在最大 值给定的情况下计算最小值的公式。
(四)基于优化排序的蚂蚁系统 ASrank
特点:每次迭代完成后,蚂蚁所经路径由小到大排序, 并根据路径长度赋予不同的权重,路径越短权重越大。 k 信息素更新时对 ij 考虑权重的影响。
——信息素的相对重要程度;
——启发式因子的相对重要程度;
J k i ——蚂蚁
k 下一步允许选择的城市集合。
1 d ij
2、启发式因子计算公式:ij
3、信息素计算公式
当所有蚂蚁完成1次周游后,各路径上的信息素为:
ij (t n) (1 ) ij (t ) ij
(二)算法的产生与发展
1、产生——受蚁群觅食行为启发,意大利学者M.Dorigo 于1991年在其博士论文中首次系统地提出一种基于蚂蚁种群 的新型智能优化算法“蚂蚁系统(Ant system,简称AS)”, 并用该法求解旅行商问题,获得了较好的效果。 2、发展——后来,提出者及许多研究者对该算法作了各种 改进,将其应用于更为广泛的领域,如图着色问题、二次分 配问题、工件排序问题、车辆路径问题、车间作业调度问题、 网络路由问题、大规模集成电路设计等。近些年来,M.Dorigo 等人把蚂蚁算法进一步发展成一种通用的优化技术“蚁群优化 (Ant Colony Optimization,简称ACO)”,并将所有符合ACO 框架的算法称为“蚁群优化算法(ACO algorithm)”。 3、展望——初步的研究结果已显示出ACO算法在求解复杂 优化问题,特别是离散优化问题方面的优越性。虽然严格的 理论基础尚未奠定,但从当前的应用效果来看,此算法具有 光明的发展前景。
蚂蚁 2、蚂蚁以贪婪方式选择下一步要到达的状态。 行为 3、蚂蚁按信息素强度选择下一步要到达的状态。
4、蚂蚁按信息素强度和城市间距离选择下一步要 到达的状态 。
五、蚁群算法与遗传、模拟退火算法的比较
实验结果表明:
1、蚁群算法所找出的解的质量最高,遗传 算法次之,模拟退火算法最低。
2、蚁群算法的收敛速度最快,遗传算法次 之,模拟退火算法最慢。蚁群算法之所以 能够快速收敛到全局最优解,是因为该算 法的个体之间不断进行信息交流和传递。 单个个体容易收敛于局部最优,多个个体 通过合作可以很快地收敛于解空间的最优 解的附近。
蚁 群 优 化 算 法
(ACO算法)
一、概述 二、蚂蚁系统(AS) 三、算例 四、改进的ACO算法
一、概述
(一)算法背景——蚁群的自组织行为特征
1、高度结构化的组织——虽然蚂蚁的个体行为极其 简单,但由个体组成的蚁群却构成高度结构化的社会 组织,蚂蚁社会的成员有分工,有相互的通信和信息 传递。 2、自然优化——蚁群在觅食过程中,在没有任何提示 下总能找到从蚁巢到食物源之间的最短路径;当经过的 路线上出现障碍物时,还能迅速找到新的最优路径。 3、信息正反馈——蚂蚁在寻找食物时,在其经过的路 径上释放信息素(外激素)。蚂蚁基本没有视觉,但能 在小范围内察觉同类散发的信息素的轨迹,由此来决定 何去何从,并倾向于朝着信息素强度高的方向移动。 4、自催化行为——某条路径上走过的蚂蚁越多,留下 的信息素也越多(随时间蒸发一部分),后来蚂蚁选择 该路径的概率也越高。
(六)AS算法的优点与不足 较强的鲁棒性——稍加修改即可应用 于其他问题。(鲁棒性就是系统的健壮性 ,
优点
用以表征控制系统对特性或参数摄动的不敏 感性。)
分布式计算——本质上具有并行性。
易于与其他启发式算法结合。 不足 一般需要较长的搜索时间。 容易出现停滞现象。
三、算例——5个点的货郎担问题
参数设置:
mn 1, 1 0.5
ij 0 2
Q 100
四、改进的蚁群优化算法
▲最优解保留策略蚂蚁系统(带精 英策略的蚂蚁系统ASelite) ▲蚁群系统(ACS)
改进的 蚂蚁算法
▲最大-最小蚂蚁系统(MMAS) ▲基于优化排序的蚂蚁系统 (ASrank)
▲最优最差蚂蚁系统(BWAS)
k ij ——第 k 只蚂蚁在本次迭代中留在边 i, j
上的信息素量;
——信息素蒸发(或挥发)系数,
1 ——持久性(或残留)系数, 0 1 ;
Pijk (t ) ——时刻 t 蚂蚁 k 由城市 i 转移到城市 j 的 概率(转移概率);
tabu ——蚂蚁 k 的禁忌表。 k
▲一种新的自适应蚁群算法(AACA) ▲基于混合行为的蚁群算法(HBACA)
(一)带精英策略的蚂蚁系统 ASelite
特点——在信息素更新时给予当前最优解以额 外的信息素量,使最优解得到更好的利用。找 到全局最优解的蚂蚁称为“精英蚂蚁”。
ij t n 1 ij t ij ij
(五)最优最差蚂蚁系统 BWAS
特点:主要是修改了ACS中的全局更新公式,增加 对最差蚂蚁路径信息素的更新,对最差解进 行削弱,使信息素差异进一步增大。
(六)一种新的自适应蚁群算法 AACA
特点:将ACS中的状态转移规则改为自适应伪随机 比率规则,动态调整转移概率,以避免出现 停滞现象。 说明:在ACS的状态转移公式中, q0 是给定的常数; q0 在AACA中, 是随平均节点分支数ANB而变 化的变量。ANB较大,意味着下一步可选的城市较 多,q0 也变大,表示选择信息素和距离最好的边的 可能性增大;反之减小。
◆有限时间内答案的合理性——由贪婪 式搜索模式决定,使能在搜索过程的早期 就找到可以接受的较好解。
二、蚂蚁系统(AS算法)——最早的ACO算法
(一)算法基本思想(以旅行商为例说明) 1、根据具体问题设置多只蚂蚁,分头并行搜 索。 2、每只蚂蚁完成一次周游后,在行进的路上 释放信息素,信息素量与解的质量成正比。 3、蚂蚁路径的选择根据信息素强度大小(初 始信息素量设为相等),同时考虑两点之间的距 离,采用随机的局部搜索策略。这使得距离较短 的边,其上的信息素量较大,后来的蚂蚁选择该 边的概率也较大。
特点
规则1和2都是为了使搜索过程更具有指导性,即 使蚂蚁的搜索主要集中在当前找出的最好解邻域内。规 则3则是为了使已选的边对后来的蚂蚁具有较小的影响 力,以避免蚂蚁收敛到同一路径。
(三)最大最小蚂蚁系统 MMAS
特点
1、每次迭代后,只对最优解所属路径上的信 息素更新。
2、对每条边的信息素量限制在范围 min , max 内,目的是防止某一条路径上的信息素量远 大于其余路径,避免过早收敛于局部最优解。