Главная » Просмотр файлов » Структуры данных и алгоритмы

Структуры данных и алгоритмы (1021739), страница 50

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

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

Такие дуги, ведущие к новым вершинам, называются дугами дерева и формируют для данногографа остовный лес, построенный методом поиска в глубину, или, сокращенно, глубинный остовный лес. На рис. 6.17 показан глубинный остовный лес для графа изрис. 6.16. Здесь сплошными линиями обозначены дуги дерева. Отметим, что дугидерева формируют именно лес, т.е. совокупность деревьев, поскольку методом поискав глубину к любой ранее не посещавшейся вершине можно придти только по однойдуге, а не по двум различным дугам.В добавление к дугам дерева существуют еще три типа дуг, определяемых в процессе обхода орграфа методом поиска в глубину. Это обратные, прямые и поперечныедуги. Обратные дуги (как дуга С -»А на рис.

6.17) — такие дуги, которые в остовном лесе идут от потомков к предкам. Отметим, что дуга из вершины в саму себятакже является обратной дугой. Прямыми дугами называются дуги, идущие отпредков к истинным потомкам, но которые не являются дугами дерева. На рис. 6.17прямые дуги отсутствуют.Дуги, такие как D —> С и G -» .D на рис. 6.17, соединяющие вершины, не являющиеся ни предками, ни потомками друг друга, называются поперечными дугами. Ес198ГЛАВА 6. ОРИЕНТИРОВАННЫЕ ГРАФЫли при построении остовного дерева сыновья одной вершины располагаются слеванаправо в порядке их посещения и если новые деревья добавляются в лес также слева направо, то все поперечные дуги идут справа налево, что видно на рис. 6.17. Такое взаимное расположение вершин и деревьев выбрано не случайно, так как это помогает формировать остовный лес.Рис.

6.17. Глубинный остовный лес для орграфаиз рис. 6.16Как можно различить эти четыре типа дуг? Легко определить дуги дерева, таккак они получаются в процессе обхода графа как дуги, ведущие к тем вершинам, которые ранее не посещались. Предположим, что в процессе обхода орграфа его вершины нумеруются в порядке их посещения. Для этого в листинге 6.8 после строки (1)надо добавить следующие строки:dfnirnibertv] := count;count:= count + 1;Назовем такую нумерацию глубинной нумерацией ориентированного графа.

Отметим, что эта нумерация обобщает нумерацию, полученную при прямом обходе дерева(см. раздел 3.1).Всем потомкам вершины v присваиваются глубинные номера, не меньшие,чем номер, присвоенный вершине v. Фактически вершина w будет потомкомвершины v тогда и только тогда, когда выполняются неравенства dfnumber(v) <dfnumber(w) < dfnumber(v) + количество потомков вершины v1. Очевидно, чтопрямые дуги идут от вершин с низкими номерами к вершинам с более высокиминомерами, а обратные дуги — от вершин с высокими номерами к вершинам с более низкими номерами.Все поперечные дуги также идут от вершин с высокими номерами к вершинам сболее низкими номерами.

Чтобы показать это, предположим, что есть дуга ж -»у ивыполняется неравенство dfnumber(x) < dfnumber(y). Отсюда следует, что вершина жпройдена (посещена) раньше вершины у. Каждая вершина, пройденная в промежуток времени от вызова dfs(x) и до завершения dfs(y), становится потомком вершиных в глубинном остовном лесу. Если при рассмотрении дуги х —> у вершина у еще непосещалась, то эта дуга становится дугой дерева. В противном случае дуга х —> у будет прямой дугой. Таким образом, если для дуги х -» у выполняется неравенствоdfnumber(x) < dfnumberiy), то она не может быть поперечной дугой.В следующих разделах этой главы мы рассмотрим применения метода поиска вглубину для решения различных задач на графах.1Для истинных потомков вершины v первое из приведенных неравенств должно бытьстрогим.

— Прим. ред.6.5. ОБХОД ОРИЕНТИРОВАННЫХ ГРАФОВ1996.6. Ориентированные ациклические графыОриентированный ациклический граф — это орграф, не имеющий циклов. Можносказать, что ациклический орграф более общая структура, чем дерево, но менее общая по сравнению с обычным ориентированным графом. На рис. 6.18 представленыдерево, ациклический орграф и ориентированный граф с циклом.Рис. 6.18. Три ориентированных графаАциклические орграфы удобны для представления синтаксических структурарифметических выражений, имеющих повторяющиеся подвыражения.

