Сетевое издание
Международный студенческий научный вестник
ISSN 2409-529X

SOLUTION OF THE TRAVELING SALESMAN PROBLEM IN TWO DIFFERENT WAYS: "THE HUNGARIAN METHOD" AND "THE METHOD OF BRANCHES AND BORDERS"

Karimov R.A. 1
1 Siberian Federal University
The traveling salesman problem, the optimization problem in graph theory, in which the nodes (cities) of a graph are connected by directed edges (routes), where the edge weight indicates the distance between two cities. The problem is to find a way that each city visits once, returns to the starting city and minimizes the distance traveled. The only known general solution algorithm that guarantees the shortest path requires solution time, which grows exponentially with the size of the problem (i.e., the number of cities). This is an example of an NP-complete problem (from non-polynomial) for which there is no well-known efficient algorithm (that is, polynomial time). The study of this problem attracted many researchers from various fields, such as mathematics, operations research, physics, biology, or artificial intelligence. This is due to the fact that TSP demonstrates all aspects of combinatorial optimization and serves and continues to serve as a guideline for new algorithmic ideas, such as simulated annealing, banshooting, neural networks and evolutionary methods. Theoretical studies related to the complexity of discrete optimization problems, as well as the construction and analysis of effective approximate algorithms for solving these problems, are in line with modern, rapidly developing areas of mathematics. The terminology arising in the course of these studies is widespread in modern scientific literature and requires some familiarity with it.
traveling salesman problem
optimization methods
combinatorial optimization
np-hard problems
graph theory
hungarian method
branch and bound method

Оптимизация занимает достаточно большую часть в жизни людей. Порой мы даже не задумываемся о том, что мы что-то оптимизируем. Так, к примеру, мы отправляемся в путешествие и нам необходимо собрать много вещей, а чемодан средних размеров. (Мы тоже имеем физические ограничения) Если мы пойдем на пляж, то взять шорты, очки и крем от загара будет значительно лучшим решением, если бы возьмем с собой зимнюю куртку, то есть опираясь на приоритет вещей мы делаем свой выбор, чтобы суммарная ценность груза была максимальной.

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

Более строгим будет определение, что оптимизация – это инструмент, который находит оптимальное решение.

Математически «оптимизация» - представляет собой, нахождение MAX и MIN функции [1].

Наконец разобравшись с тем, что такое оптимизация и, что она делает.

Попробуем разобраться – «How does it work?!» (Как это работает?)

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

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

Одним из них является метод имитации отжига (или просто метод отжига.), он входит в класс стохастических.(то-есть который может угадывать) Зачем же здесь вероятность? Ответим на это дальше. Но для начала приведем примеры прикладного применения глобальной оптимизации.

Где используем?

Существует множество применений методов глобальной оптимизации [3]. Используется для реконструкции изображений, глобальной маршрутизации, назначение задач и планирование, и многое другое.

К примеру, попробуем решить задачу коммивояжера двумя разными методами: «Венгерский метод» и «метод ветвей и границ». Данная статья посвящена сравнению двух этих алгоритмов. Эта задача представляет собой поиск самого выгодного маршрута, проходящего через указанные города.

Начнем с метода «ветвей и границ»:

Шаг 1: Построение исходной матрицы

Представим длины дорог соединяющих города:

City

1

2

3

4

1

M

5

11

9

2

10

M

8

7

3

7

14

M

8

4

12

6

15

M

 

Шаг 2: Нахождение min по строкам

Находим минимальное значение в каждой строке (di) и выписываем его в отдельный столбец [4].

City

1

2

3

4

di

1

М

5

11

9

5

2

10

М

8

7

7

3

7

14

М

8

7

4

12

6

15

М

6

 

Шаг 3: Редукция строк

Производим редукцию строк – из каждого элемента в строке вычитаем соответствующее значение найденного минимума (di).

City

1

2

3

4

di

1

M

0

6

4

5

2

3

M

1

0

7

3

0

7

M

1

7

4

6

0

9

M

6

 

Шаг 4: Нахождение min по столбцам

Теперь, находим минимальные значения в каждом столбце (dj)

City

1

2

3

4

di

1

M

0

6

4

5

2

3

M

1

0

7

3

