簡體   English   中英

酰基有向圖的BFS遍歷算法

[英]Algorithm for BFS traveral of an acylic directed graph

我正在尋找一個執行DAG的BFS遍歷的優雅Python程序:

如果A“依賴” B(將python包Foo“依賴” Bar認為:Foo-> Bar),則將節點A連接到B( A->B )。

在大約7000個這樣的節點的圖中,我想對所有節點進行排序,使得對於所有可能的(i, j) ,其中1>=i<j<=7000 depends(Ni, Nj)為False。 當且僅當A->B或A“依賴於” B ..並且Nx是出現在排序列表中第x個位置的節點時,depends(A,B)= True。

注意:一個節點可以有多個父節點。 例如:A-> C和B-> C。 因此,根據上述排序規則,A和B必須排在C之前。

如果我正確地閱讀了該問題,則看起來您想要一種拓撲排序 Tarjan提出了用於執行此操作的最有效算法(O(V + E)),可以在此處找到Python實現。

偏離主題,但好像您的程序包依賴類推倒了; 我認為“ A取決於B”將意味着“ B-> A”,但是當然這不會改變樹的結構,而只是反轉它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM