发明内容
针对上述问题,本发明提供一种蚁群算法及电力通信网通信业务智能调配方法,提出了一种改进的蚁群算法,有效避免了现有蚁群算法中杂乱搜索和容易导致局部最优的缺陷,提高了电力通信网业务路由调配能力和业务保障能力,节约了路由分析和调配的成本。
为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
一种蚁群算法,其特征在于,包括如下步骤:
1)初始化:初始化蚁群算法的信息素浓度,迭代次数Ne=1;
2)判断迭代次数Ne是否达到最大迭代次数Ne_max,如果达到最大迭代次数则转到步骤8,否则转到步骤3;
3)放置蚂蚁;
4)蚂蚁寻路:蚂蚁寻找相邻近的未访问节点,通过计算状态转移概率,确定下一个节点,其中:
蚁群k(k=1,2,3......,n)在t时刻从当前节点i寻找下一个节点j时的状态转移概率为:
式中,allowed表示蚁群k(k=1,2,3......,n)下一步允许选择的节点集合,α是信息素启发式因子,β是期望启发式因子,τij(t)是t时刻节点i到节点j的信息素强度,τis(t)是t时刻节点i到节点s的信息素强度,启发式函数为:
dje(t)表示当前节点j到目的节点e的最小代价,γ是启发因子,用于区别启发式函数中已经实际付出的g(i)和将付出的最小代价h(i)对蚂蚁寻找路径的重要性,dij(t)表示节点i到节点j之间的链路长度,为启发式函数,含义参照
5)修改禁忌表:在蚂蚁寻找路径的过程中动态的修改禁忌表,已经访问过的节点避免重复访问;
6)判断蚂蚁是否遍历了所有节点,或者寻找到了目的节点,若是则执行步骤7,否则跳转到步骤4继续寻路;
7)信息素的更新:计算平均路径和最短路径,并根据信息素的更新机制对信息素进行更新;
8)输出最优解。
优选,步骤7)中,信息素的更新具体如下:
式中,表示蚁群k(k=1,2,3......,n)在t时刻从当前节点i寻找下一个节点i时产生的信息素增量值,Q表示的是信息素强度,l(xk(t))表示蚁群k(k=1,2,3......,n)在本次循环中所走的总路径长度,信息素强度Q与总路径长度l(xk(t))成反比例关系,权值参数λk(t)计算公式如下:
Lk(t)表示在本次循环中所走的路径长度,Laverage(t)表示平均路径长度,Lshortest(t)表示最短路径长度。
一种电力通信网通信业务智能调配方法,其特征在于,包括如下步骤:
步骤1、导入电力通信网的网络拓扑模型;
步骤2、输入起始节点和目标节点;
步骤3、采用权利要求1或2任意一项所述的蚁群算法进行网络拓扑分析,输出最优解路径;
步骤4、进行可行性分析,若满足要求,则根据步骤3获得的路径进行电力通信网通信业务智能调配;若不满足要求,则返回步骤3重新进行网络拓扑分析。
本发明的有益效果是:
(1)传统的蚁群算法,启发式函数ηij(t)只考虑了上一节点到当前节点所付出的代价,并没有考虑当前节点到目的节点的代价,改进后的蚁群算法则克服了这个缺点。
(2)传统的蚁群算法,信息素更新机制中,在蚁密模型和蚁量模型采用的是局部信息,即蚂蚁每走一步便立即更新路径上的信息素值。针对局部更新机制存在的缺点,改进后的算法采用全局更新机制的蚁周模型,同时引入权值参数λk(t),可根据每只蚂蚁寻找到的路径的优劣赋予不同的权值。根据权值的不同,对蚂蚁所走路径上的信息素浓度进行不同程度的更新,有效的改善了蚁群混合算法中的局部最优问题。
(3)提高了电力通信网业务路由调配能力和业务保障能力,节约了路由分析和调配的成本。
具体实施方式
下面结合附图和具体的实施例对本发明技术方案作进一步的详细描述,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
一种蚁群算法,如图1所示,包括如下步骤:
1)初始化:初始化蚁群算法的信息素浓度,迭代次数Ne=1;
2)判断迭代次数Ne是否达到最大迭代次数Ne_max,如果达到最大迭代次数则转到步骤8,否则转到步骤3;
3)放置蚂蚁;
4)蚂蚁寻路:蚂蚁寻找相邻近的未访问节点,通过计算状态转移概率,确定下一个节点。
传统的蚁群算法,在蚁群算法寻路算法中,蚁群k(k=1,2,3......,n)在t时刻从当前节点i寻找下一个节点j时的状态转移概率为:
其中,allowed表示蚁群k(k=1,2,3......,n)下一步允许选择的节点集合,α是信息素启发式因子,用于表征信息素重要程度的参数,反映了蚁群在运动过程中所积累的信息素在蚂蚁运动时所起的作用。β是期望启发式因子,用于表征启发函数重要程度的参数,反映了蚂蚁在运动过程中启发信息在蚂蚁选择路径中的受重视程度。
ηij(t)为启发式函数,其表达式如下所示:
式(2)中,dij(t)表示节点i到节点j之间的链路长度,它与ηij(t)成反比关系。因此,节点i到节点j之间的链路长度越短,则蚁群选择节点j的概率越大,即该启发式函数增加了蚁群向较优路径寻食的倾向性。ηis(t)的含义参照ηij(t)。τij(t)表示t时刻节点i到节点j的信息素强度,τis(t)的含义参照τij(t)。
在式(2)中,启发式函数ηij(t)只考虑了上一节点到当前节点所付出的代价,并没有考虑当前节点到目的节点的代价,借鉴A*算法的思想,在启发式函数ηij(t)中新增两个参数dje(t)和γ:dje(t)表示当前节点j到目的节点e的最小代价,启发因子γ用于区别启发式函数中已经实际付出的g(i)和将付出的最小代价h(i)对蚂蚁寻找路径的重要性。修正后的启发式函数如下所示:
将式(3)替换到式(1)中,得到修正后的概率转移公式,即蚁群k(k=1,2,3......,n)在t时刻从当前节点i寻找下一个节点j时的状态转移概率为:
式中,allowed表示蚁群k(k=1,2,3......,n)下一步允许选择的节点集合,α是信息素启发式因子,β是期望启发式因子,τij(t)是t时刻节点i到节点j的信息素强度,τis(t)是t时刻节点i到节点s的信息素强度,启发式函数为:
dje(t)表示当前节点j到目的节点e的最小代价,γ是启发因子,用于区别启发式函数中已经实际付出的g(i)和将付出的最小代价h(i)对蚂蚁寻找路径的重要性,dij(t)表示节点i到节点j之间的链路长度,为启发式函数,含义参照
5)修改禁忌表:在蚂蚁寻找路径的过程中动态的修改禁忌表,已经访问过的节点避免重复访问;
6)判断蚂蚁是否遍历了所有节点,或者寻找到了目的节点,若是则执行步骤7,否则跳转到步骤4继续寻路;
7)信息素的更新:计算平均路径和最短路径,并根据信息素的更新机制对信息素进行更新。
蚁群算法信息素更新机制中,表示蚁群k(k=1,2,3......,n)在t时刻从当前节点i寻找下一个节点j时产生的信息素增量值。传统的蚁群算法,其对信息素增量的更新方法研究出了三种模型,分别为蚁密模型、蚁周模型和蚁量模型。其中,蚁周模型采用的是全局信息,即蚂蚁寻找路径结束后更新所有路径上的信息素浓度。在蚁密模型和蚁量模型采用的是局部信息,即蚂蚁每走一步便立即更新路径上的信息素值。
针对局部更新机制存在的缺点,改进后的算法采用全局更新机制的蚁周模型,同时引入权值参数λk(t),可根据每只蚂蚁寻找到的路径的优劣赋予不同的权值。根据权值的不同,对蚂蚁所走路径上的信息素浓度进行不同程度的更新,有效的改善了蚁群混合算法中的局部最优问题。
在传统的蚁周模型中,的更新方式如下所示:
式中,Q表示的是信息素强度,是一个正的常数值,l(xk(t))表示蚁群k(k=1,2,3......,n)在本次循环中所走的总路径长度,从上式可见,信息素强度Q与路径总长度l(xk(t))成反比例关系。
改进后的更新机制将判断每只蚂蚁每次所走路径是否接近最优路径,当蚂蚁所寻找的路径很接近最优解时就相应的增加信息素浓度,加快收敛的速度;如果蚂蚁搜索到的解的质量不高或者很差时就不对该路径的信息素浓度更新,或者只赋予一个很小的信息素增量值,避免对蚂蚁寻找最短路径造成干扰。
改进后的算法采用每次蚂蚁所走路径的长度与平均路径长度进行比较来寻找最优解:若所走路径长度大于平均值,则说明有偏离最优解的趋势,这时将赋予一个较小的权值或0;若所走路径长度小于平均值,则说明有朝向最优解的趋势,这时将赋予一个较大的权值。因此,权值参数λk(t)表达式如下:
Lk(t)表示在本次循环中所走的路径长度,Laverage(t)表示平均路径长度,Lshortest(t)表示最短路径长度。
则改进后的蚁群算法信息素增量的更新机制变为:
式中,表示蚁群k(k=1,2,3......,n)在t时刻从当前节点i寻找下一个节点j时产生的信息素增量值,Q表示的是信息素强度,l(xk(t))表示蚁群k(k=1,2,3......,n)在本次循环中所走的总路径长度,信息素强度Q与总路径长度l(xk(t))成反比例关系。
改进后的信息素更新机制采用全局更新避免了局部更新容易造成的局部最优现象,同时通过引入权值可智能的根据蚁群所寻路径的解的质量不同赋予不同的值,有效加快了蚁群向最优解收敛的速度。
8)输出最优解。
相对应的,一种电力通信网通信业务智能调配方法,包括如下步骤:
步骤1、导入电力通信网的网络拓扑模型;
步骤2、输入起始节点和目标节点;
步骤3、采用上述的蚁群算法进行网络拓扑分析,输出最优解路径;
步骤4、进行可行性分析,若满足要求,则根据步骤3获得的路径进行电力通信网通信业务智能调配;若不满足要求,则返回步骤3重新进行网络拓扑分析。
下面结合具体实施例进行说明:
利用Waxman拓扑生成器,随机生成25个节点的网络拓扑模型,设置节点1为起始节点,节点23为目标节点。在此拓扑模型的基础上运行传统的蚁群算法,其经过迭代计算后得到的最短路径及收敛曲线图分别如图2和3所示,其中,图2中的加粗黑色线条即为传统的蚁群算法最终找到的最优路径。
在相同的网络拓扑模型上运行改进后的算法,其经过迭代计算后得到的最短路往以及收敛曲线分别如图4和5所示,其中,图4中的加粗黑色线条即为改进后的算法最终寻找的最优路径。
从附图对比可见,改进后的算法其搜索到的路径明显优于传统的算法。同时,改进后的算法在最优解附近出现了小幅波动,充分体现了解空间的多样性,可有效避免局部最优解的出现,同时由于较优解的权值大于较差解的权值,故不会影响到算法的收敛速度,仍然可较快得到最最优解。
为验证实际算法效率,本文使用拓扑生成器随机依次生成网元数量为10、20、30、40、50、60、70、80、90、100的拓扑图,并分别使用Dijkstra算法、Floyd算法和改进算法依次对这些拓扑图求解,最后计算每个算法对不同网元数量的拓扑图求解所耗平均时间。
图中为了比较的统一性,将蚁群算法迭代次数和蚂蚁数量的取值分别固定为50和60。从图6中可以看出,使用Dijkstra算法和Floyd算法求解任意点到点的单播路由时所耗时间相差不大。改进算法与Dijkstra算法和Floyd算法比较,在网元数量较少时耗时比较长,而当网元数量逐渐增多时改进算法的优越性就体现出来,因为Dijkstra算法和Floyd算法需要对所有来访问的节点进行权值更新,当网元数量很多时,计算量就比较大,从而导致算法的计算时间比较长。再加上改进算法是一种智能仿生算法,它具有快速的并行计算能力和正反馈机制,能够以信息素的形式对多个参数进行统一处理.这些是Dijkstra算法和Floyd算法所不具有的。因此,在求解多约束条件下的通信网络业务智能调配时使用改进的算法是非常有优势的。
本算法通过对于现有蚁群算法中启发式函数改进和权重系数的应用,实现对于电力通信网通信业务路由智能调配管理,有效避免了蚁群算法中杂乱搜索和容易导致局部最优的缺陷,提高了电力通信网业务路由调配能力和业务保障能力,节约了路由分析分析和调配的成本。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或者等效流程变换,或者直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。