Некоторые задачи, возникающие при планировании производства, составлении графиков осмотра и транспортировки товаров, могут быть представлены как задачи теории графов, тесно связанные с так называемой «задачей раскраски». Эта задача формулируется следующим образом: для данного графа определить минимальное количество цветов, необходимых для раскраски вершин графа так, чтобы никакие две смежные вершины не были окрашены в один цвет.
Задачи раскраски вершин или ребер графа занимают важное место в теории графов. К построению раскрасок сводится целый ряд практических задач. Характерной особенностью этих задач является существование объектов, которые по каким-либо причинам не могут быть объединены в одну группу.
Пусть G – некоторый граф, k – натуральное число. Произвольная функция вида f:X{l,2,...,k} называется вершинной k-раскраской, или просто k-раскраской, графа G. Если позволяет контекст, то k в этом определении опускается. Раскраска называется правильной, если f(xi)f(xj) для любых смежных вершин xi и xj. Граф, для которого существует правильная k-раскраска, называется k-раскрашиваемым (или раскрашиваемым k цветами). В определении раскраски вместо множества {1, 2, ..., k} можно взять произвольное k-элементное множество.
Правильную k-раскраску графа можно трактовать как окрашивание каждой его вершины в один из k цветов, при этом смежные вершины должны получать различные цвета. Поскольку функция f не обязательно сюрьективна, то при k-раскраске фактически может быть использовано менее k цветов. Таким образом, правильную k-раскраску графа G можно рассматривать как разбиение
X 1 X2 ... Xl = X, lk,
множества вершин X на не более чем k непустых классов, каждый из которых является независимым множеством. Классы этого разбиения называются цветными классами. Множество вершин одного цвета называется одноцветным клаcсом.
Минимальное
число k,
при котором граф G
является k-раскрашиваемым,
называется хроматическим
числом этого графа
и обозначается
(G).
Если
(G)
= k,
то граф G
называется
k-хроматическим.
Правильная k-раскраска
графа
G
при
k=
(G)
называется
минимальной.
В качестве иллюстрации рассмотрим граф G, изображенный на рис. 4.28, где указана одна из правильных 4-раскрасок. Меньшим числом цветов этот граф раскрасить правильно нельзя. Действительно, граф содержит цикл (x1, x2, x3, x4, x5, x1), для правильной раскраски которого нужно не менее трех цветов, а для вершины x6 требуется новый цвет. Итак, (G)=4.
Пример. Так как в полном графе Кп любые две различные вершины связаны ребром, то (Кn)= п.
Рассмотрим некоторые практические задачи, сводящиеся к правильной раскраске графов.
1. Задача составления расписаний. Предположим, что нужно прочесть несколько лекций за кратчайшее время. Чтение каждой лекции в отдельности занимает один час, но некоторые лекции не могут читаться одновременно (например, их читает один и тот же лектор). Построим граф G, вершины которого биективно соответствуют лекциям, и две вершины смежны тогда и только тогда, когда соответствующие лекции нельзя читать одновременно. Очевидно, что любая правильная раскраска этого графа определяет допустимое расписание: лекции, соответствующие вершинам графа, составляющим цветной класс, читаются одновременно. И, обратно, любое допустимое расписание определяет правильную раскраску графа G. Оптимальные расписания соответствуют минимальным раскраскам, а число часов, необходимое для прочтения всех лекций, равно (G).
2. Задача распределения оборудования. Заданы множества Х = {х1, х2, ..., хn} и S = {s1, s2, ..., sm} работ и механизмов соответственно. Для выполнения каждой из работ требуется некоторое время, одинаковое для всех работ, и некоторые механизмы. При этом никакой из механизмов не может быть одновременно занят в нескольких работах. Нужно распределить механизмы так, чтобы общее время выполнения всех работ было минимальным. Построим граф G с множеством вершин X и объявим вершины хi и хj (i≠j) смежными тогда и только тогда, когда для выполнения работ хi и хj требуется хотя бы один общий механизм. При правильной раскраске графа G работы, соответствующие вершинам одного цвета, можно выполнять одновременно, а наименьшее время выполнения всех работ достигается при минимальной раскраске.
3. Задача о проектировании коробки скоростей. Коробка скоростей – механизм для изменения частоты вращения ведомого вала при постоянной частоте вращения ведущего. Это изменение происходит за счет того, что находящиеся внутри коробки шестерни (зубчатые колеса) вводятся в зацепление специальным образом. Одна из задач, стоящая перед конструктором коробки, заключается в минимизации ее размеров, а это часто сводится к минимизации числа валов, на которых размещаются шестерни.
Построим граф G, вершины которого биективно соответствуют шестерням. Если по какой-то причине две шестерни не должны находиться на одном валу (например, они могут быть в зацеплении, или их общий вес велик для одного вала и т. д.), то соответствующие вершины графа соединим ребром. Вершины, имеющие один цвет при правильной раскраске этого графа, определяют шестерни, которые могут находиться на одном валу, а хроматическое число (G) равно минимальному количеству валов, нужных для проектируемой коробки.
4. Рассмотрим граф G, вершины которого – страны, а ребра соединяют страны, имеющие общую границу. Числу (G) соответствует наименьшее число красок, необходимых для раскраски карты так, чтобы никакие две соседние страны не были окрашены в один цвет.
Для некоторых графов хроматические числа найти несложно. Например, (Кп) = п, (Kn,m) = 2, (C2n) = 2, (C2n+1) = 3.
Очевидно, что граф является 1-хроматическим тогда и только тогда, когда он пустой, а 2-хроматическим – когда он двудольный и непустой. Обычно 2-хроматический граф называют бихроматическим. Поэтому теорему Кёнига о двудольных графах можно сформулировать в следующем виде.
Теорема 4.10.1. Непустой граф является бихроматическим тогда и только тогда, когда он не содержит циклов нечетной длины.
Задачи определения хроматического числа и построения минимальной раскраски произвольного графа являются очень сложными, эффективные алгоритмы их решения неизвестны. Рассмотрим простой эвристический алгоритм построения правильной раскраски вершин графа, в ряде случаев приводящий к раскраскам, близким к минимальным.
Замечание. Данный алгоритм определяет оценку y'(G) хроматического числа (G) графа G, которая удовлетворяет соотношению
(G) y'(G) max min {d(i)+l, i},
i
где d(i) – степень i-ой вершины, причем индексация вершин хi осуществляется в соответствии с убыванием их степеней.
Шаг 1. G – данный граф. Для каждой вершины графа определить ее степень. Расположить вершины в порядке невозрастания их степеней.
Шаг 2. Первая вершина окрашивается в цвет №1. Затем список вершин просматривается сверху вниз и в цвет №1 окрашивается всякая вершина, которая не смежна с другой, уже окрашенной в этот цвет.
Шаг 3. Возвращаемся к первой в списке неокрашенной вершине, окрашиваем ее в цвет №2 и, двигаясь по списку, окрашиваем вершины в цвет №2 так же, как окрашивали в цвет №1.
Шаг 4. Процедура продолжается до тех пор, пока все вершины не будут окрашены. Количество использованных цветов будет приближенным значением хроматического числа.
Раскраска, к которой приводит описанный алгоритм, называется последовательной. Очевидно, что это – правильная раскраска. Для некоторых классов графов (например, полных k-дольных) последовательная раскраска является минимальной. В общем случае это не так.
Следующая теорема сводит задачу построения правильной раскраски графов к аналогичной задаче для двухсвязных графов.
Теорема 4.10.2. Если каждый блок графа k-раскраши-ваем, то и сам граф также k-раскрашиваем.
Доказательство. Воспользуемся индукцией по числу блоков рассматриваемого графа. Для графа, являющегося блоком, утверждение тривиально. Предположим, что теорема верна для графов, состоящих из m1 блоков. Пусть теперь G – граф, имеющий ровно m+1 блоков, В – один из его концевых блоков, Н – объединение всех остальных блоков. По индуктивному предположению оба графа В и H являются k-раскрашиваемыми. Зафиксируем для каждого из них правильную k-раскраску.
Графы В и H имеют ровно одну общую вершину х. Если ее цвета в обеих фиксированных k-раскрасках совпадают, то получена правильная k-раскраска графа G. В противном случае нужно очевидным образом переставить цвета в одной из фиксированных раскрасок. Теорема доказана.
Утверждение 4.10.1. Если граф G является r-хромати-ческим, то он может быть раскрашен с использованием r красок с помощью следующей процедуры: сначала в один цвет окрашивается некоторое максимальное независимое множество S[G], затем окрашивается в следующий цвет множество S[X \ S[G]] и т.д. до тех пор пока не будут раскрашены все вершины.
Утверждение 4.10.2. Каждый планарный граф 5-раскра-шиваем.
Утверждение 4.10.3. Каждый планарный граф, не содержащий треугольников, 3-раскрашиваем.
Утверждение
4.10.4. Хроматическое число графа G
равно кликовому числу его дополнения
.
Реберной раскраской неорграфа G=(X,V) k цветами называется функция
:V{l,2,..,k},
такая, что для любых двух смежных ребер v1 и v2 выполняется (v1)(v2).
Хроматическим индексом графа G называется наименьшее такое k, что граф G допускает реберную раскраску k цветами.
Существуют и практические задачи, связанные с раскраской ребер в мультиграфе.
Раскраска
ребер в мультиграфе G
может быть определена с помощью раскраски
вершин так называемого реберного
мультиграфа
L(G).
Для произвольного неориентированного
мультиграфа
G={X,
V,
Р}, где X
– множество
вершин,
V
– множество
дуг,
РV
X
V,
(x,v,y)Р
тогда и только тогда, когда дуга v
исходит из вершины х
и заходит в вершину у,
реберным мулътиграфом L(G)
называется
тройка {V,
X,
Р’},
где
Р'V
X
V,
и
выполняется (u,
х, v)Р'
тогда
и только тогда, когда в мультиграфе G
вершина х
является
концом
ребер и и
v.
Раскраской
ребер
мультиграфа
G
называется раскраска вершин мультиграфа
L(G).
Пример. Проводится монтаж аппаратуры. Чтобы не перепутать проводники, необходимо их окрасить таким образом, чтобы два проводника, идущие к одной плате, имели разные цвета. В этом случае вершинами являются платы, а ребрами – проводники.
Теорема 4.10.3. Пусть G – неорграф без петель, имеющий хотя бы одно ребро. Тогда следующие условия эквивалентны:
1) G – бихроматический граф;
2) G – двудольный граф;
3) G не содержит циклов нечетной длины.
Теорема 4.10.4. Для любого неорграфа G без петель выполняется неравенство (G)d(G)+1, где d(G) – наибольшая степень вершин графа.
Понятие дерева как математического объекта было впервые предложено Кирхгофом в связи с определением фундаментальных циклов, применяемых при анализе электрических цепей. Деревья имеют особое положение в теории графов из-за предельной простоты строения, и часто при решении какой-либо задачи на графах ее сначала исследуют на деревьях.
Важность деревьев определяется широким приложением в различных областях знания. Понятие дерева применяется при конструировании различных алгоритмов (определение базисных циклов, базисных разрезающих множеств, проверка графа на двудольность и другие). Кратчайшее остовное дерево находит применение при решении задач, в которых необходимо связать n точек некоторой сетью так, чтобы общая длина «линий связи» была минимальной (прокладка дорог, газопроводов, линий электропередачи).
Деревом называется конечный связный граф без циклов, имеющий не менее двух вершин.
Если G – граф с n вершинами, то остовным деревом (остовом) графа G называется всякий остовный подграф графа G, являющийся деревом.
Пример. G – граф, показанный на рис. 4.29(а), то граф 4.29(б) является остовом графа G, как и граф, изображённый на рис. 4.29(в). Из сформулированных выше определений вытекает, что остов графа G можно также рассматривать как минимальный связанный остовный подграф графа G. Вообще говоря, остов определяется неоднозначно.
а б в
Рис. 4.29. Граф G и его остовы: а – граф G, б – остов графа G, в – другой остов
K-деревом называется ациклический граф, состоящий из k компонент связности.
Если k-дерево является остовным подграфом графа G, то оно называется k-остовом графа G.
Кодерево Т* остова Т графа G – это остовный подграф графа G, содержащий только те ребра G, которых нет в Т. Ребра остова Т называются ветвями, а ребра соответствующего кодерева Т* – хордами.
Лесом L графа G называется остовное k-дерево графа G, где k число компонент связности в G. Любой неорграф без циклов называется ациклическим графом или лесом. Таким образом, компонентами связности любого леса являются деревья. На рис. 4.30 изображен лес, состоящий из двух деревьев.
Теорема
4.11.1. Для неориентированного графа G
без петель содержащего n
вершин характеристические свойства
дерева эквивалентны:
1) G связен и не содержит циклов;
2) G не содержит циклов и имеет (n-1) ребро;
3) G связен и имеет (n-1) ребро;
4) G не содержит циклов, но добавление ребра между любыми двумя несмежными вершинами приводит к появлению цикла;
5) G связен, но утрачивает это свойство после удаления любого ребра;