Главная » Просмотр файлов » Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)

Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189), страница 19

Файл №1162189 Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)) 19 страницаТ. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189) страница 192019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Рекуррентное соотношение представляет собой уравнение или неравенство, которое описывает функцию через ее значения Глава К Разделай а алапнауй 9! для меньших аргументов. Например, в разделе 2.3.2 мы описывали время Т(п) работы процедуры Мккан-Яокт в наихудшем случае с помощью рекуррентного соотношения 9 (1), если п = 1, Т(п) = 2Т(п/2) + 9(п), если и ) 1, (4.1) В методе нодстеновки мы делаем предположение о границе, а затем исполь- зуем метод математической индукции для доказательства его корректности. В методе деревьев рекурсии рекуррентное соотношение преобразуется в де- рево, узлы которого представляют стоимости на разных уровнях рекурсии. Затем для решения рекуррентного соотношения используются методы оценки сумм.

° В основном методе (шазгег шебзод) граничные оценки рекуррентных соотношений представляются в виде Т(п) = аТ(п/о) + /(и), (4.2) где а > 1, 0 ) 1, а /(и) — заданная функция. Такие рекуррентные соотношения возникают очень часто. Рекуррентное соотношение вида (4.2) описывает алгоритм "разделяй и властвуй", который создает а подзадач, каждая из которых имеет размер, равный 1/6 размера исходной задачи, и шаги разделения и комбинирования которого в сумме занимают время Дп). Для использования основного метода вам нужно запомнить три разных случая, после чего вы сможете легко определять асимптотические границы для многих простых рекуррентных соотношений. Мы будем использовать данный метод для определения времени работы алгоритмов "разделяй и властвуй" для поиска максимального подмассива и для умножения матриц, а также для множества алгоритмов, основанных на этой парадигме, в других местах книги.

решением юторого является функция Т(п) = 9(п 1к п). Рекуррентные соотношения могут принимать множество разных форм. Например, рекурсивный алгоритм может делить задачу на подзадачи разного размера, например, разбивая на части, представляющие собой 2/3 и 1/3 исходной задачи. Если при этом разделение и комбинирование выполняются за линейное время, время работы такого алгоритма определяется рекуррентным соотношением Т(п) = Т(2п/3) + Т(п/3) + 6(п). Подзадачи не обязаны быть ограниченными некоторыми постоянными долями размера исходной задачи.

Например, рекурсивная версия линейного поиска (см. упр. 2.1.3) создает только одну подзадачу, содержащую только на один элемент меньше, чем исходная задача. Каждый рекурсивный вызов требует константного времени плюс время на рекурсивный вызов, в свою очередь осуществляемый им, что приводит к рекуррентному соотношению Т(п) = Т(п — 1) + 6(1), В этой главе предлагаются три метода решения рекуррентных соотношений, т.е. получения асимптотических границ решения "9'* или "О". ЧаСтЬ 1 Основы Иногда нам будут встречаться рекуррентные соотношения, которые представляют собой неравенства, такие как Т(и) < 2Т(п/2) + Э(п). Поскольку такие рекуррентные соотношения указывают только верхнюю границу Т(п), их решения мы будем записывать с применением О-обозначений (а не Н-обозначений).

