[英]Find Minimum Vertex Connected Sub-graph
首先,我不得不承認我不擅長圖論。
我有一個弱連通的有向圖G=(V,E)
,其中V
約為 1600 萬, E
約為 1.8 億。
對於給定的集合S
,它是V
的子集( S
的大小約為 30),是否有可能找到弱連接子圖G'=(V',E')
其中S
是V'
的子集V'
但盡量保持V'
和E'
的數量盡可能小?
圖G
可能會發生變化,我希望有一種方法可以實時找到子圖。 (當一個進程正在寫入G
時, G
將被鎖定,因此當您的子圖計算仍在運行時,不要擔心G
會被更改。)
我目前的解決方案是為S
中的每對頂點找到最短路徑並合並這些路徑以獲得子圖。 結果還可以,但是運行時間非常昂貴。
有沒有更好的方法來解決這個問題?
如果您對當前方法的結果感到滿意,那么至少可以更快地完成:
將 S 中的每個頂點分配給不相交集合數據結構中的集合: https://en.wikipedia.org/wiki/Disjoint-set_data_structure 。 然后:
另一種考慮做完全相同的事情的方法:
這不一定會找到最小的子圖,但會最小化它與 S 的最大距離。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.