【问题标题】:Shortest root using machine learning/AI使用机器学习/AI 的最短根
【发布时间】:2017-09-06 07:34:27
【问题描述】:

假设我有一组分散在 XY 平面上的点,并且我有两个点,即 XY 平面中任何位置的起点和终点。我想在不触及散点的情况下找到起点和终点之间的最短路径。路径必须保持一定的偏移量(即假设路径有一些宽度)。 编程中如何处理这类问题,机器学习中有没有算法。

【问题讨论】:

  • 我...你打算让机器“学习”什么?存在很多最短路径算法,ML 不仅仅是一个流行词。许多人将修改后的 Dijkstra 算法用于 ML 目的,但是......非常不同的核心概念。

标签: algorithm python-3.x machine-learning artificial-intelligence


【解决方案1】:

所以你需要一个最短路径的贪心算法吗? 试试 Dijsktra 算法。 http://www.geeksforgeeks.org/greedy-algorithms-set-6-dijkstras-shortest-path-algorithm/

最低价格的最短解决方案。

【讨论】:

  • 古老的算法经受住了时间的考验,只进行了最少的修改和优化。绝对是最好的解决方案。
【解决方案2】:

你也可以考虑A*算法。

这找到了与 Dijkstra 算法相同的解决方案,但通常以较低的计算成本(这在您的情况下可能很重要,因为在空间离散化之后您可能会得到一个大网格)。

这是因为 A* 使用启发式方法来偏向搜索,因此它首先会寻找更有希望的方向(例如向目标移动原则上是一个好主意,因此首先尝试这样做)。

您可以看到运行 here 和(与 Dijkstra 的算法并排 - 感谢 @Thrawn 提供链接)here 的一些 A* 的可视化。

【讨论】:

【解决方案3】:

这不是机器学习问题,而是优化问题。

所以你需要一个最短路径的贪心算法

确实可以通过这种方式解决,但挑战是将您的网格表示为图形... 例如,将网格分解为 n x n 矩阵。在您的最短路径算法中,节点是矩阵的一个元素(因此您排除了包含散点的矩阵元素),弧的权重是距离。

但是 n 必须很小,因为最短路径算法是 np-hard 问题...

对于这个特定问题,可能存在其他算法,但我不知道。

【讨论】:

  • 如果有的话,有许多价值数十亿美元的公司很想知道,其中包括优步。
  • 请注意,最短路径不是 np-hard 问题(例如,因为否则,由于 Dijkstra 的算法在多项式时间内运行,p 与 np 的困境将得到解决)
  • 感谢您的回复,我了解它的优化问题,我们是否有任何包/库来实现这一点。我真正的问题是处理 3D(即 X、Y、Z)坐标而不是 2D。会被AI解决吗?
  • @RaviBelkhindi,没有。 Dijkstra 的算法已经是 N 维的,它不关心数据的维度,只关心连通性。 ML 不是一个神奇的流行语,ML 不会在这里解决你的问题。存在 Python 中的实现,但是,您可能希望扩展它或用 C 编写它以提高性能:code.activestate.com/recipes/…
  • 谢谢@AlexanderHuszagh
【解决方案4】:

就像其他人已经说过的那样:这不是典型的“人工智能”问题。这是一个路径规划问题。

有不同的算法可用。如果您的路径不需要满足任何约束,例如 .g。平滑度,您可以使用 A*-Algorithm with distance 作为启发式。

您必须将您的 XYZ 空间表示为一个图形,其中每个节点都有一个坐标。此外,您需要考虑到,您要避免的点附近没有节点。

如果您的路径需要满足约束,这会变成一个更复杂的路径规划问题,您可以在其中应用优化或 RRT。

【讨论】:

    猜你喜欢
    • 2014-11-28
    • 1970-01-01
    • 2011-07-23
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多