Установить проблему с обложкой

Пример примера проблемы с покрытием набора.

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

Учитывая набор элементов {1, 2, …, n } (называемый вселенной ) и коллекцию S из m подмножеств, объединение которых равно вселенной, задача покрытия множества состоит в том, чтобы идентифицировать наименьшую подколлекцию S , объединение которой равно вселенная. Например, рассмотрим вселенную U = {1, 2, 3, 4, 5} и набор множеств S = { {1, 2, 3}, {2, 4}, {3, 4}, {4, 5} }. Очевидно, что объединение S есть U . Однако мы можем охватить все элементы только двумя наборами: { {1, 2, 3}, {4, 5} }, см. рисунок. Следовательно, решение задачи о покрытии множеств имеет размер 2.

Более формально, учитывая вселенную и семья подмножеств , обложка множества — это подсемейство множеств, объединение которых есть .

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

Вариант решения покрытия множества NP-полный . Это одна из 21 NP-полной задачи Карпа, которая, как было показано в 1972 году, является NP-полной . Версия покрытия множества для оптимизации/поиска является NP-трудной . [1] Это проблема, «чье исследование привело к разработке фундаментальных методов для всей области» аппроксимационных алгоритмов . [2]

Варианты [ править ]

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

В задаче о покрытии дробных множеств допускается выбирать дробные части множеств, а не целые множества. Покрытие дробного множества — это присвоение дроби (числа в [0,1]) каждому множеству в , такой, что для каждого элемента x во вселенной сумма дробей множеств, содержащих x, равна как минимум 1. Цель состоит в том, чтобы найти покрытие дробного множества, в котором сумма дробей будет как можно меньше. Обратите внимание, что (обычное) покрытие множества эквивалентно покрытию дробного множества, в котором все дроби равны 0 или 1; следовательно, размер наименьшего дробного покрытия не превышает размера наименьшего покрытия, но может быть меньше. Например, рассмотрим вселенную U = {1, 2, 3} и набор множеств S = { {1, 2}, {2, 3}, {3, 1} }. Наименьшее покрытие набора имеет размер 2, например { {1, 2}, {2, 3} }. Но существует дробное покрытие набора размером 1,5, в котором от каждого набора берется 0,5 дроби.

линейной Формулировка программы

Задачу покрытия множества можно сформулировать в виде следующей целочисленной линейной программы (ЦЛП). [3]

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

Для более компактного представления ограничения покрытия можно определить матрицу инцидентности , где каждая строка соответствует элементу, а каждый столбец соответствует набору, и если элемент e находится в наборе s, и в противном случае. Тогда ограничение покрытия можно записать как .

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

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

Эта линейная программа принадлежит к более общему классу ЛП для покрытия задач , поскольку все коэффициенты целевой функции и обе стороны ограничений неотрицательны. Разрыв целостности ПДОДИ составляет не более (где это размер Вселенной). Показано, что его релаксация действительно дает фактор- аппроксимационный алгоритм решения задачи о покрытии минимального множества. [4] см. в разделе рандомизированное округление#setcover Подробное объяснение .

Формулировка набора ударов [ править ]

Покрытие множества эквивалентно проблеме попадания в множество . В этом можно убедиться, заметив, что случай покрытия множества можетможно рассматривать как произвольный двудольный граф , в котором вселенная представлена ​​вершинами слева, а множества — вершинами слева.справа и ребра, обозначающие принадлежность элементов множествам. Тогда задача состоит в том, чтобы найти подмножество левых вершин минимальной мощности, которое имеет нетривиальное пересечение с каждой из правых вершин, что и является проблемой множества попаданий.

В области вычислительной геометрии набор ударов для набора геометрических объектов также называется набором ударов или набором прокалывания . [5]

Жадный алгоритм [ править ]

Существует жадный алгоритм полиномиальной аппроксимации покрытия множеств, который выбирает множества по одному правилу: на каждом этапе выбирается то множество, которое содержит наибольшее количество непокрытых элементов. Этот метод может быть реализован во времени, линейном по сумме размеров входных наборов, с использованием очереди сегментов для определения приоритетов наборов. [6] Он достигает коэффициента аппроксимации , где - это размер набора, который необходимо покрыть. [7] Другими словами, он находит покрытие, которое может быть раз больше минимального, где это номер гармоники :

Этот жадный алгоритм фактически достигает коэффициента аппроксимации где - это набор максимальной мощности . Для плотные примеры, однако существует -алгоритм аппроксимации для каждого . [8]

Плотный пример жадного алгоритма с k=3

Существует стандартный пример, в котором жадный алгоритм достигает коэффициента аппроксимации .Вселенная состоит из элементы. Система комплектов состоит из попарно непересекающиеся множества с размерами соответственно, а также два дополнительных непересекающихся множества ,каждый из которых содержит половину элементов из каждого . На этих входных данных жадный алгоритм принимает наборы , именно в таком порядке, а оптимальное решение состоит только из и .Пример такого ввода для изображено справа.

Результаты о неаппроксимируемости показывают, что жадный алгоритм по существу является наилучшим из возможных алгоритмов аппроксимации с полиномиальным временем для покрытия множеств до членов более низкого порядка.(см. результаты о неаппроксимируемости ниже) при правдоподобных предположениях о сложности. Более тщательный анализ жадного алгоритма показывает, что коэффициент аппроксимации точно равен . [9]

Низкочастотные системы [ править ]

Если каждый элемент встречается не более чем в f наборах, то решение может быть найдено за полиномиальное время, которое аппроксимирует оптимум с точностью до коэффициента f, используя LP-релаксацию .

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

  1. Найдите оптимальное решение O для программы L, используя некоторый полиномиальный метод решения линейных программ.
  2. Выберите все наборы S , для которых соответствующая переменная x S имеет значение не менее 1/ f в решении O . [10]

Результаты неаппроксимируемости [ править ]

Когда относится к размеру Вселенной, Лунд и Яннакакис (1994) показали, что покрытие множеств не может быть аппроксимировано за полиномиальное время с точностью до коэффициента , если только NP не имеет алгоритмов с квазиполиномиальным временем . Файги (1998) улучшил эту нижнюю границу до при тех же предположениях, что по существу соответствует коэффициенту аппроксимации, полученному жадным алгоритмом. Раз и Сафра (1997) установили нижнюю границу.из , где — некоторая константа в более слабом предположении, что P НП .Аналогичный результат с более высоким значением недавно было доказано Алоном, Мошковицем и Сафрой (2006) . Динур и Стойрер (2013) показали оптимальную неаппроксимируемость, доказав, что ее нельзя аппроксимировать к если только П Э.Г.

В низкочастотных системах Динур и др. (2003) доказали, что NP-трудно аппроксимировать покрытие множества лучше, чем .Если гипотеза об уникальных играх верна, ее можно улучшить до as proven by Khot & Regev (2008) .

Тревизан (2001) доказывает, что наборы покрывают экземпляры с наборами размера не более не может быть аппроксимировано с коэффициентом лучше, чем если только П NP , тем самым делая аппроксимацию Жадный алгоритм в этом случае существенно точен.

Обложка взвешенного набора [ править ]

Ослабляя целочисленную линейную программу для покрытия взвешенного множества описанную выше , можно использовать рандомизированное округление, чтобы получить -факторная аппроксимация. Неутяжеленную крышку комплекта можно адаптировать к утяжеленному кейсу. [11]

Обложка дробного набора [ править ]

Связанные проблемы [ править ]

  • Удар по сету — это эквивалентная переформулировка Set Cover.
  • Покрытие вершин — это частный случай Hitting Set.
  • Edge Cover — это особый случай Set Cover.
  • Покрытие геометрического множества — это особый случай покрытия множества, когда вселенная представляет собой набор точек в а множества индуцируются пересечением Вселенной и геометрических фигур (например, дисков, прямоугольников).
  • Упаковка комплекта
  • Задача максимального покрытия состоит в том, чтобы выбрать не более k наборов, чтобы охватить как можно больше элементов.
  • Доминирующее множество — это задача выбора набора вершин (доминирующего множества) в графе такого, чтобы все остальные вершины были смежны хотя бы с одной вершиной в доминирующем множестве. Было показано, что задача о доминирующем множестве является NP-полной за счет редукции от покрытия множества.
  • Точная задача покрытия состоит в том, чтобы выбрать покрытие множества, в котором ни один элемент не входит более чем в одно покрывающее множество.
  • Обложка красно-синего комплекта. [12]
  • Похищение прикрытия .
  • Монотонная дуализация — это вычислительная задача, эквивалентная перечислению всех минимальных наборов попаданий или перечислению всех покрытий минимальных множеств данного семейства множеств. [13]

Примечания [ править ]

  1. ^ Корте и Виген 2012 , стр. 414.
  2. ^ Вазирани (2001 , стр. 15)
  3. ^ Вазирани (2001 , стр. 108)
  4. ^ Вазирани (2001 , стр. 110–112)
  5. ^ Нильсен, Франк (6 сентября 2000 г.). «Быстрая резка коробок больших размеров» (PDF) . Теоретическая информатика . 246 (1): 53–72. дои : 10.1016/S0304-3975(98)00336-3 . ISSN   0304-3975 .
  6. ^ Кормен, Томас Х .; Лейзерсон, Чарльз Э .; Ривест, Рональд Л .; Стейн, Клиффорд (2009) [1990], «Упражнение 35.3-3», Введение в алгоритмы (3-е изд.), MIT Press и McGraw-Hill, стр. 1122, ISBN  0-262-03384-4
  7. ^ Хватал, В. (август 1979 г.), «Жадная эвристика для задачи покрытия множеств», Mathematics of Operations Research , 4 (3): 233–235, doi : 10.1287/moor.4.3.233 , JSTOR   3689577
  8. ^ Карпинский и Зеликовский 1998 г.
  9. ^ Славик Петр Подробный анализ жадного алгоритма покрытия множества . СТОЦ'96, стр. 435-441, дои : 10.1145/237814.237991
  10. ^ Вазирани (2001 , стр. 118–119)
  11. ^ Министр (2001 , глава 14)
  12. ^ Информация., Национальные лаборатории Сандии. Соединенные Штаты. Министерство энергетики. Соединенные Штаты. Министерство энергетики. Управление науки и техники (1999). О задаче о покрытии красно-синего множества . Соединенные Штаты. Департамент энергетики. OCLC   68396743 .
  13. ^ Гейнер-Дьюар, Эндрю; Вера-Ликона, Паола (2017), «Проблема генерации минимального набора попаданий: алгоритмы и вычисления», SIAM Journal on Discrete Mathematics , 31 (1): 63–100, arXiv : 1601.02939 , doi : 10.1137/15M1055024 , MR   3590650 , S2CID   9240467

Ссылки [ править ]


Внешние ссылки [ править ]