public Route Mate(Route father) { Route newRoute = new Route(cities); newRoute.genotype = new Dictionary<City, double>(); foreach (City city in cities.Cities) { Route parent = (random.Next() % 2 == 0) ? this : father; newRoute.genotype.Add(city, parent.genotype[city]); } newRoute.ClearCache(); return newRoute; }
public Route Mutate() { Route newRoute = new Route(cities); newRoute.genotype = new Dictionary <City, double>(); foreach (KeyValuePair <City, double> entry in genotype) { newRoute.genotype.Add(entry.Key, entry.Value); } newRoute.genotype[cities.Cities[random.Next(cities.Count)]] = random.NextDouble(); newRoute.ClearCache(); return(newRoute); }
public Route Mate(Route father) { Route newRoute = new Route(cities); newRoute.genotype = new Dictionary <City, double>(); foreach (City city in cities.Cities) { Route parent = (random.Next() % 2 == 0) ? this : father; newRoute.genotype.Add(city, parent.genotype[city]); } newRoute.ClearCache(); return(newRoute); }
public Route Split(Route father) { int cutoff = 50; int current = 0; Route newRoute = new Route(cities); newRoute.genotype = new Dictionary <City, double>(); foreach (City city in cities.Cities) { Route parent = (++current < cutoff) ? this : father; newRoute.genotype.Add(city, parent.genotype[city]); } newRoute.ClearCache(); return(newRoute); }
public Route Mutate() { Route newRoute = new Route(cities); newRoute.genotype = new Dictionary<City, double>(); foreach (KeyValuePair<City, double> entry in genotype) { newRoute.genotype.Add(entry.Key, entry.Value); } newRoute.genotype[cities.Cities[random.Next(cities.Count)]] = random.NextDouble(); newRoute.ClearCache(); return newRoute; }
public Route Split(Route father) { int cutoff = 50; int current = 0; Route newRoute = new Route(cities); newRoute.genotype = new Dictionary<City, double>(); foreach (City city in cities.Cities) { Route parent = (++current < cutoff) ? this : father; newRoute.genotype.Add(city, parent.genotype[city]); } newRoute.ClearCache(); return newRoute; }