Теория графов. Основные понятия и виды графов

Определения

Теория графов не обладает устоявшейся терминологией. В различных статьях под одними и теми же терминами понимаются разные вещи. Приводимые ниже определения - наиболее часто встречаемые.

Граф

Граф или неориентированный граф G - это упорядоченная пара G : = (V ,E )

  • V это множество вершин или узлов ,
  • E это множество пар (в случае неориентированного графа - неупорядоченных) различных вершин, называемых рёбрами .

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

Вершины и рёбра графа называются также элементами графа, число вершин в графе | V | - порядком , число рёбер | E | - размером графа.

Вершины u и v называются концевыми вершинами (или просто концами ) ребра e = {u ,v } . Ребро, в свою очередь, соединяет эти вершины. Две концевые вершины одного и того же ребра называются соседними .

Два ребра называются смежными , если они имеют общую концевую вершину.

Два ребра называются кратными , если множества их концевых вершин совпадают.

Ребро называется петлёй , если его концы совпадают, то есть e = {v ,v } .

Степенью degV вершины V называют количество рёбер, для которых она является концевой (при этом петли считают дважды).

Вершина называется изолированной , если она не является концом ни для одного ребра; висячей (или листом ), если она является концом ровно одного ребра.

Ориентированный граф

Ориентированный граф (сокращённо орграф ) G - это упорядоченная пара G : = (V ,A ) , для которой выполнены следующие условия:

  • V это множество вершин или узлов ,
  • A это множество (упорядоченных) пар различных вершин, называемых дугами или ориентированными рёбрами .

Дуга - это упорядоченная пара вершин (v, w) , где вершину v называют началом, а w - концом дуги. Можно сказать, что дуга v w ведёт от вершины v к вершине w .

Смешанный граф

Смешанный граф G - это граф, в котором некоторые рёбра могут быть ориентированными, а некоторые - неориентированными. Записывается упорядоченной тройкой G : = (V ,E ,A ) , где V , E и A определены так же, как выше.

Понятно, что ориентированный и неориентированный графы являются частными случаями смешанного.

Прочие связанные определения

Путём (или цепью ) в графе называют конечную последовательность вершин, в которой каждая вершина (кроме последней) соединена со следующей в последовательности вершин ребром.

Ориентированным путём в орграфе называют конечную последовательность вершин v i , для которой все пары (v i ,v i + 1) являются (ориентированными) рёбрами.

Циклом называют путь, в котором первая и последняя вершины совпадают. При этом длиной пути (или цикла) называют число составляющих его рёбер . Заметим, что если вершины u и v являются концами некоторого ребра, то согласно данному определению, последовательность (u ,v ,u ) является циклом. Чтобы избежать таких «вырожденных» случаев, вводят следующие понятия.

Путь (или цикл) называют простым , если ребра в нём не повторяются; элементарным , если он простой и вершины в нём не повторяются. Несложно видеть, что:

  • Всякий путь, соединяющий две вершины, содержит элементарный путь, соединяющий те же две вершины.
  • Всякий простой неэлементарный путь содержит элементарный цикл .
  • Всякий простой цикл, проходящий через некоторую вершину (или ребро), содержит элементарный (под-)цикл, проходящий через ту же вершину (или ребро).

Более абстрактно, граф можно задать как тройку , где V и E - некоторые множества (вершин и рёбер , соотв.), а - функция инцидентности (или инцидентор ), сопоставляющая каждому ребру (упорядоченную или неупорядоченную) пару вершин u и v из V (его концов ). Частными случаями этого понятия являются:

Под данное выше определение не подходят некоторые другие обобщения:

  • гиперграф - если ребро может соединять более двух вершин .
  • ультраграф - если между элементами x i и u j существуют бинарные отношения инцидентности .

Литература

  • Оре О. Теория графов. М.: Наука, 1968. 336с. http://eqworld.ipmnet.ru/ru/library/books/Ore1965ru.djvu
  • Уилсон Р. Введение в теорию графов. Пер с англ. М.: Мир, 1977. 208с. http://eqworld.ipmnet.ru/ru/library/books/Uilson1977ru.djvu
  • Харари Ф. Теория графов. М.: Мир, 1973. http://eqworld.ipmnet.ru/ru/library/books/Harari1973ru.djvu
  • Кормен Т. М.и др. Часть VI. Алгоритмы для работы с графами // Алгоритмы: построение и анализ = INTRODUCTION TO ALGORITHMS. - 2-е изд. - М.: «Вильямс» , 2006. - С. 1296. - ISBN 0-07-013151-1
  • Салий В. Н. Богомолов А. М. Алгебраические основы теории дискретных систем. - М.: Физико-математическая литература, 1997. - ISBN 5-02-015033-9
  • Емеличев В. А., Мельников О. И., Сарванов В. И., Тышкевич Р. И. Лекции по теории графов. М.: Наука, 1990. 384с. (Изд.2, испр. М.: УРСС, 2009. 392 с.)
  • Кирсанов М. Н. Графы в Maple. М.: Физматлит, 2007. - 168 c.

4. Представление информации в форме графа

Вы, вероятно, имеете представление о компьютерных сетях. Возможно, компьютеры в школьном кабинете информатики объединены в локальную сеть или вы работали в Интернете, или пользовались услугами электронной почты. Понятно, что сеть образуется только тогда, когда компьютеры каким-либо образом соединены между собой каналами передачи данных. Размещение абонентов сети (подключённых к ней компьютеров или других систем автоматической обработки данных) и способ их соединения друг с другом называется конфигурацией сети. Продемонстрировать различные типы конфигураций вычислительных сетей можно, например, с помощью таких информационных моделей, как графы. Граф - совокупность точек, соединённых между собой линиями. Точки называют вершинами графа. Они могут изображаться точками, кружочками, прямоугольниками и пр. Линии, соединяющие вершины, называются дугами (если задано направление от одной вершины к другой) или рёбрами (если направленность двусторонняя, то есть направления равноправны). Две вершины, соединенные ребром (дугой) называются смежными. Вершины и рёбра графа могут характеризоваться некоторыми числовыми величинами. Например, может быть известна длина ребра или «стоимость прохождения» по нему. Такие характеристики называют весом, а граф называется взвешенным.

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

На рис.3 представлены различные типы конфигураций локальных вычислительных сетей (ЛВС), являющиеся информационными моделями структур ЛВС, представленными в виде графов:

Шинная конфигурация, когда к незамкнутому каналу с некоторыми интервалами подключаются отдельные абоненты (К) информация от абонента-источника распространяется по каналу в обе стороны;

Кольцевая конфигурация, когда каждый абонент непосредственно связан с двумя соседними абонентами, а информация передаётся по замкнутому кольцу, чаще всего в одну сторону;

Звездообразная конфигурация, в центре которой находится центральный коммутатор (ЦК), который последовательно опрашивает абонентов и предоставляет им право на обмен данными;

Древовидная конфигурация образуется подсоединением нескольких простых каналов связи к одному магистральному;

Полносвязная конфигурация обеспечивает выбор наиболее быстрого маршрута связи между абонентами и удобна там, где управление оказывается достаточно сложным.


Рис.3 Различные типы конфигураций локальных вычислительных сетей

Наиболее наглядно граф задаётся рисунком. Однако не все детали рисунка одинаково важны. В частности, несущественны геометрические свойства рёбер (длина, кривизна и так далее), форма вершин (точка, кружок, квадрат, овал и пр.) и взаимное расположение вершин на плоскости. Так, на рис.4 представлены два изображения одного и того же графа. Все вершины и ребра часто задаётся в виде сопровождающей надписи на вершине или линии, но, введя условные обозначения, их можно задать формой или цветом вершины, толщиной, типом или цветом линии и т. п.

Рис. 4 Различные изображения одного и того же графа

Информационную модель в форме графа можно использовать для наглядного представления взаимосвязей, существующих между элементами объекта моделирования. Таким образом, граф - наиболее удобная форма для моделирования структуры объекта, хотя в такой форме можно моделировать и внешний вид, и поведение объекта.

На рис.5 представлены модели молекул бутана и изобутана, каждая из которых имеет формулу С4Н10, то есть состоит из 4 атомов углерода и 10 атомов водорода. Имея одну и ту же формулу, бутан и изобутан имеют различные химические свойства, так как способы соединения атомов (структура молекул) различны. Расположение атомов в молекуле при различных способах их соединения хорошо представимо графом.

Рис.5 Модели молекул бутана и изобутана

Заметим, что в химии для обозначения таких веществ часто используются и структурные формулы. Порядок соединения атомов изображается в структурной формуле чёрточками (связь между водородом и остальными атомами обычно не указывается). Подумайте сами, можно ли считать структурную формулу одной из разновидностей графа. В форме графа удобно отображать взаимосвязи понятий, относящихся к одной области деятельности или познания.

Рассмотрите граф понятий темы «Четырёхугольники» из курса геометрии (рис.6). Не правда ли, хорошая «шпаргалка»?


Рис.6. Граф понятий темы «Четырёхугольники»

В практической деятельности модели в форме графов часто используются для представления видов и порядка выполнения работ. Возможно, вам знакомы такие термины, как «сетевой график работ», «сетевой график строительства». Часто наряду со словесным или табличным описанием сетевые графики сопровождаются и изображением в виде графа, вершинами которого являются конкретные виды работ, а дугами задаётся возможный порядок их выполнения.

Сетевые графики строительства хорошо демонстрируют, какие работы могут выполняться одновременно, а какие требуют обязательного завершения предыдущих этапов. Анализируя такие графы, можно рассчитать время, необходимое для завершения всей работы, спланировать, сколько, когда и на какие работы направить специалистов и технику, определить наиболее «узкие» участки и уделить им особое внимание.


Для машинной обработки более удобным является символическое представление графов в виде списка рёбер с указанием, какие вершины это ребро соединяет, а также табличное представление, где строки и столбцы - названия вершин, а значения ячеек указывают на то, соединены данные вершины или нет.

