我用VB编写程序用遗传算法解决TSP,我使用数据列表作为数据结构,我想问一下,在Visual Basic中解决TSP的另一种数据结构比我用的更好吗? 我也会用VB编写一个程序来解决使用分支定界算法的TSP,在这种情况下我可以使用哪种最好的数据结构,还是有利于它的数组? 谢谢
答案 0 :(得分:1)
我不了解VB,但以下内容应该足够通用。
如果基因型直接是城市排列,我使用的数据结构是(对于N个城市):
然后,健康评估既简单又快速,因为它只需一次遍历基因型,并且可以通过恒定时间查找距离。如果内存是一个问题并且问题是大的(即成千上万的城市和更多)你可能想要考虑不存储整个距离矩阵并只存储它的一部分(如果问题类型允许,就像在对称TSP中一样)其中从A到B的距离等于从B到A的距离,或者根本不存储它,并根据需要计算距离。
对于分支定界方法,您基本上也需要距离矩阵。如果您要对所选城市的顺序进行基于距离的优先级排序,并且您的TSP是度量标准(即每个城市是2D平面中的一个点),您可以使用KD树快速查找最近的城市飞机上的任何一点。