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

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

Файл №1123766 С.А. Абрамов - Вычислительная сложность алгоритмов (С.А. Абрамов - Вычислительная сложность алгоритмов) 13 страницаС.А. Абрамов - Вычислительная сложность алгоритмов (1123766) страница 132019-05-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 13)

Имеется алгоритм A, два слова x, y ∈ A* и k ∈ N .Алгоритм заключается в определении, можно ли из x получить y не более, чем за kопераций, в качестве которых допустимыми являются вычеркивание символа иперестановка двух соседних символов. Доказано, что эта задача NP-полная.2. Имеется квадратная матрица порядка n из нулей и единиц и натуральное число k.Алгоритм заключается в определении, можно ли все единицы покрыть не более чемk прямоугольниками, не покрывая при этом ни одного нуля. Эта задача тожеявляется NP-полной.3. «Задача о рюкзаке». Задано конечное множество U. Для каждого u ∈ U определёнразмер s (u ) и цена v(u ) .

Заданы b, k ∈ N , и спрашивается, можно ли выбратьподмножество U ′ ⊂ U такое, что∑ s(u ) ≤ b , ∑ v(u ) ≥ k .u∈U ′u∈U ′Эта задача тоже является NP-полной.544. Задан набор пар целых чисел (ai , bi ) ∈ Z 2 , i = 1, 2, ... , n , bi ≥ 0 . Рассматриваетсяполином видаn∑a zi =1ibiи спрашивается, есть ли у него корень в комплекснойплоскости, лежащий на единичной окружности ( z = 1 ). Эта задача является NPтрудной, но принадлежность её к классу NP, не установлена.55Задачи1.

Доказать равенства:⎢n⎥ ⎡n⎤n = ⎢ ⎥ + ⎢ ⎥ , n∈N⎣2⎦ ⎢2⎥⎡a ⎤ = − ⎣− a ⎦ , a ∈ Rn ⎢n⎥ ⎡n⎤=k==2 ⎢⎣ 2 ⎥⎦ ⎢⎢ 2 ⎥⎥⎢n⎥ ⎡n⎤⎢n⎥⎡n⎤⇒ ⎢ ⎥ + ⎢ ⎥ = k + k = 2k = n . Если n нечётно, т.е. n = 2k + 1 ⇒ ⎢ ⎥ = k ; ⎢ ⎥ = k + 1⎣2⎦ ⎢2⎥⎣2⎦⎢2⎥⎢n⎥ ⎡n⎤⇒ ⎢ ⎥ + ⎢ ⎥ = k + k + 1 = 2k + 1 = n .⎣2⎦ ⎢2⎥Решение. 1) В случае чётного n решение тривиально: n = 2k ⇒2) Если a ∈ Z , то очевидно, что ⎡a ⎤ = a; ⎣− a ⎦ = − a , что доказывает равенство. Если a неявляется целым, то найдется такое целое число n и такое 0 < ε < 1 , что a = n + ε . Тогда⎡a ⎤ = ⎡n + ε ⎤ = n + 1 , ⎣− a ⎦ = ⎣− n − ε ⎦ = −n − 1 ⇒ ⎡a ⎤ = − ⎣− a ⎦ .2. Доказать равенство:k , n ∈ N, k > 1 ⇒ ⎣log k n ⎦ + 1 = ⎡log k (n + 1)⎤Решение.

Не трудно видеть, что для данного n всегда найдётся такое целое число m,что выполняется оценка: k m ≤ n < k m+1 . Тогда ⎣log k n ⎦ = m . Так как k целое, тоk m < n + 1 ≤ k m+1 , откуда m < log k (n + 1) ≤ m + 1 ⇒ ⎡log k (n + 1)⎤ = m + 1 что и доказываетравенство.3. Считая в алгоритме сортировки простыми вставками операцию обмена a ↔ bреализованной следующим образом: с := a; a := b; b := c, определить, чемуравны TI1 и TI 2 .4.

