Применение методов решения задачи коммивояжера на практике

Автор работы: Пользователь скрыл имя, 16 Апреля 2014 в 17:25, курсовая работа

Краткое описание

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

Содержание

Введение…………………………………………………………………..…...6
1 Общие сведения о задаче коммивояжёра………………………………....8
Экономические ситуации, приводящие к задаче коммивояжера…....9
Постановка и математическая модель задачи коммивояжера…..…10
Методы решения задачи коммивояжера………………………..……12
Метод ветвей и границ………………………………………………….12
Венгерский метод…………………………………………..…………..14
Применение методов решения задачи коммивояжера на практике...16
3.1 Решение задачи коммивояжера методом ветвей и границ….……….16
3.2 Решение задачи коммивояжера венгерским методом……………….…25
Заключение……………………………………………………………..….…32
Глоссарий ………………………………………………………………..…..33
Список используемых источников…………

Вложенные файлы: 1 файл

TGTU_080100_62_009_-_KR_Kozhevnikova_V_A_BEK23..docx

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

При вычислении оценки затрат для учитывают, что, если ребро (h,k) входит в маршрут, то ребро (k,h) не может входить в маршрут, поэтому принимаем: ; если в маршрут включено ребро (h,k), то ни одно другое ребро, начинающееся в пункте h или заканчивающееся в пункте k не может входить в маршрут, поэтому строка h и столбец k вычеркиваются. Полученная матрица приводится, т.е. выполняется предварительный этап алгоритма. Пусть сумма приводящих констант матрицы: .

Из множеств и для дальнейшего ветвления выбирается множество, имеющее меньшую оценку. При выборе нужно вернуться к шагу 1, используя на этом шаге приведенную матрицу, полученную на шаге 3.2. При выборе нужно вернуться к матрице , принять и привести полученную в результате матрицу, после чего перейти к шагу 2, используя на нем эту приведенную матрицу. Если несколько множеств имеют равную минимальную оценку, то дальнейшее ветвление производится для всех множеств с минимальной оценкой. [17, c. 94]

Таким образом, метод ветвей и границ позволяет находить все оптимальные решения.

Алгоритм продолжается до тех пор, пока в подмножестве маршрутов с наименьшей оценкой не останется всего один маршрут. В расчетах это соответствует ситуации, когда исследуемая матрица имеет размерность . [18, c. 225]

 

 

2.3 Венгерский метод

 

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

Алгоритм венгерского метода:

  1. Проводим предварительные преобразования матрицы C (получаем эквивалентную матрицу Сэ).

Преобразование в столбцах:

 

Преобразование в строках:

 

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

  1. Рассматривая строки и столбцы матрицы сверху вниз, слева направо поочередно, отмечаем первый попавшийся ноль и берём его в квадратные скобки, другие нули в этой же строке и в этом же столбце вычеркиваем.
  2. Затем, вычёркиваем строки и столбцы с возможно большим количеством нулевых элементов. Получаем сокращённую матрицу.
  3. Минимальный элемент сокращённой матрицы вычитаем из всех её элементов, а затем складываем минимальный элемент с элементами расположенными на пересечении вычеркнутых строк и столбцов. Таким образом, получаем следующую эквивалентную матрицу. После этого повторяет выполнение шага 2.
  4. Производим построение цепочки из нулей стоящих в квадратных скобках и вычисляем оптимальный маршрут.

 

3 Применение методов решения задачи коммивояжера на практике

 

 

3.1 Решение задачи коммивояжера методом ветвей и границ

 

Фирма по производству новогодних игрушек должна доставить заказ в 6 городов: Кирсанов (1); Котовск (2); Рассказово (3); Мичуринск (4) Инжавино (5); Уварово (6). Нужно найти кротчайший путь, объездив все города точно по одному разу и вернуться в исходный с минимумом затрат. Исходный город 1.

