【发布时间】:2018-11-13 12:01:35
【问题描述】:
我有一个包含一个起点和多个目的地的图表。我正在尝试找到一种方法来解决问题以找到要解决的正确算法类型。目标是让到达所有点的路径尽可能少,但路径必须始终遵循网格点(即直角)。
例如:
Origin: (0, 0)
Point A: (3, 3)
Point B: (3, 0)
Point C: (1, 3)
从 Origin -> C -> A 的路径很棒,因为到达 A 点只需要 2 个额外的段,因为它能够共享从 Origin -> C 的路径。
我考虑过的一些事情:
- 用尽所有路径选项到所有点,然后彻底尝试所有组合。这显然是蛮力和最慢的方法。不能很好地扩展。
- 创建从 Origin 到 Point _ 的 1 矩阵,然后执行矩阵加法以找到 最高流量 点。然后重新执行某种类型的穷举搜索,优先选择那些遵循高流量段的路径。
我想做的是绘制从原点到达每个点的“顶级”方式,然后将每条路径与其他路径进行比较,以查看它们可以共享路径的位置。这感觉递归很棘手。
因此,我的问题不是寻找特定问题的答案,而是试图找出解决问题的方法,即尝试解决时要走哪条路(双关语)。
总体而言,希望根据(尚无特定顺序)对路径进行评分:
- 共享段数与唯一段数
- 圈数(首选直线)
- 最短距离
【问题讨论】: