Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 是否有一个计算“启发式”的公式;罗马尼亚地图“;问题_Python_Algorithm_A Star - Fatal编程技术网

Python 是否有一个计算“启发式”的公式;罗马尼亚地图“;问题

Python 是否有一个计算“启发式”的公式;罗马尼亚地图“;问题,python,algorithm,a-star,Python,Algorithm,A Star,我正在学习Python中的*搜索,我目前的问题是众所周知的“罗马尼亚地图”。这个问题的目标是使用A*搜索从阿拉德到布加勒斯特。 我试图用python实现这一点,但我不知道启发式(在本例中是位置)是如何计算的。这就是“主”代码的外观和启发性。谁能解释一下罗马尼亚是如何计算地点的吗?代码取自 这里的位置似乎是一个输入。你展示的地图有不同的输入(到布加勒斯特的距离)。这里的位置似乎是一个输入。您显示的地图具有不同类型的输入(到布加勒斯特的距离)。 def h(self, node):

我正在学习Python中的*搜索,我目前的问题是众所周知的“罗马尼亚地图”。这个问题的目标是使用A*搜索从阿拉德到布加勒斯特。 我试图用python实现这一点,但我不知道启发式(在本例中是位置)是如何计算的。这就是“主”代码的外观和启发性。谁能解释一下罗马尼亚是如何计算地点的吗?代码取自


这里的位置似乎是一个输入。你展示的地图有不同的输入(到布加勒斯特的距离)。这里的位置似乎是一个输入。您显示的地图具有不同类型的输入(到布加勒斯特的距离)。
def h(self, node):
        "h function is straight-line distance from a node's state to goal."
        locs = getattr(self.graph, 'locations', None)
        if locs:
            return int(distance(locs[node.state], locs[self.goal]))
        else:
            return infinity
.
.
.
romania = UndirectedGraph(Dict(
    A=Dict(Z=75, S=140, T=118),
    B=Dict(U=85, P=101, G=90, F=211),
    C=Dict(D=120, R=146, P=138),
    D=Dict(M=75),
    E=Dict(H=86),
    F=Dict(S=99),
    H=Dict(U=98),
    I=Dict(V=92, N=87),
    L=Dict(T=111, M=70),
    O=Dict(Z=71, S=151),
    P=Dict(R=97),
    R=Dict(S=80),
    U=Dict(V=142)))
romania.locations = Dict(
    A=( 91, 492),    B=(400, 327),    C=(253, 288),   D=(165, 299),
    E=(562, 293),    F=(305, 449),    G=(375, 270),   H=(534, 350),
    I=(473, 506),    L=(165, 379),    M=(168, 339),   N=(406, 537),
    O=(131, 571),    P=(320, 368),    R=(233, 410),   S=(207, 457),
    T=( 94, 410),    U=(456, 350),    V=(509, 444),   Z=(108, 531))```