在扩展图形时查找解决方案最小生成树(带条件)

时间:2014-01-15 00:29:11

标签: math logic mathematical-optimization discrete-mathematics

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

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

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

problem illustration

现在我尝试找到解决此问题的最佳性能解决方案。我目前的想法:

  1. 找到最接近新起点的点。在此之前和之后添加a)和b)。选择更快的一个。
  2. 找到离新端点最近的点。在此之前和之后添加a)和b)。选择更快的一个。
  3. 忽略新端点在新起点之前的情况,此接缝可行。 我预计出租车的大致方向是一个方向,这消除了以下边缘情况。 Edge case if taxi drives back and forth

    我是否遗漏了这种算法无法计算最优解的情况?

1 个答案:

答案 0 :(得分:0)

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

说明:

如果您有多个具有有限人员能力的出租车,它有一个继承箱装箱问题,这是NP完全的(事实证明,P中所有已知的建筑启发法都是次优解决的。)

但即使您只有1辆出租车,它也与TSP相似:如果您拥有10个位置的最佳解决方案并添加1个位置,它可以在最佳解决方案中创建雪球效果,使最佳解决方案看起来完全不同。 (对不起,还没有这个的可视图像)

如果您以后需要任何其他限制,则需要注意these false assumptions