CN113472671B - 组播路由的确定方法、装置和计算机可读存储介质 - Google Patents
组播路由的确定方法、装置和计算机可读存储介质 Download PDFInfo
- Publication number
- CN113472671B CN113472671B CN202010233874.7A CN202010233874A CN113472671B CN 113472671 B CN113472671 B CN 113472671B CN 202010233874 A CN202010233874 A CN 202010233874A CN 113472671 B CN113472671 B CN 113472671B
- Authority
- CN
- China
- Prior art keywords
- source node
- node
- path
- individual
- destination node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/08—Learning-based routing, e.g. using neural networks or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/302—Route determination based on requested QoS
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Health & Medical Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Artificial Intelligence (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Genetics & Genomics (AREA)
- Physiology (AREA)
- Medical Informatics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及一种组播路由的确定方法、装置和计算机可读存储介质,涉及通信计算领域。本公开的方法包括:根据软件定义网络SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,确定由源节点到多个目的节点的多个路径组,其中,全局约束条件包括:每个路径组中包括源节点到每个目的节点的一条路径,路径组中源节点到每个目的节点的路径满足对应的局部约束条件;针对每个路径组,根据路径组对网络资源的占用信息,确定路径组关于至少一项预设优化指标的值;至少一项预设优化指标包括:至少一种网络资源的占用总量;根据各个路径组关于各项预设优化指标的值,选取一个路径组作为源节点到各个目的节点的组播路由。
Description
技术领域
本公开涉及通信计算领域,特别涉及一种组播路由的确定方法、装置和计算机可读存储介质。
背景技术
SDN(Software Defined Network,软件定义网络)网络将控制平面和数据平面分离,通过集中式的控制器平台对分布式的数据平面进行控制。在控制平面,可编程的SDN控制器通过统一的接口(OpenFlow协议等)获取全网SDN交换机相关参数,为管理配置网络资源和部署网络协议提供了灵活性;在数据平面,SDN交换机提供数据转发功能,可快速匹配各种业务的网络数据包。SDN网络解决了传统网络中存在的业务部署效率低、业务适应能力差、服务质量难以保障等问题。SDN网络的上述优点为SDN组播提供了有利的条件。为了实现SDN组播,需要解决SDN组播路由优化问题。
目前,已知的SDN组播路由优化方法都是仅考虑全局约束条件进行优化,例如,源节点到各个目的地节点的路径的总功率满足需求等。
发明内容
发明人发现:目前SDN组播路由优化方法都是仅考虑全局约束条件进行优化,而实际应用中,组播过程中存在多个目的节点,不同的目的节点对于服务质量、用户体验等的需求可能不同。因此,现有的组播路由优化算法,仅考虑全局约束条件,最终确定的组播路由不能满足不同目的节点的不同需求。
本公开所要解决的一个技术问题是:如何使组播路由满足不同目的节点的需求,提高组播路由确定的准确性和优化效果。
根据本公开的一些实施例,提供的一种组播路由的确定方法,包括:根据软件定义网络SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,确定由源节点到多个目的节点的多个路径组,其中,全局约束条件包括:每个路径组中包括源节点到每个目的节点的一条路径,路径组中源节点到每个目的节点的路径满足对应的局部约束条件;针对每个路径组,根据路径组对网络资源的占用信息,确定路径组关于至少一项预设优化指标的值;至少一项预设优化指标包括:至少一种网络资源的占用总量;根据各个路径组关于各项预设优化指标的值,选取一个路径组作为源节点到各个目的节点的组播路由。
在一些实施例中,根据SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,确定由源节点到多个目的节点的多个路径组包括:根据SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,利用进化算法确定由源节点到多个目的节点的多个路径组;其中,每个路径组表示一个个体,每个路径组中任意两个节点之间的链路的长度表示一个基因,每个路径组中源节点到每个目的节点经过的各条链路的长度形成二维染色体。
在一些实施例中,根据SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,利用进化算法确定由源节点到多个目的节点的多个路径组包括:根据SDN中各个节点之间的链路,全局约束条件,源节点到每个目的节点的路径对应的局部约束条件,以及初始种群规模,生成初始种群;初始种群包括多个个体;在每次迭代过程中,对当前种群中个体执行变异、交叉和选择操作,生成下一代种群中的个体,直至满足预设停止条件;其中,下一代种群中的个体对应的源节点到每个目的节点的路径满足对应的局部约束条件,并且下一代种群中的个体满足全局约束条件。
在一些实施例中,根据SDN中各个节点之间的链路和种群规模,生成个体,作为初始种群包括:根据全局约束条件,从各个节点之间的链路选取链路,随机生成预设数量的候选个体;在候选个体对应的源节点到每个目的节点的路径不满足对应的局部约束条件的情况下,将候选个体删除;从剩余的候选个体中,选取适应度值最大的候选个体,作为初始种群中的个体;重复上述步骤,直至个体的数量达到初始种群规模。
在一些实施例中,全局约束条件还包括:预设链路约束条件;预设链路约束条件包括:至少一项链路指标分别符合与各项链路指标对应的预设范围;至少一项链路指标包括:长度、带宽、时延、抖动、丢包率、误码率中至少一项。
在一些实施例中,适应度值是根据候选个体关于各项预设优化指标的值进行加权得到的。
在一些实施例中,变异操作包括:将当前种群中第p个体,作为目标个体;其中,1≤p≤P,p为正整数,P为当前种群的规模;随机从当前种群中选取除目标个体以外的三个不同个体,根据以下方法生成变异个体:根据公式确定uijp的值;其中,表示三个不同个体中第r1个个体中源节点到第j个目的节点的第i条链路长度,表示三个不同个体中第r2个个体中源节点到第j个目的节点的第i条链路长度,表示三个不同个体中第r3个个体中源节点到第j个目的节点的第i条链路长度,r1≠r2≠r3≠p,p,r1,r2,r3∈[1,P],为正整数,1≤i≤N,i为正整数,N为源节点到任意目的节点的链路数目的最大值,1≤j≤M,j为正整数,M为目的节点的数量,F∈[0,2];在uijp≥0的情况下,从除去 之外的各个节点的链路长度中选取与uijp最接近且对应的链路满足预设链路约束条件的链路长度,作为变异个体中的链路长度u′ijp;其中,全局约束条件还包括预设链路约束条件。
在一些实施例中,交叉操作包括:将目标个体与变异个体,根据以下公式进行交叉,得到试验个体:
其中,vijp表示试验个体中源节点到第j个目的节点的第i条链路长度,CR∈[0,1],为交叉概率,lijp表示目标个体中源节点到第j个目的节点的第i条链路长度;rand(0,1)表示0至1之间均匀分布的随机数,rand(1,N)表示1至N之间均匀分布的随机数,rand(1,M)表示1至M之间均匀分布的随机数;根据试验个体中的各个vijp,确定试验个体对应的路径组是否包含源节点到每个目的节点的一条路径;在试验个体对应的路径组未包含源节点到每个目的节点的一条路径的情况下,重新执行变异操作和交叉操作,直至试验个体对应的路径组包含源节点到每个目的节点的一条路径。
在一些实施例中,在试验个体对应的路径组包含源节点到每个目的节点的一条路径的情况下,确定试验个体对应的源节点到每个目的节点路径是否满足对应的局部约束条件;在试验个体对应的确定源节点到每个目的节点路径不满足对应的局部约束条件的情况下,重新执行变异操作和交叉操作,直至源节点到每个目的节点路径满足对应的局部约束条件。
在一些实施例中,选择操作包括:比对试验个体的适应度值和目标个体的适应度值;选取适应度值小的试验个体或目标个体,作为下一代种群中的个体;其中,试验个体或目标个体的适应度值是分别根据试验个体或目标个体关于各项预设优化指标的值进行加权得到的。
在一些实施例中,选择操作包括:比对试验个体的适应度值和目标个体的适应度值;选取适应度值小的试验个体或目标个体,作为下一代种群中的个体;其中,试验个体或目标个体的适应度值是分别根据试验个体或目标个体关于各项预设优化指标的值和惩罚函数值确定的;其中,针对每个目的节点,源节点到该目的节点路径的局部约束条件包括:源节点到该目的节点的路径的服务质量QoS指标和体验质量QoE指标中至少一项满足对应的指标阈值;惩罚函数值是根据源节点到每个目的节点路径的QoS指标和QoE指标中至少一项与对应的指标阈值的差值确定的。
在一些实施例中,预设停止条件包括:达到预设迭代次数,或者生成下一代种群中的个体对应的路径组关于一个或多个预设优化指标的值分别达到各个预设优化指标对应的预设值,或者生成下一代种群中的个体对应的路径组关于一个或多个预设优化指标的值与初始种群中个体对应的路径组关于一个或多个预设优化指标的值的差值分别达到各个预设优化指标对应的预设差值。
在一些实施例中,网络资源包括:链路长度、链路带宽、节点计算能力、节点功耗中至少一项。
在一些实施例中,在路径组中多条路径复用同一条链路或节点的情况下,确定路径组关于各项预设优化指标的值,该链路或该节点对应的网络资源的占用量只计算一次。
在一些实施例中,在路径组中各条链路或各个节点对应网络资源的占用信息形成二维数组,二维数组每个元素表示该路径组中一条链路或一个节点对应网络资源的占用信息;在二维数组呈对称结构的情况下,根据二维数据的对称结构简化利用二维数组计算路径组关于各项预设优化指标的值的过程。
在一些实施例中,针对每个目的节点,源节点到该目的节点路径的局部约束条件包括:源节点到该目的节点的路径的服务质量QoS指标和体验质量QoE指标中至少一项满足对应的指标阈值。
根据本公开的另一些实施例,提供的一种组播路由的确定装置,包括:第一确定模块,用于根据软件定义网络SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,确定由源节点到多个目的节点的多个路径组,其中,全局约束条件包括:每个路径组中包括源节点到每个目的节点的一条路径,路径组中源节点到每个目的节点的路径满足对应的局部约束条件;第二确定模块,用于针对每个路径组,根据路径组对网络资源的占用信息,确定路径组关于至少一项预设优化指标的值;至少一项预设优化指标包括:至少一种网络资源的占用总量;选取模块,用于根据各个路径组关于各项预设优化指标的值,选取一个路径组作为源节点到各个目的节点的组播路由。
在一些实施例中,第一确定模块用于根据SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,利用进化算法确定由源节点到多个目的节点的多个路径组;其中,每个路径组表示一个个体,每个路径组中任意两个节点之间的链路的长度表示一个基因,每个路径组中源节点到每个目的节点经过的各条链路的长度形成二维染色体。
在一些实施例中,第一确定模块用于根据SDN中各个节点之间的链路,全局约束条件,源节点到每个目的节点的路径对应的局部约束条件,以及初始种群规模,生成初始种群;初始种群包括多个个体;在每次迭代过程中,对当前种群中个体执行变异、交叉和选择操作,生成下一代种群中的个体,直至满足预设停止条件;其中,下一代种群中的个体对应的源节点到每个目的节点的路径满足对应的局部约束条件,并且下一代种群中的个体满足全局约束条件。
在一些实施例中,第一确定模块用于根据全局约束条件,从各个节点之间的链路选取链路,随机生成预设数量的候选个体;在候选个体对应的源节点到每个目的节点的路径不满足对应的局部约束条件的情况下,将候选个体删除;从剩余的候选个体中,选取适应度值最大的候选个体,作为初始种群中的个体;重复上述步骤,直至个体的数量达到初始种群规模。
在一些实施例中,全局约束条件还包括:预设链路约束条件;预设链路约束条件包括:至少一项链路指标分别符合与各项链路指标对应的预设范围;至少一项链路指标包括:长度、带宽、时延、抖动、丢包率、误码率中至少一项。
在一些实施例中,适应度值是根据候选个体关于各项预设优化指标的值进行加权得到的。
在一些实施例中,第一确定模块用于将当前种群中第p个体,作为目标个体;其中,1≤p≤P,p为正整数,P为当前种群的规模;随机从当前种群中选取除目标个体以外的三个不同个体,根据以下方法生成变异个体:根据公式确定uijp的值;其中,表示三个不同个体中第r1个个体中源节点到第j个目的节点的第i条链路长度,表示三个不同个体中第r2个个体中源节点到第j个目的节点的第i条链路长度,表示三个不同个体中第r3个个体中源节点到第j个目的节点的第i条链路长度,r1≠r2≠r3≠p,p,r1,r2,r3∈[1,P],为正整数,1≤i≤N,i为正整数,N为源节点到任意目的节点的链路数目的最大值,1≤j≤M,j为正整数,M为目的节点的数量,F∈[0,2];在uijp≥0的情况下,从除去 之外的各个节点的链路长度中选取与uijp最接近且对应的链路满足预设链路约束条件的链路长度,作为变异个体中的链路长度u′ijp;其中,全局约束条件还包括预设链路约束条件。
在一些实施例中,第一确定模块用于将目标个体与变异个体,根据以下公式进行交叉,得到试验个体:
其中,vijp表示试验个体中源节点到第j个目的节点的第i条链路长度,CR∈[0,1],为交叉概率,lijp表示目标个体中源节点到第j个目的节点的第i条链路长度;rand(0,1)表示0至1之间均匀分布的随机数,rand(1,N)表示1至N之间均匀分布的随机数,rand(1,M)表示1至M之间均匀分布的随机数;根据试验个体中的各个vijp,确定试验个体对应的路径组是否包含源节点到每个目的节点的一条路径;在试验个体对应的路径组未包含源节点到每个目的节点的一条路径的情况下,重新执行变异操作和交叉操作,直至试验个体对应的路径组包含源节点到每个目的节点的一条路径。
在一些实施例中,第一确定模块还用于在试验个体对应的路径组包含源节点到每个目的节点的一条路径的情况下,确定试验个体对应的源节点到每个目的节点路径是否满足对应的局部约束条件;在试验个体对应的确定源节点到每个目的节点路径不满足对应的局部约束条件的情况下,重新执行变异操作和交叉操作,直至源节点到每个目的节点路径满足对应的局部约束条件。
在一些实施例中,第一确定模块用于比对试验个体的适应度值和目标个体的适应度值;选取适应度值小的试验个体或目标个体,作为下一代种群中的个体;其中,试验个体或目标个体的适应度值是分别根据试验个体或目标个体关于各项预设优化指标的值进行加权得到的。
在一些实施例中,第一确定模块用于比对试验个体的适应度值和目标个体的适应度值;选取适应度值小的试验个体或目标个体,作为下一代种群中的个体;其中,试验个体或目标个体的适应度值是分别根据试验个体或目标个体关于各项预设优化指标的值和惩罚函数值确定的;其中,针对每个目的节点,源节点到该目的节点路径的局部约束条件包括:源节点到该目的节点的路径的服务质量QoS指标和体验质量QoE指标中至少一项满足对应的指标阈值;惩罚函数值是根据源节点到每个目的节点路径的QoS指标和QoE指标中至少一项与对应的指标阈值的差值确定的。
在一些实施例中,预设停止条件包括:达到预设迭代次数,或者生成下一代种群中的个体对应的路径组关于一个或多个预设优化指标的值分别达到各个预设优化指标对应的预设值,或者生成下一代种群中的个体对应的路径组关于一个或多个预设优化指标的值与初始种群中个体对应的路径组关于一个或多个预设优化指标的值的差值分别达到各个预设优化指标对应的预设差值。
在一些实施例中,网络资源包括:链路长度、链路带宽、节点计算能力、节点功耗中至少一项。
在一些实施例中,在路径组中多条路径复用同一条链路或节点的情况下,确定路径组关于各项预设优化指标的值,该链路或该节点对应的网络资源的占用量只计算一次。
在一些实施例中,在路径组中各条链路或各个节点对应网络资源的占用信息形成二维数组,二维数组每个元素表示该路径组中一条链路或一个节点对应网络资源的占用信息;在二维数组呈对称结构的情况下,根据二维数据的对称结构简化利用二维数组计算路径组关于各项预设优化指标的值的过程。
在一些实施例中,针对每个目的节点,源节点到该目的节点路径的局部约束条件包括:源节点到该目的节点的路径的服务质量QoS指标和体验质量QoE指标中至少一项满足对应的指标阈值。
根据本公开的又一些实施例,提供的一种组播路由的确定装置,包括:处理器;以及耦接至处理器的存储器,用于存储指令,指令被处理器执行时,使处理器执行如前述任意实施例的组播路由的确定方法。
根据本公开的再一些实施例,提供的一种非瞬时性计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现前述任意实施例组播路由的确定方法的步骤。
本公开中可以根据不同目的节点的需求设置源节点到每个目的节点的路径对应的局部约束条件。根据SDN中各个节点之间的链路,以及源节点到每个目的节点的路径对应的局部约束条件,确定由源节点到多个目的节点的多个路径组。每个路径组中包括源节点到每个目的节点的一条路径,并且源节点到每个目的节点的路径满足对应的局部约束条件。进一步,针对每个路径组,根据路径组对网络资源的占用信息,确定所述路径组关于至少一项预设优化指标的值。根据各个路径组关于各项预设优化指标的值,可以最终选取满足预设优化指标的组播路由。至少一项预设优化指标可以包括:至少一种网络资源的占用总量。本公开的方法引进从源节点到每个目的节点路由的局部约束,使得最终确定的组播路由满足不同目的节点的需求,提高了组播路由确定的准确性和优化效果。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本公开的一些实施例的组播路由的确定方法的流程示意图。
图2示出本公开的另一些实施例的组播路由的确定方法的流程示意图。
图3示出本公开的一些实施例的组播路由的确定装置的结构示意图。
图4示出本公开的另一些实施例的组播路由的确定装置的结构示意图。
图5示出本公开的又一些实施例的组播路由的确定装置的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开提供一种组播路由的确定方法,下面结合图1进行描述。
图1为本公开组播路由的确定方法一些实施例的流程图。如图1所示,该实施例的方法包括:步骤S102~S106。
在步骤S102中,根据SDN中各个节点之间的链路,全局约束条件,以及源节点到每个目的节点的路径对应的局部约束条件,确定由源节点到多个目的节点的多个路径组。
SDN中包括多个节点,节点可以是交换机或用户终端等,不限于所举示例。SDN网络中节点集合例如为G。任意两个节点间存在链路。可以获取各个节点和各条链路的参数用于确定路径组。
在一些实施例中,可以根据需求设置全局约束条件,例如,每个路径组中包括源节点到每个目的节点的一条路径。全局约束条件还可以包括:预设链路约束条件。确定由源节点到多个目的节点的各个路径组中的各条链路都满足预设链路约束条件。例如,预设链路约束条件包括:至少一项链路指标分别符合与各项链路指标对应的预设范围;至少一项链路指标包括:长度、带宽、时延、抖动、丢包率、误码率中至少一项。例如,在确定路径组的过程中,选取带宽大于b(预设范围)且时延小于c(预设范围)的链路。进一步,可以先将满足预设链路约束条件的链路生成链路集合为A,之后确定路径组的过程中从集合A中选取链路。全局约束条件还可以包括:源节点到每个目的节点的一条路径中包含的链路数目的最大值不超过预设最大值等。全局约束条件可以根据实际需求进行设置,不限于所举示例。
一个路径组包括源节点到各个目的节点的一条路径,并且源节点到每个目的节点的路径满足对应的局部约束条件。局部约束条件可以根据各个目的节点的实际需求确定。例如,针对每个目的节点,源节点到该目的节点路径的局部约束条件包括:源节点到该目的节点的路径的QoS(服务质量)指标和QoE(体验质量)指标中至少一项满足对应的指标阈值。QoS指标例如包括:时延、丢包率、误码率、抖动等至少一项,不限于所举示例。一个路径组可以生成一棵对应的组播树,例如,用用T=(GT,AT)表示一棵组播树,GT∈G,AT∈A。
在一些实施例中,根据SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,利用进化算法确定由源节点到多个目的节点的多个路径组。进化算法例如包括:遗传算法、差分进化算法等,不限于所举示例。后续实施例中以差分进化算法为例进行具体描述。在进化算法中,每个路径组可以表示一个个体,每个路径组中任意两个节点之间的链路的长度表示一个基因,每个路径组中源节点到每个目的节点经过的各条链路的长度形成二维染色体。
例如,假设目的节点的个数为M(M为大于1的整数),源节点到目的节点的路径最多包括N(N为大于0的整数)条链路,任意两个节点之间的链路的长度表示为lik,lij∈[0,Lmax],1≤i≤N,i为正整数,1≤j≤M,j为正整数。Lmax为SDN网络中节点间链路长度最大值。每个路径组中源节点到每个目的节点经过的各条链路的长度可以以矩阵或二维数组的形式表示,即二维染色体。例如,采用矩阵表示为:
传统进化算法的染色体的表示方式一般都是一维的,只能设置全局约束条件。而本方案采用二维染色体,二维染色体可以创新地引入从源节点到每个目的节点的路径的局部约束条件。通过二维染色体的进化,同时引入局部约束条件,可以在进行组播路径的整体优化的同时,使源节点到不同目的节点的路径满足局部约束,即满足不同目的节点对应的需求。此外,通过二维染色体的设计,可以在局部约束范围内选择染色体的基因,可以提高优秀染色体基因的选择效率,加速收敛到全局最优解,提高进化算法的效率。
例如,局部约束条件为源节点到目的节点的路径时延低于对应的指标阈值。时延可以转换为路径长度,路径长度越长,则时延越长。因此,局部约束条件可以转换为源节点到目的节点的路径长度低于对应的路径长度阈值Qmax。即局部约束条件可以表示为Qmax=(q1,q2,…,qM)。q1,q2,…,qM分别表示不同目的节点对应的路径长度阈值。
不同目的节点对应的局部约束条件可以不同,例如有些目的节点对应的局部约束条件为源节点到该目的节点路径时延不超过对应的时延阈值,有些目的节点的局部约束条件为源节点到该目的节点路径的误码率不超过对应的误码率阈值等。局部约束条件的表示方法也不限于所举示例。
在步骤S104中,针对每个路径组,根据路径组对网络资源的占用信息,确定路径组关于至少一项预设优化指标的值。
预设优化指标即组播路由的优化问题最终要优化的指标。例如,可以设置至少一项预设优化指标,至少一项预设优化指标可以包括:至少一种网络资源的占用总量。网络资源可以包括:链路长度、链路带宽、节点计算能力、节点功耗中至少一项。即,预设优化指标可以是占用的链路总长度,占用的链路总带宽,节点计算能力占用总量、节点功耗的占用总量等。预设优化指标可以根据实际需求设置,不限于所举示例。可以计算每个路径组关于至少一项预设优化指标的值。
在步骤S106中,根据各个路径组关于各项预设优化指标的值,选取一个路径组作为源节点到各个目的节点的组播路由。
可以设置关于各项预设优化指标的优化目标,例如,优化目标为各项预设优化指标的值达到最小,或者,各项预设优化指标的值分别达到对应的阈值等。例如,优化目标包括:从源节点到每个目的节点的路径长度总和最小,以及从源节点到每个目的节点的路径的带宽总和最小。例如,针对第p个路径组(k为正整数),从源节点到每个目的节点的路径长度总和可以表示为从源节点到每个目的节点的路径的带宽总和可以表示为优化目标可以表示为从lp中选取最小值,从bp中选取最小值。yijp表示链路重复系数,bijp表示链路的带宽b为传输所需带宽,可以与预设链路约束条件中包含的预设带宽值相等。
通过设置yijp和bijp,可以在路径组中多条路径复用同一条链路或节点的情况下,确定路径组关于各项预设优化指标的值,该链路或该节点对应的网络资源的占用量只计算一次,不需要重复计算。这是由组播的特性确定的。进一步,根据各个路径组关于各项预设优化指标的值确定满足优化目标的路径组作为源节点到各个目的节点的组播路由。
上述实施例中可以根据不同目的节点的需求设置源节点到每个目的节点的路径对应的局部约束条件。根据SDN中各个节点之间的链路,以及源节点到每个目的节点的路径对应的局部约束条件,确定由源节点到多个目的节点的多个路径组。每个路径组中包括源节点到每个目的节点的一条路径,并且源节点到每个目的节点的路径满足对应的局部约束条件。进一步,针对每个路径组,根据路径组对网络资源的占用信息,确定路径组关于至少一项预设优化指标的值。根据各个路径组关于各项预设优化指标的值,可以最终选取满足预设优化指标的组播路由。至少一项预设优化指标可以包括:至少一种网络资源的占用总量。上述实施例的方法引进从源节点到每个目的节点路由的局部约束,使得最终确定的组播路由满足不同目的节点的需求,提高了组播路由确定的准确性和优化效果。
此外,由于只有参与优化计算的源节点到目的节点的路径才需要参与计算,因此节省了优化路由的计算量,节省SDN控制器资源。通过二维染色体的设计,同时引入局部约束条件,可以在进行组播路径的整体优化的同时,使源节点到不同目的节点的路径满足局部约束,即满足不同目的节点对应的需求。可以在局部约束范围内选择染色体的基因,可以提高优秀染色体基因的选择效率,加速收敛到全局最优解,提高进化算法的效率。
下面以进化算法为差分进化算法为例,描述如何确定由源节点到各个目的节点的多个路径组。
在一些实施例中,根据SDN中各个节点之间的链路,全局约束条件,源节点到每个目的节点的路径对应的局部约束条件,以及初始种群规模,生成初始种群;初始种群包括多个个体;在每次迭代过程中,对当前种群中个体执行变异、交叉和选择操作,生成下一代种群中的个体,直至满足预设停止条件。其中,下一代种群中的个体对应的源节点到每个目的节点的路径满足对应的局部约束条件,并且下一代种群中的个体满足全局约束条件。
预设停止条件例如包括:达到预设迭代次数,或者生成下一代种群中的个体对应的路径组关于一个或多个预设优化指标的值分别达到各个预设优化指标对应的预设值,或者生成下一代种群中的个体对应的路径组关于一个或多个预设优化指标的值与初始种群中个体对应的路径组关于一个或多个预设优化指标的值的差值分别达到各个预设优化指标对应的预设差值。
预设停止条件例如包括:从源节点到每个目的节点的路径长度总和达到设定的第一阈值且从源节点到每个目的节点路径的带宽和最小,并达到第二阈值;或者经连续多次迭代后的从源节点到每个目的节点路径长度总和,与迭代前的从源节点到每个目的节点的路径长度总和的差值在第三阈值范围内且经连续多次迭代后的从源节点到每个目的节点路径的带宽总和与迭代前的从源节点到每个目的节点路由的带宽和的差值在第四阈值范围内。
下面结合图2具体描述差分进化算法。
图2为本公开组播路由的确定方法一些实施例的流程图。如图2所示,该实施例的方法包括:步骤S202~S218。
在步骤S202中,对差分进化算法的参数进行初始化。
参数例如包括:种群大小、缩放系数、变异概率等,具体可参考现有算法中的参数。
在步骤S204中,确定表示问题解的个体实数编码方法。
问题即组播路由优化问题,实数编码方法可参考现有技术进行确定,在此不再赘述。
在步骤S206中,根据SDN中各个节点之间的链路,全局约束条件,源节点到每个目的节点的路径对应的局部约束条件,以及初始种群规模,生成初始种群。
在一些实施例中,根据全局约束条件,从各个节点之间的链路选取链路,随机生成预设数量的候选个体;在候选个体对应的源节点到每个目的节点的路径不满足对应的局部约束条件的情况下,将候选个体删除;从剩余的候选个体中,选取适应度值最大的候选个体,作为初始种群中的个体;重复上述步骤,直至个体的数量达到初始种群规模。
首先根据全局约束条件随机生成预设数量的候选个体,例如,路径组中包括源节点到每个目的节点的一条路径,预设链路约束条件等。进一步,判断候选个体是否满足各个局部约束条件,如果不满足,则删除该候选个体。从满足各个局部约束条件的候选个体中,选取适应度值最大的候选个体,作为初始种群中的个体,通过迭代是初始种群中的个体数量达到初始种群规模。适应度值是根据候选个体关于各项预设优化指标的值进行加权得到的。适应度值的确定方法和初始种群的生成不仅适用于差分进化算法,也可以用于其他进化算法。
以候选个体关于各项预设优化指标的值包括:候选个体对应的从源节点到每个目的节点的路径长度总和,以及从源节点到每个目的节点的路径的带宽总和为例。适应度值则是上述两项值的加权。例如,第p个候选个体的适应度值可以根据以下适应度函数进行计算。
公式(1)中,λ1和λ2分别表示不同预设优化指标对应的权重,p,∈[1,P],P表示种群规模,其他参数的含义可以参考前述实施例。
在步骤S208中,判断是否满足预设停止条件,如果是,则执行步骤S209,否则执行步骤S210。
在步骤S209中,根据各个个体关于各项预设优化指标的值,以及各项预设优化指标对应的优化目标,选取一个个体对应的路径组作为源节点到各个目的节点的组播路由。
具体如何选取个体可以参考前述实施例。
在步骤S210中,对当前种群中的个体执行变异操作,生成变异个体。
在一些实施例中,将当前种群中第p个体,作为目标个体;1≤p≤P,p为正整数,P为当前种群的规模;随机从当前种群中选取除目标个体以外的三个不同个体,根据以下方法生成变异个体:
根据公式确定uijp的值;表示三个不同个体中第r1个个体中源节点到第j个目的节点的第i条链路长度,表示三个不同个体中第r2个个体中源节点到第j个目的节点的第i条链路长度,表示三个不同个体中第r3个个体中源节点到第j个目的节点的第i条链路长度,r1≠r2≠r3≠p,p,r1,r2,r3∈[1,P],为正整数,1≤i≤N,i为正整数,N为源节点到任意目的节点的链路数目的最大值,1≤j≤M,j为正整数,M为目的节点的数量,F∈[0,2];在uijp≥0的情况下,从除去之外的各个节点的链路长度中选取与uijp最接近且对应的链路满足预设链路约束条件的链路长度,作为变异个体中的链路长度u′ijp。
如果uijp小于0,则可以重新选取除目标个体以外的三个不同个体,重新执行上述过程,直至得到变异个体中的链路长度u′ijp。如果uijp≥0,则比对uijp和SDN中各个节点之间的链路,选取与uijp最接近的链路长度,并且该链路长度对应的链路满足预设链路约束条件。确定了链路长度u′ijp,之后则确定了对应的链路,从而可以确定变异个体中每条链路。采用上述方法,针对当前种群中,每个个体都可以生成变异个体。
在步骤S212中,根据当前种群中的个体和对应的变异个体,执行交叉操作,得到对应的试验个体。
将目标个体与变异个体,根据以下公式进行交叉,得到试验个体:
公式(2)中,vijp表示试验个体中源节点到第j个目的节点的第i条链路长度,CR∈[0,1],为交叉概率,lijp表示目标个体中源节点到第j个目的节点的第i条链路长度;rand(0,1)表示0至1之间均匀分布的随机数,rand(1,N)表示1至N之间均匀分布的随机数,rand(1,M)表示1至M之间均匀分布的随机数;根据试验个体中的各个vijp,确定试验个体对应的路径组是否包含源节点到每个目的节点的一条路径;在试验个体对应的路径组未包含源节点到每个目的节点的一条路径的情况下,重新执行变异操作和交叉操作,直至试验个体对应的路径组包含源节点到每个目的节点的一条路径。
确定试验个体中的各个vijp后,可以确定试验个体包含的各条链路,确定这些链路是否可以组成源节点到每个目的节点的一条路径,或者确定这些链路组成的路径是否满足全局约束条件。如果不是,则表示生成的试验个体不能形成满足需求的路径组,则需要重新生成试验个体。
在步骤S214中,判断试验个体对应的源节点到每个目的节点路径是否满足对应的局部约束条件,如果是,则执行步骤S216,否则,返回步骤S210重新开始执行。
例如,在试验个体对应的路径组包含源节点到每个目的节点的一条路径的情况下,确定试验个体对应的源节点到每个目的节点路径是否满足对应的局部约束条件。以局部约束条件为源节点到目的节点的路径时延低于对应的指标阈值,转换为源节点到目的节点的路径长度低于对应的路径长度阈值Qmax为例,针对试验个体验证是否满足,在确定试验个体对应的源节点到每个目的节点路径不满足对应的局部约束条件的情况下,重新执行变异操作和交叉操作,直至源节点到每个目的节点路径满足对应的局部约束条件。
在步骤S216中,根据当前种群中的个体和对应的试验个体,选择下一代种群中的个体。
在一些实施例中,比对试验个体的适应度值和目标个体的适应度值;选取适应度值小的试验个体或目标个体,作为下一代种群中的个体。可以参考公式(1)分别计算试验个体和目标个体的适应度值,选取适应度值大的个体,作为下一代种群中的个体。
在一些实施例中,步骤S214可以是可选步骤,在不执行步骤S214的情况下,可以根据局部约束条件设置惩罚函数,对适应度函数进行改进。即试验个体或目标个体的适应度值是分别根据试验个体或目标个体关于各项预设优化指标的值和惩罚函数值确定的;惩罚函数值是根据源节点到每个目的节点路径的QoS指标和QoE指标中至少一项与对应的指标阈值的差值确定的。例如,计算源节点到每个目的节点路径的各项QoS指标和/或QoE指标与对应的指标阈值的差值,将各个差值进行加权,得到惩罚函数值。惩罚函数与局部约束条件相对应,局部约束条件针对哪些指标进行设置,惩罚函数则是关于这些指标进行计算。通过设置惩罚函数,使不满足局部约束条件的试验个体的适应度值增大,降低其被选择的概率,并且允许不满足局部约束条件的个体保留在种群中,可以增加样本的多样性。
例如,以个体(目标个体或试验个体)关于各项预设优化指标的值包括:候选个体对应的从源节点到每个目的节点的路径长度总和,以及从源节点到每个目的节点的路径的带宽总和,局部约束条件为源节点到目的节点的路径时延低于对应的指标阈值,转换为源节点到目的节点的路径长度低于对应的路径长度阈值Qmax为例,适应度函数可以采用以下公式表示。
公式(3)中,wj表示源节点到第j个目的节点的路径的惩罚系数,wj>0,qj∈Qmax。当应用上述公式计算试验个体的适应度值时,则将lijp替换为vijp即可。
在步骤S218中,将下一代种群更新为当前种群,返回步骤S208重新开始执行。
上述实施例中,计算不同个体或路径组关于预设优化指标的值,以及适应度值时,参与计算的数据可以表示为二维数组(包括二维染色体)的形式。某些场景下,二维数组可能呈现堆成结构,基于这种对称结构可以降低计算复杂度。例如,在路径组中各条链路或各个节点对应网络资源的占用信息形成二维数组,二维数组每个元素表示该路径组中一条链路或一个节点对应网络资源的占用信息;二维数组第一维对应各个目的节点,二维数组的第二维对应源节点到目的节点的路径中的各条链路。在二维数组呈对称结构的情况下,根据二维数据的对称结构简化利用二维数组计算路径组关于各项预设优化指标的值的过程。同理,可以简化适应度值的计算过程。
例如,以二维数组中各个元素表示链路长度lijp为例,如果二维数组呈现左右对称的结构,则lijp=li(M+1-j)p,yijp=yi(M+1-j)p。如果二维数组呈现上下对称的结构,则lijp=l(N+1-i)jp,yijp=y(N+1-i)jp。如果二维数组呈现中心对称的结构,则lijp=l(N+1-i)(N+1-j)p,yijp=y(N+1-i)M+1-j)p。
如果二维数组呈现旋转对称的结构,则对应以下情况。
l(o-k)jp=l(o+k)jp=li(q-k)p=li(q+k)p=l(o-k)(q-k)p=l(o+k)(q+k)p
=l(o-k)(q+k)p=l(o+k)(q-k)p
y(o-k)jp=y(o+k)jp=yi(q-k)p=yi(q+k)p=y(o-k)(q-k)p=y(o+k)(q+k)p
=y(o-k)(q+k)p=y(o+k)(q-k)p
l(o-k)jp=l(o+k+1)jp=li(q-k)p=li(q+k+1)p=l(o-k)(q-k)p
=l(o+k+1)(q+k+1)p=l(o-k)(q+k+1)p=l(o+k+1)(q-k)p
y(o-k)jp=y(o+k+1)jp=yi(q-k)p=yi(q+k+1)p=y(o-k)(q-k)p
=y(o+k+1)(q+k+1)p=y(o-k)(q+k+1)p=y(o+k+1)(q-k)p
l(o-k)jp=l(o+k)jp=li(q-k)p=li(q+k+1)p=l(o-k)(q-k)p=l(o+k)(q+k+1)p
=l(o-k)(q+k+1)p=l(o+k)(q-k)p
y(o-k)jp=y(o+k)jp=yi(q-k)p=yi(q+k+1)p=y(o-k)(q-k)p=y(o+k)(q+k+1)p
=y(o-k)(q+k+1)p=y(o+k)(q-k)p
l(o-k)jp=l(o+k+1)jp=li(q-k)p=li(q+k)p=l(o-k)(q-k)p=l(o+k+1)(q+k)p
=l(o-k)(q+k)p=l(o+k+1)(q-k)p
y(o-k)jp=y(o+k+1)jp=yi(q-k)p=yi(q+k)p=y(o-k)(q-k)p=y(o+k+1)(q+k)p
=y(o-k)(q+k)p=y(o+k+1)(q-k)p
基于上述公式可以减少计算量。
本公开还提供一种组播路由的确定装置,下面结合图3进行描述。
图3为本公开组播路由的确定装置的一些实施例的结构图。如图3所示,该实施例的装置30包括:第一确定模块310,第二确定模块320,选取模块330。
第一确定模块310用于根据软件定义网络SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,确定由源节点到多个目的节点的多个路径组,其中,全局约束条件包括:每个路径组中包括源节点到每个目的节点的一条路径,路径组中源节点到每个目的节点的路径满足对应的局部约束条件。
在一些实施例中,第一确定模块310用于根据SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,利用进化算法确定由源节点到多个目的节点的多个路径组;其中,每个路径组表示一个个体,每个路径组中任意两个节点之间的链路的长度表示一个基因,每个路径组中源节点到每个目的节点经过的各条链路的长度形成二维染色体。
在一些实施例中,第一确定模块310用于根据SDN中各个节点之间的链路,全局约束条件,源节点到每个目的节点的路径对应的局部约束条件,以及初始种群规模,生成初始种群;初始种群包括多个个体;在每次迭代过程中,对当前种群中个体执行变异、交叉和选择操作,生成下一代种群中的个体,直至满足预设停止条件;其中,下一代种群中的个体对应的源节点到每个目的节点的路径满足对应的局部约束条件,并且下一代种群中的个体满足全局约束条件。
在一些实施例中,第一确定模块310用于根据全局约束条件,从各个节点之间的链路选取链路,随机生成预设数量的候选个体;在候选个体对应的源节点到每个目的节点的路径不满足对应的局部约束条件的情况下,将候选个体删除;从剩余的候选个体中,选取适应度值最大的候选个体,作为初始种群中的个体;重复上述步骤,直至个体的数量达到初始种群规模。
在一些实施例中,第一确定模块310用于根据SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,利用进化算法确定由源节点到多个目的节点的多个路径组;其中,每个路径组表示一个个体,每个路径组中任意两个节点之间的链路的长度表示一个基因,每个路径组中源节点到每个目的节点经过的各条链路的长度形成二维染色体。
在一些实施例中,第一确定模块310用于根据SDN中各个节点之间的链路,全局约束条件,源节点到每个目的节点的路径对应的局部约束条件,以及初始种群规模,生成初始种群;初始种群包括多个个体;在每次迭代过程中,对当前种群中个体执行变异、交叉和选择操作,生成下一代种群中的个体,直至满足预设停止条件;其中,下一代种群中的个体对应的源节点到每个目的节点的路径满足对应的局部约束条件,并且下一代种群中的个体满足全局约束条件。
在一些实施例中,第一确定模块310用于根据全局约束条件,从各个节点之间的链路选取链路,随机生成预设数量的候选个体;在候选个体对应的源节点到每个目的节点的路径不满足对应的局部约束条件的情况下,将候选个体删除;从剩余的候选个体中,选取适应度值最大的候选个体,作为初始种群中的个体;重复上述步骤,直至个体的数量达到初始种群规模。
在一些实施例中,针对每个目的节点,源节点到该目的节点路径的局部约束条件包括:源节点到该目的节点的路径的服务质量QoS指标和体验质量QoE指标中至少一项满足对应的指标阈值。
第二确定模块320用于针对每个路径组,根据路径组对网络资源的占用信息,确定路径组关于至少一项预设优化指标的值;至少一项预设优化指标包括:至少一种网络资源的占用总量。
在一些实施例中,网络资源包括:链路长度、链路带宽、节点计算能力、节点功耗中至少一项。
在一些实施例中,在路径组中多条路径复用同一条链路或节点的情况下,确定路径组关于各项预设优化指标的值,该链路或该节点对应的网络资源的占用量只计算一次。
在一些实施例中,在路径组中各条链路或各个节点对应网络资源的占用信息形成二维数组,二维数组每个元素表示该路径组中一条链路或一个节点对应网络资源的占用信息;在二维数组呈对称结构的情况下,根据二维数据的对称结构简化利用二维数组计算路径组关于各项预设优化指标的值的过程。
选取模块330用于根据各个路径组关于各项预设优化指标的值,选取一个路径组作为源节点到各个目的节点的组播路由。
本公开的实施例中的组播路由的确定装置可各由各种计算设备或计算机系统来实现,下面结合图4以及图5进行描述。
图4为本公开组播路由的确定装置的一些实施例的结构图。如图4所示,该实施例的装置40包括:存储器410以及耦接至该存储器410的处理器420,处理器420被配置为基于存储在存储器410中的指令,执行本公开中任意一些实施例中的组播路由的确定方法。
其中,存储器410例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)、数据库以及其他程序等。
图5为本公开组播路由的确定装置的另一些实施例的结构图。如图5所示,该实施例的装置50包括:存储器510以及处理器520,分别与存储器410以及处理器420类似。还可以包括输入输出接口530、网络接口540、存储接口550等。这些接口530,540,550以及存储器510和处理器520之间例如可以通过总线560连接。其中,输入输出接口530为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口540为各种联网设备提供连接接口,例如可以连接到数据库服务器或者云端存储服务器等。存储接口550为SD卡、U盘等外置存储设备提供连接接口。
本领域内的技术人员应当明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (18)
1.一种组播路由的确定方法,包括:
根据软件定义网络SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,确定由源节点到多个目的节点的多个路径组,其中,所述全局约束条件包括:每个路径组中包括源节点到每个目的节点的一条路径,所述全局约束条件还包括:预设链路约束条件,确定由源节点到多个目的节点的各个路径组中的各条链路都满足预设链路约束条件,所述局部约束条件根据各个目的节点的实际需求确定,针对每个目的节点,源节点到该目的节点路径的局部约束条件包括:源节点到该目的节点的路径的服务质量QoS指标和体验质量QoE指标中至少一项满足对应的指标阈值,所述路径组中源节点到每个目的节点的路径满足对应的局部约束条件;
针对每个路径组,根据所述路径组对网络资源的占用信息,确定所述路径组关于至少一项预设优化指标的值;所述至少一项预设优化指标包括:至少一种网络资源的占用总量;
根据各个路径组关于各项预设优化指标的值,选取一个路径组作为所述源节点到各个目的节点的组播路由。
2.根据权利要求1所述的确定方法,其中,
所述根据SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,确定由源节点到多个目的节点的多个路径组包括:
根据SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,利用进化算法确定由源节点到多个目的节点的多个路径组;
其中,每个路径组表示一个个体,每个路径组中任意两个节点之间的链路的长度表示一个基因,每个路径组中源节点到每个目的节点经过的各条链路的长度形成二维染色体。
3.根据权利要求2所述的确定方法,其中,
所述根据SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,利用进化算法确定由源节点到多个目的节点的多个路径组包括:
根据SDN中各个节点之间的链路,全局约束条件,源节点到每个目的节点的路径对应的局部约束条件,以及初始种群规模,生成初始种群;所述初始种群包括多个个体;
在每次迭代过程中,对当前种群中个体执行变异、交叉和选择操作,生成下一代种群中的个体,直至满足预设停止条件;
其中,所述下一代种群中的个体对应的源节点到每个目的节点的路径满足对应的局部约束条件,并且所述下一代种群中的个体满足全局约束条件。
4.根据权利要求3所述的确定方法,其中,
所述根据SDN中各个节点之间的链路和种群规模,生成个体,作为初始种群包括:
根据全局约束条件,从各个节点之间的链路选取链路,随机生成预设数量的候选个体;
在所述候选个体对应的源节点到每个目的节点的路径不满足对应的局部约束条件的情况下,将所述候选个体删除;
从剩余的候选个体中,选取适应度值最大的候选个体,作为初始种群中的个体;
重复上述步骤,直至个体的数量达到所述初始种群规模。
5.根据权利要求4所述的确定方法,其中,
所述预设链路约束条件包括:至少一项链路指标分别符合与各项链路指标对应的预设范围;所述至少一项链路指标包括:长度、带宽、时延、抖动、丢包率、误码率中至少一项。
6.根据权利要求4所述的确定方法,其中,
所述适应度值是根据所述候选个体关于各项预设优化指标的值进行加权得到的。
7.根据权利要求3所述的确定方法,其中,
所述变异操作包括:
将当前种群中第p个体,作为目标个体;其中,1≤p≤P,p为正整数,P为当前种群的规模;
随机从当前种群中选取除目标个体以外的三个不同个体,根据以下方法生成变异个体:
根据公式确定uijp的值;其中,表示三个不同个体中第r1个个体中源节点到第j个目的节点的第i条链路长度,表示三个不同个体中第r2个个体中源节点到第j个目的节点的第i条链路长度,表示三个不同个体中第r3个个体中源节点到第j个目的节点的第i条链路长度,r1≠r2≠r3≠p,p,r1,r2,r3∈[1,P],为正整数,1≤i≤N,i为正整数,N为源节点到任意目的节点的链路数目的最大值,1≤j≤M,j为正整数,M为目的节点的数量,F∈[0,2];
8.根据权利要求7所述的确定方法,其中,
所述交叉操作包括:
将所述目标个体与所述变异个体,根据以下公式进行交叉,得到试验个体:
其中,vijp表示试验个体中源节点到第j个目的节点的第i条链路长度,CR∈[0,1],为交叉概率,lijp表示目标个体中源节点到第j个目的节点的第i条链路长度;rand(0,1)表示0至1之间均匀分布的随机数,rand(1,N)表示1至N之间均匀分布的随机数,rand(1,M)表示1至M之间均匀分布的随机数;
根据试验个体中的各个vijp,确定试验个体对应的路径组是否包含源节点到每个目的节点的一条路径;
在试验个体对应的路径组未包含源节点到每个目的节点的一条路径的情况下,重新执行所述变异操作和交叉操作,直至试验个体对应的路径组包含源节点到每个目的节点的一条路径。
9.根据权利要求8所述的确定方法,其中,
在试验个体对应的路径组包含源节点到每个目的节点的一条路径的情况下,确定试验个体对应的源节点到每个目的节点路径是否满足对应的局部约束条件;
在试验个体对应的确定源节点到每个目的节点路径不满足对应的局部约束条件的情况下,重新执行所述变异操作和交叉操作,直至源节点到每个目的节点路径满足对应的局部约束条件。
10.根据权利要求8所述的确定方法,其中,
所述选择操作包括:
比对所述试验个体的适应度值和目标个体的适应度值;
选取适应度值小的试验个体或目标个体,作为下一代种群中的个体;
其中,所述试验个体或目标个体的适应度值是分别根据所述试验个体或目标个体关于各项预设优化指标的值进行加权得到的。
11.根据权利要求9所述的确定方法,其中,
所述选择操作包括:
比对所述试验个体的适应度值和目标个体的适应度值;
选取适应度值小的试验个体或目标个体,作为下一代种群中的个体;
其中,所述试验个体或目标个体的适应度值是分别根据所述试验个体或目标个体关于各项预设优化指标的值和惩罚函数值确定的;
其中,所述惩罚函数值是根据源节点到每个目的节点路径的QoS指标和QoE指标中至少一项与对应的指标阈值的差值确定的。
12.根据权利要求3所述的确定方法,其中,
所述预设停止条件包括:达到预设迭代次数,或者生成下一代种群中的个体对应的路径组关于一个或多个预设优化指标的值分别达到各个预设优化指标对应的预设值,或者生成下一代种群中的个体对应的路径组关于一个或多个预设优化指标的值与初始种群中个体对应的路径组关于一个或多个预设优化指标的值的差值分别达到各个预设优化指标对应的预设差值。
13.根据权利要求1所述的确定方法,其中,
所述网络资源包括:链路长度、链路带宽、节点计算能力、节点功耗中至少一项。
14.根据权利要求1所述的确定方法,其中,
在所述路径组中多条路径复用同一条链路或节点的情况下,确定所述路径组关于各项预设优化指标的值,该链路或该节点对应的网络资源的占用量只计算一次。
15.根据权利要求1所述的确定方法,其中,
在所述路径组中各条链路或各个节点对应网络资源的占用信息形成二维数组,所述二维数组每个元素表示该路径组中一条链路或一个节点对应网络资源的占用信息;
在所述二维数组呈对称结构的情况下,根据所述二维数组的对称结构简化利用所述二维数组计算所述路径组关于各项预设优化指标的值的过程。
16.一种组播路由的确定装置,包括:
第一确定模块,用于根据软件定义网络SDN中各个节点之间的链路,全局约束条件以及源节点到每个目的节点的路径对应的局部约束条件,确定由源节点到多个目的节点的多个路径组,其中,所述全局约束条件包括:每个路径组中包括源节点到每个目的节点的一条路径,所述全局约束条件还包括:预设链路约束条件,确定由源节点到多个目的节点的各个路径组中的各条链路都满足预设链路约束条件,所述局部约束条件根据各个目的节点的实际需求确定,针对每个目的节点,源节点到该目的节点路径的局部约束条件包括:源节点到该目的节点的路径的服务质量QoS指标和体验质量QoE指标中至少一项满足对应的指标阈值,所述路径组中源节点到每个目的节点的路径满足对应的局部约束条件;
第二确定模块,用于针对每个路径组,根据所述路径组对网络资源的占用信息,确定所述路径组关于至少一项预设优化指标的值;所述至少一项预设优化指标包括:至少一种网络资源的占用总量;
选取模块,用于根据各个路径组关于各项预设优化指标的值,选取一个路径组作为所述源节点到各个目的节点的组播路由。
17.一种组播路由的确定装置,包括:
处理器;以及
耦接至所述处理器的存储器,用于存储指令,所述指令被所述处理器执行时,使所述处理器执行如权利要求1-15任一项所述的组播路由的确定方法。
18.一种非瞬时性计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现权利要求1-15任一项所述组播路由的确定方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010233874.7A CN113472671B (zh) | 2020-03-30 | 2020-03-30 | 组播路由的确定方法、装置和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010233874.7A CN113472671B (zh) | 2020-03-30 | 2020-03-30 | 组播路由的确定方法、装置和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113472671A CN113472671A (zh) | 2021-10-01 |
CN113472671B true CN113472671B (zh) | 2023-05-02 |
Family
ID=77864909
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010233874.7A Active CN113472671B (zh) | 2020-03-30 | 2020-03-30 | 组播路由的确定方法、装置和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113472671B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114244689A (zh) * | 2021-12-13 | 2022-03-25 | 中国电信股份有限公司 | Sdn网络的维护方法、装置、电子设备和可读介质 |
CN114866461A (zh) * | 2022-04-28 | 2022-08-05 | 抖动科技(深圳)有限公司 | Rtc流媒体自适应传输方法、装置、设备及存储介质 |
CN116720638B (zh) * | 2023-04-13 | 2024-03-26 | 广东工业大学 | 一种基于改进进化算法的逆最短路权重调整方法及系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088333A (en) * | 1996-11-20 | 2000-07-11 | Electronics And Telecommunications Research Institute | Multicast routing method using path overlapping efficiency in VP-based on ATM networks |
WO2004071032A1 (ja) * | 2003-02-07 | 2004-08-19 | Nippon Telegraph And Telephone Corporation | マルチキャスト転送経路設定方法、及びそれを実現するためのマルチキャストラベルスイッチング方法 |
FR2902255A1 (fr) * | 2006-06-12 | 2007-12-14 | Airbus France Sas | Procede de routage de liens virtuels dans un reseau a commutation de trames |
CN101677286A (zh) * | 2008-09-19 | 2010-03-24 | 中国电信股份有限公司 | 承载网络优化方法 |
CN106535012A (zh) * | 2016-11-23 | 2017-03-22 | 重庆邮电大学 | 基于遗传算法优化组播光森林的能效路由频谱分配方法 |
CN107995109A (zh) * | 2016-10-27 | 2018-05-04 | 中国电信股份有限公司 | 路由方法及路由设备 |
CN108040012A (zh) * | 2017-12-05 | 2018-05-15 | 西南交通大学 | 基于天牛须搜索的sdn网络中多目标组播路由路径构建方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5291477A (en) * | 1992-08-10 | 1994-03-01 | Bell Communications Research, Inc. | Method and system for multicast routing in an ATM network |
US7644182B2 (en) * | 2004-03-11 | 2010-01-05 | Hewlett-Packard Development Company, L.P. | Reconfiguring a multicast tree |
CN1731761A (zh) * | 2005-08-05 | 2006-02-08 | 武汉理工大学 | 一种基于混合蚂蚁算法的QoS多播路由的方法 |
WO2008133230A1 (ja) * | 2007-04-20 | 2008-11-06 | Nec Corporation | マルチキャストツリー設計装置および方法ならびにプログラム |
CN101043444A (zh) * | 2007-04-26 | 2007-09-26 | 浙江大学 | 基于蚁群优化的分布式服务质量多播路由方法 |
US20090122753A1 (en) * | 2007-10-01 | 2009-05-14 | Hughes Timothy J | Dynamic data link segmentation and reassembly |
CN101777990B (zh) * | 2010-01-15 | 2012-05-23 | 西安电子科技大学 | 多目标免疫优化组播路由路径选择方法 |
CN104901892A (zh) * | 2015-06-03 | 2015-09-09 | 安徽理工大学 | 一种基于蚁群算法的QoS组播路由优化器及其实现方法 |
CN110290069B (zh) * | 2019-06-18 | 2020-08-18 | 西安交通大学 | 一种sdn场景下的可靠组播路由方法 |
-
2020
- 2020-03-30 CN CN202010233874.7A patent/CN113472671B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6088333A (en) * | 1996-11-20 | 2000-07-11 | Electronics And Telecommunications Research Institute | Multicast routing method using path overlapping efficiency in VP-based on ATM networks |
WO2004071032A1 (ja) * | 2003-02-07 | 2004-08-19 | Nippon Telegraph And Telephone Corporation | マルチキャスト転送経路設定方法、及びそれを実現するためのマルチキャストラベルスイッチング方法 |
FR2902255A1 (fr) * | 2006-06-12 | 2007-12-14 | Airbus France Sas | Procede de routage de liens virtuels dans un reseau a commutation de trames |
CN101677286A (zh) * | 2008-09-19 | 2010-03-24 | 中国电信股份有限公司 | 承载网络优化方法 |
CN107995109A (zh) * | 2016-10-27 | 2018-05-04 | 中国电信股份有限公司 | 路由方法及路由设备 |
CN106535012A (zh) * | 2016-11-23 | 2017-03-22 | 重庆邮电大学 | 基于遗传算法优化组播光森林的能效路由频谱分配方法 |
CN108040012A (zh) * | 2017-12-05 | 2018-05-15 | 西南交通大学 | 基于天牛须搜索的sdn网络中多目标组播路由路径构建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113472671A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113472671B (zh) | 组播路由的确定方法、装置和计算机可读存储介质 | |
CN106656598B (zh) | 电力通信网关键业务备选路由配置方法及系统 | |
CN109951391B (zh) | 一种基于多QoS约束的网络路径快速计算方法 | |
Reis et al. | A biased random‐key genetic algorithm for OSPF and DEFT routing to minimize network congestion | |
Liu | Intelligent routing based on deep reinforcement learning in software-defined data-center networks | |
CN113794638B (zh) | 基于差分进化算法的sdn数据中心网络大象流调度方法 | |
Banerjee et al. | Multiobjective network design for realistic traffic models | |
Doshi et al. | Multi-constraint QoS disjoint multipath routing in SDN | |
CN115907038A (zh) | 一种基于联邦拆分学习框架的多元控制决策方法 | |
El-Alfy et al. | A Pareto-based hybrid multiobjective evolutionary approach for constrained multipath traffic engineering optimization in MPLS/GMPLS networks | |
CN113285832A (zh) | 基于nsga-ii的电力多模态网络资源优化分配方法 | |
CN117135059A (zh) | 一种网络拓扑结构、构造方法、路由算法、设备及介质 | |
CN114745322B (zh) | Sdn环境下基于遗传算法的视频流路由方法 | |
CN107749819B (zh) | 一种栅格网络条件下的路由选择方法及装置 | |
CN112333102B (zh) | 基于知识图谱的软件定义网络路由选择方法和系统 | |
CN114298431A (zh) | 一种网络路径选择方法、装置、设备及存储介质 | |
CN114726770A (zh) | 一种应用于分段路由网络环境的流量工程方法 | |
El-Alfy | Flow-based path selection for Internet traffic engineering with NSGA-II | |
Moza et al. | Finding K shortest paths in a network using genetic algorithm | |
CN106713165B (zh) | 网络编码环境下优化负载均衡的方法 | |
Han | Optimal routing path calculation for SDN using genetic algorithm | |
Andrade et al. | Analysis of selection and crossover methods used by genetic algorithm-based heuristic to solve the lsp allocation problem in mpls networks under capacity constraints | |
Kiasari et al. | An accurate mathematical performance model of adaptive routing in the star graph | |
Zhang et al. | Supervised learning based resource allocation with network slicing | |
CN111542078B (zh) | 一种nfv环境下核心网控制面弹性资源分配方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |