在启发式中使用属性

时间:2013-04-01 03:19:08

标签: python networkx

我想在networkx中使用A *的启发式算法,但我无法找到如何在启发式中访问节点属性(我的启发式需要它们)。如何在启发式函数中访问节点属性?

1 个答案:

答案 0 :(得分:4)

如果您的图表是G,则可以使用

访问节点key的属性n
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))