Hallo,
ich muss gerade im Studium ein Traveling Salesman Problem programmieren. Dabei war die erste Aufgabe eine Entfernungstabelle für 10 verschiedenen Städten zu machen, die mit Zufallswerten gefüllt werden soll. Das habe ich geschafft, aber nun mein Problem:
Die nächst Aufgabe laute: "
Nun schreiben Sie eine Funktion, welche für eine beliebige Rundreise, die in einem int Array gespeichert ist (z.B. 5,7,2,4,1,3,6,8,9,0 heißt Stadt 5 nach Stadt 7 nach Stadt 2 nach Stadt 4 nach Stadt 5 ...) die Länge der Rundreise zurückgibt."
Dabei bin ich gerade komplett verloren obwohl wir sogar einen kleinen Ansatzpunkt erhalten haben, ich bin jedoch trotzdem gerade sehr gefangen hierbei.
Würde mich sehr freuen, wenn mir jemand helfen könnte!
Schonmal Dankeschön im Voraus!
Hier erstmal der jetzige Code + der Ansatzpunkt für das weitere.
[CODE lang="java" title="Traveling Salesman Problem" highlight="26-36"]public class TravellingSalesman {
public static void main(String[] args) {
int tab[][] = new int[10][10]; // size 10 two-dimensional array
for (int i = 0; i < 10; i++) // creates random numbers for a 10x10 chart
{
for (int j = 0; j < 10; j++)
{
tab[j] = (int)(Math.random()*199); // every position in the array gets a random number between 0-199
tab[j] = tab[j]; // makes sure that it is reversed the same
tab = 0; // if its the same town there is no distance
}
}
for (int i = 0; i < 10; i++) // puts the random numbers in a visual chart
{
for (int j = 0; j < 10; j++)
{
System.out.print(tab[j] + " ");
}
System.out.println();
}
// Ansatzpunkt für die weitere Aufgabe
/* int tour[] = {5,7,2,4,1,3,6,8,9,0};
int dist = 0;
for ()
{
dist += distance(tour, tour[i+1]);
}
*/[/CODE]
ich muss gerade im Studium ein Traveling Salesman Problem programmieren. Dabei war die erste Aufgabe eine Entfernungstabelle für 10 verschiedenen Städten zu machen, die mit Zufallswerten gefüllt werden soll. Das habe ich geschafft, aber nun mein Problem:
Die nächst Aufgabe laute: "
Nun schreiben Sie eine Funktion, welche für eine beliebige Rundreise, die in einem int Array gespeichert ist (z.B. 5,7,2,4,1,3,6,8,9,0 heißt Stadt 5 nach Stadt 7 nach Stadt 2 nach Stadt 4 nach Stadt 5 ...) die Länge der Rundreise zurückgibt."
Dabei bin ich gerade komplett verloren obwohl wir sogar einen kleinen Ansatzpunkt erhalten haben, ich bin jedoch trotzdem gerade sehr gefangen hierbei.
Würde mich sehr freuen, wenn mir jemand helfen könnte!
Schonmal Dankeschön im Voraus!
Hier erstmal der jetzige Code + der Ansatzpunkt für das weitere.
[CODE lang="java" title="Traveling Salesman Problem" highlight="26-36"]public class TravellingSalesman {
public static void main(String[] args) {
int tab[][] = new int[10][10]; // size 10 two-dimensional array
for (int i = 0; i < 10; i++) // creates random numbers for a 10x10 chart
{
for (int j = 0; j < 10; j++)
{
tab[j] = (int)(Math.random()*199); // every position in the array gets a random number between 0-199
tab[j] = tab[j]; // makes sure that it is reversed the same
tab = 0; // if its the same town there is no distance
}
}
for (int i = 0; i < 10; i++) // puts the random numbers in a visual chart
{
for (int j = 0; j < 10; j++)
{
System.out.print(tab[j] + " ");
}
System.out.println();
}
// Ansatzpunkt für die weitere Aufgabe
/* int tour[] = {5,7,2,4,1,3,6,8,9,0};
int dist = 0;
for ()
{
dist += distance(tour, tour[i+1]);
}
*/[/CODE]