Пример ввода в заданную задачу о покрытии, которая не обеспечивает 2-приближение - PullRequest
0 голосов
/ 08 мая 2019

Мне нужна помощь по следующему вопросу:

Показать пример входных данных для заданной задачи покрытия, для которой жадный алгоритм, показанный в классе , не обеспечивает 2-приближение.

Жадный алгоритм:

X - конечный набор

F - семейство подмножеств X такое, что объединение дает X

C - желаемый набор минимального размера, охватывающий X.

ctur

1 Ответ

1 голос
/ 08 мая 2019

На странице википедии приведен пример аппроксимации 3/2, в котором представлен жадный алгоритм для задачи с заданным покрытием.
Мы можем видеть две группы множеств, составляющих F. 2 комплекта («линии»), образующие разбиение, каждый из которых имеет половину «точек». И 3 других набора («прямоугольники»), образующих другой раздел, с соотв. 2, 4 и 8 баллов.
Жадный алгоритм будет выбирать «прямоугольники», поскольку он начинается с наибольшего набора F.
Эту схему можно адаптировать для «худшего» приближения, чтобы «обмануть» жадный алгоритм.
Рецепт: нарисуйте ту же фигуру, но с сеткой 31 x 2 вместо 7 x 2. Сохраните две линии с половиной точек в каждой (по-прежнему образуя разделение) и добавьте два «прямоугольника» (два самых больших, они будет иметь соответственно 16 и 32 «точки») на правой стороне. Жадный алгоритм вернет 5 «прямоугольников», в то время как оптимальное решение будет состоять из двух линий, поэтому приближение составляет 5/2 > 2.

Обратите внимание, что этот процесс можно расширять бесконечно (с сеткой (2^n)-1 per 2), поэтому вы можете доказать, что жадный алгоритм для покрытия набора не является k -приближением для любого числа k.

...