Python 圆上任意点之间的最短距离?

Python 圆上任意点之间的最短距离?,python,algorithm,optimization,Python,Algorithm,Optimization,我试图测试一些优化算法对旅行商问题的准确性 我想创建一个系统,我总是知道什么是最佳解决方案。我的逻辑是在一个单位圆上创建一组随机点,因此总是知道最短路径,因为它只是圆上点的顺序。我怎么才能找到订单呢?好的,只需迭代每个点并找到它最近的邻居。事实证明它大部分时间都有效,但有时。。。没有 对于一种算法有什么建议,它可以在100%的时间内找到单位圆上随机点的最优解?我喜欢能够在圆上随机创建点。您可以使用。只要最优TSP路径是凸的,这个解就是精确的,这是简单圆的情况。该算法非常有趣,因为它既快速又简单

我试图测试一些优化算法对旅行商问题的准确性

我想创建一个系统,我总是知道什么是最佳解决方案。我的逻辑是在一个单位圆上创建一组随机点,因此总是知道最短路径,因为它只是圆上点的顺序。我怎么才能找到订单呢?好的,只需迭代每个点并找到它最近的邻居。事实证明它大部分时间都有效,但有时。。。没有


对于一种算法有什么建议,它可以在100%的时间内找到单位圆上随机点的最优解?我喜欢能够在圆上随机创建点。

您可以使用。只要最优TSP路径是凸的,这个解就是精确的,这是简单圆的情况。该算法非常有趣,因为它既快速又简单,更不用说Wikipedia也提供了多种语言的实现。

您可以使用。只要最优TSP路径是凸的,这个解就是精确的,这是简单圆的情况。该算法非常有趣,因为它既快速又简单,更不用说Wikipedia也提供了多种语言的实现。

适用于这种情况以及涉及凸多边形边界上点的所有情况,但有一个更简单的算法也适用于所有这些情况:对于每个点,只需找到一条穿过该点的直线和圆心与一条穿过圆心的水平线的夹角,然后根据该夹角对点进行排序

如果原点0,0在您的圆内,并且您的语言最有用-这是一个标准的trig函数,您只需对每个点应用atan2并按其排序即可。

适用于这种情况以及涉及凸多边形边界上的点的所有情况,但有一个更简单的算法也适用于所有这些情况:对于每个点,只需找到一条穿过该点的直线和圆心与一条穿过圆心的水平线的夹角,然后根据该夹角对点进行排序


如果原点0,0在你的圆内,并且你的语言有最多的功能-这是一个标准的三角函数,你可以对每个点应用atan2并按其排序。

好奇,你为什么选择圆而不是简单的直线或三角形?好奇,为什么选择圆而不是简单的直线或三角形?