我正在测试各种TSP模型/算法。现在我正在使用一个完整的邻接矩阵,填充了1到100之间的随机值,表示完整的有向图。
我正在寻找一种更严格的方法,允许我尝试不同类型的随机图,如鄂尔多斯 - 仁义,小世界网络和无标度网络。
我知道我可能必须切换到新图表的邻接列表。
我的方法是生成随机图,然后确保问题成为有效TSP实例所需的哈密尔顿路径。是否有可能,或者只是尝试解决无法解决的实例(假设所有方法都会在这样的实例上终止)更便宜?
顺便说一下,我正在考虑使用Boost Graph Library,但我对它并不熟悉,也许还有更合适的东西。欢迎提出替代方案的建议,但不应将其视为该问题的主要范围。
我不需要TSP求解器,我需要一些东西来帮助产生可接受的问题。
感谢。
答案 0 :(得分:0)
您可以尝试单调格雷码,a.k.a希尔伯特曲线。它可以帮助找到哈密顿路径:http://en.m.wikipedia.org/wiki/Gray_code。
答案 1 :(得分:0)
我正在寻找一种更加严谨的方法,让我尝试一下 不同种类的随机图,
检查Mathematica。它有一个内置的谓词来测试给定的图形是否具有哈密尔顿路径。它还有一个生成随机哈密顿图的谓词。
此外,如果您尚未尝试,TSBLIB包含(硬而简单)实例,您可能会发现它们很有用。