Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii-DM-Logika-Grafy.pdf
Скачиваний:
93
Добавлен:
30.05.2015
Размер:
1.71 Mб
Скачать

10.2. Покрытия

277

 

 

 

Другие числовые характеристики мы рассмотрим ниже – по ходу рассмотрения задач.

Задачи отыскания экстремальных частей могут сводиться друг к другу.

Примеры 10.2.

1. Дополнительным графом для обыкновенного графа G =

¹ ¹

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

¹ ¹

единицы – на нули. Очевидно, что '(G) = "(G) и "(G) = '(G). Таким образом, задачи нахождения наибольшего полного подграфа и наибольшего пустого подграфа сводимы друг к другу.

2. Задача о наибольшем паросочетании.

Паросочетанием называется суграф данного графа G, все ребра которого попарно несмежны. Построим реберный граф L (line graph) исходного графа G следующим образом:

²каждому ребру исходного графа G поставим в соответствие вершину графа L;

²вершины реберного графа смежны, если соответствующие ребра исходного графа смежны.

Очевидно, что наибольшее паросочетание исходного графа G соответствует наибольшему пустому подграфу его реберного графа (каждое наибольшее паросочетание – наибольшему пустому подграфу). Большинство задач на отыскание экстремальных частей являются NP -полными, т.е. не существует алгоритмов полиномиальной сложности для их решения. Поэтому алгоритмы решения этих задач – переборные алгоритмы с различными способами сокращения перебора; это, как правило, алгоритмы поиска в глубину на дереве решений. Несмотря на сводимость некоторых задач друг к другу, существует множество алгоритмов, использующих те или иные особенности задач.

10.2Покрытия

Общую задачу о покрытиях (и разбиениях) мы рассмотрели в главе 2. В этом разделе мы рассмотрим ряд задач, связанных с

278

Глава 10. Экстремальные части графа

 

 

ЗНП (задачей о наименьшем покрытии). Пусть задан обыкновенный граф G = (X; U) .

Определение. Вершинно-реберное покрытие: множество вершин

S µ X, такое, что любое ребро графа G инцидентно по крайней мере одной вершине из S

8u 2 U 9x 2 S [I(x; u)]

(другие термины – опорное множество, или просто опора) .

Определение. Вершинно-вершинное покрытие: множество вершин

S µ S, такое, что любая вершина из X n S смежна по крайней мере с одной вершиной из S

8x 2 X n S 9y 2 S [J(x; y)]

(другие термины – внешне устойчивое множество, доминирующее

множество) .

Определение. Реберное (реберно-вершинное) покрытие: множество ребер V µ U, такое, что любая вершина графа инцидентна по крайней мере одному ребру из V

8x 2 X 9u 2 U [I(x; u)]

(другие термины – покрытие, накрытие).

Напомним, что предикат I(x; u) определяется как “ребро u инцидентно вершине x”, а предикат J(x; y) – как “вершина x смежна с вершиной y”.

Покрытия минимальны, если они не содержат собственных подмножеств, являющихся покрытиями. Наименьшие покрытия – это минимальные покрытия с наименьшим числом элементов.

Пример 10.3.

Для графа, приведенного на рисунке,

2

u5

4

u7

6

 

 

 

 

 

 

 

 

u1

 

u2

 

 

 

 

u3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

u4

3

u6

5

10.2. Покрытия

279

 

 

 

минимальные вершинно-реберные покрытия (минимальные опоры): {1, 4, 5}, {2, 3, 6}, {1, 3, 4, 6}, {2, 3, 4, 5}. Из них наименьшие: f1; 4; 5g, f2; 3; 6g.

Минимальные вершинно-вершинные покрытия: {1, 3, 5}, {1, 4, 5}, {1, 2, 5}, f1; 2; 6g; : : : ; f1; 6g; f3; 4g. Из них наименьшие – {1, 6}, {3, 4}.

Минимальные реберно-вершинные покрытия: fu1; u2; u3g,

fu1; u2; u6; u7g, fu1; u3; u4; u5g, fu1; u3; u6; u7g; : : : Из них наименьшее

fu1; u2; u3g. J

Введем ряд чисел, характеризующих покрытия.

±(G) – опорное число, число вершин наименьшего вершиннореберного покрытия.

¯(G) – число внешней устойчивости (число всесмежности), число вершин наименьшего вершинно-вершинного покрытия.

(G) – число ребер наименьшего реберно-вершинного покрытия, накрывающее число.

З а м е ч а н и е. Определения, введенные нами для обыкновенных графов, можно распространить и на ориентированные графы без петель (кроме реберного покрытия). Например, вершинновершинное покрытие S µ X такое, что для любой вершины x 2 XnS существует дуга, идущая из некоторой вершины из S в вершину x. I

