Проблема максимального покрытия - Maximum coverage problem
Проблема максимального покрытия - классический вопрос в информатике , теории сложности вычислений и исследовании операций . Это проблема, которую широко преподают в приближенных алгоритмах .
В качестве входных данных вам дается несколько наборов и номер . Наборы могут иметь некоторые общие элементы. Вы должны выбрать не больше этих наборов, чтобы охватить максимальное количество элементов, т. Е. Объединение выбранных наборов имело максимальный размер.
Формально (невзвешенное) максимальное покрытие
- Экземпляр: число и набор наборов .
- Цель: найти такое подмножество наборов, чтобы количество охватываемых элементов было максимальным.
Задача максимального покрытия является NP-сложной и не может быть аппроксимирована в рамках стандартных предположений. Этот результат по существу соответствует коэффициенту аппроксимации, достигаемому общим жадным алгоритмом, используемым для максимизации субмодульных функций с ограничением мощности .
Формулировка ПДОДИ
Задачу максимального покрытия можно сформулировать в виде следующей целочисленной линейной программы .
| максимизировать | (максимизация суммы покрытых элементов) | |
| при условии | ( выбирается не более наборов) | |
| (если тогда выбран хотя бы один набор ) | ||
| (если то накрывается) | ||
| (если то выбрано для обложки) |
Жадный алгоритм
Жадный алгоритм для максимального охвата выбирает наборы согласно одному правилу: на каждом этапе, выбрать набор , который содержит наибольшее число непокрытых элементов. Можно показать, что этот алгоритм достигает коэффициента аппроксимации . Результаты ln-аппроксимации показывают, что жадный алгоритм, по сути, является наилучшим из возможных алгоритмов полиномиальной аппроксимации для максимального покрытия, за исключением случаев .
Известные расширения
Результаты о неприближаемости применимы ко всем расширениям задачи о максимальном покрытии, поскольку они рассматривают задачу о максимальном покрытии как частный случай.
Задача максимального покрытия может применяться к ситуациям дорожного движения; Одним из таких примеров является выбор автобусных маршрутов в сети общественного транспорта, которые следует оборудовать детекторами выбоин для максимального охвата, когда доступно только ограниченное количество датчиков. Эта проблема является известным расширением проблемы максимального охвата и впервые была исследована в литературе Джунаде Али и Владимиром Дио.
Взвешенная версия
В взвешенной версии каждый элемент имеет вес . Задача - найти максимальное покрытие, имеющее максимальный вес. Базовая версия - это особый случай, когда все веса равны .
- максимизировать . (максимизация взвешенной суммы покрытых элементов).
- при условии ; ( выбирается не более наборов).
- ; (если тогда выбран хотя бы один набор ).
- ; (если то накрывается)
- (если то выбрано для обложки).
Жадный алгоритм взвешенного максимального покрытия на каждом этапе выбирает набор, содержащий максимальный вес непокрытых элементов. Этот алгоритм достигает коэффициента приближения .
Запланированный максимальный охват
В предусмотренной в бюджете версии с максимальным охватом не только каждый элемент имеет вес , но и каждый набор имеет свою стоимость . Вместо этого ограничения на количество наборов в обложке дается бюджет . Этот бюджет ограничивает общую стоимость покрытия, которое можно выбрать.
- максимизировать . (максимизация взвешенной суммы покрытых элементов).
- при условии ; (стоимость выбранных наборов не может превышать ).
- ; (если тогда выбран хотя бы один набор ).
- ; (если то накрывается)
- (если то выбрано для обложки).
Жадный алгоритм больше не будет давать решений с гарантией производительности. А именно, поведение этого алгоритма в наихудшем случае может быть очень далеким от оптимального решения. Алгоритм аппроксимации расширяется следующим образом. Сначала определите модифицированный жадный алгоритм, который выбирает набор с наилучшим соотношением взвешенных непокрытых элементов к стоимости. Во-вторых, среди обложек по мощности найдите лучшее, не нарушающее бюджет. Назовите это прикрытием . В-третьих, найдите все покрытия мощности , не нарушающие бюджет. Используя эти покрытия мощности в качестве отправных точек, примените модифицированный жадный алгоритм, поддерживая лучшее покрытие, найденное до сих пор. Назовите это прикрытием . В конце процесса приблизительное лучшее покрытие будет либо, либо . Этот алгоритм обеспечивает коэффициент аппроксимации для значений . Это наилучший возможный коэффициент приближения, если только .
Обобщенное максимальное покрытие
В обобщенной версии максимального покрытия каждый набор имеет стоимость , элемент имеет различный вес и стоимость в зависимости от того, какой набор покрывает его. А именно, если охватывается набор веса IS и его стоимость . Дается бюджет для полной стоимости решения.
- максимизировать . (максимизация взвешенной суммы покрытых элементов в наборах, в которых они покрыты).
- при условии ; (стоимость выбранных наборов не может превышать ).
- ; (элемент может быть покрыт не более чем одним набором).
- ; (если тогда выбран хотя бы один набор ).
- ; (если то покрывается множеством )
- (если то выбрано для обложки).
Обобщенный алгоритм максимального покрытия
В алгоритме используется концепция остаточной стоимости / веса. Остаточная стоимость / вес измеряется в сравнении с предварительным решением, и это разница между стоимостью / весом и стоимостью / весом, полученной в результате предварительного решения.
Алгоритм состоит из нескольких этапов. Сначала найдите решение, используя жадный алгоритм. На каждой итерации жадного алгоритма к предварительному решению добавляется набор, который содержит максимальный остаточный вес элементов, деленный на остаточную стоимость этих элементов вместе с остаточной стоимостью набора. Во-вторых, сравните решение, полученное на первом этапе, с лучшим решением, в котором используется небольшое количество наборов. В-третьих, вернуть лучшее из всех рассмотренных решений. Этот алгоритм достигает коэффициента приближения .
Связанные проблемы
- Задача прикрытия набора состоит в том, чтобы покрыть все элементы как можно меньшим количеством наборов.
Примечания
использованная литература
- Вазирани, Виджай В. (2001). Аппроксимационные алгоритмы . Springer-Verlag. ISBN 978-3-540-65367-7.