问题定义和应用:
独立路径:两条简单路径,如果除了端点外没有相同的顶点,则称这两条路径相互独立。k条路径两两相互独立则称这k条路径是k条独立路径。如图所示,红色和蓝色的两条路径是a和h之间的两条独立路径。
k独立路径单查询:
该问题有广泛的应用:
-
网络安全。在网络流量中,机密信息通过路径从源发送到目的地。我们可以将信息分成几个部分,用不相交的路径发送,以降低隐私泄露的风险。
-
网络容错。不相交的路径可以增强网络在路由方面的健壮性。例如,如果一条路径上的一些节点出现故障,导致该路径不可用于数据传输,则其不相交的路径充当重要的备份,因为它们不共享任何公共中间节点。
-
网络负载平衡。在传输大量数据时,我们可以将其分成多个较小的部分,并使用不相交的路径同时传输。这有助于网络平衡并减少拥塞。
-
对象检测。如果将对象轨迹视为路径,不相交的路径代表不同的对象。在化学和生物学中,不相交路径可用于检测化学反应中的不同物质,并揭示背后的机制。
-
路检测。在商业网络中,环通常表示非法行为,如洗钱。连接两个顶点的任意两条不相交的路径对应于一个环,可用于检测犯罪。社交网络。不相交的路径表示个体之间的独立连接,可以用于描述了人们社会关系的多样性。
在实践中,更常见的情况是同时发出多个kDP查询并以批处理模式进行处理。例如,随着互联网的快速发展,通信网络可能规模巨大,在短时间内可能会出现大量路由查询。这需要高吞吐量kDP处理。
逐个处理多个kDP查询是低效的。一旦在短时间内有许多查询,查询执行可能会超出系统能力,平均响应时间可能会显著增加。因此,有必要高效地处理多个kDP查询。
由此引出k独立路径多查询问题:
该问题的相关问题如下:
-
kDP
-
Dissimilar Path Finding
-
Batch kDP
-
Batch Query Processing
Kdp
为了保证相互独立,简单地将已经用过的顶点移除掉是不高效的,比如我们找到的第一条路径是p,如果p不在任何一个k条独立路径的解中,则所有以p为第一条路径的搜索都是不必要的。
除了这一方法可以来保证路径间的独立性,另外一种方法是将顶点独立路径问题转化为边独立路径问题,然后借助最大流中增广路径的方法来确保边独立,再转化回来以确保顶点独立。
1962年的方法:
1974年的改进:
Dissimilar Path Finding
问题定义以及和独立路径问题的关系:
三种主要的思路:
-
Penalty
-
Plateaus
-
Dissimilarity
Penalty:
Plateaus:
Dissimilarity:
可以注意到这个问题和k独立路径问题的关系如下图所示
Batch kDP
该问题的一个特例被广泛研究
两种主流思路:
-
cut vertex
-
order all vertices
cut vertex
order all vertices
Batch Query Processing
简单的思路是用单查询的算法依次解决多查询中的每个查询,但是这种方法在计算和存储上存在冗余。两种主要思路:
-
cache the results
-
merge the traversals
cache the results
merge the traversals
参考文献:
[1] Lester Randolph Ford Jr and Delbert Ray Fulkerson. 1962. Flows in networks. Vol. 54. Princeton university press.
[2] Shimon Even and Robert Endre Tarjan. 1975. Network flow and testing graph connectivity. SIAM J. Comput., 4, 4, 507–518.
[3] John W Suurballe. 1974. Disjoint paths in a network. Networks, 4, 2, 125–145.
[4] Lingxiao Li, Muhammad Aamir Cheema, Mohammed Eunus Ali, Hua Lu, and David Taniar. 2020. Continuously monitoring alternative shortest paths on road networks. Proc. VLDB Endow., 13, 11, 2243–2255.
[5] Theodoros Chondrogiannis, Panagiotis Bouros, Johann Gamper, Ulf Leser, and David B. Blumenthal. 2020. Finding k-shortest paths with limited overlap. VLDB J., 29, 5, 1023–1047
[6] You Peng, Xuemin Lin, Ying Zhang, Wenjie Zhang, Lu Qin, and Jingren Zhou. 2021. Efficient hop-constrained s-t simple path enumeration. VLDB J., 30, 5, 799–823
[7] A. ITAI AND M. RODEH, The multi-tree approach to reliability in distributed networks, in “Proceedings 25th Annual IEEE Sympos. on Found. of Comput. Sci., 1984,” pp. 137-147.
[8] Giridhar Jayavelu, Srinivasan Ramasubramanian, and Ossama Younis. 2009. Maintaining colored trees for disjoint multipath routing under node failures. IEEE/ACM Trans. Netw., 17, 1, 346–359.
[9] L. Georgiadis and R. E. Tarjan, “Dominators, directed bipolar orders, and independent spanning trees,” in Proc. 39th Int’l. Coll. on Automata, Languages, and Programming, 2012, pp. 375–386.
[10] Muriel Medard, Steven G Finn, Richard A Barry, and Robert G Gallager. 1999. Redundant trees for preplanned recovery in arbitrary vertex-redundant or edge-redundant graphs. IEEE/ACM Transactions on networking, 7, 5, 641–652.
[11] Xuguang Ren and Junhu Wang. 2016. Multi-query optimization for subgraph isomorphism search. Proc. VLDB Endow., 10, 3, 121–132.
[12] Jeppe Rishede Thomsen, Man Lung Yiu, and Christian S. Jensen. 2012. Effective caching of shortest paths for location-based services. In SIGMOD 2012. ACM, 313–324.
[13] Manuel Then, Moritz Kaufmann, Fernando Chirigati, Tuan-Anh Hoang-Vu, Kien Pham, Alfons Kemper, Thomas Neumann, and Huy T. Vo. 2014. The more the merrier: efficient multi-source graph traversal. Proc. VLDB Endow., 8, 4, 449–460.