Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
abramov_s_a_lekcii_o_slozhnosti_algoritmov.doc
Скачиваний:
136
Добавлен:
11.05.2015
Размер:
2.74 Mб
Скачать

§26. Асимптотические оценки решений рекуррентных неравенств 169

§ 26. Асимптотические оценки решений рекуррентных неравенств

Рассмотренный метод оценивания решений рекуррентных нера­венств (25.2), (25.14) приводит к достаточно точным оценкам, но требует многоэтапной работы. Часто бывает достаточно получить описание роста решения в виде простой асимптотической оценки. В § 24 мы получили оценку (24.7), указав при этом, что для ее вывода не нужно определять численные значения коэффициентов, входящих в соответствующее частное решение ассоциированного рекуррент­ного уравнения. Этот путь приводит к ряду общих теорем. Для них в разных литературных источниках используются синонимичные на­звания «теорема о рекуррентном неравенстве», «основная теорема о рекуррентных оценках» и т. д.г Мы приведем две теоремы такого рода.

Теорема 26.1 (о рекуррентном неравенстве, случай ^). Пусть неотрицательная вещественная функция f натурального аргумента удовлетворяет неравенству

(и, если п = 1,

где и, v, w, d неотрицательные вещественные числа, причем v + w ^ ^ 1; с положительное вещественное число. Тогда

fo(ndlogn), если d = log2(v+w), f(n)=\o{nd), если d>log2(v+w), (26.2)

^О(п1о&(,,+и0), если d<log2(v+w).

Доказательство. Решение ассоциированного уравнения

t{k) =

u, еслиk=0,

(v + w)t(k - 1) + c(2d)k, если k > 0,

имеет вид

t(fc)=co(v+w)4(c1fc+c2)(2d)fc = c0(2lo&^+^)4(c1fc + c2)(2d)fc (26.3)

с некоторыми конкретными с0, сг, с2, причем сг Ф 0, если и только ес­ли 2d = v +w, или, что то же самое, если d = log2(v + w). Рассмотрим раздельно три случая.

1 В литературе на английском языке — «master theorem» (мастер-теорема).

170 Глава 6. Рекуррентные соотношения и сложность алгоритмов

Случай d = log2(v + w). Имеем t(k) = {cгk + (c0 + c2))(2d)k. Для до­статочно больших значений k выполняется

t{k)<Ck{2d)k = Ck{2k)d,

где C—некоторое положительное число. Используя предложение 25.1, заключаем, что

f(n)<CГю§2n1(2^2nУ.

Это даетf(n) = O(nd log n).

Случай d>log2(v + w). Имеем t(k) = c0(v + w)k + c2(2d)k. Для до­статочно больших значений k будем иметь

t{k)<C{2d)k = C{2k)d,

где C — некоторое положительное число. Аналогично предыдущему случаю с помощью предложения 25.1 получаем f{n) = O{nd).

Случай d<log2(v+w). Вновь имеем t{k) = c0(v +w)k + c2(2d)k, но теперь для достаточно больших значений k будем иметь

t(k) < C(v + w)k = C(2log2(v+w))k = C(2k)log2(v+w),

где C — некоторое положительное число. С помощью предложения 25.1 приходим к оценке f(n) = O(n1о&v w). □

Похожая теорема может быть доказана и для случая неравенства со знаком ^ вместо знака ^.

Теорема 26.2 (о рекуррентном неравенстве, случай ^). Пусть вещественная функция f(n) натурального аргумента удовлетворяет неравенству

f(l§J) +wf\i])+cnd' еслиn>1>

(u, если n = 1,

где u, v, w, d неотрицательные вещественные числа, причем v + w ^ ^ 1; c положительное вещественное число. Тогда

(n(ndlogn), если d = log2(v + w), f(n) = | n(nl0&(v+w)), если d > log2(v + w), (26.4)

[n(nd), если d<log2(v + w).

Доказательство отличается от доказательства теоремы 26.1 лишь тем, что в случаях d^log2(v + w) вместо выбора в (26.3) слагаемого, содержащего степень двойки с большим показателем, мы выбираем

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]