GTSP实例库

这是GTSP实例库的主页。它由创建和维护丹尼尔·卡拉佩提安。如果您发现任何错误,请改进所提供的解决方案,或者只是对库有疑问或建议,请通过联系我.

如果您在研究中使用此库,请将其称为“GTSP实例库(Daniel Karapetyan,网址:http://www.cs.nott.ac.uk/~dxk/gtsp.html)“并引用[1]。

介绍

广义旅行商问题(GTSP)是旅行商问题的扩展,其中节点集被划分为多个簇,其目标是找到精确访问(或在某些情况下,至少访问)每个簇中一个节点的最短周期。问题是NP-hard。

1997年,Fischetti、Salazar Gonzalez和Toth[2]引入了一个简单的集群过程,可用于从TSP实例中创建GTSP实例。TSP实例取自一个众所周知的TSP实例库,TSPLIB公司由Gerhard Reinelt[3]创建。从那时起,这样的试验台变成了事实上的几乎所有GTSP文献中使用的标准。在这个网站上,你会发现这些实例有几种格式。您还将为这些实例中的每一个找到最知名的解决方案。

符号

在以下内容中,我们使用N个对于节点数,M(M)对于集群数量,C类集群的节点数(大小)w个(x个,)边缘重量(x个,).

每个实例可以具有以下两个属性的任意组合:对称和三角形。对称属性意味着实例的权重矩阵是对称的。,w个(x个,) =w个(,x个)对于每对节点x个三角形属性表示权重矩阵满足三角形不等式,即。,w个(x个,) +w个(,z(z)) ≥w个(x个,z(z))对于每三个节点x个,z(z).

实例命名

GTSP实例库中的每个实例命名如下:<M(M)><类型><N个>,其中<类型>派生自TSPLIB实例。例如,89rbg443 GTSP实例有89个集群,443个节点,属于“rbg”类。

在大多数情况下<M(M)><类型><N个>GTSP实例从<类型><N个>TSP实例。例如,89rbg443 GTSP实例是从rbg443TSP实例获得的。唯一的例外是从ftv35 TSP实例获取的8ftv36实例。

最佳解决方案

对于许多实例,最佳解决方案已被证明,有关详细信息,请参阅[2]。对于其余实例,我们提供了迄今为止最著名的解决方案。目前,所有这些解决方案都是由Gutin和Karapetyan获得的,见[1]。如果您发现其中任何一个实例的解决方案优于此库中报告的解决方案,请将其发送给我().

下载

在本节中,您可以找到以下不同格式的GTSP实例和最知名解决方案的下载链接。到目前为止,GTSP文献中使用的最大实例是217vm1084,因此,下面的文件包含大小为N个≤ 1084.

文本格式(实例)

此格式旨在简化实例读取过程。它只包含最必要的信息。它从实例属性、节点数、簇数、每个簇内的节点和显式权重矩阵开始。

此格式的文件由三部分组成:标题、簇和权重矩阵。

标题部分包含4行。每行从值的名称(“N”、“M”、“对称”或“三角形”)开始,然后指定相应的值。行的顺序是固定的。

集群部分包含M(M)行。这个第一线对应集群.从尺寸开始C类群集的然后列出此群集中的所有节点。

权重矩阵部分准确地包含N个线。这个第一线对应于节点的权重。每行包含N个整数。这个j个第个整数对应于节点边缘的权重到节点j个.

N: <节点数N个>M: <簇数M(M)>对称:<“true”或“false”>三角形:<“true”或“false”><C类1><群集1中的节点1><群集1的节点2><节点C类1在群集1中><C类2><群集2中的节点1><群集2中的节点2><节点C类2在群集2中>...<C类M(M)><集群中的节点1M(M)><集群中的节点2M(M)><节点C类M(M)在群集中M(M)><w个(1,1)> <w个(1,2)> ... <w个(1,N个)><w个(2,1)> <w个(2,2)> ... <w个(2,N个)>...<w个(N个,1)> <w个(N个,2)> ... <w个(N个,N个)>

请注意,此格式中的节点从1开始编号。

二进制格式(实例)

这是实例文件的二进制格式。它包含与上述文本格式完全相同的信息,但由于二进制编码提供了明显更高的读取过程性能。

此格式的文件是3个序列+M(M)+N个+N个2整数值,每4个字节长。这些值如下:

请注意,此格式中的节点从0开始编号。

TSPLIB文本格式(实例)

GTSP实例的此格式由亚历克谢·兹维罗维奇它是TSPLIB格式的扩展,因此具有灵活性,但比上述格式更难读取。这种格式的主要优点是它提供了有关实例的更多信息。例如,对于欧几里德实例,它提供了某些算法可以使用的节点坐标,而不是显式的权重矩阵。

该格式遵循TSPLIB文件它定义了一个名为“GTSP_SET_section”的新部分,其中包含有关群集的信息。

M(M)用空格符号分隔的条目。这个第个条目对应于群集。它从集群索引开始,然后列出此群集中的所有节点,并以-1值终止:

1<集群1中的节点1><集群1的节点2>…<节点C类1在群集1中>-12<群集2中的节点1><群集2中的节点2>…<节点C类2在群集2中>-1...3<集群中的节点1M(M)><集群中的节点2M(M)> ... < 节点C类M(M)在群集中M(M)> -1

此格式的文件由三部分组成:标题、簇和权重矩阵。

标题部分包含4行。每行从值的名称(“N”、“M”、“对称”或“三角形”)开始,然后指定相应的值。行的顺序是固定的。

集群部分包含M(M)线。这个第一线对应集群.从尺寸开始C类群集的然后列出此群集中的所有节点。

权重矩阵部分准确地包含N个行。这个第一线对应于节点的权重。每行包含N个整数。这个j个第个整数对应于节点边缘的权重到节点j个.

N: <节点数N个>M: <簇数M(M)>对称:<“true”或“false”>三角形:<“true”或“false”><C类1><群集1中的节点1><群集1的节点2><节点C类1在群集1中><C类2><群集2中的节点1><群集2中的节点2><节点C类2在群集2中>...<C类M(M)><集群中的节点1M(M)><集群中的节点2M(M)><节点C类M(M)在群集中M(M)><w个(1,1)> <w个(1,2)> ... <w个(1,N个)><w个(2,1)> <w个(2,2)> ... <w个(2,N个)>...<w个(N个,1)> <w个(N个,2)> ... <w个(N个,N个)>

请注意,此格式中的节点从1开始编号。

文本格式(解决方案)

此格式的文件由两部分组成:标题和巡更。

标题部分需要2行。第一行正好包含一个与数字对应的整数M(M)巡更中的节点。第二行正好包含一个与巡更权重对应的整数。

旅游区需要M(M)线。这个第行正好包含一个与巡更中的第个节点。

<巡更大小M(M)><旅行重量><巡回演出中的节点1><教程中的节点2>...<节点M(M)在旅游中>

请注意,此格式中的节点从1开始编号。

二进制格式(解决方案)

这是解决方案文件的二进制格式。它包含与上述文本格式完全相同的信息,但由于二进制编码提供了更高的读写过程性能。

此格式的文件是2的序列+M(M)整数值,每个4字节长。这些值如下:

请注意,此格式中的节点从0开始编号。

工具书类

[1] Gutin,G.,Karapetyan,D.(2009年)。广义旅行商问题的模因算法。自然计算, 9(1), 47-60.

[2] Fischetti,M.、Salazar Gonzalez,J.J.、Toth,P.(1997)。对称广义旅行商问题的分枝算法。运筹学, 45(3), 378-394.

[3] Reinelt,G.(1991)。TSPLIB——旅行推销员问题库。信息计算杂志, 3(4), 376-384.

联络

如果您有任何问题或建议,请发送电子邮件至.

上次修改时间:2012年7月4日。