Аналогично, если это неравенство обратить (так, что оно примет вид Т(п) > 2Т(п/2)+9(п)), то, поскольку такое рекуррентное соотношение дает толью нижнюю границу Т(п), в его решении будут использоваться П-обозначения. Технические детали рекуррентиых соотношений На практике при составлении и решении рекуррентных соотношений мы пренебрегаем рядом технических деталей. Например, если мы вызываем процедуру МЕКОЕ-ЯОКТ для нечетного юличества элементов и, то в результате мы получаем подзадачи размером (и/2) и (и/21. Ни один из этих размеров в действительности не равен и/2, поскольку и/2 не является целым числом при нечетном и. Технически рекуррентное соотношение, описывающее время работы процедуры Мексе-Яокт в наихудшем случае, в действительности равно Т(п) = если = 1, И Т((п/21) + Т(~п/21) + 9(п), если и > 1 .

Граничные условия — еще один пример технических особенностей, которые обычно игнорируются. Поскольку время работы алгоритма с входными данными фиксированного размера выражается константой, то в рекуррентных соотношениях, описывающих время работы алгоритмов, для достаточно малых и обычно справедливо соотношение Т(п) = 9(1). Поэтому для удобства граничные условия рекуррентных соотношений, как правило, опускаются и предполагается, что для малых и время работы алгоритма Т(п) является константой. Например, рекуррентное соотношение (4.1) обычно записывается как Т(п) = 2Т(н/2) + 9(п), (4.4) без явного указания значений Т(п) для малых п.

Причина состоит в том, что хотя изменение значения Т(1) и приводит к изменению решения рекуррентного соотношения, это решение обычно изменяется не более чем на постоянный множитель, так что порядок роста остается неизменным. Формулируя и решая рекуррентные соотношения, мы часто опускаем полы, потолки и граничные условия.

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

Однако в данной главе мы не будем опускать технические детали, так как это позволит продемонстрировать некоторые тонкости, присущие методам решения рекуррентных соотношений. 93 Глава 4. Разделяй и власмвуй 4,1. Задача поиска максимального подмассива Предположим, что у вас появилась возможность вложить деньги в корпорацию по производству неустойчивых химических соединений Ч01а!!1е С!зеписа! Со!рота!юп.

Подобно производимой продукции цена акций Чо!ай!е СЬеш!са! Сотротабоп тоже очень неустойчива. Вы можете купить только один комплект акций и продать его в какой-то другой день, осуществляя покупки и продажи после закрытия торгов. Ваши неудобства компенсируются тем, что вы владеете информацией о будущих ценах на акции. Ваша цель — получить максимальную прибыль. На рис.4.1 показана цена акций за 17-дневный период.

Вы можете покупать акции в любой день, начиная с нулевого дня, когда цена равна $100. Конечно, вы захотите купить подешевле, а продать подороже, но — увы! — так может и не получиться. На рис. 4.1 наименьшая цена достигается после седьмого дня, т.е. после того, как будет достигнута максимальная цена после первого дня. 120 110 100 90 80 70 60 0 ! 2 3 4 5 6 7 8 9 10 11 12 13 !4 !5 16 День 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Цена 100 113 110 85 105 102 86 63 81 101 94 106 101 79 94 90 97 Изменение 13 -3 -25 20 -3 -16 -23 18 20 -7 12 -5 -22 15 -4 7 Рнс. 4.1. Информация о цене акций Чо!ац!е Сьеппса! Созрогабоп после закрытия торгов за !7-дневный период. На горизонтальной осн днаграммы указан день торгов, на вертикальной— цена.

В нижней строке таблицы указано изменение цены по сравнению с предыдущим днем. Можно решить, что прибыль всегда можно максимизировать, либо покупая по наименьшей цене, либо продавая по наибольшей. Например, на рнс. 4.1 можно было бы максимизировать прибыль, выполняя покупку по наименьшей цене, которая достигается после торгов седьмого дня. Если бы такая стратегия всегда работала, то было бы просто определить, как максимизировать прибыль: найти наибольшую и наименьшую цены, а затем слева от наивысшей цены выполнить поиск наинизшей, а справа от наинизшей цены выполнить поиск наивысшей н взять пару с максимальным отличием.

Но иа рис. 4.2 показан контрпример, демонстрирующий, что иногда максимальная прибыль достигается и не при покупке по наинизшей цене, и не при продаже по наивысшей. Перебор Можно легко разработать решение зтой задачи, основанное на грубой силе: просто испытать все возможные пары дат покупки и продажи, в которых дата Часть 1. Основы ю 9 в 6 О 1 2 3 4 Рнс. 4.2.

Пример, демонстрирующий, что максимальная прибыль не всегда начинается с минимальной цены и не нсегда заканчиваетса максимальной. Здесь вновь на горизонтальной оси диаграммы указан день торгов, на вертикальной — цена Максимальная прибыль в $3 достигается при покупке после торгов во второй день н продаже после торгов в третий день.

Ио цена $7 во второй лень не является наинизшей, как и цена $10 в третий день не является наивмсшей. покупки предшествует дате продажи. Период из и дней имеет (") таких пар дат. Поскольку (2) представляет собой !В(пз), и лучшее, на что мы можем надеяться, — зто вычисление каждой пары за константное время, такой подход будет давать время работы П1пз). Нельзя ли достичь чего-то лучшего? Преобразование Чтобы получить алгоритм со временем работы о(пз), взглянем на входные данные под несколько иным углом. Мы хотим найти последовательность дней, для которых итоговая разница между первым и последним днем максимальна.

Вместо того чтобы работать с ежедневными ценами, давайте рассмотрим ежедневное изменение цены, где изменение в день з представляет собой разность между ценой после торгов в день 3 и ценой в день з — 1. На рис.4.1 эти изменения показаны в нижней строке. Если рассматривать эту строку как массив А, показанный на рис.4.3, то задача заключается в поиске непустого непрерывного подмассива А, значения которого имеют наибольшую сумму. Назовем такой непрерывный подмассив максимнлвнмм подмассивпм. Например, в массиве на рис.

4.3 максимальным подмассивом массива А(1 .. 1б] является А[8 .. 11) с суммой 43. Таким образом, лучше всего покупать акции непосредственно перед восьмым днем !т.е. после торгов седьмого дня), а продавать после торгов одиннадцатого дня, получая при этом прибыль в $43 с акции. На первый взгляд, такое преобразованием ничем не может нам помочь.

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

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

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