相关疑难解决方法(0)

什么算法计算地图上从A点到B点的方向?

地图提供商(例如Google或Yahoo! Maps)如何提供方向?

我的意思是,他们可能有某种形式的真实数据,当然包括距离,但也可能包括行驶速度,人行道的存在,火车时刻表等.但是假设数据格式较简单,比如一个非常大的有向图边缘权重反映距离.我希望能够快速计算从任意点到另一个点的方向.有时这些点将在一起(在一个城市内),而有时它们将相隔很远(越野).

像Dijkstra算法这样的图算法不起作用,因为图形是巨大的.幸运的是,像A*这样的启发式算法可能会起作用.但是,我们的数据非常有条理,也许某种分层方法可能有用吗?(例如,存储远离某些"关键"点之间的预先计算方向,以及一些局部方向.然后,两个远点的方向将涉及到关键点的本地方向,到另一个关键点的全局方向,然后是本地方向方向再次.)

在实践中实际使用了哪些算法?

PS.这个问题的动机是通过在线地图方向找到怪癖.与三角形不等式相反,有时谷歌地图认为XZ需要更长时间,并且比使用XYZ中的中间点更远.但也许他们的步行路线也会针对另一个参数进行优化?

PPS.这是对三角不等式的另一个违反,它暗示(对我来说)他们使用某种分层方法:XZXYZ.前者似乎使用着名的Boulevard de Sebastopol,尽管它稍微偏离了方向.

编辑:这些例子似乎都不再起作用,但两者都是在原始帖子时完成的.

mapping algorithm routing

536
推荐指数
9
解决办法
12万
查看次数

在哪里可以找到有关D*或D*Lite寻路算法的信息?

有链接到d*一些文件在这里,但他们有点太数学对我来说.有没有关于D*/D*Lite的信息更适合初学者?

algorithm path-finding d-star

34
推荐指数
5
解决办法
2万
查看次数

为什么我的a*算法不采用最短路径?

我的a*算法并不总是采用最短的路径.

在这张图片中,机器人必须穿过黑色方块,河流和树木都是障碍物.黑线是它所采用的路径,显然不是最短的路径,因为它不应该浸入.

http://imgur.com/GBoq9py

这是我的代码*和我正在使用的启发式:

def HeuristicCostEstimate(start, goal):
    (x1, y1) = start
    (x2, y2) = goal
    return abs(x1 - x2) + abs(y1 - y2)

def AStar(grid, start, goal):
    entry = 1
    openSet = []
    heappush(openSet,(1, entry, start))
    cameFrom = {}
    currentCost = {}
    cameFrom[tuple(start)] = None
    currentCost[tuple(start)] = 0
    while not openSet == []:
        current = heappop(openSet)[2]
        print(current)
        if current == goal:
            break

        for next in grid.Neighbours(current):
            newCost = currentCost[tuple(current)] + grid.Cost(current, next)
            if tuple(next) not in currentCost or newCost < …
Run Code Online (Sandbox Code Playgroud)

python algorithm a-star shortest-path

3
推荐指数
1
解决办法
819
查看次数