Тип работы:
Предмет:
Язык работы:


УСОВЕРШЕНСТВОВАНИЕ АЛГОРИТМА РЕШЕНИЯ ЗАДАЧИ КОММИВОЯЖЕРА ПО МЕТОДУ ВЕТВЕЙ И ГРАНИЦ

Работа №184768

Тип работы

Дипломные работы, ВКР

Предмет

информационные системы

Объем работы33
Год сдачи2019
Стоимость3350 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
17
Не подходит работа?

Узнай цену на написание


Введение 4
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

Как известно, задача коммивояжёра является NP-трудной задачей поэтому точные алгоритмы её решения не могут иметь временную сложность меньше экспоненциальной. Решением ЗК является гамильтонов цикл полного взвешенного графа, сумма длин рёбер в котором минимальна. Такой граф обычно задается матрицей неотрицательных расстояний (длин рёбер графа для каждой пары вершин) размером п X п, в которой диагональные элементы полагаются равными очень большой величине, теоретически бесконечности. В самом общем случае матрица асимметрична, а для её элементов не выполнятся неравенство треугольника.
Одним из известных ранних алгоритмов точного решения задачи коммивояжера для общего случая является алгоритм Литтла [1, 2],
основанный на методе ветвей и границ, который строит дерево решений для перебора вариантов маршрута (циклов обхода) с отсечением. Отсекаются такие частично построенные маршруты, у которых оценка снизу длины маршрута больше или равна длине ранее построенного полного наилучшего маршрута. При построении оценки снизу на каждом этапе работы алгоритма матрица расстояний подвергается такому преобразованию с трудоемкостью О(п2), чтобы в каждой её строке и каждом столбце появился хотя бы один нуль.
Целью данной работы является изучение и реализация алгоритма Литтла, который гарантирует оптимальность, и является общим, т. е. не узкоспециализированным для конкретной численной задачи. Так как при построении дерева решений нам на каждом шаге будет требоваться выбирать очередное ребро для включения, мы рассмотрим несколько вариантов как выбрать ребро для ветвления, при помощи вычислительного эксперимента будет выяснено как способ выбора более предпочтительный. Также будет рассмотрена модификация алгоритма, для получения новой оценки нижней границы, что позволит отсекать бесперспективные ветки дерева решений гораздо раньше. В упомянутом вычислительном эксперименте, помимо времени работы алгоритма будет рассчитано количество построенных узлов, что также поможет оценить работу алгоритма.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


Как показал вычислительный эксперимент, выбор ребра для ветвления на очередном шаге лучше осуществлять при помощи коэффициента 6(1,р). При выборе ребра с использованием исходной матрицы, мы не тратим время на вычисление этого коэффициента, но при этом строим значительно больше узлов в дереве решений, что сильно отражается на времени работы алгоритма.
Так же было выявлено, что предложенная модификация алгоритма Литтла для случайной матрицы расстояний позволяет существенно сократить количество обрабатываемых узлов дерева решений при поиске оптимального маршрута в задаче коммивояжёра. При этом время обработки каждого узла имеет тот же порядок трудоёмкости, 0(п2), но с увеличенным в 1,5 — 2 раза множителем. В целом, трудоёмкость обоих алгоритмов имеет порядок 0(п2 * сп), но у модифицированного алгоритма константа с существенно меньше, что позволяет при примерно одинаковом времени решать задачу для п = 100 против п = 60.


1. Little J. D. C., Murty K. G., Sweeney D. W., and Karel C. An algorithm for the Traveling Salesman Problem // Operations Research. 1963. No. 11. P.972-989.
2. Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика: пер. с англ. М.: Мир, 1980. 478 с.
3. Костюк Ю. Л. Эффективная реализация алгоритма решения задачи коммивояжера методом ветвей и границ // Прикладная дискретная математика. 2013. №2 (20). С. 78-90.
4. Костюк Ю. Л. Задача коммивояжера: улучшенная нижняя граница в методе ветвей и границ // Прикладная дискретная математика. 2013. №4 (22). С. 73-81.


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