This is a project to solve TSP by GeneticAlgorithm. If you look the source code, please click here.
I use processing to visual this algorithm and test it.
If you processing ide
, download floder named GeneticP5Visaul
. Then open GeneticP5Visaul.pde
and run it, you will visual view. But you don't processing ide, you can load processing library or you run src/GeneticTest.java
, you will watch it in console
.
If you use this method, you are better in a thread
. Because it will return result untill MaxGeneration.
// get a GeneticAlgorithm instance
GeneticAlgorithm ga = GeneticAlgorithm.getInstance();
ga.setMaxGeneration(1000);
ga.setAutoNextGeneration(true);
// points is a array of all point, the function of getdist() is get adjacency matrix
best = ga.tsp(getDist(points));
System.out.print("best path:");
for (int i = 0; i < best.length; i++) {
System.out.print(best[i] + " ");
}
System.out.println();
If you use this method, you will control it by yourselt and using nextGeneration()
function.
GeneticAlgorithm ga = new GeneticAlgorithm();
best = ga.tsp(getDist(points));
int n = 0;
while (n++ < 100) {
best = ga.nextGeneration();
System.out.println("best distance:" + ga.getBestDist() + " current generation:" + ga.getCurrentGeneration() + " mutation times:" + ga.getMutationTimes());
System.out.print("best path:");
for (int i = 0; i < best.length; i++) {
System.out.print(best[i] + " ");
}
System.out.println();
}
Welcome to pull requests.
If you have any new idea about this project, feel free to contact me. 😃