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

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

Файл №1162189 Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (Т. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013)) 141 страницаТ. Кормен, Ч. Лейсерзон, Р. Риверст, К. Штайн - Алгоритмы. Построение и анализ (2013) (1162189) страница 1412019-09-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Мы определяем его как С = (ьг, Е ), где Е, = ((тг.л, тг): ч ш ) ' и ю. тг ~ У41ь) Подграф предшествования поиска в глубину образует лес поиска в глубину (дербз-(пзу гогебу), который состоит из нескольких деревьев поиска е глубину (деруь-гпз1 пеез). Ребра в е называются ребрами дерева (пес едйез). Как и в процессе поиска в ширину, вершины графа окрашиваются в разные цвета, свидетельствующие об их состоянии. Каждая вершина изначально белая, затем при ошкрывдии (гйзсочег) в процессе поиска она окрашивается в серый цвет, и по завершении, когда ее список смежности полностью просканирован, она становится черной. Такая методика гарантирует, что каждая вершина в конечном счете находится только в одном дереве поиска в глубину, так что деревья не пересекаются. Помимо построения леса поиска в глубину, поиск в глубину также проставляет в вершинах мензки времени (~ппезуашр).

Каждая вершина имеет две такие метки: первую — тг. Ы, в которой записывается, когда вершина е открывается (и окрашивается в серый цвет), и вторую — п.1, которая фиксирует момент, когда поиск завершает сканирование списка смежности вершины п и она становится черной. Эти метки используются многими алгоритмами и полезны при рассмотрении поведения поиска в глубину. Приведенная ниже процедура ПРЯ записывает в атрибут п.г( момент, когда вершина и открывается, а в атрибут и.1 — момент завершения работы с вершиной и.

Эти метки времени представляют собой целые числа в диапазоне от 1 до 2 ~Ц, поскольку для каждой из Щ вершин имеется только одно событие открытия и одно — завершения. Для каждой вершины и и. г( ( и.1 (22.2) Может показшъся нестлыш странным то, по поиск в ширину ограничен только одной исходной вершиной, в то время как поиск в глубину может выполняться из нескольких исходных вершин. Хотя конпепччшьно поиск в ширину может выполняться из нескольких исходных вершин, а поиск в глубину — быть ограниченным одной исходной вершиной, такой подход отражает типичное использование результатов поиска. Поиск в ширину обычно используется для определенна длин кратчайших путей (и связанного с ними графа прел- шествования) из данной вершины.

Поиск в глубину, как ыы увидим позже в зшй главе, чаше используется в качестве подпрограммы в друпгх алгоритмах. Глава л2. Эллмеитариые аигоритмы длл работы с графами б41 РРБ(С) 1 1ог каждой вершины и Е С. и' 2 и.со1ог = ШН1тн 3 и.я = Х1Ь 4 Нте =О 5 1ог каждой вершины и е С. $~ б 11'и, со1от == Ъ'Н1тЕ 7 РРВ-Ч1з1т(С, и) РРЗ-Ч1шт(С, и) 1 Вте = 11те+1 2 и.д = 11те 3 и.со1ог = склт 4 1ог каждой и е С.

Аа) 1и) 5 11' и. со1ог == 1й'Н1тн 6 г.п =и 7 Рг Я-Ч1З171С, и) 8 и.со1ог = ВЬАСК 9 Вте = йте+1 1О и./ = Ыте // Открыта белая вершина и // Исследование ребра (и, и) // Завершение работы с и На рис. 22.4 показана работа процедуры РР8 с графом на рис. 22.2. Процедура РРБ работает следующим образом. В строках 1-3 все вершины окрашиваются в белый цвет, а их поля я инициализируются значением н1ь. В строке 4 выполняется сброс глобального счетчика времени. В строках 5 — 7 поочередно проверяются все вершины из Ъ', и когда обнаруживается белая вершина, она обрабатывается с помощью процедуры РЕЯ-Ч1з1т. Каждый раз прн вызове процедуры Рг 8-Ч1з1т(С, и) в строке 7 вершина и становится корнем нового дерева леса поиска в глубину. При возврате из процедуры РР8 каждой вершине и сопоставляются два момента времени — время открытия (Йзсомегу йще) и.

Ы и время завернления 1йп)зЫпй 1ппе) и./. При каждом вызове РРЯ-Ч1В1т(С, и) вершина и изначально имеет белый цвет. В строке 1 увеличивается глобальная переменная 11те, в строке 2 выполняется запись нового значения переменной Нте в атрибут времени открытия и.д, а в строке 3 вершина и окрашивается в серый цвет. В строках 4-7 исследуются все вершины и, смежные с и, и выполняется рекурсивное посещение всех вершин и, являющихся белыми. При рассмотрении в строке 4 каждой вершины и Е Аа7'[и) мы говорим, что ребро (и, и) исследуется (ехр1огед) поиском в глубину. И наконец, после того как будут исследованы все ребра, покидающие и, г1 лик лгал До момента времени и. а вершина и имеет цвет щн1те, между и, а и и./ — цвет ОКАУ, а после — цвет ВЬАСК.

