一种构建若干棵深度和度数约束最小生成树的算法的制作方法

文档序号:16309737发布日期:2018-12-19 05:13阅读:714来源:国知局
一种构建若干棵深度和度数约束最小生成树的算法的制作方法

本发明涉及网络通信技术领域,特别涉及一种构建若干棵深度和度数约束最小生成树的算法。

背景技术

随着通讯技术的迅速发展,对通信质量、网络服务质量的要求越来越高。无线内容分发网络可以用内容分发树来表示,若将内容传递到网络中的每个移动设备所需要的成本越低,那么网络服务的质量就越高,这与最小生成树的构建方法是一致的。将无线内容分发网络的拓扑构建为以基站和wi-fi接入点为根的若干棵最小生成树。生成树中任意节点的度数对应于相邻设备的数量,生成树的深度表示叶节点至基站合wi-fi接入点的最大条数。生成树的度数越大,服务性节点消耗的电量越快,容易导致内容分发的中断;生成树的深度越高,即跳数越长,从内容服务器接收数据流的迟延越高。因而需要对生成树的度数和深度进行限制。

无线内容分发网络的树形拓扑结构需要同时约束度数和深度,现有的基于克鲁斯卡尔策略的深度和度数约束最小生成树算法,由于该算法一次仅能生成一棵深度和度数约束的最小生成树,不适用于无线内容分发网络的拓扑结构所要求的构建以基站和wi-fi接入点为根的若干棵最小生成树。



技术实现要素:

本发明克服了基于克鲁斯卡尔策略的度数和深度的约束最小生成树算法的技术缺陷,提供了一种构建若干棵深度和度数约束最小生成树的算法,填补了无线内容分发网络的拓扑结构所要求的构建以基站和wi-fi接入点为根的若干棵最小生成树的空白。深度以及度数约束最小生成树问题是np完全问题。

为解决上述技术问题,本发明的技术方案如下:

一种构建若干棵深度和度数约束最小生成树的算法,采用启发式算法产生初始近似解,包括如下步骤:

s1:以基站和wi-fi接入点作为根节点,加入到生成树中;

s2:在剩余服务性节点中随机选择一个节点v,从当前生成树符合深度及度数约束的节点中,选择与节点v相连边权值最小的节点u,将边(u,v)加入当前生成树;

s3:循环执行s2,直至全部服务性节点加入到当前生成树,结束循环,输出以基站和wi-fi接入点为根的若干棵深度和度数约束最小生成树。

构建若干棵深度和度数约束最小生成树的算法还包括步骤s4,s4为采用禁忌搜索算法优化s3生成的最小生成树,s4包括如下流程:

s4.1:以s3的输出作为输入;

s4.2:设定最大迭代步数,禁忌表设为空;编码方式为设置一个n位的序列,序列用于表示n个节点的生成树,序列中每一个元素的取值范围是[1,n]。

s4.3:判断是否满足最大迭代步数,若是,输出当前解;否则,执行s4.4;

s4.4:生成当前解的候选解集,计算目标函数值;

s4.5:判断是否满足渴望水平,若是,则更新当前解,更新历史最优解,更新禁忌表,返回流程s4.3;否则,选择候选解集中不被禁忌的最优解作为当前解,更新禁忌表,返回流程s4.3。

构建若干棵深度和度数约束最小生成树的算法还包括步骤s4’,s4’包括以下内容:采用模拟退火算法优化s3的解。具体的,s4’包括如下流程:

s4’.1:以s3的输出作为输入;

s4’.2:设定初始温度和终止温度;

s4’.3:设定内循环的次数;

s4’.4:产生一个领域解,计算目标函数的增量;

s4’.5:判断是否满足metropolis准则,若是,则将领域解作为当前解;否则判断是否达到内循环次数,若是,则执行s4’.6;否则,返回流程s4’.4;

s4’.6:执行降温函数;

s4’.7:判断是否达到终止温度,若是,则输出当前解,结束s4’;否则,返回流程s4’.3。

降温函数通过下式进行表达:t(n+1)=t(n)·r,其中t(n+1)表示下一刻的温度,t(n)表示当前时刻的温度,r表示降温系数,降温系数r的取值范围为(0.95,0.99)

模拟退火算法还包括存储历史最优解,存储环节用以将存储历史最优解。

与现有技术相比,本发明技术方案的有益效果是:

克服了现有技术的一次仅能生成一棵深度和度数约束的最小生成树的技术缺陷,提供了一种在给定的图中一次能建构若干棵深度和度数约束的最小生成树的算法。首先采用启发式算法产生初始解,启发式算法的时间复杂度为o(n2);然后用智能优化算法(禁忌搜索算法或模拟退火算法)对启发式算法产生的初始解进一步实施优化。实验表明该算法能高效地为无线内容分发网络构建高质量的拓扑结构。

附图说明

图1为本发明的启发式算法流程图;

图2为禁忌搜索算法流程图;

图3为模拟退火算法流程图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1:

如图1所示,一种构建若干棵深度和度数约束最小生成树的算法,采用启发式算法产生初始近似解,包括如下步骤:

s1:以基站和wi-fi接入点作为根节点,加入集合u中,转到s2;

s2:如果所有服务性节点均已访问转到s5,否则转到s3;

s3:在未访问服务性节点中随机选择一个节点v,从u中选择与v相连权值最小的节点u,并且deg[v]>0;将边(u,v)加入当前生成树,将v标记为已访问节点;dep[v]=dep[u]+1,deg[u]=deg[u]-1,deg[v]=deg[v]-1;如果dep[v]<p且deg[v]>0,则转到s4,否则转到s2;

s4:将节点v加入集合u,转到s2;

s5:输出以基站和wi-fi接入点为根的若干棵深度和度数约束最小生成树。

在图1中,节点集合b表示若干的bs和ap,bs表示基站,ap表示wi-fi接入点,集合u表示当前可供连接的节点。dep[]表示每个节点到根节点的深度,deg[]表示每个节点的剩余度数,初始化每个节点的剩余度数为d(d为大于0的整数常量),初始化每个节点的深度为0,深度约束为p,即每个节点的深度不超过p(p为大于0的整数常量)。当根节点有若干个的时候,就可以生成若干棵深度和度数约束的最小生成树。

如图2所示,实施例1还包括步骤s6,采用禁忌搜索算法优化s5的解,s6包括如下流程:

s6.1:以s5的输出作为输入;

s6.2:设定最大迭代步数,禁忌表设为空;

s6.3:判断是否满足最大迭代步数,若是,输出当前解;否则,执行s6.4;

s6.4:生成当前解的候选解集,计算目标函数值;

s6.5:判断是否满足渴望水平,若是,则更新渴望水平,更新当前解,更新历史最优解,更新禁忌表,返回流程s6.3;否则,选择候选解集中不被禁忌的最好解作为当前解,更新禁忌表,返回流程s6.3。

采用禁忌搜索算法来优化启发式算法生成的若干棵最小生成树。当根节点有若干个的时候,就可以生成若干棵深度和度数约束的最小生成树。

流程s6.2中将最大迭代次数设置为40;流程s6.2还包括,编码方式为设置一个n位的序列,序列用于表示n个节点的生成树,序列中每一个元素的取值范围是[1,n]。设置序列编码是禁忌搜索算法的第一步,序列是一个编码方式。目标函数值为解码树的权值,对目标函数直接作为适值函数,目标函数值是要优化的目标,在这里就是要使最小生成树的权值最小。

对于流程s6.2中,禁忌表是用来防止搜索过程中出现循环,本禁忌算法将禁忌表的大小设置为20,禁忌表通常记录最近接受的20次移动,在20次之内禁止再次被访问;过了20次之后,这些移动从禁忌表中退出,又可以重新被访问。

对于s6.4,移动是从当前解产生新解的途径,本禁忌搜索算法采用两两交换式的移动规则,从当前解可以进行的所有移动构成领域。每一次的搜索都是基于当前解的候选解集。在发明中候选解集为领域的真子集,即只扫描领域的一部分来构成候选解集,本算法将候选解集的大小设为12。

在s6.5中,渴望水平是指在某些特定的条件下,不管某个移动是否在禁忌表中,都接受这个移动,满足这个移动的特定条件。

实施例2:

如图1所示,一种构建若干棵深度和度数约束最小生成树的算法,采用启发式算法产生初始近似解,包括如下步骤:

s1:以基站和wi-fi接入点作为根节点,加入集合u中,转到s2;

s2:如果所有服务性节点均已访问转到s5,否则转到s3;

s3:在未访问服务性节点中随机选择一个节点v,从u中选择与v相连权值最小的节点u,并且deg[v]>0;将边(u,v)加入当前生成树,将v标记为已访问节点;dep[v]=dep[u]+1,deg[u]=deg[u]-1,deg[v]=deg[v]-1;如果dep[v]<p且deg[v]>0,则转到s4,否则转到s2;

s4:将节点v加入集合u,转到s2;

s5:输出以基站和wi-fi接入点为根的若干棵深度和度数约束最小生成树。

在图1中,节点集合b表示若干的bs和ap,bs表示基站,ap表示wi-fi接入点,集合u表示当前可供连接的节点。dep[]表示每个节点到根节点的深度,deg[]表示每个节点的剩余度数,初始化每个节点的剩余度数为d(d为大于0的整数常量),初始化每个节点的深度为0,深度约束为p,即每个节点的深度不超过p(p为大于0的整数常量)。当根节点有若干个的时候,就可以生成若干棵深度和度数约束的最小生成树。

如图3所示,实施例2还包括步骤s6’,s6’包括以下内容:采用模拟退火算法优化s5的解,s6’包括如下流程:

s6’.1:以s5的输出作为输入;

s6’.2:设定初始温度和终止温度;

s6’.3:设定内循环的次数;

s6’.4:产生一个领域解,计算目标函数的增量;

s6’.5:判断是否满足metropolis准则,若是,则接受领域解为当前解;否则判断是否达到内循环次数,若是,则执行s6’.6;否则,返回流程s6’.4;

s6’.6:执行降温函数;

s6’.7:判断是否达到终止温度,若是,则输出当前解,结束s6’;否则,返回流程s6’.3。

s6’.6的降温函数采用下式:t(n+1)=t(n)·r,其中t(n+1)表示下一刻的温度,t(n)表示当前时刻的温度,r表示降温系数,降温系数r的取值范围为(0.95,0.99)。

metropolis准则是一种特殊的领域移动方法,领域移动分为无条件移动和有条件移动。如果新解的目标函数值小于当前解的目标函数值,则进行无条件移动;否则根据一定的概率进行有条件移动。

通过降温函数来控制温度的下降,降温函数采用t(n+1)=t(n)·r,其中降温系数r∈(0.95,0.99)。温度的大小决定着模拟退火算法进行全局搜索还是局部搜索。当温度很高时,模拟退火进行全局搜索;当温度很低时,模拟退火算法进行局部搜索。若温度下降过快则可能陷入局部最优,选择该降温函数能提高模拟退火算法的性能。

模拟退火算法还包括存储历史最优解。为避免搜索过程中由于执行概率接受环节而遗失当前遇到的最优解,可通过增加存储环节,存储环节用以将存储历史最优解。

附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制;

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1