Проблема максимального покрытия - Maximum coverage problem
В проблема максимального покрытия это классический вопрос в Информатика, теория сложности вычислений, и исследование операций.Эта проблема широко преподается в аппроксимационные алгоритмы.
В качестве входных данных вам дается несколько наборов и номер . Наборы могут иметь некоторые общие элементы. Вы должны выбрать не более таких наборов, что охватывается максимальное количество элементов, т.е. объединение выбранных наборов имеет максимальный размер.
Формально (невзвешенное) максимальное покрытие
- Экземпляр: число. и набор наборов .
- Цель: найти подмножество наборов, таких что и количество покрытых элементов максимально.
Задача максимального покрытия NP-жесткий, и не может быть приблизительно при стандартных предположениях. Этот результат по существу соответствует коэффициенту аппроксимации, достигаемому общим жадным алгоритмом, используемым для максимизация субмодульных функций с ограничением мощности.[1]
Формулировка ПДОДИ
Задачу максимального покрытия можно сформулировать следующим образом целочисленная линейная программа.
максимизировать | (максимизация суммы покрытых элементов) | |
при условии | (не более чем наборы выбираются) | |
(если то хотя бы один комплект выбрано) | ||
(если тогда покрыто) | ||
(если тогда выбрано для обложки) |
Жадный алгоритм
В жадный алгоритм для максимального покрытия выбирает наборы по одному правилу: на каждом этапе выбирается набор, содержащий наибольшее количество непокрытых элементов. Можно показать, что этот алгоритм достигает отношения аппроксимации .[2] Результаты ln-аппроксимации показывают, что жадный алгоритм по сути является наилучшим из возможных алгоритмов полиномиальной аппроксимации для максимального покрытия, если только .[3]
Известные расширения
Результаты о неприближаемости применимы ко всем расширениям задачи о максимальном покрытии, поскольку они рассматривают проблему максимального покрытия как частный случай.
Задача максимального покрытия может применяться к ситуациям дорожного движения; Одним из таких примеров является выбор автобусных маршрутов в сети общественного транспорта, которые следует оборудовать детекторами выбоин для максимального охвата, когда доступно только ограниченное количество датчиков. Эта проблема является известным расширением проблемы максимального охвата и впервые была исследована в литературе Джунаде Али и Владимиром Дио.[4]
Взвешенная версия
В взвешенной версии каждый элемент имеет вес . Задача - найти максимальное покрытие с максимальным весом. Базовая версия - это особый случай, когда все веса .
- максимизировать . (максимизация взвешенной суммы покрытых элементов).
- при условии ; (не более чем наборы выбраны).
- ; (если то хотя бы один комплект выбрано).
- ; (если тогда покрыто)
- (если тогда выбрано для обложки).
Жадный алгоритм взвешенного максимального покрытия на каждом этапе выбирает набор, содержащий максимальный вес непокрытых элементов. Этот алгоритм достигает отношения аппроксимации .[1]
Запланированный максимальный охват
В предусмотренной в бюджете версии с максимальным охватом не только каждый элемент иметь вес , но и каждый набор имеет цену . Вместо что ограничивает количество наборов в покрытии бюджета дано. Этот бюджет ограничивает общую стоимость покрытия, которое можно выбрать.
- максимизировать . (максимизация взвешенной суммы покрытых элементов).
- при условии ; (стоимость выбранных наборов не может превышать ).
- ; (если то хотя бы один комплект выбрано).
- ; (если тогда покрыто)
- (если тогда выбрано для обложки).
Жадный алгоритм больше не будет давать решений с гарантией производительности. А именно, поведение этого алгоритма в худшем случае может быть очень далеким от оптимального решения. Алгоритм аппроксимации расширяется следующим образом. Сначала определите модифицированный жадный алгоритм, который выбирает набор с наилучшим соотношением взвешенных непокрытых элементов к стоимости. Во-вторых, среди обложек мощности , найдите лучшее покрытие, не нарушающее бюджет. Назовите эту обложку . В-третьих, найдите все покрытия мощности которые не нарушают бюджет. Используя эти покрытия мощности в качестве отправной точки примените модифицированный жадный алгоритм, сохраняя лучшее из найденных на данный момент укрытий. Назовите эту обложку . В конце процесса приблизительное лучшее покрытие будет либо или же . Этот алгоритм достигает отношения аппроксимации для ценностей . Это наилучшее возможное отношение приближения, если только .[5]
Обобщенное максимальное покрытие
В обобщенной версии максимального покрытия каждый набор имеет цену , элемент имеет разный вес и стоимость в зависимости от того, какой комплект его покрывает, а именно, если покрыт набором вес является и его стоимость . Бюджет дается за полную стоимость решения.
- максимизировать . (максимизируя взвешенную сумму покрытых элементов в наборах, в которых они покрыты).
- при условии ; (стоимость выбранных наборов не может превышать ).
- ; (элемент может быть покрыт не более чем одним комплектом).
- ; (если то хотя бы один комплект выбрано).
- ; (если тогда покрыт набором )
- (если тогда выбрано для обложки).
Обобщенный алгоритм максимального покрытия
В алгоритме используется понятие остаточной стоимости / веса. Остаточная стоимость / вес измеряется в сравнении с предварительным решением, и это разница между стоимостью / весом и стоимостью / весом, полученной в результате предварительного решения.
Алгоритм состоит из нескольких этапов. Сначала найдите решение, используя жадный алгоритм. На каждой итерации жадного алгоритма к предварительному решению добавляется набор, который содержит максимальный остаточный вес элементов, деленный на остаточную стоимость этих элементов вместе с остаточной стоимостью набора. Во-вторых, сравните решение, полученное на первом этапе, с лучшим решением, в котором используется небольшое количество наборов. В-третьих, вернуть лучшее из всех рассмотренных решений. Этот алгоритм достигает отношения аппроксимации .[6]
Связанные проблемы
- Установить проблему с крышкой состоит в том, чтобы охватить все элементы как можно меньшим количеством наборов.
Примечания
- ^ а б Г. Л. Немхаузер, Л. А. Вулси и М. Л. Фишер. Анализ приближений для максимизации функций субмодульного множества I, Математическое программирование 14 (1978), 265–294
- ^ Хохбаум, Дорит С. (1997). «Приблизительное покрытие и проблемы упаковки: крышка набора, крышка вершины, независимый набор и связанные проблемы». В Хохбауме, Дорит С. (ред.). Аппроксимационные алгоритмы для NP-сложных задач. Бостон: Издательская компания PWS. С. 94–143. ISBN 978-053494968-6.
- ^ Файги, Уриэль (Июль 1998 г.). "Порог ln п для приблизительного набора крышки ». Журнал ACM. Нью-Йорк, Нью-Йорк, США: Ассоциация вычислительной техники. 45 (4): 634–652. Дои:10.1145/285055.285059. ISSN 0004-5411. S2CID 52827488.
- ^ Али, Джунаде; Дё, Владимир (2017). Покрытие и размещение мобильных датчиков для автомобилей на заранее определенных маршрутах: жадный эвристический подход. Материалы 14-й Международной совместной конференции по электронному бизнесу и телекоммуникациям. Том 2: WINSYS. С. 83–88. Дои:10.5220/0006469800830088. ISBN 978-989-758-261-5.
- ^ Хуллер, Самир; Мосс, Анна; Наор, Джозеф (Сеффи) (1999). «Бюджетная задача максимального охвата». Письма об обработке информации. 70: 39–45. CiteSeerX 10.1.1.49.5784. Дои:10.1016 / S0020-0190 (99) 00031-9.
- ^ Коэн, Реувен; Кацир, Лиран (2008). «Обобщенная проблема максимального покрытия». Письма об обработке информации. 108: 15–22. CiteSeerX 10.1.1.156.2073. Дои:10.1016 / j.ipl.2008.03.017.
Рекомендации
- Вазирани, Виджай В. (2001). Алгоритмы аппроксимации. Springer-Verlag. ISBN 978-3-540-65367-7.