Имеется железнодорожный разъезд с тупиком (см. рис.), в одной части которогонаходятся 2n вагонов двух типов: n белых и n чёрных. Порядок вагонов не определён.Имеется 3 операции перемещения вагонов: 1) МИМО, 2) В (в тупик) и 3) ИЗ (из тупика).Требуется привести алгоритм сортировки вагонов, в результате работы которого сдругой стороны будет составлена последовательность из 2n вагонов, цвета которыхчередуются.МИМОИЗ2nВРешение. Требуется переправить вагоны справа на лево, изменив их порядок так,чтобы цвета вагонов чередовались. Предлагаемый алгоритм заключается в следующем:если цвет первого вагона формируемого состава не имеет значения, то первый вагонпросто проходит МИМО.

Если цвет первого вагона важен, то с помощью тупика этовсегда можно сделать. Далее, пока имеются вагоны справа, проверяем на совпадениецветов последний вагон слева с первым вагоном справа. Если их цвета не совпадают,56выполняем операцию МИМО, после чего проверяем наличие вагонов в тупике. Если втупике имеются вагоны, то выполняем операцию ИЗ и переходим к следующемувагону справа. При совпадении цветов, отправляем очередной вагон в тупик операциейВ.На псевдокоде предлагаемый алгоритм выглядит следующим образом: исходныйсостав справа обозначен массивом ai, каждый элемент которого принимает значениячёрный или белый.

Операция not меняет значение цвета с белого на чёрный инаоборот, z — текущее количество вагонов в стеке, k — цвет последнего вагонаформируемого состава слева. Основная идея алгоритма заключается в том, что в тупикев один момент времени не могут находиться вагоны разных цветов и в конце каждойитерации цикла если в тупике есть вагоны, то цвет их совпадает с цветом последнеговагона формируемого состава.z := 0; k := a1;for i = 2 to 2n doif k = ai thenВ;z := z + 1;elseМИМО;k := ai;if z > 0 thenИЗ;z := z – 1;k := not k;fifiodНе трудно видеть, что сложность представленного алгоритма по количеству операцийМИМО, В, ИЗ T = O(n) , но из постановки задачи ясно, что сложность любогоалгоритма, решающего задачу, есть Ω(n) , следовательно, сложность представленногоалгоритма T = Θ(n) .5.

Путник стоит перед бесконечной стеной в обе стороны. Известно, что на расстоянии nшагов в одну из сторон находится дверь. Требуется привести алгоритм нахождениядвери путником, сложность которого по числу шагов составляла бы O(n) .Решение. Очевидный алгоритм заключается в следующем: путник на первой итерацииделает один шаг в одну из сторон, затем возвращается и делает один шаг уже в другуюсторону и снова возвращается.

На второй итерации ситуация повторяется, но ужесовершается по два шага в обе стороны. На третьей итерации — три шага и т.д. пока небудетобнаруженадверь.Сложностьтакогоалгоритмасоставляет22 ⋅ (1 + 2 + ... + n) = n(n + 1) = O(n ) , в связи с чем, данный алгоритм не подходит.Предыдущий алгоритм базировался на арифметической прогрессии, что и далоквадратичную сложность. Попробуем оценить сложность подобного алгоритма,базирующегося на геометрической прогрессии. Пусть по прежнему на первой итерациисовершается по одному шагу в одну и другую сторону, тем самым первый членпрогрессии будет равен 1.

Выберем произвольное q ∈ N, q > 1 и на каждой k-йитерации будем совершать q k −1 шагов в обе стороны. Исходя из этих данных,получаем, что количество требуемых алгоритму итераций не превзойдёт log q n + 1 ,57тогда суммарное количество шагов не превзойдёт 2 ⋅qlog q n +1−1qn − 1= 2⋅= O(n) , что иq −1q −1требовалось.6. Доказать асимптотику сложности алгоритма пробных делений (TD), приняв за размер⎛ m2 ⎞*входа битовую длину n: TTD (m = ν (n) ) = Θ⎜⎜ 2 ⎟⎟ .⎝ ⎠Решение. При фиксированной длине числа n, равной m, получаем ограничение назначения n: 2 m−1 ≤ n < 2 m . Согласно постулату Бертрана, в интервале (2 m−1 , 2 m ) найдётсяпростое число n, для определения простоты которого алгоритму пробных делений*( m) :потребуется в точности n − 1 делений. Следовательно, получаем оценки на TTD⎣ 2 ⎦− 1 < Tm−1*TD⎣ ⎦( m) <⎣ 2 ⎦− 1m*2m−1 − 2 < TTD( m) < 2 m − 1⇔⇔mm⎛ m⎞1**⋅ 2 2 − 2 < TTD(m) < 2 2 − 1 ⇒ TTD(m) = Θ⎜⎜ 2 2 ⎟⎟ .2⎝ ⎠7.f (n) = am n m + ...

