org.apache.mahout.ga.watchmaker.travellingsalesman
Class EvolutionaryTravellingSalesman
java.lang.Object
org.apache.mahout.ga.watchmaker.travellingsalesman.EvolutionaryTravellingSalesman
- All Implemented Interfaces:
- TravellingSalesmanStrategy
public class EvolutionaryTravellingSalesman
- extends java.lang.Object
- implements TravellingSalesmanStrategy
Evolutionary algorithm for finding (approximate) solutions to the travelling salesman problem.
The original code is from the Watchmaker project (https://watchmaker.dev.java.net/).
Modified to use Mahout whenever requested.
Constructor Summary |
EvolutionaryTravellingSalesman(DistanceLookup distances,
org.uncommons.watchmaker.framework.SelectionStrategy<? super java.util.List<java.lang.String>> selectionStrategy,
int populationSize,
int eliteCount,
int generationCount,
boolean crossover,
boolean mutation,
boolean mahout)
Creates an evolutionary Travelling Salesman solver with the specified configuration. |
Method Summary |
java.util.List<java.lang.String> |
calculateShortestRoute(java.util.Collection<java.lang.String> cities,
ProgressListener progressListener)
Calculates the shortest route using a generational evolutionary algorithm with a single ordered mutation
operator and truncation selection. |
java.lang.String |
getDescription()
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
EvolutionaryTravellingSalesman
public EvolutionaryTravellingSalesman(DistanceLookup distances,
org.uncommons.watchmaker.framework.SelectionStrategy<? super java.util.List<java.lang.String>> selectionStrategy,
int populationSize,
int eliteCount,
int generationCount,
boolean crossover,
boolean mutation,
boolean mahout)
- Creates an evolutionary Travelling Salesman solver with the specified configuration.
- Parameters:
distances
- Information about the distances between cities.selectionStrategy
- The selection implementation to use for the evolutionary algorithm.populationSize
- The number of candidates in the population of evolved routes.eliteCount
- The number of candidates to preserve via elitism at each generation.generationCount
- The number of iterations of evolution to perform.crossover
- Whether or not to use a cross-over operator in the evolution.mutation
- Whether or not to use a mutation operator in the evolution.mahout
- Whether or not to use Mahout for evaluation.
getDescription
public java.lang.String getDescription()
- Specified by:
getDescription
in interface TravellingSalesmanStrategy
- Returns:
- A description of the strategy.
calculateShortestRoute
public java.util.List<java.lang.String> calculateShortestRoute(java.util.Collection<java.lang.String> cities,
ProgressListener progressListener)
- Calculates the shortest route using a generational evolutionary algorithm with a single ordered mutation
operator and truncation selection.
- Specified by:
calculateShortestRoute
in interface TravellingSalesmanStrategy
- Parameters:
cities
- The list of destinations, each of which must be visited once.progressListener
- Call-back for receiving the status of the algorithm as it progresses.
- Returns:
- The (approximate) shortest route that visits each of the specified cities once.
Copyright © 2008-2010 The Apache Software Foundation. All Rights Reserved.