gpt4 book ai didi

algorithm - pgrouting - 为特定类型的道路选择具有优势的算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:13:53 25 4
gpt4 key购买 nike

我想使用 pgrouting 的一种算法来找到两点之间的(最短)路径:(a) 特定类型道路的优势和 (b) 中间点。

为了构建数据,我使用了 osm2pgrouting。我想首先关注问题(a)。

  1. 是否有一种算法可以定义我对道路类型的偏好(在表示道路类型的表 ways class_id 列 class_id 中或在表 osm_way_types 中)?
  2. 如果不是,我该如何调整我的数据库?知道我使用了 osm2pgrouting --> 有表 public.osm_way_classes 有 max_speed 但调整它似乎是糟糕的选择。我想不管它。我在其他表中没有发现任何有用的东西。有什么想法吗?

问题 (b)(不太重要)是确定搜索路径的长度是否小于例如 10 公里。如果否,则路径应访问指定的中间点(或点)之一。
我认为 pgrouting 中没有算法会考虑这些“停止点”(源和目标之间的中间点)。我认为这个问题 (b) 应该通过搜索从 point1 到 point2 然后从 p2 到 p3 等的路径来解决,但我还不知道如何确定这些点。

最佳答案

图论通常基于边权重求解最短路径。 IE:为了从图中的 A 到 B,它将选择那些使路径中边的权重总和最小的边。因此,在 pgRouting 中,您选择权重作为最短路径长度的边长,或者可以将权重计算为遍历边时间 = 长度/速度的时间,最短时间,但对于您的问题,您可以使用像 length*preference 这样的等式,其中 preference 是一些分数,其中越小越好。显然,您将根据此因素以及边 ID 收回成本,使用边 ID 的简单连接将使您回到原始表。该策略应该适用于我们的大多数算法。

关于algorithm - pgrouting - 为特定类型的道路选择具有优势的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44122777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com