Студопедия

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

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

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






Глава 17. Свойства и типы графов. других случаях полезно рассматривать неориентированный граф просто как некоторую совокупность соединений








 


других случаях полезно рассматривать неориентированный граф просто как некоторую совокупность соединений. Обычно для ориентированных и для неориентированных гра­фов (см. рис. 17.6) мы используем одно и то же представление, о чем подробно пойдет речь в разделе 17.4. Иначе говоря, в общем случае мы поддерживаем два представления каждого ребра неориентированных графов, каждое из них указывает в одном из направ­лений, так что мы имеем возможность сразу же ответить на вопросы типа " Какие вер­шины соединены с вершиной v? "

вестных еще как орграфы (orgcaph), ребра однонаправлен­ные: мы рассматриваем пару вершин, определяющую кон­кретное ребро, как упорядоченную {ordered) пару, которая определяет однонаправленную смежность в том смысле, что возможность перехода из первой вершины во вторую отнюдь не означает переход из второй вершины в первую. Многие применения (например, графы, представляющие Web, графы, используемые при составлении расписаний, или графы, применяемые для обработки телефонных звонков) естественным образом описываются в виде орг­рафов.

Ребра в орграфах мы называем ориентированными реб­рами (directed edges), хотя в общем случае это свойство вы­текает из контекста (некоторые авторы для обозначения ориентированных ребер применяют термин дуга (arc)). Первая вершина ориентированного ребра называется на­чалом (source); вторая вершина называется концом (destination). (Некоторые авторы употребляют, соответ­ственно, термины хвост (tail) и голова (head), чтобы отли­чить вершины ориентированного графа, однако мы будем избегать таких обозначений, поскольку мы употребляем эти же термины при реализации структур данных.) На ди­аграммах мы изображаем ориентированные ребра в виде стрелок, направленных из начала в конец, и часто гово­рим, что ребро указывает (points) на ту или иную верши­ну. Когда мы используем обозначение w-v по отношению к орграфу, мы делаем это с целью показать, что ребро, которое исходит из w и заходит в v, отличается от ребра v-w, которое исходит из v и заходит в w. Мы также гово­рим о полустепени исхода (outdegree) и полустепени захода (indegree) некоторой вершины (соответственно, число ре­бер, для которых она служит началом, и число ребер, для которых она служит концом).

Иногда целесообразно рассматривать неориентирован­ный граф как орграф, у которого имеются два ориенти­рованных ребра (по одному в каждом направлении); в


РИСУНОК 17.6. ДВА ОРГРАФА

Чертеж вверху есть представ­ление графа, приведенного в качестве примера на рис. 17.1, интерпретируемое как ориенти­рованный граф, при этом мы рассматриваем ребра как упорядоченные пары и изобража­ем их в виде стрелок, ведущих из первой вершины во вторую. Этот граф является DAG-графом. Чертеж в нижней части рисунка — это представ­ление неориентированного графа, показанного на рис. 17.1, который может служить иллюстрацией способа, обычно выбираемого нами для представ­ления неориентированных графов: в виде орграфа, в котором каждому соединению соответствуют два ребра (по одному в каждом направлении).



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


Глава 19 посвящена изучению структурных свойств орграфов; в общем случае они бо­лее сложные, чем соответствующие свойства неориентированных графов. Направленный цикл (directed cycle) в орграфе — это цикл, в котором пары смежных вершин появляются в порядке, указанном (устанавливаемом) ребрами графа. Граф DAG (Directed Acyclic Graph - ориентированный ациклический граф) есть орграф, который не содержит направленных циклов. DAG-граф (ациклический орграф) и дерево (ациклический неориентированный граф) - это отнюдь не тождественные понятия. Иногда мы обращаемся к базовому нео­риентированному графу (underlying undirected graph), лежащему в основе орграфа, подразу­мевая под ним неориентированный граф, определяемый тем же множеством ребер, при этом, однако, эти ребра не рассматриваются как ориентированные.

В главах 20-22 содержится главным образом анализ алгоритмов решения различных вычислительных задач, связанных с использованием графов, в которых в виде вершин и ребер представлена другая информация. В случае взвешенного графа (weighted graph) с каж­дым ребром мы связываем числа (weights — веса), которые в общем случае представляют собой расстояние либо стоимость. Мы Также можем присвоить вес каждой вершине либо несколько весов каждой вершине и каждому ребру. В главе 20 мы будем изучать взвешен­ные неориентированные графы, которые мы обычно называем сетями (networks). Алго­ритмы в главе 22 решают классические задачи, которые возникают в конкретных интер­претациях сетей, известных как транспортные сети (flow network).

Уже из главы 1 стало ясно, что комбинаторная структура графа получила широкое распространение. Масштаб распространения этой структуры тем более поразителен в свя­зи с тем, что начало ей дала простая математическая абстракция. Эта лежащая в основе простота отражается во многих программных кодах, которые мы разрабатываем для ба­зовой обработки графов. Тем не менее, такая простота часто заслоняет собой сложные динамические свойства, которые требуют глубокого понимания комбинаторных свойств самих графов. Зачастую очень трудно убедить самих себя в том, что алгоритм работает на графе в соответствии с замыслом, поскольку программа получается настолько компакт­ной, что в это даже трудно поверить.






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