- •1. Лекция: Графы и способы их представления
- •Графы и способы их представления Основные определения
- •Способы описания графов
- •Задание графов соответствием
- •Матричное представление графов
- •Рассмотрим унарные операции на графе.
- •Многозначные отображения
- •Обратные отображения
- •Транзитивные замыкания
- •Достижимость и контрдостижимость
- •Нахождение множества вершин, входящих в путь
- •Матричный метод нахождения путей в графах
- •5. Лекция: Типы графов (нет)
- •6. Лекция: Виды подграфов
- •Метод Мальгранжа
- •Алгоритм Дейкстра поиска кратчайших путей в графе
- •Присвоение начальных значений
- •Обновление пометок
- •Превращение пометки в постоянную
- •Вторая итерация
5. Лекция: Типы графов (нет)
Граф G = (X, A) называют полным, если для любой пары вершин хi и хj в X существует ребро (хi, хj) в неориентированном графе G=(X,A), т. е. для каждой пары вершин графа G должна существовать по крайней мере одна дуга, соединяющая их (рис. 5.1,а).
Граф G =(X, A)называется симметрическим, если в множестве дуг A для любой дуги (хi, хj) существует также противоположно ориентированная дуга (хj, хi) (рис. 5.1,б).

Рис. 5.1. а – полный граф; б – симметрический граф; в – антисимметрический граф;
г – полный симметрический
Антисимметрическим
называется такой граф, для которого
справедливо следующее условие: если
дуга (хi,
хj)
A,
то во множестве A нет противоположно
ориентированной дуги, т. е. ( хj,
хi)
A
(рис.
5.1,в).
Очевидно, что в антисимметрическом
графе нет петель.
В качестве примера можно рассмотреть граф, являющийся моделью некоторой группы людей: вершины графа интерпретируют людей, а дуги – их взаимоотношения. Так, если в графе дуга, нарисованная от вершины хi к вершине хj , означает, что хi является другом или родственником хj , тогда данный граф должен быть симметрическим. Если дуга, направленная от хi к хj , означает, что вершина хj подчинена вершине хi , то такой граф должен быть антисимметрическим.
Комбинируя определения полного и симметрического графов и полного и антисимметрического графов, получили следующие определения:
-
граф G =(X, A), в котором любая пара вершин (хi, хj) соединена двунаправленными дугами, называется полным симметрическим (рис. 5.1,г);
-
граф G =(X, A), имеющий для каждой пары вершин (хi, хj) только одну дугу, называется полным антисимметрическим или турниром.
Связный граф, не имеющий циклов, либо граф, в котором каждая пара вершин соединена одной и только одной простой цепью, называется деревом (рис. 5.2, а, б).

Рис. 5.2. Граф типа “дерево”: а – неориентированное дерево,
б – ориентированное дерево
Ориентированное дерево представляет собой ориентированный граф без циклов, в котором полустепень захода каждой вершины, за исключением одной (например, вершины х1 ), равна 1, а полустепень захода вершины х1 (называют корнем этого дерева) равна 0 (рис. 5.2,б).
Граф G =(X, A), который может быть изображен на плоскости или сфере без пересечений называется планарным (рис. 5.3).

Рис. 5.3. Планарный граф
На рис. 5.4 показаны непланарные графы. Эти два графа играют важную роль в теории планарных графов и известны как графы Куратовского.

Рис. 5.4. Непланарные графы
Неориентированный граф G = (X, A)называют двудольным, если множество его вершин X может быть разбито на такие два подмножества Xа и Xb , что каждое ребро имеет один конец в Xа , а другой в Xb (рис. 5.5,а).
Ориентированный граф G называется двудольным, если его неориентированный двойник – двудольный граф (рис. 5.5,б,в).
Двудольный
граф G=(Xа
Xb,
A) называют полным, если для любых двух
вершин хi
Xа
и хj
Xb
существует ребро (хi,хj)
в G=(X,A) (рис.
5.5,г).

Рис. 5.5. Двудольные графы: а, б, в – двудольные графы; г – полный двудольный граф
Теорема о двудольности
Граф G = (X, A) является двудольным тогда и только тогда, когда он не содержит циклов нечетной длины.
Доказательство
1.
Необходимость. Поскольку множество X
разбивается на две части Xа
и Xb
, то Xа
Xb
= X и Xа
Xb
= Ø .
Пусть
существует цикл нечетной длины хi1
, хi2,
...,хi
q ,
хi1
. Без потери общности допустим, что хi1
Xа
. Согласно определению одна из двух
следующих друг за другом вершин этого
цикла должна принадлежать множеству
Xа
, а другая – множеству Xb
, тогда имеем: хi2
Xb,
хi3
Xа
и т. д. Следовательно, хik
Xа
, если k – нечетное, и хik
Xb
, если k – четное.
Мы
предположили, что длина цикла нечетная.
Поэтому из соотношения хi
q
Xа
следует, что хi1
Xb
. Это противоречит исходному условию,
поскольку Xа
Xb
= Ø и вершина не может принадлежать
одновременно как Xa
, так и Xb
.
Для большей ясности можно рассмотреть цикл нечетной длины для графа, изображенного на рис. 5.6:

Рис. 5.6. Построение цикла
х1---х3--- х5--- х4--- х2--- х1
Xа Xb Xа Xb Xа Xb .
Поочередно
помечая вершины, мы видим противоречие:
вершина Х1
Xа
и согласно определению должна принадлежать
Xb,
следовательно, рассматриваемый граф
не является двудольным.
2. Достаточность. Предположим, что в графе G не существует цикла нечетной длины. Выберем одну из вершин графа, например, хi, и пометим ее"+". Выполним итерационную процедуру.
Берем уже помеченную вершину хi и помечаем все вершины из множества Г+1(хi) знаком, противоположным тому, который присвоен вершине хi .
Будем продолжать эту операцию до тех пор, пока не будет сделано следующее:
1) все вершины не будут помечены, а знаки, приписанные им, согласованы (иными словами, любые две вершины, соединенные ребром, помечены противоположными знаками);
2) для каждой помеченной вершины хi все вершины из множества Г+1(хi) помечены, но существуют другие, еще не помеченные вершины;
3) некоторая вершина, например хik , которая была уже помечена каким-то знаком ("+" или"–"), может быть помечена теперь (со стороны другой вершины) знаком, противоположным приписанному вершине хik .
В случае 1 все вершины , помеченные знаком"+", отнесем к множеству Xa , а помеченные знаком "–" – к множеству Xb . Поскольку все ребра соединяют вершины, помеченные противополож-ными знаками, то граф является двудольным.
Рассмотрим граф на рис. 5.6. Пометим знаком"+", например, вершину х1 . Найдем отображение Г+(х1) = { х4, х5 }. Вершины х4 и х5 пометим знаком"–". Отображение Г+(х4, х5) = = { х2, х3 }, помечаем вершины х2 и х3 знаком"+". Г+(х2, х3) = = { х4, х5, х6 }. Оставшуюся непомеченной вершину х6 помечаем знаком"–". Таким образом, получили два подмножества вершин Xa = { х1, х2, х3 } и Xb = { х4, х5, х6 } и показали, что рассматриваемый граф является двудольным.
Случай 2 означает, что между помеченной и непомеченной вершинами не существует дуги. Перейдем к неориентированному графу и повторим процедуру пометок знаками "+" и"–". Если остались непомеченные вершины, то это означает, что граф распадается на две или больше частей, и каждая из них может тогда рассматриваться отдельно. Итак, в конце приходим к случаю 1.
В графе на рис. 5.5в, пометки были начаты знаком "+" с вершины х 2 . Г+(х2) = { х4 }. Вершина х4 помечается знаком"–". Г+(х4) = { х3 }. Вершина х3 помечается знаком"+". Г+(х3) = Ø.
В графе остались непомеченные вершины, но если перейти к неориентированному двойнику этого графа, то процедура пометок легко выполняется и множество вершин разбивается на два подмножества Хa= { х1, х2, х3 } и Хb= { х4, х5, х6 }, тем самым исходный граф является двудольным.
В случае 3 вершина хik должна быть помечена знаком "+" на некотором маршруте (например, М1), состоящем из вершин хi1, хi2, ..., хik ; причем знаки "+" и"–", приписываемые этим вершинам при движении по маршруту М1, должны образовывать чередующуюся последовательность. Например, для графа на рис. 5.5г маршрут М1можно выбрать таким:
М1:
х1
х3
х5
х4
х2.
"+" "-" "+" "-" "+"
Аналогично знаком "-" вершина хik помечается вдоль некоторого маршрута М2 . Например,
М2:
х1
х4
х6
х2.
"+" "-" "+" "-"
Пусть x* – предпоследняя (последней является хik ) общая вершина маршрутов М1 и М2 . Если вершина x* помечена знаком"+", то участок от x* до хik маршрута М1 должен быть четным, а участок от x* до хik маршрута М2 должен быть нечетным. Если же вер-шина x* помечена знаком"-", то участок маршрута М1 будет нечетным, а маршрута М2 – четным. Следовательно, цикл, состоящий из участка маршрута М1 , от x* до хik , и соответствующего участка маршрута М2 , от хik до x* , имеет нечетную длину. Это противоречит предположению, что граф не содержит циклов нечетной длины, и, значит, случай 3 невозможен.
В рассматриваемом примере x* = х4 . В маршруте М1 длина участка от х4 до х2 равна 1, а в маршруте М2 длина участка от х4 до х2 равна 2, что в сумме составляет нечетное число, следовательно, граф содержит цикл нечетной длины и не является двудольным.
