public double DistanceTo(AlgCity city) { //int xDistance = Math.Abs(this.x - city.x); //int yDistance = Math.Abs(this.y - city.y); //return Math.Sqrt(xDistance * xDistance + yDistance * yDistance); if (!TourManager.IsRoutesListSet()) { using (LogisticsProject.Models.ApplicationDbContext db = new LogisticsProject.Models.ApplicationDbContext()) { List <LogisticsProject.Models.Route> routes = (from r in db.Routes.Include("cityFrom").Include("cityTo") select r).ToList(); TourManager.SetRoutesList(routes); LogisticsProject.Models.Route route = (from r in db.Routes where (r.cityFrom.CityId == this.CityId && r.cityTo.CityId == city.CityId) select r).First(); return(route.distance); } } else { List <LogisticsProject.Models.Route> routes = TourManager.GetRoutesList(); LogisticsProject.Models.Route route = (from r in routes where (r.cityFrom.CityId == this.CityId && r.cityTo.CityId == city.CityId) select r).First(); return(route.distance); } }
public double DistanceTo(City city) { //int xDistance = Math.Abs(this.x - city.x); //int yDistance = Math.Abs(this.y - city.y); //return Math.Sqrt(xDistance * xDistance + yDistance * yDistance); using (LogisticsProject.Models.ApplicationDbContext db = new LogisticsProject.Models.ApplicationDbContext()) { LogisticsProject.Models.Route route = (from r in db.Routes where (r.cityFrom.CityId == this.CityId && r.cityTo.CityId == city.CityId) select r).First(); return(route.distance); } }
public static void Main(string[] args) { List <LogisticsProject.Models.City> citiesDb; // Create and add our cities from database using (var db = new LogisticsProject.Models.ApplicationDbContext()) { citiesDb = (from c in db.Cities select c).ToList(); } List <City> citiesSalesman = new List <City>(citiesDb.Count()); //for (int i = 6; i < 12; i++) //{ // citiesSalesman.Add(new City(citiesDb[i], i*10 + 10)); // TourManager.AddCity(citiesSalesman[i-6]); //} TourManager.AddCity(new City(citiesDb[0], 5)); TourManager.AddCity(new City(citiesDb[3], 5)); TourManager.AddCity(new City(citiesDb[7], 5)); TourManager.AddCity(new City(citiesDb[2], 6)); TourManager.AddCity(new City(citiesDb[9], 50)); TourManager.SetMaxFuelConsump(20); TourManager.TruckLoad = 80; Population population = new Population(50, true); Console.WriteLine("Initial distance : " + population.GetFittest().GetDistance()); population = GeneticAlgorithm.EvolvePopulation(population); for (int i = 0; i < 120; i++) { population = GeneticAlgorithm.EvolvePopulation(population); } Console.WriteLine("Done"); Console.WriteLine("Computed distance : " + population.GetFittest().GetDistance()); Console.Write("Solution : \n" + population.GetFittest()); Console.Read(); }