Главная » Просмотр файлов » Структуры данных и алгоритмы

Структуры данных и алгоритмы (1021739), страница 71

Файл №1021739 Структуры данных и алгоритмы (Структуры данных и алгоритмы) 71 страницаСтруктуры данных и алгоритмы (1021739) страница 712017-07-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

В первом примере получаем небольшое обобщение мультипликативных функций, а именно, здесь рассматриваются мультипликативные функции, умноженные на константу, которая больше или равна единице. Вовтором примере просто показан частный случай функции d(n), позволяющий получить замкнутую форму решения (9.16).Пример 9.4. Рассмотрим следующее рекуррентное уравнение:Т(1) = 1,Т(п) = ЗГ(л/2) + 2л1-5.272ГЛАВА 9. МЕТОДЫ АНАЛИЗА АЛГОРИТМОВВыражение 2л1'5 не является мультипликативной функцией, но функция л1'5 является. Сделаем замену Щп) = Т(п)/2 для всех л. Тогда исходное рекуррентное перепишется в видеЩ1) = 1/2,Щп) = ЗЩп/2) + л1-5.Если бы Щ1) равнялось 1, тогда однородное решение равнялось бы л'083 < л1'59.

ДляЩ1) — 1/2 можно показать, что однородное решение не больше л1'59/2, т.е. имеет порядок О(п1'59). На частное решение значение Щ1) не влияет. Поскольку в данном случаеа = 3, Ъ = 2 и б1'5 = 2.83 < а, то частное решение, а также и Щп) имеют порядок ростаО(п1-59). Так как Т(п) — 2Щп), то Т(п) тоже имеет порядок О(л1'59), точнее О(л1ов3). ППример 9.5. Рассмотрим рекуррентное уравнениеТ(1) = 1,Т(п) = 2Т(л/2) + л logn.Легко проверить, что в данном случае однородное решение равно л, посколькуа = Ъ = 2.

Но функция d(n) — п logn мультипликативной не является, поэтому надопопытаться найти значение суммы в формуле (9.16). В данном случае имеем*-i1*-i1V1поуо*-А_ o*V(Ъ —J)i\—— £t9*" K\Kb(bT^j- J.J.1\/ Ctnink-j£tlUgl^) —Ct / \Ki=oj=otТак как ft = logn, то частное решение имеет порядок О(п Iog2n). Поскольку здесьчастное решение больше однородного, то отсюда следует, что Т(п) также будет иметьпорядок О(л Iog2n). ПУпражнения9.1.9.2.Запишите рекуррентное соотношение для времени выполнения следующего алгоритма, предполагая, что п является степенью числа 2.function path ( s/ t, n: integer ) : boolean;beginif n = 1 thenif edge(s, t) thenreturn(true) telsereturn(false);for i:= 1 to n doif path(s,i,n div 2 ) and path(i,t,n div 2) thenreturn(true);return(false)end; { path }Функция edge(i, j) возвращает значение true, если вершины i и у в графе с лвершинами соединены ребром либо i = j, и значение false — в противном случае.

Что делает функция path (путь)?Решите следующие рекуррентные уравнения, если Т(1) = 1.а) Т(п) = ЗГ(п/2) + л;б) Т(п) = ЗГ(л/2) + л2;39.3.в) Т(п) = 8Т(п/2) + п .Решите следующие рекуррентные уравнения, если Т(1) = 1.а) Т(п) = 4Г(л/2) + п;б) Т(п) = 4Т(л/2) + л2;3в) Т(п) = 9Г(л/2) + л .УПРАЖНЕНИЯ9.4.*9.5.9.6.9.7.Найдите верхнюю оценку для Т(п), удовлетворяющих следующим рекуррентным уравнениям и предположению, что Т(1) = 1.а) Т(п) = Г(л/2) + 1;б) Т(п) = 2Т(п/2) + logn;в) Т(п) = 2Т(п/2) + п;г) Т(п) = 2Т(п/2) + п2.Найдите верхнюю оценку для Т(п), удовлетворяющих следующим рекуррентным соотношениям:а) Г(1) = 2,Т(п) = 2Т(п - 1) + 1 при л > 2.б) Г(1) = 1,Т(п) = 2Т(п - 1) + га при л > 2.Проверьте ответы упражнения 9.5, решив рекуррентные соотношения методомподстановок.Обобщите упражнение 9.6 для решения произвольных рекуррентных уравнений видаТ(п) = аТ(п - 1) + d(n) при п £ 2в терминах параметра а и функции d(n).*9.8.

В упражнении 9.7 положите d(n) = с" для некоторой константы с > 1. Как вэтом случае решение Т(п) будет зависеть от соотношения а и с? Какой вид решения Г(л)?**9.9. Найдите Т(п), если7XD - 1,Г(л) = VnT(>//z) + л при л > 2.9.10. Найдите замкнутые выражения для следующих сумм:a)£i. б)£Л в)i=0i=0*9.11. Покажите, что число различных порядков, в соответствии с которыми можноперемножить последовательность из л матриц, удовлетворяет следующим рекуррентным соотношениям:Т(1) = 1,Докажите, что Т(п + 1) = - С," .

