第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

圖中帶有標(biāo)記邊的最短路徑

圖中帶有標(biāo)記邊的最短路徑

問(wèn)題假設(shè)我有一個(gè)帶有標(biāo)記節(jié)點(diǎn)和邊的圖(見(jiàn)圖)。我的目標(biāo)是獲得A 和 D 之間所有最短路徑的集合。到目前為止我所擁有的import networkx as nxG = nx.Graph()G.add_edge('A', 'B')G.add_edge('B', 'D')G.add_edge('B', 'C')shortest_path = nx.shortest_path(G, 'A', 'D')在shortest_path我得到['A', 'B', 'D']. 當(dāng)然,這是通過(guò)節(jié)點(diǎn)表示的最短路徑,但我需要的是:1)在我的圖表中添加邊緣標(biāo)簽2)找到所有可能的最短路徑的集合。理想情況下,shortest_paths我希望得到如下輸出: [ A -> a -> B, B -> b -> D], [A -> a -> B, B -> c -> D]問(wèn)題1)這可以用networkx來(lái)完成嗎?2)如果不是,還有哪些其他圖形庫(kù)包含解決這種場(chǎng)景問(wèn)題的函數(shù)(不一定是 Python)?
查看完整描述

1 回答

?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以將邊緣轉(zhuǎn)換為節(jié)點(diǎn)并使用以下功能all_shortest_paths():


import networkx as nx


G = nx.MultiGraph()

G.add_edge('A', 'B', label='a')

G.add_edge('B', 'D', label='b')

G.add_edge('B', 'D', label='c')

G.add_edge('B', 'C', label='d')

G.add_edge('C', 'D', label='e')


# Convert edges to nodes

g = nx.Graph()

for i, j, label in G.edges(data='label'):

    g.add_edge(i, label)

    g.add_edge(j, label)


print(list(nx.all_shortest_paths(g, 'A', 'D')))

# [['A', 'a', 'B', 'b', 'D'], ['A', 'a', 'B', 'c', 'D']]


查看完整回答
反對(duì) 回復(fù) 2022-05-19
  • 1 回答
  • 0 關(guān)注
  • 160 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)