高速穷尽列出任意连通图的哈密顿圈第一步
在一个平面内有任意多个点,每个点都与附近几个点有线段连接,如果要在这个连通图中找到一个最短的哈密顿圈,即货郎担回路,就还需要每条线段的长度。为了让我的思路和观点更加直观易于理解,准备在电子表格EXCEL里面利用VBA来实现。
第一步 在EXCEL的sheet2里面用两个区域来作为存放每个点的特征(周围节点、到各节点的距离)。
第1行是每个节点名称,A1,B1,C1,......M1,N1,......sheet2.cells(1,n),直至需要的节点个数n,可以根据实际情况任意增减。
第2行至第n-1行,填入每个节点周围相联通的节点,比如我有一篇是60个点的连通图,如下举出前面18个点的例子,当然每个节点周围节点的个数不一样。
第1001行至1000+n-1行,填入每个节点周围路径的长度,顺序与第2行至第n-1行的顺序一样,比如节点1周围有节点37,17,2,18,31,下面依次的路径长度分别为35,40,26,46,28,对于安排节点1周围五个节点的顺序没有固定的顺序。如图所示:
在1000行后面留下足够多的空白的目的,是为了以后的需要可以增加每个节点周围的节点数,比如,为了求得一条最短货郎担回路,可以把其余每一个点都作为周围的点,在节点总数为500的情况下,每一个节点周围的节点就有499个,需要一直安排到第500行。
明天继续