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

§ 10. Качество оценок

85

Для дальнейшего будет полезным следующее свойство чисел Фи­боначчи:

Fn-1Fn+1 = (-1)n, n = 1,2, ... (10.6)

(доказывается индукцией по п). Рассмотрим вложенные отрезки Φ1 э зΦрΦ3э... числовой прямой:

f2„ f2„+1

п = 1,2,

Φn

^2п f2 +1 2n-1 , F 2n

1

Соотношение (10.6) позволяет установить, что ни один из этих

Очевидно, что

F 2n-1 F 2

отрезков не пуст и что длина отрезка Φn равна

Φ1 = [1, 2] (рис. 15). Далее можно доказать, что если рациональное

р2

F4

Р6

ф

F7

F5

T4

Р3 P2

Рис. 15. Расположение чисел

Fn

и интервалов Φn, n=1, 2,

число принадлежит Φп, п > 2, то деление а0 на а1 дает ненулевой

a1

a1

остаток а2, и принадлежит Φп-1. В самом деле, мы имеем

Р2п-1 «1 Р2п

Следовательно, частное от деления а0 на а1 с остатком равно 1, т. е. а2 = а0 - а1. Далее,

а0 - а1 а0

== - 1

а1 а1 ,

поэтому

Р2п-1 «1 Р2п

Но

Р2п Р2п-1

1 Р2п-Р2п-1 Р2п-2

Р2п-1 Р2п-1 ,

86 Глава 3. Оценивание числа шагов (итераций) алгоритма

и, аналогично, 2п+1 - 1 = 2"~г; мы имеем, следовательно, 2"~2 ^ ^

Р2п F 2n Р2п-1 «1

^и

-^^^-1 (107)

F 2n-i^a 2^F 2n-2- U

Получаем

Mte-te=Φ~

£iG Jk. ^ c ^1 ^n-T

a 2 F 2n_!F 2n_2 F 2n_3 F 2n-2

Отрезки Φ23, ... не содержат целых чисел, поэтому из доказанного можно заключить, что если г е Φп n Q, п > 2, то C'E{r) ^ п. Пусть теперь фиксировано аг&П+. Рассмотрим множество

М = \r: r=, an = ai,ai +1, ... к а1 и 1 1

Точки, соответствующие элементам множества М, расположены на правой полуоси, начиная с 1, с шагом ; хотя бы одна из этих точек

непременно принадлежит отрезку Φ„, коль скоро меньше длины

отрезка Φп, т. е. ^ ■= =, или, что то же самое, аг ^ F2n_iF2n. Пусть

JV — самое большое значение п, для которого выполняется это нера­венство (такое JV существует, так как единственной точкой, принад­лежащей бесконечному числу отрезков рассматриваемого семейства, является ф £Q). Тогда F2NF2N+1>a1. Из формулы Бине следует, что

