Проблема максимального покрытия
Проблема максимального покрытия является классическим вопросом в информатике , теории сложности вычислений и исследовании операций .Это проблема, которая широко изучается в алгоритмах аппроксимации .
В качестве входных данных вам даны несколько наборов и число . Наборы могут иметь некоторые общие элементы. Вы должны выбрать максимум из этих наборов так, чтобы охватить максимальное количество элементов, т.е. объединение выбранных множеств имеет максимальный размер.
Формально (невзвешенное) Максимальное покрытие
- Экземпляр: число и коллекция наборов .
- Цель: найти подмножество. наборов, таких, что и количество покрытых элементов максимизируется.
Задача максимального покрытия NP-трудна и может быть аппроксимирована в пределах при стандартных предположениях. Этот результат по существу соответствует коэффициенту аппроксимации, достигнутому с помощью общего жадного алгоритма, используемого для максимизации субмодулярных функций с ограничением мощности . [1]
формулировка ILP
[ редактировать ]Задачу максимального покрытия можно сформулировать в виде следующей целочисленной линейной программы .
максимизировать | (максимизация суммы покрытых элементов) | |
при условии | (не более наборы выбраны) | |
(если тогда хотя бы один набор выбрано) | ||
(если затем покрыто) | ||
(если затем выбран для обложки) |
Жадный алгоритм
[ редактировать ]Жадный алгоритм максимального покрытия выбирает множества по одному правилу: на каждом этапе выбирают множество, содержащее наибольшее количество непокрытых элементов. Можно показать, что этот алгоритм достигает коэффициента аппроксимации . [2] Результаты ln-аппроксимируемости показывают, что жадный алгоритм по сути является наилучшим из возможных алгоритмов полиномиальной аппроксимации для максимального покрытия, если только . [3]
Известные расширения
[ редактировать ]Результаты о неаппроксимируемости применимы ко всем расширениям проблемы максимального покрытия, поскольку они рассматривают проблему максимального покрытия как особый случай.
Задача максимального покрытия может быть применена к дорожно-транспортным ситуациям; Одним из таких примеров является выбор того, какие автобусные маршруты в сети общественного транспорта следует оборудовать детекторами выбоин, чтобы максимизировать охват, когда доступно только ограниченное количество датчиков. Эта проблема является известным расширением проблемы максимального покрытия и впервые была исследована в литературе Джунаде Али и Владимиром Дьо. [4]
Взвешенная версия
[ редактировать ]В взвешенной версии каждый элемент имеет вес . Задача состоит в том, чтобы найти максимальное покрытие, имеющее максимальный вес. Базовая версия представляет собой особый случай, когда все веса .
- максимизировать . (максимизация взвешенной суммы покрытых элементов).
- при условии ; (не более наборы выбраны).
- ; (если тогда хотя бы один набор выбран).
- ; (если затем покрыто)
- (если затем выбран для обложки).
Жадный алгоритм взвешенного максимального покрытия на каждом этапе выбирает набор, содержащий максимальный вес непокрытых элементов. Этот алгоритм достигает коэффициента аппроксимации . [1]
Запланированный максимальный охват
[ редактировать ]В бюджетной версии максимального покрытия не только каждый элемент иметь вес , но и каждый набор имеет стоимость . Вместо что ограничивает количество наборов в рамках бюджета дано. Этот бюджет ограничивает общую стоимость покрытия, которое можно выбрать.
- максимизировать . (максимизация взвешенной суммы покрытых элементов).
- при условии ; (стоимость выбранных наборов не может превышать ).
- ; (если тогда хотя бы один набор выбран).
- ; (если затем покрыто)
- (если затем выбран для обложки).
Жадный алгоритм больше не будет давать решения с гарантией производительности. А именно, поведение этого алгоритма в худшем случае может быть очень далеко от оптимального решения. Алгоритм аппроксимации расширяется следующим образом. Сначала определим модифицированный жадный алгоритм, который выбирает множество который имеет наилучшее соотношение взвешенных непокрытых элементов и стоимости. Во-вторых, среди покрытий мощности , найдите лучший чехол, не нарушающий бюджет. Назовите это покрытие . В-третьих, найдите все покрытия мощности. которые не нарушают бюджет. Использование этих покрытий мощности в качестве отправной точки примените модифицированный жадный алгоритм, сохраняя лучшее найденное на данный момент укрытие. Назовите это покрытие . В конце процесса приблизительным лучшим покрытием будет либо или . Этот алгоритм достигает коэффициента аппроксимации для значений . Это наилучший возможный коэффициент аппроксимации, если только . [5]
Обобщенный максимальный охват
[ редактировать ]В обобщенной версии максимального покрытия каждый набор имеет стоимость , элемент имеет различный вес и стоимость в зависимости от того, в какой комплект он входит.А именно, если покрыт набором вес является и его стоимость . Бюджет указывается общая стоимость решения.
- максимизировать . (максимизация взвешенной суммы покрытых элементов в множествах, в которых они покрыты).
- при условии ; (стоимость выбранных наборов не может превышать ).
- ; (элемент может быть охвачено не более чем одним набором).
- ; (если тогда хотя бы один набор выбран).
- ; (если затем покрыт набором )
- (если затем выбран для обложки).
Обобщенный алгоритм максимального покрытия
[ редактировать ]Алгоритм использует концепцию остаточной стоимости/веса. Остаточная стоимость/вес измеряется относительно предварительного решения и представляет собой разницу стоимости/веса от стоимости/веса, полученного при использовании предварительного решения.
Алгоритм имеет несколько этапов. Сначала найдите решение, используя жадный алгоритм. На каждой итерации жадного алгоритма к предварительному решению добавляется набор, содержащий максимальный остаточный вес элементов, деленный на остаточную стоимость этих элементов вместе с остаточной стоимостью набора. Во-вторых, сравните решение, полученное на первом этапе, с лучшим решением, использующим небольшое количество наборов. В-третьих, вернуть лучшее из всех рассмотренных решений. Этот алгоритм достигает коэффициента аппроксимации . [6]
Связанные проблемы
[ редактировать ]- Проблема покрытия множеств состоит в том, чтобы покрыть все элементы как можно меньшим количеством наборов.
Примечания
[ редактировать ]- ^ Jump up to: а б Г.Л. Немхаузер , Л.А. Уолси и М.Л. Фишер. Анализ приближений для максимизации субмодулярных функций множества I, Mathematical Programming 14 (1978), 265–294.
- ^ Хохбаум, Дорит С. (1997). «Аппроксимация задач покрытия и упаковки: покрытие множеств, покрытие вершин, независимый набор и связанные проблемы». В Хохбауме, Дорит С. (ред.). Алгоритмы аппроксимации для NP-сложных задач . Бостон: Издательская компания PWS. стр. 94–143. ISBN 978-053494968-6 .
- ^ Файги, Уриэль (июль 1998 г.). «Порог ln n для аппроксимации покрытия множества» . Журнал АКМ . 45 (4). Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники: 634–652. дои : 10.1145/285055.285059 . ISSN 0004-5411 . S2CID 52827488 .
- ^ Али, Джунаде; Дё, Владимир (2017). «Покрытие и размещение мобильных датчиков для транспортных средств на заранее определенных маршрутах: жадный эвристический подход». Материалы 14-й Международной совместной конференции по электронному бизнесу и телекоммуникациям . Том. 2: ВИНСИС. стр. 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 .
Ссылки
[ редактировать ]- Vazirani, Vijay V. (2001). Approximation Algorithms . Springer-Verlag. ISBN 978-3-540-65367-7 .