Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Задания для самостоятельной работы




1. Для произвольного связного неориентированного графа решите задачу коммивояжера на основе алгоритма Хелда–Карпа.

2. Для произвольного связного неориентированного графа решите задачу коммивояжера геометрическим методом.

3. Запишите структурную схему алгоритма Хелда–Карпа.

4. Постройте структурную схему геометрического метода.

5. Приведите словесное описание алгоритма Хелда–Карпа.

6. Приведите словесное описание геометрического метода.

7. Запишите псевдокод алгоритма Хелда–Карпа.

8. Запишите псевдокод геометрического метода.

9. Вычислите ВСА алгоритма Хелда–Карпа.

10. Вычислите ВСА геометрического метода.

 

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


Расстояния на графах

Рассмотрим метрику графов. Метрика графа основана на понятии расстояния. Расстоянием d (xi, xj), между вершинами xi, xj Î X графа G = (X, U) называется длина кратчайшей цепи, соединяющей эти вершины. Под длиной цепи понимается число входящих в нее ребер. Функция d (xi, xj), определенная на множестве ребер графа G, называется метрикой графа.

Функцию расстояний для графа G удобно задавать матрицей расстояний D = || di , j || n × n или ее списком. Элемент матрицы определяется следующим образом:

                                     di , j = .                                      (16.5)

Например, для графа G (рис. 16.26)

Рис. 16.26. Граф G

матрица расстояний имеет вид

    1 2 3 4 5  

D=

1 0 1 1 2 1

.

2 1 0 2 1 1
3 1 2 0 1 1
4 2 1 1 0 1
5 1 1 1 1 0

Список расстояний можно записать в виде множества, состоящего из кортежей длины три:

LD = {<1, 2, 1>, <1, 3, 1>, <1, 4, 2>, <1, 5, 1>, <2, 3, 2>, <2, 4, 1>, <2, 5, 1>, <3, 4, 1>, <3, 5, 1>, <4, 5, 1>}.

Первый элемент в кортеже соответствует вершине xi графа, второй элемент – вершине xj, а третий элемент кортежа – расстоянию di , j.

Если известны расстояния между любой парой вершин графа, то можно определить его диаметр d (G) как максимальное расстояние между его вершинами:

                         d (G) = max di , j , i, j Î I = {1, 2,..., n}.                 (16.6)

Кратчайшие простые цепи, связывающие вершины i, j Î X с максимальным расстоянием между ними, называются диаметрально простыми цепями.

Пусть v – произвольная вершина G = (X, U). Максимальным удалением в графе G от вершины v называется величина:

                         r (v) = max dv,x, v, x Î X.                                    (16.7)

Согласно Ф. Харари эксцентриситет вершины v в связном графе G определяется как max dv , x, v, x Î X по всем вершинам x.

Тогда радиусом графа r (G) называется наименьший из эксцентриситетов вершин. Любая кратчайшая цепь от центра v до максимально удаленной от него вершины xрадиальной цепью.

                                 R(G) = min r (x), x Î X.                               (16.8)

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

Центр не обязательно должен быть единственным. Например, в полном графе Kn, радиус равен 1 и любая вершина является центром.

Пусть G – конечный граф G = (X, U), |U| = m. Количество последовательностей ребер этого графа без повторений конечно и равно m!. Тогда конечно и число простых цепей, в которых ребра не повторяются. Протяженностью g (v ’, v ’’) между вершинами v ’, v ’’ Î X называется максимальная из длин, связывающих эти вершины.

Если исключить из этих простых цепей циклы, то для любой вершины v Î X, g (v, v) = 0. В этом случае протяженность также удовлетворяет аксиомам метрики.

Пусть L(v ’, v ’’’) – самая длинная простая цепь, соединяющая вершины v ’v ’’’. Пусть L*(v ’’, v ’) – некоторая простая цепь, соединяющая вершины v ’’ и v ’. Пусть (v ’’, v 4) – участок последней цепи до первого пересечения с L.

Тогда v4 делит цепь на 2 участка L’, L’’. Участки L’ и  составляют простую цепь с началом v ’ и концом v ’’, а L’’ и  – простую цепь, соединяющую v ’’ и v ’’’, причем сумма их длин не меньше длины цепи L. Значит и сумма максимальных длин путей с теми же началами и концами равная g (v ’, v ’’) + g (v ’’, v ’’’) не меньше длины цепи L, которая равна g (v ’, v ’’’) (рис 16.27).

В графе G существуют диаметральные по протяженности или длиннейшие простые цепи. Их длина l 0 называется диаметром протяженности. Для каждой вершины v существуют самые длинные простые цепи с концами в этой вершине. Их длина g (v) = max g (v, v ’), v ’ Î v называется числом протяженности для вершины v.

Рис. 16.27. Длины простых цепей

Для логических задач представляет интерес нахождение функции расстояний для графов G r частного вида, называемых координатной решеткой. В графе G r = (X r, U r) множество вершин X r соответствует узлам решетки (сетки), а множество ребер U r горизонтальным и вертикальным отрезкам, соединяющим узлы решетки. Пример графа G r, т.е. координатной решетки, показан на рис. 16.28. Расстояние между двумя смежными вершинами в G r, называемое шагом решетки, будем считать равным единице.