f2nF2N+i = |ф4М(1 - (-ФГ4Ы)(.Ф - С-ФГ4АГ_1),

откуда

W2N+1 < СФ4Ы,

где с — некоторая положительная константа. Таким образом, сф4Ы > > аг и

1

JV > i log^ аг - \о%ф

с.

1

Имеем С'Е(г) ^ N - 1 > ^ log0 ax - log0 с - 1 по крайней мере для од­ного рационального числа геМ, откуда следует соотношение (10.4). Переходя к размеру входа т = Х{аг), мы можем воспользовать­ся теоремой 4.2 из § 4 и получить для сложности Т^{т) по числу

§ 10. Качество оценок

87

делений соотношение T*(m) = в(m). (В силу теоремы 4.2 T*(m) = = n(log2m-1) = n(m) и TE*(m) = O(log2m) = O(m).)

Число шагов расширенного алгоритма Евклида (см. пример 9.1) совпадает с числом шагов обычного алгоритма Евклида. Мы получа­ем следующее:

Если рассматривать aг как размер входа (a0, aг) расширенного алгоритма Евклида, то для мультипликативной сложности TЕЕ(.aг) этого алгоритма выполнено T^fa^ =Q(loga1). При рассмотрении m = А(aх) в качестве размера входа a0, aг расширенного алгоритма Евклида имеем для мультипликативной сложности оценку T*Е{m) = = в(m). Все это сохраняет силу и для сложности T*{m) «обычного» алгоритма Евклида.

Запись алгоритма Евклида в форме (9.1) далека от записи в виде «приличной» компьютерной программы не только в смысле исполь­зованной символики, но, главное, в смысле предписываемого расто­чительного расхода памяти (использован массив, и при буквальном следовании алгоритму (9.1) мы бы имели SЕ(,aг) = QfJogaJ). С точ­ки зрения программирования более приемлемой будет, например, запись

a:=a0; b:=a1; while b>0 do

d:=rem{a,b); a:=b; b:=d od

(rem—знак операции нахождения остатка). После выполнения алго­ритма имеем a = нод(a0, aг). Использовано только три дополнитель­ных переменных (a,b и d), и мы получаем SE(a1) = 3.

Оценку (10.4) можно усилить, показав, что найдется константа у' такая, что

TE(a1)>|log(#,a1+r/ (10.8)

(см. задачу 54). Часто в литературе оценки снизу для сложности в худ­шем случае алгоритма Евклида по числу делений выводят из оценки, полученной в 1970 г. Г. Хейлбронном для сложности в среднем:

TE(a1) = ^j^lna1+O(l). (10.9)

Последняя оценка обосновывается весьма непросто. Из (10.9) выво­дится, что

TE(a1)>i^lna1+r//

88 Глава 3. Оценивание числа шагов (итераций) алгоритма

для некоторой константы f. Однако при больших аг оценка (10.8) для ТЕ{аг) является более строгой (ИЩ1 \пф = 0,40554... < |) и вдо­бавок выводится элементарно г.

Может быть доказано (см. задачу 52), что ТЕ{аг) <\о%ф аг + с, где с —некоторая константа (заметим, что log0 2 = 1,44... < 2) 2.

Рассуждения, сходные с приведенными при доказательстве нера­венства (10.4), показывают, что для каждого а0 можно подобрать аъ а0 ^ аъ так, что будет выполняться

CE(a0,a1)>|log(^a0 + /3, (10.10)

где /3 — некоторая константа. В данном случае можно рассмотреть вложенные отрезки Фх э Ф2 D фз D •••:

Ф„=[^2-,%-1], п = 1,2,

(при п> 1 отрезок Ф„ не содержит чисел вида —, meN+); если an не делится нацело на ах и — g Фп, то — е Фп_х и т.д. Мы воспользуемся этим в § 21.

Пример 10.2. Сортировка массива длины п бинарными вставка­ми выполняется за п — 1 шаг, причем на Z-м шаге число сравнений не превосходит [log2(Z + 1)] и, следовательно, не превосходит [log2 п\ на любом из шагов, —это приводит к оценке (9.14). Возникает вопрос, не сможем ли мы получить существенно лучшей оценки сверху, рас-

п-1

смотрев сумму X! riog2CZ + 1)1, которая совпадает со значением Тв{п),

т. е. сложности по числу сравнений (такое число сравнений достига­ется, например, в случае, когда изначально массив имеет обратную упорядоченность: хг > х2 > ... > хп). Замена переменной суммирова­ния дает

п

rB(n)=^riog2Z<l. (10.11)

fc=i

1 Приведенный выше и дополненный в указании к задаче 54 элементарный вывод оценки (10.8) принадлежит М. Оналбекову; в [19, разд. 4.5.3, упр. 38] со ссылкой на статью Я.Микусинского (1954 г.) приведена оценка, фактически совпадающая с (10.8), но ее вывод опирается на теорию цепных дробей и не столь элементарен и нагляден.

2 Предположение о том, что TE(aj) ~logj, аь насколько известно автору, не доказано и не опровергнуто (2008 г.).

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