Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 7-14.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
491.24 Кб
Скачать

Лекция 7 Итерационные алгоритмы разрезания графа на куски

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

Вспомним, что матрица смежности для графа G(X,E), имеющего n вершин – это матрица R=||rij||n*n, элементы которой соответствуют числу ребер, соединяющих вершину xi с вершиной xj.

Т.к. матрица смежности полностью описывает граф, то разрезание графа G на l кусков G1, G2, … , Gl эквивалентно разбиению матрицы смежности R графа G на l клеток (подматриц).

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

За критерий оптимальности можно брать минимум числа ребер между кусками (см. формулу(3.2) лекции 3)

(7.1)

,

либо максимум числа ребер внутри кусков

(7.2)

или Gmax

(7.3)

(Согласно материалу лекции 3 множество Uij определяет подмножество ребер UijU, попадающих в разрез между кусками Gi и Gj графа G, а множество Uii определяет подмножество ребер, т.е. кол-во связей внутри куска Gi),

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

Таким образом, в первом куске пусть будет множество Еi вершин, а во втором Еi = Е \ Еi.

Тогда множество ребер разобьем на три класса:

1) внутренние ребра, лежащие в куске; Gi;

2) внешние ребра, лежащие в куске Gi;

3) соединяющие ребра между кусками Gi и Gi.

Число внутренних ребер куска Gi равно

(7.4)

Где (ei) - сумма локальных степеней вершин куска Gi, Kii - число соединительных ребер кусков Gi и Gi

Число внешних ребер, которые являются внутренними для куска Gi равно

(7.5)

Для каждой вершины ek введем число связности вершины (разность кол-ва внешних и внутренних связей k-го элемента)

k=

rk(Gi)- rk(Gi), если ekEi

rk(Gi)- rk(Gi), если ekEi

(7.6)

(7.7)

Где:

  • rk(Gi) - число ребер, соединяющих вершину ek с вершинами куска Gi (k-й элемент, i-й кусок);

  • rk(Gi) - число ребер, соединяющих вершину ek с вершинами куска Gi.

Обозначим:

  • k - число связности для вершин ekEi;

  • k - число связности для вершин ekEi.

П оясним понятие связности на примере графа G, разбитого на 2 части G1 и G2, приведенного на рис. 7.1. Тогда числа связности для вершин G1 определяется следующим образом:

(x1)=r1(G2)-r1(G1)=1-2=-1;

(x2)=r2(G2)-r2(G1)=2-2=0;

(x3)=r3(G2)-r3(G1)=3-2=1;

Числа связности для вершин G2:

(x4)=r4(G1)-r4(G2)=1-3=-2

(x5)=r5(G1)-r5(G2)=2-2=0;

(x6)=r6(G1)-r6(G2)=0-2=-2;

(x7)=r7(G1)-r7(G2)=3-1=2;

Очевидно, что число связности может быть положительным, отрицательным или равным нулю. Физический смысл числа связности следующий. Например, (x1)=-1 означает, что при перестановке вершины x1 из G1 в G2 число ребер в сечении увеличится на 1. Значение (x2)=0 говорит о том, что перестановка вершины x2 из G1 в G2 оставит без изменения число соединительных ребер.

Рассмотрим теперь итерационный алгоритм с использованием матрицы смежности. Он основан на теореме:

Перестановка двух произвольных вершин ekEi и eqEi приводит к уменьшению числа соединительных ребер между кусками в случаях:

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