Even on the small graphs2 used to test the application, we noticed that the best solution is rarely found. However, in most cases, the genetic algorithms find a satisfying solution.
Both the genetic algorithms can be tuned by modifying several parameters: the quality of the solution dramatically depends on these values. Unfortunately, there exists no precise method to determine the best set of parameters: the algorithms' tuning is based on a try and fail strategy.
By running several tests, we pointed out a weakness of the Genetic Shortest Path Algorithm Without Constraints. Since this algorithm allows the existence of invalid solutions, the population my contain very short solutions3. Obviously, such solutions have a very small weight and thus their number increases in every following generation. This behaviour quickly produces a population containing only invalid paths.
This project allowed us to get acquaint with the specification and the implementation of a genetic algorithm. Our application could be improved, for example by defining a better strategy to determine the parameters' values. The fitness function for the Genetic Shortest Path Algorithm Without Constraints should be modified, so that the too short paths do not produce a degenerated population.
Despite these weaknesses, we believe that this application constitutes a valid proof of concept and it shows that genetic algorithms can be used to solve the shortest path problem in a graph.
The authors have very well appreciated the project. It allowed them to learn a lot about genetic algorithms, an exciting area of computer science.
Dominik Zindel 2007-07-04