В теории графов раскраска графа является частным случаем маркировки графа ; это назначение меток, традиционно называемых «цветами», элементам графа , подчиняющимся определенным ограничениям. В своей простейшей форме это способ раскраски вершин графа таким образом, что никакие две смежные вершины не имеют одинакового цвета; это называется раскраской вершины . Аналогично, раскраска ребер назначает цвет каждому ребру так, что никакие два смежных ребра не имеют одинакового цвета, а раскраска граней планарного графа назначает цвет каждой грани или области так, что никакие две грани, имеющие общую границу, не имеют одинакового цвета.
Раскраска вершин часто используется для введения задач раскраски графов, поскольку другие задачи раскраски могут быть преобразованы в пример раскраски вершин. Например, раскраска ребер графа — это просто раскраска вершин его линейного графа , а раскраска граней плоского графа — это просто раскраска вершин его дуального . Однако задачи раскраски не вершин часто формулируются и изучаются как есть. Это отчасти педагогично , а отчасти потому, что некоторые задачи лучше изучать в их не вершинной форме, как в случае раскраски ребер.
Соглашение об использовании цветов берет свое начало от раскраски стран карты , где каждая грань буквально раскрашена. Это было обобщено до раскраски граней графа, вложенного в плоскость. Благодаря плоскостной двойственности это стало раскраской вершин, и в этой форме это обобщается на все графы. В математических и компьютерных представлениях типично использовать первые несколько положительных или неотрицательных целых чисел в качестве «цветов». В общем, можно использовать любой конечный набор в качестве «набора цветов». Природа проблемы раскраски зависит от количества цветов, но не от того, какие они.
Раскраска графов имеет множество практических применений, а также теоретических задач. Помимо классических типов задач, на граф можно также накладывать различные ограничения, или на способ назначения цвета, или даже на сам цвет. Она даже достигла популярности среди широкой публики в форме популярной числовой головоломки Судоку . Раскраска графов по-прежнему является очень активной областью исследований.
Примечание: многие термины, используемые в этой статье, определены в Глоссарии теории графов .
Первые результаты о раскраске графов касались почти исключительно планарных графов в форме раскраски карт . Пытаясь раскрасить карту графств Англии, Фрэнсис Гатри выдвинул гипотезу о четырёх цветах , отметив, что четырёх цветов достаточно для раскраски карты так, чтобы никакие регионы, имеющие общую границу, не получили одинаковый цвет. Брат Гатри передал вопрос своему учителю математики Августу Де Моргану в Университетском колледже , который упомянул об этом в письме Уильяму Гамильтону в 1852 году. Артур Кейли поднял проблему на заседании Лондонского математического общества в 1879 году. В том же году Альфред Кемпе опубликовал статью, в которой утверждал, что установил результат, и в течение десятилетия проблема четырёх цветов считалась решённой. За своё достижение Кемпе был избран членом Королевского общества , а затем президентом Лондонского математического общества. [1]
В 1890 году Перси Джон Хивуд указал на то, что аргумент Кемпе был неверен. Однако в этой статье он доказал теорему о пяти красках , заявив, что каждая плоская карта может быть раскрашена не более чем пятью цветами, используя идеи Кемпе. В следующем столетии была проделана огромная работа и разработаны теории, чтобы сократить количество цветов до четырех, пока теорема о четырех красках не была окончательно доказана в 1976 году Кеннетом Аппелем и Вольфгангом Хакеном . Доказательство вернулось к идеям Хивуда и Кемпе и в значительной степени проигнорировало промежуточные разработки. [2] Доказательство теоремы о четырех красках примечательно, помимо решения им проблемы вековой давности, тем, что оно является первым крупным доказательством с помощью компьютера.
В 1912 году Джордж Дэвид Биркгоф ввел хроматический многочлен для изучения проблемы раскраски, который был обобщен до многочлена Тутта У. Т. Туттом , оба из которых являются важными инвариантами в алгебраической теории графов . Кемпе уже привлек внимание к общему, непланарному случаю в 1879 году [3], и многие результаты по обобщениям планарной раскраски графов на поверхности более высокого порядка последовали в начале 20-го века.
В 1960 году Клод Берже сформулировал еще одну гипотезу о раскраске графов, сильную гипотезу о совершенном графе , изначально мотивированную теоретико-информационной концепцией , называемой емкостью графа с нулевой ошибкой, введенной Шенноном . Гипотеза оставалась неразрешенной в течение 40 лет, пока она не была установлена как знаменитая сильная теорема о совершенном графе Чудновским , Робертсоном , Сеймуром и Томасом в 2002 году.
Раскраска графов изучалась как алгоритмическая проблема с начала 1970-х годов: задача хроматического числа (см. раздел #Раскраска вершин ниже) является одной из 21 NP-полных задач Карпа с 1972 года, и примерно в то же время были разработаны различные алгоритмы с экспоненциальным временем, основанные на откате и на рекуррентности удаления-сокращения Зыкова (1949). Одно из основных приложений раскраски графов, распределение регистров в компиляторах, было представлено в 1981 году.
При использовании без каких-либо уточнений раскраска графа почти всегда относится к правильной раскраске вершин , а именно к маркировке вершин графа цветами таким образом, что никакие две вершины, разделяющие одно и то же ребро, не имеют одинакового цвета. Поскольку вершина с петлей (т. е. соединением непосредственно с собой) никогда не может быть правильно раскрашена, подразумевается, что графы в этом контексте не имеют петель.
Терминология использования цветов для меток вершин восходит к раскраске карт. Метки типа красный и синий используются только тогда, когда количество цветов невелико, и обычно подразумевается, что метки берутся из целых чисел {1, 2, 3, …}.
Раскраска, использующая не более k цветов, называется (правильной) k -раскраской . Наименьшее количество цветов, необходимое для раскраски графа G, называется его хроматическим числом и часто обозначается χ( G ) . Иногда используется γ( G ) , поскольку χ( G ) также используется для обозначения эйлеровой характеристики графа. Граф, которому можно назначить (правильную) k -раскраску, является k -раскрашиваемым , и он является k -хроматическим, если его хроматическое число равно ровно k . Подмножество вершин, которым назначен один и тот же цвет, называется классом цветов , каждый такой класс образует независимое множество . Таким образом, k -раскраска совпадает с разбиением множества вершин на k независимых множеств, а термины k -раздельный и k -раскрашиваемый имеют одинаковое значение.
Хроматический многочлен подсчитывает количество способов, которыми граф может быть раскрашен с использованием некоторого из заданного количества цветов. Например, используя три цвета, граф на соседнем изображении можно раскрасить 12 способами. Используя только два цвета, его вообще нельзя раскрасить. Используя четыре цвета, его можно раскрасить 24 + 4⋅12 = 72 способами: используя все четыре цвета, есть 4! = 24 допустимых раскрасок ( каждое назначение четырех цветов любому графу с 4 вершинами является правильной раскраской); и для каждого выбора трех из четырех цветов есть 12 допустимых 3-раскрасок. Таким образом, для графа в примере таблица количества допустимых раскрасок будет начинаться так:
Хроматический многочлен — это функция P ( G , t ) , которая подсчитывает количество t -раскрасок графа G . Как следует из названия, для заданного G функция действительно является многочленом по t . Для графа-примера P ( G , t ) = t ( t – 1) 2 ( t – 2) , и действительно P ( G ,4) = 72 .
Хроматический многочлен содержит больше информации о раскрашиваемости G , чем хроматическое число. Действительно, χ — наименьшее положительное целое число, которое не является нулем хроматического многочлена χ( G ) = min{ k : P ( G , k ) > 0}.
Раскраска ребер графа — это правильная раскраска ребер , то есть назначение цветов ребрам таким образом, чтобы ни одна вершина не инцидентна двум ребрам одного цвета. Раскраска ребер с k цветами называется k -раскраской ребер и эквивалентна задаче разбиения множества ребер на k паросочетаний . Наименьшее количество цветов, необходимое для раскраски ребер графа G , — это хроматический индекс , или хроматическое число ребер , χ′( G ) . Раскраска Тейта — это 3-реберная раскраска кубического графа . Теорема о четырех цветах эквивалентна утверждению, что любой плоский кубический граф без мостов допускает раскраску Тейта.
Полная раскраска — это тип раскраски вершин и ребер графа. При использовании без каких-либо оговорок полная раскраска всегда считается правильной в том смысле, что никакие смежные вершины, никакие смежные ребра и никакое ребро и его конечные вершины не имеют одного и того же цвета. Полное хроматическое число χ″( G ) графа G — это наименьшее количество цветов, необходимых для любой полной раскраски G .
Для графа с сильным вложением на поверхности задача раскраски граней является двойственной по отношению к задаче раскраски вершин.
Для графа G с сильным вложением на ориентируемой поверхности Уильям Т. Тутт [4] [5] [6] обнаружил, что если граф является k-гранераскрашиваемым, то G допускает нигде не нулевой k-поток. Эквивалентность сохраняется, если поверхность является сферой.
Немаркированная раскраска графа — это орбита раскраски под действием группы автоморфизмов графа. Цвета остаются помеченными; граф остается немаркированным. Существует аналог хроматического многочлена , который подсчитывает количество непомеченных раскрасок графа из заданного конечного набора цветов.
Если интерпретировать раскраску графа на d вершинах как вектор в , то действие автоморфизма представляет собой перестановку коэффициентов в векторе раскраски.
Назначение различных цветов различным вершинам всегда дает правильную раскраску, поэтому
Единственные графы, которые могут быть 1-цветными, — это графы без рёбер . Полный граф из n вершин требует цветов. В оптимальной раскраске должно быть по крайней мере одно из m ребер графа между каждой парой цветовых классов, поэтому
В более общем случае семейство графов является -ограниченным , если существует некоторая функция , такая что графы из можно раскрасить не более чем в два цвета; для семейства совершенных графов эта функция равна .
Графы, которые можно раскрасить в 2 цвета, — это в точности двудольные графы , включая деревья и леса. По теореме о четырех цветах любой планарный граф можно раскрасить в 4 цвета.
Жадная раскраска показывает, что каждый граф можно раскрасить на один цвет больше, чем максимальная степень вершины ,
Полные графы имеют и , а нечетные циклы имеют и , поэтому для этих графов эта граница является наилучшей возможной. Во всех других случаях граница может быть немного улучшена; теорема Брукса [7] утверждает, что
За прошедшие годы было обнаружено несколько нижних границ хроматических границ:
Если G содержит клику размера k , то для раскрашивания этой клики требуется не менее k цветов; другими словами, хроматическое число не меньше номера клики:
Для идеальных графов эта граница узкая. Поиск клик известен как проблема клик .
Граница Хоффмана: Пусть будет вещественной симметричной матрицей, такой что всякий раз, когда не является ребром в . Определим , где — наибольшее и наименьшее собственные значения . Определим , как и выше. Тогда:
Вектор хроматического числа :Пустьбудет положительной полуопределенной матрицей, такой чтовсякий раз, когдаесть ребро в. Определимкак наименьшее k, для которого существует такая матрица. Тогда
Число Ловаса : Число Ловаса дополнительного графа также является нижней границей хроматического числа:
Дробное хроматическое число : Дробное хроматическое число графа также является нижней границей хроматического числа:
Эти границы упорядочены следующим образом:
Графы с большими кликами имеют высокое хроматическое число, но обратное неверно. Граф Грётша является примером 4-хроматического графа без треугольника, и пример может быть обобщен до Mycielskians .
Чтобы доказать это, и Мычельский, и Зыков, каждый из них дали конструкцию индуктивно определенного семейства графов без треугольников, но с произвольно большим хроматическим числом. [9] Берлинг (1965) построил выровненные по осям блоки, в графе пересечений которых нет треугольников и для правильной раскраски требуется произвольное количество цветов. Это семейство графов затем называется графами Берлинга. Тот же класс графов используется для построения семейства отрезков прямых без треугольников на плоскости, заданного Пауликом и др. (2014). [10] Это показывает, что хроматическое число его графа пересечений также произвольно велико. Следовательно, это означает, что выровненные по осям блоки в , а также отрезки прямых в не являются χ-ограниченными . [10]
Из теоремы Брукса, графы с высоким хроматическим числом должны иметь высокую максимальную степень. Но раскрашиваемость — это не совсем локальное явление: граф с высоким обхватом локально выглядит как дерево, потому что все циклы длинные, но его хроматическое число не обязательно должно быть 2:
Раскраска ребер графа G является раскраской вершин его линейного графа , и наоборот. Таким образом,
Существует сильная связь между раскрашиваемостью ребер и максимальной степенью графа . Поскольку все ребра, инцидентные одной вершине, должны иметь свой собственный цвет, мы имеем
Более того,
В общем случае эта связь даже сильнее, чем та, которую дает теорема Брукса для раскраски вершин:
Граф имеет k -раскраску тогда и только тогда, когда он имеет ациклическую ориентацию , для которой самый длинный путь имеет длину не более k ; это теорема Галлаи–Хассе–Роя–Витавера (Nešetřil & Ossona de Mendez 2012).
Для планарных графов раскраска вершин по сути является двойственной по отношению к потокам, не имеющим нулевого значения .
О бесконечных графах известно гораздо меньше. Ниже приведены два из немногих результатов о бесконечной раскраске графов:
Как указано выше, гипотеза Рида от 1998 года заключается в том, что значение по существу ближе к нижней границе,
Хроматическое число плоскости , где две точки являются смежными, если они находятся на единичном расстоянии, неизвестно, хотя оно может быть одним из 5, 6 или 7. Другие открытые проблемы, касающиеся хроматического числа графов, включают гипотезу Хадвигера, утверждающую, что каждый граф с хроматическим числом k имеет полный граф на k вершинах в качестве минора , гипотезу Эрдёша–Фабера–Ловаса, ограничивающую хроматическое число объединений полных графов, которые имеют не более одной общей вершины для каждой пары, и гипотезу Альбертсона , что среди k -хроматических графов полные графы — это графы с наименьшим числом пересечений .
Когда Биркгоф и Льюис ввели хроматический многочлен в своей атаке на теорему о четырех красках, они предположили, что для планарных графов G многочлен не имеет нулей в области . Хотя известно, что такой хроматический многочлен не имеет нулей в области и что , их гипотеза все еще не решена. Также остается нерешенной проблема характеризации графов, имеющих один и тот же хроматический многочлен, и определения того, какие многочлены являются хроматическими.
Определение того, можно ли раскрасить граф в 2 цвета, эквивалентно определению того, является ли граф двудольным , и, таким образом, вычислимым за линейное время с использованием поиска в ширину или поиска в глубину . В более общем смысле, хроматическое число и соответствующая раскраска совершенных графов могут быть вычислены за полиномиальное время с использованием полуопределенного программирования . Замкнутые формулы для хроматических многочленов известны для многих классов графов, таких как леса, хордовые графы, циклы, колеса и лестницы, поэтому их можно вычислить за полиномиальное время.
Если граф плоский и имеет низкую ширину ветвей (или не плоский, но с известным разложением ветвей), то его можно решить за полиномиальное время с помощью динамического программирования. В общем случае требуемое время полиномиально по размеру графа, но экспоненциально по ширине ветвей.
Поиск методом грубой силы для k -раскраски рассматривает каждое из назначений k цветов n вершинам и проверяет для каждого, является ли оно допустимым. Для вычисления хроматического числа и хроматического многочлена эта процедура используется для каждого , непрактично для всех, кроме самых маленьких входных графов.
Используя динамическое программирование и ограничение на число максимальных независимых множеств , k -раскрашиваемость может быть определена за время и пространство . [13] Используя принцип включения-исключения и алгоритм Йейтса для быстрого дзета-преобразования, k -раскрашиваемость может быть определена за время [12] [14] [15] [16] для любого k . Более быстрые алгоритмы известны для 3- и 4-раскрашиваемости, которые могут быть определенны за время [17] и , [18] соответственно. Экспоненциально более быстрые алгоритмы также известны для 5- и 6-раскрашиваемости, а также для ограниченных семейств графов, включая разреженные графы. [19]
Сжатие графа G — это граф, полученный путем идентификации вершин u и v и удаления всех ребер между ними. Оставшиеся ребра, изначально инцидентные u или v , теперь инцидентны их идентификации ( т. е . новому объединенному узлу uv ). Эта операция играет важную роль в анализе раскраски графа.
Хроматическое число удовлетворяет рекуррентному соотношению :
из-за Зыкова (1949), где u и v — несмежные вершины, а — граф с добавленным ребром uv . Несколько алгоритмов основаны на оценке этой рекуррентности, и полученное вычислительное дерево иногда называют деревом Зыкова. Время выполнения основано на эвристике выбора вершин u и v .
Хроматический многочлен удовлетворяет следующему рекуррентному соотношению:
где u и v — смежные вершины, а — граф с удаленным ребром uv . представляет собой число возможных правильных раскрасок графа, где вершины могут иметь одинаковые или разные цвета. Тогда правильные раскраски возникают из двух разных графов. Чтобы объяснить, если вершины u и v имеют разные цвета, то мы могли бы также рассмотреть граф, в котором u и v являются смежными. Если u и v имеют одинаковые цвета, мы могли бы также рассмотреть граф, в котором u и v стянуты. Любопытство Тутта о том, какие другие свойства графа удовлетворяют этой рекуррентности, привело его к открытию двумерного обобщения хроматического многочлена, многочлена Тутта .
Эти выражения порождают рекурсивную процедуру, называемую алгоритмом удаления-сжатия , которая составляет основу многих алгоритмов раскраски графов. Время выполнения удовлетворяет тому же рекуррентному соотношению, что и числа Фибоначчи , поэтому в худшем случае алгоритм выполняется за время в пределах полиномиального множителя для n вершин и m ребер. [20] Анализ можно улучшить до полиномиального множителя числа остовных деревьев входного графа. [21] На практике стратегии ветвей и границ и отклонение изоморфизма графа используются для того, чтобы избежать некоторых рекурсивных вызовов. Время выполнения зависит от эвристики, используемой для выбора пары вершин.
Жадный алгоритм рассматривает вершины в определенном порядке ,…, и назначает наименьший доступный цвет, не используемый соседями среди ,…, , добавляя новый цвет при необходимости. Качество результирующей раскраски зависит от выбранного порядка. Существует порядок, который приводит к жадной раскраске с оптимальным количеством цветов. С другой стороны, жадные раскраски могут быть сколь угодно плохими; например, граф короны на n вершинах может быть 2-цветным, но имеет порядок, который приводит к жадной раскраске с цветами.
Для хордовых графов и для особых случаев хордовых графов, таких как интервальные графы и безразличные графы , алгоритм жадной раскраски может быть использован для поиска оптимальных раскрасок за полиномиальное время, выбирая порядок вершин, обратный совершенному порядку исключения для графа. Совершенно упорядочиваемые графы обобщают это свойство, но найти совершенное упорядочение этих графов NP-трудно.
Если вершины упорядочены в соответствии с их степенями , то результирующая жадная раскраска использует не более цветов, не более чем на один больше максимальной степени графа. Эту эвристику иногда называют алгоритмом Уэлша-Пауэлла. [22] Другая эвристика, созданная Брелазом, устанавливает порядок динамически, пока алгоритм продолжает работу, выбирая следующую вершину, смежную с наибольшим числом различных цветов. [23] Многие другие эвристики раскраски графов также основаны на жадной раскраске для определенной статической или динамической стратегии упорядочения вершин, эти алгоритмы иногда называют алгоритмами последовательной раскраски .
Максимальное (наихудшее) число цветов, которое может быть получено с помощью жадного алгоритма, используя порядок вершин, выбранный для максимизации этого числа, называется числом Гранди графа.
Два известных эвристических алгоритма полиномиального времени для раскраски графов — это алгоритм DSatur и рекурсивный алгоритм наибольшего первого элемента (RLF).
Подобно алгоритму жадной раскраски , DSatur раскрашивает вершины графа одну за другой, расходуя ранее неиспользованный цвет при необходимости. После того, как новая вершина раскрашена, алгоритм определяет, какая из оставшихся неокрашенных вершин имеет наибольшее количество различных цветов в своем окружении, и раскрашивает эту вершину следующей. Это определяется как степень насыщенности данной вершины.
Рекурсивный алгоритм «наибольшего первого» работает по-другому, конструируя каждый цветовой класс по одному за раз. Он делает это, определяя максимальный независимый набор вершин в графе с помощью специализированных эвристических правил. Затем он назначает этим вершинам тот же цвет и удаляет их из графа. Эти действия повторяются на оставшемся подграфе до тех пор, пока не останется ни одной вершины.
Худшая сложность DSatur равна , где — число вершин в графе. Алгоритм также может быть реализован с использованием двоичной кучи для хранения степеней насыщения, работающей в , где — число ребер в графе. [24] Это обеспечивает гораздо более быстрые запуски с разреженными графами. Общая сложность RLF немного выше, чем DSatur , при . [24]
DSatur и RLF точны для двудольных , циклических и колесных графов . [24]
В области распределенных алгоритмов раскраска графа тесно связана с проблемой нарушения симметрии . Современные рандомизированные алгоритмы быстрее для достаточно большой максимальной степени Δ, чем детерминированные алгоритмы. Самые быстрые рандомизированные алгоритмы используют технику многократных испытаний Шнайдера и Ваттенхофера. [25]
В симметричном графе детерминированный распределенный алгоритм не может найти правильную раскраску вершин. Для нарушения симметрии необходима некоторая вспомогательная информация. Стандартное предположение заключается в том, что изначально каждый узел имеет уникальный идентификатор , например , из набора {1, 2, ..., n }. Иначе говоря, мы предполагаем, что нам дана n -раскраска. Задача состоит в том, чтобы уменьшить количество цветов с n до, например, Δ + 1. Чем больше цветов используется, например, O(Δ) вместо Δ + 1, тем меньше раундов связи требуется. [25]
Простая распределенная версия жадного алгоритма для (Δ + 1)-раскраски в худшем случае требует Θ( n ) раундов связи — может потребоваться распространение информации с одной стороны сети на другую.
Простейшим интересным случаем является n - цикл . Ричард Коул и Узи Вишкин [26] показывают, что существует распределенный алгоритм, который сокращает количество цветов с n до O (log n ) за один синхронный шаг коммуникации. Повторяя ту же процедуру, можно получить 3-раскраску n- цикла за O ( log * n ) шагов коммуникации (предполагая, что у нас есть уникальные идентификаторы узлов).
Функция log * , итерированный логарифм , является чрезвычайно медленно растущей функцией, "почти константой". Поэтому результат Коула и Вишкина поднял вопрос о том, существует ли распределенный алгоритм постоянного времени для 3-раскраски n -цикла. Linial (1992) показал, что это невозможно: любой детерминированный распределенный алгоритм требует Ω( log * n ) шагов связи для сведения n -раскраски к 3-раскраске в n -цикле.
Метод Коула и Вишкина может быть применен также к произвольным графам ограниченной степени; время выполнения составляет poly(Δ) + O ( log * n ). [27] Метод был распространен на графы единичных дисков Шнайдером и Ваттенхофером. [28] Самые быстрые детерминированные алгоритмы для (Δ + 1)-раскраски для малых Δ принадлежат Леониду Баренбойму, Майклу Элкину и Фабиану Куну. [29] Алгоритм Баренбойма и др. работает за время O (Δ) + log * ( n )/2, что является оптимальным с точки зрения n , поскольку постоянный множитель 1/2 не может быть улучшен из-за нижней границы Линиала. Панконези и Шринивасан (1996) используют сетевые разложения для вычисления Δ+1-раскраски за время .
Проблема раскраски ребер также изучалась в распределенной модели. Panconesi & Rizzi (2001) достигли (2Δ − 1)-раскраски за время O (Δ + log * n ) в этой модели. Нижняя граница для распределенной раскраски вершин, полученная Linial (1992), применима и к проблеме распределенной раскраски ребер.
Децентрализованные алгоритмы — это те, в которых не допускается передача сообщений (в отличие от распределенных алгоритмов, в которых происходит локальная передача сообщений), и существуют эффективные децентрализованные алгоритмы, которые раскрашивают граф, если существует правильная раскраска. Они предполагают, что вершина способна определять, использует ли какой-либо из ее соседей тот же цвет, что и вершина, т. е. существует ли локальный конфликт. Это умеренное предположение во многих приложениях, например, при распределении беспроводных каналов обычно разумно предположить, что станция сможет определить, используют ли другие мешающие передатчики тот же канал (например, путем измерения SINR). Эта информация о зондировании достаточна, чтобы позволить алгоритмам, основанным на обучающихся автоматах, находить правильную раскраску графа с вероятностью единица. [30]
Раскраска графа вычислительно сложна. NP-полной задачей является решение вопроса, допускает ли заданный граф k -раскраску для заданного k, за исключением случаев k ∈ {0,1,2}. В частности, NP-полной задачей является вычисление хроматического числа. [31] Задача 3-раскраски остается NP-полной даже для 4-регулярных планарных графов . [32] Однако для графов с максимальной степенью 3 или меньше теорема Брукса подразумевает, что задача 3-раскраски может быть решена за линейное время. Кроме того, для каждого k > 3 k -раскраска планарного графа существует по теореме о четырех цветах , и такую раскраску можно найти за полиномиальное время. Однако нахождение лексикографически наименьшей 4-раскраски планарного графа является NP-полной задачей. [33]
Самый известный алгоритм приближения вычисляет раскраску размером не более чем в пределах множителя O( n (log log n ) 2 (log n) −3 ) от хроматического числа. [34] Для всех ε > 0 приближение хроматического числа в пределах n 1− ε является NP-трудной задачей . [35]
Также NP-трудно раскрасить 3-цветный граф в 5 цветов, [36] 4-цветный граф в 7 цветов, [36] и k -цветный граф в цвета для k ≥ 5. [37]
Вычисление коэффициентов хроматического многочлена является #P-трудным . Фактически, даже вычисление значения является #P-трудным в любой рациональной точке k, за исключением k = 1 и k = 2. [38] Не существует FPRAS для вычисления хроматического многочлена в любой рациональной точке k ≥ 1,5, за исключением k = 2, если только NP = RP . [39]
Для раскраски рёбер доказательство результата Визинга даёт алгоритм, который использует не более Δ+1 цветов. Однако выбор между двумя кандидатами на хроматическое число рёбер является NP-полным. [40] С точки зрения алгоритмов аппроксимации алгоритм Визинга показывает, что хроматическое число рёбер может быть аппроксимировано с точностью до 4/3, а результат по жёсткости показывает, что не существует (4/3 − ε )-алгоритма для любого ε > 0, если только P = NP . Это одни из старейших результатов в литературе по алгоритмам аппроксимации, хотя ни одна из статей явно не использует это понятие. [41]
Модели раскраски вершин для ряда задач планирования . [42] В самой чистой форме заданный набор заданий должен быть назначен временным интервалам, каждому заданию требуется один такой интервал. Задания могут быть запланированы в любом порядке, но пары заданий могут конфликтовать в том смысле, что они не могут быть назначены на один и тот же временной интервал, например, потому что они оба полагаются на общий ресурс. Соответствующий граф содержит вершину для каждого задания и ребро для каждой конфликтующей пары заданий. Хроматическое число графа в точности равно минимальному makespan , оптимальному времени для завершения всех заданий без конфликтов.
Детали задачи планирования определяют структуру графа. Например, при назначении самолетов на рейсы результирующий граф конфликтов является интервальным графом , поэтому проблема раскраски может быть решена эффективно. При распределении полосы пропускания радиостанциям результирующий граф конфликтов является графом единичного диска , поэтому проблема раскраски является 3-аппроксимируемой.
Компилятор — это компьютерная программа , которая переводит один компьютерный язык на другой. Для улучшения времени выполнения полученного кода одним из методов оптимизации компилятора является распределение регистров , где наиболее часто используемые значения скомпилированной программы хранятся в регистрах быстрого процессора . В идеале значения назначаются регистрам так, чтобы все они могли находиться в регистрах при использовании.
Подход к этой проблеме в учебнике заключается в ее моделировании как проблемы раскраски графа. [43] Компилятор создает интерференционный граф , где вершины являются переменными, а ребро соединяет две вершины, если они нужны одновременно. Если граф можно раскрасить k цветами, то любой набор переменных, необходимых одновременно, можно сохранить не более чем в k регистрах.
Проблема раскрашивания графа возникает во многих практических областях, таких как составление расписания спортивных мероприятий, [44] разработка планов рассадки, [45] составление расписания экзаменов, [46] составление расписания такси, [47] и решение головоломок судоку . [48]
Важный класс проблем неправильной раскраски изучается в теории Рамсея , где рёбрам графа назначаются цвета, и нет ограничений на цвета инцидентных рёбер. Простым примером является теорема о друзьях и незнакомцах , которая гласит, что при любой раскраске рёбер , полного графа из шести вершин, будет одноцветный треугольник; часто иллюстрируют, говоря, что любая группа из шести человек имеет либо трёх общих незнакомцев, либо трёх общих знакомых. Теория Рамсея занимается обобщениями этой идеи для поиска регулярности среди беспорядка, находя общие условия для существования одноцветных подграфов с заданной структурой.
Раскрашивание также можно рассматривать для знаковых графиков и графиков усиления .