Алгоритм Чейтина-Бриггса — различия между версиями
Материал из Вики ИТ мехмата ЮФУ
Juliet (обсуждение | вклад) |
Juliet (обсуждение | вклад) |
||
Строка 24: | Строка 24: | ||
применить какой-нибудь из известных алгоритмов для оставшегося графа | применить какой-нибудь из известных алгоритмов для оставшегося графа | ||
2. Перейти к шагу 1 | 2. Перейти к шагу 1 | ||
+ | |||
+ | <xh4> 3. Поиск раскраски </xh4> | ||
+ | Это древовидный алгоритм. Работаем с бинарным деревом. | ||
+ | Возьмем две не смежные вершины. | ||
+ | ''ветка_1'' | ||
+ | Эти вершины покрашены в один цвет | ||
+ | Тогда будем строить дерево вариантов от текущего узла дальше. | ||
+ | ''ветка_2'' | ||
+ | Эти вершины покрашены в разные цвета. | ||
+ | Можем считать, что между ними есть ребро, т.е. добавили ребро. | ||
+ | Строим дерево вариантов дальше. | ||
+ | Множество раскрасок этого графа совпадает со множеством раскрасок исходного, в которых данные вершины покрашены в разные цвета. | ||
[[Категория:Алгоритмы и анализ сложности]] | [[Категория:Алгоритмы и анализ сложности]] | ||
[[Категория:Учебные курсы ИТ]] | [[Категория:Учебные курсы ИТ]] |
Текущая версия на 21:42, 28 января 2011
Некоторые связанные понятия
Хроматическое число — наименьшее число красок, в которое может быть раскрашен граф.
Задача о раскраске графа. Раскрасить вершины графа в наименьшее число красок так, чтобы никакие смежные вершины не были покрашены в один цвет.
Алгоритм
Это древовидный алгоритм для задачи о раскраске графа.
Он имеет несколько пунктов. <xh4> 1. Проверка полноты графа </xh4>
Если граф полный хроматическое число графа = число вершин Если граф имеет полный подграф хроматическое число графа >= число вершин полного подграфа
<xh4> 2. Выбрасывание вершин </xh4> Обозначим через p(x) степень вершины x.
Если хотим проверить, что m красок хватит для раскраски графа, можем воспользоваться следующим алгоритмом:
1. Если в графе есть вершина x | p(x) < m выбросить ее из графа вместе со смежными ребрами (если m красок хватит для раскраски полученного графа, то и для исходного хватит) иначе применить какой-нибудь из известных алгоритмов для оставшегося графа 2. Перейти к шагу 1
<xh4> 3. Поиск раскраски </xh4> Это древовидный алгоритм. Работаем с бинарным деревом.
Возьмем две не смежные вершины. ветка_1 Эти вершины покрашены в один цвет Тогда будем строить дерево вариантов от текущего узла дальше. ветка_2 Эти вершины покрашены в разные цвета. Можем считать, что между ними есть ребро, т.е. добавили ребро. Строим дерево вариантов дальше. Множество раскрасок этого графа совпадает со множеством раскрасок исходного, в которых данные вершины покрашены в разные цвета.