Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Орграфы и ориентированные ациклические графы






Е

сли мы предаем значение, в каком порядке описываются две вершины каждого ребра графа, мы получаем совер­шенно другой комбинаторный объект, известный как ориен­тированный граф (directed graph), или орграф (digraph). На рис. 19.1 показан пример орграфа. В орграфах обозначение s-t описывает ребро, которое ведет из вершины s в вершину t, но при этом оно не дает никакой информации о том, суще­ствует ли ребро, ведущее из / в s. Имеется четыре вида отно­шений, в которых могут находиться две любые вершины орграфа: связывающее их ребро отсутствует, ребро s-t, веду­щее из s в t, ребро t-s, ведущее из / в s, и два ребра s-t и t-s, которые указывают на наличие связи в обоих направлениях. Требование однонаправленности естественно для многих приложений, оно легко реализуется в разрабатываемых нами программах и представляется нам безобидным, однако оно влечет за собой появление новой комбинаторной структуры, которая оказывает глубокое воздействие на наши алгоритмы; в силу присущих ей свойств работа с орграфами существен­но отличается от работы с неориентированными графами. Обработку орграфов можно сравнить с ездой по городу, в котором все улицы имеют односторонне движение, и при этом направление движения не указано с помощью какого-нибудь унифицированного способа. Можно себе предста­вить, какие приключения нас ожидают, если в подобной си­туации мы вознамеримся проехать из одной точки города в другую.

Направления ребер в графе мы интерпретируем различ­ными способами. Например, при построении графа теле­фонных вызовов можно принимать за направление ребра направление от вызывающего абонента к абоненту, принима-



Часть 5. Алгоритмы на графах


 


каждой из этих работ, чтобы ни одно из отношений предшествования не было наруше­но? В этом заключается суть проблемы, известной как задача составления расписаний (scheduling problem). Она не имеет смысла, если в орграфе имеется цикл, в подобного рода ситуациях мы работаем с графами DAG (directed acyclic graph — ориентированный ацик­лический граф). В разделах 19.5—19.7 мы рассмотрим базовые свойства графа DAG и ал­горитмы решения простой задачи, получившей название топологической сортировки (topological sorting). На практике при решении задач составления расписаний в общем слу­чае учитывается вес вершин или ребер, которые моделируют время или стоимость каж­дой работы. Такие задачи мы будем изучать в главах 21 и 22. Число возможных орграфов поистине огромно. Каждое из возможных V2 ориентиро­ванных ребер (в том числе петли) может входить в график или не входить в него, таким образом, общее число разных орграфов равно 2V. Как показано на рис. 19.2, с увели­чением числа вершин это число стремительно возрастает, даже по сравнению с числом различных неориентированных графов, уже при небольших значениях V. Как и в случае неориентированных графов, число изоморфных друг другу классов (вершины одного из изоморфных графов можно переименовать таким образом, чтобы получить график, иден­тичный другому) намного меньше, однако мы не можем извлечь для себя конкретную пользу из подобного сокращения числа графов, поскольку нам неизвестен достаточно эффективный алгоритм выявления изоморфных графов.

ющему вызов. В графе финансовых операций можно при­менять тот же принцип, при этом ребро представляет собой финансовые средства, товары или информацию, передава­емые от одного агента другому. Мы можем найти подходя­щий пример, соответствующий этой классической модели в Internet; в этом случае вершины представляют Web-страни­цы, а ребра — ссылки между страницами. В разделе 19.4 мы рассмотрим другие примеры; большая их часть моделирует ситуации с большей степенью абстракции.

Довольно часто приходится сталкиваться с ситуациями, когда направление ребра отражает отношение предшество­вания. Например, орграф может моделировать производ­ственную линию: вершины обозначают работу, которую не­обходимо выполнить, при этом существует ребро, ведущее из вершины s в вершину /, если работа, соответствующая вершине s, должна быть выполнена, прежде чем может быть выполнена работа, соответствующая вершине t Другой спо­соб моделирования той же ситуации заключается в исполь­зовании диаграммы PERT (PERT, Project Evaluation and Review Technique — сетевое планирование и управление): ребра представляют работы, а вершины неявно описывают отношение предшествования (все работы, сходящиеся в конкретной вершине, должны быть завершены, прежде чем начнутся работы, исходящие из этой вершины). Какие сле­дует принимать решения относительно сроков выполнения


РИСУНОК 19.1. ОРИЕНТИРОВАННЫЙ ГРАФ (ОРГРАФ)

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







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.