Алгоритм решения задачи о раскраске вершин графа
Шаг 1. Вычислить степени всех вершин. Расположить вершины в порядке убывания степеней. Присвоить n=1. Шаг 2. Окрасить первую неокрашенную вершину в цвет №n. Шаг 3. Окрасить в цвет № n все вершины, которые не смежны вершинам, уже окрашенным в цвет № n. Шаг 4. Если все вершины окрашены, то hB=n – искомое хроматическое число. Иначе n:n+1 и переходим к шагу 2. Правильная раскраска ребер графа – такая, что никакие два инцидентных ребра графа (имеющих общую вершину) не окрашены в одинаковые цвета. Минимальное число цветов, необходимое для правильной раскраски ребер графа, называется хроматическим индексом графа hр.
Алгоритм решения задачи о раскраске ребер графа
Шаг 1. Вычислить степени всех вершин. Расположить вершины в порядке убывания степеней. Выбрать вершину с максимальной степенью n. Шаг 2. Окрасить все ребра, инцидентные этой вершине в n различных цветов. Шаг 3. Переходим к следующей вершине по списку. Окрашиваем ее ребра. И так далее. Процесс продолжается до тех пор, пока не окрасим ребра, инцидентные последней вершине в списке. Если все ребра окрашены, то hр (количество красок) – хроматический индекс. Справедлива следующая теорема. Теорема Брукса. Если максимальная степень вершины в графе d, то хроматическое число hB£d+1. Теорема Визинга. Если максимальная степень вершин в графе d, то хроматический индекс d£ hр£d+1. ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ Задача 1. Чему равно хроматическое число графа?
Решение. Воспользуемся алгоритмом раскраски вершин графа. 1. degv1=4; degv2=4; degv3=3; degv4=2; degv5=5; degv6=2, где degvi – степень i-й вершины. И начнем раскраску с вершины с наибольшей степенью.
2. Окрасим вершину v5 в цвет № 1. 3. Окрасим в цвет №1 все вершины, не смежные с вершиной v5. Таких вершин нет. 4. Выберем следующую вершину с наибольшей степенью из оставшихся. Это или вершина v1 или v2. Возьмем, например, вершину v1 и окрасим ее в цвет №2. 5. Окрасим вершины, не смежные вершине v1 и уже окрашенные в цвет №2. Это вершина v3 или v4. Возьмем, например, вершину v3 и окрасим в цвет №2. 6. Выберем следующую вершину с наибольшей степенью из оставшихся. Такой вершиной является вершина v2. Окрасим ее в цвет №3. 7. Окрасим в цвет №3 вершины, не смежные с вершиной v2 и уже окрашенные в цвет №3. Это вершины v4 и v6. 8. Больше вершин не осталось, а значит, хроматическое число графа hВ=3.
ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ Задача 1. Найти хроматическое число и хроматический индекс графа.
Задача 3. Правильно выполнить раскраску вершин и ребер графа.
Представление графов в памяти компьютера. Код Харари
Пусть дан граф с n вершинами. Пронумеруем вершины произвольно и составим матрицу смежности А. Так как граф неориентированный, то она будет симметрична относительно главной диагонали, поэтому достаточно взять ее верхний треугольник А'.
Расположим А' в виде двоичной строки (слева направо и сверху вниз). Меняя нумерацию вершин, мы получим другие двоичные строки. Сравним их между собой как двоичные числа. Наибольшее из двоичных чисел называется кодом Харари, а возникшую при этом нумерацию вершин – канонической. Код Харари определяет граф однозначно, но не всякое число может быть кодом Харари.
ПРИМЕРЫ РЕШЕНИЯ ЗАДАЧ Задача 1. Найти код Харари графа.
Решение. Занумеруем вершины графа, выпишем матрицу смежности и ее верхний треугольник.
Легко увидеть, что данная нумерация вершин является канонической, так как, сменив нумерацию вершин, получим числа меньше числа 984. Следовательно, кодом Харари данного графа является число 984. Задача 2. Восстановить и нарисовать граф по числу 698 как по ходу Харари. Проверить, действительно ли нумерация вершин каноническая (т.е. является ли число кодом Харари). Решение. Переведем число 698 в двоичную форму, для чего будем делить его на 2, записывая справа от черты остатки от деления, а слева на следующей строке частные. 698|0 349|1 174|0 87|1 43|1 21|1 10|0 5|1 2|0 1| Записываем число, начиная с последнего частного и далее все остатки снизу вверх: 1010111010. Код Харари должен быть треугольным числом, т.е. иметь длину 1,3,6,10,15,21 и т.д., если длина не совпадает ни с одним из этих чисел, то добавляем слева необходимое количество нулей. Для числа 698 этого делать не нужно, так как треугольное число равно 10. Разбиваем число на разряды: 1010-111-01-0, выписываем эти числа в верхний треугольник матрицы, затем восстанавливаем всю матрицу, записывая ее строки по столбцам:
Восстановим по этой матрице граф с четырьмя вершинами
Заметим, что нумерация вершин не является канонической. Перенумеруем вершины.
Запишем матрицу смежности для получившегося графа
верхний треугольник = 11100110012=92110. 921>698, значит, число 698 кодом Харари не является.
Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|