欧拉回路和哈密尔顿回路

“哈密尔顿回路问题”与“欧拉回路问题”看上去十分相似,然而却是完全不同的两个问题。“哈密尔顿回路问题”是访问除原出发结点以外的每个结点一次且仅一次(图2有哈密尔顿回路,如B到C到A到D再到B就是一个回路),而“欧拉回路问题”是访问每条边一次且仅一次;对任一给定的图是否存在“欧拉回路”欧拉已给出了充分必要条件,而对任一给定的图是否存在“哈密尔顿回路”至今仍未找到满足该问题的充分必要条件。


所谓旅行推销员问题是:
推销员从驻地出发经过所要去的城市至少一次返回原地,应如何安排使其总的旅行距离最短。
类似的可以使费用最小或时间最短等。称符合要求的巡游路线为一个巡回。巡回的概念里不包含优化指标的比较,只是一个可行方安。从旅行推销员问题的概念来看它的本质是哈密尔顿圈的应用与延伸若把城市作为一个顶点,哈密尔顿圈只要求过每一个顶点一次且仅一次;
而推销员回路是至少一次必要时允许重复通过。(补充类使问题还有“中国邮路问题”,详细内容见参考资料)。
旅行推销员问题中各个顶点重复通过主要是考虑巡回线路的最佳化问题。对于确定的图,欧拉回路如果存在则回路是唯一的,而哈密尔顿圈若存在则可能有多条。

定义:
1。
推销员回路:
在过各个顶点的巡回线路中,若每个顶点至少经过一次,则称为推销员回路
2
哈密尔顿回路
在过各个顶点的巡回线路中,若每个顶点只经过一次,则称为哈密尔顿回路。


求解这种问题一般都有两类解法:
  一类是精确解法,他是个np问题精确解法的恐怖我就不说了,但可通过一些方法来逼近多项式解法,我就搞过用贪心法和分支定界法综和运用使问题的复杂度缩小很多,
另外就是近似解法,有局部搜索法,但我用模拟退货和遗传算法也解过还算理想,但细节上有些困难。


找出无向/有向图内的最长无环路径,简便起见路径无权值。

对于这个问题,就可以看成是哈密尔顿路径的问题。


有空整理下

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