1. 引言
网络中基于特定优化目标的路径设计广泛应用于许多研究领域,并主要采用赋权图构建网络拓扑结构以及问题优化模型。文献 [1] 在有向赋权图中设计了多目标路径搜索方式。在网络中,为了保证传输路径的容错性,多路径设计具有非常重要的意义。以无线传感网络为背景,文献 [2] 设计了智能优化算法构建源节点到目标节点的k条不相交路径。在交通网络中,如果在确定的运输点之间想要找到多条节点不相交的路径,那么当个别路径故障之后依然能保持交通网络的连通性。文献 [3] 研究了在有向无圈图和3连通平面图中寻找两条不相交路径问题并给出有效算法。其中对不相交路径性能的优化目标也是多样化的,比如选择的不交路径满足所有路径中最长的路径权值尽可能小,这类问题就是寻找Min-Max不相交路径。文献 [4] 在有向无圈图中设计出寻找两条不相交路径的近似算法,问题的解决引用了文献 [3] 的PSA算法构建一般图的辅助图模型,在该模型下总共考虑了四种优化目标,分别为MinMax,Balanced,MinSum-MinMin和MinSum-MinMax。在一般图中,Balanced优化目标下寻找节点不相交路径问题和边不相交路径问题是NP完全的。并且Shiloach [3] 等人已经证明在一般图上寻找Min-Max优化目标的节点不相交路径问题是NP完全的,在有向无圈图上,该问题具有伪多项式时间算法。Fleischer [4] 等人给出了在有向无圈图上寻找Min-Max优化目标下节点不相交路径问题的
近似算法。
然而在复杂的交通运输、网络设计和数据库系统等研究领域,一般图模型已经满足不了路径设计的需求,因此基于超图模型的超路径设计也被进一步研究。
超图模型在1966年首次被Berge提出 [5] ,超图的超边是包含两个及两个以上点的集合。超图模型被应用于公共交通领域 [6] [7] 、数据挖掘领域,比如对于知识图谱的关联规则的挖掘算法就是利用有向超图构建关联规则去发现知识短缺 [8] 。对于超图的路径优化问题现已设计出一些算法,比如最短超路搜索算法 [9] [10] [11] 、动态最短超路搜索算法 [12] 。关于超图中不相交超路的研究,文献 [13] 将超图的连通性与多路径设计问题联系起来并给出了超图中的Menger定理。
有向超图中的超边也叫作超弧,由尾节点集和头节点集两个节点集组成,方向从尾节点集指向头节点集,若超弧的头节点个数均为1时就称该有向超图为反向超图。文献 [14] 给出了反向超路的定义并设计了最短反向超树搜索算法。反向超路模型也逐渐被应用于通信网络、分子生物等科学研究领域 [15] 。本文考虑节点不相交超路径并提出了在无圈反向超图中寻找满足Min-Max优化目标的两条点不相交反向超路问题,其中边赋权函数值为正整数。
本文首先构造了辅助反向超图模型,将二元点对作为辅助图中新的节点,基于反向超弧和不相交反向超路的结构特点定义辅助图中的节点关联函数使得在原反向超图中求Min-Max两条不相交反向超路问题转化为在辅助图上利用标签集寻找满足一定条件的同源反向超路,并给出具有伪多项式时间的精确算法。最后通过压缩标签集的容量,给出
近似算法。在得到有效解的同时降低了计算复杂度。
2. 概念与问题
2.1. 超图相关概念
超图
是由点集
和超边集
组成,其中每一条超边包含两个及两个以上节点的集合。有向超图由点集和有向超边集组成,有向超边就是将一条超边的节点集合分成尾节点集
和头节点集
,方向从尾节点集指向头节点集,也称为超弧。超弧E也被写作
。当
中只有一个点时,超弧E也叫做反向弧。若有向超图中的弧均为反向弧,那么也称为反向超图。在
中,所有以节点v为头节点的反向弧的集合记作
,该集合中的每一条弧称为点v的后向弧。
超路是超图中的一个点边集序列,从s到t的一条超路表示为
,
,
,
,
。如果
,则
是一个圈 [3] 。
在反向超图
中,反向超路(B超路)
是从s到t使用最少的反向弧使得
上的每一点x都有从s到x的简单无圈超路。
在赋权反向超图中,每条超弧E都有权值
。给定一条反向超路
的权值计算方式:假设沿着路
到达点v的子路记作
,则
。
特别地,当反向弧的权值均为1时,路权记作路的长度
。
2.2. Min-Max不相交反向超路问题
Min-Max不相交反向超路问题:在反向超图
中,每条反向超弧的权值均取正整数,给定两个节点
,寻找从s到t的两条节点不相交反向超路
使得两条路的最大权值能够达到最小。
目标函数:
,其中
是反向超路
的路权。
3. 辅助超图模型
给定有向无圈反向超图
,权值
取正整数。给定源节点s和目标节点t,为了寻找从s到t的不交反向超路,把s记作
,把t记作
,按照弧的方向将节点从小到大排序,序号大的节点不存在弧指向序号小的节点。因为
无圈,从t出发的反向弧不会再回到t,所以把从t出发的反向弧均删去成为新
。根据新
构建辅助超图
,令
在
中,第一个集合中的超弧记作水平弧,第二个集合中的超弧记作纵向弧。图1 给出一个反向超图,其对应的辅助超图如图2。

