Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции новые / Раскраска графов.docx
Скачиваний:
142
Добавлен:
18.02.2017
Размер:
240.91 Кб
Скачать

Пример:

Правильная раскраска графа G может выглядеть следующим образом:

Функцией Гранди называется функция на вершинах графа, отображающая вершины в множество {1,2,…, a}, причем если вершина xi окрашена в цвет с номером k, то функция Гранди h(xi= k.

Ясно, что для данного графа хроматическое число является единственным, но функций Гранди может быть очень много. Естественно, что найти хотя бы одну функцию Гранди – это значит, найти одну из возможных “наилучших” раскрасок (таких раскрасок может быть много).

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

Алгоритм неявного перебора

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

Предположим, что множество вершин как-то упорядочено и xi — i-я вершина этого множества. Тогда первоначальная допустимая раскраска может быть получена так:

  • Окрасить xi в цвет 1.

  • Каждую из оставшихся вершин окрашивать последовательно: вершина xi окрашивается в цвет с наименьшим возможным «номером» (т. е. выбираемый цвет должен быть первым в данном упорядочении цветом, не использованным при окраске какой-либо вершины, инцидентной xi). Далее улучшаем раскраску. Отыскиваем первую по номеру вершину с максимальным цветом. Из неё делаем шаг возвращения:

  • Находим смежную вершину с максимальным номером, который меньше, чем у нее.

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

  • Если это не удается, то делаешь шаг возвращения из этой вершины.

  • Если это удаётся, то по правилу первой фазы перекрашиваем вершины с большим номером.

  • Если при перекрашивании какая-то вершина затребовала максимальный цвет, от которого мы пытаемся избавиться, то делаем шаг возвращения из неё.

  • Если достигнута первая вершина, то завершаем работу.

Пример (Неявный перебор) В качестве примера возьмём граф, представленный на рисунке 1:

Цвета обозначим:

  • Красный – 1;

  • Зеленый – 2;

  • Синий – 3.

Рисунок 4 - Пример графа

  1. Раскрашиваем вершины по порядку в минимально возможные цвета: 1 -красный, 2 - зеленый, 3 - зеленый, 4 - красный, 5 - синий.

  2. Вершина номер 5 имеет максимальный цвет (с номером 3). Попытаемся от него избавиться: делаем шаг возвращения из вершины 5.

  3. Смежная вершина с максимальным номером, которая меньше 5 - это 3. Перекрасить ее в цвет больший ее (2) и меньший, чем максимальный (3) - нельзя. Делаем шаг возвращения из вершины 3.

  4. Смежная вершина с максимальным номером, которая меньше 3 - это 1. Мы достигли первую вершину и завершаем алгоритм.

Приближенные алгоритмы раскрашивания

Эвристический метод

Вначале выбираем первый цвет.

  • Сортируем вершины по количеству неокрашенных смежных вершин.

  • Последовательно окрашиваем вершины в выбранный цвет. Если у вершины уже есть смежная вершины с выбранный цветом, то оставляем ее неокрашенной.

  • Если остались неокрашенные вершины, то выбираем следующий цвет и переходим к пункту 1.

Пример. Эвристический метод.

  1. Сортируем вершины по степени: 1, 3, 2, 4, 5.

  2. Окрашиваем в первый цвет (красный). Мы можем окрасить вершины 1. Вершины 2 и 3 окрасить нельзя, поскольку они смежны с 1. Вершина 4 несмежна, так что может быть окрашена в красный. Смежную с первой вершину 5 окрасить нельзя.

  3. Сортируем вершины по количеству смежных неокрашенных вершин: 3, 2, 5.

  4. Выбираем следующий цвет - зеленый. Мы можем окрасить в него вершины 2 и 3.

  5. Сортируем вершины по количеству смежных неокрашенных вершин: остаётся только 5.

  6. Выбираем следующий цвет - синий (3).

  7. Окрашиваем последую вершину 5 в синий цвет.

Теоретическое обоснование

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

Эвристический метод дает приемлемый результат, поскольку вначале окрашивает вершины с максимальной степенью.

Раскраска ребер

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

Теорема Визинга. Если в графе максимальная степень вершин равна δ, то реберно-хроматическое число равно либо δ, либо δ +1.

Заметим, что до сих пор нет “хороших” критериев для графов, когда же именно реберно-хроматическое число равно δ, а когда δ + 1.

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

Очевидно, что простейший алгоритм нахождения реберно-хроматического числа (и соответствующей раскраски ребер) состоит в следующем: по данному графу строим так называемый двойственный граф: ребра графа соответствуют вершинам нового (двойственного) графа, причем, если 2 ребра имеют общую вершину, то они являются смежными и в двойственном графе соединены ребром. После этого раскрашиваем наилучшим образом вершины двойственного графа и, переходя к “старому” графу, получаем (одну из возможных) наилучших реберных раскрасок графов.

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

Применение задачи о раскраске

Теория расписаний

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