2.1. Алгоритмы с оценками точности 73
Тогда при k
1
= k
0
+ 1 выполнено X
k
1
< 1, что означает,
что все элементы покрыты. При этом k
1
/M ≤ 1 + ln m, значит,
размер покрытия, построенного жадным алгоритмом, превос-
ходит минимальное не более чем в 1 + ln m раз.
Упражнение 2.1.1. Докажите неравенство (2.1).
Упражнение 2.1.2. Постройте пример, где оценка O(1+ln m)
мультипликативной ошибки жадного алгоритма достигается по
порядку. Указание: достаточно рассмотреть случай, когда раз-
мер минимального покрытия M = 2.
Упражнение 2.1.3. Постройте пример, где оценка 1 + ln m
достигается асимптотически.
Встречаются и другие оценки точности жадного алгорит-
ма. Доказано, например (см. [Joh73]), что мультипликативная
ошибка жадного алгоритма не превосходит
1 +
1
2
+
1
3
+ . . . +
1
m
.
Асимптотически это выражение как раз равно ln m. Более
точная оценка получена в [Sla96], где доказано, что муль-
типликативная ошибка жадного алгоритма не превосходит
ln m − ln ln m + O(1).
Возникает законный вопрос: а насколько хороши получен-
ные оценки? Достижимость оценки означает лишь, что мы до-
статочно точно оценили ошибку жадного алгоритма. Однако
вполне возможно существование других полиномиальных ал-
горитмов с лучшими оценками. Вопрос этот на самом деле яв-
ляется непростым, и только относительно недавно на него уда-
лось дать удовлетворительный ответ [Fei98].
Оказалось, что при разумных теоретико-сложностных
предположениях, а именно N P 6⊂ DT IME(n
O(log log n)
)
2
, ни-
какой полиномиальный алгоритм для задачи о покрытии не
2
См. определения 6.2.4 на стр. 227 и 6.1.7 на стр. 218.