Автор работы: Пользователь скрыл имя, 12 Марта 2012 в 12:33, контрольная работа
Задача коммивояжера (ЗК), известная также как задача о сверлильном станке или алгоритм коммивояжера была поставлена в 1934 году. Эта задача является одной из знаменитых задач теории комбинаторики и широко применяется при разработке программного обеспечения.
ВВЕДЕНИЕ………………………………………………………………..2
1. ОСОБЕННОСТИ РЕШЕНИЯ ЗАДАЧ КОМИВОЯЖЕРА………….3
1.1. Задача коммивояжера: сущность и применение на практике…3
1.2. Методы решения задачи коммивояжера………………………...6
2. ЭВРИСТИЧЕСКИЕ МЕТОДЫ………………………………………..9
2.1. Алгоритм Борувки………………………………………………..11
2.2. Алгоритм Крускала………………………………………………11
2.3. Алгоритм Прима………………………………………………….12
2.4. Вывод………………………………………………………………12
3. МЕТОД ВЕТВЕЙ И ГРАНИЦ……………………………………….13
4. Заключение……………………………………………………………19
5. СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ………………….20
СОДЕРЖАНИЕ:
ВВЕДЕНИЕ…………………………………………………………
ВВЕДЕНИЕ
Комбинаторика раздел математики, посвященный решению задач выбора и расположения элементов некоторого, обычно конечного множества в соответствии с заданными правилами. Каждое такое правило определяет способ построения некоторой конструкции из элементов исходного множества, называемой комбинаторной конфигурацией. Поэтому можно сказать, что целью комбинаторного анализа является изучение комбина-торных конфигураций. Это изучение включает в себя вопросы существования комбинаторных конфигураций, алгоритмы их построения, оптимизацию таких алгоритмов, а также решение задач перечисления, в частности определение числа конфигураций данного класса. Простейшим примером комбинаторных конфигураций являются перестановки, сочетания и размещения. Большой вклад в систематическое развитие комбинаторных методов был сделан Г. Лейбницем диссертация Комбинаторное искусство , Я. Бернулли работа Искусство предположений , Л. Эйлером. Можно считать, что с появлением работ Я. Бернулли и Г. Лейбница комбинаторные методы выделились в самостоятельную часть математики. В работах Л.Эйлера по разбиениям и композициям натуральных чисел на слагаемые было положено начало одному из основных методов перечисления комбинаторных конфигураций методу производящих функций.
Возвращение интереса к комбинаторному анализу относится к 50-м годам ХХ в. в связи с бурным развитием кибернетики и дискретной математики и широким использованием электронно-вычислительной техники. В этот период активизировался интерес к классическим комбинаторным задачам. Классические комбинаторные задачи это задачи выбора и расположения элементов конечного множества, имеющие в качестве исходной некоторую формулировку развлекательного содержания типа головоломок.
В 1859 г. У. Гамильтон придумал игру Кругосветное путешествие , состоящую в отыскании такого пути, проходящего через все вершины города, пункты назначения графа, чтобы посетить каждую вершину однократно и возвратиться в исходную. Пути, обладающие таким свойством, называются гамильтоновыми циклами. Задача о гамильтоновых циклах в графе получила различные обобщения.
Одно из этих обобщений
– задача коммивояжера, имеющая
ряд применений в исследовании операций,
в частности при решении
Задача коммивояжера (ЗК), известная также как задача о сверлильном станке или алгоритм коммивояжера была поставлена в 1934 году. Эта задача является одной из знаменитых задач теории комбинаторики и широко применяется при разработке программного обеспечения.
1. ОСОБЕННОСТИ РЕШЕНИЯ ЗАДАЧИ КОММИВОЯЖЕРА
Задача коммивояжера – задача математического программирования по определению оптимального маршрута движения коммивояжера, цель которого состоит в том, чтобы посетить все объекты, записанные в задании, за кратчайший срок и с наименьшими затратами. В теории графов – это поиск пути, связывающего два или более узла, с использованием критерия оптимальности.
Задача
коммивояжера является
Задача
коммивояжера формулируется
В задаче коммивояжера целевой функцией, которую надо минимизировать, является стоимость обхода.
Особенностью
задачи о коммивояжере
На графах
задача формулируется
Гамильтонов
путь (или гамильтонова цепь) –
путь (цепь), содержащий каждую вершину
графа ровно один раз.
Гамильтоновы
путь, цикл и граф названы в
честь ирландского математика
У. Гамильтона, который впервые
определил эти классы, исследовав
задачу «кругосветного
Существует несколько частных случаев общей постановки задачи, в частности:
Также существует обобщение задачи, так называемая обобщённая задача коммивояжёра.
Общая постановка задачи и большинство её частных случаев, относится к классу NP-сложных задач. Поэтому алгоритмы решения этой задачи делятся на точные и приближенные. Все точные алгоритмы фактически представляют собой оптимизированный полный перебор вариантов. В некоторых случаях эти алгоритмы достаточно быстро находят решения, но в общем случае приходится перебирать все n! циклов.
При постановке задачи коммивояжера для k коммивояжеров на множестве из n+1 городов строится k замкнутых маршрутов по следующим правилам:
один из городов, называемый базой входит во все маршруты;
каждый из городов, исключая базу входит в ровно один из маршрутов;
суммарная длина всех маршрутов минимальна.
Задача коммивояжера
может быть решена с
Разбивается ли задача достаточно хорошо на совокупность более мелких подзадач?
Существует ли точная, непротиворечивая информация о задаче?
Ожидается ли, что в процессе
решения задачи человек будет
взаимодействовать с
Задача коммивояжера имеет ряд практических применений.
Как правило, речь идет либо о простом перемещением по заданным точкам, либо с развозом груза небольшого формата или веса на транспортном средстве, вмещающем большое количество единиц, что создает предпосылки для применения задачи коммивояжера. Примером реализации задачи на практике является составление оптимального маршрута человека для доставки продуктов в магазины с оптового склада; доставки бутилированной воды; обновления программных продуктов автоматизированного учета на предприятии; пополнения банкоматов наличными деньгами; сбора сотрудников для доставки вахтовым методом; расклейки афиш; сбора наличных денежных средств их терминалов и др. В этом случае вершинами являются места установки терминалов (банкоматов и т.д.) и «базовый пункт». Стоимостью каждого ребра (отрезка маршрута) является время в пути между двумя точками (вершинами) на маршруте.
Еще одно применение задачи коммивояжера – это задача о сверлильном станке. Данное применение задачи является сугубо специализированным приложением, которое заключается в оптимизации движений сверлильного станка ЧПУ для создания большого количества нерегулярно расположенных отверстий или сварочного робота. Сверлильный станок изготавливает металлические листы с некоторым количеством отверстий. Координаты отверстий известны. Необходимо найти кратчайший путь через все отверстия, а значит, и наименьшее время, затрачиваемое на изготовление одной детали. В данном случае, если такой станок делает миллион деталей в год, то даже миллиметровая выгода может сэкономить приличные средства. Этим объясняется стремление развитых стран затрачивать огромные финансовые ресурсы на инвестиции в информационные технологии.
Внимание исследователей к этой задаче привлекает благодаря: большому количеству практических задач, которые к ней сводятся; сосредоточению характерных математических, алгоритмических вычислительных сложностей; простоте и прозрачности формулирования.
1.2 Методы решения задачи коммивояжера.
Задачи коммивояжера решаются посредством различных методов, выведенных в результате теоретических исследований. Все эффективные методы (сокращающие полный перебор) — методы эвристические. В большинстве эвристических методов находится не самый эффективный маршрут, а приближённое решение. Зачастую востребованы так называемые any-time алгоритмы, то есть постепенно улучшающие некоторое текущее приближенное решение.
Выделяют следующие группы методов решения задач коммивояжера, которые относят к простейшим:
Полный перебор (или метод «грубой силы») — метод решения задачи путем перебора всех возможных вариантов. Сложность полного перебора зависит от количества всех возможных решений задачи. Если пространство решений очень велико, то полный перебор может не дать результатов в течение нескольких лет или даже столетий.
Случайный перебор;
Обычно выбор решения можно представить последовательностью выборов. Если делать эти выборы с помощью какого-либо случайного механизма, то решение находится очень быстро, так что можно находить решение многократно и запоминать «рекорд», т. е. наилучшее из встретившихся решений. Этот наивный подход существенно улучшается, когда удается учесть в случайном механизме перспективность тех или иных выборов, т. е. комбинировать случайный поиск с эвристическим методом и методом локального поиска. Такие методы применяются, например, при составлении расписаний для Аэрофлота.