Теорема 10.1 (Галлаи) Для графа G = (X; U) множество S µ X

¹

есть пустой подграф тогда и только тогда, когда множество S = X n S является вершинно-реберным покрытием (опорой).

Для краткости будем называть пустой подграф – ВУМ (внутренне устойчивое множество), вершинно-реберное покрытие – опорой.

¹

°

¹

µ

Д о к а з а т е л ь с т в о .

(

1. Достаточность. Пусть S

 

X – опора, тогда S = X n S – ВУМ. Действительно, любое ребро

¹

инцидентно хотя бы одной вершине из S, поэтому в S вершины попарно несмежны: в противном случае хотя бы одна вершина из этой пары должна была бы войти в опору.

°) 2. Необхдимость. Пусть S µ X – ВУМ, т.е. в S все вершины попарно несмежны. Другими словами, S – ВУМ, если любое ребро соединяет вершину из S с вершиной из его дополнения, но это и есть определение опоры. £

С л е д с т в и е . Для обыкновенного графа

"(G) + ±(G) = n(G).

280

Глава 10. Экстремальные части графа

 

 

10.2.1 Задача о наименьшем покрытии

Общую задачу о наименьшем покрытии (ЗНП) мы уже рассмотрели в главе о бинарных отношениях. В данном разделе мы рассмотрим лишь каким образом задачи о нахождении наименьших покрытий на графах сводятся к общей задаче ЗНП.

10.2.1.1 Вершинно-реберное покрытие (ВРП)

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

Пример 10.4. Для графа из предыдущего примера соответствующая матрица AT выглядит следующим образом:

AT

1

2

3

4

5

6

u1

1

1

0

0

0

0

u2

0

0

1

1

0

0

u3

0

0

0

0

1

1

u4

1

0

1

0

0

0

u5

0

1

0

1

0

0

u6

0

0

1

0

1

0

u7

0

0

0

1

0

1

Наименьшие ВРП – f1; 4; 5g; f2; 3; 6g. J

10.2.1.2Вершинно-вершинное покрытие (ВВП)

Для нахождения наименьшего ВВП алгоритм решения ЗНП применяется к матрице (E + R), где R – матрица смежности, E – диагональная матрица.

З а м е ч а н и е. Здесь нужно учитывать, что вершина покрывает саму себя. I

Пример 10.5.

Для графа из рассматриваемого нами примера матрица

10.2. Покрытия

 

 

 

 

 

281

 

 

 

 

 

 

 

 

 

 

R? = (E + R) имеет вид:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

R?

1

2

3

4

5

6

 

 

 

1

1

1

1

0

0

0

 

 

 

2

1

1

0

1

0

0

 

 

 

3

1

0

1

1

1

0

 

 

 

4

0

1

1

1

0

1

 

 

 

5

0

0

1

0

1

1

 

 

 

6

0

0

0

1

1

1

 

 

 

 

 

 

 

 

 

 

 

 

Наименьшие ВВП – f1; 6g; f3; 4g. J

10.2.1.3 Реберно-вершинное покрытие (РВП)

Для нахождения наименьшего РВП алгоритм решения ЗНП применяется к матрице инциденций графа G над Bf0; 1g.

10.2.1.4 Перечисление покрытий

Рассмотрим задачу нахождения всех минимальных покрытий на примере вершинно-реберных покрытий для обыкновенного графа G = (X; U) . Напомним, что ВРП – это такое множество вершин S µ X, что любое ребро графа G инцидентно по крайней мере одной вершине из S. Определение ВРП можно выразить формально

в в виде высказывания

8u 2 U 9x 2 X[x 2 S ^ I(x; u)] = 1;

(10.1)

где I(x; u) – предикат “вершина x и ребро u инцидентны”. Высказывание (10.1) тождественно истинно, так как являет-

ся определением. Для множеств X = fx1; : : : ; xng вершин и U = fu1; : : : ; umg ребер высказывание (10.1) распишем более подробно:

8u 2 U[x1 2 S ^ I(x1; u) _ x2 2 S ^ I(x2; u) _ : : : _ xn 2 S ^ I(xn; u)] =

=V [x1 2 S ^ I(x1; u1) _ x2 2 S ^ I(x2; u1) _ : : : _ xn 2 S ^ I(xn; u1)] V[x1 2 S ^ I(x1; u2) _ x2 2 S ^ I(x2; u2) _ : : : _ xn 2 S ^ I(xn; u2)]

V[ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .] [x1 2 S ^ I(x1; um) _ x2 2 S ^ I(x2; um) _ : : : _ xn 2 S ^ I(xn; um)]

Для упрощения записи вместо высказывания x 2 S введем логическую переменную x, такую, что

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