Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
full_v2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
13.36 Mб
Скачать

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

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

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

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

.

1. В соответствии с заданным алгоритмом определяем прямые пути из вершины x1 в вершину xj, где j = (2, 3, 4): d12 = 3; d13 = 1; d14 = 4.

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

d312 = d13 + d32 = 1 + 5 = 6; d314 = d13 + d34 = 1 + 4 = 5; d213 = d12 + d23 = 3 + 5 = 8;

d214 = d12 + d24 = 3 + 6 = 9; d412 = d14 + d42 = 2 + 6 = 8; d413 = d14 + d43 = 2 + 4 = 6.

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

d3,412 = d314 + d42 = d13 + d34 + d42 = 1 + 4 + 6 = 11; d2,413 = d214 + d43 = d12 + d24 + d43 = 3 + 6 + 4 = 13; d2,314 = d213 + d34 = d12 + d23 + d34 = 3 + 5 + 4 = 12;

d4,312 = d413 + d32 = d14 + d43 + d32 = 2 + 4 + 5 = 11; d4,213 = d412 + d23 = d14 + d42 + d23

= 2 + 6 + 5 = 13; d3,214 = d312 + d24 = d13 + d32 + d24 = 1 + 5 + 6 = 12.

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

d12 = d3,412 (или d4312) + d21 = 11 + 3 = 14; d13 = d2413 (или d4213) + d31 = 13 + 1 = =14; d14 = d2314 (или d3214) + d41 = 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 элемент с максимальным весом. Это элемент r14 = 66. Вершины x1 и x4 фиксируем.

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

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

П124 = 40 + 63 = 103;

П134 = 29 + 38 = 67;

П154 = 52 + 28 = 80;

П164 = 36 + 56 = 92.

3. Выбираем треугольник П124, имеющий максимальную длину. Фиксируем вершины x1, x2, x4. Выделяем два звена L1 = (x1x4) и L2 = (x1x2 и x2x4) (рис. 16.25, б).

а б

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

4. Подсчитываем значения R для вершин x3, x5, x6.

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

R12 = r13 + r32 - r12 = 29 + 41 - 40 = 30;

R14 = r13 + r34 - r14 = 29 + 38 - 66 = 1;

R24 = r23 + r34 - r24 = 41 + 38 - 63 = 16.

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

R12 = r15 + r52 - r12 = 52 + 37 - 40 = 49;

R14 = r15 + r54 - r14 = 52 + 28 - 66 = 24;

R24 = r25 + r54 - r24 = 37 + 28 - 63 = 2.

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

R12 = r16 + r62 - r12 = 36 + 50 - 40 = 46;

R14 = r16 + r64 - r14 = 36 + 56 - 66 = 26;

R24 = r26 + r64 - r24 = 50 + 56 - 63 = 43.

5. В результате проведенных подсчетов получилось, что вершина x5 должна быть отнесена к отрезку x2x4, вершины x3 и x6 относятся к отрезку x1x4. Следовательно, заменяем отрезок x2x4 двумя отрезками x2x5 и x5x4. Сравниваем полученные значения R14 для вершин x3 (R14 = 1) и x6 (R14 = 26). Вершину (x3), соответствующую меньшему из двух значению R14, оставляем, а через вершину x6 строим обход x1x6 и x6x4 (рис. 16.25, в). После чего переходим к пункту 6.

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

Для вершины x3:

R16 = r13 + r36r16 = 29 + 42 – 36 = 35;

R64 = r63 + r34r64 = 42 + 38 – 56 = 24.

Вершину x3 отнесем к отрезку x4x6. После этого шага все вершины графа рассмотрены.

в г

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

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

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

r12 + r25 + r54 + r43 + r36 + r61 = 40 + 37 + 28 + 38 + 42 + 36 = 221.

д

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]