Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » С.А. Абрамов - Вычислительная сложность алгоритмов

С.А. Абрамов - Вычислительная сложность алгоритмов, страница 2

PDF-файл С.А. Абрамов - Вычислительная сложность алгоритмов, страница 2 Вычислительная сложность алгоритмов (38770): Лекции - 5 семестрС.А. Абрамов - Вычислительная сложность алгоритмов: Вычислительная сложность алгоритмов - PDF, страница 2 (38770) - СтудИзба2019-05-10СтудИзба

Описание файла

PDF-файл из архива "С.А. Абрамов - Вычислительная сложность алгоритмов", который расположен в категории "". Всё это находится в предмете "вычислительная сложность алгоритмов" из 5 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 2 страницы из PDF

Если для некоторого алгоритма ATA* (m) ≤ f (m) , то TA (n) ≤ f (log 2 n + 1) .Доказательство: 2 m−1 ≤ n < 2m ; ∃nˆ : 2m−1 ≤ nˆ < 2 m и такое, что TA (nˆ ) = TA* (m) .TA (n) ≤ TA (nˆ ) = TA* (m) ≤ f (m) = f (⎣log 2 n ⎦ + 1) ≤ f (log 2 n + 1) .Лемма 2. Пусть g (x) не убывает. Тогда( )2) если T (n) ≥ g (n) , то T (m) ≥ g (2 ).Доказательство: 2 ≤ n < 2 ; ∃nˆ ∈ [2 , 2 ) , такое, что на нём достигается максимум1) если TA (n) ≤ g (n) , то TA* (m) ≤ g 2 m ;m−1*AAm −1mm −1mTA (n) , т.е. TA (nˆ ) = mmaxTA (n) .−1m2≤ n< 21) TA* (m) = TA (nˆ ) ≤ g (nˆ ) ≤ g (2m ) ;2) TA* (m) = TA (nˆ ) ≥ g (nˆ ) ≥ g (2 m−1 ) .Указанные леммы можно обобщить на асимптотики, тогда получим:Лемма 1*. Если f (x) — неубывающая функция, TA* (m) = O( f (m) ) , то= O( f (log 2 n + 1) ) .

Если дополнительно f ( x + 1) = O( f ( x) ) , то TA (n) = O( f (log 2 n) ) .TA (n) =Лемма 2*. Пусть g (x) не убывает. Тогда1) если TA (n) = O( g (n) ) , то TA* (m) = O(g (2 m )) ;2) если TA (n) = Ω( g (n) ) , то TA* (m) = Ω(g (2m −1 )) .⎛x⎞Если дополнительно g ⎜ ⎟ = Ω( g ( x) ) , то TA* (m) = Ω(g (2 m )) .⎝2⎠Алгоритм возведения в степень: an.Рассмотрим алгоритм возведения в натуральную степень методом повторных квадратов (RS= repeating squaring). Для этого запишем n в двоичной системе счисления: n = β k β k −1...β1β 0 ,β i ∈ {0, 1}.

Приведём сам алгоритм на псевдокоде:q := a; u := 1;for i = 0 to k doif βi = 1 then u := u * q fi;if i < k then q := q2 fi;odЛегко видеть, что, взяв в качестве размера входа битовую длину n, получим сложность этогоалгоритма по числу умножений в следующем виде: TRS* (m) = 2m − 2 . Если в качестве входавзять значение n, то сложность перепишется в следующем виде: TRS (n) = ν (n) + ν * (n) − 2 , гдеν * (n) — количество единиц в двоичной записи n.8Сложность в среднемРассмотрим множество I s = {x : x = s} .

Введём на этом множестве классическуювероятность Ps ( x) =1, ∀x ∈ I s , где N s = card I s = I s (количество элементов множества).NsНе трудно видеть, что так введённая вероятность удовлетворяет условию:∑ P ( x) = 1 .x∈I ssОпределение. Величина TA ( s ) = ∑ C AT ( x) Ps ( x) называется временнόй сложностью в среднемx∈I sалгоритма A.Определение. Величина S A ( s ) = ∑ C AS ( x) Ps ( x) называется пространственной сложностью вx∈I sсреднем алгоритма A.Утверждение.

