Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции ДМ.doc
Скачиваний:
133
Добавлен:
21.11.2019
Размер:
4.91 Mб
Скачать

2. Метрические характеристики неориентированного графа

Пусть G(V,X) – псевдограф и пусть вершины v и w (vw) данного графа можно соединить маршрутом. Тогда обязательно существует и минимальный маршрут, соединяющий эти вершины. Обозначим длину этого маршрута d(v, w). Положим также d(v, v) =0 для любой вершины vV; d(v, w) = , если не существует маршрута, соединяющего v и w.

Определенная таким образом величина d(v,w) для любых вершин v и w графа G(V, X) называется расстоянием между v и w.

Число расстояний в графе с n вершинами равно числу сочетаний Cn2 .

Пусть граф G(V,X) связный. Определим для него следующие понятия:

Диаметр графа: d(G) = maxd(v, w).

v, wV

Эксцентриситет (максимальное удаление) вершины: r(v) = maxd(v, w);

vV

Радиус графа : r(G) = min r(v);

vV

Центр графа: любая вершина vV,такая, что r(v) = r(G).

Диаметр графа, эксцентриситеты вершин , радиус графа и центры графа называются метрическими характеристиками графа.

Пример. Найти метрические характеристики графа, заданного диаграммой:

Найдем все расстояния, учитывая, что d(v, w) = d(w, v).

Число расстояний в данном графе С52 = 5!/3!2! = 10: d(v1, v2) =1, d(v1, v3) = 2, d(v1, v4) = 2, d(v1, v5) = 3, d(v2, v3) = 1, d(v2, v4) = 1, d(v2, v5) = 2, d(v3, v4) = 1, d(v3, v5) = 2, d(v4, v5) = 1.

Диаметр графа d(G) =3.

Эксцентриситеты вершин: r(v1) = 3, r(v2) = 2, r(v3) = 2, r(v4) = 2, r(v5) = 3.

Радиус графа r(G) = 2.

Центры графа v2, v3, v4 .

  1. Минимальные маршруты в нагруженных графах

Граф G(V, X) называется нагруженным, если на множестве ребер графа задана функция, называемая весовой, которая ставит в соответствие каждому ребру х Х графа некоторое число l(x). Значение l(x) называется длиной дуги.

Величине l(x) можно придать разный смысл: затраты на транспортировку, время проезда, расстояние между пунктами, расход бензина и т.д.

Сумма длин ребер, входящих в маршрут, называется длиной маршрута.

Заметим, что если для всех х  Х l(x) = 1, то граф можно рассматривать как ненагруженный.

Маршрут в графе G(V, X) из вершины v в вершину w (vw), называется минимальным, если он имеет минимальную длину среди всех маршрутов в графе G(V, X) из вершины v в вершину w.

Ограничимся графами, для которых l(x)>0.

При поиске минимального маршрута в нагруженном графе с l(x)>0

воспользуемся таким же утверждением, что и для ненагруженного графа, а именно:

любой минимальный маршрут является простой цепью.

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

Пусть граф G(V,X) нагруженный, число вершин n  2, необходимо построить минимальный маршрут из v1 в vn.

Приведем алгоритм.

Шаг 1. Каждой вершине присвоить индекс (vi): (v1) = 0, (vi) = , i  1. окрасить вершину v1 и положить v = v1.

Шаг 2. Для каждой неокрашенной вершины vj изменить индекс по правилу:

(vj) = min {(vj), (v) + l(v, vj)}.

Окрасить ту из вершин, для которой (vj) окажется наименьшим.. окрасить также ребро, ведущее в выбранную на данном шаге вершину vj . Положить v = vj.

Шаг 3. Если v = vj , закончить процедуру, так как кратчайший маршрут из v1 в vn . если v  vn , то перейти к шагу 2.

Замечание. Шаг 2 невозможен, если все (vj)= . В этом случае вершина vn недостижима.

Применим изложенный алгоритм к заданному диаграммой графу. Найдем в нем кратчайший маршрут из v1 в v6.

Шаг 1. Окрасим вершину v1 . Присвоим вершинам индексы: (v1) =0, (v2) = (v3)=…= (vn)=. Полагаем v1 = v.

Шаг 2.

(v2) = min {, 0+4} = 4,

(v3) = min {, 0+7} = 7,

(v4) = min {, 0+3} = 3,

(v5) = min {, 0+} = ,

(v6) = min {, 0+} = .

Окрашиваем вершину v4 и ребро {v1, v4}.

Шаг 3. Так как вершина v6 не окрашена, выполняем шаг 2, полагая v = v4.

Шаг 2.

(v2) = min {4, 3+} = 4,

(v3) = min {7, 3+} = 7,

(v5) = min {, 3+3} = 6,

(v6) = min {, 3+} = .

Окрашиваем вершину v2 и ребро {v1, v2}.

Шаг 3. Так как вершина v6 не окрашена, выполняем шаг 2, полагая v = v2.

Шаг 2.

(v3) = min {7, 4+3} = 7,

(v5) = min {6, 4+2} = 6,

(v6) = min {, 4+} = .

Окрашиваем вершину v5 и ребро {v4, v5}.

Шаг 3. Так как вершина v6 не окрашена, выполняем шаг 2, полагая v = v5.

Шаг 2.

(v3) = min {7, 6+} = 7,

(v6) = min {, 6+2} = 8.

Окрашиваем вершину v3 и ребро {v1, v3}.

Шаг 3. Так как вершина v6 не окрашена, выполняем шаг 2, полагая v = v3.

Шаг 2.

(v6) = min {8, 7+2} = 8.

Окрашиваем вершину v6 и ребро {v5, v6}.

Так как вершина v6 окрашена, то работу прекращаем. Получили минимальный маршрут v1 v4 v5 v6 , длина которого равна 8 .

Заметим, что это в данном случае не единственный для вершин v1 и v6 минимальный маршрут, т.к. в алгоритме имелась возможность окрасить вместо ребра {v4, v5} ребро {v2, v5}, тогда бы получили другой маршрут той же длины.