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

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

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

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

Кроме того, в упражнении 26.4-2 устанавливается граница О (У Е) для суммарного времени, затраченного на выполнение подъемов, а лемма 26.23 устанавливает границу О (У Е) для суммарного числа операций насыщающих проталкиваний. Часть Ч1 Алгоритмы для работы с графами 784 у (~ з т х к, т х х х "у~~ ' 20~ Теорема 26.31. Времявыполненияпроцедуры КньАвнь То Рномтдлялюбойсе- ти С = (1', Е) составляет О (1'з). Доказатвельсвтво. Будем считать "фазой" алгоритма "поднять-в-начало" время между двумя последовательными операциями подъема.

Поскольку всего выполняется О (Ъ'з) подъемов, в алгоритме насчитывается О (Ъ'з) фаз. Каждая фаза сдержит не более Щ обращений к процедуре ПшснАксн, что можно показать следующим образом. Если процедура Рыснлксн не выполняет подъем, то следующий ее вызов происходит ниже по списку Ь, а длина Ь меньше ~Ц. Если процедура 1нзснАкпн выполняет подъем, то следующий ее вызов происходит уже в другой фазе алгоритма. Поскольку каждая фаза содержит не более ~Ц обращений к процедуре П~зснлксн и в алгоритме насчитывается О (Ъ'~) фаз, число вызовов данной процедуры строкой 8 процедуры Килвн. То Рком' составляет О (Ъ'~).Таким образом, цикл ип11е процедуры Кньлвн.

То Ркслчт выполняет работу (не учитывая работу, выполняемую внутри процедуры П1вснлксп), не превышающую О (Ъ'з). Теперь необходимо оценить работу, выполняемую внутри процедуры П~зснАкпп в ходе выполнения данного алгоритма. Каждое выполнение цикла тчЬ!1е в процедуре П[зснАкпн заключается в выполнении одного из трех действий. Проанализируем объем работы при выполнении каждого из них. Начнем с подъемов (строки 4-5). В упражнении 26.4-2 время для выполнения всех О (Ъ'з) подъемов ограничивается пределом О (У Е). Глава 26. Задача о максимальном потоке 785 Теперь предположим, что действие заключается в обновлении указателя ситтепг [и) в строке 8.

Это действие выполняется 0 (дебгее(и)) в том случае, когда вершина и подвергается подъему, что для всех вершин составляет 0(Ъ" !1ейгее(и)) раз. Следовательно, для всех вершин общий объем работы по перемещению указателей в списке соседей составляет 0((ГЕ) согласно лемме о рукопожатиях (упражнение Б.4-1). Третий тип действий, выполняемых процедурой Р!зснАкОе, — операция проталкивания (строка 7). Как уже отмечалось, суммарное число насьпцающих операций проталкивания составляет 0 (Ъ' Е). Если выполняется ненасышающее проталкивание, процедура ь1!ЕснАкОе немедленно выполняет возврат, поскольку такое проталкивание уменьшает избыток до О.

Поэтому при каждом обращении к процедуре Р!зснАеое может выполняться не более одного ненасыщающего проталкивания. Процедура Р!зснАкОе вызывается 0 (!'з) раз, следовательно, общее время, затраченное на ненасыщающие проталкивания, составляет О (!'з). Таким образом, время выполнения процедуры КВЕАВеь ТО РеОнт составляет 0 (1~2 + Ъ'Е), что эквивалентно 0 (Ъ'з). Упражнения 26.5-1. Проиллюстрируйте (используя в качестве образца рис.

26.10) выполнение процедуры КВЕАвеь ТО РЕОнт для сети, представленной на рис. 26.1а. Предполагается, что начальный порядок следования вершин в списке Š— (с1, с2, сз, с4), а списки соседей имеют следующий внд: Ж[и1) = (а,сз)сз), Ф [52) = (3) 01 э сз, с4), )1Г [сз) (с1 ~ с2 ~ е4 ~ 2) 1 1!( [с4) (с21 пз з !) ° *26.5-2.

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

26.5-3. Покажите, что обобщенный алгоритм будет работать, даже если процедура КеьАвеь при обновлении 11 [и) просто использует выражение 11 [и) — Ь [и] + 1. Как это повлияет на оценку времени выполнения процедуры КеьАВеь ТО РкОхт? Часть Ч!. Алгоритмы для работы с графами 786 * 26.5-4. Покажите, что если разгрузке всегда подвергается наивысшая переполненная вершина, метод проталкивания предпотока можно реализовать так, чтобы он выполнялся за время О (Уз). 26.5-5.

Предположим, что в некоторой точке в процессе выполнения алгоритма проталкивания предпотока, существует некоторое целое число б < к < < [Ц вЂ” 1, лля которого нет ни одной вершины с данной высотой, т.е. такой, что Л [с] = /с. Покажите, что все вершины с Л [с] > Л находятся в минимальном разрезе на стороне источника. Если такое значение !с существует, эеристика промежутка (8ар !зеипзйс) обновляет каждую вершину о е $' — е, для которой Л [с] > Й, устанавливая Л [е] — шах(Л [с], [Ц + 1). Покажите, что полученный таким образом атрибут Л является функцией высоты.

(Эвристика промежутка позволяет получить эффективные реализации метода проталкивания предпотока на практике.) Задачи 26-1. Задача о выходе Решетка (йпд) размером и х и — это неориентированный граф, состоящий из и строк и и столбцов вершин, как показано на рис. 26.! 1. Обозначим вершину, находящуюся в 1-й строке и з'-м столбце как (г, з). Каждая вершина решетки имеет ровно по четыре соседа, за исключением граничных вершин, представляющих собой точки (г, з'), для которых 1 = 1, г = и, з' = 1 или з = и. Пусть в решетке задано ги < из стартовых точек (хы у1), (хз, уз), ..., (х,у ).

Задача о выходе (езсаре ргоЫеш) заключается в том, чтобы определить, существует ли ги путей, не имеющих общих вершин, из стартовых точек к любым ги различным точкам границы. Например, решетка на рис. 26.11а имеет выход, а решетка на рис. 26.11б — не имеет. а) Рассмотрим транспортную сеть, в которой вершины, равно как и ребра, имеют пропускные способности, т.е. суммарный положительный поток, входящий в каждую заданную вершину, должен удовлетворять ограничению пропускной способности.

Покажите, что задача определения максимального потока в такой сети, где вершины и ребра имеют пропускные способности, может быть сведена к стандартной задаче о максимальном потоке для транспортной сети сопоставимого размера. б) разработайте эффективный алгоритм решения задачи о выходе и проанализируйте время его выполнения. Глава 26. Задача о максимальном потоке 787 0- — -ч †. -о- †.

