Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 4. Взвешенные графы и орграфы, часть 1.doc
Скачиваний:
16
Добавлен:
13.02.2016
Размер:
603 Кб
Скачать

Глава 4. ВЗВЕШЕННЫЕ ГРАФЫ И ОРГРАФЫ

3

Определения

.1. Функция веса

Взвешенным графом (орграфом) называется граф (орграф) со взвешенными вершинами и/или ребрами (дугами).

Во вершинно-взвешенном графе (орграфе) вводится дополнительная функция ER, R –вещественные числа, которая ассоциируется с каждой вершиной графа (орграфа). Эту функцию можно рассматривать как функцию, задающую «стоимость» вершины.

3.1.1. Графическое изображение

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

Замечание

Далее будут рассматриваться реберно-взвешенные графы (орграфы), которые кратко будут называться взвешенными графами (орграфами).

3.1.2. Матричное представление

Взвешенная матрица смежности

Для взвешенного графа (орграфа) взвешенная матрица смежности [A] размера nn, n=|V| задается следующим образом:

[A]=

w(vi,vj), если есть ребро (дуга) из вершины vi в вершину vj;

0 в остальных случаях,

где w(vi,vj) R – вес («стоимость») ребра (дуги).

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

Пример

Рис.3.1.2. Взвешенная матрица смежности графа и ее графическое представление

3.1.3. Таблица инциденций взвешенного

г

Определение

рафа и орграфа

Строка таблицы инциденций содержит вершину Vi с перечислением всех инцидентных ей ребер (дуг) и их весами.

Пример

3.2. Минимальное каркасное

дерево графа

Определение

Минимальным каркасным деревом графа является каркасное дерево во взвешенном графе, имеющее минимальный общий вес ребер.

Пример

3.2.1. Алгоритм Краскала (Kruskal)

Определения

Алгоритм Краскала создает лес деревьев. Вначале лес содержит n простых деревьев. На каждом шаге добавляется самое минимальное по весу ребро так, чтобы оно соединяло два дерева вместе.

Если выбранное ребро формирует цикл, то оно отбрасывается.

Инициализация алгоритма:

  1. Создать лес, содержащий n тривиальных деревьев по одной вершине в каждом дереве (нет ребер);

  2. Организовать приоритетную очередь ребер графа, организованную в порядке возрастания весов ребер.

Выполнение алгоритма:

  1. До тех пор, пока в дереве не появится (n-1)-ребер,

выполнить:

    1. Выбрать из очереди ребро с наименьшим весом;

    2. Если ребро формирует цикл, то отбросить его, иначе добавить это ребро в лес.

Псевдокод

Замечания

  1. Каждый шаг алгоритма Краскала будет соединять два дерева вместе, поэтому в конце алгоритма получится только одно дерево.

  2. Сложность алгоритма O(mlogn), n=|V|, m=|E|.

Пример