2. Гиперграфы
Гипеграф — это пара 𝑉, 𝐸 , где
• 𝑉 — конечное множество вершин,
• 𝐸 — набор непустых подмножеств 𝑉 — (гипер-)рёбра.
Т.е. гиперграф в общем случае — это просто
набор/семейство/совокупность непустых подмножеств конечного
множества.
4. Аналоги
теоретико-графовых понятий
Полный гиперграф — тот, в котором есть все возможные (в данном
контексте) рёбра.
Например, полный ℎ-однородный гиперграф — тот, в котором
𝐸 = 𝑉′
⊆ 𝑉 ∣ 𝑉′
= ℎ
Независимое множество — это такое 𝐴 ⊆ 𝑉, что ∄𝑒 ∈ 𝐸: 𝑒 ⊆ 𝐴.
Правильная вершинная раскраска — такая, при которой
совокупности вершин одного цвета образуют независимые
множества.
5. Аналоги теоретико-графовых понятий
Цепь в гиперграфе 𝑉, 𝐸 — это последовательность вершин и
рёбер
𝑣1 𝑒1 𝑣2 𝑒2 … 𝑒𝑠 𝑣 𝑠+1
такая, что
• ∀𝑖 𝑣𝑖, 𝑣𝑖+1 ∈ 𝑒𝑖 ,
• все 𝑣𝑖 различны,
• все 𝑒𝑖 различны (не как множества, а как элементы 𝐸).
Цикл определяется аналогично, с той разницей, что 𝑣1 и 𝑣 𝑠+1
совпадают.
7. Аналоги теоретико-графовых понятий
Область связности гиперграфа 𝑉, 𝐸 — это такое множество
𝑉′
⊆ 𝑉, что
• ∀𝑢, 𝑣 ∈ 𝑉′
найдётся цепь из 𝑢 в 𝑣,
• к 𝑉′
нельзя добавить ни одной вершины, так, чтобы предыдущее
свойство сохранилось.
Компонента связности — это подгиперграф, порождённый
областью связности.
9. Покрытия
Если вершина 𝑣 гиперграфа входит в ребро 𝑒, то говорим, что 𝑣 покрывает 𝑒 или
протыкает 𝑒.
Вершинное покрытие гиперграфа — это такое множество вершин
𝐴 ⊆ 𝑉, что
∀𝑒 ∈ 𝐸 𝑒 ∩ 𝐴 ≠ ∅
Вершинное покрытие называется ещё
• протыкающим множеством,
• трансверсалью,
• системой общих представителей (с.о.п.)
для семейства множеств 𝐸.
10. Покрытия в терминах матриц
На языке матриц инцидентности, строка покрывает/протыкает
столбец, если у них на пересечении стоит 1.
Покрытие матрицы — это такое подмножество строк, что каждый
столбец покрывается одной из этих строк.
Пример:
1 0 1 0
0 1 1 0
1 1 0 1
1 1 0 1
0 0 1 1
1
2
3
4
5
11. Покрытия в терминах матриц
Число трансверсальности гиперграфа — это минимальный
размер покрытия.
Формально, если 𝐻 = 𝑉, 𝐸 , то
𝜏 𝐻 ≔ min 𝐴 ∣ ∀𝑒 ∈ 𝐸 𝐴 ∩ 𝑒 ≠ ∅
Будем также писать 𝜏 𝐸 .
Аналогично, для любой булевой матрицы 𝑀 без нулевых столбцов
через 𝜏 𝑀 будем обозначать мощность минимального покрытия
(называемую также глубиной матрицы).
12. Системы общих представителей
Пример прикладной задачи.
Есть набор экспертов 𝑉 ≔ 𝑣1, … , 𝑣 𝑛 . Каждый эксперт, может
быть, разбирается не только в одной области.
Пусть 𝑒1, … , 𝑒 𝑚 ⊆ 𝑉 — множества экспертов, разбирающихся в
1-й, …, 𝑚-й области знания.
Как набрать команду экспертов для решения задачи, требующей
владения всеми указанными областями знания?
13. Жадный алгоритм построения с.о.п.
Для гиперграфа 𝐻 ≔ 𝑉, 𝐸 рассмотрим алгоритм:
1. 𝑆 ≔ ∅
2. 𝐸notCovered ≔ 𝑒 ∈ 𝐸 ∣ 𝑒 ∩ 𝑆 = ∅
3. if 𝐸notCovered > 0:
4. 𝑣∗
≔ argmax
𝑣∈𝑉
# 𝑒 ∈ 𝐸notCovered ∣ 𝑒 ∋ 𝑣
5. 𝑆 ≔ 𝑆 ∪ 𝑣∗
6. goto 2.
7. 𝑆 — искомая с.о.п.
То есть на каждом шаге добавляем в 𝑆 любую из вершин, покрывающих наибольшее
число из ещё не покрытых рёбер.
14. Жадный алгоритм построения
покрытия матрицы
Для матрицы 𝑀 рассмотрим алгоритм:
1. 𝑆 ≔ ∅
2. 𝐶 ≔ столбцы, непокрытые строками из 𝑆
3. if 𝐶 > 0:
4. 𝑟∗ ≔ argmax
𝑟 — строка 𝑀
# столбцы из 𝐶, покрываемые 𝑟
5. 𝑆 ≔ 𝑆 ∪ 𝑟∗
6. goto 2.
7. 𝑆 — искомое покрытие матрицы
То есть на каждом шаге добавляем в 𝑆 любую из строк, покрывающих наибольшее
число из ещё не покрытых столбцов.
15. Теорема о мощности жадного покрытия
Теорема.
Пусть в каждом столбце матрицы 𝑀 ∈ 0,1 𝑛×𝑚
не менее ℎ
единиц, и при этом 𝑚ℎ > 𝑛.
Тогда мощность покрытия, построенного ж.а.,
≤ 1 +
𝑛
ℎ
+
𝑛
ℎ
ln
𝑚ℎ
𝑛
Следствие.
Для таких матриц 𝜏 𝑀 ≤ 1 +
𝑛
ℎ
+
𝑛
ℎ
ln
𝑚ℎ
𝑛
.
16. Доказательство теоремы
о мощности жадного покрытия
Пусть уже сделано 𝑘 шагов алгоритма, в результате чего 𝑆 = 𝑘 и
остаются непокрытыми 𝑐 𝑘 𝑚 столбцов, где 0 < 𝑐 𝑘 ≤ 1.
Рассмотрим матрицу 𝑀 𝑘, образованную строками из 𝑆
и непокрытыми столбцами.
Имеем 𝑀 𝑘 ∈ 0,1 𝑛−𝑘 × 𝑐 𝑘 𝑚 .
В каждом столбце 𝑀 𝑘 не менее ℎ единиц, а значит,
всего в 𝑀 𝑘 не менее 𝑐 𝑘 𝑚ℎ единиц.
Значит, в 𝑀 𝑘 есть строка, в которой ≥ 𝑐 𝑘 𝑚ℎ
𝑛−𝑘
единиц.
17. Доказательство теоремы
о мощности жадного покрытия
Пусть уже сделано 𝑘 шагов алгоритма, в результате чего 𝑆 = 𝑘 и
остаются непокрытыми 𝑐 𝑘 𝑚 столбцов, где 0 < 𝑐 𝑘 ≤ 1.
Есть строка, в которой ≥ 𝑐 𝑘 𝑚ℎ
𝑛−𝑘
единиц.
Следовательно, ж.а. выберет строку, покрывающую не менее 𝑐 𝑘 𝑚ℎ
𝑛−𝑘
новых столбцов.
После 𝑘 + 1 -го шага непокрытыми останутся
≤ 𝑐 𝑘 𝑚 − 𝑐 𝑘 𝑚ℎ
𝑛−𝑘
= 𝑐 𝑘 1 − ℎ
𝑛−𝑘
⋅ 𝑚
столбцов, то есть
𝑐 𝑘+1 ≤ 𝑐 𝑘 1 − ℎ
𝑛−𝑘 ≤ 𝑐 𝑘 1 − ℎ
𝑛
19. Доказательство теоремы
о мощности жадного покрытия
После 𝑘′ ≔ 𝑛
ℎ
ln 𝑚ℎ
𝑛
шагов,
с учётом неравенства ln 1 − 𝑥 < −𝑥, имеем
𝑐 𝑘′ ≤ 𝑒
𝑛
ℎ⋅ln
𝑚ℎ
𝑛 ⋅ln 1−
ℎ
𝑛 < 𝑒− ln
𝑚ℎ
𝑛 = 𝑛
𝑚ℎ
После 𝑘′-го шага остаются непокрытыми
𝑐 𝑘′ ⋅ 𝑚 < 𝑛
ℎ
столбцов. Даже если на покрытие каждого из них потребуется по
одному шагу, общее число шагов алгоритма будет
≤ 𝑘′
+ 𝑛
ℎ ≤ 1 + 𝑛
ℎ + 𝑛
ℎ ln 𝑚ℎ
𝑛
20. Труднопокрываемые матрицы
Теорема о мощности «жадного» покрытия.
Пусть в каждом столбце матрицы 𝑀 ∈ 0,1 𝑛×𝑚
не менее ℎ
единиц, и при этом 𝑚ℎ > 𝑛. Тогда у 𝑀 мощность «жадного»
покрытия ≤ 1 + 𝑛
ℎ
+ 𝑛
ℎ
ln 𝑚ℎ
𝑛
.
Теорема о существовании «труднопокрываемых» матриц
(явная конструкция).
Пусть 𝑚, 𝑛, ℎ ∈ ℕ таковы, что 2 ≤ ln 𝑚ℎ
𝑛
≤ ℎ ≤ 𝑛
8
.
Тогда найдётся матрица 𝑀 ∈ 0,1 𝑛×𝑚, каждый столбец которой
содержит ≥ ℎ единиц, и мощность минимального покрытия
которой ≥ 1
16
⋅ 𝑛
ℎ
ln 𝑚ℎ
𝑛
.
21. Построение труднопокрываемой матрицы
Рассмотрим матрицу 𝑀′
∈ 0,1 2𝑎× 2𝑎
𝑎 , состоящую из всех
столбцов высоты 2𝑎, в каждом из которых ровно 𝑎 единиц.
Имеем 𝜏 𝑀′ = 𝑎 + 1.
Положим
𝑀′′
≔
𝑀′
⋮
𝑀′
∈ 0,1 2𝑎𝑏× 2𝑎
𝑎
Получаем 𝜏 𝑀′′ = 𝜏 𝑀′ = 𝑎 + 1 , в каждом столбце 𝑀′′
ровно 𝑎𝑏 единиц.
24. Построение труднопокрываемой матрицы
Итак, при 2 ≤ ln 𝑚ℎ
𝑛
≤ ℎ ≤ 𝑛
8
найдётся матрица 𝑀′′′, такая, что
• #строк ≤ 𝑛, #столбцов ≤ 𝑚
• #"1" в столбце ≥ ℎ
• 𝜏 𝑀′′′ ≥ 1
16
⋅ 𝑛
ℎ
ln 𝑚ℎ
𝑛
Дополним 𝑀′′′
нулевыми строками, а затем единичными
столбцами, до матрицы размера 𝑛 × 𝑚.
В каждом столбце полученной матрицы 𝑀 не менее ℎ единиц,
и 𝜏 𝑀 = 𝜏 𝑀′′′ ≥ 1
16
⋅ 𝑛
ℎ
ln 𝑚ℎ
𝑛
, что и требовалось.
25. Соотношение мощностей
жадного и оптимального покрытий
Теорема (без д-ва).
Пусть 𝑀 — произвольная матрица, в каждой строке которой не
более 𝑘 единиц. Тогда покрытие, построенное ж.а., имеет размер
не более 1 + ln 𝑘 ⋅ 𝜏 𝑀 .
Теорема (без д-ва).
Для любого 𝑘 ≥ 2 существует матрица 𝑀, в каждой строке которой
не более 𝑘 единиц, а покрытие, построенное для 𝑀 с помощью
ж.а., имеет размер не менее log2 𝑘 −1
2
⋅ 𝜏 𝑀 .
26. Перманент
Перманент матрицы 𝐴 = 𝑎𝑖,𝑗 ∈ ℝ 𝑛×𝑛 — это функционал,
определяемый так:
per 𝐴 ≔
𝜋 — перестановка
𝑎1,𝜋 1 ⋅ 𝑎2,𝜋 2 ⋅ … ⋅ 𝑎 𝑛,𝜋 𝑛
Отличие от det 𝐴 только в отсутствии знака перед слагаемыми.
Значение per 𝐴 не меняется при перестановке строк и/или
столбцов в 𝐴.
27. Разложение по строке/столбцу
Пусть 𝐴𝑖,𝑗 ∈ ℝ 𝑛−1 × 𝑛−1
— матрица, получаемая из 𝐴 удалением
элементов 𝑖-й строки и 𝑗-го столбца.
Тогда для любых 𝑠, 𝑡 ∈ 1, … , 𝑛 выполнено
per 𝐴 =
𝑖=1
𝑛
𝑎𝑖,𝑡 ⋅ per 𝐴𝑖,𝑡
per 𝐴 =
𝑗=1
𝑛
𝑎 𝑠,𝑗 ⋅ per 𝐴 𝑠,𝑗