Далее представлен псевдокод алгоритма поиска в глубину. Входной граф С может быть как ориентированным, так и неориентированным. Переменная 11тпе— глобальная и используется нами для меток времени. Часть Иб Алгоритмы для работы с аьафаии 642 у (г) Щ~)фввк х у 1 (ь) (зк!:о е'.~:,':З ~ ) х у г (я) аД (т= (н) х (а) у у х (м) (х) ((нед ) х у у г (а) (в) (к) Х (и) Рне. 22.4. Применение алгоритма пояска в глубину ))РЯ к ориентированному графу. Исследуемые прн этом ребра показаны затененными (еслн это ребра дерева) нлн пунктирными (в противном случае).

Ребра, не являюшнеса ребрами дерева, помечены буквами В. С нлн Г в состав(станк с тем, являлася лн онн обратными (оас)г), перекрестными (сана) нлн првмымн (Еогиап)). В вершинах указаны метки времени в форьмте "аткрытвеlзаеершенне*'. в строках 8-10 вершина и окрашивается в черный цвет, а в атрибут п.у записывается время завершения работы с ней. Заметим, что результат поиска в глубину может зависеть от порядка, в котором выполняется рассмотрение вершин в строке 5 процедуры 1)ЕБ, а также от порядка посещения смежных вершин в строке 4 процедуры ПЕБ-У)шт.

На практике это обычно не вызывает каких-либо проблем, так как обычно эффективно использоваться может любой результат поиска в глубину, приводя, по сути, к одинаковым результатам работы алгоритма, опирающегося на поиск в глубину. Чему равно время работы процедуры ПЕБ? Циклы в строках 1-3 и 5-7 процедуры ОРБ выполняются за время ту( ь'), исключая время, необходимое для вызова процедуры ВРБ-У)ят. Как и в случае поиска в ширину, воспользуемся групповым анализом, Процедура куГБ-У)з)т вызывается ровно по одному разу для каждой вершины и Е Ъ", так как она вызывается только для белых вершин, а первое, что она делает, — зто окрашивает переданную в качестве параметра вершину в серый цвет.

В процессе выполнения 1)г Б-У)з)т((у, н) цикл в строках 4-7 вы- Глава 22. Элементарные алгоритмы длл работы с гра4~аии полняется ]А4[и][ раз. Поскольку ]Аф[и][ = 9(Е), общая стоимость выполнения строк 4 — 7 процедуры ПЕБ-Чнцт равна гл(Е). Вре- мя работы процедуры РЕЯ, таким образом, равно 9(Ъ'+ Е). Свойства поиска в глубину Поиск в глубину дает нам важную информацию о структуре графа.

Вероятно, наиболее фундаментальное свойство поиска в глубину заключается в том, что подграф предшествования С в действительности образует лес деревьев, поскольку структура деревьев поиска в глубину в точности отражает структуру рекурсивных вызовов процедуры ОЕБ-Чнцт. То есть и = и. и тогда и только тогда, югда РРЕ-Ч~ят(С, и) была вызвана при сканировании списка смежности вершины и. Кроме того, вершина и является потомюм вершины и в лесу поиска в глубину тогда и только тогда, когда вершина и была серой в момент открытия вершины и.

Еще одно важное свойство поиска в глубину заключается в том, что времена открытия и завершения образуют скобочиую структуру (рагепйеяз зписшге). Если мы представим открытие вершины и с помощью отрывающейся скобки "(и*', а завершение — с помощью закрывающейся скобки "и)'*, то перечень открытий и завершений образует корректное выражение в смысле вложенности скобок. Например, поиск в глубину на рис. 22.5,(а) соответствует скобочному выражению на рис. 22.5,(б).

Еще одно утверждение о сюбочной структуре приведено в следующей теореме. Теорема 22. 7 ~Теорема о скобках) В любом поиске в глубину в (ориентированном или неориентированном) графе С = (3г, Е) для любых двух вершин и и и выполняется ровно одно из трех следующих утверждений. Отрезки [и. Н, и. ) ] и [и. Н, и2] не пересекаются, и ни и не является потомком и в лесу поиска в глубину, ни и не является потомком и. Отрезок [и. И, и.Д полностью содержится в отрезке [и. с(, и.Д, а и является потомком и в дереве поиска в глубину.

Отрезок [и. И,и.т] полностью содержится в отрезке [и. И,и.2], а и является потомком и в дереве поиска в глубину. Доказавгельсшво. Начнем со случая, когда и.й ( и.гг. При этом необходимо рассмотреть два подслучая в зависимости от того, справедливо ли неравенство и.Ы < и.2. Первый подслучай соответствует справедливости неравенства и. А < и.2, так что вершина и была открыта, когда вершина и все еще была окрашена в серый цвет. Отсюда следует, что и является потомком и.

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

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

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