Графы, представленные на рис.7 могут быть описаны, например, следующими способами. Символическая запись: а(1,2) b(l,4) c(2,4) d(3,5) e(4,5) ,(3,4)

Табличная запись:

Рис.7. Графы, имеющие одинаковые описания в виде таблицы и символической записи

Представление данных в форме дерева

Особым видом графа является дерево. Данная форма модели применяется тогда, когда элементы моделируемого объекта находятся в состоянии какого-либо подчинения и соподчинения, когда есть отношение иерархичности.

Модель управления предприятием (школой, театральным коллективом и т. д.) очень удобно представлять в виде дерева.

Вам хорошо известно понятие «родословное дерево» и вы можете изобразить в такой форме ваши родственные отношения.

Каталог файлов на диске, также как и библиотечный каталог - примеры информационных моделей в форме дерева. Дерево - это граф, предназначенный для отображения таких связей между объектами, как вложенность, подчиненность, наследование и т. п.

Строится он следующим образом

Сначала рисуем «главную» вершину, которая не зависит ни от одной другой вершины. Эта вершина называется корнем дерева и является единственной вершиной 1-го уровня. Далее добавляем вершины 2-го уровня. Их может быть сколько угодно, и все они обязательно связаны с корнем - вершиной 1-го уровня, но не связаны между собой. На следующем шаге добавим вершины 3-го уровня. Каждая из них будет связана ровно с одной вершиной 2-го уровня (больше ни с одной другой вершиной). К любой вершине 2-го уровня может быть подсоединено сколько угодно вершин 3-го уровня (в том числе, ни одной). Следующий шаг - добавка вершин 4-го уровня, каждая из которых будет связана ровно с одной вершиной 3-го уровня (и не связана больше ни с чем). И так далее. На каждом шаге добавляем вершины очередного уровня, каждая из которых будет связана ровно с одной вершиной предыдущего уровня и не будет иметь никаких иных связей. Полученный граф напоминает ветвящийся куст, который «растет сверху вниз»: верхние уровни имеют меньшие номера, нижние - большие. Вообще говоря, дерево может быть и неориентированным графом, но чаще дерево ориентировано, причем дуги направлены от верхних вершин к нижним. Верхняя вершина называется предком для связанных с ней нижних вершин, а нижние вершины - потомками соответствующей верхней вершины. На любом дереве существует единственная вершина, не имеющая предка, - корень - и может быть сколько угодно вершин, не имеющих потомков, - листьев. Все остальные вершины имеют ровно одного предка и сколько угодно потомков. Если не принимать во внимание направленность связей, то в дереве из любой вершины можно по линиям дойти до любой другой вершины, причем по одному единственному пути. В виде дерева удобно изображать системы, в которых нижние вершины в каком-то смысле «подчинены» верхним. Верхняя вершина может изображать начальника, нижние - подчиненных; верхняя - систему, нижние - ее компоненты; верхняя - множество объектов, нижние - входящие в него подмножества; верхняя вершина - предка, нижние - потомков и т. д. Формализация в случае построения дерева (иерархического графа) сводится к выявлению основного (главного, центрального) элемента рассматриваемого объекта (вершина нулевого уровня, которую часто называют корнем), элементов, которые находятся в непосредственном подчинении от основного (вершины 1-го уровня). Затем определяются вершины, находящиеся в непосредственном «подчинении» от вершин 1-го уровня (вершины 2-го уровня) и так далее. Изображать построенное дерево отношений можно в любом направлении - это уже дело эстетического вкуса разработчика модели. В научной и учебной деятельности с помощью деревьев часто представляют классификацию изучаемых объектов.

Классифицирование - распределение объектов по классам в зависимости от их общих признаков, фиксирующее закономерные связи между классами объектов в единой системе данной отрасли знания.

Классификация (от лат. classis - разряд + facere - делать) - система соподчиненных понятий (классов объектов, явлений) в какой-либо отрасли знания, составленная на основе учёта общих признаков объектов и закономерных связей между ними.

Классификация позволяет ориентироваться в многообразии объектов и является источником знания о них. Очень важен выбор основания классификации - то есть признака, на основании которого объекты разбиваются на классы. Выбор разных оснований приводит к разным классификациям.

На рис.8 вы видите классификацию, предложенную Григорием Великим, которая призвана была показать, что человек имеет что-то общее со всеми видами существующих в мире вещей, и поэтому его справедливо называют «вселенной в миниатюре». Обратите внимание, что объекты здесь разбиваются всегда на два класса. Такая классификация носит название дихотомической.

Рис.8. Классификация «того, что есть» Григория Великого

Представленная на рис.9 классификация принтеров построена с использованием различных оснований деления

Рис.9 Классификация принтеров

Важным видом исторических классификаций является построение родословных или генеалогических деревьев. Они бывают самого разного вида: с указанием только прямых потомков (рис.10); с включением жён (мужей) и их родственников и др.

Рис.10 Родословное дерево великих и удельных князей Владимирских и Московских, XIII-XIV века (фрагмент)

В скобках приведены известные даты жизни; крест указывает на год смерти; двойным контуром обведены имена князей, занимавших московский престол. Рассмотренные выше реляционная (табличная), сетевая (графовая) и иерархическая (древовидная) модели являются основными для представления данных в базах данных, а программные комплексы, которые позволяют создавать, обновлять, сохранять базы данных и обслуживать запросы пользователей к ним, называются соответственно реляционной, сетевой, иерархической системами управления базами данных (СУБД). При описании сложных объектов, как правило, используется комбинация различных моделей данных.

Формализация текстовой информации:

Облегчает и ускоряет процесс её обработки;

Позволяет получить количественные оценки;

Обеспечивает однозначность понимания текста;

Способствует лучшему восприятию сведений, содержащихся в тексте;

Помогает сравнить по формальным критериям ситуацию, описанную в тексте, с реальной и принять правильное решение.

Формализовать можно как оформление текста, так и его содержание.

Формализация оформления сводится к использованию бланков, формуляров, шаблонов заранее определённой и часто законодательно утверждённой стандартной формы.

Шаблон документа - стандартная форма документа, встречающегося в сфере делопроизводства.

Реквизитами документа называются обязательные данные, которые необходимо отразить в документе.

Целью формализации содержания текста является его однозначное понимание. Это очень важно в юридической практике, в научной и управленческой деятельности, например, при формулировании определений, составлении законов, договоров, приказов, распоряжений и т.п.

Таблицы - удобная для анализа и обработки и наглядная форма представления информации. Таблицы, в которых отражается одно свойство, характеризующее два или более объектов, называются таблицами типа «объект-объект». Таблицы, в которых отражаются несколько свойств объекта, а все объекты принадлежат одному множеству, называются таблицами вида «объект-свойство». Комбинирование в одной таблице нескольких таблиц вида «объект-объект» и «объект-свойство» позволяет построить таблицы более сложного вида, например, «объекты-свойства-объекты». Таблица характеризуется:

Названием (а если таблиц несколько, то ещё и номером),

Количеством столбцов и их названиями (заголовками столбцов),

Количеством строк и их названиями (заголовками строк),

Содержимым ячеек, находящихся на пересечении строк и столбцов.

В случае многоуровневых заголовков строк и столбцов уровни заголовков столбцов называются ярусами, уровни заголовков строк - ступенями.

Основными элементами таблицы являются:

Записи - строки таблицы, которые могут содержать данные разного типа, но относящиеся чаще всего к одному объекту;

Поля - столбцы таблицы, содержащие, как правило, данные одного типа;

Реквизиты - конкретные значения, находящиеся в ячейках таблицы на пересечении строк и столбцов.

Этапы приведения к табличному виду:

1. анализ информации и выделение объектов, о которых идет речь;

2. выделение свойств объектов и/или отношений между ними;

3. определение того, можно ли объекты объединить в некоторые подмножества, и в зависимости от этого определение количества уровней и ступеней в заголовках;

4. определение общего количества столбцов и порядка их расположения;

5. определение наименований столбцов и типа данных, которые там будут располагаться;

6. выбор порядка размещения строк и определение названия каждой строки таблицы;

7. занесение в ячейки таблицы реквизитов-данных (построчно или по столбцам).

Граф - совокупность точек, соединённых между собой линиями. Эти точки называют вершинами графа. Линии, соединяющие вершины, называются дугами, если задано направление от одной вершины к другой, или рёбрами, если направленность двусторонняя. Граф называется взвешенным, если вершины или рёбра (дуги) характеризуются некоторой дополнительной информацией - весом вершины или ребра (дуги). Граф однозначно задан, если заданы множество его вершин, множество рёбер (дуг) и указано, какие вершины какими рёбрами соединены.

Формализация при построении графа включает в себя следующие этапы:

Выявление всех элементов объекта;

Определение характеристик элементов (названий, номеров, весов и т. п.);

Установление наличия и вида связей (односторонняя или двухсторонняя) между элементами;

Определение характеристик связей - весов рёбер и дуг;

Выбор формы изображения вершин и рёбер, ввод условных обозначений в случае необходимости;

Представление выделенных элементов и связей в графическом виде.

Для компьютерного моделирования более удобным является символическое и/или табличное задание графа. Символическое задание графа - перечисление всех его рёбер с указанием вершин, которые они соединяют, либо перечисление всех вершин с указанием исходящих из них рёбер.

