点 c++ 列表中的最佳路径

Optimal path from a list of points c++

本文关键字:最佳 路径 c++ 列表      更新时间:2023-10-16

我有这个请求:我有一个点列表,对于每个点,我都有 X、Y 坐标。

的目标是找到这些点之间的最佳路径(我必须使用所有点)。例如:

A (xa, ya), B (xb,

yb), C (xc, yc), D (xd, yd), E (x, y) 我使用两点之间欧几里得距离的计算

例如,我的最佳路径是:D, E, A, C, B

我该怎么做?

您正在描述一个NP-Hard问题,称为旅行推销员问题

这个问题没有已知的多项式解决方案,但有一些启发式方法,它们在多项式时间内运行,但不能保证找到最佳路径。

如果您想要最佳 - 可能需要暴力搜索

这个问题确实是NP-Hard,但是对于在欧几里得空间中有点并使用欧几里得度量来测量距离的特殊情况,有一些多项式时间近似方案可以任意接近最优解。 看看这篇论文(欧几里得旅行推销员问题的一个相对著名的近似算法)。