? — -»-- .."' ~ --ф — --с- — ф — + — Ф ф- — ~~--- с" — — ф - — ф. --лв О---ф — -С~- -ф- -?--ф --.-. — -~-"-.»» — --с ь- — ° »" - ' — - -с- - —.~." — — - » Рис. 26.11. Решетки для задачи о выходе. Стартовые точки отмечены черным цветом, остальные вершины решетки белые. а) Решетка с выходом, пути указаны цветом.

б) Решетка без выхода 26-2. Задача о минимальном покрытии путями Покрытие путями (рабз сочег) ориентированного графа С = (У, Е)— это множество Р не имеющих общих вершин путей, таких что каждая вершина из множества У принадлежит ровно одному пути из Р. Пути могут начинаться и заканчиваться где угодно, а также иметь произвольную длину, включая О. Минимальным покрытием путями (пйшпплп ра1)з сочег) графа С называется покрытие, содержащее наименьшее возможное юличество путей. а) Предложите эффективный алгоритм поиска минимального покрытия путями ориентированного ациклического графа С = (У,Е).

(Указание: предположив, что У = (1,2,...,п), постройте граф С' = (У',Е'), где / У = (хо,хы...,х„) О(уо,уы...,у„), Е' = ((хо,х;): (б У) 0 ((умуо): з б У) 0((х» уу): (в', у) ЕЕ), и примените алгоритм поиска максимального потока.) б) Будет ли ваш алгоритм работать для ориентированного графа, содержащего циклы? Объясните ваш ответ. 26-3. Эксперименты на кораблях многоразового использования Профессор консультирует НАСА при планировании серии полетов кораблей многоразового использования.

Он должен решить, какие юммерческие эксперименты следует провести и какие инструменты будут на борту во время каждого полета. Для каждого полета рассматривается множество экспериментов Е = (Еы Ез,..., Ет), и коммерческий Часть Ч1 Алгоритмы для работы с графами 788 спонсор эксперимента Е согласен заплатить НАСА р долларов за его результат. В экспериментах используется множество инструментов 1 = = (1п 1з,..., 1„); каждый эксперимент Е требует наличия всех инструментов из некого подмножества В С.1. Затраты перевозки в космическом корабле инструмента 1ь составляют сь долларов. Задача профессора— найти эффективный алгоритм, позволяющий определить, какие эксперименты проводить и какие инструменты размещать на борту корабля при каждом полете, чтобы максимизировать чистый доход, который вычисляется как суммарный доход от выполненных экспериментов минус суммарные затраты на перевозку всех используемых инструментов.

Рассмотрим следующую сеть С. Данная сеть содержит источник а„вершины 1ы 1з,..., 1„, вершины Ез, Ез,..., Е,„и сток г. Для каждого й = = 1, 2,..., и имеется ребро (в, 1ь) с пропускной способностью сы а для каждого з' = 1,2,...,т имеется ребро (Ез,1) с пропускной способностью ру. Если для к = 1, 2,..., и и 1 = 1, 2,..., т выполняется условие 1ь Е В1, то существует ребро (1ь, Е ) неограниченной пропускной способности.

а) Покажите, что если для разреза конечной пропускной способности (Я, Т) сети С Е е Т, то 1ь е Т для всех 1ь е В . б) Покажите, как определить максимальный чистый доход на основании пропускной способности минимального разреза С и заданных значений р . в) Предложите эффективный алгоритм, позволяющий определить, какие эксперименты проводить и какие инструменты брать в каждый полет. Проанализируйте время выполнения вашего алгоритма, выРазив его чеРез т, и и г = 1 ~~йз~.

26-4. Обновление максимального потока Пусть С = (К Е) — транспортная сеть с источниюм а, стоюм 1 и целочисленными пропускными способностями. Предположим, что известен максимальный поток в С. а) Предположим, что пропускная способность некоторого одного ребра (и,е) б Е увеличена на 1. Предложите алгоритм обновления максимального потока с временем выполнения 0 (Ъ'+ Е). б) Предположим, что пропускная способность некоторого одного ребра (и,и) Е Е уменьшена на 1. Предложите алгоритм обновления максимального потока с временем выполнения О (Ъ'+ Е). Глава 26. Задача о максимальном потоке 789 26-5.

Масштабирование Пусть С = (У, Е) — транспортная сеть с источником а, стоком г и целочисленными пропускными способностями с (и, и) всех ребер (и, и) Е Е. Пусть С = тах(„„)енс(и,и). а) Докажите, что минимальный разрез С имеет пропускную способность не более С 1Е). б) Для заданного числа К покажите, что за время О (Е) можно найти увеличивающий путь с пропускной способностью не менее К, если такой путь существует. Для вычисления максимального потока в С можно использовать следующую модификацию процедуры РОКО Р~Л.КНК8ОМ МЕтНОО: МАх Рьотг ВУ БсАыхо(С, а, Ф) 1 С вЂ” щах(„„)ен с(и, и) 2 Инициализация потока Г' значением О З К--2Ряс1 4 зчп11е К > 1 5 до тгЫ1е (пока) существует некоторый увеличивающий путь р с пропускной способностью не менее К 6 йо увеличить г' вдоль р 7 К -К/2 8 геГигп,Г в) Докажите, что процедура Млх Р~ о® Ву Бслымо возвращает максимальный поток.

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

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

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