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

§ 13. Нецелые размеры входа и непрерывные оценочные функции 97

ся следствием формулы Стирлинга (см. § 9). Это дает нам оценку

6(Lv n3 + 1J logLv n3 + 1J) для интересующих нас затрат. После упро­щения получаем в(n3/2 logn). В этом примере затраты однозначно определяются по n, поэтому полученная оценка определяет асимпто­тику сложности рассматриваемого алгоритма при использовании n в качестве размера входа.

Оценку O(L\/n3 + lJ logL\/n3 + lJ) и, тем самым, O(n3/2 logn) мож­но было бы получить не прибегая к формуле Стирлинга, исходя из того, что сумма конечного числа неотрицательных слагаемых не пре­восходит произведения наибольшего слагаемого на число слагаемых суммы. Для в этот прием не работает, как показывает пример суммы

2 2i.

i=i

§ 13. Нецелые размеры входа и непрерывные оценочные функции

Предложение 13.1. Пусть для некоторого алгоритма A можно указать входы v0,v1, ..., размеры которых ограничены сверху и снизу положительными константами cг и c2:

ci^l|vil|^c2, i = 0,l,...,

и в то же время затраты CA(vi) неограниченно возрастают при i -» оо. Тогда не существует такой непрерывной на отрезке [cъ c2] функции f(x) вещественной переменной, что TA(x)^f(x) для всех значений x размера входа, принадлежащих отрезку [cъc2].

Доказательство. Очевидно, что TA(||vi||) ^ CAT{vi), и поэтому по­ следовательность TA(||vi||), i = 0,l, ..., не ограничена. В то же время, любая функция f, непрерывная на [c1,c2], ограничена на этом от­ резке. □

Сформулируем еще одно столь же легко доказываемое утвержде­ние (доказательство опускаем).

Предложение 13.2. Пусть A —некоторый алгоритм, и f(x) — функция вещественной переменной, определенная на некотором ин­тервале I. Пусть TA(x) ^f(x) всякий раз, когда xеI и значение TA(x) определено. Пусть x0 е I и для любых ǫ > О, N > 0 найдется такой вход v алгоритма A, что |x0 - ||v|| \<ǫ и CTA{v) >N. Тогда f(x) раз­рывна в точке x0.

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

Пример 13.1. Вновь рассмотрим алгоритм Евклида, используя те­перь в качестве размера входа (ап, а-.) рациональное число —, кото-рое, как указывалось в примере 9.1, однозначно определяет соответ­ствующее количество делений с остатком (сложность Tl ], соот-

ь aj

ветствующая этому размеру, совпадает с затратами: СЕ{а0,аг)). В си­лу формулы Бине (10.2) имеем

lim Щ^ = Ф,

при этом CE(Fn+1,FJ = n. Поэтому если функция вещественной пе­ременной f{x) такова, что CE(a0,ai) «S/f—1, то, в силу предложе-

ния 13.2, /(х) разрывна в точке ф. Мы воспользовались тем, что для любого е > 0 и любого натурального JV найдется рациональное число

u/v такое, что | ф - - | < е и СЕ{и, v) =г JV. v Можно доказать, что здесь дело не в числе ф—то же самое спра­ведливо для любого х0 > 1. Пусть 0 < s < х0 - 1. Докажем, что в раци­ональных точках е-окрестности VXot£ числа х0 функция ГЕ(г) не явля­ется ограниченной. Предположим противное: пусть г = — е VXot£ —ра­циональное число, на котором достигается максимум. Пусть частные, возникающие в процессе применения алгоритма Евклида к щ, иъ равны qls q2,---,qn:

Щ-1 = Ч1Щ + Щ+ъ i = l,2, ...,п, ип+1 = 0.

Выберем 5 > 0 столь малым, что Vr>5 с VXo>s, и возьмем любое s е Q \ Z

такое, что - - s < 5 (легко заметить, что - = q„sZ). Пусть ип ип

I, т—такие целые, что s = —. Используя g-i,g?, ...,о,,, найдем vn, v-,,

, vn gN+, для которых

v;-i =aivi +vi+i, i = l,2,...,n,

и vnx = 1, vn = т. Индукцией по к легко доказать, что для к = 0,1, , - - 1

< 5. (13.1)

"n-fc

В самом деле, для к = 0 это очевидно; остается показать, что при 0<к<п-1из (13.1) следует

"nk1

< 5. (13.2)

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