0

7

M

1

7

4

6

0

9

M

6

dj

0

0

1

0

||||||||||||||||||||||||

 

Шаг 5: Редукция столбцов

Вычитаем из каждого элемента матрицы соответствующее ему dj.

City

1

2

3

4

di

1

M

0

5

4

5

2

3

M

0

0

7

3

0

7

M

1

7

4

6

0

8

M

6

dj

0

0

1

0

||||||||||||||||||||||||

 

Шаг 6: Вычисление оценок нулевых клеток

Для каждой нулевой клетки получившейся преобразованной матрицы находим «оценку». Ею будет сумма минимального элемента по строке и минимального элемента по столбцу, в которых размещена данная нулевая клетка [5]. Сама она при этом не учитывается. Найденные ранее di и dj не учитываются. Полученную оценку записываем рядом с нулем, в скобках.

City

1

2

3

4

1

M

0 (4)

5

4

2

3

M

0 (5)

0 (1)

3

0 (4)

7

M

1

4

6

0 (6)

8

M


Шаг 7: Редукция матрицы

Выбираем нулевую клетку с наибольшей оценкой. Заменяем ее на «М». Мы нашли один из отрезков пути. Ту строку и тот столбец, где образовалось две «М» полностью вычеркиваем. В клетку соответствующую обратному пути ставим еще одну букву «М» (т.к. мы уже не будем возвращаться обратно).

City

1

2

3

4

1

M

0 (4)

5

4

2

3

M

0 (5)

M

3

0 (4)

7

M

1

4

6

M

8

M

Шаг 8: Если полный путь еще не найден, переходим к пункту 2, если найден к пункту 9

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

Если все отрезки пути найдены (или найдены еще не все отрезки, но оставшаяся часть пути очевидна) – переходим к пункту 9.

Шаг 9: Вычисление итоговой длины пути и построение маршрута

Найдя все отрезки пути, остается только соединить их между собой и рассчитать общую длину пути (стоимость поездки по этому маршруту, затраченное время и т.д.) [6]. Длины дорог соединяющих города берем из самой первой таблицы с исходными данными. Общая длина пути: L = 30.

А теперь «венгерский метод», исходная матрица принимает вид:

M

3

4

2

7

5

M

8

4

3

2

3

M

7

5

3

2

9

M

1

1

2

3

5

M

 

Шаг 1: Проводим редукцию матрицы по строкам. В новой матрице в каждой строке будет ка минимум 1 ноль.

М

1

2

0

5

2

2

М

5

1

0

3

0

1

М

5

3

2

2

1

8

М

0

1

0

1

2

4

М

1

 

Теперь, по столбцам:

М

0

0

0

5

2

М

3

1

0

0

0

М

5

3

2

0

6

М

0

0

0

0

4

М

0

1

2

0

0

 

После вычитания минимальных элементов получим полностью редуцированную матрицу [7].

Шаг 2: Методом проб и ошибок осуществим поиск допустимого решения, для которого все значения имеют нулевую стоимость.

 

M

[-0-]

[-0-]

[0]

5

2

M

3

1

[0]

[0]

[-0-]

M

5

3

2

[0]

6

M

[-0-]

[-0-]

[-0-]

[0]

4

M

 

Получим эквивалентную матрицу Сэ:

M

0

0

0

5

2

M

3

1

0

0

0

M

5

3

2

0

6

M

0

0

0

0

4

M

 

Шаг 3: Методом проб и ошибок определяем матрицу назначения Х, которая позволит по аналогично расположенным элементам исходной матрицы (в квадратах) вычислить минимальную стоимость назначения [8].

M

[-0-]

[-0-]

[0]

5

2

M

3

1

[0]

[0]

[-0-]

M

5

3

2

[0]

6

M

[-0-]

[-0-]

[-0-]

[0]

4

M

 

Заключение

Ответ на вопрос, «Какой же из алгоритмов лучше?» достаточно прост и очевиден. Так как метод ветвей и границ является вариацией полного перебора, и для большого объема входных данных он слабо или абсолютно не подходит - вычисления будут не красивые и громоздкие. Для решения крупных задач больше подойдет венгерский метод в силу того, что он значительно сокращает вычисления и считается более точным.