Hi,
ich bin gerade dabei ein Travelling Salesman Problem zu programmieren und
stecke nun so kurz vorm Ende fest. Ich muss 2 aus den 10 ausgewählten "Städten" mit 2 zufälligen anderen "Städten" aus der Tabelle vertauschen. Nur stehe ich einfach komplett auf dem Schlauch und kriege seit Tagen nichts richtiges hin.
Hoffentlich kann mir jemand hier helfen.
Hier der Code:
ich bin gerade dabei ein Travelling Salesman Problem zu programmieren und
stecke nun so kurz vorm Ende fest. Ich muss 2 aus den 10 ausgewählten "Städten" mit 2 zufälligen anderen "Städten" aus der Tabelle vertauschen. Nur stehe ich einfach komplett auf dem Schlauch und kriege seit Tagen nichts richtiges hin.
Hoffentlich kann mir jemand hier helfen.
Hier der Code:
Code:
public static void main(String[] args) {
// TODO Auto-generated method stub
int[][] distance = new int[10][10];
Random random = new Random();
int sum = 0;
int sr = 0;
System.out.println("Tabelle - Entfernungen zwischen den Städten");
// create a table with distances
for (int i = 0; i < distance.length; i++) {
for (int j = 0; j < distance[i].length; j++) {
//random max/min = (max + 1 - min) + 1
distance[i][j] = random.nextInt(100 + 1 - 1) + 1;
distance[j][i] = random.nextInt(100 + 1 - 1) + 1;
distance[i][j] = distance[j][i];
distance[i][i] = 0;
distance[j][j] = 0;
}
}
// print table in console
for (int[] row : distance) {
printRow(row);
}
System.out.println("");
System.out.println("Städtereise");
// print random route
for (int[] array : distance) {
sr = getRandom(array);
System.out.println(sr);
sum = sum + sr;
}
// print total of random route
System.out.println("");
System.out.println("Gesamt");
System.out.println(sum);
}
// method for table
public static void printRow(int[] row) {
for (int i : row) {
System.out.print(i);
System.out.print("\t");
}
System.out.println();
}
// method for 10 random cities
public static int getRandom(int[] array) {
int rnd = new Random().nextInt(array.length);
return array[rnd];
}
}