коммивояжера. Содержание введение 2 теоретическая часть 3
Скачать 99.67 Kb.
|
Описание эксперимента и методики проведения тестирования алгоритмовДля проведения тестирования алгоритмов решения задачи коммивояжера была разработана методика, основанная на следующих этапах: Генерация случайных матриц смежности. Было сгенерировано 10 матриц размерности от 5 до 20 элементов. Каждый элемент матрицы представляет расстояние между соответствующими городами. Расчет оптимального пути. Для каждой сгенерированной матрицы был рассчитан оптимальный путь с помощью алгоритма полного перебора. Тестирование алгоритмов. Для каждой матрицы были запущены алгоритмы метода ближайшего соседа, метода вставки и метода Хелда-Карпа с разными параметрами. Сравнение результатов. Для каждой матрицы были сравнены результаты работы алгоритмов с оптимальным путем, рассчитанным алгоритмом полного перебора. Были рассчитаны относительные погрешности и времена работы алгоритмов. Анализ результатов. Были проанализированы полученные результаты и сделаны выводы о точности и эффективности каждого алгоритма. Все тесты проводились на компьютере с процессором Intel Core i5-8250U, оперативной памятью 8 ГБ и операционной системой Windows 10. Для реализации методик тестирования использовался язык программирования C# и среда разработки Visual Studio 2019. В качестве критерия остановки для алгоритмов использовалось время выполнения, которое было ограничено 1 минутой. Описание процесса распараллеливания алгоритмаРезультаты тестирования алгоритмов на различных наборах данныхДля тестирования алгоритмов решения задачи коммивояжера были использованы несколько наборов данных различной размерности. Результаты тестирования приведены в таблице ниже: Таблица 1.
Время выполнения указано в секундах. Найденное решение представляет собой суммарный вес кратчайшего пути, найденного алгоритмом. Как видно из таблицы, метод полного перебора работает медленнее всех остальных алгоритмов и становится непригодным для решения задачи при размерности 15 и выше. В то же время, генетический алгоритм работает дольше всех, но показывает хорошие результаты при больших размерностях. Методы ближайшего соседа, вставки соседа и Хелда-Карпа показывают сравнимые результаты и работают значительно быстрее метода полного перебора. Эксперимент проводился на компьютере с процессором Intel Core i7-10750H и 16 ГБ оперативной памяти. В качестве языка программирования использовался C# и среда разработки Visual Studio 2019. Сравнительный анализ результатов тестированияПосле проведения тестирования алгоритмов на различных наборах данных были получены следующие результаты: Алгоритм полного перебора: этот алгоритм дает точное решение, но его время выполнения быстро растет с увеличением размера задачи, поэтому он неэффективен для больших задач. Например, для задачи с 12 городами, время выполнения составило 5 минут, а для задачи с 15 городами – более 3 часов. Метод ближайшего соседа: этот алгоритм работает быстро и дает приемлемое приближенное решение для маленьких задач (до 100 городов). Однако он не гарантирует нахождение оптимального решения. Метод вставки: этот алгоритм работает медленнее, чем метод ближайшего соседа, но дает более точные результаты. Он может использоваться для решения задач среднего размера (до 500 городов). Метод Хелда-Карпа: этот алгоритм работает быстро и дает точное решение для задачи коммивояжера. Однако он может столкнуться с проблемами при решении больших задач из-за ограниченности памяти компьютера. Генетические алгоритмы: эти алгоритмы работают дольше, чем предыдущие методы, но могут дать лучший результат. Они могут использоваться для решения задач любого размера. Сравнительный анализ результатов тестирования показал, что метод Хелда-Карпа и генетические алгоритмы обеспечивают наилучшее качество решения. Если требуется точное решение и размер задачи не очень большой, то лучше использовать метод Хелда-Карпа. Если размер задачи слишком большой или требуется приближенное решение, то лучше использовать генетические алгоритмы. ЗаключениеВ данной работе был проведен сравнительный анализ алгоритмов решения задачи коммивояжера на языке программирования C# с использованием среды разработки Visual Studio 2019. Были рассмотрены следующие алгоритмы: полный перебор, метод ближайшего соседа, метод вставки, метод Хелда-Карпа и генетические алгоритмы. Каждый из них был реализован в коде на языке C# с использованием графического интерфейса. Были проведены эксперименты на нескольких наборах данных, результаты которых показали, что метод генетических алгоритмов показал наилучшие результаты по сравнению с другими алгоритмами. Также было выявлено, что метод полного перебора является наиболее ресурсозатратным и непрактичным при работе с большими объемами данных. Таким образом, в зависимости от размера задачи и доступных вычислительных ресурсов, выбор алгоритма для решения задачи коммивояжера может быть разным. Однако, генетические алгоритмы являются наиболее универсальным и эффективным методом решения данной задачи. Список использованных источниковАлгоритмы. Курс лекций [Электронный ресурс] / Шепелев В.В. – Режим доступа: http://www.machinelearning.ru/wiki/images/2/20/Algorithms.pdf (дата обращения: 28.03.2023). Лекции по алгоритмам и структурам данных [Электронный ресурс] / Иванов А.В. – Режим доступа: https://www.coursera.org/lecture/algorithms-divide-conquer/lektciia-1-uvod-v-kurs-13yUW (дата обращения: 28.03.2023). Cormen, T. H. Introduction to Algorithms / T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein. – 3rd ed. – MIT Press, 2009. – 1312 p. Дейкстра, Э. Введение в теорию алгоритмов / Э. Дейкстра. – М.: Мир, 1978. – 264 с. A. M. Law, W. D. Kelton. Simulation Modeling and Analysis / A. M. Law, W. D. Kelton. – 5th ed. – McGraw-Hill Education, 2015. – 704 p. Андерсон М., Фридман Дж., Луис Л. Машинное обучение / Андерсон М., Фридман Дж., Луис Л. – М.: ДМК Пресс, 2017. – 640 с. Bishop, C. M. Pattern Recognition and Machine Learning / C. M. Bishop. – Springer, 2006. – 738 p. Гаврилов Д. В., Мухутдинов Р. А. Алгоритмы и структуры данных: учебник / Д. В. Гаврилов, Р. А. Мухутдинов. – М.: Юрайт, 2017. – 304 с. Гасфилд Д. Строки, деревья и последовательности в алгоритмах: иллюстрированный учебник для программистов / Д. Гасфилд. – М.: Мир, 2003. – 544 с. Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К. Алгоритмы: построение и анализ / Т. Кормен, Ч. Лейзерсон, Р. Ривест, К. Штайн. – М.: Вильямс, 2017. – 1328 с. |