Figure 1. A backward acyclic hypergraph
with 4 nodes
图1. 节点个数为4的无圈反向超图

Figure 2. The auxiliary hypergraph of
图2.
的辅助超图
定义1在
中,若反向超路
上的点满足:
· 对确定的i,从
沿着路P到达任意点
的子路上的纵向弧对应在
上的反向弧集合相同。
· 对确定的j,从
沿着路P到达任意点
的子路上的水平弧对应在
上的反向弧集合相同。
则
是一条同源反向超路。
引理1在
中,给定源节点s和图中任意两点
,不相交反向超路
存在当且仅当在对应的辅助超图
中存在同源反向超路
。
证明:充分性:令
是两条不交反向超路,对
进行数学归纳。当
时,两条节点不相交B超路分别为
,
,在
中
显然是同源反向超路。
当
,假设当
时,结论成立。记
,
。不妨设
中顶点的下标的最小值小于
中顶点的下标的最小值,记
那么对每一个尾节点
都满足
,根据数学归纳法,在
中存在从
到
的同源反向超路
。然后令
,根据有向无圈超图中的节点序号的排列顺序,有
,故
,这样我们得到了一条反向超路
,因为在
对中,确定的
只有一个节点
,根据数学归纳法,
上的水平弧对应在
上的反向弧集合是相同的。故该反向路是一条同源反向超路。
必要性:若同源反向超路
存在,当
,将P中的水平弧对应在
中的反向弧放到
中并删去冗余的反向弧即相同的反向弧,如 图2 中
和
对应在
中的反向弧为同一个
。同样地,将P中的纵向弧对应在
中的反向弧放到
中并删去冗余的反向弧,得到
,
,
。
假设当
时,根据归纳假设结论成立,且有
。当
时,不妨设在该反向路的最后一条弧为
那么
上的子路
,根据上面
的构造方式以及归纳假设,有
和
是两条不交B路。根据有向无圈B超图的节点排序规律,由于
。故节点
也不在
上,那么
也是两条不相交反向超路。
例如在图2中,显然节点
和
不连通,这是由于在
中从
到
不存在两条不相交反向超路,故辅助超图中节点
和
不存在同源反向超路。
4. Min-Max不相交反向超路算法
基于上述辅助图的构造和定理,在原超图中找两条不相交反向超路问题可以转化为在辅助图中寻找同源反向超路问题。所以结合辅助超图给出算法去找从s到t的Min-Max节点不相交反向超路。该算法在限定反向弧的尾节点个数不超过常数
的反向超图上求解。为了记录辅助超图中同源反向超路分别对应的两条不交路的权值,每到达一个点就记录一个标签L存储两条路的权值和前继点,该标签方法在文献 [1] 中寻找一般图不相交路径被提出。到达点
的标签记为
,X和Y分别用来标记辅助图中到达点
的同源反向超路P对应到原图中两条不相交反向超路的权值,分别记作纵向权值和水平权值。值得注意的是这里的纵向权值(水平权值)并不是路P上纵向弧(水平弧)的权值的和,该值与第1节中反向超路的权值定义一致。Pred记录了路P上点
前继点和前继点的纵向权值和水平权值。节点
的所有标签均存储在
中。算法1计算辅助图中每一个节点的标签集,当算法结束的时候,在
上的标签集中
达到最小的标签对应的同源反向超路就是最优Min-Max不相交反向超路对应的同源反向超路。算法2计算从
到
的最优同源反向超路,会用到算法1得到的目标节点
的标签集
。算法3进行路径回溯,得到Min-Max不相交反向超路问题的最优解。
下面3小节分别给出这三个算法的具体步骤,并给出算法的正确性的证明和复杂度。
4.1. 计算标签集
给定反向超图
,利用第3节的模型构造得到辅助超图
,在辅助图上执行算法1计算每一个顶点的标签值
。
首先初始化标签集合
,该集合包含点
的所有标签
,同时令源节点的标签集为
。接下来按照节点顺序计算每一个点的标签集,对每一个点
寻找它的后向弧即以它为头节点的反相弧并记作
。把后向弧分成水平弧和纵向弧分别进行计算。
如果此刻考虑的后向弧是水平弧,接着判断该弧的尾节点的个数并记为
,将该弧的每一个尾节点
的标签同时取出来一个比较纵向权值,因为根据同源反向超路的定义,到达这
个节点的纵向权值需要相同,即对应到原超图
上,到达节点i的反向超路是相同的,权值也一定相等。所以当判断条件
成立时,追溯两条纵向路是否相同,如果相同,那么就可以执行第11~13行去计算沿着弧
到达点
的水平权值。首先记
,再加
的权值,令
赋值给点
新标签的水平权值。根据B超路权值定义,为
计算新的标签值并放入
中。如果节点的后向弧
是纵向弧,那么尾节点就变成
,处理方法同上。
下面给出算法1的伪代码。
Algorithm 1. The calculation of the label set
算法1. 计算标签集
定理1. 在
中,对任意点
,如果存在从
到
的同源反向超路P,令
,
,当算法结束时,存在
且
中仅包含同源反向超路对应的标签。
证明:对
数学归纳,当
时,
,在初始化步骤中算法设置了
。假设
时结论成立。当
时,若路P上的最后一条反向弧的尾节点为
,不妨设最后一条反向弧为
,沿着路P从
到
的反向超路记为
,并且记
,
,根据超路权值计算方式得到
,
。因为
,
,由归纳得
。若满足第10行的条件
,执行第11~13行,得到新的标签
并存入
中,根据第2节反向超路权值的计算方式可得
。所以
中存在
。
还需证明
中仅包含同源有向B路对应的标签。反证法:假设
存在
对应了一条非同源有向B超路P,则在P上至少存在两个点
(或
)沿着路P到达这两点的纵向弧(或水平弧)不相同,不妨设为
,沿着路P到达这两点的纵向路分别记作
,根据第12行的判断条件,由于
并不会执行后面建立新标签的步骤,故不会放到
中,矛盾。
复杂度:第3~4行需要
次循环,第5行寻找后向边最多为m条边,第7行的循环次数为
,最多不超过
。第9行的路径回溯需要
的复杂度,所以算法1的复杂度为
,其中
是标签集的最大容量,
为权值的最大值。
4.2. Min-Max不相交反向超路算法
算法2为Min-Max不相交反向超路算法,该算法为主算法。首先调用算法1得到节点
的标签集
。其次对
中每一个标签的水平权值和纵向权值的最大值即
进行比较,如
若较小就赋给
,最终得到的
就是最优解
。最后调用算法3得到
对应的两条不相交反向超路
。
下面给出算法2的具体步骤:
Algorithm 2. Min-Max disjoint backward hyperpaths algorithm
算法2. Min-Max不相交反向超路
定理2:算法2输出的
是最优解。
证明:假设最优解为
,权值分别为
和
。根据引理1,在
中存在同源反向超路
与之对应。令
,根据算法1的正确性,
。若算法2没有输出最优解
对应的标签
,假设输出了另外一条同源反向路
对应的标签
,算法中对标签进行比较后选较小者,所以
。由于
是最优解,那么一定有
,得出矛盾。故算法2输出的
是Min-Max不相交反向超路的最优解。
复杂度:执行算法1需要
,对
中的每一个标签比较,复杂度为
,最后路径回溯复杂度为
,以上三个过程没有嵌套关系,故算法2的复杂度为
,其中
为标签集的最大容量,
,
为权值的最大值。
4.3. 标签回溯算法
标签回溯算法是算法1和算法2调用的子算法,利用标签集得到在
中对应的两条不交反向超路。首先输入已有的标签集、到达的节点
和标签
。现设定队列N满足先进先出原则,初始只有
并将其出队。因为要回溯到源节点
,而
,只要当出队标签的
说明需要继续回溯。根据前继点判断前继弧是水平弧还是纵向弧,如果是水平弧即
就将
中的反向弧
加到
中,如果是纵向弧即
就将反向弧
加到
中。为了从前继点继续追溯,将每一个
入队到N,返回循环直至N为空。下面给出算法步骤:
Algorithm 3. Label backtracking algorithm (BACK)
算法3. 标签回溯算法
复杂度:根据有向无圈图的排序原则,到达
和
的路上最多有
和
个点,回溯时最多有
个点入队到N且最多仅入队1次,所以循环次数最多为
次,计算复杂度为
。
5. 近似算法
基于上述求Min-Max不相交反向超路问题的最优解,本节通过对路径权值的近似,降低了算法1中每一个节点的标签数量,进而设计了
近似算法降低了计算复杂性。
首先依照第3节构建辅助超图模型。其次,对每一个节点
,建立新标签集合
并将其新标签记为
,其中
,
,
,并且令
,当
时,
。接下来给出新标签计算算法,具体步骤如下。
在初始化过程中,令每一个节点
的新标签为
,接下来初始化源节点
的新标签为
。
接下来改进算法1计算对各点的新标签。算法1中第3~5行循环条件不变,当遍历的反向弧为水平弧时,将第7行变为对
中的每一个
进行比较,8~11行步骤不变,第12行替换为
。当
时,为了删除部分冗余的标签,如果
,执行第13行
和
,否则不更新
。当遍历的反向弧为纵向弧时,将第20行变为对
中每一个
进行比较,21~24行步骤不变,第25行替换为
。如果
时,为了删除部分冗余的标签,如果
,执行第26行
,否则不更新
。
由于标签有了变化,通过执行上述算法,将反向超路的两个权值存储到了
以内的新标签中,并且在
内的标签由于压缩出现重复值,我们添加了
条件筛选出冗余的标签,执行算法4在
中比较
存储的
,得到近似解
。具体步骤如下:
Algorithm 4. Approximation algorithm for Min-Max target
算法4. Min-Max目标近似算法
引理2:假设在
中存在一条从
到
同源有向B超路P,令
,当近似算法结束时,节点
存在新标签
使得
,
。
证明:对
进行归纳,当
时,由于初始化中在
中只有
,显然满足结论。当
时,假设结论成立。令
,假设在
中存在一条从
到
同源反向超路P,不妨假设超路P上点
的后向弧为
,沿着P到达点
的纵向权值和水平权值分别记为
,
,则可以得到
,
。又因为
,所以
,由归纳假设,节点
的标签集中存在标签
满足
节点
的新标签为
。令
和
,得
,
由于
所以
定理3:Min-Max不相交反向超路近似算法得到
近似解。
证明:假设从
到
最优解为
,并且其对应的权值分别为
,近似算法得到的解为
。根据引理2,节点
存在标签
使得
和
。因为
,所以
,
。那么
因此,该不相交反向超路近似算法得到了
近似解。
复杂度:Min-Max不相交反向超路近似算法的复杂度为
,其中
,
为反向弧权值的最大值。该近似算法的复杂度计算过程与4.2节类似,在此不再赘述。
6. 结语
在本篇论文中,我们研究了在无圈反向超图中寻找固定源节点到目标节点间的两条点不相交反向超路的设计优化问题,采用Min-Max作为优化目标。通过建立辅助超图模型,将原反向超图的Min-Max不交超路问题转化为在辅助超图中找一条具有两个边权函数的同源反向超路优化问题。当给定反向弧尾节点个数的上限
时,给出算法1计算辅助超图中目标节点的标签,从而通过算法2获得了满足Min-Max目标的同源反
向超路,在算法2中调用算法3得到不相交反向超路问题的最优解。主算法的复杂度为
,其中
。为进一步降低该伪多项式算法的计算复杂性,本文设计了复杂度为
的
近似算法,其中
。之后我们将继续在网络中多路径优化方面进行研究,包括Min-Sum和限制
Min-Sum等不同的优化目标。该研究可以应用到不同的场景和复杂网络当中,为提高网络和路径容错性提供解决方案。