Рис. 16.28. Пример координатной решетки G r

Расстояние di , j между двумя произвольными вершинами в G r можно определить по формуле

                                 di , j = | sisj | + | titj |,                                    (16.9)

где si, sj и ti, tj — координаты вершин xi, xj Î X. Обычно задаются размеры решетки p × q, где p — число узлов решетки по оси s, а q — по оси t.

Например, для графа G r (рис. 16.28) расстояние

d 6,10 = | s 6s 10| + | t 6t 10| = |0 – 2| + |1 – 3| = 4,

т.е. из вершины x 6 необходимо пройти четыре ребра G r, чтобы попасть в вершину x 10.

Если произвольный граф G отображается в G r так, что любые вершины G размещаются в узлах решетки, то расстояние между вершинами G определяется как расстояние между соответствующими узлами решетки. Если расстояние di , j определять как длину кратчайшей прямой, соединяющей вершины xi, xj, то

                                 di , j =                             (16.10)

Заметим, что первый способ определения di , j проще, так как при этом di , j принимает только целочисленные значения. Любой граф G может быть отображен в решетку G r. Для подсчета суммарной длины L(G) ребер графа G = (X, U), отображенного в решетку G r, введем понятие матрицы геометрии D(g).

Матрица геометрии D(g) представляет собой часть матрицы расстояний D, в которой исключены элементы di , j, если вершины xi, xj Î X не смежны в графе G. Для построения матрицы геометрии D(g) графа G необходимо каждый элемент матрицы D умножить на соответствующий элемент матрицы смежности R: D(g) = || ri , j, di , j || n × n.

Например, граф G без учета весов ребер отобразим в решетку G r размера 3×2 (рис. 16.29).

 

Рис 16.29. Пример графа, отображенного в решетку

 

Матрицы R и D графа G примут вид:

 

  1 2 3 4 5 6   1 2 3 4 5 6  
1 0 1 1 0 1 0 1 0 1 2 3 2 1  
2 1 0 0 1 1 0 2 1 0 1 2 1 2  
R = 3 1 0 0 1 0 0 , D = 3 2 1 0 1 2 3 .
4 0 1 1 0 1 1 4 3 2 1 0 1 2  
5 1 1 0 1 0 1 5 2 1 2 1 0 1  
6 0 0 0 1 1 0 6 1 2 3 2 1 0  

Тогда можно определить матрицу геометрии D(g) = R × D:

  1 2 3 4 5 6 r (xi)  
1 0 1 2 0 2 0 5

.

2 1 0 0 2 1 0 4
D(g) = 3 2 0 0 1 0 0 3
4 0 2 1 0 1 2 6
5 2 1 0 1 0 1 5
6 0 0 0 2 1 0 3

Сумма элементов матрицы D(g) определяет удвоенную суммарную длину ребер графа G при данном отображении его в решетку G r. Для рассмотренного примера суммарная длина ребер графа L(G) составляет 13 условных единиц. При другом отображении графа в решетку суммарная длина L(G) изменяется, хотя в частном случае может совпадать с предыдущим значением.

ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ

Пример 1. Для графа G = (X, U), изображённого на рис. 16.30, записать матрицу расстояний и список расстояний.

Рис. 16.30. Граф G

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

Матрица расстояний будет иметь вид:

.

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

D = {<1,2,1>;<1,3,1>;<1,4,2>;<2,3,2>;<2,4,1>;<3,4,1>}.

Пример 2. Для графа G = (X,U), заданного на рис. 16.31, построить его отображение в координатную решётку и матрицу геометрии. Подсчитать суммарную длину рёбер L(G)графа, отображённого в координатную решётку.

Рис. 16.31. Граф G

Решение: после отображения в координатную решётку графа G получим граф G r, показанный на рис. 16.32.

Рис. 16.32. Отображение графа G в координатную решетку

Теперь для полученного графа G r запишем матрицу геометрии. Как уже говорилось ранее, матрица геометрии получается путём перемножения матрицы расстояний D и матрицы смежности:

.

В результате перемножения матриц мы получили матрицу геометрии Dg. Сумма элементов данной матрицы равна 24. Следовательно, суммарная длина рёбер L(G)графа G r равна 12.

ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ

1. Что такое метрика графа?

2. Как определяется расстояние между двумя вершинами графа?

3. Каким образом формируется матрица расстояний?

4. В чем состоит отличие между матрицей расстояний и матрицей геометрии?

5. Каким образом определяется диаметр графа?

6. Каким образом граф отображается в координатную решетку?

7. Как построить список расстояний?

8. Как определяется радиус графа?

9. Что такое число протяженности?

10. Каким образом определяется расстояние между узлами решетки?





Поделиться с друзьями:


Дата добавления: 2018-10-18; Мы поможем в написании ваших работ!; просмотров: 262 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Велико ли, мало ли дело, его надо делать. © Неизвестно
==> читать все изречения...

3001 - | 2596 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.