【技术实现步骤摘要】
一种斯坦纳树构建方法及装置
[0001]本文涉及组合优化领域,尤其涉及一种斯坦纳树构建方法及装置。
技术介绍
[0002]无向带权连通图G=(V,E)、边成本和一组终端,图的斯坦纳树(Steiner tree)问题是找到包含T中所有节点的树使得c(E(S))最小化,是组合优化中研究最多的问题之一。斯坦纳树问题概括了最短路径和最小生成树两个经典的组合优化问题,被确认是一个经典的NP完全问题。在实践中,许多应用场景可以建模为斯坦纳树问题或密切相关的问题,斯坦纳树在超大规模集成电路设计(VLSI)、电信网络、生物学中的系统发育树重建、路由、土木工程、降阶回溯算法、量子蚁群算法以及许多其他领域有着广泛的应用。
[0003]现有技术中,单目标斯坦纳树构建方法多基于局部最优原理实现,例如基于最小生成树(Minimum Spanning Tree MST)的构造方法,该方法主要步骤包括:(1)为迭代起点集构造最小生成树MST;(2)添加斯坦纳节点到迭代起点集,为扩增的迭代起点集重新构造MST以获得c(E(MST))更小的最小生成树。
[0004]现有技术中,多目标斯坦纳树构建方法主要基于epsilon约束的方法,该方法的主要步骤包括:(1)任选一个优化目标为待处理优化目标,把其它优化目标转化为限制,将多目标优化问题转化为一系列的单目标优化问题;(2)调整限制值,求解各单目标优化问题的帕累托(Pareto)最优解;(3)用决策器从获得的Pareto最优解中选出最优选的解决方案。
[0005]已有斯坦纳树构建方 ...
【技术保护点】
【技术特征摘要】
1.一种斯坦纳树构建方法,其特征在于,包括:获取目标业务场景下的无向带权连通图;根据无向带权连通图以及预设的优化目标和迭代起点,确定各优化目标的子图及子图中各节点的子重要度,其中,各优化目标的子图具有多个路径长度的路径,子图中各节点的子重要度为子图中节点在子图相关优化目标下的重要度;合并各优化目标的子图得到综合图,根据子图中各节点的子重要度及各优化目标的合成权重,计算综合图中各节点的综合重要度;根据综合图中各节点的综合重要度,确定综合图的斯坦纳树。2.如权利要求1所述的方法,其特征在于,所述方法还包括:S21,根据子图中各节点的子重要度,确定子图的斯坦纳树;S22,根据各子图的斯坦纳树,确定各优化目标在子图上的目标值;S23,根据综合图的斯坦纳树,确定各优化目标在综合图上的目标值;S24,根据各优化目标在子图上的目标值、各优化目标在综合图上的目标值及各优化目标的偏好权重,计算最大优化偏差差异值;S25,判断最大优化偏差差异值是否大于预定值且合成权重调整次数小于上限值,若判断结果为是,则按照预设规则调整合成权重,重复计算最大优化偏差差异值的相关步骤及判断最大优化偏差差异值是否大于预定值且合成权重调整次数小于上限值的步骤;S26,反之,判断是否满足预设优化目标限制,若是,则综合图的斯坦纳树为最终斯坦纳树,若否,则按照预设规则调整合成权重,计算最大优化偏差差异值的相关步骤,判断合成权重调整次数是否小于上限值,若否,跳转到步骤S26,若是,跳转到步骤S25。3.如权利要求2所述的方法,其特征在于,根据无向带权连通图以及预设的每一优化目标和迭代起点,确定该优化目标的子图,包括:S31,根据优化目标,固定无向带权连通图中各节点间邻接边的邻接边权重;初始化无向带权连通图中迭代起点的最短路径信息,其中,所述最短路径信息包括最短路径长度及前驱节点,初始状态下迭代起点最短路径长度为零,前驱节点为空;S32,将已确定最短路径信息且有未处理邻接边的节点作为第一节点组成第一节点集;S33,确定第一节点的各未处理邻接边的关联信息,其中,未处理邻接边的关联信息包括操作节点集及静态移动权重,所述操作节点集为未处理邻接边两端节点中属于第一节点集的节点集合,静态移动权重根据操作节点集中节点的最短路径长度及所述未处理邻接边权重确定;从各第一节点的未处理邻接边中筛选静态移动权重最小的邻接边组成待处理邻接边集;S34,从待处理邻接边集中筛选出静态移动权重最小的待处理邻接边作为目标邻接边,更新累计移动步长为该最小的静态移动权重,对每一目标邻接边进行如下处理:S341,设置该目标邻接边为已处理;S342,若该目标邻接边的操作节点集包含一个节点,则为该目标邻接边的非第一节点确定包含该目标邻接边的最短路径信息,并判断该目标邻接边的非第一节点是否具有未处理邻接边,若是则将该目标邻接边的非第一节点加入至第一节点集中,并更新待处理邻接边的关联信息;
S343,若该目标邻接边的操作节点集包含两个节点且该目标邻接边的静态移动权重等于该目标邻接边的其中一端节点的最短路径长度,则为该端节点确定包含该目标邻接边的最短路径信息,设该端节点的邻接节点为p
j
,设经过邻接节点p
j
到达该端节点的最短路径上的迭代起点集合为set
j
,计算每两个迭代起点集合间的互差,设互差不为空的两个迭代起点集合中的迭代起点为t1,将从迭代起点t1经过节点p
j
至该端节点的最短路径上的邻接边和节点加入至子图中;S344,若该目标邻接边的操作节点集包含两个节点且该目标邻接边的静态移动权重大于该目标邻接边的两端节点的最短路径长度,则根据两端节点的最短路径,确定各端节点的迭代起点集合,计算各端节点的迭代起点集合间的互差,若互差不为空,则将该目标邻接边加入至子图中,设所述迭代起点集合中的迭代起点为t2,将从迭代起点t2至对应端节点的最短路径上的邻接边和节点加入至子图中;S345,从第一节点集中删除没有未处理状态邻接边的第一节点,更新待处理邻接边集;S346,判断所有迭代起点是否连接在一起,若否,则重复S34,若是,则得到最终的子图。4.如权利要求3所述的方法,其特征在于,根据操作节点集中节点的最短路径长度及所述未处理邻接边权重确定静态移动权重,包括:当操作节点集中包括一个节点时,静态移动权重的计算公式为:静态移动权重=未处理邻接边权重+操作节点集中节点的最短路径长度;当操作节点集中包括两个节点时,静态移动权重的计算公式为:静态移动权重=(该邻接边权重+操作节点集中两个第一节点的最短路径长度之和)/2)。5.如权利要求3所述的方法,其特征在于,设目标节点为待处理邻接边的非第一节点及端节点,为目标节点确定包含待处理邻接边的最短路径包括:设置目标节点的最短路径长度为当前累计移动步长,前驱节点新增目标邻接边的非目标节点。6.如权利要求3所述的方法,其特征在于,还包括:初始化时,为无向带权连通图中迭代起点关联联通集及合并集,其它节点关联联通集,迭代起点关联的联通集及合并集均包含自身节点,其它节点关联的联通集为空;S343将最短路径上的邻接边和节点加入子图后,将目标邻接边中已确定路径长度小的节点from关联的联通集合并后,传递给目标邻接边中已确定路径长度大的节点to;将该节点to关联的联通集中迭代起点关联的合并集进行合并,得到新合并集,并将新合并集内所有的迭代起点均关联新合并集;S344将最短路径上的邻接边和节点加入子图后,将目标邻接边的两个端节点关联的联通集中的迭代起点关联的合并集进行合并,得到新合并集,并将新合并集内所有的迭代起点均关联新合并集;判断所有迭代起点是否连接在一起包括:判断迭代起点关联的合并集中是否包含所有迭代起点,若是,则确定所有迭代起点均连接在一起。7.如权利要求3所述的方法,其特征在于,S346确定所有迭代起点均连接在一起之后,还包括:根据当前累计移动步长利用如下公式确定阈值:
K0
×
当前累计移动步长,其中,2>=K0>=1;重复执行步骤S34,直至第一节点集为空或累计移动步长等于阈值为止,得到最终的子图。8.如权利要求2所述的方法,其特征在于,所述子图中节点的子重要度确定过程包括:根据子图、非迭代起点到迭代起点的最短路径及子图对应的优化目标的重要度计算方法,计算子图中非迭代起点的子重要度;初始化子图中迭代起点的子重要度大于子图中非迭代起点的最大子重要度。9.如权利要求8所述的方法,其特征在于,根据子图、非迭代起点到迭代起点的最短路径及子图对应的优化目标的重要度计算方法,计算子图中非迭代起点的子重要度包括:根据优化目标和子图中迭代起点间的不同路径中使用的邻接边,统计迭代起点间邻接边的使用次数,其中,邻接边的使用次数初始化为:1+该邻接边所在路径上该邻接边无法直接到达的迭代起点的数量;根据邻接边的使用次数和邻接边的权重,计算非迭代起点到迭代起点的最短路径,进而根据所述最短路径计算子图中非迭代起点的重要度。10.如权利要求2所述的方法,其特征在于,根据子图中各节点的子重要度及各优化目标的合成权重,计算综合图中各节点的综合重要度,包括:利用如下公式计算综合图中非迭代起点的综合重要度:d2t(p,S)=Σ(imp[i]
×
d2t(p,S
i
));其中,S表示综合图,p表示节点,d2t(p,S)表示综合图中各节点的综合重要度,imp[i]表示第i个优化目标的合成权重,S
i
表示第i个优化目标的子图,d2t(p,S
i
))表示第i个优化目标的子图中节点p的子重要度;设置综合图中迭代起点的综合重要度大于综合图中非迭代起点的综合重要度。11.如权利要求2所述的方法,其特征在于,设定待分析图为子图/综合图,待分析图中节点的重要度为子图中各节点的子重要度/综合图中各节点的综合重要度;待分析图的斯坦纳树确定过程包括:S1101,初始化斯坦纳树的边集及节点集为空;S1102,将待分析图中未加入到斯坦纳树的节点集中重要度最大的节点加入至斯坦纳树的节点集中;S1103,判断目标图中是...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。