+ a1n + a0 , am ≠ 0 . Доказать утверждения:1)f (n) = O(n k ) ⇔ k ≥ m ;2)f (n) = Ω(n k ) ⇔ k ≤ m ;3)f (n) = Θ(n k ) ⇔ k = m .Решение.a.f (n) = O(n k ) ⇔ ∃C > 0 : f (n) ≤ Cn k ⇔ ∃0 ≤ limb.1nkf (n) = Ω n ⇔ ∃C > 0 : f (n) ≥ Cn ⇔ ∃0 ≤ lim≤ ⇔ k ≤m.n → ∞ f ( n)Cc.f (n) = Θ(n k ) ⇔ ∃c1 , c2 > 0 : c1n k ≤ f (n) ≤ c2 n k ⇔ ∃c1 ≤ limn→∞( )kf ( n)≤ C ⇔ k ≥ m.nkkn→∞f ( n)≤ c2 ⇔ k = m .nk8. Аддитивной цепочкой называется последовательность вида n1 < n2 < ... < nk , для которойвыполнены два условия: 1) n1 = 1 ; nk = n и 2) ∀i : 1 < i ≤ k ∃s, t : 1 ≤ t ≤ s < i такие, чтоnt + ns = ni . Через l (n) обозначим минимальную длину аддитивной цепочки.Доказать: l (ab) ≤ l (a ) + l (b) − 1, a, b ∈ N .Решение.

Рассмотрим минимальную аддитивную цепочку, последним элементомкоторой является a: 1 = n1′ < ... < nl′( a ) = a . Минимальная аддитивная цепочка для b всвою очередь выглядит следующим образом: 1 = n1′′ < ... < nl′′(b ) = b . Помножим каждыйэлемент цепочки для b на a и получим ещё одну цепочку, которая, вообще говоря, неявляется аддитивной: a = n1′′′< ... < nl′′(′b ) = ab . Не трудно видеть, что последний элементцепочки {n′} равен первому элементу цепочки {n′′′} , т.е. nl′( a ) = n1′′′ . Составим из первойитретьейцепочекодну,объединивихпоравномуэлементу:l (b )6444744481 = n1′ < ...

< nl′( a ) = n1′′′< ... < nl′′(′b ) = ab . Не трудно видеть, что так составленная1442443l (a)58последовательность является аддитивной цепочкой, но не обязательно являетсяминимальной. Откуда следует, что l (ab) ≤ l (a) + l (b) − 1 .9. Дан некоторый отрезок и число n > 1 . Требуется привести алгоритм построения отрезка1от данного со сложностью O(log n) .nРешение.

Пусть дан отрезок AB. Для деления отрезка на n воспользуемся теоремойФалеса. Для этого из одного конца данного отрезка выпустим луч и отложим на нём nраз отрезок произвольной длины (пробный отрезок). Получим набор точек A1 , A2 , ..., An .После чего проведём прямую, параллельную An B , через точку A2 , тогда, согласнотеореме, она отсечёт на отрезке AB требуемый отрезок.AnAn−1...A2A1BA1ABnЕсли откладывать пробный отрезок по одному n раз, то сложность такого алгоритмабудет порядка n, и он нам не подойдёт.

Чтобы добиться логарифмической сложностиследует поступить следующим образом: после отложения 2-х пробных отрезков сразунаходим A4 , отложив от A2 отрезок AA2 . Затем сразу можно найти A8 , отложив двараза отрезок AA4 и т.д. по степеням двойки. Отсюда получаем логарифмическуюсложность, и оценка O(log n) будет верна.1 nдоказать, что сложность в среднем3 ln nне является полиномиальной.10. Используя оценку функции Эйлера π (n) >алгоритма пробных делений TTD11. Найти сложность в среднем по количеству обменов для алгоритма сортировки выбором,исключая обмены вида xk ↔ xk .12.

Характеристики

Тип файла
PDF-файл
Размер
1,01 Mb
Тип материала
Высшее учебное заведение

Список файлов лекций

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