logo
razdel2_dmat_10

Раскраска графа

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

Пусть G – некоторый граф, k – натуральное число. Произвольная функция вида f: V → {1,2,…,k} называется вершинной k-раскраской или просто k-раскраской графа G.

Раскраска называется правильной, если f(v)≠f(u) для любых смежных вершин v и u. Граф, для которого существует правильная k-раскраска, называется k-раскрашиваемым.

Минимальное число k, при котором граф G является k-раскрашиваемым, называется хроматическим числом этого графа и обозначается χ (G). Если χ (G)=k, то граф называется k-хроматическим. Правильная k-раскраска графа при k =χ (G) называется минимальной.

Алгоритм раскрашивания графов

  1. Выберем в графе G некоторое максимальное независимое множество вершин U. Покрасим все вершины данного множества в один цвет.

  2. Выберем максимальное независимое множество вершин U1 в графе G1, который получается из графа G удалением множества вершин U и всех инцидентных им ребер. Покрасим вершины множества U1 в очередной цвет.

  3. Шаг 2 повторять до тех пор, пока в графе G не будут раскрашены все вершины.

Реберной k-раскраской графа G называется функция φ, ставящая в соответствие каждому его ребру x число φ(x) из множества {1,2,…,k}. Реберная окраска называется правильной, если смежные ребра имеют разные цвета. Граф, допускающий правильную реберную k-раскраску, называется реберно k-раскрашиваемым. Минимальное число k, при котором граф G является реберно k-раскрашиваемым, называется хроматическим классом (хроматическим индексом или реберным хроматическим числом) графа G и обозначается через χ ‘(G). Если χ ‘(G)=k, то граф называется реберно k-хроматическим.

Поскольку ребра любого графа G смежны тогда, когда смежны соответствующие вершины реберного графа L(G) (правило построения реберного графа смотри ниже), то χ ‘(G) можно определить как хроматическое число графа L(G), т.е. χ ‘(G)=χ (L(G)).

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

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

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

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

    1. Паросочетания

Не менее важным, чем понятие вершинной независимости, является понятие реберной независимости.

Произвольное подмножество попарно несмежных ребер графа называется паросочетанием ( или независимым множеством ребер).

В качестве иллюстрации рассмотрим граф, изображенный на рис.2. В нем паросочетаниями являются, например, х1357, х1, х2, х26.

х1 х2 х3 х4 х5 х6 х7

Рис. 2.

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

Число ребер в наибольшем паросочетании графа G называется числом паросочетания и обозначается 1(G).

Независимые множества ребер графа G находятся во взаимно однозначном соответствии с независимыми множествами вершин реберного графа L(G)=(V1,X1), который для графа G=(V,X) определяется следующими двумя условиями:

  1. V1 = X,

  2. вершины х1 и х2 смежны в L(G) тогда и только тогда, когда ребра х1 и х2 смежны в G.

На рис. 3 изображены два графа – G и L(G). Вершины графа G – темные кружки, вершины графа L(G) – светлые кружки. Ребра графа G – тонкие линии, ребра графа L(G) – жирные линии.

Рис. 3

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

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

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

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