有序点/节点组之间的最短路径,每次从每个组中提取一个点,最终循环到达所有点

问题描述

我是最短路径问题领域的新手,但经过大量谷歌搜索后,我认为我的问题是 TSP 的变体。

我有多个点的帧/平面散布在 2D 网格上,并且必须从每一帧中依次选择一个点,以便最小化连续点之间的笛卡尔距离。每个点只能选择一次。

或者,可以将问题视为在单个平面上混合的点,其中 X = {x1,x2,...,xn} 可能的分类,并且点必须一个从 x1 到 xn 的路径中的时间,重复直到所有点都被选择。 (然而,在这个公式中,一个位置可能有多个点,所以说它们之间有一个假想距离可能更有意义,如上所述。)

我不需要确切的解决方案,只需要一个看起来不错的启发式方法。点之间的所有路径必须小于阈值笛卡尔距离 T,这比最小化总路径长度更重要。 (我假设最小化每个类别中所有不同节点之间选择的路径将导致最小的总路径长度,但是,理论上有可能一个或两个大路径允许所有其他点最小化到一定程度会掩盖那些大的离群点距离。必须拒绝该解决方案。)

每个类别的节点数量在~200-400左右,类别数量在200-900左右(反相关——类别越多,每个类别中的点越少。)有完全相同的数量每个类别中的分数。

点以随机方式散布在每个帧(/类别)上,朝向中心更密集,因此虽然朝向平面中心有许多可接受的解决方案,但边缘的点散布非常稀疏。我一直在那些外边缘遇到问题,例如其中选择下一个点来最小化第 n 次第 2 帧和第 3 帧之间的距离意味着第 2 帧上为第 n+1 次迭代选择的点在第 3 帧上没有比 T 更近的点。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)