Дерево - особый вид графа, применяемый при моделировании объекта, элементы которого находятся в отношении иерархии (подчинения и соподчинения). Корнем дерева называется вершина, соответствующая основному (центральному, главному, родовому) элементу моделируемого объекта. Листьями дерева называют вершины графа, у которых нет «подчинённых» вершин. Формализация при построении дерева сводится к выявлению основного элемента рассматриваемого объекта (вершина нулевого уровня - корень дерева), элементов, которые находятся в непосредственном подчинении у основного элемента (вершины 1-го уровня), элементов, находящихся в непосредственном подчинении у вершин 1-го уровня (вершины 2-го уровня) и т. д. Классификация - система соподчинённых понятий (классов объектов, явлений) в какой-либо отрасли знания, составленная на основе учёта общих признаков объектов и закономерных связей между ними. Представляется чаще всего в виде иерархического графа (дерева) или таблицы. Реляционная (табличная), сетевая (графовая) и иерархическая (древовидная) модели являются основными для представления данных в базах данных. Программные комплексы, которые позволяют создавать, обновлять, сохранять базы данных и обслуживать запросы пользователей к ним, называются соответственно реляционной, сетевой, иерархической системой управления базами данных (СУБД). Большинство существующих автоматизированных баз данных являются базами данных реляционного типа.

И кропотливый процесс, требующий определённых знаний. В следующих параграфах вы познакомитесь с ним более подробно. Результатом этапа формализации и будет информационная модель. Но прежде, чем говорить об окончании процесса моделирования, построенную модель необходимо проверить на непротиворечивость и проанализировать, насколько она адекватна объекту и цели моделирования. Пример. Прочтите...



Апертура осевого пучка. Выражение (10) приближенное, оно может использоваться только для случая небольших апертур. Итак, из выражений (7) и (10) следует, что волновая, поперечная и продольная аберрация – это разные формы представления одного явления нарушения гомоцентричности пучков. При оценке качества изображения за исходную модель аберрационных свойств оптической системы берут волновую...





Локальных моделей, которые относительно легко могут быть отображены в любую систему баз данных. Наиболее распространенным средством моделирования данных являются диаграммы "сущность-связь" (ERD). С их помощью определяются важные для предметной области объекты (сущности), их свойства (атрибуты) и отношения друг с другом (связи). ERD непосредственно используются для проектирования реляционных баз...

Информация о некотором реальном объекте может быть представлена по-разному. В разговорной речи мы используем словесное (вербальное) представление информации. Вот, например, словесное описание нашей области: «Волгоградская область состоит из административно-территориальных единиц - 33 районов и 6 городов областного значения. Города: Волгоград , Волжский , Камышин , Фролово , Михайловка , Урюпинск . По такому описанию можно представить как проехать из одного города в другой? (Вывод делают учащиеся.) Гораздо понятнее становится из следующей схемы (слайд 2) , по которой, например, можно ответить на вопрос: через какие города надо проехать, чтобы добраться из Волгограда в Урюпинск.

Сформулировано понятие «граф» и сети. Выделены его составные части: вершины и ребра. (Слайд 3)

Граф - это набор узлов (вершин) и связей между ними (ребер).

Сеть – граф, в котором вершины связаны между собой по принципу «многие ко многим»

Как представить информацию о графе в памяти компьютера? Хранить ее в виде рисунка (растрового или векторного) неэффективно, потому что рисунок предназначен для восприятия человеком, а не компьютером. Компьютеру удобнее всего хранить информацию в виде таблиц (массив тоже можно считать простейшей таблицей). Для описания графа часто используют квадратную таблицу, которая описывает все возможные связи между узлами (без учета дублирования). Если, например, на пересечении строки A и столбца B записано число 1, это означает, что есть ребро, соединяющее вершины A и B ; число 0 в этой ячейке означает, что такого ребра нет. Такую таблицу называют матрицей смежности. На рисунке показаны схема дорог, соответствующий ей граф и его матрица смежности: (слайд 4)

Единица на главной диагонали (выделенной серым цветом) показывает, что в графе есть петля -ребро, которое начинается и заканчивается в одной и той же вершине.
Обратите внимание, что матрица смежности симметрична относительно главной диагонали, то есть если существует ребро из вершины A в вершину B , то существует и ребро из B в A . Такой граф называют неориентированным - ребра не имеют направления и каждое из них учтено в матрице смежности дважды. Матрица смежности не дает никакой информации о том, как именно расположены узлы друг относительно друга. Для таблицы, приведенной выше, возможны, например, такие варианты, как на рисунках. (слайд 5)

Если для каждого ребра указано направление, граф называют ориентированным (или орграфом). Ребра орграфа называют дугами. Его матрица смежности не всегда симметричная. Единица, стоящая на пересечении строки A и столбца B, говорит о том, что существует дуга из вершины A в вершину B: (слайд 6).

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

У взвешенного орграфа весовая матрица не всегда симметрична относительно главной диагонали: (слайд 8).

Если связи между двумя узлами нет, на бумаге можно оставить ячейку таблицы пустой, а при хранении в памяти компьютера записывать в нее условный код, например, 0, –1 или очень большое число (?), в зависимости от задачи.

Другим примером ориентированного графа являются блок-схемы алгоритмов. (слайд 9) Блок-схема алгоритма представляет собой граф процесса управления некоторым исполнителем. Блоки – вершины этого графа – обозначают отдельные команды, которые отдаются исполнителю, а дуги указывают на последовательность переходов от одной команды к другой.

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

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

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

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

