Проблема максимального покрытия - Maximum coverage problem

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

В качестве входных данных вам дается несколько наборов и номер . Наборы могут иметь некоторые общие элементы. Вы должны выбрать не больше этих наборов, чтобы охватить максимальное количество элементов, т. Е. Объединение выбранных наборов имело максимальный размер.

Формально (невзвешенное) максимальное покрытие

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

Задача максимального покрытия является NP-сложной и не может быть аппроксимирована в рамках стандартных предположений. Этот результат по существу соответствует коэффициенту аппроксимации, достигаемому общим жадным алгоритмом, используемым для максимизации субмодульных функций с ограничением мощности .

Формулировка ПДОДИ

Задачу максимального покрытия можно сформулировать в виде следующей целочисленной линейной программы .

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

Жадный алгоритм

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

Известные расширения

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

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

Взвешенная версия

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

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

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

Запланированный максимальный охват

В предусмотренной в бюджете версии с максимальным охватом не только каждый элемент имеет вес , но и каждый набор имеет свою стоимость . Вместо этого ограничения на количество наборов в обложке дается бюджет . Этот бюджет ограничивает общую стоимость покрытия, которое можно выбрать.

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

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

Обобщенное максимальное покрытие

В обобщенной версии максимального покрытия каждый набор имеет стоимость , элемент имеет различный вес и стоимость в зависимости от того, какой набор покрывает его. А именно, если охватывается набор веса IS и его стоимость . Дается бюджет для полной стоимости решения.

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

Обобщенный алгоритм максимального покрытия

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

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

Связанные проблемы

Примечания

использованная литература

внешние ссылки