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

Глава 2

Сложность в среднем

§ 5. Понятие сложности в среднем

До сих пор мы исследовали сложность в худшем случае, теперь обра­тимся к сложности в среднем. Мы ограничимся ситуацией, когда при каждом фиксированном значении s размера входа сами соответству­ющие входы образуют конечное множество Xs = {x: ||x||=s}. Будем предполагать, что каждому xeXs приписана некоторая вероятность P s ( x):

О ^ P s ( x) О,

и при этом

Таким образом, при каждом допустимом значении s размера входа множество Xs превращается в вероятностное пространство; по умол­чанию считается, что вероятность распределена равномерно:

Ps(x) = J-, (5.1)

где Ns—количество элементов множества Xs. Функции от s

^ CTA(x)P s ( x) и ^ CAS(x)P s ( x) (5.2)

называются временной и, соответственно, пространственной сложно­стью в среднем алгоритма A. Более подробно:

Определение 5.1. Пусть при любом допустимом значении s мно­жество Xs всех входов размера s является вероятностным простран­ством, в силу чего временные и пространственные затраты алгорит­ма A для входов x (т. е. CTА(x) и CSA(x)) размера s являются случайны­ми величинами на Xs. Сложностью в среднем называется математиче­ское ожидание (первая или вторая сумма из (5.2)) соответствующей случайной величины.

§ 5. Понятие сложности в среднем

43

Сложность в среднем может принимать и нецелые значения, даже если функция затрат целочисленна.

Для временной и пространственной сложностив среднем алгорит­ма A мы будем использовать обозначения T A(0, SA{-).

Теорема 5.1. Для любого алгоритма A при любом распределении вероятностей на множестве Xs, где s некоторое допустимое зна­чение размера \\ ■ \\, сложность в среднем не превосходит сложности в худшем случае:

TA(s)sSTA(s), SA(s)^SA(s).

Доказательство. Докажем, например, первое неравенство:

TA(s) = У CTJx)PJx) s= V (maxCAT(x))Ps(x) = xeXs

x<eXs x<eXs

= ^ TA(s)Ps(x) = TA(s) J] Ps(x) = TA(s).

xeXs x^Xs

Второе неравенство доказывается аналогично.

Ниже в этом параграфе мы рассмотрим временную сложность в среднем ряда алгоритмов.

Пример 5.1. Как было уже установлено (пример 4.2), бинарный алгоритм возведения в степень n требует А(n)+А*(n)-2 умноже­ний; если в качестве размера взять m = A(n), то сложность в худшем случае будет равна 2m - 2. Подсчитаем сложность в среднем, привле­кая m как размер входа. Всего имеется 2m -1 неотрицательных целых битовой длины m; если считать все эти числа равновероятными, то искомая сложность есть

2m-l 2m-l

m - Yt (A(n) + A*(n)-2) = m-2+m -r ^ A*(n).

n=2m-1 n=2m-1

Первая цифра каждого из чисел битовой длины m равна 1; коли­чество чисел, имеющих кроме старшей цифры еще k, 0^k^m-1,

ненулевых двоичных цифр, равно fm ) (т. е. числу сочетаний из

m - 1 по k). Поэтому искомую сложность можно переписать в виде

k=i '- Л

то при 1 ^ k ^ m - 1 выпол

k(m-1) = (m-i)(m--12),

Легко проверяется, что при 1 ^ k ^ m - 1 выполнено

k-1

44

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