Главная » Просмотр файлов » В.А. Емеличев, О.И. Мельников, В.И. Сарванов, Р.И. Тышкевич - Лекции по теории графов

В.А. Емеличев, О.И. Мельников, В.И. Сарванов, Р.И. Тышкевич - Лекции по теории графов (1083735), страница 64

Файл №1083735 В.А. Емеличев, О.И. Мельников, В.И. Сарванов, Р.И. Тышкевич - Лекции по теории графов (В.А. Емеличев, О.И. Мельников, В.И. Сарванов, Р.И. Тышкевич - Лекции по теории графов) 64 страницаВ.А. Емеличев, О.И. Мельников, В.И. Сарванов, Р.И. Тышкевич - Лекции по теории графов (1083735) страница 642019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Вычислитель- ные затраты максимальны, когда вершина 1 получает по- 345 стоянную метку последней и граф С является полным. В этом случае число итераций алгоритма равно ~С~ — 1, т. е. каждый из пп. 2 — 4 выполняется !С~ — 1 раз. Очевидно, что п. 4 выполняется за вромя 0(1), а для выполнения каждого из пп. 2, 3 достаточно времени О(!С!). 7'-б 5-5 д= дсд 7=7 д=д д=д г=г д=5 5 д=д д 7=г , г=д д-5 з д=д 7гд д=д 7=7 д=д г=г г=д д5 5 дьт Рнс. 70Л Построение пути с помощью меток 0 моя по осуществить, затратив не более 0(~6!) опораций.

Таким образом, в целом время построения кратчайп5его (5, д)-пути пе превосходят 0(~С)з). < 346 Пример 1. На рис. 76.1 изображены пять копий 6, (й = 1, 5) графа 6, каждая из которых отражает ситуацию, сложившуюся после очередной итерации алгоритма. Около каждой дуги написан ее вес. Вершинам копии Сз (Й = 1, 5) приписапы метки, полученные ими в резуль-~ тате выполнения первых я итераций. Некоторые дуги обведепы жирными линиями, т. е. отмечены. Добавление такой дуги (а, Ь) при переходе от С„к С„~~ означает, что вершила Ь получила свою метку 1(Ь) из а и эта метка стала постоянной на (к+1)-й итерации.

Вершина в нашем примере получает постояппую метку последней, и отмеченные дуги Сз образуют дерево кратчайших путей из ю При решепии мпогих задач возникает необходимость отыскапия в кевзвешепном графе (г, 1)-пути с минимальяым количеством дуг. Такой путь, очевидно, можно яайти с помощью алгоритма Дийкстры. Для этого достаточно присвоить всем дугам графа 6 веса, равпые 1, и применить алгоритм Фз. Проследим работу алгоритма в этой ситуации, обращая особое внимание па последовательпость, в которой вершины графа С получают постоянные метки. Очевидно, что вначале постоянные метки 1= 1 получат все вершины мпожества Г(з).

