Аноним

Жадные алгоритмы покрытия множества: различия между версиями

Материал из WEGA
 
(не показано 5 промежуточных версий 1 участника)
Строка 48: Строка 48:


== Другие результаты ==
== Другие результаты ==
Было показано, что коэффициент аппроксимации жадного алгоритма составляет ln n - ln ln n + O(1) [12]. Для специального случая систем множеств, дополнения которых имеют конечную [https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%92%D0%B0%D0%BF%D0%BD%D0%B8%D0%BA%D0%B0_%E2%80%94_%D0%A7%D0%B5%D1%80%D0%B2%D0%BE%D0%BD%D0%B5%D0%BD%D0%BA%D0%B8%D1%81%D0%B0 размерность Вапника - Червоненкиса] (VC-размерность), другие алгоритмы демонстрируют заметно лучший коэффициент аппроксимации [1]. Известны алгоритмы аппроксимации с постоянным коэффициентом для тесно связанных с ними геометрических вариантов таких задач, как метод k-медиан и задача о размещении объектов.
Было показано, что коэффициент аппроксимации жадного алгоритма составляет ln n - ln ln n + O(1) [12]. Для специального случая систем множеств, дополнения которых имеют конечную [https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%92%D0%B0%D0%BF%D0%BD%D0%B8%D0%BA%D0%B0_%E2%80%94_%D0%A7%D0%B5%D1%80%D0%B2%D0%BE%D0%BD%D0%B5%D0%BD%D0%BA%D0%B8%D1%81%D0%B0 размерность Вапника - Червоненкиса] (VC-размерность), другие алгоритмы демонстрируют заметно лучший коэффициент аппроксимации [1]. Известны аппроксимационные алгоритмы с постоянным коэффициентом для геометрических вариантов таких родственных задач, как метод k-медиан и задача о размещении объектов.




Жадный алгоритм можно естественным образом обобщить на множество задач. Например, для определенной выше задачи минимизации линейной функции относительно субмодулярных ограничений естественное расширение жадного алгоритма дает решение с Hk-аппроксимацией, где k = maxs2Sf(fsg) f(;), в предположении, что f является целочисленной функцией[10].
Жадный алгоритм можно естественным образом обобщить на множество задач. Например, для определенной выше задачи минимизации линейной функции относительно субмодулярных ограничений естественное расширение жадного алгоритма дает решение с <math>H_k \;</math>-аппроксимацией, где <math>k = max_{s \in S} f( \{s \}) - f(\empty) \;</math>, в предположении, что f является целочисленной функцией [10].




Обобщая задачу о покрытии множества, можно потребовать, чтобы каждый элемент x содержался в произвольном числе множеств rx; только в этом случае он будет считаться элементом покрытия. Для этого обобщения существует алгоритм O(log n)-аппроксимации с полиномиальным временем выполнения [8].
Обобщая задачу о покрытии множества, можно потребовать, чтобы каждый элемент x содержался в произвольном числе множеств <math>r_x \;</math>; только в этом случае он будет считаться элементом покрытия. Для этого обобщения существует алгоритм O(log n)-аппроксимации с полиномиальным временем выполнения [8].




Для специального случая, когда каждый элемент принадлежит не более чем к r множествам, имеется более простой алгоритм r-аппроксимации ([15] § 15.2). Если множества имеют однородные веса (ws = 1), алгоритм сводится к следующему: выбрать любой максимальный набор элементов, никакие два из которых не содержатся в одном множестве; вернуть все множества, содержащие выбранный элемент.
Для специального случая, когда каждый элемент принадлежит не более чем к r множествам, имеется более простой алгоритм r-аппроксимации ([15] § 15.2). Если множества имеют однородные веса (<math>w_s = 1 \;</math>), алгоритм сводится к следующему: выбрать любой максимальный набор элементов, никакие два из которых не содержатся в одном множестве; вернуть все множества, содержащие выбранный элемент.




В варианте «Максимальное k-покрытие» требуется, чтобы набор множеств, суммарный вес которых не превышает k, покрывал максимально возможное количество элементов. Для этого варианта существует алгоритм (1 1/e)-аппроксимации ([15], задача 2.18) (см. [7] для варианта множеств с неоднородными весами).
В варианте «Максимальное k-покрытие» требуется, чтобы набор множеств, суммарный вес которых не превышает k, покрывал максимально возможное количество элементов. Для этого варианта существует алгоритм (1 - 1/e)-аппроксимации ([15], задача 2.18) (см. [7] для варианта множеств с неоднородными весами).




Широкое обсуждение применения жадных методов для аппроксимации задачи комбинаторной оптимизации можно найти в главе 4 работы [5]).
Широкое обсуждение применения жадных методов для аппроксимации задачи комбинаторной оптимизации можно найти в главе 4 работы [5].




Наконец, в свете весьма правдоподобных теоретико-сложностных допущений, коэффициент аппроксимации ln n является практически лучшим для любого алгоритма с полиномиальным временем выполнения [3, 4].
Наконец, в свете весьма правдоподобных теоретико-сложностных допущений, коэффициент аппроксимации ln n является практически лучшим возможным для любого алгоритма с полиномиальным временем выполнения [3, 4].


== Применение ==
== Применение ==
Задача о покрытии множествами и ее обобщения и варианты являются фундаментальными для множества областей применения. Несколько примеров:
Задача о покрытии множествами и ее обобщения и варианты являются фундаментальными для самых разных областей применения. Несколько примеров:


• выбор небольшого количества узлов сети для хранения файла таким образом, чтобы у всех узлов сети поблизости имелась его копия;
• выбор небольшого количества узлов сети для хранения файла таким образом, чтобы у всех узлов сети поблизости имелась его копия;
Строка 80: Строка 80:


== См. также ==
== См. также ==
* [[Локальный поиск для метода k-медиан и задачи о размещении объектов]]
* [[Локальный поиск для задачи о k-медианах и задачи о размещении объектов]]


== Литература ==
== Литература ==
Строка 112: Строка 112:


15. Vazirani, V.V.: Approximation Algorithms. Springer, Berlin Heidelberg (2001)
15. Vazirani, V.V.: Approximation Algorithms. Springer, Berlin Heidelberg (2001)
[[Категория: Совместное определение связанных терминов]]