tsp问题用蚁群算法java实现_TSP解决之道——蚁群算法

蚁群算法是一种仿生优化算法,源自蚂蚁觅食的行为。算法中,蚂蚁通过信息素进行路径选择,信息素积累越多的路径越可能被后续蚂蚁选择,形成正反馈机制。状态转移概率由信息素量和启发函数决定,信息素更新涉及挥发和增强。在解决旅行商问题等复杂优化问题时,蚁群算法表现出高效性。
摘要由CSDN通过智能技术生成

参考

蚁群算法原理与应用1-自然计算与群体智能

简介

1、蚁群算法(Ant Clony Optimization,ACO)是一种群智能算法,它是由一群无智能或有轻微智能的个体(Agent)通过相互协作而表现出智能行为,从而为求解复杂问题提供了一个新的可能性。

2、是一种仿生学的算法,是由自然界中蚂蚁觅食的行为而启发。(artificial ants;双桥实验)

3、运作机理:当一定路径上通过的蚂蚁越来越多时,其留下的信息素轨迹也越来越多,后来蚂蚁选择该路径的概率也越高,从而更增加了该路径的信息素强度,而强度大的信息素会吸引更多的蚂蚁,从而形成一种正反馈机制。

4、蚁群算法欧化过程中的两个重要原则:

a、蚂蚁在众多路径中转移路线的选择规则。

b、全局化信息素更新规则。信息素更新的实质就是人工蚂蚁根据真实蚂蚁在访问过的边上留下的信息素和蒸发的信息素来模拟真实信息素数量的变化,从而使得越好的解得到越多的增强。这就形成了一种自催化强化学习(Autocatalytic Reinforcement Learning)的正反馈机制。

ab344bfa45fa

ab344bfa45fa

原理

1、描述:蚂蚁数量m;城市之间的信息素矩阵pheromone;每次迭代的m个蚂蚁的最短路径    BestLength;最佳路径BestTour。                                                                                                                                     每只蚂蚁都有:禁忌表(Tabu)存储已访问过的城市,允许访问的城市表(Allowed)存储还可以访问的城市,矩阵(Delta)来存储它在一个循环(或者迭代)中给所经过的路径释放的信息素。

2、状态转移概率:在搜索过程中,蚂蚁根据各条路径上的信息量及路径的启发信息来计算状态转移概率。在t时刻蚂蚁k由元素(城市)i转移到元素(城市)j的状态转移概率:

ab344bfa45fa

τij (t) :时刻路径(i, j)上的信息量。ηij=1/dij :启发函数。

α为信息启发式因子,表示轨迹的相对重要性,反映了蚂蚁在运动过程中积累的信息在蚂蚁运动时所起的作用,其值越大,则该蚂蚁越倾向于选择其它蚂蚁经过的路径,蚂蚁之间的协作性越强;

β为期望启发式因子,表示能见度的相对重要性,反映蚂蚁在运动过程中启发信息在蚂蚁选择路径中的受重视程度,其值越大,则该状态状态转移概率越接近于贪心规则;

3、息素更新规则:

ab344bfa45fa

ρ表示信息素挥发系数;Δτij(t)表示本次循环中路径(i, j)上的信息素增量,初始时刻Δτij(t) =0。

4、三种信息增量计算方法:

ab344bfa45fa

第一种

ab344bfa45fa

第二种

ab344bfa45fa

第三种

区别:第一种利用了全局信息,在走一圈后更新。二、三中都利用的是局部信息。通常使用第一种。

5、TSP中流程图

ab344bfa45fa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值