Это по сути граф. Пять компьютеров являются вершинами, а соединения (пути передачи сигналов) между ними – ребрами. Заменив компьютеры вершинами, мы получим математический объект – граф, который имеет 10 ребер и 5 вершин. Пронумеровать вершины можно произвольным образом, а не обязательно так, как это сделано на рисунке. Стоит отметить, что в данном примере не используется ни одной петли, то есть такого ребра, которое выходит из вершины и сразу же входит в нее, но петли могут встречаться в задачах.

Вот некоторые важные обозначения, используемые в теории графов:

  • G=(V, E), здесь G – граф, V – его вершины, а E – ребра;
  • |V| – порядок (число вершин);
  • |E| – размер графа (число рёбер).

В нашем случае (рис. 1) |V|=5, |E|=10;

Когда из любой вершины доступна любая другая вершина, то такой граф называется неориентированным связным графом (рис. 1). Если же граф связный, но это условие не выполняется, тогда такой граф называется ориентированным или орграфом (рис. 2).

В ориентированных и неориентированных графах имеется понятие степени вершины. Степень вершины – это количество ребер, соединяющих ее с другими вершинами. Сумма всех степеней графа равна удвоенному количеству всех его ребер. Для рисунка 2 сумма всех степеней равна 20.

В орграфе, в отличие от неориентированного графа, имеется возможность двигаться из вершины h в вершину s без промежуточных вершин, лишь тогда когда ребро выходит из h и входит в s, но не наоборот.

Ориентированные графы имеют следующую форму записи:

G=(V, A), где V – вершины, A – направленные ребра.

Третий тип графов – смешанные графы (рис. 3). Они имеют как направленные ребра, так и ненаправленные. Формально смешанный граф записывается так: G=(V, E, A), где каждая из букв в скобках обозначает тоже, что ей приписывалось ранее.

В графе на рисунке 3 одни дуги направленные [(e, a), (e, c), (a, b), (c, a), (d, b)], другие – ненаправленные [(e, d), (e, b), (d, c)…].

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

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

Когда каждому ребру графа поставлено в соответствие некоторое значение, называемое весом ребра, тогда такой граф взвешенный . В разных задачах в качестве веса могут выступать различные виды измерений, например длины, цены маршруты и т. п. В графическом представлении графа весовые значения указываются, как правило, рядом с ребрами.

В любом из рассмотренных нами графов имеется возможность выделить путь и, причем не один. Путь – это последовательность вершин, каждая из которых соединена с последующей посредством ребра. Если первая и последняя вершины совпадают, то такой путь называется циклом. Длина пути определяется количеством составляющих его ребер. Например, на рисунке 4.а путем служит последовательность [(e), (a), (b), (c)]. Этот путь является подграфом, так как к нему применимо определение последнего, а именно: граф G’=(V’, E’) является подграфом графа G=(V, E), только тогда когда V’ и E’ принадлежат V, E.

Основные вопросы:

Сведения из истории графов. Граф и
его элементы.
Пути и маршруты в графах
Связные графы. Деревья
Операции над графами.

Теория графов представляет собой
раздел математики, имеющий
широкие практические приложения.
Теория графов – область
дискретной математики,
особенностью которой является
геометрический подход к изучению
объектов.

История возникновения графов

Впервые основы теории графов
появились в работах Леонарда
Эйлера (1707-1783;
швейцарский, немецкий и
российский математик) , в
которых он описывал решение
головоломок и математических
развлекательных задач.
Теория графов началась с
решения Эйлером задачи о
семи мостах
Кёнигсберга.

Издавна среди жителей Кёнигсберга была распространена такая загадка:
как пройти по всем мостам (через реку Преголя), не проходя ни по одному
из них дважды? Многие пытались решить эту задачу как теоретически, так и
практически, во время прогулок. Но никому это не удавалось, однако не
удавалось и доказать, что это даже теоретически невозможно.
На упрощённой схеме части
города (графе) мостам
соответствуют линии (дуги
графа), а частям города -
точки соединения линий
(вершины графа).
В ходе рассуждений Эйлер пришёл к
следующим выводам: Невозможно пройти
по всем мостам, не проходя ни по одному из
них дважды.

История возникновения графов

Термин "граф" впервые появился в книге
венгерского математика Д. Кенига в 1936 г., хотя
начальные важнейшие теоремы о графах
восходят к Л. Эйлеру.

В основе теории лежит понятие графа.

- совокупность конечного числа
точек, называемых вершинами графа, и
попарно соединяющих некоторые из этих
вершин линий, называемых ребрами или
дугами графа. Иногда граф в целом
можно обозначать одной заглавной
буквой.
G V , X называется пара двух
конечных множеств: множество точек V и
множество линий X (ребер, дуг),
соединяющих некоторые пары точек.

Состав графа

Граф состоит из вершин, связанных линиями. Вершины
графа обозначают латинскими буквами A, B, C, D или
цифрами.
Направленная линия (со стрелкой) называется дугой.
Линия ненаправленная (без стрелки) называется ребром.
Линия, выходящая из некоторой вершины и входящая в
неё же, называется петлей.
дуга
А
ребро
В
петля
С

Ориентированный граф -

граф, вершины которого соединены дугами. С
помощью таких графов могут быть представлены
схемы односторонних отношений.
Юра
Аня
Маша
Коля
Витя

Взвешенный граф

Это граф, рёбрам или дугам которого поставлены
в соответствие числовые величины (они могут
обозначать, например, расстояние между городами
или стоимость перевозки).
Вес графа равен сумме весов его рёбер.
4
B
C
2
3
2
A
1
E
D
A
B
C
D
Е
A B C D Е
3 1
4
2
3 4
2
1
2 2
Таблице (она называется весовой
матрицей) соответствует граф.

Если
ребро графа G соединяет две его
вершины V и W, (т.е. V ,W X), то говорят,
что это ребро им инцидентно.
Две вершины графа называются смежными,
если существует инцидентное им ребро: на
рисунке смежными являются вершины А и В,
А и С.
А
С
В

Если граф G имеет ребро, у которого начало
и конец совпадают, то это ребро называется
петлёй. На рисунке ребро q(С, С) – петля.
q
E
С
A
D
B

Два ребра называются смежными, если они
имеют общую вершину.
На рисунке смежными являются, например,
рёбра х1 и х2 с общей вершиной С.
D
х5
х1
F
С
х4
х2
G
х7
х3
E
х6
B
H
A

Рёбра, которые начинаются в одной и
той же вершине, заканчиваются также
в одной и той же вершине, называются
кратными, или параллельными.
Количество одинаковых пар вида
(V , W) называется кратностью ребра (V , W)
Число рёбер, инцидентных вершине А,
называется степенью этой вершины и
обозначается deg(A) (от англ. degree –
степень).

На рисунке кратными являются, например,
рёбра х1(А, В), х2(А, В). Вершинам А и С
инцидентны рёбра х3, х4, х5. Следовательно,
ребро АС имеет кратность, равную 3, а ребро
АВ – кратность, равную 2.
А
х4
х1
х3
С
х2
х5
В

На рисунке вершина А имеет степень,
равную 1, вершина С – 4, вершина D – 2.
Записывается это в виде: deg(A)=1, deg(C)=4,
deg(D)=2.
D
х5
х1
F
С
х4
х2
G
х7
х3
E
х6
B
H
A

Вершина графа, имеющая степень, равную нулю,
называется изолированной.
Граф, состоящий из изолированных вершин,
называется нуль-графом.
Вершина графа, имеющая степень, равную 1,
называется висячей.
Граф, не имеющий ребер (дуг), называется
пустым.
E
C
A
D
B
На рисунке вершина
Е – изолированная:
deg(E)=0.

На рисунке вершины А, В, Е, G, H – висячие.
D
х5
х1
F
С
х4
х2
G
х7
х3
E
х6
B
H
A

Теорема 1. В графе G V , X сумма
степеней всех его вершин – число чётное,
равное удвоенному числу рёбер графа:
n
deg(V) 2m
i 1
i
Количество ребер в любом графе равно
половине суммы степеней его вершин.
где n V
- число вершин;
m X - число рёбер графа.

Вершина называется чётной (нечётной),
если её степень – чётное (нечётное) число.
На рисунке deg(D)=2, deg(F)=3, значит у
графа вершина D является чётной, а F –
нечётной.
х5
D
х1
F
С
х4
х2
G
х7
х3
E
х6
B
H
A

Задача. В городе Маленьком 15 телефонов. Можно ли их соединить проводами так, чтобы каждый телефон был соединен ровно с пятью

другими?

Теорема 2. Всякий (неориентированный)
граф содержит четное число нечетных
вершин.
Следствие. Невозможно начертить граф с
нечётным числом нечётных вершин.
Граф G называется полным,
если любые две его различные
вершины соединены одним и
только одним ребром.

Задача. В классе 30 человек. Может ли быть так, что 9 человек имеют по 3 друга, 11 - по 4 друга, а 10 - по 5 друзей?

Дополнением графа G V , X называется
граф G V , X с теми же вершинами V, что и
граф G, и имеющий те и только те рёбра X ,
которые необходимо добавить к графу G, чтобы он
стал полным. На рисунке дополнением графа G1 до
графа G является граф
G1
G
G1
G1

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

Закономерность 3.
Закономерность 4.
Число нечетных
Невозможно
вершин любого
графа четно.
начертить граф с
нечетным числом
нечетных вершин.

Закономерность 5.
Закономерность 6.
Если все вершины
Граф, имеющий всего
графа четные, то
можно не отрывая
карандаш от бумаги
(«одним росчерком»),
проводя по каждому
ребру только один раз,
начертить этот граф.
Движение можно
начать с любой
вершины и закончить
его в той же вершине.
две нечетные
вершины, можно
начертить, не
отрывая карандаш
от бумаги, при этом
движение нужно
начать с одной из
этих нечетных
вершин и закончить
во второй из них.

