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

§ 4. Длина числа как возможный размер входа

33

и при т ^ 4 имеем

В то же время, в силу (4.1) очевидно, что для всех т

r;w<2m'2-i<2ffl'2.

Отсюда следует требуемое.

Исследуем общий вопрос о возможности перехода от оценок Т*(т) к оценкам ТА{п) и наоборот для какого-либо алгоритма А, считая, что эти две сложности соответствуют одному и тому же способу учета затрат, но разным размерам входа —1| • || и || • ||*, принимаю­щим значения в N+, причем если ||х|| = п для некоторого входа х, то ||х||* = m = A(n) = Llog2 п\ + 1. В таком случае, очевидно, выполнено

TUm)= max ТЛп). (4.2)

Л 2'»-1sCn<2'»

Ясно, что ТА(п) несет более полную информацию о рассматривае­мом алгоритме А, чем Т*(т): значения T*(m), т = 1, 2, ..., образуют подпоследовательность последовательности ТА{п), п = 1, 2, ... Поэто­му естественно, что переход от оценок для ТА{т) к оценкам для ТА{п) приводит к более грубому результату, чем тот, который может быть получен при изначальном рассмотрении размера ||х|| = п. Особенно это касается нижних оценок (пример 4.1 прямо указывает на это).

Лемма 4.1. Пусть f(х) —неубывающая функция вещественной пе­ременной. Тогда если T^W^fW, то ТА{п) sS/(tog2 п + 1).

Доказательство. Пусть тип фиксированы, 2т-г ^ п < 2т, и пусть значение п таково, что

2т-г s= h < 2т, (4.3)

и при этом

ГА(п) = ГА*(т). (4.4)

Используем неубывание /(х):

ТА{п) s= ТА{п) = Т*(т) s=/(т) =/(Llog2 п\ + 1) s= /(log2 п + 1). П

Лемма 4.2. Пусть g{x) неубывающая функция вещественной пе­ременной. Тогда

(i) если TA{n)^g{n), то T*A{m)^g{2m), (ii) если TA{n)^g{n), то Т*А{т) ^g{2m-x).

34 Глава 1. Сложности алгоритмов как функции числовых аргументов

Доказательство. Пусть т фиксировано, 2-1 s= п < 2т, и пусть зна­чение h таково, что выполнены (4.3) и (4.4). Используем неубывание

(i) T*A{m) = TA{h)^g{h)^g{2m),

(ii) T*A{m) = TAm 2g(fO 2g{2m-x). U

Утверждения следующих двух теорем непосредственно следуют из доказанных лемм. (При рассмотрении асимптотической оценки, содержащей некоторую переменную, подразумевается, что значение этой переменной стремится к бесконечности.)

Теорема 4.1. Пусть f(х) неубывающая функция вещественной переменной. Тогда если rj(m) = 0(/(m)), то ТА{п) = 0(/(log2 п + 1)); как следствие, при /(х+1) = 0(/(х)) имеем ТА{п) = 0(/(log2 п)).

Теорема 4.2. Пусть g{x) неубывающая функция вещественной переменной. Тогда

(i) если TA{n) = 0{g{n)), то T*(m) = 0(g(2m)),

(ii) если rA(n) = fi(g(n)), то Т*(т) = ВД2'"-1)); как следствие,

при g(|) =fi(gW) имеем Т*(т) = ОД2т)).

Существуют функции, для которых условие /(х + 1) = 0(/(х)) или g(§) =n(?W) не выполнено —например, /(х) = 2*2, g(x) = 2\

Для рассмотренных в примере 4.1 сложностей TTD(n), TT*D(m) си­туация выглядит следующим образом. Функция /(х) = 2х/2 явля­ется возрастающей, и по теореме 4.1 из T*D(m) = 0{2т12) следует Гтп(п) = 0(2(1°82"+1)/2) = 0(Л/7Т). Рассматривая возрастающую функ­цию g{x) = 4~х, мы можем, применив теорему 4.2(i), вывести из TTD(n) = O(vTT) оценку TT*D(m) = 0(V2^) = 0(2m/2).

Получить из оценки TT*D(m) = П(2т/2) оценку TTD(n) = П(л/н) мы не можем, так как последняя оценка не верна; это не противоречит доказанным утверждениям.

Пример 4.2. Идея бинарного алгоритма возведения а в целую неотрицательную степень п, называемого также алгоритмом повтор­ного возведения в квадрат (мы будем обозначать его буквами RS, от английского названия алгоритма repeated squaring — повторное воз­ведение в квадрат), состоит в том, что если двоичная запись п есть 13к...13г130, то вычисление ап может быть сведено к вычислению после­довательности значений ^=а(2', i = 0,l,...,k (каждый следующий элемент последовательности получаем возведением в квадрат преды-

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