Главная » Просмотр файлов » Алгоритмы - построение и анализ

Алгоритмы - построение и анализ (1021735), страница 149

Файл №1021735 Алгоритмы - построение и анализ (Алгоритмы - построение и анализ) 149 страницаАлгоритмы - построение и анализ (1021735) страница 1492017-07-10СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Сохранение кратчайших путей Как видно из приведенной ниже леммы, легко организовать изменение весов, удовлетворяющее первому из сформулированных выше свойств. Значения весов кратчайших путей, полученные с помощью весовой функции и, обозначены как Б, а веса кратчайших путей, полученных с помощью весовой функции и, — как д. Лемма 25.1 (Изменение весов сохраняет кратчайшие пути). Пусть дан взвешенный ориентированный граф С = (1г, Е) с весовой функцией ю: Š— В., Глава 25. Кратчайшие пути между всеми парами вершин 727 и пусть Ь: Е -> К вЂ” произвольная функция, отображающая вершины на дей- ствительные числа.

Для каждого ребра (и, о) Е Е определим ю(и,о) = ю(и,о)+ Ь(и) — Ь(о). (25.9) Пусть р = (оо, оы..., оь) — произвольный путь из вершины оо в вершину оь. р является кратчайшим путем с весовой функцией ю тогда и только тогда, когда он является кратчайшим путем с весовой функцией ю, т.е. равенство ю(р) = = д (оо, оь) равносильно равенству ю (р) = б (оо, оь).

Кроме того, граф С содержит цикл с отрицательным весом с использованием весовой функции ю тогда и только тогда, когда он содержит цикл с отрицательным весом с использованием весовой функции ю. Доказательство. Начнем с того, что покажем справедливость равенства ю (Р) = ю (р) + Ь (оо) — Ь (оь) Запишем цепочку соотношений (25.10) ь ю (Р) = ~~ ю (о>-» о>) = >=1 ь (ю(о> ыо;)+ Ь(о; 1) — Ь(о;)) >=1 ь = ~~ 'ю (о;-ыо;) + Ь(оо) — Ь(оь) = >=1 = ю (Р) + Ь (оо) — Ь (оь), ю (с) = ю (с) + Ь (оо) — Ь (оь) = ю (с), где предпоследнее равенство легко получается из "телесюпичностн" суммы разностей. Таким образом, вес любого пути р из вершины оо в вершину оь равен ю (р) = = ю (р)+Ь (оо) — Ь (оя).

Если один путь из вершины оо в вершину оь короче другого с использованием весовой функции ю, то он будет короче и с использованием весовой функции ю. Таким образом, равенство ю(р) = Б(оо,оь) выполняется тогда и только тогда, когда ю (р) = Б (оо, оь).

Наюнец, покажем, что граф С содержит цикл с отрицательным весом с использованием весовой функции ю тогда и толью тогда, когда он содержит такой цикл с использованием весовой функции ю. Рассмотрим произвольный цикл с = = (оо, оы..., оь), где оо = оь. В соответствии с уравнением (25.10), выполняется соотношение Часть Ч1. Алгоритмы для работы с графами 728 а следовательно, вес цикла с будет отрицательным с использованием весовой функции ю тогда и только тогда, когда он отрицательный с использованием весовой функции и. Генерация неотрицательных весов путем их изменения Следующая наша цель заключается в том, чтобы обеспечить выполнение второго свойства: нужно, чтобы величина и (и,п) была неотрицательной для всех ребер (и, и) е Е.

Для данного взвешенного ориентированного графа С = (1г, Е) с весовой функцией ю: Š— К мы создадим новый граф С' = (Ъ", Е'), где 1" = У 0 (з) для некоторой новой вершины з ф Ъ' и Е' = Е О ((з, о): с Е Ъ"). Расширим весовую функцию ю таким образом, чтобы для всех вершин ю е У выполнялось равенство тз (з, с) = О. Заметим, что поскольку в вершину з не входит ни одно ребро, эту вершину не содержит ни один кратчайший путь графа С' отличный от того, который исходит из ж Кроме того, граф С' не содержит циклов с отрицательным весом тогда и толью тогда, югда таких циклов не содержит граф С. На рис. 25.6а показан граф С', соответствующий графу С на рис.

25.1. Теперь предположим, что графы С и С' не содержат циклов с отрицательным весом. Определим для всех вершин о е 1г' величину й(п) = б(з, и). Согласно неравенству треугольника (лемма 24.10), для всех ребер (и, и) Е Е' выполняется соотношение Ь(о) < 6(и) + ю (и,о). Таким образом, если мы определим новые веса в в соответствии с уравнением (25.9), то получим и (и, о) = ю (и, с)+6 (и)— — л (с) > О, так что второе свойство удовлетворяется. На рис. 25.6б показан граф С', полученный в результате переопределения весов графа, изображенного на рис.

25.6а. Вычисление кратчайших путей между всеми парами вершин В алгоритме Джонсона, предназначенном для вычисления кратчайших путей между всеми парами вершин, используется алгоритм Беллмана-Форда (раздел 24.1) и алгоритм Дейкстры (раздел 24.3), реализованные в виде подпрограмм. Предполагается, что ребра хранятся в виде списков смежных вершин.

Этот алгоритм возвращает обычную матрицу .0 = 4 размером )У! х Щ, где 4~ — — б (г, т), или выдает сообщение о том, что входной граф содержит цикл с отрицательным весом. Предполагается, что вершины пронумерованы от 1 до ~Ц„что типично для алгоритмов„предназначенных для поиска кратчайших путей между всеми парами вершин.

Глава 25. Кратчайшие пути между всеми парами вершин 729 3онмзон(С) 1 Строится граф С', где Ъ'[С'] = 1'[С] 0 (а), Е[С'] = Е[С] 0 ((з,и): и Е У[С]) и ю(в,и) = 0 для всех и 61'[С] 2 11' Вн~~.мАн Рокр(С', ю, в) = гл~.зн 3 1йеп рйп1 "Входной граф содержит цикл с отрицательным весом" 4 е1ве 1ог (для) каждой вершины и Е 1'[С'] 5 по присвоить величине Ь(и) значение 6(а, и), вычисленное алгоритмом Беллмана-Форда 6 1ог (для) каждого ребра (и, о) е Е[С'] 7 оо ю(и, и) — ю(и, и) + Ь(и) — Ь(и) 8 1ог (для) каждой вершины и Е 'г'[С] 9 оо вычисление с помощью алгоритма Вцкзткл(С, ю, и) величин б(и, о) для всех вершин о е У[С] 1ог (для) каждой вершины и Е Ъ'[С] йо И „— д(и, и) + Ь(о) — Ь(и) гегцгп Р В этом коде просто выполняются описанные ранее действия. В строке 1 строится граф С'.

В строке 2 выполняется алгоритм Беллмана-Форда с входным графом С', весовой функцией ю и истоком в. Если граф С', а следовательно, и граф С содержит цикл с отрицательным весом, об этом выводится сообщение в строке 3. В строках 4-11 предполагается, что граф С' не содержит циклов с отрицательным весом. В строках 4-5 для всех вершин и е 1"' величине Ь (о) присваивается вес кратчайшего пути 6 (в, и), вычисленный алгоритмом Беллмана-Форда. В строках 6-7 для каждого ребра вычисляется новый вес ю. Для каждой пары вершин и, и е 1' цикл 1ог в строках 8-11 вычисляет вес кратчайшего пути ю (и, о) путем однократного вызова алгоритма Дейкстры для каждой вершины из множества $'.

В строке 11 в элемент матрицы и'„„заносится корректный вес кратчайшего пути 6 (и, о), вычисленный с помощью уравнения (25.10). Наконец, в строке 12 возвращается вычисленная матрица Р. Работа алгоритма Джонсона проиллюстрирована на рис. 25.6. Если неубывающая очередь с приоритетами реализована в алгоритме Дейкстры в виде пирамиды Фибоначчи, то время работы алгоритма Джонсона равно 0 (Уз 18 У + 1' Е). Более простая реализация неубывающей очереди с приоритетами приводит к тому, что время работы становится равным О (У Е 18 Ъ'), но для разреженных графов эта величина в асимптотическом пределе ведет себя лучше, чем время работы алгоритма Флойда-Варшалла. 730 4 н з ы Рис.

25.6. Работа алгоритма Джонсона, предназначенного для поиска кратчайших путей между всеми парами вершин, с графом, изображенным на рнс. 25.1 Упражнения 25.3-1. Вычислите с помощью алгоритма Джонсона кратчайшие пути между всеми парами вершин в графе, изображенном на рис. 25.2. Приведите значения Ь и ш, вычисленные зтим алгоритмом. 25.3-2. Зачем в множество 11 добавляется новая вершина а, в результате чего создается множество г'? «о /; о Часть Ч1. Алгоритмы для работы с графами 731 Глава 25.

Кратчайшие пути между всеми парами вершин 25.3-3. Предположим, что для всех ребер (и, о) Е Е выполняется неравенство ю (и, о) > О. Как между собой взаимосвязаны весовые функции ю и ю? 25.3-4. Профессор утверждает, что изменить веса ребер можно проще, чем это делается в алгоритме Джонсона. Для этого надо найти ю' = ппп1„„1еЕ ~ю (и, о)) и для всех ребер (и, о) Е Е принять ю (и, о) = = ю (и,о) — ю'. Где кроется ошибка в методе, предложенном профессором? 25.3-5.

Предположим, что алгоритм Джонсона выполняется для ориентированного графа С с весовой функцией ю. Покажите, что если граф С содержит цикл с с нулевым весом, то для всех ребер (и, о) этого цикла ю(и,и) = О. 25.3-6. Профессор утверждает, что нет необходимости создавать новую вершину-исток в строкс 1 алгоритма Уоннзон. Профессор считает, что вместо этого можно использовать С' = С, а в роли вершины з использовать любую вершину из множества Ъ' 1С]. Приведите пример взвешенного ориентированного графа С, для которого воплощение идеи профессора в алгоритме 3оннзон даст неправильный ответ. Затем покажите, что если граф С строго связан (каждая его вершина достижима из любой другой вершины), то результаты работы алгоритма 3оиызон с учетом модификации профессора будут верны.

Задачи 25-1. Транзитивиое замыкание динамического графа Предположим, что нужно поддерживать транзитивное замыкание ориентированного графа С = (К Е) по мере добавления ребер в множество Е. Другими словами, после добавления каждого ребра нужно обновить транзитивное замыкание добавленных до этого времени ребер. Предположим, что граф С изначально не содержит ребер, и что транзитивное замыкание должно быть представлено в виде булевой матрицы. а) Покажите, каким образом после добавления нового ребра в граф С транзитивное замыкание С' = (1; Е*) графа С = (1', Е) можно обновить в течение времени 0 (Уз).

б) Приведите пример графа С и ребра е такой, что обновление транзитивного замыкания после добавления ребра е в граф С будет выполняться в течение времени Й (уз) независимо от используемого алгоритма. в) Разработайте эффективный алгоритм обновления транзитивного замыкания по мере добавления ребер в граф. Для любой последова- Часть ЧЬ Алгоритмы для работы с графами 732 тельности и добавлений общее время работы этого алгоритма должно быль равно 2,," 1; = О (Уз), где Ц вЂ” время, необходимое для обновления транзитивного замыкания при добавлении 1-го ребра.

Докажите, что в вашем алгоритме достигается указанная граница времени работы. 25-2. Кратчайшие пути в е-плотном графе Граф С = (У, Е) называется е-плотным (е-депзе), если )Е! = 9 (Уз+') для некоторой константы О < е < 1. Если в алгоритмах, предназначенных для поиска кратчайших путей в е-плотных графах, воспользоваться И-арными неубывающими пирамидами (см. задачу 6-2), то время их выполнения может быть сопоставимо времени выполнения алгоритмов, основанных на применении пирамиды Фибоначчи.

При этом удается обойтись без сложных структур данных. а) Чему равно асимптотическое время работы алгоритмов 1нзвкт, ЕхткАст Мпч и Рвскелзн Кну в зависимости от кратности И и количества элементов Ы-арией неубывающей пирамиды и? Чему равно время работы этих алгоритмов, если выбрать И = 0(п'*), где О < а < 1 — некоторая константа? Сравните время работы этих алгоритмов с амортизированными стоимостями этих операций для пирамиды Фибоначчи.

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

Тип файла
DJVU-файл
Размер
18,3 Mb
Тип материала
Высшее учебное заведение

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

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