《蚁群算法实验室》流程图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《蚁群算法实验室》流程图
蚁群算法计算主流程(该流程在用户控制下可在
没达到指定循环次数时停止或暂停)
:开始I
目前蚁群算法主要用在组合优化方面,基本蚁群算法的思路是这样的:
1. 在初始状态下,一群蚂蚁外出,此时没有信息素,那么各自会随机的选择一条路径。
2. 在下一个状态,每只蚂蚁到达了不同的点,从初始点到这些点之间留下了信息素,蚂蚁
继续走,已经到达目标的蚂蚁开始返回,与此同时,下一批蚂蚁出动,它们都会按照各条路径上信息素的多少选择路线(selection),更倾向于选择信息素多的路径走(当然也有随机性)。
3. 又到了再下一个状态,刚刚没有蚂蚁经过的路线上的信息素不同程度的挥发掉了(evaporation) ,而刚刚经过了蚂蚁的路线信息素增强(reinforcement) 。
然后又出动一批蚂蚁,重复第 2 个步骤。
每个状态到下一个状态的变化称为一次迭代,在迭代多次过后,就会有某一条路径上的信息素明
显多于其它路径,这通常就是一条最优路径。
关键的部分在于步骤 2 和3:
步骤 2 中,每只蚂蚁都要作出选择,怎样选择呢?
selection 过程用一个简单的函数实现:
蚂蚁选择某条路线的概率=该路线上的信息素辆有可选择路线的信息素之和
假设蚂蚁在i点,p(i,j)表示下一次到达j点的概率,而T (i,j表示ij两点间的信息素,则:P(i,j) = T (i,j)/ 刀T (i)
(如果所有可选路线的信息素之和刀T伸0,即前面还没有蚂蚁来过,概率就是一个[0,1]上的随机值,即随机选择一条路线)
步骤 3 中,挥发和增强是算法的关键所在(也就是如何数学定义信息素的)
evaporation 过程和reinforcement 过程定义了一个挥发因子,是迭代次数k 的一个函数
p (k=1 —lnk/ln(k+1)
最初设定每条路径的信息素T (i,j,0为相同的值
然后,第k+1 次迭代时,信息素的多少
对于没有蚂蚁经过的路线:T (i,j,k+1)= (1—p (k)) T (i,j,k显然信息素减少了
有蚂蚁经过的路线:T (i,j,k+1)= (1 —p (k)) T (i,j*) p (k)/|W| W为所有点的集合
为什么各个函数要如此定义,这个问题很难解释清楚,这也是算法的精妙所在。
如此定义信息素
的挥发和增强,以及路径选择,根据马尔可夫过程( 随机过程之一)能够推导出,在迭代了足够多次
以后,算法能够收敛到最佳路径。