Дано сімейство не більше ніж n підмножин { 1 , 2 , … , n } . Замикання об'єднання Р інший набір сімейство С , що містить кожен набором , який може бути побудований з об'єднанням 1 або більше множин в F . За | C | ми позначимо число множин C .
Який найшвидший спосіб обчислити закриття профспілки?
Я показав еквівалентність між закриттям об'єднання та переліком усіх максимальних незалежних наборів у двопартійному графіку, тому ми знаємо, що рішення про розмір закриття об'єднання є # P-повним.
Однак існує спосіб перерахувати всі максимальні незалежні множини (або максимальні кліки) за час для графа з n вузлами та m ребрами Tsukiyama et al. 1977. Але це не спеціалізується для двопартійних графіків.
Ми дали алгоритм для двосторонніх графіків із виконанням http://www.ii.uib.no/~martinv/Papers/BooleanWidth_I.pdf
Наш метод заснований на спостереженні, що будь-який елемент в може бути зроблений об'єднанням якогось іншого елемента C і однієї з оригінальних множин. Отже, ми будемо кожного разу, коли ми додамо елемент до C, спробуємо розширити його одним із п яти оригінальних наборів. Для кожного з цих n ⋅ | C | встановлює нам потрібно перевірити , якщо вони все ще знаходяться в C . Ми зберігаємо C як двійкове дерево пошуку, тому кожен пошук бере журнал | C | ⋅ n час
Чи можливо знайти закриття з'єднання за час O ( | C | ⋅ n 2 ) ? Або навіть в часі O ( | C | ⋅ n ) ?