Тема: УСОВЕРШЕНСТВОВАНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ КОММИВОЯЖЕРА ПО МЕТОДУ ВЕТВЕЙ И ГРАНИЦ
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
1. Постановка задачи 6
2. Алгоритм Литтла 7
2.1 Нотация 7
2.2 Нижние границы 8
2.3 Ветвление 10
2.4 Пошаговый алгоритм 11
3. Численный пример 15
4. Альтернативные варианты выбора ребра для ветвления 22
5. Модификация алгоритма 24
6. Реализация 26
7. Вычислительный эксперимент 30
Заключение 32
Литература 33
📖 Введение
Одним из известных ранних алгоритмов точного решения задачи коммивояжера для общего случая является алгоритм Литтла [1, 2],
основанный на методе ветвей и границ, который строит дерево решений для перебора вариантов маршрута (циклов обхода) с отсечением. Отсекаются такие частично построенные маршруты, у которых оценка снизу длины маршрута больше или равна длине ранее построенного полного наилучшего маршрута. При построении оценки снизу на каждом этапе работы алгоритма матрица расстояний подвергается такому преобразованию с трудоемкостью О(п2), чтобы в каждой её строке и каждом столбце появился хотя бы один нуль.
Целью данной работы является изучение и реализация алгоритма Литтла, который гарантирует оптимальность, и является общим, т. е. не узкоспециализированным для конкретной численной задачи. Так как при построении дерева решений нам на каждом шаге будет требоваться выбирать очередное ребро для включения, мы рассмотрим несколько вариантов как выбрать ребро для ветвления, при помощи вычислительного эксперимента будет выяснено как способ выбора более предпочтительный. Также будет рассмотрена модификация алгоритма, для получения новой оценки нижней границы, что позволит отсекать бесперспективные ветки дерева решений гораздо раньше. В упомянутом вычислительном эксперименте, помимо времени работы алгоритма будет рассчитано количество построенных узлов, что также поможет оценить работу алгоритма.
✅ Заключение
Так же было выявлено, что предложенная модификация алгоритма Литтла для случайной матрицы расстояний позволяет существенно сократить количество обрабатываемых узлов дерева решений при поиске оптимального маршрута в задаче коммивояжёра. При этом время обработки каждого узла имеет тот же порядок трудоёмкости, 0(п2), но с увеличенным в 1,5 — 2 раза множителем. В целом, трудоёмкость обоих алгоритмов имеет порядок 0(п2 * сп), но у модифицированного алгоритма константа с существенно меньше, что позволяет при примерно одинаковом времени решать задачу для п = 100 против п = 60.





