27
Дискретные структуры МФТИ, осень 2013 Александр Дайняк www.dainiak.com

Гиперграфы. Покрытия. Жадный алгоритм

Embed Size (px)

Citation preview

Page 1: Гиперграфы. Покрытия. Жадный алгоритм

Дискретные структурыМФТИ, осень 2013

Александр Дайнякwww.dainiak.com

Page 2: Гиперграфы. Покрытия. Жадный алгоритм

Гиперграфы

Гипеграф — это пара , где• — конечное множество вершин,• — набор непустых подмножеств — (гипер-)рёбра.

Т.е. гиперграф в общем случае — это просто набор/семейство/совокупность непустых подмножеств конечного множества.

Page 3: Гиперграфы. Покрытия. Жадный алгоритм

Гиперграфы

Гиперграф -однородный, если .Так что граф — это -однородный гиперграф.

Пример -однородного гиперграфа:

Page 4: Гиперграфы. Покрытия. Жадный алгоритм

Аналоги теоретико-графовых понятийПолный гиперграф — тот, в котором есть все возможные (в данном контексте) рёбра.

Например, полный -однородный гиперграф — тот, в котором

Независимое множество — это такое , что .

Правильная вершинная раскраска — такая, при которой совокупности вершин одного цвета образуют независимые множества.

Page 5: Гиперграфы. Покрытия. Жадный алгоритм

Аналоги теоретико-графовых понятийЦепь в гиперграфе — это последовательность вершин и рёбер

такая, что• ,• все различны,• все различны (не как множества, а как элементы ).

Цикл определяется аналогично, с той разницей, что и совпадают.

Page 6: Гиперграфы. Покрытия. Жадный алгоритм

Аналоги теоретико-графовых понятийПодгиперграф гиперграфа , порождённый множеством вершин — это пара , где

12

34

5

12

4

1,2,4

3,4 34

Page 7: Гиперграфы. Покрытия. Жадный алгоритм

Аналоги теоретико-графовых понятийОбласть связности гиперграфа — это такое множество , что • найдётся цепь из в ,• к нельзя добавить ни одной вершины, так, чтобы предыдущее

свойство сохранилось.Компонента связности — это подгиперграф, порождённый областью связности.

Page 8: Гиперграфы. Покрытия. Жадный алгоритм

Матрица инцидентности

Матрица инцидентности гиперграфа — это матрица , где

Пример:

(1 0 1 00 1 1 01 1 0 11 1 0 10 0 1 1

)12

34

5

Page 9: Гиперграфы. Покрытия. Жадный алгоритм

Покрытия

Если вершина гиперграфа входит в ребро , то говорим, что покрывает или протыкает .

Вершинное покрытие гиперграфа — это такое множество вершин , что

Вершинное покрытие называется ещё

• протыкающим множеством,

• трансверсалью,

• системой общих представителей (с.о.п.)

для семейства множеств .

Page 10: Гиперграфы. Покрытия. Жадный алгоритм

Покрытия в терминах матриц

На языке матриц инцидентности, строка покрывает/протыкает столбец, если у них на пересечении стоит .

Покрытие матрицы — это такое подмножество строк, что каждый столбец покрывается одной из этих строк.

Пример:

(1 0 1 00 1 1 01 1 0 11 1 0 10 0 1 1

)12

34

5

Page 11: Гиперграфы. Покрытия. Жадный алгоритм

Покрытия в терминах матриц

Число трансверсальности гиперграфа — это минимальный размер покрытия.

Формально, если , то

Будем также писать .

Аналогично, для любой булевой матрицы без нулевых столбцов через будем обозначать мощность минимального покрытия (называемую также глубиной матрицы).

Page 12: Гиперграфы. Покрытия. Жадный алгоритм

Системы общих представителей

Пример прикладной задачи.

Есть набор экспертов . Каждый эксперт, может быть, разбирается не только в одной области.

Пусть — множества экспертов, разбирающихся в -й, …, -й области знания.

Как набрать команду экспертов для решения задачи, требующей владения всеми указанными областями знания?

Page 13: Гиперграфы. Покрытия. Жадный алгоритм

Жадный алгоритм построения с.о.п.Для гиперграфа рассмотрим алгоритм:

1.

2.

3. if :

4.

5.

6. goto 2.

7. — искомая с.о.п.

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

Page 14: Гиперграфы. Покрытия. Жадный алгоритм

