使用python从同一垂直线上的多个坐标中仅选择一个坐标的最短距离
我有一个使用python从同一垂直线上的多个坐标中仅选择一个坐标的最短距离,python,algorithm,python-3.x,graph-algorithm,shortest-path,Python,Algorithm,Python 3.x,Graph Algorithm,Shortest Path,我有一个列表=坐标,其中我有XY平面上所有这些点的坐标 坐标列表中给出的点超过1500个。我必须找到XY平面中从最左边的点到最右边的点的最小距离,这样,如果两个或多个点位于同一条垂直线上,则只选择其中一个点作为路径,从而计算距离 坐标列表的示例如下: coordinates = [(-6, 0), (-5.82, 1.72), (-5.17, -0.27), (-4.28, 0.0), (-2.9, -0.74), (-2.9, -0.2), (-1.55, 0.08), (-1.37, -0.
列表
=坐标
,其中我有XY平面上所有这些点的坐标
坐标列表中给出的点超过1500个。我必须找到XY平面中从最左边的点到最右边的点的最小距离,这样,如果两个或多个点位于同一条垂直线上,则只选择其中一个点作为路径,从而计算距离
坐标列表的示例如下:
coordinates = [(-6, 0), (-5.82, 1.72), (-5.17, -0.27), (-4.28, 0.0), (-2.9, -0.74), (-2.9, -0.2), (-1.55, 0.08), (-1.37, -0.43), (4.8, -1.64), (4.92, -0.25), (5.05, -1.45), (5.36, -0.02), (6, 0)]
因此,在这种情况下,将不考虑点(-2.9,-0.74)
如何在这种情况下使用Dijksra算法或任何其他最短路径拟合算法,但同时删除垂直线中不需要的点
我使用了itertools
来permutate
并找到所有可能的路径,然后是距离,然后是最小值,但它不适合大于1000的点,而且不可能忽略我提到的相同垂直线坐标。请在python
中提供帮助。最短路径始终是这两点之间的一段。这太容易了。问题肯定还有很多,比如在每个x坐标上选择一个点。