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

Рассмотренный метод оценивания решений рекуррентных нера­венств (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) слагаемого, содержащего степень двойки с большим показателем, мы выбираем


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

то слагаемое, которое содержит степень двойки с меньшим показа­телем. Вместо предложения 25.1 пользуемся предложением 25.2. □

Справедливость следующего предложения проверяется непосред­ственно.

Предложение 26.1.Если в условиях теорем 26.1 и 26.2 предполо­жить, что с = 0, то получим соответственно /(п) = 0(пlo&O+w)) и /(n) = n(nl0&(v+w)).

Пример 26.1.Вновь рассмотрим сложности рекурсивной сорти­ровки слияниями и бинарного возведения в степень. Уравнение (25.18) представим как систему двух неравенств со знаками соот­ветственно ^ и ^. Применяя к ним теоремы 26.1_и 26.2 (y + w = 2, log2(v+w)=d = l), из первой теоремы получаем Тш(.п) = О(n log п), из второй — Тш(п) = П(п log п). В итоге имеем TMS(n) = 6(n logn). Аналогичным образом представим в виде системы двух неравенств уравнение (25.16). Заменим в правой части п - 1 на п в случае ^ и на у в случае ^. Очевидно, что полученные неравенства являются след­ствиями исходных. С помощью теорем 26.1 и 26.2 (вновь v + w = 2, log2(v+w) = d = l) получаем TMS(n) = 0(n logn) и TMS(n) = fi(nlogn). В итоге имеем TMS(n) = 6(n logn).

Сложность рекурсивной сортировки слияниями как по числу срав­нений, так и по числу перемещений элементов массива допускает оценку 6(n log п).

Применяя теоремы 26.1 и 26.2 к (25.20), (25.21) (теперь v + w = l, log2(v+w) = d = 0), получим TRS(n) = О (log п) и TRS(n) = n(logn). В итоге получаем TRS (п) = в (log п).

Асимптотические оценки TMS(n) = G(nlogn), TMS(n) = G(nlogn), rRS(n) = 6(logn) можно было бы получить и из выведенных ранее неравенств (25.19), (25.17), (25.22). Этот пример демонстрирует лишь то, что теоремы о рекуррентных неравенствах позволяют быстро по­лучать асимптотические оценки непосредственно из первоначальных рекуррентных неравенств.

Пример 26.2.Известен алгоритм построения выпуклой оболоч­ки объединения двух выпуклых многоугольников, имеющих соответ­ственно пг и п2 вершин, со сложностью 0{пг + п2) по общему числу операций, пг + п2 рассматривается как размер входа этого алгоритма (см. задачу 62). Стратегия «разделяй и властвуй» позволяет, исходя из этого, описать алгоритм построения выпуклой оболочки данного


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

множества n точек, сложность которого по общему числу операций при выборе n в качестве размера входа определяется соотношением

0, еслиn=1,

T(n)=

Tl+Tl +0^при"^°°-

От этого соотношения мы переходим к неравенству

(О, если п = 1,

'( ^ ] + т(\ ^ ] + сп, если п > 1,

где с—некоторое неизвестное нам положительное число,—мы поль­зуемся здесь тем, что если g{n) = 0(,h(n)) и fr(n) > О при п > 1, то g{n) s= ch{n) для некоторой константы с и всех п > 1.

Применяем теорему 26.1 (v + w = 2, log2(v + w) = 1, d = 1). Это да­ет T{n) = 0{n logп). Мы имеем, таким образом, еще один алгоритм построения выпуклой оболочки п заданных точек, по общему числу операций имеющий сложность O(nlogn).

Теоремы о рекуррентных неравенствах в некоторых книгах фор­мулируется иначе (см. задачу 144). Иногда1 в условии этой теоремы предполагается, что исследуемая сложность является неубывающей функцией от п. Перед тем как применять теорему в таком ее виде к сложности конкретного алгоритма, необходимо доказывать неубы­вание этой сложности. Неубывание не является самоочевидным фак­том для алгоритмов, построенных по стратегии «разделяй и власт­вуй». Например, для бинарного алгоритма вычисления а" это не так: TRS(7) = 4, TRS(8) = 3. В теоремах 26.1 и 26.2 неубывание не предпола­гается.

Еще одно замечание. В § 9 мы получали формулы и оценки для сложностей алгоритма бинарного поиска места элемента, сортиров­ки фон Неймана и т. д. путем сравнения возникающих величин с по­следовательностью 2',Z = 0,1, ...; этот прием во многом аналогичен использованию соотношений вида (25.2), (25.14), но в том лишь част­ном случае, когда одно из чисел v,w равно нулю.