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

§ 25. Об одном классе нелинейных рекуррентных соотношений 165

Имеем

F(n)=vF2 +wf2 +<p(ri)2

>vFlL21 +wFIL-2~ +4>(n-1)=F(n-1).

Неравенство (25.6) доказано.

Аналогичным образом по индукции докажем, что

f(n)^F(n) (25.7)

для п=г 1. Очевидно, /(1) ^u = F(1). Пусть п> 1 и неравенство (25.7) выполнено для 1, 2, ...,п- 1; докажем, что тогда оно верно и для п. В силу (25.2) мы имеем при п > 1

и так как при п > 1 выполняются неравенства 2kn-1 и 2 ^ ^ п - 1, то по предположению индукции

V^Q2J) +М^(Т21) +(/>(")^vi7Q2J) +wF([2l) + ¥>("). (25.9)

2

Правая часть последнего неравенства есть F(n). Это доказывает (25.7).

Свойства (25.6), (25.7) дают нам

/(n) ^ F (n) ^ F (2гlog2 nl) (25.10)

для п^1. Исследуем функцию t(fc) = F(2fc), fc = 0,1, ... В силу (25.5)

F(2fc) =

и, если к = 0,

(v + w)F(2fc-1) + ^(2fc), если)с>0,

и, следовательно, t(fc) удовлетворяет линейному рекуррентному урав­ нению (25.4). Отсюда и из (25.10) следует требуемое. □

Определение 25.1. Рекуррентное уравнение (25.4), включающее в себя начальное условие £(0) = и, мы назовем уравнением, ассоцииро­ванным с рекуррентным неравенством (25.2).

Если u,v,Lp(n) удовлетворяют условиям, сформулированным в предложении 25.1, то решение ассоциированного уравнения — неот­рицательная функция (см. задачу 125).

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

Продолжение примера 25.1. Уравнением, ассоциированным с (25.1), будет

t k = 1°' k еслиk = 0' (25.11)

2t(k-l)+2-l, еслиk>0.

Отвлекаясь временно от начального значения t(0) = 0, мы замечаем, что правая часть в

t{k)-2t{k-l) = 2k-l (25.12)

является суммой квазиполиномов 2k и —1; первый из них, т.е. 2k, интересен тем, что 2 является корнем характеристического уравне­ния А - 2 = 0, и поэтому рекуррентное уравнение t(k) - 2t{k - 1) = 2k имеет частное решение вида p{k)2k, где p(k)— полином первой сте­пени. Подстановка (p1k + p0)2k в рекуррентное уравнение дает

{pгk + p0)2k - (piCk - 1) + p0)2k = 2k,

откуда получаем, что p1 = 1, p0—любое. Итак, k2k является част­ным решением рекуррентного уравнения с правой частью 2k. Слагае­мое -1 правой части исходного уравнения можно переписать в виде (-1) • 1k, единица не является корнем характеристического уравне­ния, поэтому рекуррентное уравнение t(k) - 2t{k) = -1 имеет в каче­стве частного решения некоторую константу, значение которой опре­деляется без труда — это 1.

Таким образом, любое решение рекуррентного уравнения (25.12) может быть записано в виде

c2k+k2k + 1

с некоторым конкретным c. Из условия t(0) = 0 находим c = —1 и

t(k) = k2k-2k + l. (25.13)

По предложению 25.1

TMS(n) *S [log, n!2П°&n1 - 2^n1 + 1 = = ([log2nl-l)2rlo&nl + l^ ^log2n-2lo^n+1 + l = = 2n log2 n + 1.

Мы еще раз прервем рассмотрение примера 25.1 и сформулируем следующее предложение.

§ 25. Об одном классе нелинейных рекуррентных соотношений 167

Предложение 25.2. Пусть вещественная функция f натурального аргумента удовлетворяет неравенству

и, еслип = 1,

Q§J) +м//([§1) +У(п), еслип>1,

где u,v,w неотрицательные вещественные числа, причем v +w ^ 1, а функция у —неотрицательная неубывающая. Тогда

/(n)^t(Llog2nJ), (25.15)

где t—решение рекуррентного уравнения (25.4).

Доказательство получается заменой знака ^ на ^ в (25.7), (25.8) и (25.9), а также переходом от (25.10) к

/(n)^F(n)^F(2Ll0&"J).

Сохраняя введенную терминологию, рекуррентное уравнение (25.4) будем называть ассоциированным с рекуррентным неравен­ством (25.14).

Если же возникает соотношение со знаком = вместо ^ или ^, то мы можем рассматривать его как систему двух рекуррентных нера­венств (25.2), (25.14). Тогда получим оценки

taiog2n|)sS/(n)sSt(riog2nl).

Завершим рассмотрение примера 25.1. Можно доказать (см. зада­чу 133), что для сложности по числу сравнений рекурсивной сорти­ровки слияниями выполнено

0, еслип = 1,

Гш§ +Гш§ +п-1' еслип>1>

и прийти к справедливым для всех п оценкам

(Llog2 п\ - l)2Ll0&nJ + 1 s= Тш{п) s= aiog2 п] - l)2rl0&nl + 1. (25.17)

Для исследования сложности Тш (п) рекурсивной сортировки сли­яниями по числу перемещений рассмотрим рекуррентное уравнение

„0, если п = 1,

( \j ) + ?MS ( 5 ) + п> если п>1

rMS(n)=~ лп сГтЦЛ (25.18)

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

(при слиянии массивов, содержащих соответственно ^ и ^ эле­ментов, требуется ровно п перемещений элементов). Решением ассо­циированного уравнения

«в=

О, если/с = 0,

2t{k-l) + 2k, если)с>0,

является k2k, что дает нам

Llog2 nj2^"J ^ fMS(n) ^ [log2 п^Ч (25.19)

Пространственная сложность этой сортировки есть П(п), ибо слия­ние упорядоченных массивов выполняется с получением результата на новом месте. (Дополнительно к этому будет использоваться стек отложенных заданий.) Рассмотрение примера 25.1 закончено.

Интересно посмотреть на результаты применения разобранного метода на каком-нибудь примере, для которого мы знаем точное зна­чение сложности алгоритма, — сколь далеки будут получаемые оцен­ки от известного точного значения?

Пример 25.2. Вернемся к бинарному алгоритму вычисления а" (пример 4.2), который можно легко описать рекурсивно. Для его сложности по числу умножений имеем

(О, если п = 1,

Г\п\Л (25.20)

TRSI - I + 2, если п > 1,

и

(0, еслип = 1,

Гцк(п)И Г\п\Л (25.21)

7rs(L§JJ+1, еслип>1.

о, t(fc-

D + 2,

если если

fc = 0,

fc>l,

о, t(fc-l) + l,

если если

fc = 0,

fc>l,

и

Соответствующими ассоциированными уравнениями будут t(fc) =

t(fc) =

их решения суть 2fc и fc. Отсюда

Llog2 nJ s= TRS (n) s= 2 riog2 n]. (25.22)

Эти оценки не сильно расходятся с точной формулой TRS(n) = A(n) + + А*(п)-2.

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