Решение задач коммивояжёра, способов её решения

Автор работы: Пользователь скрыл имя, 31 Марта 2011 в 19:14, курсовая работа

Описание работы

Целью данной курсовой работы является рассмотрение задачи коммивояжера, способов её решения.

Рассмотрена задача коммивояжёра, а также приведён алгоритм метода ветвей и границ для решения задачи коммивояжёра.

Содержание работы

Введение

1. Теоретическая часть 6

1.1 Основные понятия теории графов 6

1.2 Формулировка и некоторые свойства решений задачи коммивояжера. 8

1.3 Постановка задачи коммивояжера как задачи на графе 10

1.4 Условия существования Гамильтонова контура 10

1.5 Метод ветвей и границ…………………………………………………. 11

1.6 Практическое применение задачи коммивояжера…………………… 17

2. Практическая часть 20

Заключение

Список используемой литературы

Файлы: 1 файл

курсовая.doc

— 370.00 Кб (Скачать файл)

Содержание 
 

Введение

1. Теоретическая  часть 6

1.1 Основные понятия теории графов 6

1.2 Формулировка и некоторые свойства решений задачи коммивояжера. 8

1.3 Постановка задачи коммивояжера как задачи на графе 10

1.4 Условия существования Гамильтонова контура 10

1.5 Метод ветвей и границ…………………………………………………. 11

1.6 Практическое применение задачи коммивояжера…………………… 17

2. Практическая  часть  20

Заключение

Список используемой литературы 
 
 
 
 
 
 
 
 
 
 
 

                  Введение 

      Теория  принятия решений — область исследования, вовлекающая понятия и методы математики, экономики, менеджмента и психологии. Изучает закономерности выбора людьми путей решения разного рода задач, а также исследует способы поиска наиболее выгодных из возможных решений.

      В курсовой работе рассмотрены некоторые методы решения задачи коммивояжера, алгоритмы решения.

      Многие  задачи, с которыми приходится иметь  дело в повседневной практике, являются многовариантными. Среди множества  возможных вариантов в условиях рыночных отношений приходится отыскивать наилучшие решения при ограничениях, налагаемых на природные, экономические и технологические возможности. В связи с этим возникла необходимость применять для анализа и синтеза экономических ситуаций и систем математические методы и современную вычислительную технику.

      Целью данной курсовой работы является рассмотрение задачи коммивояжера, способов её решения.

      Рассмотрена задача коммивояжёра, а также приведён алгоритм метода ветвей и границ для  решения задачи коммивояжёра. 
 
 
 
 
 
 
 
 
 
 

  1. Теоретическая часть
 

1.1 Основные понятия теории графов 

      Многие  задачи принятие решений можно решить с помощью теории графов.

      Графические представления – наглядные отображения  исследуемой системы процесса или явления на плоскость: рисунки, чертежи, схемы и блок-схемы, диаграммы, графы. На языке теории графов формируются и решаются многие технические задачи, задачи из области экономики, социологии, менеджмента и т.д. Графы используются для наглядного представления объектов и связи между ними.

        Пусть G-неориентированный граф. Геометрически граф можно представить как набор вершин (точек), определенные пары которых соединены линиями. Например, сеть дорог, соединяющих города , , , , , можно представить в виде графа следующим образом. Города обозначены точками (вершинами), а дороги – неориентированными линиями (рис 1.1).

рис 1.1 Сеть дорог  между городами.

      Неориентированные линии означают наличие двустороннего движения между соответствующей парой городов. Пересечения линий не считаются вершинами.

При изображении  графа не имеет значение расположение вершин на плоскости, кривизна и длина ребер (рис 1.2).

