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

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

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

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

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

К выбору амортизированной стоимости следует подходить с осторожностью. Если нужно провести анализ с использованием амортизированной стоимости, чтобы показать, что в наихудшем случае средняя стоимость операции невелика, полная амортизированная стоимость последовательности операций должна быть верхней границей полной фактической стоимости последовательности. Более того, как и в групповом анализе, это соотношение должно соблюдаться для всех последовательностей операций. Если обозначить фактическую стоимосты-й операции через с,„а аморгизированную стоимость зъй операции через с„то указанное требование для всех последовательностей, состоящих из и операций, можно Глаеа! Х Амортизацчонцый аиялиз 493 выразить следующим образом: ~с,>~ с,. (17.1) Общий кредит, хранящийся в структуре данных, представляет собой разность между полной амортизированной стоимостью и полной фактической стоимостью, или 2',".

1 с, — 2," с;. Согласно неравенству (17.1) полный кредит, связанный со структурой данных, все время должен быть неотрицательным. Если бы полный кредит в каюм-либо случае мог стать отрицательным (в результате недооценки ранних операций с надеждой восполнить счет впоследствии), то полная амортизнрованная стоимость в тот момент была бы ниже соответствующей фактической стоимости; значит, для последовательности операций полная амортизированная стоимость не была бы в зтот момент времени верхней границей полной фактичесюй стоимости. Таким образом, необходимо позаботиться о том, чтобы полный кредит для структуры данных никогда не становился отрицательным. Стековые операции Чтобы проиллюстрировать, как проводится амортизационный анализ методом бухгалтерского учета, вернемся к примеру со стеюм.

Напомним, что фактическая стоимость операций была следующей: Рпзн 1, РОР 1, М$Л.Т!РОР ппп()с, а) где /с — аргумент процедуры М~л.т19ор, а а — размер стека в момент ее вызова. Присвоим приведенные ниже амортизированные стоимости: Рпзн 2, РОР О, М1Л.Т!РОР 0 . Заметим, что амортизированная стоимость операции Мпьт19ОР равна константе (О), в то время как ее фактическая стоимость — переменная величина.

В атой схеме все три амортизированные стоимости равны 0(1), хотя в общем случае асимптотичесюе поведение аморгизированных стоимостей рассматриваемых операций может быть разным. Теперь покажем, что любую последовательность стековых операций можно оплатить путем начисления амортизированных стоимостей. Предположим, что для представления каждой единицы затрат используется денежный счет. Пусть изначально стек пуст. Вспомним аналогию между стеком как структурой данных и стопкой тарелок в кафетерии, приведенную в разделе 10.1. При добавлении тарелки в стопку 1 доллар затрачивается на оплату самой операции добавления, а еще 1 доллар (из двух начисленных на операцию Рпзн) остается в запасе, как бы иа зтой тарелке.

В любой момент времени каждой тарелке стека соответствует 1 доллар кредита. Хранящийся в тарелке 1 доллар предназначен для оплаты стоимости ее извлечения из стека. На операцию РО9 ничего не начисляется, а ее фактическая 494 ггастл ГК 'Усовершенствованные методы разработки и анагиза стоимость выплачивается за счет кредита, который хранится в стеке. При извлечении тарелки изымается 1 доллар кредита, который используется для оплаты фактической стоимости операции.

Таким образом, благодаря небольшой переоценке операции Рпзн отпадает необходимость начислять какую-либо сумму на операцию РОЕ. Более того, на операцию Мпет19ОЕ также не нужно начислять никакой суммы. При извлечении первой тарелки мы берем из нее 1 доллар кредита и тратим его на оплату фактической стоимости операции РОЕ. При извлечении второй тарелки в ней также есть 1 доллар кредита на оплату фактической стоимости операции Рог и т.д. Таким образом, начисленной заранее суммы всегда достаточно для оплаты операций Мш.тшОЕ. Другими словами, поскольку с каждой тарелкой стека связан 1 доллар кредита и в стеке всегда содержится неотрицательное количество тарелок, можно быть уверенным, что сумма кредита всегда неотрицательна.

Таким образом, для любой последовательности из п операций РОЗН, РОЕ и Мцьт19ог полная амортизированная стоимость является верхней границей полной фактической стоимости. Поскольку полная амортизированная стоимость равна 0(п), полная фактическая стоимость также определяется этим значением. Увеличение показаний бинарного счетчика В качестве другого примера, иллюстрирующего метод бухгалтерского учета, проанализируем операцию 1нсаемемт, которая выполняется над бинарным изначально обнуленным счетчиком. Ранее мы убедились, что время выполнения этой операции пропорционально количеству битов, изменяющих свое значение, В данном примере это количество используется в качестве стоимости.

Как и в предыдущем примере, для представления каждой единицы затрат (в данном случае— изменения битов) будет использован денежный счет. Чтобы провести амортизационный анализ, начислим на операцию, при которой биту присваивается значение 1 (т.е. бит устанавливается), амортизированную стоимость, равную 2 долларам. Когда бит устанавливается, 1 доллар (из двух начисленных) расходуется на оплату операции по самой установке. Оставшийся 1 доллар вкладывается в этот бит в качестве кредита для последующего использования при его обнулении. В любой момент времени с каждой единицей содержащегося в счетчике значения связан 1 доллар кредита, поэтому для обнуления бита нет необходимости начислять какую-либо сумму; за сброс бита достаточно будет уплатить 1 доллар.

Теперь можно определить амортизированную стоимость операции 1нспемемт. Стоимость обнуления битов в цикле гна11е выплачивается за счет тех денег, которые связаны с этими битами. В процедуре 1мспеме1чт устанавливается не более одного бита (в строке б), поэтому амортизированная стоимость операции 11чскемеыт не превышает 2 долларов. Количество единиц в бинарном числе, представляющем показания счетчика, не может быть отрицательным, поэтому и сумма кредита всегда неотрицательна. Таким образом, Глава 77. Амортизационный аиивиз 495 полная амортизированная стоимость п операций 1хскемехт равна 0(п).

Это и есть оценка полной фактической стоимости. Упражнения 172.1 Предположим, что над стеком выполняется последовательность операций; размер стека при этом никогда не превышает )в. После каждых й операций проводится резервное копирование стека. Присвоив различным стековым операциям соотвегствуклцие амортизированные стоимости, покажите, что стоимость и стековых операций, включая копирование стека, равна 0(п). 17.22 Выполните упр. 17.1.3, применив для анализа метод бухгалтерского учета. 17.2.3 Предположим, что нам нужно иметь возмохсность не только увеличивать показания счетчика, но и сбрасывать его (т.е. делать так, чтобы значения всех битов были равны 0).

Считая, что время проверки или модификации одного бита составляет 6(1), покажите, как осуществить реализацию счетчика в виде массива битов, чтобы для выполнения произвольной последовательности из и операций !нскемент и Кезет над изначально обнуленным счетчиком потребовалось бы время 0(п). (Указание: отслеживайте в счетчике самый старший разряд, содержащий единицу.) 17.3.

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

Для всех з = 1, 2,..., п обозначим через с, фактическую стоимосты-й операции, а через Р; — структуру данных, которал получается в результате применения з-й операции к структуре данных Р, ъ Функция потенциале (рогепйа1 йшсйоп) Ф отображает каждую структуру данных Р; на действительное число Ф(Р,), которое является нотенцнааан (ро1епйа!), связанным со структурой данных Р;. Аморавзнреееннея стонзность (азпогбхео соз!) с, з-й операции определяется соотношением с, = с, + Ф(Р,) — Ф(Р, г) (17.2) Часть ги Усовершенствованные методы разработки н аназиза 49б Таким образом, амортизированная стоимость каждой операции представляет со- бой ее фактическую стоимость плюс приращение потенциала в результате выпол- нения операции. Согласно уравнению (17.2) полная амортизированная стоимость и операций равна и н с; = ~~(с, + Ф(Р;) — Ф(Р, 1)) ь=1 з=1 = ~~',с + Ф(Рн) — Ф(Ро) з=1 (17.3) Стековые операции Чтобы проиллюстрировать метод потенциалов, еще раз обратимся к примеру со стековыми операциями Рахн, Рог и Мцьт19ор.

Определим функцию потенциала Ф для стека как количество объектов в этом стеке. Для пустого стека Ро, с которого мы начинаем, выполняется соотношение Ф(Ро) = О. Поскольку количество объектов в стеке не может быть отрицательным, стеку Р„полученному в результате выполнения з-й операции, соответствует неотрицательный Второе равенство следует из уравнения (А.9), поскольку слагаемые Ф(Р1) являются телескопическими. Если функцию потенциала Ф можно определить таким образом, чтобы выполнялось неравенство Ф(Р„) > Ф(Рр), то полная амортизированная стоимость 2„'," 1с; является верхней границей полной фактической стоимости 2'," сь На практике не всегда известно, сколько операций может быть выполнено, поэтому, если наложить условие Ф(Р,) > Ф(Ро) для всех з, то, как и в методе бухгалтерского учета, будет обеспечена предоплата. Часто удобно определить величину Ф(Ре) равной нулю, а затем показать, что для всех з выполняется неравенство Ф(Р1) ) О.

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

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

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