Algorithm 两个推销员——一个总是拜访最近的邻居,另一个总是拜访最远的邻居
考虑与图论相关的这个问题: 设G一个大小为nxn的完整(每个顶点都连接到所有其他顶点)无向图。两个“推销员”以这种方式旅行:第一个总是访问最近的未访问顶点,第二个总是访问最远的顶点,直到他们都访问了所有顶点。我们必须为两名销售人员(他们可能不同)生成距离矩阵和起点,以便:Algorithm 两个推销员——一个总是拜访最近的邻居,另一个总是拜访最远的邻居,algorithm,optimization,graph,computer-science,Algorithm,Optimization,Graph,Computer Science,考虑与图论相关的这个问题: 设G一个大小为nxn的完整(每个顶点都连接到所有其他顶点)无向图。两个“推销员”以这种方式旅行:第一个总是访问最近的未访问顶点,第二个总是访问最远的顶点,直到他们都访问了所有顶点。我们必须为两名销售人员(他们可能不同)生成距离矩阵和起点,以便: 所有距离都是唯一的编辑:正整数 顶点到自身的距离始终为0 两位销售人员所覆盖的总距离之差必须是一个特定的数字,D 从A到B的距离等于从B到A的距离 有什么有效的算法可以帮助我?我只能考虑回溯,但我看不到任何方法来减少程序所
- 所有距离都是唯一的编辑:正整数
- 顶点到自身的距离始终为0
- 两位销售人员所覆盖的总距离之差必须是一个特定的数字,D李>
- 从A到B的距离等于从B到A的距离
D
或者,也可以使用距离完全不同的任何2D形状。在这种情况下,应放大或缩小形状以获得正确的D
- 编辑:现在想想,最简单的解决方案可能是简单地选取N个随机2D点,比如32位整数坐标,以降低距离太接近相等的可能性。如果两个距离太近,只需为其中一个选择不同的点,直到其有效
理想情况下,您只需要计算出一个公式来确定
d
和比例因子之间的关系,我现在还不能确定。如果没有其他方法,您也可以使用二进制搜索或插值搜索或其他方法来搜索比例因子,以获得所需的D
,但这是一种较慢的方法。起点如何?我假设行驶的距离取决于起点?@gnasher729我必须找到起点以及距离矩阵。我发现你的方法的问题是我必须使用整数距离。因此,在我看来,使用几何学似乎比其他方法更难,不是吗?虽然它确实增加了一些额外的步骤。这里的真正目标是非常接近D。运行两个算法并跟踪跟踪跟踪哪些边。找到一个使用而另一个不使用的边,并调整它们的长度,以便更接近D,而不需要调整太多,以便算法采用另一条路径。这在大多数情况下都会起作用,其他情况可能需要特定的几何体才能起作用。棘手的情况是,当你无法调整它们时,当距离变得相等时,这一标准使得找到有效的解决方案变得相当困难。