我需要在JAVA中获取TSP的成本矩阵,我的输入文件是这样的:
5
1 2 439
1 3 678
1 4 1814
1 5 1635
2 1 436
2 3 543
2 4 1744
2 5 1564
3 1 700
3 2 500
3 4 1644
3 5 1464
4 1 1794
4 2 1666
4 3 1601
4 5 668
5 1 1690
5 2 1562
5 3 1497
5 4 665
请帮忙!
答案 0 :(得分:1)
此输入已为您提供成本矩阵。第一行给出了城市的数量,即矩阵中的行数和列数。后续行以row column distance
(或column row distance
)格式给出矩阵的元素。
在Java中表示这一点的最简单方法是使用2D数组。您可以使用Scanner
类来解析输入并将其存储在数组中。
您的TSP似乎(略微)不对称,因此您需要注意不要将行索引与列索引混淆,否则您的旅行方向将完全错误。
最后,成本矩阵的对角元素不存在于文件中,因为它们不能作为有效TSP游览的一部分出现。您可能会发现将这些条目设置为正无穷大很有帮助,因为它可能会让您的生活更加轻松。