Числа Т,(п) называются числами Катпалана.л+1 '**9.12. Покажите, что число сравнений Т(п), необходимое для сортировки л элементовпосредством метода сортировки слиянием, удовлетворяет соотношениямГ(1) = О,Т(п) = Т([п 1 2]) + Т(\ п 1 2]) + л - 1,где [ж] обозначает целую часть числа х, а Ы — наименьшее целое, большее илиравное х. Докажите, что решение этих рекуррентных соотношений имеет вид274ГЛАВА 9. МЕТОДЫ АНАЛИЗА АЛГОРИТМОВ9.13. Покажите, что число булевых функций п переменных удовлетворяет рекуррентным соотношениям= 4,2Т(п) = (Т(п - I)) .Найдите Т(п).**9.14. Покажите, что число двоичных деревьев высотой не более п удовлетворяет рекуррентным соотношениям- 1,2Т(п) - (Т(п - I)) + 1.2Докажите, что Т(п) = А "для некоторой константы k.

Каково значение ft?Библиографические примечанияВ работах [9], [44], [70] и [71] можно найти дополнительный материал по решению рекуррентных соотношений. В [4] показано, что многие нелинейные рекуррент22ные уравнения вида Т(п) = (Т(п - I)) + g(n) имеют решения в форме Т(п) = ft " ,где k — константа, как в упражнении 9.14.•УПРАЖНЕНИЯ275ГЛАВА 10МетодыразработкиалгоритмовК настоящему времени специалисты по вычислительной технике разработали рядэффективных методов, которые нередко позволяют получать эффективные алгоритмы решения больших классов задач.

Некоторые из наиболее важных методов,такие как "разделяй и властвуй" (декомпозиции), динамическое программирование, "жадные" методы, поиск с возвратом и локальный поиск, представлены в этойглаве. Пытаясь разработать алгоритм решения той или иной задачи, часто бываетполезно задать вопрос: "Какой тип решения позволяет получить метод декомпозиции, динамическое программирование, "жадный" метод или какой-либо другойстандартный метод?"Следует, однако, подчеркнуть, что существуют задачи, например NP-полные задачи, для которых эти и любые другие известные методы не обеспечивают эффективных решений. Когда встречается подобная задача, нередко бывает полезно определить, обладают ли входные данные для этой задачи какими-либо особыми характеристиками, которыми можно воспользоваться при попытках найти требуемоерешение, и можно ли воспользоваться каким-либо приближенным решением (еслитакое решение легко получить) вместо точного решения, получить которое бываеточень трудно.10.1.

Алгоритмы „разделяй и властвуй"Возможно, самым важным и наиболее широко применимым методом проектирования эффективных алгоритмов является метод, называемый методом декомпозиции(или метод "разделяй и властвуй", или метод разбиения). Этот метод предполагаеттакую декомпозицию (разбиение) задачи размера п на более мелкие задачи, что наоснове решений этих более мелких задач можно легко получить решение исходнойзадачи. Мы уже знакомы с рядом применений этого метода, например в сортировкеслиянием или в деревьях двоичного поиска.Чтобы проиллюстрировать этот метод, рассмотрим хорошо известную головоломку"Ханойские башни".

Имеются три стержня А, В и С. Вначале на стержень А нанизаны несколько дисков: диск наибольшего диаметра находится внизу, а выше — дискипоследовательно уменьшающегося диаметра, как показано на рис. 10.1. Цель головоломки — перемещать диски (по одному) со стержня на стержень так, чтобы дискбольшего диаметра никогда не размещался выше диска меньшего диаметра и чтобы вконце концов все диски оказались нанизанными на стержень В. Стержень С можноиспользовать для временного хранения дисков.Для решения этой головоломки подходит следующий простой алгоритм. Представьте, что стержни являются вершинами треугольника.

Пронумеруем все перемещения дисков. Тогда при перемещениях с нечетными номерами наименьший дискнужно перемещать в треугольнике на соседний стержень по часовой стрелке. Приперемещениях с четными номерами выполняются другие допустимые перемещения,не связанные с наименьшим диском.БС1Рис. 10.1. Исходное положение в головоломке "Ханойские башни"Описанный выше алгоритм, конечно, правильный и, к тому же, весьма лаконичный, правда, нелегко понять, почему он "работает", да и вряд ли такой алгоритм быстро придет вам в голову.

Попробуем вместо этого применить метод декомпозиции. Задачу перемещения п наименьших дисков со стержня А на стержень В можно представитьсебе состоящей из двух подзадач размера п — 1. Сначала нужно переместить п — 1 наименьших дисков со стержня А на стержень С, оставив на стержне А п-А наибольшийдиск.

Затем этот диск нужно переместить с А на В. Потом следует переместить п - 1дисков со стержня С на стержень В. Это перемещение га - 1 дисков выполняется путемрекурсивного применения указанного метода.1 Поскольку диски, участвующие в перемещениях, по размеру меньше тех, которые в перемещении не участвуют, не нужнозадумываться над тем, что находится под перемещаемыми дисками на стержнях А, Вили С.

Хотя фактическое перемещение отдельных дисков не столь очевидно, а моделирование вручную выполнить непросто из-за образования стеков рекурсивных вызовов, с концептуальной точки зрения этот алгоритм все же довольно прост для понимания и доказательства его правильности (а если говорить о быстроте разработки, тоему вообще нет равных). Именно легкость разработки алгоритмов по методу декомпозиции обусловила огромную популярность этого метода; к тому же, во многих случаях эти алгоритмы оказываются более эффективными, чем алгоритмы, разработанные Традиционными методами.2',.'•..."•••'••.'•':•' 'V•- ••'Умножение длинных целочисленных значенийРассмотрим задачу умножения двух п-битовых целых чисел X и Y. Вспомним,что алгоритм умножения га-битовых (или га-разрядных) целых чисел, изучаемый всредней школе, связан с вычислением п промежуточных произведений размера п ипоэтому является алгоритмом О(п2), если на каждом шаге выполняется лишь умножение или сложение одного бита или разряда.

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

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

Список файлов книги

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