Java 压缩邻接矩阵求最短行程

Java 压缩邻接矩阵求最短行程,java,algorithm,traveling-salesman,adjacency-matrix,Java,Algorithm,Traveling Salesman,Adjacency Matrix,我有一个程序,可以读取数据文件并将数据作为16 x 16邻接矩阵输入。我需要在16个节点中找到10个节点,其中有一个最小的循环。有人能告诉我如何实现一个旅行推销员算法来实现这一点吗?我知道如何对所有16个节点执行此操作,但我不知道如何将其压缩为10个节点 公共课旅游 { 公共静态最终整数N=16; 公共静态final int INF=Integer.MAX_值; 公共静态void打印网格(int[][]adjMat) { 对于(int i=0;i

我有一个程序,可以读取数据文件并将数据作为16 x 16邻接矩阵输入。我需要在16个节点中找到10个节点,其中有一个最小的循环。有人能告诉我如何实现一个旅行推销员算法来实现这一点吗?我知道如何对所有16个节点执行此操作,但我不知道如何将其压缩为10个节点

公共课旅游
{
公共静态最终整数N=16;
公共静态final int INF=Integer.MAX_值;
公共静态void打印网格(int[][]adjMat)
{
对于(int i=0;i<16;i++)
{
对于(int j=0;j<16;j++)
{
if(adjMat[i][j]==INF)
System.out.printf(“%5s”,0);
其他的
System.out.printf(“%5d”,adjMat[i][j]);
}
System.out.println();
}
}
公共静态无效TSP(int[][]adjMat)
{
adjMat=新整数[N][N];
}
公共静态void main(字符串[]args)引发FileNotFoundException
{
File File=新文件(“american_tour.dat”);
扫描仪=新扫描仪(文件);
scanner.useDelimiter(“[\\s,]+”);
int N=scanner.nextInt();
int[][]adjMat=新的int[N][N];
对于(int i=0;i}
您的意思是在TSP问题中,在总行程最少的10个节点中找到要访问的节点(即,隔离其他6个将产生更大距离的节点)是,这正是我的意思。我做这类事情已经有几年了,但对每个可能的10个长度子集进行MST比较是否不够?你的意思是,在TSP问题中,在总行程最少的10个节点中,找到访问哪一个节点(即隔离其他6个节点,这将产生更大的距离?)是的,这正是我的意思。我已经有好几年没有做过这样的事情了,但是对每一个可能的10长度子集进行MST比较还不够吗?