Например,на рис. 6.19 показан ациклический орграф для выражения((о + Ь)*с + ((а + Ь) + е) * (е + /)) * ((а + Ь)*с).Подвыражения а + Ь и (а + Ь)*с встречаются в выражении несколько раз, поэтомуони представлены вершинами, в которые входят несколько дуг.Рис. 6.19. Ориентированный ациклический граф для арифметического выраженияАциклические орграфы также полезны для представления отношений частичныхпорядков. Отношением частичного порядка R, определенным на множестве S, называется бинарное отношение, для которого выполняются следующие условия.1.2.200Ни для какого элемента а из множества S не выполняется aRa (свойство антирефлексивности).Для любых а, Ь, с из S, таких, что aRb и ЬВс, выполняется aRc (свойство транзитивности).ГЛАВА 6. ОРИЕНТИРОВАННЫЕ ГРАФЫДвумя естественными примерами отношений частичного порядка могут служитьотношение "меньше чем" (обозначается знаком "<"), заданное на множестве целыхчисел, и отношение строгого включения (с) множеств.Пример 6.14. Пусть S = {1, 2, 3} и P(S) — множество всех подмножеств множества S, т.е.

P(S) = {0, {!}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}}. Отношение строгоговключения (с) является отношением частичного порядка на множестве P(S). Очевидно, включение А с А не выполняется для любого множества А из Р(антирефлексивность), и при выполнении А с В и В с: С выполняется А с С(транзитивность). ПАциклические орграфы можно использовать для графического изображения отношения частичного порядка между какими-либо объектами. Для начала можнопредставить отношение R как одноименное множество пар (дуг) таких, что пара (а, Ь)принадлежит этому множеству только тогда, когда выполняется aRb. Если отношение R определено на множестве элементов S, то ориентированный граф G = (S, R) будет ациклическим. И наоборот, пусть G = (S, R) является ациклическим орграфом, аЛ+ — отношение, определенное следующим образом: aR+b выполняется тогда и только тогда, когда существует путь (длиной не менее 1) от вершины а к вершине Ь.

Тогда R+ — отношение частичного порядка на S. (Отношение R+ является транзитивным замыканием отношения R.)Пример 6.15. На рис. 6.20 показан ациклический орграф CP(S), R), где S = {1, 2, 3}.Здесь Д+ — отношение строгого включения на множестве P(S). DРис. 6.20. Ациклический орграф,представляющий отношение строгого включенияПроверка ацикличности орграфа• ..Предположим, что есть ориентированный граф G = (V, Е) и мы хотим определить,является ли он ациклическим, т.е. имеет ли он циклы.

Чтобы ответить на этот вопрос, можно использовать метод поиска в глубину. Если при обходе орграфа G методом поиска в глубину встретится обратная дуга, то ясно, что граф имеет цикл. С другой стороны, если в орграфе есть цикл, тогда обратная дуга обязательно встретитсяпри обходе этого орграфа методом поиска в глубину.Чтобы доказать это, предположим, чт9 орграф G имеет цикл.

Пусть при обходеданного орграфа методом поиска в глубину вершина v имеет наименьшее глубинноечисло среди всех вершин, составляющих цикл. Рассмотрим дугу и —> и, принадлежащую этому циклу. Поскольку вершина и входит в цикл, то она должна быть потомком вершины и в глубинном остовном лесу. Поэтому дуга и -» и не может бытьпоперечной дугой. Так как глубинный номер вершины и больше глубинного номеравершины v, то отсюда следует, что эта дуга не может быть дугой дерева и прямой дугой.

Следовательно, дуга и —> v является обратной дугой, как показано на рис. 6.21.6.6. ОРИЕНТИРОВАННЫЕ АЦИКЛИЧЕСКИЕ ГРАФЫ201Топологическая сортировкаБольшие проекты часто разбиваются на совокупность меньших задач, которыевыполняются в определенном порядке и обеспечивают полное завершение целогопроекта. Например, план учебного заведения требует определенной последовательности в чтении учебных курсов. Ациклические орграфы могут служить естественноймоделью для таких ситуаций.

Например, мы создадим дугу от учебного курса С кучебному курсу D тогда, когда чтение курса С предшествует чтению курса D.Пример 6.16. На рис. 6.22 показан ациклический орграф, представляющийструктуру предшествований пяти учебных курсов. Чтение учебного курса СЗ, например, требует предварительного чтения курсов С1 и С2. ПРис. 6.21. Каждый циклсодержит обратную дугуРис. 622. Ациклический орграф, представляющий структуру предшествованийТопологическая сортировка — это процесс линейного упорядочивания вершинациклического орграфа таким образом, что если существует дуга от вершины i квершине j, то в упорядоченном списке вершин орграфа вершина i предшествует вершине j.

Например, для орграфа из рис. 6.22 вершины после топологической сортировки расположатся в следующем порядке: С1, С2, СЗ, С4, С5.Топологическую сортировку легко выполнить с помощью модифицированнойпроцедуры листинга 6.8, если в ней после строки (4) добавить оператор выводана печать:procedure topsort ( v: вершина ) ;{ печать в обратном топологическом порядке вершин,достижимых из вершины v }varw: вершина;beginmark[v]:= visited;for каждая вершина w из списка L[v] doif mark[w] = unvisited thentopsort (iv) ;writeln (v)end; { topsort }Когда процедура topsort заканчивает поиск всех вершин, являющихся потомкамивершины и, печатается сама вершина и.

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

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

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

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