哈密顿周期问题是最组合探索的问题之一。是一个np完全问题,启发式方法是发现是更强大的比指数时间精确算法。提出一种有效的混合启发式,坐在之间的复杂的可靠方法快和简单的方法。该算法结合了贪婪,旋转变换和不可到达的顶点启发式在三个阶段工作。在第一阶段,一个初始路径是由使用贪婪的深度优先搜索。这个初始路径然后扩展到哈密顿路径在第二阶段通过使用旋转变换和贪婪的深度优先搜索。第三阶段将哈密顿路径转换为哈密顿循环利用旋转变换。该方法能找到哈密顿周期从一组图表从文献收集,所有的哈密顿实例TSPLIB中给出顶点(1000年至5000年),和一些实例FHCP挑战。此外,该算法具有O (n3)最坏时间复杂度。算法的性能比较先进的算法和发现HybridHAM优于他人的运行时间。
哈密顿周期问题(HCP)是识别一个周期在一个无向图连通图中所有顶点。它被认为是最受欢迎的np完全问题的子问题,旅行推销员问题(TSP),问题是要找到最小加权哈密顿循环。哈密顿周期有很多应用,比如重建基因组序列,解决游戏像Icosian,找到棋盘上的骑士之旅,发现圆形正则图的嵌入。没有单一的高效算法,这个问题至今为止。最先进的算法主要分为两种:指数时间穷举搜索算法和多项式时间的启发式算法。而第一类担保给予解决方案,后者没有。后者给了解决方案在充分相比更少的时间在大多数情况下。第一类的算法通常找到一些有效的剪枝规则减少搜索空间,从而提高运行时间,而第二类找到一些一般性的重击规则寻找尽可能多的问题实例的解决方案,用更少的时间。本研究的目的是设计一个启发式更快比建立复杂的启发式,但比快速技术更可靠。
许多定理可以在文献中找到,给的必要和充分条件
提出的启发式是贪婪的结合深度优先搜索,不可到达的顶点,启发式和旋转变换。贪婪的深度优先搜索大大降低了运行时间。搜索是贪婪的,因为它总是选择既低程度顶点扩展路径。而不可到达的顶点启发式减少的可能性达到死胡同,旋转转换有助于走出死胡同。因此该方法比复杂的精确算法更快和更可靠的比启发式越快。
哈密顿循环是一个循环连接所有的顶点在一个给定的图只有一次。一个包含至少一个哈密顿图周期称为哈密顿图。这个优化问题可以正式定义如下:
给定一个图G = (E, V), E是图的边的集合,V是图的顶点的集合
问题是要找到一个周期,HC = (v1,v2,………,
这是一个困难的问题,吸引了两个数学家和计算机科学家。它被认为是一个强大的代表np完全问题。
的大型搜索空间HCP可以探索明智的广度或深度明智的。在深度优先搜索,搜索深度执行明智的方式从一个给定的顶点到的搜索不能进行进一步的或一个死胡同。提出的启发式使用贪婪的深度优先搜索创建一个哈密顿路径。建筑从最高学位顶点的路径,因为它增加回到起始点的概率。程度的一个顶点的边数与顶点。另一个顶点的路径选择中贪婪地通过选择最小程度的邻居,并且邻居。学位最低顶点添加他们可能变得不可到达以来首次进入路径与邻国的选择。例如,如果一个顶点的度是两个然后顶点的边缘必须出现在哈密顿路径/周期和这些边缘被添加到路径。顶点的路径构造到目前为止被认为是“访问。“因为在哈密顿周期顶点只出现一次,只有既邻居需要考虑当前的顶点。 In order to guide the greedy depth first search further to longer paths, an unreachable vertex heuristic is proposed. According to this heuristic, before adding a vertex to the path, an unreachable condition is checked for each of its neighbours. This heuristic is explained in Section
本研究提出了一种新的启发式,即不可到达的顶点启发式,减少到达死胡同的机会而构造哈密顿路径。
让P部分路径和x部分路径最终顶点。选择下一个顶点y
一个顶点是遥不可及的如果所有邻国已经路径构造的一部分。在这种情况下,没有办法达到顶点,它变成了遥不可及的。在此提出的启发式,如果选择一个顶点做任何既邻国不可到达的那点不会被添加到路径。
例如,考虑图如图
不可到达的顶点。
让部分路径识别到目前为止是一个→C→D。在给定的图
旋转变换(
旋转变换。
旋转变换的过程总结如下。
找到一个顶点相邻e在输入图,在路径b p .顺其自然顶点。
创建一个新的路径P ',
通过连接b e
通过逆转的路径从c到e
在该算法中,旋转变换用于两个目的。
走出死胡同在哈密顿的建设路径。
将哈密顿路径转化为哈密顿循环。
在第一种情况下最高学位的路径选择旋转变换,因为它增加了一个新的结束的概率。同样将路径转化为周期,最低程度的顶点路径选择旋转变换,因为它增加了返回的概率更高程度的周期结束。
提出的HybridHAM算法三个步骤:
创建一个初始路径
最初的路径转换为哈密顿路径。
哈密顿路径转换为哈密顿循环。
路径创建从程度最高的顶点,然后添加最小程度顶点贪婪地为了构造一个初始路径尽可能。最高学位的选择初始顶点,然后最小程度的顶点意味着构建一个长的初始路径表中给出
顶点的选择标准。
|
|
|
---|---|---|
选择初始顶点的最高学位。 | 步骤1 | 它增加一条路径的概率达到回到这个顶点形成循环。 |
|
||
贪婪选择最小程度的顶点在道路建设。 | 步骤1 | 优先在较小的程度上顶点长路径的概率增加。举个例子,如果一个顶点的度临近结束当前的两个顶点的路径,那么它应该包括第一路径,因为它是唯一可能的顶点的位置在哈密顿路径中。 |
|
||
选择最高的学位的初始路径旋转变换 | 步骤2 | 它增加了概率获得一个新的顶点结束进一步扩展路径创建一个哈密顿路径 |
|
||
选择最小的程度最终顶点旋转变换 | 步骤3 | 这样做是为了保持最高程度的顶点,因为一条边连接的概率更高程度的顶点相比较小程度的顶点。 |
如果创建的初始路径不是哈密顿(顶点数少于总数的顶点),然后选择最高程度的初始路径旋转变换。这增加的概率是一个新顶点结束进一步扩展路径创建一个哈密顿路径。扩展路径的新顶点结束后,贪婪的程序部分
如果有一条边连接的两端哈密顿路径图中添加道路边缘的哈密顿循环。否则,应用旋转变换的最小程度顶点结束反复,直到得到一个新的顶点,可以连接到另一端的顶点形成了哈密顿周期。在任何时间在这个过程中,旋转变换不能应用,意味着图没有哈密顿周期或算法未能识别哈密顿周期。
各个步骤中使用的顶点选择标准表进行了总结
考虑到无向图在图
输入无向图。
0 1 2 3 4 5 6 7 8 12 13 14 22 21 20 19 18 15
初始路径的长度是18,小于图中顶点的总数。自从确定路径不是哈密顿,转到第2步。
0 7 8 12 14 13 15 17 16 9 1 2 3 4 5 6 11 23日21日22日20 18 19 10
路径的长度是24,因此它是哈密顿路径。由于没有边缘图
0 7 8 12 14 13 15 16 17 18 19 20 21日22日23日11 10 6 5 4 3 2 9 1
最终顶点1和2连接在初始图如图
哈密顿循环。
算法的输入图的邻接矩阵表示的输出是一组顶点对应的哈密顿循环。让
从输入邻接矩阵,创建两个数组
从顶点程度最高的国家之一(第一个顶点数组中
将其添加到初始路径
重复
选择下一个最小程度的邻居
如果选择
将其添加到初始路径
使
直到
如果
其他的
重复第1阶段为每个图的顶点并选择最高学位
最长的P我作为初始路径。
如果
重复
选择最高学位的路径
反向
应用旋转变换
如果不能应用旋转变换图没有哈密顿路径或算法未能识别哈密顿路径和退出。
扩展这个新的路径通过使用贪婪的深度优先搜索在阶段1。
直到
现在
如果有一条边连接的第一个和最后一个顶点
其他的
进入第三阶段
如果
重复
选择最小程度的路径
反向
应用旋转变换
如果不能应用旋转变换图没有哈密顿周期或算法未能识别哈密顿路径和退出。
直到有一个边缘连接第一个和最后一个顶点的路径
现在
T (n) = O (n2)
贪婪的深度优先搜索通过邻接矩阵一次在最坏的情况下,因此它的复杂度是O (n2)。
这个搜索是重复为每个顶点的最高学位。最坏的情况是所有的
因此,T (n) = O (n3)
旋转变换的复杂度是O (n)
贪婪的深度优先搜索的复杂度是O (n2)
这两个= O (n2)
这两个操作是重复的
因此,T (n) = O (n3)
第三阶段
旋转变换的复杂度是O (n)
重复此操作
因此,T (n) = O (n2)
总最坏情况的复杂性HybridHam T (n) = O (n2)+ O (n3)+ O (n3)+ O (n2)=
该算法的性能评估实验系统中进行4 gb RAM和英特尔酷睿i5处理器。该算法在MATLAB中实现13类风湿性关节炎。实验进行了一组图表从文献收集以及TSPLIB中。
返回的哈密顿周期算法对采集的一组示例图如图
哈密顿图示例。
算法的运行时间来解决这些示例表中给出了实例
运行时间在样本实例。
|
|
|
|
---|---|---|---|
1。 | 示例1 | 16 | 0.051 |
2。 | 示例2 | 20. | 0.056 |
3所示。 | 示例3 | 11 | 0.051 |
4所示。 | 示例4 | 12 | 0.054 |
5。 | 示例5 | 11 | 0.051 |
6。 | 例子6 | 20. | 0.049 |
7所示。 | 例7 | 12 | 0.052 |
8。 | 示例8 | 24 | 0.083 |
9。 | 例9 | 24 | 0.063 |
10。 | 示例10 | 12 | 0.051 |
11。 | 例11 | 6 | 0.049 |
12。 | 示例12 | 12 | 0.031 |
13。 | 示例13 | 8 | 0.029 |
14。 | 例14 | 12 | 0.034 |
15。 | 例15 | 19 | 0.030 |
16。 | 示例16 | 12 | 0.032 |
17所示。 | 示例17 | 13 | 0.030 |
18岁。 | 例18 | 16 | 0.038 |
19所示。 | 示例19 | 60 | 0.043 |
20. | 例20 | 20. | 0.042 |
21。 | 示例21 | 25 | 0.031 |
22。 | 示例22 | 32 | 0.032 |
23。 | 示例23 | 64年 | 0.078 |
TSPLIB库(
运行时间在TSPLIB实例。
|
|
|
|
|||
---|---|---|---|---|---|---|
|
|
|
|
|||
1。 | Alb1000 | 1000年 | 4.95 | 0.72 | 0.1 | 0.2656 |
2。 | Alb2000 | 2000年 | 7.30 | 3.29 | 0.8 | 1.4375 |
3所示。 | Alb3000a | 3000年 | 9.56 | 8.36 | 3.44 | 2.7656 |
4所示。 | Alb3000b | 3000年 | 9.94 | 8.02 | 3.64 | 1.5781 |
5。 | Alb3000c | 3000年 | 9.95 | 8.43 | 4.31 | 1.8438 |
6。 | Alb3000d | 3000年 | 10.14 | 8.48 | 4.03 | 1.6406 |
7所示。 | Alb3000e | 3000年 | 10.44 | 8.03 | 4.29 | 1.6719 |
8。 | Alb4000 | 4000年 | 13.45 | 17.84 | 13.89 | 3.0625 |
9。 | Alb5000 | 5000年 | 17.24 | 30.85 | 14.12 | 8.9844 |
FHCP挑战设置(
结果FHCP挑战。
|
|
|
|
|
|
---|---|---|---|---|---|
1。 | 图1 | 66年 | 99年 | 惠普 | 0.0625 |
2。 | 图2 | 70年 | 106年 | HC | 0.0469 |
3所示。 | 图3 | 78年 | 117年 | 惠普 | 0.0625 |
4所示。 | 图4 | 84年 | 127年 | 惠普 | 0.0625 |
5。 | Graph5 | 90年 | 135年 | 惠普 | 0.0625 |
6。 | 图6 | 94年 | 142年 | HC | 0.0625 |
7所示。 | 图7 | 102年 | 153年 | 惠普 | 0.0781 |
8。 | Graph8 | 108年 | 162年 | 惠普 | 0.0625 |
9。 | 图9 | 114年 | 171年 | 惠普 | 0.0938 |
10。 | 图11 | 126年 | 189年 | 惠普 | 0.1094 |
11。 | 图12 | 132年 | 199年 | 惠普 | 0.1094 |
12。 | 图14 | 142年 | 214年 | 惠普 | 0.0938 |
13。 | 图15 | 150年 | 225年 | 惠普 | 0.1250 |
14。 | 图16 | 156年 | 235年 | 惠普 | 0.0938 |
15。 | 图17 | 162年 | 243年 | 惠普 | 0.1875 |
16。 | 图18 | 166年 | 250年 | 惠普 | 0.1094 |
17所示。 | 图20 | 174年 | 261年 | 惠普 | 0.2344 |
18岁。 | 图21 | 180年 | 271年 | 惠普 | 0.1406 |
19所示。 | 图22 | 186年 | 279年 | 惠普 | 0.2188 |
20. | 图23 | 190年 | 286年 | 惠普 | 0.1563 |
21。 | 图25 | 204年 | 307年 | 惠普 | 0.1719 |
22。 | 图26 | 210年 | 315年 | 惠普 | 0.3750 |
23。 | 图27 | 214年 | 322年 | 惠普 | 0.2031 |
24。 | 图29 | 228年 | 343年 | 惠普 | 0.2500 |
25。 | Graph32 | 246年 | 369年 | 惠普 | 0.4063 |
26岁。 | 图33 | 252年 | 379年 | 惠普 | 0.3281 |
27。 | Graph34 | 258年 | 387年 | 惠普 | 0.4688 |
28。 | 图35 | 262年 | 394年 | 惠普 | 0.5781 |
29。 | 图36 | 270年 | 405年 | 惠普 | 0.7031 |
30. | 图37 | 276年 | 415年 | 惠普 | 0.3750 |
31日。 | 图40 | 294年 | 441年 | 惠普 | 1.0469 |
32。 | 图41 | 300年 | 451年 | 惠普 | 0.4844 |
33。 | 图43 | 310年 | 466年 | 惠普 | 0.7031 |
34。 | 图44 | 312年 | 477年 | 惠普 | 0.9844 |
35。 | 图45 | 324年 | 487年 | 惠普 | 0.6094 |
36。 | 图50 | 348年 | 523年 | 惠普 | 0.9063 |
37岁。 | 图53 | 366年 | 549年 | 惠普 | 1.6875 |
38。 | 图54 | 372年 | 559年 | 惠普 | 0.9219 |
39岁。 | 图58 | 396年 | 595年 | 惠普 | 1.7031 |
40。 | 图59 | 400年 | 40001年 | HC | 0.2656 |
41岁。 | 图64 | 416年 | 625年 | 惠普 | 1.0938 |
42。 | 图65 | 419年 | 631年 | 惠普 | 1.4375 |
43。 | 图68 | 438年 | 657年 | 惠普 | 2.9219 |
44岁。 | Graph69 | 444年 | 667年 | 惠普 | 2.9063 |
45岁。 | 图72 | 460年 | 52901年 | HC | 0.4375 |
46岁。 | 图79 | 480年 | 57601年 | HC | 0.4844 |
47岁。 | 图82 | 496年 | 745年 | 惠普 | 1.7031 |
48。 | 图84 | 500年 | 62501年 | HC | 0.5313 |
49。 | 图90 | 510年 | 65026年 | HC | 0.5625 |
50。 | 图91 | 516年 | 775年 | 惠普 | 3.5156 |
51。 | 图95 | 540年 | 811年 | 惠普 | 3.0469 |
52岁。 | 图96 | 540年 | 72901年 | HC | 0.7031 |
53岁。 | 图99 | 550年 | 826年 | 惠普 | 5.6719 |
54。 | 图104 | 576年 | 865年 | 惠普 | 2.8594 |
55。 | 图118 | 636年 | 955年 | 惠普 | 6.8594 |
56。 | 图122 | 656年 | 985年 | 惠普 | 4.1563 |
57。 | 图124 | 660年 | 991年 | 惠普 | 8.2813 |
58岁。 | 图128 | 677年 | 114583年 | HC | 1.3594 |
59。 | 图134 | 724年 | 131045年 | HC | 1.5313 |
60。 | 图137 | 736年 | 1105年 | 惠普 | 12.9531 |
61年。 | 图148 | 816年 | 1225年 | 惠普 | 7.9531 |
62年。 | 图150 | 823年 | 169333年 | HC | 2.7500 |
63年。 | 图151 | 828年 | 1243年 | 惠普 | 11.5625 |
64年。 | 图160 | 896年 | 1345年 | 惠普 | 14 |
65年。 | 图162 | 909年 | 206571年 | HC | 4.0625 |
66年。 | 图168 | 972年 | 1459年 | 惠普 | 33.0938 |
67年。 | 图169 | 976年 | 1465年 | 惠普 | 28.6406 |
68年。 | 图176 | 1020年 | 1531年 | 惠普 | 29.4375 |
69年。 | 图182 | 1056年 | 1585年 | 惠普 | 22.6719 |
70年。 | 图188 | 1123年 | 315283年 | HC | 9.6406 |
71年。 | 图190 | 1136年 | 1705年 | 惠普 | 14.4844 |
72年。 | 图203 | 1216年 | 1825年 | 惠普 | 40.2813 |
73年。 | 图211 | 1296年 | 1945年 | 惠普 | 40.1406 |
74年。 | 图233 | 1456年 | 2185年 | 惠普 | 85.4688 |
75年。 | 图246 | 1536年 | 2305年 | 惠普 | 111.8438 |
值得指出的是,困难的实例FHCP挑战数据集是非常罕见的,很难构造,更不用说遇到“自然”。一个lso even discovering a Hamiltonian path is a difficult (NP-complete) problem and the proposed heuristic succeeded in doing so for many instances of the FHCP Challenge Set.
提出了一种混合启发式寻找哈密顿周期从无向图。提出了三阶段算法使用一个组合的三个启发式:贪婪的深度优先搜索,不可到达的顶点,和旋转变换。从各种不同的图形变量的大小和复杂性进行了实验,发现使用的最高学位启发式选择最长的初始顶点创建初始路径以及哈密顿路径和最小的启发式用于哈密顿路径的转换程度哈密顿周期的原因得到解决方案在一个单一的运行。实验还表明,评价该启发式更快,成功获得好结果在大多数情况下。它应该值得注意的是,增加的速度是在不牺牲启发式的可靠性不同大小的“简单”实例(包括相当大TSPLIB实例),它仍然更困难的实例上执行相当不错。
支持这项研究的数据来自之前报道的研究和数据集,已被引用。处理过的数据是可用的(
作者宣称没有利益冲突。
这个手稿的研究支持大学拨款委员会重大项目资助F.No.42-136/2013 (SR)。