Жадный алгоритм построения покрытия матрицыДля матрицы рассмотрим алгоритм:

1.

2.

3. if :

4.

5.

6. goto 2.

7. — искомое покрытие матрицы

То есть на каждом шаге добавляем в любую из строк, покрывающих наибольшее число из ещё не покрытых столбцов.

Page 15: Гиперграфы. Покрытия. Жадный алгоритм

Теорема о мощности жадного покрытияТеорема.Пусть в каждом столбце матрицы не менее единиц, и при этом .

Тогда мощность покрытия, построенного ж.а.,

Следствие.Для таких матриц .

Page 16: Гиперграфы. Покрытия. Жадный алгоритм

Доказательство теоремы о мощности жадного покрытияПусть уже сделано шагов алгоритма, в результате чего и остаются непокрытыми столбцов, где .

Рассмотрим матрицу , образованную строками из и непокрытыми столбцами.

Имеем .

В каждом столбце не менее единиц, а значит, всего в не менее единиц.

Значит, в есть строка, в которой единиц.

Page 17: Гиперграфы. Покрытия. Жадный алгоритм

Доказательство теоремы о мощности жадного покрытияПусть уже сделано шагов алгоритма, в результате чего и остаются непокрытыми столбцов, где .

Есть строка, в которой единиц.

Следовательно, ж.а. выберет строку, покрывающую не менее новых столбцов.

После -го шага непокрытыми останутся

столбцов, то есть

Page 18: Гиперграфы. Покрытия. Жадный алгоритм

Доказательство теоремы о мощности жадного покрытияПусть после шагов алгоритма остаются непокрытыми столбцов.

Имеем и .

Отсюда .

Пусть ж.а. выполнил шагов.

Имеем

Page 19: Гиперграфы. Покрытия. Жадный алгоритм

Доказательство теоремы о мощности жадного покрытияПосле шагов,с учётом неравенства , имеем

После -го шага остаются непокрытыми

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

Page 20: Гиперграфы. Покрытия. Жадный алгоритм

Труднопокрываемые матрицы

Теорема о мощности «жадного» покрытия.Пусть в каждом столбце матрицы не менее единиц, и при этом . Тогда у мощность «жадного» покрытия .

Теорема о существовании «труднопокрываемых» матриц (явная конструкция).Пусть таковы, что .

Тогда найдётся матрица , каждый столбец которой содержит единиц, и мощность минимального покрытия которой .

Page 21: Гиперграфы. Покрытия. Жадный алгоритм

Построение труднопокрываемой матрицыРассмотрим матрицу , состоящую из всех столбцов высоты , в каждом из которых ровно единиц.

Имеем .

Положим

Получаем , в каждом столбце ровно единиц.

Page 22: Гиперграфы. Покрытия. Жадный алгоритм

Построение труднопокрываемой матрицыДля матрицы имеем

Рассмотрим матрицу

Имеем , и в каждом столбце ровно единиц.

Page 23: Гиперграфы. Покрытия. Жадный алгоритм

Построение труднопокрываемой матрицыИтак, для любых существует матрица , в каждом столбце которой единиц, и для которой .

По условию, .

Пусть , и . Тогда в

Page 24: Гиперграфы. Покрытия. Жадный алгоритм

Построение труднопокрываемой матрицыИтак, при найдётся матрица , такая, что

• ,

Дополним нулевыми строками, а затем единичными столбцами, до матрицы размера .

В каждом столбце полученной матрицы не менее единиц,и , что и требовалось.

Page 25: Гиперграфы. Покрытия. Жадный алгоритм

Соотношение мощностей жадного и оптимального покрытийТеорема (без д-ва).Пусть — произвольная матрица, в каждой строке которой не более единиц. Тогда покрытие, построенное ж.а., имеет размер не более .

Теорема (без д-ва).Для любого существует матрица , в каждой строке которой не более единиц, а покрытие, построенное для с помощью ж.а., имеет размер не менее .

Page 26: Гиперграфы. Покрытия. Жадный алгоритм

Перманент

Перманент матрицы — это функционал, определяемый так:

Отличие от только в отсутствии знака перед слагаемыми.

Значение не меняется при перестановке строк и/или столбцов в .

Page 27: Гиперграфы. Покрытия. Жадный алгоритм

Разложение по строке/столбцу

Пусть — матрица, получаемая из удалением элементов -й строки и -го столбца.

Тогда для любых выполнено