рис 1.2 Изображение графов

      Вершины графов обозначаются буквами или натуральными числами. Ребра графа – пары чисел.

    Маршрутом в G называется такая конечная или бесконечная последовательность ребер, что каждые два соседних ребра имеют концевую точку. Причем, одно и то же ребро Е может встречаться в маршруте несколько раз.

      Циклическим маршрутом называется такой маршрут, начальная и конечная точки которого совпадают.

      Цепью называют маршрут, в котором каждое его ребро встречается не более одного раза; вершины в цепи могут повторяться не более одного раза. Любой участок цепи является цепью. Нециклическая цепь является простой цепью, если в ней никакая вершина не повторяется.

     Граф  называется сильно связным, если между  каждой парой его вершин , , , существует путь ( ) такой, что является начальной вершиной пути, а - конечной.

     Граф  называется связным, если между парой  его вершин , , существует такая последовательность элементов (дуг или ребер, или же и дуг, и ребер), что любая соседних элементов в этой последовательности имеет общую вершину. Очевидно, что любой сильно связный граф является связным. Связный неориентированный граф называется деревом, если он не имеет циклов. В дереве любые две вершины связаны единственной цепью. 
 
 
 
 
 
 
 

     1.2 Формулировка и  некоторые свойства  решений задачи  коммивояжера 

     Коммивояжер (бродячий торговец) должен выйти из первого города, посетить по разу в  неизвестном порядке города 2,1,3..n и вернуться в первый город. Расстояния между городами известны. В каком порядке следует обходить города, чтобы замкнутый путь (тур) коммивояжера был кратчайшим?

     Чтобы привести задачу к научному виду, введём некоторые термины. Города перенумерованы числами jÎТ=(1,2,3..n). Тур коммивояжера может быть описан циклической перестановкой t=(j1,j2,..,jn,j1), причём все j1..jn – разные номера; повторяющийся в начале и в конце j1, показывает, что перестановка зациклена. Расстояния между парами вершин Сij образуют матрицу С. Задача состоит в том, чтобы найти такой тур t:

                  (1)

     Относительно  математизированной формулировки задачи коммивояжера уместно сделать два замечания.

     1) В постановке Сij означали расстояния, поэтому они должны быть неотрицательными, т.е. для всех jÎТ:

     Сij³0; Cjj=              (2)

     (последнее  равенство означает запрет на  петли в туре), симметричными,  т.е.  для всех i,j:

     Сij= Сji                          (3)

     и удовлетворять неравенству треугольника, т.е. для всех:

     Сij+ Сjk³Cik                                 (4)

     В математической постановке говорится  о произвольной матрице. Сделано это потому, что имеется много прикладных задач, которые описываются основной моделью, но всем условиям (2)-(4) не удовлетворяют. Особенно часто нарушается условие (3) (например, если Сij – не расстояние, а плата за проезд: часто туда билет стоит одну цену, а обратно – другую). Поэтому мы будем различать два варианта задачи коммивояжера: симметричную задачу, когда условие (3) выполнено, и несимметричную - в противном случае. Условия (2)-(4) по умолчанию мы будем считать выполненными.

     2) В несимметричной задаче коммивояжера все туры t=(j1,j2,..,jn,j1) и t’=(j1,jn,..,j2,j1) имеют разную длину и должны учитываться оба. Разных туров очевидно (n-1)!.

     Зафиксируем на первом и последнем месте в  циклической перестановке номер j1, а оставшиеся n-1 номеров переставим всеми (n-1)! возможными способами. В результате получим все несимметричные туры. Симметричных туров имеется в

     два раза меньше, т.к. каждый засчитан два раза: как t и как t’. Можно представить, что С состоит только из единиц и нулей. Тогда С можно интерпретировать, как граф, где ребро (i,j) проведено, если Сij=0 и не проведено, если Сij=1. Тогда, если существует тур длины 0, то он пройдёт по циклу, который включает все вершины по одному разу. Такой цикл называется гамильтоновым циклом. Незамкнутый гамильтонов цикл называется гамильтоновой цепью (гамильтоновым путём).

     В терминах теории графов симметричную задачу коммивояжера можно сформулировать так:

     Дана  полная сеть с n  вершинами, длина ребра (i,j)= Сij. Найти гамильтонов цикл минимальной длины. В несимметричной задаче коммивояжера вместо «цикл» надо говорить «контур», а вместо «ребра» - «дуги» или «стрелки».

     Некоторые прикладные задачи формулируются как задачи коммивояжера, но в них нужно минимизировать длину не гамильтонова цикла, а гамильтоновой цепи. Такие задачи называются незамкнутыми. Некоторые модели сводятся к задаче о нескольких коммивояжерах, но мы здесь их рассматривать не будем. 

     1.3 Постановка задачи коммивояжера как задачи на графе

       

     Рис. 1.3 

           Формулировка: Множество городов:  . Расстояние между городами i и j: . П – множество перестановок элементов А, перестановка

       

     Если  городам поставить в соответствии вершины графа, а соединяющих  их дорогам дуги, то в терминах теории графов задача заключается в определении гамильтонова контура минимальной длины. Гамильтоновым контуром называется путь, проходящий через все вершины графа, у которого начальная вершина совпадает с конечной. Здесь под длиной контура понимают не количество дуг, входящих в контур, а сумму их длин. Длина соответствующей дороги – вес ребра. Граф должен быть полным, т.е. в нем имеются все возможные ребра. Если же граф не является полным, то его можно дополнить недостающими ребрами с весом равным . 
 
 
 
 
 
 
 

     1.4 Условия существования  Гамильтонова контура 

     Последовательность (путь), который требуется найти – ориентированный остовный простой цикл минимального веса в орграфе; такие циклы также называют гамильтоновыми. Очевидно, что в полном орграфе циклы указанного выше типа есть. Заметим, что вопрос о наличии в орграфе гамильтонова цикла достаточно рассмотреть как частный случай задачи о коммивояжере для полных орграфов. Действительно, если данный орграф не является полным, то его можно дополнить до полного недостающими ребрами и каждому из добавленных ребер приписать вес - это «компьютерная бесконечность», т.е. максимальное из всех возможных в рассмотрениях чисел. Если во вновь построенном полном орграфе найти теперь легчайший гамильтонов цикл, то при наличии у него ребер с весом можно будет говорить, что в данном, исходном графе «цикла коммивояжера» нет. Если же в полном орграфе легчайший гамильтонов цикл окажется конечным по весу, то он и будет искомым циклом в исходном графе. Гамильтоновым контуром называется путь, проходящий через все вершины графа, у которого начальная вершина совпадает с конечной. Здесь под длиной контура понимают не количество дуг, входящих в контур, а сумму их длин.

     Цикл  Гамильтона.

     Пусть G-граф. Циклом Гамильтона называется простой цикл, который содержит все вершины данного графа.

     Теорема 1.

     Для того, чтобы в графе существовал  цикл Гамильтона, необходимо, чтобы  этот граф был связным.

     Теорема 2.

     В полном графе  , если n>=3, цикл Гамильтона есть в полном двудольном при m>=1, цикл Гамильтона есть. 
 

     1.5 Метод ветвей и границ

     Графом  называется непустое конечное множество, состоящее из двух подмножеств и . Первое подмножество (вершины) состоит из любого множества элементов. Второе подмножество (дуги) состоит из упорядоченных пар элементов первого подмножества . Если вершины и такие, что , то это вершины смежные.

     Маршрутом в графе  называется последовательность вершин не обязательно попарно различных, где для любого смежно с . Маршрут называется цепью, если все его ребра попарно различны. Если то маршрут называется замкнутым. Замкнутая цепь называется циклом.

Информация о работе Решение задач коммивояжёра, способов её решения