/// <summary> /// Получение лучшего пути за оба дня. /// </summary> /// <returns></returns> public List <Sight> GetAllSights() { List <Sight> firstDay = GetSights(); List <Sight> temp = new List <Sight>(); temp.AddRange(originalSightList); foreach (var item in firstDay) { temp.Remove(item); } ExhaustiveAlgorithm exhaustiveAlgorithm = new ExhaustiveAlgorithm(16, temp); exhaustiveAlgorithm.MakeAllSets(temp); List <Sight> secondDay = exhaustiveAlgorithm.GetSights(); firstDay.AddRange(secondDay); return(firstDay); }
static void Main(string[] args) { SightList sights = new SightList(); List <Sight> randomList = sights.GetRandomSights(10); List <Sight> list = sights.GetSights(); ExhaustiveAlgorithm exhaustiveAlgorithm = new ExhaustiveAlgorithm(16, randomList); GreedyAlgorithm greedyAlgorithm = new GreedyAlgorithm(); MyAlgorithm myAlgorithm = new MyAlgorithm(); Console.WriteLine("Случайный набор достопримечательностей:"); foreach (var item in randomList) { Console.WriteLine(item); } Console.WriteLine(); Console.WriteLine("Алгоритм полного перебора для случайных достопримечательностей:"); exhaustiveAlgorithm.MakeAllSets(randomList); var sum = 0; List <Sight> optimalRoute1 = exhaustiveAlgorithm.GetAllSights(); foreach (var item in optimalRoute1) { sum += item.Importance; Console.WriteLine(item); } Console.WriteLine($"Суммарная важность = {sum}"); Console.WriteLine(); Console.WriteLine("Жадный алгоритм для случайных достопримечательностей:"); List <Sight> optimalRoute2 = greedyAlgorithm.GreedySort(randomList); sum = 0; foreach (var item in optimalRoute2) { sum += item.Importance; Console.WriteLine(item); } Console.WriteLine($"Суммарная важность = {sum}"); Console.WriteLine(); Console.WriteLine("Собственный алгоритм для случайных достопримечательностей:"); List <Sight> optimalRoute3 = myAlgorithm.Sort(randomList); sum = 0; foreach (var item in optimalRoute3) { sum += item.Importance; Console.WriteLine(item); } Console.WriteLine($"Суммарная важность = {sum}"); Console.WriteLine(); Console.WriteLine("Выбор оптимального маршрута с использованием жадного алгоритма"); List <Sight> finalRoute1 = greedyAlgorithm.GreedySort(list); sum = 0; foreach (var item in finalRoute1) { sum += item.Importance; Console.WriteLine(item); } Console.WriteLine($"Суммарная важность = {sum}"); Console.WriteLine(); Console.WriteLine("Выбор оптимального маршрута с использованием собственного алгоритма"); List <Sight> finalRoute2 = myAlgorithm.Sort(list); sum = 0; foreach (var item in finalRoute2) { sum += item.Importance; Console.WriteLine(item); } Console.WriteLine($"Суммарная важность = {sum}"); Console.ReadLine(); }