哈密顿回路及解法

哈密顿回路:
1、指一个对图的每个顶点都只穿越一次的回路。也可以 定义为n+1个相邻顶点v0, v1, … ,vn, v0的一个序列,其中序列的第一个顶点和最后一个顶点是相同的,而其他n-1个顶点是互不相同的。
2、当这个图是加权图时,求该图的最短哈密顿回路,就是传说中的旅行商问题(TSP)。

使用蛮力法求解:
1、首先规定作为起止点的顶点。由于回路是无向的,因此起止点可直接任选;
2、规定中间点的其中两点的先后次序。这步是对基本穷举的简单优化:对每对线路(每条回路都有顺时针和逆时针两种序列表示法)来说,不同的只是线路的方向,因此,若选择任意两个中间顶点,并规定该两顶点的先后次序(比如顶点a必须排在b前方),就可以把顶点序列的数量减半。
(这一改进后,排列的总次数仍需要(n-1)!/2次,这意味着除非问题规模很小,不然穷举查找法是不实用的)。
3、通过生成n-1个中间点的组合来得到所有的线路,计算这些线路的长度,排序求得最短线路。

你可能感兴趣的:(算法)