Сложность в среднем не превосходит сложность в худшем случае:TA ( s ) ≤ TA ( s ) и S A ( s ) ≤ S A ( s ) .Доказательство проведём для временной сложности (для пространственной сложностидоказательство проводится аналогично): TA ( s ) = ∑ C AT ( x) Ps ( x) ≤ ∑ ⎛⎜ max C AT ( x) ⎞⎟ Ps ( x) =x∈I s⎠x∈I sx∈I s ⎝= ∑ TA ( s ) Ps ( x) = TA ( s )∑ Ps ( x) = TA ( s ) .x∈sx∈s14243=1Пример. Найдём сложность в среднем алгоритма возведения в степень (RS), описанногоранее. Рассмотрим множество I m = {n : 2m−1 ≤ n < 2m } . Вероятность каждого элемента этого111множества положим равной= m= m−1 . Тогдаm −1Im 2 − 22mm −1⎞⎛⎞1 ⎛1 2 −1 **⎟⎜TRS (m) = m−1 ∑ ν{(n) + ν (n) − 2 = (m − 2) + m−1 ∑ν (n) = m − 2 + m−1 ⎜ 2 m−1 + ∑ kCmk −1 ⎟ =⎟⎜2 ⎝2 n=2m−12 n=2m−1 ⎝ =mk =1⎠⎠12m −1= {kCmk −1 = (m − 1)Cmk −−12 } = m − 2 +m−1⎞1 ⎛ m−12(m1)Cmk −−12 ⎟ = {k = l + 1} =+−⎜∑m −12 ⎝k =1⎠⎛⎞⎜⎟m−2m −131= m − 2 + m−1 ⎜ 2 m−1 + (m − 1)∑ Cml −2 ⎟ = m − 1 + m−1 ⋅ 2 m−2 = (m − 1) < 2m − 2 = TRS* (m)⎜⎟222l =014243⎟⎜m−2=(1+1)⎝⎠⎛⎞⎜⎟m−21 ⎜ m−1m −13l= m − 2 + m−1 2 + (m − 1)∑ Cm−2 ⎟ = m − 1 + m−1 ⋅ 2 m−2 = (m − 1) < 2m − 2 = TRS* (m)⎟2 ⎜22l =014243⎟⎜=(1+1)m − 2 ⎠⎝Асимптотический закон распределения простых чисел.Рассмотрим функцию Эйлера π (n) , равную количеству простых чисел, меньших n.

Для этой9n. Рассмотрим ряд 1, 2, …, N. Вероятность того,ln n1что наперёд взятое число из этого ряда простое, согласно асимптотике π (n) , близка к.ln Nфункции известна асимптотика: π (n) ~Предпринимались многие попытки доказать асимптотический закон π (n) . Так, в 1850 г.nnЧебышёвым было доказано, что ∃c, C > 0 : c.

Позднее было получено, что< π ( n) < Cln nln nc = 0,92129 , C = 1,10555 . В 1896 г. асимптотический закон для π (n) был доказан Адамаром.⎛ m2 ⎞Вернёмся к алгоритму пробных делений. Известно, что T (m = ν (n) ) = Θ⎜⎜ 2 ⎟⎟ (см. задачу 6).⎝ ⎠*TDОпределение. Алгоритм называют алгоритмом с полиномиально ограниченной сложностью,если его сложность составляет O(m d ) .Определение. Алгоритм называют полиномиальным, если его сложность полиномиальноограничена.Не используя предыдущую оценку, покажем, что алгоритм пробных делений (TD) неявляется полиномиально ограниченным. Для этого рассмотрим функцию V (m) —( )количество простых чисел из полуинтервала 2 m−1 ≤ n < 2 m .

При m → ∞ , π 2 m ~2m.m ln 2m−2⋅ 2 m . Пусть D(n) — количество делений,2m(m − 1) ln 2необходимых алгоритму при работе с n, тогда если p ≥ 2 m −1 — простое число, тоТогда V (m) = π (2 m ) − π (2 m−1 ) ~D( p) =⎣⎦m2 m−1 − 1 ≥ 2 2TTD (m) =12m −1−1(для m ≥ 4 ). Используя эту оценку, для TTD (m) получаем:∑ D ( n) ≥2m−1 n=2m−11∑ D( p) ≥2 m−1 2m−1≤ p<2m12m−1⋅ 2 2 ⋅ V ( m) =m−1p - простоеm⎛1 m⎞m−2⋅ 2 2 = Ω⎜⎜ ⋅ 2 2 ⎟⎟ ,2m(m − 1) ln 2⎝m⎠откуда, в силу утверждения TA ≥ TA , получаем, что сложность алгоритма пробных деленийне является полиномиально ограниченной.Сложность в среднем алгоритмов сортировки.Пусть (a1 ,..., an ) — некоторая перестановка ( ai ∈ [1, n], ai ≠ a j при i ≠ j ). Рассмотримфункцию ψ n (t1 ,..., t n ) , которая для любого набора попарно различных чисел будетвозвращать перестановку (a1 ,..., an ) , отражающую порядок чисел t1 ,..., t n .⎛ 3⎞Пример.

ψ 3 ⎜ − , − 10, 17 ⎟ = (2, 1, 3) .⎝ 4⎠Не трудно видеть, что сложности сортировок исходного массива t1 , ... , t n и полученнойперестановки a1 , ... , an совпадают, поэтому можно ограничится рассмотрением сложностиалгоритмов сортировки, применяемых к перестановкам.10Рассмотрим множество всевозможных перестановок их n элементов Π n , оно же будет1(т.к.являться вероятностным пространством, с вероятностью каждого элементаn!количество всевозможных перестановок из n элементов равно n! ).Для дальнейшего нам понадобится факт из теории вероятностей, получивший названиеформула полного математического ожидания.Пусть пространство событий W может быть разложено на сумму попарно несовместныхсобытий Wi: W = W1 + ...

+ Wl , Wi ∩ W j = ∅ при i ≠ j . Пусть ξ — случайная величина,определённая на W. Тогда по определению Eξ =∑ ξ (ω ) P(ω ) .Пусть известны условныеω∈Wматематические ожидания E(ξ | Wk ) , k = 1, ... , l . Тогда формула полного математическогоожидания выглядит следующим образом:lEξ = ∑ E(ξ Wk )P(Wk ) .k =1Утверждение.(i) Пусть 1 ≤ u ≤ n , 1 ≤ v ≤ n и событие Fnu ,v заключается в том, что v-й элементперестановки a1 ,..., an равен u, т.е. av = u . Тогда вероятность такого события1Pn Fnu ,v = .n()(ii) Пусть 1 ≤ u ≤ n и p — некоторая перестановка чисел 1, ...

, u − 1 . Пусть событиеGnu , p заключается в том, что порядок элементов, меньших u, совпадает с p. Тогда1.вероятность такого события Pn Gnu , p =(u − 1)!()(iii) Пусть 0 < u < v ≤ n и событие H nu ,v заключается в том, что существует ровно uэлементов перестановки a1 , ... , an , для которых верно ai < av ∀1 ≤ i < v . Тогда1вероятность такого события Pn H nu ,v = .v()Доказательство:(i) очевидно: всего перестановок n! , перестановок, у которых один элемент(n − 1)! (n − 1)! 1== .фиксирован (n − 1)! ⇒ Pn Fnu ,v =n!n(n − 1)! n()(ii) всего перестановок n! , из них перестановок, в которых порядок элементовn!(n − u + 1)!n!=меньших u фиксирован, Cnu −1 (n − u + 1)!=, откуда(u − 1)!(n − u + 1)! (u − 1)!1Pn G nu , p =.(u − 1)!()(iii) если p — некоторая перестановка 1, ...

, v , то число перестановок (a1 , ... , an ) ∈ Π n ,n!для которых ψ n (a1 , ... , av ) = p , равно Cnv (n − v)!= . Число перестановок p, дляv!11которых последний элемент равен u − 1 , составляет (v − 1)! , откуда общее числоn!1⇒ Pn H nu ,v = .событий равноvv()Сортировка простыми вставками (I1).упорядочены678На i-й итерации алгоритма первые i элементов массива упорядочены: x1 ,..., xi , xi+1 ,... итребуется поставить на место xi+1 . Для этого xi+1 сравнивается подряд со всеми элементамислева, начиная с xi , до тех пор, пока не будет найден элемент, меньший xi+1 , или не будетдостигнута граница массива. После определения правильного места для элемента xi+1начинаются обмены элемента xi+1 с элементом, стоящим справа до тех пор, пока элемент xi+1не встанет на место.Найдём сложность в среднем этого алгоритма.

Для этого введём следующие случайныевеличины ξ n1 ,..., ξ nn−1 такие, что ∀a ∈ Π n ξ ni (a) показывает затраты на i-м шаге алгоритма.Тогда TI1 (n) = E(ξ n1 + ... + ξ nn−1 ) = Eξ n1 + ... + Eξ nn−1 . Рассмотрим события H nk ,i+1 , k = 0,1,..., i , тогдаΠ n = H n0,i+1 + H n1,i+1 + ... + H ni ,i+1 .По формуле полного математического ожидания получаем:Eξ ni =()1 iE ξ ni H nk ,i+1 .∑i + 1 k =0Допустим, что событие H nk ,i+1 выполнено, тогда⎧i − k + 1, k > 0k =0⎩i,ξ ni (a) = ⎨()ξ ni (a) = E ξ ni H nk ,i +1 ⇒ Eξ ni =i⎞ i1 ⎛1⎜ i + ∑ (i − k + 1)⎟ = + 1 −i + 1 ⎝ k =1i +1⎠ 2n −1n−11 ⎞1 ⎞⎛i⎛iОткуда получаем TI1 (n) = ∑ ⎜ + 1 −⎟ = n −1+ ∑ ⎜ −⎟ .

Из курса математическогоi +1⎠i +1⎠i =1 ⎝ 2i =1 ⎝ 2n1анализа известно, что ∑ = ln n + O(1) , тогда для TI1 (n) получаем:i =1 iTI1 (n) =n2(n + 4)(n − 1)− ln n + O(1) =+ O ( n) .44По числу перемещений (обменов) оценка останется верной, т.к. число перемещенийотличается от числа сравнений не более, чем на 1.Пусть ξ — затраты на сравнения, а η — затраты на перемещения. Тогда суммарнаясложность в среднем будет равна: E(ξ + η ) = Eξ + Eη .Сортировка «пузырьком».Имеется массив x1 , x2 ,..., xn , который требуется отсортировать. Сравниваем парами xi и xi+1 ,если xi > xi+1 , то меняем их местами и продолжаем с xi+1 . После первого прохода последний(наибольший) элемент окажется на своем месте.

Второй проход идёт до n − 1 , третий до12n − 2 и т.д. Заканчиваем, когда ни одной перестановки не было или остался массив из одногоэлемента.πnСложность в среднем такого алгоритма составит T (n) = n −2.Быстрая сортировка (QS = quick sort).Есть массив x1 , x2 ,..., xn , который нужно отсортировать. Для этого выбираем разбивающийэлемент (не важно какой, например, первый). Разбиваем элементы массива на 2 группы: теэлементы, которые меньше разбивающего, и те, которые больше. Далее применяем ту жепроцедуру рекурсивно к полученным после разбиения двум частям.В худшем случае заведомо TQS (n) = Ω(n 2 ) , т.к.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5259
Авторов
на СтудИзбе
421
Средний доход
с одного платного файла
Обучение Подробнее