0

和标题说的差不多。

这是在分支定界问题中完成的,特别是旅行推销员。

我了解矩阵缩减的工作原理,但我真的不明白你为什么需要这样做。

谢谢。

4

1 回答 1

0

从技术上讲,您不需要这样做,但它使算法的其余部分更简单、更高效。

分支定界算法是一种针对优化问题的回溯搜索,您不必在回溯之前探索整个每个子树。当我们知道某些子树(即部分解决方案)不能导致比当前最佳解决方案更好的解决方案时,可以拒绝它们。

对完成部分解决方案的成本有一个下限是很有用的。例如,如果我们有一条从节点 A → B → C 的路径,那么我们知道该路径必须离开节点 C,并且在将来的某些时间点它必须离开节点 D、E 和 F(不一定按此顺序)。如果我们知道离开 C、D、E 和 F 的最小成本,那么我们可以将它们添加到不完整路径的成本中,以获得从 A → B → C 开始的完整路径的最小可能成本。如果该成本是高于我们最佳解决方案的成本,那么我们可以拒绝部分解决方案 A → B → C 而无需探索它的任何进一步分支。

如果我们首先应用矩阵约简,那么离开每个节点的最小成本将为零,因此我们不需要在当前成本上添加任何东西来计算下限。拒绝 A → B → C 的规则只是该部分解决方案的成本是否高于迄今为止最佳完整解决方案的成本。这简化了代码并节省了进行这些添加所需的时间。

于 2019-11-29T04:17:55.383 回答