Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по МОТС / ДИСКРЕТНАЯ МАТЕМАТИКА Графы.doc
Скачиваний:
377
Добавлен:
15.02.2014
Размер:
3.38 Mб
Скачать

12.2.3. Теорема о пяти красках

ТЕОРЕМА Всякий планарный граф можно раскрасить пятью красками.

доказательство

Достаточно рассматривать связные графы, потому что

Индукция по р. База: если р ^ 5, то х ^ Р ^ 5. Пусть теорема верна для всех связных планарных графов с р вершинами. Рассмотрим граф G с р+ 1 вершиной. По третьему следствию к формуле Эйлера 3 v e V d(v) < 5. По индукционному предположению x(G — v) ^ 5. Нужно раскрасить вершину v.

Если d(v) < 5, то в 5-раскраске G - v существует цвет, свободный для v.

Если d(v) = 5 и для Г+(г>) использованы не все пять цветов, то в 5-раскраске G — v существует цвет, свободный для v.

Остался случай, когда d(v) = 5 и все пять цветов использоданы (вершина vt покрашена в цвет г, рис. 12.2). Пусть Gi3 — правильный подграф G - v, по­ рожденный всеми вершинами, покрашенными в цвета 1 или 3 в 5-раскраске графа G — v. Если vi и уз принадлежат разным компонентам связности гра­ фа gis, то в той компоненте, и которой находится v\, произведем перекраску1 «-»• 3. При этом получится 5-раскраска G - v, но цвет 1 будет свободен для v. В противном случае существует простая цепь, соединяющая vi и v3 и состоя­ щая из вершин, покрашенных в цвета 1 и 3. В этом случае щ и v4 принадлежат разным компонентам связности подграфа G24 (так как граф G — планарный). Перекрасим вершины 2 -и- 4 в той компоненте связности графа G24, которой принадлежит v2, и получим 5-раскраску графа G-v, в которой цвет 2 свободен для v.

Рис. 12.2. Иллюстрация к доказательству теоремы о пяти красках

12.3. Алгоритмы раскрашивания

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

12.3.1. Точный алгоритм раскрашивания

Рассмотрим следующую схему рекурсивной процедуры Р:

Выбрать в графе G некоторое максимальное независимое множество вершин S.

Покрасить вершины множества S в очередной цвет.

Применить процедуру Р к графу G - S.

Вход: граф G(V, E), номер свободного цвета г.

Выход: раскраска, заданная массивом C[V], - номера цветов, приписанные вершинам.

if V = 0 then

return { раскраска закончена }

end if

S: = Selectmax(G) {S — максимальное независимое множество }

C[S]: = г { раскрашиваем вершины множества S в цвет г }

P(G — S, г + 1) { рекурсивный вызов }

ЗАМЕЧАНИЕ

Функция Selectmax может быть реализована, например, алгоритмом 11.2.4.

ТЕОРЕМА Если граф G k-раскрашиваемый, то существует такая последова­тельность выборов множества S на шаге 1 процедуры Р, что применение проце­дуры Р к графу G построит не более чем k-раскраску графа G.

доказательство

Пусть имеется некоторая fc-раскраска графа G(V,E). Перестроим ее в не более чем /с-раскраску, которая может быть получена процедурой Р. Пусть Vi с V • множество вершин в данной fc-раскраске, покрашенных в цвет 1. Множество Vj - независимое, но, может быть, не максимальное. Рассмотрим множество VJ/, та­ кое что Vi U V\ — максимальное независимое множество (может оказаться, что V\ = 0). Вершины из V/ не смежны с Уь значит, вершины из У/ можно перекра­ сить в цвет 1. Пусть далее У2 С V"\(V"i U Vi') — множество вершин, покрашенных в цвет 2. Аналогично рассмотрим множество У2', такое что V2 U У2' — максималь­ ное независимое в G\(ViUVi')i покрасим вершины Vjj'U.Vj' в цвет 2 и т. д. Всего в исходной раскраске было k независимых множеств. При перекраске их число не возрастет (но может уменьшиться, если x(G) < k). На каждом шаге алгоритма рассматривается одно из множеств, следовательно, процесс закончится. D