Расстояния между городами заданы следующей матрицей. (Таблица 1)

Таблица 1 Исходные данные, матрица размерностью 6´6

i  j

1

2

3

4

5

6

1

M

5

4

2

4

1

2

1

M

2

4

5

7

3

7

5

M

4

2

4

4

4

5

7

M

2

1

5

2

1

4

7

M

5

6

5

7

2

1

1

M


 

 

Математическая модель:

 

 

 

Для определения нижней границы множества воспользуемся операцией редукции или приведения матрицы по строкам, для чего необходимо в каждой строке матрицы С найти минимальный элемент: di = min(j) dij . (Таблица 2)

Таблица 2 Приведение матрицы по строкам, матрица размерностью 6´6

i  j

1

2

3

4

5

6

di

1

M

5

4

2

4

1

1

2

1

M

2

4

5

7

1

3

7

5

M

4

2

4

2

4

4

5

7

M

2

1

1

5

2

1

4

7

M

5

1

6

5

7

2

1

1

M

1


 

Затем вычитаем di из элементов рассматриваемой строки. Во вновь полученной матрице в каждой строке будет как минимум один ноль. (Таблица 3)

Таблица 3 Результат вычитания минимальных элементов рассматриваемой строки, матрица размерностью 6´6

i  j

1

2

3

4

5

6

1

M

4

3

1

3

0

2

0

M

1

3

4

6

3

5

3

M

2

0

2

4

3

4

6

M

1

0

5

1

0

3

6

M

4

6

4

6

1

0

0

M


 

Такую же операцию редукции проводим по столбцам, для чего в каждом столбце находим минимальный элемент: dj = min(i) dij . (Таблица 4)

Таблица 4 Приведение матрицы по столбцам, матрица размерностью 6´6

i  j

1

2

3

4

5

6

1

M

4

3

1

3

0

2

0

M

1

3

4

6

3

5

3

M

2

0

2

4

3

4

6

M

1

0

5

1

0

3

6

M

4

6

4

6

1

0

0

M


 

Продолжение таблицы 4 Приведение матрицы по столбцам, матрица размерностью 6´6

dj

0

0

1

0

0

0


 

После вычитания минимальных элементов получаем полностью редуцированную матрицу, где величины di и dj называются константами приведения. (Таблица 5)

Таблица 5 Результат вычитания минимальных элементов рассматриваемого столбца, матрица размерностью 6´6

i  j

1

2

3

4

5

6

1

M

4

2

1

3

0

2

0

M

0

3

4

6

3

5

3

M

2

0

2

4

3

4

5

M

1

0

5

1

0

2

6

M

4

6

4

6

0

0

0

M


 

Сумма констант приведения определяет нижнюю границу H: H = ∑di + ∑dj

H = 1+1+2+1+1+1+0+0+1+0+0+0 = 8

Элементы матрицы dij соответствуют расстоянию от пункта i до пункта j. Поскольку в матрице n городов, то С является матрицей nxn с неотрицательными элементами dij >=0 .

Каждый допустимый маршрут представляет собой цикл, по которому коммивояжер посещает город только один раз и возвращается в исходный город.

Длина маршрута определяется выражением: F(Mk) = ∑dij

Причем каждая строка и столбец входят в маршрут только один раз с элементом dij .

Шаг №1. Определяем ребро ветвления и разобьем все множество маршрутов относительно этого ребра на два подмножества (i,j) и (i*,j*).

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

Таблица 6 Определение ребра ветвления, матрица размерностью 6´6

i  j

1

2

3

4

5

6

di

1

M

4

2

1

3

0(1)

1

2

0(1)

M

0(0)

3

4

6

0

3

5

3

M

2

0(2)

2

2

4

3

4

5

M

1

0(1)

1

5

1

0(4)

2

6

M

4

1

6

4

6

0(0)

0(1)

0(0)

M

0

dj

1

3

0

1

0

0

0

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