Math 扩展图时求最小生成树(带条件)

Math 扩展图时求最小生成树(带条件),math,logic,mathematical-optimization,discrete-mathematics,Math,Logic,Mathematical Optimization,Discrete Mathematics,我有一个逻辑问题,因此从两种解释中选择: 数学: 我有一个2-14个节点上的无向加权完全图。节点总是成对出现(起点到终点)。对于这一点,我已经有了最小生成树,它认为成对的起始点总是在其端点之前。现在我想添加另一对节点 现实生活解释: 我已经有了适合1-7人乘坐的最佳出租车路线。每个节点在不同的位置连接(起点)和离开(终点)。现在,我想找到最佳路线时,我添加另一个人的出租车。我已经计算了从每个点到数据库中每个点的子路径(因此这是一个加权图)。所有计算的路径都是实值路径,而不是启发式路径 现在我试

我有一个逻辑问题,因此从两种解释中选择:

数学: 我有一个2-14个节点上的无向加权完全图。节点总是成对出现(起点到终点)。对于这一点,我已经有了最小生成树,它认为成对的起始点总是在其端点之前。现在我想添加另一对节点

现实生活解释: 我已经有了适合1-7人乘坐的最佳出租车路线。每个节点在不同的位置连接(起点)和离开(终点)。现在,我想找到最佳路线时,我添加另一个人的出租车。我已经计算了从每个点到数据库中每个点的子路径(因此这是一个加权图)。所有计算的路径都是实值路径,而不是启发式路径

现在我试图找到最有效的解决方案来解决这个问题。我目前的想法是:

  • 找到离新起点最近的点。在这一点之前和之后加上。选择快一点的
  • 查找距离新端点最近的点。在这一点之前和之后加上。选择快一点的
  • 忽略新端点在新起点之前的情况,这是可行的。 我希望出租车的一般方向是一个方向,这消除了以下边缘情况。


    有没有我遗漏的任何情况下,该算法不会计算最优解?

    肯定有很多情况下,该算法(这是一种构造启发式)不会找到最优解。根据我的经验,给定一个大小合理的数据集,我想通过简单地获取结果并添加元启发式(或其他优化算法)可以获得10-20%的改进

    说明:

    如果有多辆出租车的载客量有限,则会出现一个继承箱装箱问题,该问题是NP完全问题(该问题已被证明由p中所有已知的构造启发式算法次优解决)

    但是,即使你只有一辆出租车,它也与TSP相似:如果你有10个位置的最优解并添加1个位置,它可以在最优解中创建一个雪球效应,使最优解看起来完全不同。(对不起,还没有这张图片)


    如果您以后需要在这上面添加任何其他约束,您需要注意。

    你好,杰弗里,谢谢您的留言。这里的问题规模只有一辆出租车。TSP要求销售人员返回,我们的场景是单向的。我已经读了你的链接,我仍然想不出一个次优的案例。你能给我举一个这样的例子吗?这个算法找不到最优解。很难描述一个例子(我想在我的文章中演示了一个,但我可能没有)。无论如何,维基百科的TSP页面上有一个证据:我已经看过你的视频了,谢谢。我有固定的1辆出租车和1个请求,因此车辆容量可以忽略。时间框架也可以忽略。我只优化了一个因素,旅行时间。我仍然不认为这样做没有找到最佳解决方案。假设你需要在以下城市接人,这也是最佳路线:马德里、罗马、维也纳、布拉格、柏林、苏黎世、阿姆斯特丹、布鲁塞尔、伦敦。现在如果你把米兰加入到这个问题中,你的算法将得到马德里,米兰,罗马,维也纳,布拉格,柏林,苏黎世,阿姆斯特丹,布鲁塞尔,伦敦。但新的最佳解决方案是马德里、米兰、苏黎世、罗马、维也纳、布拉格、柏林、阿姆斯特丹、布鲁塞尔和伦敦。请注意米兰的加入是如何让苏黎世从顶线走向底线的。好吧,这又一次是因为路线主要不是朝一个方向走的,我在上面的问题集中排除了这一点。典型用例应如下所示: