在过去一小时左右的时候,我的主要方法的循环一直在摆弄,但无济于事。问题来自于值数组和单位矩阵中的Array Out of Bounding。
假设所有其他方法等都有效。
public static void main(String args[])
{
double adjacency_matrix[][] = new double[80][80];
double[] values = new double[160];
String[]contents = new String[160];
FileIO reader = new FileIO();
contents = reader.load("C:\\Users\\Mark\\Documents\\Java Workspace\\CS211\\src\\TSP\\locations.txt");
double temp1,temp2,temp3,temp4;
int count = 0,count2 = 0;
for(int i=0; i<values.length; i++)
{
values[i] = Double.parseDouble(contents[i].substring(0,contents[i].length()-1));
}
for(int i=0; i<=79;i++)
{
for(int j=0; j<=79; j++)
{
if(i == j)
{
adjacency_matrix[i][j] = 0.0;
count2+=1;
}
else
{
temp1 = values[i+count];
temp2 = values[i + count + 1];
temp3 = values[j + count2];
temp4 = values[j +count2 + 1];
adjacency_matrix[i][j] = GPSDistanceHarversine.gpsDistance(temp1, temp2, temp3, temp4);
count2+=1;
}
count+=1;
count2 = 0;
}
}
System.out.println("The cities are visited as follows:");
TspMain tspNearestNeighbour = new TspMain();
tspNearestNeighbour.tsp(adjacency_matrix);
}
嵌套距离检查循环导致问题。任何人都可以看到可能搞砸了什么?