gpt4 book ai didi

algorithm - 什么类型的算法用于多路径但一个起点的寻路?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:37:59 30 4
gpt4 key购买 nike

我有一张包含一个起点和多个终点的图表。我正在尝试找到一种方法来表达问题以找到要解决的正确算法类型。目标是使用尽可能少的路径到达所有点,但路径必须始终遵循网格点(即直角)。

例如:

Origin:  (0, 0)
Point A: (3, 3)
Point B: (3, 0)
Point C: (1, 3)

从原点 -> C -> A 的路径很棒,因为到达点 A 只需要 2 个额外的线段,因为它能够共享从原点 -> C 的路径。

我想通的一些事情:

  • 穷尽所有点的所有路径选项,然后穷尽所有组合。这显然是蛮力和最慢的方法。不能很好地扩展。
  • 创建从起点到点 _ 的全 1 矩阵,然后执行矩阵加法以找到最高流量 点。然后重新执行某种类型的详尽搜索,优先选择那些遵循高流量路段的路径。

我想做的是绘制从原点到达每个点的“顶部”路径,然后将每条路径与其他路径进行比较,以查看它们可以共享路径的位置。这感觉递归很棘手。

因此,我的问题不是寻找特定问题的答案,而是更多地试图找出解决问题的方法,即在尝试解决问题时应该走哪条路(双关语意)。

总体而言,希望根据(尚无特定顺序)对路径进行评分:

  • 共享的分割数与独特的分割数
  • 转弯次数(首选直线)
  • 最短距离

最佳答案

这看起来不像最小生成树,而是Steiner树,https://en.wikipedia.org/wiki/Steiner_tree_problem特别是直线斯坦纳树。

https://en.wikipedia.org/wiki/Rectilinear_Steiner_tree

不幸的是,这是 NP-hard。

关于algorithm - 什么类型的算法用于多路径但一个起点的寻路?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53280620/

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