Закономерность 7.
Граф, имеющий более
двух нечетных
вершин, невозможно
начертить «одним
росчерком». Фигура
(граф), которую можно
начертить не отрывая
карандаш от бумаги,
называется
уникурсальной.

Пути и маршруты в графах

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

В качестве примера рассмотрим орграф,
представленный на рисунке. Одним из существующих
путей, соединяющих вершины 1 и 3, является
последовательность вершин 1, 2, 1, 4, 3. Единственным
простым путем для той же пары вершин является
последовательность 1, 4, 3. Пути из вершины 1 в
вершину 5 для того же графа не существует.

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

Путь называется замкнутым, если
начальная и конечная вершины совпадают.
Замкнутый путь называется циклом, если все
его вершины (кроме начальной и конечной)
различны.
Рассмотрим граф. Для него путь 2, 1, 6, 5, 4, 1,
2 является замкнутым; а путь 1, 6, 5, 4, 1
является циклом.

Последовательность попарно смежных
вершин неориентированного графа, т.е.
последовательность рёбер
неориентированного графа, в которой вторая
вершина предыдущего ребра совпадает с
первой вершиной следующего, называется
маршрутом.
Число рёбер маршрута называется длиной
маршрута.
Если начальная вершина маршрута совпадает
с конечной, то такой маршрут называется
замкнутым или циклом.

На рисунке HCDFD – маршрут длиной 4.
Обозначение: |HCDFD|=4. Маршрут принято
задавать
как
последовательность
рёбер,
поскольку это удобно при наличии кратных
рёбер.
х
D
х1
5
F
С
х4
х2
G
х7
х3
E
х6
B
H
A

В графе на рисунке (t, s, p, r), (u, s, t, r) – циклы
длиной 4, (r, t, q, s, u) – цикл длиной 5, (t, s, u, r, t, s, p, r)
– 8-цикл, (p, u) – 2-цикл, петля (q) – 1-цикл.
E
q
C
s
A
p
t
D
r
B
u

Операции над графами

Одноместные операции
1. Удаление ребра графа - при этом все вершины графа
сохраняются
2. Добавление ребра графа между двумя
существующими вершинами.
3. Удаление вершины (вместе с инцидентными
ребрами).
4. Добавление вершины (которую можно соединить с
некоторыми вершинами графа).
5. Стягивание ребра - отождествление пары вершин, т.е.
удаление пары смежных вершин, и добавление новой
вершины, смежной с теми вершинами, которые были
смежны, хотя бы одной из удаленных вершин)
6. Подразбиение ребра с- удаление ребра и добавление
новой вершины, которая соединяется ребром с каждой из
вершин удаленного ребра.

Операции над графами

Двуместные операции
Объединением графов G1 (V1 , X 1) и G2 (V2 , X 2)
называется граф G G1 G2 , множество вершин
которого V V1 V2 , а множество рёбер X X 1 X 2 .
Пересечением графов G1 и G2 называется
граф G G1 G2 , для которого X X 1 X 2 множество рёбер, а V V1 V2 - множество вершин.
Кольцевой суммой двух графов называется граф
G G1 G2 , порождённый множеством вершин
т.е.
V V1 V2 и множеством рёбер (X1 X 2) \ (X1 X 2) ,
множеством рёбер, содержащихся либо в G1 , либо в
G2 , но не в G1 G2 .

V4
V2
х3
х2
V3
х4
V1
х1
V5
х2
х7
х3
х4
х4
V1
х7
V1
G=G1UG2
V3
х4
V5
х2
V1
х3
G=G1∩G2
V2
х1
G2
V4
V2
х5 х6
х6
V3
V1
V4
V3
V4
х5
х3
х1
G1
V2
V5
V2
V4
х5 х6V
3
х7
G=G1 G2

Применение графов

С
помощью
графов
упрощается
математических задач, головоломок,
смекалку.
решение
задач на
дальше

Применение графов

Лабиринт - это граф. А исследовать его - это найти
путь в этом графе.
дальше

Использует графы и
дворянство.
На рисунке приведена
часть генеалогического
дерева
знаменитого
дворянского рода Л. Н.
Толстого. Здесь его
вершины – члены этого
рода, а связывающие их
отрезки – отношения
родственности,
ведущие от родителей к
детям.
дальше

Применение графов

Графами являются блок – схемы программ для
ЭВМ.
дальше

Применение графов

Типичными графами на
географических картах являются
изображения железных дорог.
дальше

Применение графов

Типичными графами на картах города
являются схемы движения городского
транспорта.
дальше

Выводы

Графы – это замечательные математические
объекты, с помощью, которых можно решать
математические, экономические и логические
задачи. Также можно решать различные
головоломки и упрощать условия задач по
физике, химии, электронике, автоматике. Графы
используются
при
составлении
карт
и
генеалогических древ.
В математике даже есть специальный раздел,
который так и называется: «Теория графов».
содержание