我想解决TSP (Travelling Salesman Problem)
,但不是以传统的方式。我正在执行这些步骤。解决旅行推销员一旦你知道最短路线的距离
1)首先,我改变TSP到真/假问题。
现在这个问题的定义是:“所有城市的总路程是否小于或等于k
?假设我有一个算法TSP_tf(k)
来解决它。
2)然后我查询的最小ķ。
这是,我搜索“哪个是最短路线的距离”。
一个有效的算法来解决它将与二分搜索。我从k=1
开始,我打电话TSP_tf(k)
。如果它返回false,我将k
乘以2,并且一直呼叫TSP_tf
,直到返回true。发生这种情况时,搜索最小k
,在区间(k/2 - k]
中返回true,并使用二分搜索进行搜索。
我会得到那么最小距离min_k
。
3)返回TSP的最短路线知道其距离为min_k。
这里是我的问题来了。如何解决这个问题是一个有效的算法?通过高效率我的意思是一个好方法:)很明显,TSP
将仍然是NP。
我认为这对我们来说有点过于宽泛。也许[cs.se]会愿意接受这一点,但即使他们可能想要一些更具体的开始。我不确定你的目标实际上是什么,因为所有三个步骤都是(我认为)NP。 – Teepeemm
将'min_k'提供给ILP模型将允许您修剪很多,但详细解释该方法需要整本书。 – harold
我投票结束这个问题作为题外话,因为它是关于计算机科学,不适用于编程。 [已转载到计算机科学](http://cs.stackexchange.com/q/64037)。 (将来,[请不要这样做](http://meta.stackexchange.com/q/64068),[flag](http://stackoverflow.com/help/privileges/flag-posts)您的问题请求迁移。) – Gilles