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

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

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

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

Глава 35. Приближенные алгоритмы 1177 В качестве входных данных процедуры ЕхАст Бивзвт Бим, с псевдокодом которой мы скоро ознакомимся, выступает множество Я = (хы хз,..., х„) и целевое значение г. В этой процедуре итеративно вычисляется список Ц, содержащий суммы всех подмножеств множества (хы хз,..., х;), которые не превышают Ф. Затем возвращается максимальное значение из списка Ь„. Если Х, — список положительных целых чисел, а х — еще одно положительное целое число, тогда через Ь + х будет обозначаться список целых чисел, полученный из списка Ь путем увеличения каждого его элемента на величину х.

Например, если Ь = (1,2, 3, 5,9), то Ь+ 2 = (3, 4, 5, 7, 11). Воспользуемся этим обозначением и для множеств: Я+ х = (а+ х: з Е Я). Кроме того, нам понадобится вспомогательная процедура Мвкав 1!зтз(Ы,'), которая возвращает отсортированный список, представляющий собой объединение входных списков Ь и Ь' с исключением повторяющихся значений. Время выполнения процедуры Мвипв 1штз, как и время выполнения процедуры Мвксв, используемой для сортировки слиянием и описанной в разделе 2.3.1, ведет себя как О (!Ц + (Ц). (Псевдокод процедуры Мвисв 1!зтз опускается.) Ехлст Бивзвт Бом(Я, 1) 1 и — Д 2 Ьо ~ — (0) 3 тог г' — 1 то и 4 йо Ь; — Мекбв 1лзтз(Ь; ы 2; 1 + х;) 5 Из списка Ь; удаляются все элементы, большие 8 6 гегнгн Максимальный элемент из списка Ь„ Рассмотрим, как работает процедура Ехлст Бивзвт Б0м. Обозначим через Р; множество всех значений, которые можно получить, выбрав (возможно, пустое) подмножество множества (хы хз,..., х;) и просуммировав его элементы.

Например, если Я = (1, 4, 5), то Р = (0,1), Рз = (0,1,4,5), Рз = (0,1,4,5,6,9,10). Воспользовавшись тождеством Р, = Р, О (Р; + х;), (35.21) методом математической индукции по 1 можно доказать (см. упражнение 35.5-!), что Ц вЂ” отсортированный список, содержащий все элементы множества Ро значение которых не превышает 1.

Поскольку длина списка Ь; может достигать 1178 Часть ЧП. Избранные темы значения 2', в общем случае время выполнения алгоритма Ехлст БОвзпт Зим ведет себя как показательная функция, хотя в некоторых случаях, когда величина 1 представляет собой полипом от Д или все содержащиеся в множестве Я числа ограничены сверху полиномиальными величинами от Д, это время также полиномиально зависит от )Я). Схема аппроксимации с полностью полиномиальным временем работы Схему аппроксимации с полностью полиномиальным временем работы, позволяющую получить приближенное решение задачи о сумме подмножеств, можно составить путем "сокращения" каждого списка Ь; после его создания.

Идея заключается в том, что если два значения в списке Х, мало отличаются друг от друга, то для получения приближенного решения нет смысла явно обрабатывать оба эти значения. Точнее говоря, используется некоторый параметр сокращения б, удовлетворяющий неравенству 0 < Б < 1. Чтобы сокравиивь (п1ш) список Ь по параметру б, нужно удалить из этого списка максимальное количество элементов таким образом, чтобы в полученном в результате этого сокращения списке Т,' для каждого удаленного из списка Т, элемента у содержался элемент з, аппроксимирующий элемент у, так что — < з < у.

1+5 Можно считать, что элемент з "представляет" элемент у в списке К т.е. каждый элемент у представлен элементом а, удовлетворяющим уравнению (35.22). Например, если б = 0.1 и Ь = (10,11,12,15,20,21,22,23,24,29), то путем сокращения списка Ь можно получить список Ь' = (10,12,15,20,23,29), где удаленное значение 11 представлено значением 10, удаленные значения 21 и 22 представлены значением 20, а удаленное значение 24 представлено значением 23. Поскольку каждый элемент измененной версии списка является одновременно элементом исходного списка, сокращение может значительно уменьшить количество элементов, сохраняя в списке близкие (несколько меньшие) представляюшие значения каждого удаленного элемента.

Приведенная ниже процедура по заданным параметрам Ь и б сокращает список Ь = (ры рз,..., уы) в течение времени 6 (т); при этом предполагается, что элементы списка Ь отсортированы в монотонно возрастающем порядке. На выходе процедуры получается сокращенный отсортированный список. Глава 35. Приближенные алгоритмы 1179 ТК1м(Ь, б) 1 т -Щ 2 Ь' ~ — (у1) 3 1азг - у1 4 1ог1 — 21о т 5 Йо!1 у; ) 1аз1 (1+ б) 1> у; > 1аз1 в силу с отсортированности списка Ь 6 гнев элемент у; добавляется в конец списка Г 7 1аз1 — у; 8 гегнгп Ь' Элементы списка Ь сканируются в монотонно возрастающем порядке, и в список Ь', который возвращается, элемент помещается, только если это первый элемент списка Ь или если его нельзя представить последним помещенным в список Л' элементом.

Располагая процедурой Тк1 м, схему аппроксимации можно построить следующим образом. В качестве входных данных в эту процедуру передается множество Я = (х1, хз,..., х„), состоящее из и целых чисел (расположенных в произвольном порядке), целевое значение 8 и "параметр аппроксимации" з, где (35.23) 0 < з < 1. Процедура возвращает значение з, величина которого отличается от оптимального решения не более чем в 1 + з раз. АРРкОх БУВзет Ббм(Я, 1, з) 1 и ~- 1'8! 2 Ьо +- (О) 3 1ог г' +- 1 то п 4 йе Ь; +- Мекпе Ь|зтз(Ь; 1, Ь1 1+ кч) 5 Ь1 +- Тк1М(Ь,, з/2п) б Из списка Хз удаляются все элементы, большие 8 7 Пусть з" — максимальное значение в списке Ь„ 8 гегигп з' В строке 2 список Ьо инициализируется таким образом, чтобы в нем содержался только элемент О.

Цикл Тег в строках 3-6 вычисляет отсортированный список Ь;, содержащий соответствующим образом сокращенную версию множества Р;, из которого удалены все элементы, превышающие величину $. Поскольку список Ьз создается на основе списка Ь; ы мы должны гарантировать, что повторное сокращение не вносит слишком большой неточности. Скоро станет понятно, что процедура АРРкОх БОВзет Бим возвращает корректную аппроксимацию, если она существует. Часть Чй.

Избранные темы 1180 В качестве примера рассмотрим экземпляр задачи, где Я = (104, 102, 201, 101), Ф = 308 и е = 0.40. Параметр 6 равен е/8 = 0.05. В процедуре Аггиох Бывает Бим вычисляются приведенные ниже значения (слева от которых указаны номера соответствующих строк): ~о = (О) Строка 2: Ь1 — — (О, 104), Ь| = (О, 104), Ь1 = (0,104), Строка 4: Строка 5: Строка 6: Ьг = (0,102,104,206), Ьг = (О, 102,206), Ьг = (О, 102, 206), Строка 4: Строка 5: Строка 6: Ьз = (О 102,201,206,303,407), Ьз = (0,102 201 303 407) Ьз = (0,102,201,303), Строка 4: Строка 5: Строка 6: Ь4 = (0,101,102,201,203,302,303,404), Ь4 = (0,101,201,302,404) > Ь4 = (О, 101) 201, 302) .

Строка 4: Строка 5: Строка 6: Алгоритм возвращает значение з' = 302, которое приближает оптимальное ре- шение 307 = 104+ 102+ 101 в пределах погрешности е = 40%; фактически погрешность составляет 2М. Теорема 35.8. Процедура Арркох Бивзвт Бом является схемой аппроксимации с полностью полиномиальным временем выполнения, позволяющей решить зада- чу о сумме подмножеств.

Доказательство. В результате сокращения списка Ь; в строке 5 и удаления из этого списка всех элементов, превышающих значение 1, поддерживается свойство, что каждый элемент списка Ь; также является элементом списка Р,. Поэтому значение г', которое возвращается в строке 8, на самом деле является суммой некоторого подмножества множества Я. Обозначим оптимальное решение задачи о сумме подмножества у' е Р„.

Далее, из строки 6 известно, что г' < у'. Согласно неравенству (35Л ), нужно показать, что у'/з' < 1+с. Необходимо также показать, что время работы этого алгоритма выражается полиномиальной функцией и от 1/е, и от размера входных данных. Глава 35. Приближенные алгоритмы 1181 Воспользовавшись индукцией по 1, можно показать, что для каждого не превышающего 1 элемента у из списка Р, существует элемент я Е Ц, такой что у .

(з(у (1+ е/2п)' (35.24) (см. упражнение 35.5-2). Неравенство (35.24) должно выполняться для у' е Р„, поэтому существует элемент я Е Ь„, удовлетворяющий неравенству (1 + е/2п) и, следовательно, ( 2п) (35.25) Поскольку существует элемент х Е Ь„, удовлетворяющий неравенству (35.25), это неравенство должно быть справедливым для элемента з', который имеет самое большое значение в списке Ь„, т.е. (35.26) Осталось показать, что у'/г' < 1+ е. Для этого покажем, что (1+ е/2п)" < < 1+ е. Согласно (3.13), 1пп„(1+ е/2п)" = е'7з.

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

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

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