亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以(快速)找到 networkx 圖中的第一個循環?

是否可以(快速)找到 networkx 圖中的第一個循環?

墨色風雨 2021-08-17 18:29:36
我有一個有向網絡,其中可能有也可能沒有循環。我需要找到它們并消除循環。如果我有一個 networkx DiGraph (G),我可以找到所有的循環cycle_nodes = nx.simple_cycles(G)這創建了一個循環返回生成器。但是,我不想返回所有循環,list(cycle_nodes)因為許多循環都是彼此的子集,修復一個將修復其他循環。相反,我只想找到循環的第一個實例。作為cycle_nodes發電機,我試過next(cycle_nodes)只返回第一個實例。但是,我發現返回第一個實例所需的時間與返回所有實例所需的時間相比并不?。簂ist(cycle_nodes) : 58snext(cycle_nodes) : 44s這僅僅是由于我的圖表的性質(即第一個循環沿著搜索順序很遠),還是有更有效的方法來返回任何循環(不一定需要是第一個)?我懷疑可能有更快的方法的原因是因為當我運行時nx.is_directed_acyclic_graph(G),它只需要一兩秒鐘并返回 False,所以它顯然在一秒鐘左右找到至少一個循環。
查看完整描述

1 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

答案是顯而易見的。沒有提供起始節點的算法 nx.find_cycle() 將快速返回它找到的第一個循環。我的印象是需要提供一個起始節點,RTFM!


查看完整回答
反對 回復 2021-08-17
  • 1 回答
  • 0 關注
  • 280 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號