- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(蚁群算法)
定义: 有n个独立的概率事件,分别记为:事件1,事件2,…,事件n,从这些概率事件中选择一个事件当作执行事件的步骤如下: ① 计算n个独立的事件发生的概率,分别用P1,P2,…,Pn表示; ②用P0?,P1?,P2?,…,Pn?对区间[0,1]进行分割,其中,P0?=0,Pi?= Pi-1?+ Pi,i=1,2,?,n,显然,P1+ P2+…+ Pn=1; ③产生一个0到1之间的随机数p,如果Pi-1??p? Pi?,那么选择事件i当作执行事件;这一过程称为随机比例规则。 本文工作 2 2.7 随机比例规则 Algorithm 1 Ant Probability Selection Algorithm(APSA) Input 节点vi,蚂蚁k Output 蚂蚁k的下一跳节点 1: Begin 2: 计算节点vi的前向邻居节点集合Nf(vi) 3: For j=1 to |Nf(vi)| 4: 根据公式(4-10)计算蚂蚁k选择节点vj作为下一跳节点的概率Pijk 5: End For 6: 定义Pj?,j=0 to | Nf(vi)|,令P0?=0 7: For j=1 to |Nf(vi)| 8: Pj?=Pj-1?+Pijk 9: End For 10:产生0到1之间的随机数p 11:For j=1 to |Nf(vi)| 12: If p? Pj? 13: 蚂蚁k选择邻居节点vj作为下一跳节点 14: Exit For 15: End If 16: End For 17: Output 节点vj 18: End 本文工作 2 2.8 蚂蚁概率选择算法 蚂蚁概率选择算法(APSA)是蚂蚁如何按照状态转移概率,从前向邻居节点集合中选择下一跳节点的方法,其中用到了随机比例规则。 本文工作 2 2.9 ELACO算法 ELACO的主要步骤: 计算前向邻居节点集合 按照APSA选择下一跳节点 信息素更新 本文工作 2 2.9 ELACO算法 Algorithm 2 ELACO Input Source ID,Sink Node,m; Output 最优路径; 1: Begin 2: Initialization Nc=0, Nc-max, ?ij(Nc), ??ij(t)=0 3: While ttc-max do 4: For k=1 to m do 5: 节点vi根据公式(4-9)计算前向邻居节点集合Nf(vi) 6: If Nf(vi)=? 7: 蚂蚁返回上一跳节点,并且将节点vi标记为无效节点 8: End If 9: 蚂蚁k按照算法APSA在集合Nf(vi)中选择下一跳节点 10: If node vi is the Sink node then 11: 按照公式(4-13)计算??k(t) 12: 按照公式(4-14)计算?ij(t) 13: 按照公式(4-15)计算?ij(t+1) 14: End If 15: End For 16: t?t+1 17: End While 18: Return 最优路径 19: End 定理3:算法ELACO的时间复杂度为O(t?|V|2?m),其中,t为循环次数,|V|为网络中的节点个数,m为蚂蚁个数。 证明:算法ELACO中,初始化每条路径上的信息素浓度、节点能量及其它参数所需要的时间复杂度为O(|V|2+m),|V|为G=(V,E)中的节点数,m为网络中的蚂蚁数;设置蚂蚁禁忌表所执行的次数为m,其时间复杂度为O(m)。每只蚂蚁单独寻找路径的时间复杂度为O(|V|2?m);信息素浓度更新的时间复杂度为O(|V|2);判断算法是否达到终止条件(达到设定的最大循环次数tc-max)的时间复杂度为O(|V|?m)。所以,算法ELACO执行一次循环的时间复杂度为O(|V|2+m+m+|V|2?m+|V|2+|V|?m)。当|V|足够大时,低次幂的影响可以忽略不计,则算法ELACO在执行t次循环后的时间复杂度为O(t?|V|2?m)。 本文工作 2 2.10 时间复杂度 从算法执行时间和蚂蚁数量两个方面来证明算法ELACO的收敛性。基于时间的收敛分为值收敛和解收敛两个方面。 值收敛,即当迭代时间趋于无穷时,算法能找到一个最优解的概率趋近1。 解收敛,即当迭代时间趋于无穷时,算法中任意一只蚂蚁找到最优解的概率趋近于1。 2 本文工作
文档评论(0)