Затем метка 1=2 будет присвоена концам дуг, выходящих из Г(з). Вообще, постоянную метку 1=Й получают еще пе помеченные вершины, являющиеся концами дуг, исходящих из вершин с метками (= и — 1. Этот процесс обхода (и присвоения меток) воршип графа называют поиском в ширияу в графе (па интуитивном уровпе поиск в ширину описан в з 9). По окончании поиска в ширину метка ((х) вершины х раева минимальному числу дуг в (з, х)- пути. Как и ранее, сам этот путь определяется метками О. Осуществление поиска в ширину с помощью алгоритма Дийкстры связано, как мы зпаем, с вычислительными затратами 0(~С~э). Рассмотрим алгоритм .Фв, осуществляющий поиск в ширину за время 0(~ЕС~).

В этом алгоритме метки 1 и 0 играют ту же роль, что и в предыдущем, с той, однако, разпицей, что метки ( пе делятся па временные и постоянные. Как только вершина х получает метку ((х)ть, эта метка сразу становятся постоянной (т. е. окопчательной). За счет этого, в частности, достигается экономия времени вычислений по сравнению с алгоритмом Дийкстры. Особую роль в алгоритме .Фг играет список ф. Каждая вершина графа один раз заносится в этот список и один раз из него вычеркивается. При этом вычеркивается все время первая (па данный момент) вершина этого списка, а только что добавленная вершина всегда является последней в списке, т. е.

~ — очередь. Вначале в (т' находится единственная вершина г, 1(г) = О, а все остальные вершины меток не имеют. Общая итерация состоит в следующем. Выбирается первая вершина х в списке 1т. Каждой непомеченной вершине ужГ(х) присваиваются метки 1(у) =1(х)+ 1 и 0(у)=х, после чего вершина у становится последней в списке ф, а вершина х удаляется из ф. Алгоритм прекращает работу, как только в (т' не останется ни одной вершины.

При этом вершины, достижимые из г, будут иметь метки, а недостижимые — нет. Для быстрого выполнения операций вычеркивания и включения элементов в О используются переменные указатели р и д — адреса первой и последней занятых ячеек списка (т соответственно. Будем считать, что граф С задан списками смежности и Ж, — список, содержащий концы всех дуг, исходящих из вершины о.

Алгоритм,Мв поиска в ширину. 1. (~(1):= г, р:= 1, д:= 1, 1(г):= О. 2. х:= ~7(р), пг:= 1Г(х)! (выбрана первая вершина х очереди Я . (Пп. 3 — 5 — присвоение меток непомеченным вершинам из Г(х)]. 3, й:=1. 4. Если вершияа у=А'„(й) имеет метку, то перейти к п.

5. Иначе 1(у):=1(х)+ 1, 0(у):= х, д:= д+ 1, (т(д):= у (вершина у помечена и включена в очередь Я и перейти к п. 5. 5. Если й = и, то перейти к п. 6, иначе й:= й+ 1 и перейти к п. 4. 6. р:= р+ 1 (вершина х исключена из Я. 7. Если р) д, то конец (Ч=~, т. е. все вершины, достижимые из г, получили метки), иначе перейти к п. 2. У т в е р ж д е н и е 76.2. Алгоритм,Фв присваивает метки 1 и 0 всем вершинам графа, достолсимым иэ вершины г эа время 0(!ЕС~). Лрп этом (г, ..., Ог(х), 0'(х), 0(х), х) — (г, х)-путь с минимальным числом дуе, а 1(х) — число дуэ в этом пути. ~' Основные вычислительные затраты связаны с выполнением п.

3 алгоритма. Суммарное время выполнения 348 этого пункта составляет 0 ( ~ ) Ж )) = 0((ЕС ~), по- ~ иго скольку каждый из списков Ж„просматривается в точности один раз. Затраты па выполнение других пунктов, очевидно, не превосходят этой величины. Бэппе отмечалось, что результаты алгоритма Фз (т. е. метки 1 и О) те же, что и в алгоритме Дийкстры, если каждой дуге графа 6 приписать вес, равный 1. Поэтому справедливость второго утверждения следует нз утверждения 76.1. <з 3 а м е ч а н и е 4. Иногда требуется искать пути из вершин множества Х~ г'6 во все остальные вергпнны. Для решения этой задачи достаточно слегка модифицировать алгоритм Фз, изменив в нем п.

1. Именно, в список 0 следует поместить все вершины множества Х и положить 1(х) = О для каждой вершины хее Х. На модифицированный таким образом алгоритм .Фз будем ссылаться как па поиск в ширину из множества Х. Перейдем теперь к рассмотрению общей ситуации. Будем считать, что в графе 6 допускаются дуги отрицательного веса. Предлагаемый ниже алгоритм .М7 строит в таком графе кратчайшие пути между всеми парами вершин графа при условии, что в графе нет отрицательных контуров (контуров отрицательного веса).

Если же такой контур в графе имеется, то алгоритм сообщает об этом и прекращает работу, оставляя задачу отыскания кратчайшего пути перешешшй (см. ниже замечание 6). Будем считать, что граф С, ~6~ =и, задан матрицей весов И'=1И'вз, т. е. И'и=и~(1, 1), если (1, 1)~ЛС, и И'в= в противном случае. Кроме того, полагаем И'э= О для всех 1=1, 2, ..., и. Алгоритм основан на следующих соображениях. Пусть 1, у, й — три любые вершипы графа С, и мы хотим получить (1, 1)-путь, кратчайший среди (1, 1')-путей, пе содержащих внутренних вершин, отличных от й. Очевидно, что для этого достаточно выбрать меньшую из двух величин И'е и И'„+ + Ип, которая и будет весом такого (1, 1)-пути. Если зафиксировать й и проделать эту операцию (назовем ее 1-операиией, примененной к индексу й) для всех пар (1, 1), то получим матрицу И" =1И'О1, у которой И'ц = ппп(И'ц, И'за + И'хп) Оказывается (это будет позднее доказано), имея матрицу И" весов кратчайших путей, проходящих только через вершины мпоязества Я = 'г'6, можно получить такую яге матрицу для путей, проходящих через множество Я О (т), т Ф Я.

Для этого доста- 349 точно применить 1-операцию к индексу лг н всем элементам матрицы И". Именно в этом и состоит итерация алгоритма,Фн который, начиная с И'з = И', строит такую последовательность матриц И'з, И', ..., И'", что И™ получается из И' ' применением т-операции к индексу т и матрице И' '. Если в графе 6 нет отрицательных контуров, то элемент И';; матрицы И™ при каждом т равен весу кратчайшего (г, 1)-пути, все впутренпие вершины которого принадлежат множеству (1, 2, ..., т). Таким образом, последняя из этих матриц, И'", содержит веса кратчайших путей между всеми парами вершин графа. Для того чтобы после окончания работы алгоритма иметь возмонсность быстро найти кратчайший путь между любой парой вершин, будем на к-й итерации вместе с матрицей $Р строить матрицу Р~ =1Р~;1 Вначале полагаем Р;; = 1(1,у = 1, п). Далее, на й-й итерации по- Й Й вЂ” 1 лб Й вЂ” 1 И'ц = И'о, ~+ И'ц, ~.

Таким образом, Р~; — номер вершины, предшествующей вершине 1 в текущем (ю', 1)-пути, т. е. в кратчайшем (1, 1)-пути, все внутренние вершины которого содержатся в множестве (1, 2, ..., л). Матрица Р =1Рн~~ играет ту же роль, что и метки О в предыдущих алгоритмах ззз и .Фз. С помощью этой матрицы кратчайший (1, 1)-путь Л(1, 1) определяется следующим образом: Л(1, 1)=(1, ..., Ь, (н (п 1), где )', = Рй, в, а )2 мг> Уз ны Алгоритм .Фт отыскания кратчайших путей между всеми парами вершин.

1. И":= Иг, й:=1, Р:='~)Р',;~(, где Р';; =1, если И"О~ со, и Р;; = О в противном случае. 2. Выполнить для всех 1, у=1, гы если И'е, '(И'"";ь '+ + И~а,", Р,:= Рьг'. 3. Если для некоторого 1, 1 ~1( п, И'ц< О, то конец [в графе имеется отрицательный контур). Иначе перейти к п. 4. 4, й:= й + 1. Если к = п + 1, то конец ~И'" = 1 И'ч'1— матрица весов кратчайших путей, определяемых с помощью матрицы Р =1Р;;Ц. 3 а м е ч а н и е 5. Алгоритм будет применим к смешанным графам, если каждое неориептированное ребро заменить на две дуги того же веса (см. замечание 2).

350 При этом следует учесть, что неориентированное ребро отрицательного веса сразу приводит к отрицательному контуру. 3 а м е ч а к и е 6. Алгоритм «отказывается» строить кратчайшие пути, когда в графе 6 имеются отрицательные контуры. Б этом случае задача отыскания кратчайшего пути между двумя вершинами (или между всеми парами вершин) остается корректной, но становится очень трудной.

Можно показать, что она не менее трудна, чем, например, задача о коммивояжере. Переидом теперь к обоснованию алгоритма мР» и оценке его трудоемкости. Утверждение 76.3. Пусть взвешенный ориентированный мультиграф Л имеет зйлерову цепь, соединяю»цую вершины а и Ь. Если в Л нет отрицательных контуров, то в нем имеется такой (а, Ь)-путь Р, что ш(Л)~ ш(Р).

> Будем считать, что мультиграф Л не является путем (иначе утверждение тривиально). Поэтому он содержит некоторый контур Я. Удалив из Ь все дуги этого контура, получим мультиграф Е. Поскольку ш(Я)~0, то ш(А)> ш(Л'). Кроме того, согласно теореме 65.2 полустепени вершин мультиграфа Л' удовлетворяют соотношениям г)"(а) = а' (а) + 1, а (Ь) = й+(Ь) + 1, а+ (о) = и (о), о Ф а, Ь.

Поэтому вершины а и Ь принадлежат одной его слабой компоненте Е", и последняя содержит эйлерову (а, Ь)-цепь. Продолжая подобным образом, получим требуемый (а, Ь)-путь. 4 Утверждение 76.4. Если в графе нет отрицательных контуров, то при всех к, », 1= 1, и Итп — вес кратчайшего (~, 1)-пути, все внутренние вершины которого содержатся в множестве (1, 2, ..., (г).

> Доказываем индукцией по к. При )г = 1 справедливость утвер»кдения очевидна. Предположим, что оно справедливо для 2, 3, ..., й — 1, и рассмотрим Иф. Пусть Р' — кратчайший (», 1)-пут»и все внутренние вершины которого принадлежат множеству (1, 2, ..., к). Если Р» не включает вершину к, то И'я = И'0 н, согласно предположению индукции, ш(Р') = И'ц = И'и. Допустим теперь, что Р» содержит вершину к. Обозначим через Р~ 351 и Рг части пути Рг от 1 до й и от й до 7 соответственно. Предположим, что один из этих путей, например Раен пе является кратчайшим, и пусть Р— кратчайший (1, к)-путь, все вершины которого содержатся в множестве (1, 2, ..., (г — 1).

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

Список файлов лекций

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