1313
правок
Irina (обсуждение | вклад) |
KVN (обсуждение | вклад) |
||
| (не показано 7 промежуточных версий 1 участника) | |||
| Строка 42: | Строка 42: | ||
Вспомним схему назначения стоимости из доказательства теоремы 1. Согласно предыдущему наблюдению, элементу <math>x_i \;</math> назначается стоимость не более OPT/i. Таким образом, общая стоимость элементов <math>x_n, ..., x_i \;</math> не превышает <math>(H_n - H_{i - | Вспомним схему назначения стоимости из доказательства теоремы 1. Согласно предыдущему наблюдению, элементу <math>x_i \;</math> назначается стоимость не более OPT/i. Таким образом, общая стоимость элементов <math>x_n, ..., x_i \;</math> не превышает <math>(H_n - H_{i - 1})OPT \;</math>. В силу предположения о том, что каждый вес <math>w_s \le 1 \;</math>, стоимость каждого из оставшихся элементов не превышает 1 за элемент. Таким образом, совокупная стоимость всех элементов не превышает <math>i - 1 + (H_n - H_{i - 1})OPT \;</math>. Приняв <math>i = 1 + \lceil OPT \rceil</math>, получаем, что совокупная стоимость не превышает <math>\lceil OPT \rceil + (H_n - H_{ \lceil OPT \rceil })OPT \le 1 + OPT(1 + ln(n/OPT))</math>. □ | ||
| Строка 48: | Строка 48: | ||
== Другие результаты == | == Другие результаты == | ||
Было показано, что коэффициент аппроксимации жадного алгоритма составляет ln n | Было показано, что коэффициент аппроксимации жадного алгоритма составляет 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-медиан и задача о размещении объектов. | ||
Жадный алгоритм можно естественным образом обобщить на множество задач. Например, для определенной выше задачи минимизации линейной функции относительно субмодулярных ограничений естественное расширение жадного алгоритма дает решение с | Жадный алгоритм можно естественным образом обобщить на множество задач. Например, для определенной выше задачи минимизации линейной функции относительно субмодулярных ограничений естественное расширение жадного алгоритма дает решение с <math>H_k \;</math>-аппроксимацией, где <math>k = max_{s \in S} f( \{s \}) - f(\empty) \;</math>, в предположении, что f является целочисленной функцией [10]. | ||
Обобщая задачу о покрытии множества, можно потребовать, чтобы каждый элемент x содержался в произвольном числе множеств | Обобщая задачу о покрытии множества, можно потребовать, чтобы каждый элемент x содержался в произвольном числе множеств <math>r_x \;</math>; только в этом случае он будет считаться элементом покрытия. Для этого обобщения существует алгоритм O(log n)-аппроксимации с полиномиальным временем выполнения [8]. | ||
Для специального случая, когда каждый элемент принадлежит не более чем к r множествам, имеется более простой алгоритм r-аппроксимации ([15] § 15.2). Если множества имеют однородные веса ( | Для специального случая, когда каждый элемент принадлежит не более чем к r множествам, имеется более простой алгоритм r-аппроксимации ([15] § 15.2). Если множества имеют однородные веса (<math>w_s = 1 \;</math>), алгоритм сводится к следующему: выбрать любой максимальный набор элементов, никакие два из которых не содержатся в одном множестве; вернуть все множества, содержащие выбранный элемент. | ||
В варианте «Максимальное k-покрытие» требуется, чтобы набор множеств, суммарный вес которых не превышает k, покрывал максимально возможное количество элементов. Для этого варианта существует алгоритм (1 | В варианте «Максимальное k-покрытие» требуется, чтобы набор множеств, суммарный вес которых не превышает k, покрывал максимально возможное количество элементов. Для этого варианта существует алгоритм (1 - 1/e)-аппроксимации ([15], задача 2.18) (см. [7] для варианта множеств с неоднородными весами). | ||
Широкое обсуждение применения жадных методов для аппроксимации задачи комбинаторной оптимизации можно найти в главе 4 работы [5] | Широкое обсуждение применения жадных методов для аппроксимации задачи комбинаторной оптимизации можно найти в главе 4 работы [5]. | ||
Наконец, в свете весьма правдоподобных теоретико-сложностных допущений, коэффициент аппроксимации ln n является практически лучшим для любого алгоритма с полиномиальным временем выполнения [3, 4]. | Наконец, в свете весьма правдоподобных теоретико-сложностных допущений, коэффициент аппроксимации ln n является практически лучшим возможным для любого алгоритма с полиномиальным временем выполнения [3, 4]. | ||
== Применение == | == Применение == | ||
Задача о покрытии множествами и ее обобщения и варианты являются фундаментальными для | Задача о покрытии множествами и ее обобщения и варианты являются фундаментальными для самых разных областей применения. Несколько примеров: | ||
• выбор небольшого количества узлов сети для хранения файла таким образом, чтобы у всех узлов сети поблизости имелась его копия; | • выбор небольшого количества узлов сети для хранения файла таким образом, чтобы у всех узлов сети поблизости имелась его копия; | ||
| Строка 80: | Строка 80: | ||
== См. также == | == См. также == | ||
* [[Локальный поиск для | * [[Локальный поиск для задачи о k-медианах и задачи о размещении объектов]] | ||
== Литература == | == Литература == | ||
| Строка 112: | Строка 112: | ||
15. Vazirani, V.V.: Approximation Algorithms. Springer, Berlin Heidelberg (2001) | 15. Vazirani, V.V.: Approximation Algorithms. Springer, Berlin Heidelberg (2001) | ||
[[Категория: Совместное определение связанных терминов]] | |||