logo search
razdel2_dmat_10

Метод Магу для нахождения семейства минимальных внешне устойчивых подмножеств орграфа

Каждой вершине орграфа D=(V,X) поставим в соответствие некоторую булеву переменную yi следующим образом: если вершина viU, то yi положим равным 1. Определение внешне устойчивого множества можно записать так: для любой вершины vi из множества V выполняется одно из условий:

  1. вершина viU;

  2. вершина viU , тогда существует вершина vj (j=1n), что vjU и vjГvi.

Запишем это условие в виде формулы алгебры логики, т.е.

yi (yj&aij)  1.

Рассмотрим конъюнкцию по всем вершинам:

F= ( yi (yj&aij))  1 или

F= ( yi yj)  1.

Учитывая, что ААВ А и А(АВ)  А, приведем формулу F к ДНФ. Тогда каждый дизъюнктивный член даст минимальное внешне устойчивое подмножество. Действительно, такой член не содержит переменных с отрицанием и поэтому из множества вершин Vi, соответствующих переменным yi, встречающихся в этом члене, нельзя удалить ни одну.

Пример.

Найти минимальные внешне устойчивые множества вершин для орграфа D, заданного в предыдущем примере.

Решение.

Запишем формулу F. Имеем

F = (y1 y2 y3 y5 )( y2 y3)( y3 y4) y4 (y5 y4)  1.

Упростим формулу, пользуясь формулами поглощения

F = ( y2 y3) y4  1 или F = y2 y4 y3y4  1.

Итак, имеем два минимальных внешне устойчивых множества: {v2,v4 }, {v3,v4}.

      1. Найти все максимальные внутренне устойчивые множества заданного орграфа, используя алгоритм Магу.

      2. Найти все минимальные внешне устойчивые множества заданного орграфа, используя алгоритм Магу.

      3. Найти все наибольшие внутренне устойчивые множества заданного орграфа, используя алгоритм Магу.

      4. Найти все наименьшие внешне устойчивые множества заданного орграфа, используя алгоритм Магу.

    1. Покрытия

Введем еще одно понятие, связанное с понятием внутренне устойчивого множества.

Будем говорить, что вершина v и ребро x графа покрывают друг друга, если они инцидентны. Таким образом, ребро x={v,w} покрывает вершины v и w, а каждая из этих вершин покрывает ребро x.

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

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

Число вершин в наименьшем покрытии графа G называется числом покрытия ( или числом вершинного покрытия) графа G и обозначается через 0(G).

2

1 3 7

5 4 6

8

Рис. 1.

Например, для графа, изображенного на рис.1, каждое из множеств U1={4,5,6,8}, U2={4,5,6,7}, U3={1,2,3,5,6,8} является покрытием, причем U1 и U2 наименьшие покрытия, а U3 минимальное покрытие.

Между покрытиями и независимыми множествами в графе существует тесная связь, а именно, множество вершин U графа G является (наименьшим, минимальным) покрытием тогда и только тогда, когда U*= V \U – (наибольшее, максимальное) независимое множество.