是否有任何有效的算法來確定面向圖是否單向連接?單邊連接意味着圖形中從一個頂點到另一個頂點的方式不會超過一個。謝謝。查找定向圖是否單向連接的有效算法?
回答
其實我覺得你的定義是錯誤的,我重新檢查了好來源,我發現,一個directed graph is connected (or "unilaterally connected") if there is a path between any two vertices
也有
strictly unilaterally connected if it is not strongly connected
(和信息:it is "strongly connected" if there is a path in both directions between any two vertices
)
它實際上並沒有說「只有一條路」。所述scrictly單方面連接僅說,如果有從A到B的路徑,不存在從B到路徑A(但仍可以有從甲10點的路徑B)
Alghorithms:
對於「不嚴格」變體,您可以嘗試在每個節點上執行DFS。當DFS在節點「X」上結束時,記住所有未到達的節點「Y1,Y2,Y3 ...」。對於所有的人,如果你在上面運行DFS,他們必須達到X,否則圖不單方面連接
對於「嚴」變種它幾乎是相同的,但你也必須檢查節點「 Z1,Z2,Z3「 - 當節點」X「達到時 - 不能達到X,當你運行DFS時。
複雜性:
DFS本身是O(n + k)
(n爲節點,k是邊緣),則必須運行它n次(每個節點上),因此複雜性是O((n+k)*n)
如果您想要的最大複雜度只與節點相關,也是可能的。
邊緣的最大數目是O(k) = O(n^2)
,因此最大複雜度是O((n+n^2)*n) = O(n^3)
謝謝你,你完全正確。但是我需要一個算法來找出在任何兩個頂點之間是否沒有更多可能的路徑。在我的任務中,術語「單向連接圖」就像我以前寫的那樣定義。 –
- 1. 檢查有向圖是否強連接的算法
- 2. 知道是否連接了無向圖的最有效的算法
- 3. 確定是否無向圖連接
- 4. 用於查找有向圖的每個弱連接組件的算法
- 5. 連接向量的有效方法
- 6. 查找無向圖路徑的算法
- 7. 算法使無向圖連接
- 8. Akka Remoting是否支持單向連接?
- 9. 單獨連接的有向圖
- 10. 檢查連接是否有效
- 11. 檢查mysql連接是否有效
- 12. 是否有可能具有單向socket.io連接?
- 13. 檢查鏈接是否重定向
- 14. 在有向無環圖中查找層次樹的算法?
- 15. 是否有可能找出VNC連接是否有效
- 16. 確定無向圖是否爲樹的最佳算法
- 17. 如何查找有向圖是否有兩個拓撲排序?
- 18. 有效的算法來找到所有頂點兩步驟鄰居有向圖
- 19. 算法有向圖問題
- 20. 在重定向之前檢查ReturnUrl是否有效
- 21. 是否有算法在無向圖分離源和接收器中查找最小切割
- 22. 是否有可能重新定向TCP連接
- 23. 查找有向圖和無向圖中的所有循環
- 24. 確定圖是否單獨連接
- 25. 檢查圖形是否是雙向的
- 26. 雙向圖算法
- 27. 無向圖算法
- 28. 支持向量機算法是我的模型有效的
- 29. 有效的方法來連續檢查是否可用的Internet連接Android中
- 30. 從有向邊列表的頂點連接算法
我假設有,由於僅存在一個任意兩個頂點之間的路徑是樹的圖。 (如果圖表未連接,則爲森林。) – biziclop
是單方面連接的簡單循環嗎? –
@biziclop作爲一棵樹是足夠的但不是必需的:考慮一個5-節點的圖,其邊A-> C,B-> C,C-> D,C-> E。 – Sneftel