点 c++ 列表中的最佳路径
Optimal path from a list of points c++
我有这个请求:我有一个点列表,对于每个点,我都有 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,但是对于在欧几里得空间中有点并使用欧几里得度量来测量距离的特殊情况,有一些多项式时间近似方案可以任意接近最优解。 看看这篇论文(欧几里得旅行推销员问题的一个相对著名的近似算法)。
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 如何将更多文件夹添加到c++include路径
- 带有特殊路径部分的"std::filesystem::weakly_canonical"失败
- 在c代码之间共享数据的最佳方式
- 为Catch2中的外部文本文件指定路径的最佳方式
- 获取 exe 文件夹路径的最佳方法?
- 我该如何判断k-server动态解决方案的最佳路径以数组成本[i] [j] [k] [t]位于何处
- 保存使用递归回溯找到的最佳路径
- 确定两个文件路径引用同一文件对象的最佳方法是什么
- 存储库的路径.需要最佳实践
- 标题包含C++库中的路径-最佳实践
- 什么是适用于多个入口和多个出口的类似BFS的最佳路径算法
- 如何完善Dijkstra算法,而不是找到最佳路径
- 点 c++ 列表中的最佳路径
- 组织一个C++游戏的最佳方式是什么?该游戏涉及用户在路径之间进行选择,以便在旅程中前进
- 使用Dijkstra算法找到最佳路径的不可预测的结果
- 网格中的最佳路径
- 将filesystem::path元素附加到另一个路径的最佳方法是什么?