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