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

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

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

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

г) Покажите, что каждый раз, когда выполняется строка 4, пропускная способность минимального разреза остаточного графа Су составляет не более 2К1Е). д) Докажите, что внутренний цикл тгп11е в строках 5-6 при каждом значении К выполняется О (Е) раз. е) Покажите, что процедуру МАХ Рьов Ву БсАымо можно реализовать так, что она будет выполняться за время О (Ез 18 С). 26-6. Отрицательная пропускная способность Предположим, что в транспортной сети ребра могут иметь как положительную, так и отрицательную пропускную способность.

В такой сети не обязательно существует допустимый поток. а) Рассмотрим некоторое ребро (и,и) сети С = (К, Е), пропускная способность которого с (и, и) < О. Кратко поясните, что такая отрицательная пропускная способность означает в плане потока между и и и, каков ее "физический смысл". Часть Ч!. Алгоритмы для работы с графами 790 Пусть С = (У,Е) — некоторая транспортная сеть с отрицательными пропускными способностями, и пусть з и г — источник и сток данной сети.

Построим обычную транспортную сеть С' = (Г, Е') с функцией пропускной способности с', источником з' и стоком г', где Е' =.ЕО((и,е): (и,и) ЕЕ) О ((з 1е): е Е У) 0 ( (и, т'): и Е У~ О ((з, т), (г, з) ) . Присвоим ребрам пропускные способности следующим образом.

Для каждого ребра (и, е) е Е присвоим с' (и, п) = с' (е, и) = (с (и, е) + с (п, и) ) /2. Для каждой вершины и е У' присвоим с' (з', и) = шах (О, (с (У, и) — с (и, У)) /2) с' (и, Ф') = шах (О, (с (и, У) — с (У и) )/2) . Присвоим также с'(з,т) = с'(т,з) = оо. б) Докажите, что если в С существует допустимый поток, то все пропускные способности в С' неотрицательны и в ней существует максимальный поток, такой что все входящие в сток г' ребра являются насыщенными. в) Докажите утверждение, обратное утверждению пункта б).

Доказательство должно быть конструктивным, т.е. если задан поток в С', насыщающий все ребра, входящие в г', вам нужно показать, как получить допустимый поток в С. г) Разработайте алгоритм, который находит максимальный допустимый поток в С. Обозначим через МГ(Щ, ~Е0 наихудшее время выполнения стандартного алгоритма поиска максимального потока в графе с Щ вершинами и ~Е~ ребрами. Проанализируйте время выполнения вашего алгоритма вычисления максимального потока в транспортной сети с отрицательными пропускными способностями, выразив его через МЕ. Глава 26. Задача о максимальном потоке 791 26-7.

Алгоритм Хопкрофта-Карпа поиска паросочетания в двудольном графе В данной задаче представлен более быстрый алгоритм поиска максимального паросочетания в двудольном графе, предложенный Хопкрофтом (Норсгой) и Карпом (Катр). Этот алгоритм выполняется за время 0 (~ЯЕ). Задан неориентированный двудольный граф С = (У, Е), где Ъ' = ЕАЗА и у всех ребер ровно одна точка находится в Ь.

Пусть М вЂ” паросочетание в С. Мы говорим, что простой путь Р в С является увеличиваиниим иуизем (ап(рпеп11пя ра11з) по отношению к М, если он начинается в некоторой свободной вершине множества Ь, заканчивается в некоторой свободной вершине В, а его ребра попеременно принадлежат М и Е— — М. (Это определение увеличивающего пути связано с определением увеличивающего пути в транспортной сети, но несколько отличается от него.) В данной задаче путь трактуется как последовательность ребер, а не последовательность вершин. Кратчайший увеличивающий путь по отношению к паросочетанию М вЂ” это увеличивающий путь с минимальным числом ребер. Для заданных двух множеств А и В, симметрическая разность (зушше1йс ййегепсе) А ® В определяется как (А — В) 0 ( — А), т.е.

это элементы, которые входят ровно в одно из двух множеств. а) Покажите, что если М вЂ” некоторое паросочетание, а Р— увеличивающий путь по отношению к М, то симметрическая разность множеств М ® Р является паросочетанием, и ~М9 Р~ = ~М)+ + 1. Покажите, что если Рм Рз,..., Рь — увеличивающие пути по отношению к М, не имеющие общих вершин, то симметрическая разность М Ю (Р1 0 Рз 0. 0 Рь) является паросочетанием с мощностью ~М~ + 1с.

Общая структура алгоритма имеет следующий вид: НОРскОгт КАВР(С) 1 М+-О 2 гереа1 3 П сть Р у — (Ры Рз,..., Рь ) максимальное множество кратчайших увеличивающих путей по отношению к М, не имеющих общих вершин М вЂ” М Е (Р1 О Рз О " 1з Рь) 5 нп111 'Р = 6 б ге1пгп М 792 Часть Ч( Алгоритмы для работы с графами Далее в этой задаче вам предлагается проанализировать число итераций данного алгоритма (т.е. число итераций цикла гереат) и предложить реализацию строки 3.

б) Для двух заданных паросочетаний М и М' в С покажите, что каждая вершина графа О = (У, М ® М') имеет степень не больше 2. Сделайте вывод, что С' является обьединением непересекающихся простых путей или циклов. Докажите, что ребра каждого такого простого пути или цикла по очереди принадлежат М и М*. Докажите, что если ~М~ ( (М'), то М Щ М* содержит как минимум )М'! — )М( увеличивающих путей по отношению к М, не имеющих общих вершин.

Пусп ) — длина кратчайшего увеличивающего пути по отношению к паросочетанию М и пусть Ры Рз,..., Рь — максимальное множество увеличивающих путей длины 1 по отношению к М, не имеющих общих вершин. Пусть М' = М 9 (Рт 0 Рз О 0 Рь) и предположим, что Р— кратчайший увеличивающий путь по отношению к М'. в) Покажите, что если Р не имеет общих вершин с Ры Рз,..., Ры то Р содержит больше чем ( ребер. г) Теперь предположим, что Р имеет общие вершины с Ры Рз,..., Ры Пусть А — множество ребер (М ® М') ® Р.

Покажите, что А = = (Рт 0 Рз О . О Рь) 9 Р и что ~А~ > (й + 1) 1. Покажите, что Р содержит более ( ребер. д) Докажите, что если кратчайший увеличивающий путь для М содержит 1 ребер, то размер максимального паросочетания составляет не более (М)+ Я/() + 1). е) Покажите, что число повторений цикла гереат в данном алгоритме не превышает 2т/Г.

(Уииалие: на сколько сможет вырасти М после итерации номер т(Г?) ж) Предложите алгоритм для поиска максимального множества кратчайших увеличивающих путей Ры Рз,...,Рь для заданного паросочетания М, не имеющих общих вершин, время работы которого — О (Е). Покажите, что суммарное время выполнения процедуры Норскогт Клнв составляет О ( /7Е).

793 Глава 26. Задача о максимальном потоке Заключительные замечания Транспортные сети и связанные с ними алгоритмы рассматриваются в работах Ахуя (АЬща), Магнанти (Майпапй) и Орлина (Ог!ш) [7], Ивена (Ечеп) [87], Лоулера (1.а~ч1ег) [196], Пападимитриу (Рараг)(ш1птои) и Стейглица (Иге(8!йк) [237], Таржана (Тапап) [292]. Широкий обзор алгоритмов для задач поиска потоков в сетях можно найти также в книге Голдберга (Оо!дЬегй), Тардоса (Тап1оз) и Таржана [119]. В работе Шрайвера (БсЬг1]чег) [267] предлагается интересный исторический обзор исследований в сфере транспортных сетей.

Метод Форда-Фалкерсона представлен в работе Форда (Рогд) и Фалкерсона (РиПсегзоп) [93], которые являются основоположниками формальных исследований ряда задач в области транспортных сетей, включая задачи поиска максимального потока и паросочетаний. Во многих ранних реализациях метода Форда-Фалкерсона поиск увеличивающих пугей осуществляется с помощью поиска в ширину; Эдмонде (Ейпопдз) и Карп (Кшр) [86] и, независимо от них, Диниц (Ейшс) [76] доказали, что такая стратегия дает полиномиальный по времени алгоритм.

Диницу [76] также принадлежит идея использования "тупиковых потоюв™ (Ыос1с1п8 йод з); предпотоки впервые предложил Карзанов (Кагхапоч) [176]. Метод проталкивания предпотока описан в работах Голдберга [117] и Голдберга и Таржана [121]. Голдберг и Таржан приводят алгоритм со временем работы О (Уз), в котором для хранения множества переполненных вершин используется очередь, а также алгоритм на основе использования динамических деревьев, время работы которого достигает О (УЕ18 (Уз(Е+ 2)). Неюторые другие исследователи разработали алгоритмы проталкивания предпотока для поиска максимального потока.

В работах Ахуя и Орлина [9] и Ахуя, Орлина и Таржана [10] приводятся алгоритмы, использующие масштабирование. Чериян (СЬепуап) и Махешвари (МаЬезЬчаг)) [55] предложили проталкивать поток из переполненной вершины с максимальной высотой. В работе Черияна и Хейджерапа (Найегпр) [54] предлагается использовать случайные перестановки списков соседей; другие исследователи [14, 178, 241] развили данную идею, предложив искусные методы дерандомизации, что позволило получить ряд более быстрых алгоритмов.

Алгоритм, предложенный Кингом (Кшй), Рао (Као) и Таржаном [178], является самым быстрым из них — время его работы составляет О(УЕ 1обе (~,,я,~) У). Асимптотически самый быстрый из известных в настоящее время алгоритмов для задачи максимального потока разработан Голдбергом и Рао [120], время его работы равно О(ш)п(уз7з, Е ч ~) Е 18(у~/Е+ 2) 18 С), где С = шах(„„)ее с (и, и). Этот алгоритм не использует метод проталкивания предпотока, он основан на нахождении тупиковых потоков.

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

На практике на сегодняшний день при решении задач поиска максимального потока алгоритмы проталкивания предпотока превосходят алгоритмы, основанные на увеличивающих путях и линейном программировании. В исследованиях Черкасски (СЬег1сазз1су) и Голдберга 156] подчеркивается важность использования при реализации алгоритма проталкивания предпотока двух эвристик. Первая состоит в том, что в остаточном графе периодически производится поиск в ширину, чтобы получить более точные значения высот.

Вторая эвристика — это"эвристика промежутка" (яар леппзг1с), описанная в упражнении 26.5-5. Авторы пришли к заключению, что наилучшим вариантом метода проталкивания предпотока является вариант, в котором для разгрузки выбирается переполненная вершина с максимальной высотой. Наилучший известный к настоящему времени алгоритм поиска максимального паросочетания (описанный в задаче 26-7) был предложен Хопкрофтом (Норстой) и Карпом (Кар) 1152]; время его работы составляет О (т/ГЕ). Задачи поиска паросочетаний подробно рассматриваются в книге Ловаса (1.отазг) и Пламмера (Р!шшпег) 1207]. Введение Эта часть содержит избранные темы теории алгоритмов, расширяющие и дополняющие материал, ранее изложенный в данной книге. В некоторых главах вводятся новые вычислительные модели, такие как комбинационные схемы или параллельные вычислительные машины.

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

В главе 27 представлена параллельная модель вычислений: сравнивающие сети. Грубо говоря, сравнивающая сеть — это алгоритм, основанный на одновременном выполнении большого количества сравнений. В этой главе показано, как построить сравнивающую сеть, позволяющую сортировать п чисел за время 0()8' ). В главе 28 изучаются эффективные алгоритмы, предназначенные для работы с матрицами. После изучения некоторых основных свойств матриц исследуется алгоритм Штрассена (81газзеп), позволяющий перемножить две матрицы и х и за время 0 (пз а|). Затем представлены два общие метода 1.()-разложения и )Л)Р- разложения, предназначенные для решения системы линейных уравнений по методу Гаусса (методу исключений) за время 0 (пз).

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

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

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