【问题标题】:Get paths of minimum MSE python获取最小 MSE python 的路径
【发布时间】:2019-07-19 08:26:26
【问题描述】:

我有一个向量列表。

[
 [[1,2,3],[7,8,5]],
 [[7,8,9],[2,8,6],[2,6,3]],
 [[7,5,1],[1,7,3],[6,1,1],[5,2,7]]
]

对于第一个列表中的每个向量,我想提取每个列表中向量之间的最小距离 (MSE) 路径。

例如,对于第一个列表中的第一个元素,我应该获取这个路径:

[1,2,3] -> [2,6,3] -> [1,7,3]

就索引而言:

[0,2,1]

我应该为第一个列表中的每个元素获取此路径。列表很大,真正的向量大约有 300 个元素。

有一些pythonic方法可以避免使用for循环进行硬迭代吗?

【问题讨论】:

  • 所有向量都有固定长度吗?
  • 抱歉误读。但是,我认为没有任何可能避免循环 - 循环是 O(n) 并且任何排序都会将其提升到更高。但是(如果您不是在寻找旅行商解决方案),这只是 O(m*n) 应该相当快。
  • 您能否发布您的解决方案,其中包含您想要避免的“硬迭代”?
  • @Rock Li 我知道。但也许有一些有用的 one liner 可以在 python 中的图形层之间保持最小的排列。我要求一种pythonic方式来实现这个特定的图形搜索。谢谢!
  • 一个衬里并没有避免循环 - 将循环变成理解很容易,但根本不会改进算法 - 这是你想要的吗?

标签: python algorithm sorting


【解决方案1】:

我的算法知识有点有限。我不认为有任何特定的 python 特定的最佳方法。李洛克的评论是准确的。如果你能找到最好的方法,就有一百万美元的奖金。实现 Dijkstra 算法或任何您最喜欢的搜索方法。您可以自动计算从一个列表到下一个列表的权重。除此之外,它的纯算法

【讨论】:

  • 为什么这是作为答案而不是评论发布?
  • 这不是旅行商问题,OP 正在寻找从第一个向量列表的一个元素到最后一个元素的最短路径。他并没有说他想去拜访他们所有人。
  • 这应该是一条评论。发帖后才发现。
猜你喜欢
  • 2017-11-02
  • 2017-12-09
  • 2011-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 2018-11-13
相关资源
最近更新 更多