2013-04-01 36 views
2

我想爲networkx中的A *使用啓發式,但我無法找到如何在啓發式中訪問節點屬性(我需要它們以啓發我)。如何在啓發式函數中訪問節點屬性?在啓發式中使用屬性

回答

4

如果G是你的圖形,則節點n的屬性key可以

G.node[n][key] 

如果G是不是已經啓發式功能的外部範圍進行訪問,然後使G訪問啓發式功能,使用閉包:

def make_heuristic(G): 
    def heuristic(a, b): 
     a_attr, b_attr = [G.node[n][key] for n in (a, b)] 
     ... 
    return heuristic 

nx.astar_path(G,start,end,make_heuristic(G))   
+0

啓發式功能只需要兩個屬性是節點。 – fread2281

相關問題