Примеры решения задач

Пример 1. Пусть задан граф G, изображенный на рис. 16.24. Решить задачу коммивояжера для заданного графа, используя алгоритм Хелда─Карпа.

Рис. 16.24. Исходный граф

Решение: Построим матрицу расстояний заданного графа:

.

1. В соответствии с заданным алгоритмом определяем прямые пути из вершины x 1 в вершину xj, где j = (2, 3, 4): d 12 = 3; d 13 = 1; d 14 = 4.

2. Теперь определяем пути из вершины x 1 в вершину xj через одну промежуточную вершину:

d 312 = d 13 + d 32 = 1 + 5 = 6; d 314 = d 13 + d 34 = 1 + 4 = 5; d 213 = d 12 + d 23 = 3 + 5 = 8;

d 214 = d 12 + d 24 = 3 + 6 = 9; d 412 = d 14 + d 42 = 2 + 6 = 8; d 413 = d 14 + d 43 = 2 + 4 = 6.

3. Определяем пути из вершины x 1 в вершину xj через две промежуточные вершины:

d 3,412 = d 314 + d 42 = d 13 + d 34 + d 42 = 1 + 4 + 6 = 11; d 2,413 = d 214 + d 43 = d 12 + d 24 + d 43 = 3 + 6 + 4 = 13; d 2,314 = d 213 + d 34 = d 12 + d 23 + d 34 = 3 + 5 + 4 = 12;

d 4,312 = d 413 + d 32 = d 14 + d 43 + d 32 = 2 + 4 + 5 = 11; d 4,213 = d 412 + d 23 = d 14 + d 42 + d 23

= 2 + 6 + 5 = 13; d 3,214 = d 312 + d 24 = d 13 + d 32 + d 24 = 1 + 5 + 6 = 12.

4. Теперь к полученной длине пути добавляем длину возвращения в исходный пункт:

d 12 = d 3,412 (или d 4312) + d 21 = 11 + 3 = 14; d 13 = d 2413 (или d 4213) + d 31 = 13 + 1 = =14; d 14 = d 2314 (или d 3214) + d 41 = 12 + 2 = 14.

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

Пример 2. Пусть задан граф G = (X, U). Решить задачу о коммивояжере для заданного графа геометрическим методом.

Решение: Зададим граф G = (X, U) матрицей расстояний, а поскольку граф неориентированный, то для его однозначного задания вполне достаточно треугольной матрицы

    1 2 3 4 5 6  

R =

1 ¥ 40 29 66 52 36

.

2   ¥ 41 63 37 50
3     ¥ 38 48 42
4       ¥ 28 56
5         ¥ 32
6           ¥

1. Определяем по матрице R элемент с максимальным весом. Это элемент r 14 = 66. Вершины x 1 и x 4 фиксируем.

2. Строим треугольники с основанием x 1x 3 (рис. 16.25,а).

Вычисляем периметры получившихся треугольников:

П124 = 40 + 63 = 103;

П134 = 29 + 38 = 67;

П154 = 52 + 28 = 80;

П164 = 36 + 56 = 92.

3. Выбираем треугольник П124, имеющий максимальную длину. Фиксируем вершины x 1, x 2, x 4. Выделяем два звена L1 = (x 1x 4) и L2 = (x 1x 2 и x 2x 4) (рис. 16.25, б).

                           

      а                                                   б

Рис. 16.25. Построение пути коммивояжера а – шаг 1; б – шаг 2

4. Подсчитываем значения DR для вершин x 3, x 5, x 6.

а) Для вершины x 3:

DR12 = r 13 + r 32 - r 12 = 29 + 41 - 40 = 30;

DR14 = r 13 + r 34 - r 14 = 29 + 38 - 66 = 1;

DR24 = r 23 + r 34 - r 24 = 41 + 38 - 63 = 16.

б) Для вершины x 5:

DR12 = r 15 + r 52 - r 12 = 52 + 37 - 40 = 49;

DR14 = r 15 + r 54 - r 14 = 52 + 28 - 66 = 24;

DR24 = r 25 + r 54 - r 24 = 37 + 28 - 63 = 2.

в) Для вершины x 6:

DR12 = r 16 + r 62 - r 12 = 36 + 50 - 40 = 46;

DR14 = r 16 + r 64 - r 14 = 36 + 56 - 66 = 26;

DR24 = r 26 + r 64 - r 24 = 50 + 56 - 63 = 43.

5. В результате проведенных подсчетов получилось, что вершина x 5 должна быть отнесена к отрезку x 2x 4, вершины x 3 и x 6 относятся к отрезку x 1x 4. Следовательно, заменяем отрезок x 2x 4 двумя отрезками x 2x 5 и x 5x 4. Сравниваем полученные значения DR14 для вершин x 3 (DR14 = 1) и x 6 (DR14 = 26). Вершину (x 3), соответствующую меньшему из двух значению DR14, оставляем, а через вершину x 6 строим обход x 1x 6 и x 6x 4 (рис. 16.25, в). После чего переходим к пункту 6.

6. Для вершины x 3 подсчитываем значения DR16 и DR64, для того чтобы определить к какому из этих двух отрезков она должна быть отнесена (рис. 16.25,г).

Для вершины x 3:

DR16 = r 13 + r 36r 16 = 29 + 42 – 36 = 35;

DR64 = r 63 + r 34 r 64 = 42 + 38 – 56 = 24.

Вершину x 3 отнесем к отрезку x 4x 6. После этого шага все вершины графа рассмотрены.

                       

          в                                                   г

Рис. 16.25. Построение пути коммивояжера вшаг 3; гшаг 4

7. В результате мы получили решение задачи о коммивояжере (рис. 16.25, д).

Длина построенного маршрута коммивояжера равна:

r 12 + r 25 + r 54 + r 43 + r 36 + r 61 = 40 + 37 + 28 + 38 + 42 + 36 = 221.

 д

Рис. 16.25. Построение пути коммивояжера дрезультат


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: