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

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

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

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

Необходимо убедиться, что при поиске способа перемножения матриц учитываются все возможные варианты разбиения— 407 Глава !5. Динамическое орограммирование только в этом случае можно быть уверенным, что найденное решение будет гло- бально оптимальным. Этап 2. Рекурсивное решение Далее рекурсивно определим стоимость оптимального решения в терминах оптимальных решений подзадач.

В задаче о перемножении последовательности матриц в качестве подзадачи выбирается задача об оптимальной расстановке скобок в подпоследовательностн А,Аз+1.. А при 1 < 1 < 5 < и. Путь т[г,5]— минимальное количество скалярных умножений, необходимых для вычисления матрицы А, . Тогда в полной задаче минимальная стоимость матрицы Аз „равна т[1, и]. Рекурсивно определить величину т[л,Я можно следующим образом. Если г = Я то задача становится тривиальной: последовательность состоит всего из одной матрицы А,, = А„ и для вычисления произведения матриц не нужно выполнять никаких скалярных умножений.

Таким образом, при 1 = 1, 2,..., и имеем гл[лд] = О. Чтобы вычислить т[е,Я при 1 < Я воспользуемся свойством подструктуры оптимального решения, исследованным на этапе 1. Предположим, что в результате оптимальной расстановки скобок последовательность А,А;~1 . А, разбивается между матрицами Аь и Аь+и где ю' < )с < Я Тогда величина т[1,Я равна минимальной стоимости вычисления частных произведений А, ь и Аь~ь 5 плюс стоимость умножения этих матриц друг на друга.

Если вспомнить, что каждая матрица А, имеет размеры р; 1 х р,, то нетрудно понять, что для вычисления пРоизведениЯ матРиц А; ьАьл.з понадобитсЯ Р, 1РьР скалЯРных Умножений. Таким образом, получаем т[з,Я = т(з,й]+т[й+ 1,Я +р; зрьру . В этом рекурсивном уравнении предполагается, что значение 74 известно, но на самом деле это не так. Для выбора этого значения всего имеется 5' — 1 возможностей, а именно — 5в = 1, л' + 1,..., 7 — 1. Поскольку в оптимальной расстановке скобок необходимо использовать одно из этих значений 74, все, что нужно сделать, — проверить все возможности и выбрать среди них лучшую.

Таким образом, рекурсивное определение оптимальной расстановки скобок в произведении А;А,+1 А. принимает вид О , если 1 = 5, т[л,5] = ппп [т[з,74]+т[Й+1,5]+ р, 1рьрзлг, если 1 < 5 . (15.7) а<а<5 Величины т[з,5] равны стоимостям оптимальных решений подзадач. Чтобы легче было проследить за процессом построения оптимального решения, обозначим через в[г',5] значение lс, в котором последовательность А,А,.„5 . А разбивается на две подпоследовательности в процессе оптимальной расстановки скобок. Таким образом, величина в(з,Я равна значению Й, такому, что т[л,Я т[з, Ц + т[й + 1, Я + р; л рьрз 408 Часть!К Усовершенствованные методы разработки и аначиза Этап 3. Вычисление оптимальных стоимостей На данном этапе не составляет труда написать на основе рекуррентного соотношения (15.7) рекурсивный алгоритм для вычисления минимальной стоимости т[1, и] для произведения А1Аз А„.

Однако в разделе 15.3 мы сможем убедиться, что время работы этого алгоритма экспоненциально зависит от и, что ничем не лучше метода прямого перебора, при котором проверяется каждый способ расстановки скобок в произведении. Важное наблюдение, которое можно сделать на данном этапе, заключается в том, что у нас относительно мало различных подзадач: по одной для каждого выбора величин 1 и 7', удовлетворяющих неравенству 1 < 1 < 7' < и, т.е. всего [") + п = сЭ(пз). В рекурсивном алгоритме каждая подзадача может неоднократно встречаться в разных ветвях рекурсивного дерева. Такое свойство перекрытия подзадач — вторая отличительная черта применимости метода динамического программирования (первая отличительная черта — наличие оптимальной подструктуры). Вместо того чтобы рекурснвно решать рекуррентное соотношение (15.12), выполним этап 3 парадигмы динамического программирования и вычислим оптимальную стоимость путем построения таблицы в восходящем направлении. В описанной ниже процедуре предполагается, что размеры матриц А, равны р,, х р, (з = 1, 2,..., и).

Входные данные представляют собой последовательность р = (ро,ры...,р„); длина данной последовательности равна 1епд16[р] = и + 1. В процедуре используется вспомогательная таблица тп[1,.п, 1..п] для хранения стоимостей т[з,7] и вспомогательная таблица в[1..п, 1.зп], в которую заносятся индексы Й, при которых достигаются оптимальные стоимости т[з,Я. Таблица а будет использоваться прн построении оптимального решения.

Вместо рекурсивного вычисления рекуррентного соотношения (15.7) мы вычисляем оптимальную стоимость с помощью табличного восходящего подхода. (Соответствующий нисходящий подход с запоминанием будет представлен в разделе 15.3.) Мы реализуем табличный восходящий подход в процедуре МАтк~х-Сня1мОкпкк, приведенной ниже. В этой процедуре предполагается, что матрица А, имеет размер р, 1 х р, для з = 1,2,...,и. Ее входными данными является последовательность р = (ро, ры,,,, р„), где р. 1еззабч = и + 1. Процедура использует вспомогательную таблицу т[1 ..

и, 1 .. и] для хранения стоимостей т[з, 1] и другую вспомогательную таблицу, в[1..п — 1,2 .. и], в которую записывается, для какого индекса й достигается оптимальная стоимость при вычислении т[г,7]. Таблица в будет использоваться при построении оптимального решения. Чтобы корректно реализовать восходящий подход, необходимо определить, с помощью каких записей таблицы будут вычисляться величины то[а', Я.

Из уравнения (15.7) видно, что стоимость ти[з,Я вычисления произведения последовательности 7' — з + 1 матриц зависит только от стоимости вычисления последовательностей матриц, содержащих менее 7' — ч + 1 матриц. Другими словами, пРи 1с = з', г' + 1ч...,7' — 1 матРица А, н пРедставлЯет собой пРоизведение )с — з'+ 1 < 1' — з'+ 1 матриц, а матрица Аь~ч — произведение 7' — 1с < 7' — з+ 1 матриц. Таким образом, в ходе выполнения алгоритма следует организовать за- 409 Глава ! 5. Динамичекмле нрограммировонне волнение таблицы т в порядке, соответствующем решению задачи о расстановке скобок в последовательностях матриц возрастающей длины.

В случае подзадачи оптимальной расстановки скобок в цепочке А1А,ч 1 . Аг мы рассматриваем размер подзадачи как равный длине 5 — ! + 1 цепочки. МАтк!х-СнА!ы-Ок1эек (р) ! п = р.!епд!6 — 1 2 т[1 .. и, 1 .. п] и в[1 .. п — 1, 2 .. п] — новые таблицы 3 Тог( = 1 Го п 4 т,[1,!] = 0 5 1ог! = 2гоп // ! — длина цепочки 6 1ог ! = 1 го п — ! + 1 7 5 =1+1 — 1 8 т[1,5] = сс 9 !ог )с = ! !о5 — 1 !О д = т [1, !с] + т[к + 1, 1] + р, 1 ря ру 11 !1 д < т[1,5'] !2 т[1,5] = с! !3 в[1,5] = Й !4 ге1пгп т и я Сначала в этом алгоритме (строки 3 и 4) выполняется инициализация го[1, 1] = 0 для ! = 1,2,...,п (минимальные стоимости для последовательностей единичной длины).

Затем в первой итерации цикла Тог в строках 5 — !3 с помошью рекуррентного соотношения (15.7) вычисляются величины т[1, ! + 1] при ! = 1,2,...,п — 1 (минимальные стоимости для последовательностей длиной ! = 2). При втором проходе этого цикла вычисляются величины т[1, ! + 2] при ! = 1,2,...,и — 2 (минимальные стоимости для последовательностей длиной ! = 3) и тд. На каждом этапе вычисляемые в строках !0-13 величины т[1,5] зависят толью от уже вычисленных и занесенных в таблицу значений т[1,/с] и т[!с + 1, 5]. На рис.

15.5 описанный выше процесс проиллюстрирован для цепочки, состоящей из и = 6 матриц. Посюльку величины т[1,5] определены толью для 1 ( 5, используется только часть таблицы т, расположенная над ее главной диагональю. Таблица на рисунке повернута так, чтобы ее главная диагональ была расположена горизонтально. В нижней части рисунка приведен список матриц, входящих а последовательность.

На этой схеме легко найти минимальную стоимость т[1, 5] перемножения подцепочки матриц А,А,+1 А,. Она находится на пересечении линий, идущих от матрицы А, вправо и вверх и от матрицы А — влево и вверх. В каждой горизонтальной строке таблицы содержатся стоимости перемножения подцепочек, состоящих из одинаювого количества матриц. В процедуре МАтк1хСнА1н-Ок15кк строки вычисляются снизу вверх, а элементы в каждой строке— слева направо. Величина т[1,5] вычисляется с помощью произведений р, 1рьр для Й = с,(+ 1,...,5 — 1 и всех величин внизу слева и внизу справа от тп[1,5]. Несложный анализ структуры вложенных циклов в процедуре МАтк!хСнА1н-Окпкк показывает, что время ее работы составляет 0(п ).

Глубина вло- Гвава !я димамичввков врограммыровавив 4!! лслняемое последним при вычислении А,,(! „), а в[в[1, и] + 1, п] — последнее умножение при вычислении Ав(! „)4.! „. Приведенная ниже рекурсивная процедура выводит оптимальный способ расстановки скобок в последовательности матрац (А„А,.ь1,..., А ) по таблице в, полученной в результате работы процедуры МАтк1х-СнА1н-Окпек, и по индексам г' и 1.

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

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

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