Раскраска графа — теоретико-графовая конструкция, частный случай разметки графа. При раскраске элементам графа ставятся в соответствие метки с учётом определённых ограничений; эти метки традиционно называются «цветами». В простейшем случае такой способ окраски вершин графа, при котором любым двум смежным вершинам соответствуют разные цвета, называется раскраской вершин. Аналогично раскраска рёбер присваивает цвет каждому ребру так, чтобы любые два смежных ребра имели разные цвета[1]. Наконец, раскраска областей планарного графа назначает цвет каждой области, так, что каждые две области, имеющие общую границу, не могут иметь одинаковый цвет.
Раскраска вершин — главная задача раскраски графов, все остальные задачи в этой области могут быть сведены к ней. Например, раскраска рёбер графа — это раскраска вершин его рёберного графа, а раскраска областей планарного графа — это раскраска вершин его двойственного графа[1]. Тем не менее, другие проблемы раскраски графов часто ставятся и решаются в изначальной постановке. Причина этого частично заключается в том, что это даёт лучшее представление о происходящем и более показательно, а частично из-за того, что некоторые задачи таким образом решать удобнее (например, раскраска рёбер).
Раскраска графов находит применение и во многих практических областях, а не только в теоретических задачах. Помимо классических типов проблем, различные ограничения могут также быть наложены на граф, на способ присвоения цветов или на сами цвета. Этот метод, например, используется в популярной головоломке Судоку. В этой области всё ещё ведутся активные исследования.
История
правитьПервые результаты были получены для плоских графов в задаче раскрашивания карт. Пытаясь раскрасить карту округов Англии, Францис Гутри[англ.] сформулировал проблему четырёх красок, отметив, что четырёх цветов достаточно, чтобы раскрасить карту так, чтобы любые два смежных региона имели разные цвета. Его брат передал вопрос своему учителю по математике, Огастесу де Моргану, который упомянул о нём в своем письме Уильяму Гамильтону в 1852 году. Артур Кэли поднял эту проблему на встрече Лондонского математического сообщества в 1878 году. В том же году Тэйтом было предложено первое решение этой задачи. Раскраску вершин первоначального графа он свел к раскраске рёбер двойственного графа и предположил, что эта задача всегда имеет решение[2]. В 1880 году Альфред Кемпе[англ.] опубликовал статью, в которой утверждалось, что ему удалось установить результат, и на десятилетие проблема четырёх цветов считалась решённой. За это достижение Кемпе был избран членом Лондонского Королевского общества и позже — президентом Лондонского математического сообщества[3].
В 1890 году Хивуд нашёл ошибку в доказательстве Кемпе. В этой же статье он доказал теорему пяти красок[англ.], показав, что любая плоская карта может быть раскрашена не более, чем пятью цветами. При этом он опирался на идеи Кемпе. В следующем столетии было разработано большое количество теорий в попытках уменьшить минимальное число цветов. Теорема четырёх красок была окончательно доказана в 1977 году учеными Кеннетом Аппелем[англ.] и Вольфгангом Хакеном с использованием компьютерного перебора. Идея доказательства во многом опиралась на идеи Хивуда и Кемпе и игнорировала большинство промежуточных исследований[4]. Доказательство теоремы четырёх красок является одним из первых доказательств, в которых был использован компьютер.
В 1912 году Джордж Дэвид Биркхоф предложил использовать для изучения задач раскраски хроматический многочлен, являющийся важной частью в алгебраической теории графов. Хроматический многочлен впоследствии был обобщён Уильямом Таттом (многочлен Татта). Кемпе в 1879 году уже обращал внимание на общий случай, когда граф не являлся плоским[5]. Много результатов обобщений раскраски плоских графов на поверхности более высоких порядков появилось в начале XX века.
В 1960 году Клод Бердж[англ.] сформулировал гипотезу о совершенных графах, мотивированное понятием из теории информации, а именно нулевой ошибкой ёмкости графа[6], представленным Шенноном. Утверждение оставалось неподтвержденным на протяжении 40 лет, пока не было доказано как знаменитая строгая теорема о совершенных графах математиками Чудновской[англ.], Робертсоном[англ.], Сеймуром и Томасом в 2002 году.
Раскраска графов как алгоритмическая проблема начала изучаться с 1970-х годов: определение хроматического числа — входит в число 21 NP-полных задач Карпа (1972). И примерно в то же время были разработаны разнообразные алгоритмы на базе поиска с возвратом и рекурсивного удаления и стягивания Зыкова[7]. С 1981 года раскраска графа применяется для распределения регистров в компиляторах[8].
Определение и терминология
правитьРаскраска вершин
правитьКогда говорят о раскраске графов, почти всегда подразумевают под этим раскраску их вершин, то есть присвоение цветовых меток вершинам графа так, чтобы любые две вершины, имеющие общее ребро, имели разные цвета. Так как графы, в которых есть петли, не могут быть раскрашены таким образом, они не являются предметом обсуждения.
Терминология, в которой метки называются цветами, происходит от раскраски политических карт. Такие метки как красный или синий используются, только когда число цветов мало, обычно же подразумевается, что метки являются целыми числами .
Раскраска с использованием цветов называется -раскраской. Наименьшее число цветов, необходимое для раскраски графа , называется его хроматическим числом и часто записывается как . Иногда используется , так как обозначает эйлерову характеристику. Подмножество вершин, выделенных одним цветом, называется цветовым классом, каждый такой класс формирует независимый набор. Таким образом, -раскраска — это то же самое, что и разделение вершин на независимых наборов[1].
Хроматический многочлен
правитьХроматический многочлен — функция , которая считает число -раскрасок графа . Из названия следует, что для заданных эта функция является многочленом, зависящим от . Этот факт был обнаружен Биркгофом и Льюисом при попытке доказать гипотезу четырёх красок[9].
Например, граф на изображении справа может быть раскрашен 12 способами с использованием 3 цветов. Двумя цветами он не может быть окрашен в принципе. Используя 4 цвета, мы получаем 24+4*12 = 72 вариантов раскраски: при использовании всех 4 цветов, есть 4! = 24 корректных способа (каждое присвоение 4 цветов для любого графа из 4 вершин является корректным); и для каждых 3 цветов из этих 4 есть 12 способов раскраски. Тогда для графа в примере таблица чисел корректных раскрасок будет начинаться так:
Доступное число цветов | 1 | 2 | 3 | 4 | … |
---|---|---|---|---|---|
Количество способов раскраски | 0 | 0 | 12 | 72 | … |
Для графа в примере и, конечно, .
Хроматический многочлен содержит по меньшей мере столько же информации о раскрашиваемости , сколько и хроматическое число. В самом деле, — наименьшее целое положительное число, не являющееся корнем хроматического многочлена:
- .
Треугольный | |
---|---|
Полный граф | |
Дерево с ребрами | |
Цикл | |
Граф Петерсена |
Рёберная раскраска
правитьРёберная раскраска графа подразумевает под собой назначение цветов ребрам так, что никакие два ребра одного цвета не принадлежат одной вершине. Эта задача эквивалентна разделению множества граней на множества независимых граней. Наименьшее число цветов, необходимое для рёберной раскраски графа — это его хроматический индекс, или рёберное хроматическое число, .
Тотальная раскраска
правитьТотальная раскраска — один из видов раскраски вершин и рёбер графа. Под ней подразумевают такое присвоение цветов, что ни соседние вершины, ни смежные ребра, ни вершины и ребра, которые их соединяют, не имеют одинакового цвета. Полное хроматическое число графа — это наименьшее число цветов, необходимое для любой полной раскраски.
Свойства
правитьЕсли — пустой граф[10], то хроматический многочлен обращается в единицу — . Если граф — объединение непересекающихся подграфов и [10], то его хроматический многочлен является произведением хроматических многочленов подграфов: . Если в есть петля[10], то хроматический многочлен обращется в нуль —
Назначение всем вершинам разных цветов всегда даёт правильную раскраску, так что .
Единственный вид графов, которые могут быть раскрашены одним цветом — это нулевые графы.
Полный граф , состоящий из вершин требует цветов.
При оптимальной раскраске должно быть по меньшей мере одно ребро из рёбер графа между каждыми двумя цветовыми классами, так что[11]: .
Если является объединением непересекающихся подграфов и , то .
Если содержит клики размера , тогда необходимо минимум цветов для раскраски этой клики, другими словами хроматическое число больше, либо равно кликовому числу: . Для интервальных графов это ограничение точно.
По теореме о четырёх красках, любой плоский граф может быть раскрашен четырьмя цветами.
2-раскрашиваемые графы — это двудольные графы, в том числе и деревья.
Граф является двудольным в том и только в том случае, если он не содержит циклов нечётной длины[10].
Жадная раскраска показывает, что любой граф может быть раскрашен при использовании на один цвет больше, чем его максимальная степень вершины[11]: .
Полные графы имеют и , графы-циклы имеют и , так что для них это ограничение является наилучшим, во всех других случаях, ограничение может быть улучшено: теорема Брукса[12] утверждает, что для связанного, простого графа , если не является ни полным графом, ни графов-циклом.
Графы с большим хроматическим числом
правитьГрафы с большими кликами имеют большое хроматическое число, но обратное утверждение не всегда верно. Граф Грёча — это пример 4-раскрашиваемого графа без треугольников, и этот пример может быть обобщён на граф Мычельского. Теорема Мычельского (впервые установлена Зыковым в 1949 году, опубликована Мычельским в 1955 году): существуют графы без треугольников со сколь угодно большими хроматическими числами.
Из теоремы Брукса следует, что графы с большим хроматическим числом должны иметь высокую максимальную степень вершины. Другое локальное условие, из-за которого хроматическое число может быть большим — это наличие большой клики. Но раскрашиваемость графа зависит не только от локальных условий: граф с большим обхватом локально выглядит как дерево, так все циклы длинные, но его хроматическое число не равно 2: cуществуют графы со сколь угодно большим обхватом и хроматическим числом (Эрдёш)[11].
Ограничения на хроматический индекс
правитьРёберная раскраска — это раскраска вершин его линейного графа :
Более того[13], имеет место теорема Кёнига: , если — двудольный.
В общем случае, связь намного сильнее, чем даёт теорема Брукса для раскраски вершин[13]: граф с максимальной степенью вершины имеет рёберное хроматическое число или (теорема Визинга).
Другие свойства
правитьГраф является -хроматическим тогда и только тогда, когда он имеет ациклическую ориентацию, для которой длина наибольшего пути равна . Это было доказано в теореме Галлаи — Хассе — Роя — Витавера[14].
Для плоских графов, раскраска вершин двойственно эквивалентна нигде не нулевому потоку.
О бесконечных графах известно намного меньше. В частности, установлено, что если все конечные подграфы бесконечного графа -хроматические, то и тоже является -хроматическим (доказывается при предположении аксиомы выбора, теорема де Брёйна — Эрдёша[15]. Если граф допускает полную -раскраску для любого , то он допускает бесконечную полную раскраску[16].
Открытые вопросы
правитьХроматическое число плоскости, в которой две точки являются смежными, если между ними единичное расстояние, неизвестно. Оно может быть равным 5, 6, или 7. Другие открытые вопросы о хроматическом числе графов включают в себя гипотезу Хадвигера, утверждающую, что любой граф с хроматическим числом имеет полный граф из вершин, как его минор, гипотезу Эрдёша — Фабера — Ловаса, которая ограничивает хроматическое число полных графов, которые имеют ровно одну общую вершину для каждой пары графов, и гипотезу Альбертсона о том, что среди -хроматических графов полными являются те, которые имеют наименьшее число пересечений.
Когда Бирков и Льюис представили хроматический многочлен в их попытке решить теорему четырёх цветов, они утверждали, что для плоских графов многочлен не имеет нулей в области . Хотя известно, что такой хроматический многочлен не имеет нулей в области , и что , их утверждение остается недоказанным. Так же остаётся открытым вопрос, как отличать графы с одинаковым хроматическим многочленом, и как определять, что многочлен является хроматическим.
Алгоритмы раскраски
правитьПолиномиальные алгоритмы
правитьДля двудольного графа задача раскраски вычисляется за линейное время с помощью поиска в ширину. В случае совершенных графов, хроматическое число и соответствующая ему раскраска может быть найдена за полиномиальное время при использовании полуопределённого программирования. Точные формулы для нахождения хроматического числа известны для многих классов графов (леса, циклы, колеса, хордальные графы) и так же могут быть вычислены за полиномиальное время.
Точные алгоритмы
правитьАлгоритм полного перебора для случая k-раскраски рассматривает все комбинаций расстановки цветов в графе с n вершинами и проверяет их на корректность. Чтобы вычислить хроматическое число и хроматический полином, данный алгоритм рассматривает каждое от 1 до . Такой алгоритм на практике может быть применим только для небольших графов.
Используя динамическое программирование и оценку размера наибольшего независимого множества, в графе возможность -раскраски может быть разрешена за время [17]. Известны более быстрые алгоритмы для 3- и 4-раскрасок, работающие за время [18] и [19] соответственно.
Стягивание
правитьСтягивание вершин — это операция, которая из графа делает граф , отождествляя вершины и , удаляя соединяющие их рёбра и заменяя на одну вершину , куда перенаправляются ребра, инцидентные вершинам и . Эта операция играет важную роль в анализе раскраски графов.
Хроматическое число удовлетворяет рекуррентному соотношению , где и — несмежные вершины, — граф с добавленным ребром . Некоторые алгоритмы основаны на данном соотношении, выдавая как результат дерево, иногда называемое деревом Зыкова. Время выполнения зависит от метода выбора вершин и .
Хроматический полином удовлетворяет рекуррентному соотношению , где и — смежные вершины, — граф с удалением ребра . представляет собой число возможных правильных раскрасок графа, когда вершины и могут иметь одинаковые или различные цвета. Если и имеют разные цвета, тогда мы можем рассмотреть граф, где и смежные. Если и имеют одинаковые цвета, мы можем рассмотреть граф, где и объединены.
Выражения, данные выше, приводят к рекурсивной процедуре, названной алгоритм удаления и стягивания, сформировавшей основу для многих алгоритмов раскраски графов. Время работы удовлетворяет такому же рекуррентному соотношению, как и числа Фибоначчи, поэтому в наихудшем случае алгоритм будет работать за время для вершин и рёбер[20]. На практике метод ветвей и границ и отбрасывание изоморфных графов позволяет избежать некоторых рекурсивных вызовов, время работы зависит от метода подбора пары вершин.
Жадная раскраска
правитьЖадный алгоритм упорядочивает вершины и последовательно присваивает вершине наименьший доступный цвет, не использовавшийся для окраски соседей среди , либо добавляет новый. Качество полученной раскраски зависит от выбранного порядка. Всегда существует такой порядок, который приводит жадный алгоритм к оптимальному числу красок. С другой стороны, жадный алгоритм может быть сколь угодно плохим; например, корона с вершинами может быть раскрашена 2 цветами, но существует порядок вершин, который приводит к жадной раскраске из цветов.
Для хордального графа и для его особых случаев (например, интервальный граф) алгоритм жадной раскраски может быть использован для нахождения оптимальной раскраски за полиномиальное время, выбирая порядок вершин обратным к совершенному порядку исключения. Этот алгоритм может быть применен и к более широкому классу графов (вполне упорядочиваемые графы), однако найти такой порядок для таких графов — NP-сложная задача.
Если вершины упорядочены в соответствии с их степенями, алгоритм жадной раскраски использует не более чем цветов, что максимум на 1 больше, чем (здесь — степень вершины ). Этот эвристический алгоритм иногда называют алгоритмом Уэлша-Пауэлла[21]. Другой алгоритм устанавливает порядок динамично, выбирая следующую вершину той, которая имеет наибольшее число смежных вершин разных цветов. Многие другие алгоритмы раскраски графов основаны на жадной раскраске и используют статические или динамические стратегии выбора порядка вершин.
Параллельные и распределённые алгоритмы
правитьВ области распределённых алгоритмов встречается аналогичная задача. Допустим, вершины графа — это компьютеры, которые могут общаться между собой, если они соединены ребром. Задача состоит в том, чтобы каждый компьютер выбрал для себя «цвет», так, чтобы соседние компьютеры выбрали разные цвета. Эта задача тесно связана с проблемой нарушения симметрии[англ.]. Наиболее развитые вероятностные алгоритмы работают быстрее, чем детерминированные алгоритмы для графов с достаточно большой максимальной степени вершин . Наиболее быстрые вероятностные алгоритмы используют технику множественных попыток[англ.][22].
В симметричных графах детерминированные распределённые алгоритмы не могут найти оптимальную раскраску вершин. Нужна дополнительная информация, чтобы избежать симметрии. Делается стандартное предположение, что первоначально каждая вершина имеет уникальный идентификатор, например, из множества . Иными словами, предполагается, что нам дана -раскраска. Задача состоит в том, чтобы уменьшить количество цветов от до, например, . Чем больше цветов используются (например, вместо ), тем меньше обменов сообщений потребуется[22].
Простая версия распределённого жадного алгоритма для -раскраски требует раундов связи в худшем случае — информации, возможно, придётся проходить с одного конца стороны сети до другого.
Наиболее простым интересным случаем является -цикл. В 1986 году[23] установлено, что существует распределённый алгоритм, который уменьшает количество цветов от до , используя лишь один раз обмен сообщениями между соседями. Повторяя ту же процедуру, можно получить 3-раскраску -цикла за раундов связи (при условии, что даны уникальные идентификаторы узлов).
Функция , итерированный логарифм, является чрезвычайно медленно растущей функцией, «почти константа». Следовательно, результаты Коула и Вишкина поднимают вопрос о том, есть ли распределённый алгоритм 3-раскраски -цикла, который выполняется за константное время. В 1992 году доказано, что это невозможно: любой детерминированный распределённый алгоритм требует раундов связи для уменьшения -раскраски до 3-раскраски в -цикле[24]. Техника также может быть применена для произвольного графа с ограниченной степенью вершин, в этом случае время работы составляет [25]. Этот метод был обобщён для графа единичных кругов[26].
Проблема раскраски рёбер также изучалась в распределённой модели. В 2001 году для -раскраски достигнуто время [27]. Нижняя граница для распределённой раскраски вершин, достигнутая Линиалом, также применима для задачи распределённой раскраски рёбер[24]
Децентрализованные алгоритмы
правитьДецентрализованными называются алгоритмы, в которых не разрешена внутренняя передача сообщений (в отличие от распределённых алгоритмов, где процессы обмениваются между собой данными). Существуют эффективные децентрализованные алгоритмы, успешно справляющиеся с задачей раскраски графов. Эти алгоритмы работают в предположении, что вершина способна «чувствовать», что какая-либо из её соседних вершин раскрашена в тот же цвет, что и она. Другими словами, есть возможность определить локальный конфликт. Такое условие довольно часто выполняется в реальных прикладных задачах — например, при передаче данных по беспроводному каналу передающая станция, как правило, имеет возможность детектировать, что другая станция пытается передавать одновременно в тот же канал. Способности к получению подобной информации достаточно для того, чтобы алгоритмы, основанные на обучающихся автоматах[англ.], с вероятностью единица правильно решали задачу раскраски графа[28][29].
Сложность вычислений
правитьРаскраска графа является вычислительно сложной задачей. Узнать, допускает ли граф -раскраску для заданного — это NP-полная задача, кроме случаев . В частности, задача вычисления хроматического числа NP-сложна[30]. Задача о 3-раскраске NP-полная даже для случая планарного графа степени 4[31].
Также NP-трудной задачей является раскраска 3-раскрашиваемого графа 4 цветами[32] и -раскрашиваемого графа при достаточно больших значениях [33].
Вычисление коэффициентов хроматического полинома #P-сложная задача. Доказано, что не существует ни одного FPRAS-алгоритма для вычисления хроматического полинома ни для какого рационального числа , кроме , если только не окажется, что NP = RP[34].
Приложения
правитьСуществуют многочисленные практические приложения раскраски графов. Основные задачи, сводимые к раскраске вершин[35]: распределение радиочастот, хранение химических веществ, составление расписаний, распределение регистров в микропроцессорах, картография. Основные применения рёберной раскраски — окраска соединительных проводов и минимизация расписаний.
Раскраска вершин моделирует многие проблемы планирования[36]; в простейшей постановке заданный набор работ должен быть распределён по временным отрезкам, каждая такая работа занимает один отрезок. Они могут быть выполнены в любом порядке, но две работы могут конфликтовать в том смысле, что не могут быть выполнены одновременно, так как, например, используют общие ресурсы. Соответствующий граф содержит вершину для каждой из работ и ребро для каждой конфликтующей пары. Хроматическое число построенного графа — это минимальное время выполнения всех работ без конфликтов. Детали проблемы планирования определяют структуру графа. Например, когда идет распределение самолётов по рейсам, результирующий граф конфликтов является интервальным графом, так что проблема раскраски может быть решена эффективно. При распределении радиочастот получается граф единичных кругов конфликтов, и для такой задачи существует 3-аппроксимационный алгоритм. К задачам планирования примыкают задачи распараллеливания алгоритмов, в них вершинной раскраской может быть смоделировано значительная часть проблем. Среди других областей применения в информатике — сопоставление с образцом, задача выпуска цифровых водяных знаков.
Решение головоломки судоку можно рассматривать как завершение раскраски 9 цветами заданного графа из 81 вершины.
Примечания
править- ↑ 1 2 3 (Molloy & Reed 2002, The Basic Definitions)
- ↑ (Донец & Шор 1982, Историческая справка)
- ↑ (Kubale 2004, History of graph coloring)
- ↑ (van Lint & Wilson 2001, Chap. 33)
- ↑ (Jensen & Toft 1995, С. 2)
- ↑ C.E. Shannon, "The zero-error capacity of a noisy channel, " IEEE Trans. Information Theory, pp. 8-19, 1956.
- ↑ (Зыков 1949)
- ↑ (Chaitin 1982)
- ↑ (Birkhoff & Lewis 1946)
- ↑ 1 2 3 4 (Tutte 1984, Chromatic polynomial)
- ↑ 1 2 3 (Diestel 2005, Colouring vertices)
- ↑ (Brooks & Tutte 1941)
- ↑ 1 2 (Diestel 2005, Colouring edges)
- ↑ (Nešetřil & Ossona de Mendez 2012)
- ↑ (de Bruijn, Erdős 1951)
- ↑ (Fawcett 1978)
- ↑ (Lawler 1976)
- ↑ (Beigel & Eppstein 2005)
- ↑ (Fomin, Gaspers & Saurabh 2007)
- ↑ (Sekine, Imai & Tani 1995)
- ↑ (Welsh & Powell 1967)
- ↑ 1 2 (Schneider 2010)
- ↑ (Cole & Vishkin 1986)(Cormen, Leiserson & Rivest 1990, Section 30.5)
- ↑ 1 2 (Linial 1992)
- ↑ (Goldberg, Plotkin & Shannon 1988)
- ↑ (Schneider 2008)
- ↑ (Panconesi & Rizzi 2001)
- ↑ (Leith & Clifford 2006)
- ↑ (Duffy, O'Connell & Sapozhnikov 2008)
- ↑ (Garey, Johnson & Stockmeyer 1974); (Garey & Johnson 1979).
- ↑ (Dailey 1980)
- ↑ (Guruswami & Khanna 2000)
- ↑ (Khot 2001)
- ↑ (Goldberg & Jerrum 2008)
- ↑ Гросс — Йеллен, 2006.
- ↑ (Marx 2004)
Литература
править- Донец, Г. А.; Шор, Н. З. (1982), Алгебраический подход к проблеме раскраски плоских графов, Наукова думка, pp. 5—7
- Зыков, А. А. (1949), "О некоторых свойствах линейных комплексов", Матем. сб., 24(66) (2): 163—188
- Beigel, R.; Eppstein, D. (2005), "3-coloring in time O(1.3289n)", Journal of Algorithms (англ.), 54 (2)): 168—204, doi:10.1016/j.jalgor.2004.06.008
- Birkhoff, G. D.; Lewis, D. C. (1946), "Chromatic Polynomials" (PDF), Trans. Amer. Math. Soc. (англ.), 60: 355—451
- Brélaz, D. (1979), "New methods to color the vertices of a graph", Communications of the ACM (англ.), 22 (4): 251—256, doi:10.1145/359094.359101
- Brooks, R. L.; Tutte, W. T. (1941), "On colouring the nodes of a network", Proceedings of the Cambridge Philosophical Society (англ.), 37 (2): 194—197, doi:10.1017/S030500410002168X
- N. G. de Bruijn, P. Erdős. A colour problem for infinite graphs and a problem in the theory of relations (англ.) // Nederl. Akad. Wetensch. Proc. Ser. A. — 1951. — Т. 54. — С. 371—373. (= Indag. Math. 13)
- Byskov, J.M. (2004), "Enumerating maximal independent sets with applications to graph colouring", Operations Research Letters (англ.), 32 (6): 547—556, doi:10.1016/j.orl.2004.03.002
- Cormen, T. H.; Leiserson, C. E.; Rivest, R. L. (1990), Introduction to Algorithms (1st ed.), The MIT Press
- Collberg, Christian; Thomborson, Clark; Townsend, Gregg M. (2004), Dynamic Graph-Based Software Watermarking (PDF)
- Chaitin, G. J. (1982), "Register allocation & spilling via graph colouring", Proc. 1982 SIGPLAN Symposium on Compiler Construction (англ.), pp. 98—105, doi:10.1145/800230.806984, ISBN 0-89791-074-5
- Cole, R.; Vishkin, U. (1986), "Deterministic coin tossing with applications to optimal parallel list ranking", Information and Control (англ.), 70 (1): 32—53, doi:10.1016/S0019-9958(86)80023-7
- Dailey, D. P. (1980), "Uniqueness of colorability and colorability of planar 4-regular graphs are NP-complete", Discrete Mathematics (англ.), 30 (3): 289—293, doi:10.1016/0012-365X(80)90236-8
- Diestel, R. (2005), Graph theory (PDF) (англ.) Архивная копия от 25 ноября 2014 на Wayback Machine
- Duffy, K.; O'Connell, N.; Sapozhnikov, A. (2008), "Complexity analysis of a decentralised graph colouring algorithm" (PDF), Information Processing Letters (англ.), 107: 60—63, doi:10.1016/j.ipl.2008.01.002
- Fawcett, B. W. (1978), "On infinite full colourings of graphs", Can. J. Math. (англ.), XXX: 455—457
- Fomin, F.V.; Gaspers, S.; Saurabh, S. (2007), "Improved Exact Algorithms for Counting 3- and 4-Colorings", Proc. 13th Annual International Conference, COCOON 2007, Lecture Notes in Computer Science (англ.), vol. 4598, Springer, pp. 65—74, doi:10.1007/978-3-540-73545-8_9, ISBN 978-3-540-73544-1
- Garey, M. R.; Johnson, D. S. (1979), Computers and Intractability: A Guide to the Theory of NP-Completeness (англ.), W.H. Freeman, ISBN 0-7167-1045-5
- Garey, M. R.; Johnson, D. S.; Stockmeyer, L. (1974), "Some simplified NP-complete problems", Proceedings of the Sixth Annual ACM Symposium on Theory of Computing (англ.), pp. 47—63, doi:10.1145/800119.803884
- Goldberg, L. A.; Jerrum, M. (July 2008), "Inapproximability of the Tutte polynomial", Information and Computation, 206 (7): 908—929, doi:10.1016/j.ic.2008.04.003
- Goldberg, A. V.; Plotkin, S. A.; Shannon, G. E. (1988), "Parallel symmetry-breaking in sparse graphs", SIAM Journal on Discrete Mathematics, 1 (4): 434—446, doi:10.1137/0401044
- Guruswami, V.; Khanna, S. (2000), "On the hardness of 4-coloring a 3-colorable graph", Proceedings of the 15th Annual IEEE Conference on Computational Complexity (англ.), pp. 188—197, doi:10.1109/CCC.2000.856749, ISBN 0-7695-0674-7
- Jaeger, F.; Vertigan, D. L.; Welsh, D. J. A. (1990), "On the computational complexity of the Jones and Tutte polynomials", Mathematical Proceedings of the Cambridge Philosophical Society (англ.), 108: 35—53, doi:10.1017/S0305004100068936
- Jensen, Tommy R.; Toft, Bjarne (1995), Graph Coloring Problems (англ.), John Wiley & Sons, ISBN 9780471028659
- Khot, S. (2001), "Improved inapproximability results for MaxClique, chromatic number and approximate graph coloring", Proc. 42nd Annual Symposium on Foundations of Computer Science (англ.), pp. 600—609, doi:10.1109/SFCS.2001.959936, ISBN 0-7695-1116-3
- Kubale, M. (2004), Graph Colorings (англ.), American Mathematical Society, ISBN 0-8218-3458-4
- Kuhn, F. (2009), "Weak graph colorings: distributed algorithms and applications", Proceedings of the 21st Symposium on Parallelism in Algorithms and Architectures (англ.), pp. 138—144, doi:10.1145/1583991.1584032, ISBN 978-1-60558-606-9
- Lawler, E.L. (1976), "A note on the complexity of the chromatic number problem", Information Processing Letters (англ.), 5 (3): 66—67, doi:10.1016/0020-0190(76)90065-X
- Leith, D.J.; Clifford, P. (2006), "A Self-Managed Distributed Channel Selection Algorithm for WLAN", Proc. RAWNET 2006, Boston, MA (PDF) (англ.)
- Linial, N. (1992), "Locality in distributed graph algorithms", SIAM Journal on Computing (англ.), 21 (1): 193—201, doi:10.1137/0221015
- van Lint, J. H.; Wilson, R. M. (2001), A Course in Combinatorics (2nd ed.), Cambridge University Press, ISBN 0-521-80340-3
- Molloy, Michael; Reed, Bruce (2002), Graph colouring and the probabilistic method (англ.), Springer, ISBN 3-540-42139-4, ISSN 0937-5511
- Marx, Dániel (2004), "Graph colouring problems and their applications in scheduling", Periodica Polytechnica, Electrical Engineering (англ.), vol. 48, pp. 11—16, CiteSeerX:10.1.1.95.4268
- Mycielski, J. (1955), "Sur le coloriage des graphes" (PDF), Colloq. Math., 3: 161—162.
- Myles, Ginger; Collberg, Christian S. (2003), "Software Watermarking Through Register Allocation: Implementation, Analysis, and Attacks", ICISC, pp. 274—293, doi:10.1007/b96249
- Nešetřil, Jaroslav; Ossona de Mendez, Patrice (2012), "Theorem 3.13", Sparsity: Graphs, Structures, and Algorithms, Algorithms and Combinatorics, vol. 28, Heidelberg: Springer, p. 42, doi:10.1007/978-3-642-27875-4, ISBN 978-3-642-27874-7, MR 2920058.
- Panconesi, Alessandro; Rizzi, Romeo (2001), "Some simple distributed algorithms for sparse networks", Distributed Computing (англ.), 14 (2), Berlin, New York: Springer-Verlag: 97—100, doi:10.1007/PL00008932, ISSN 0178-2770
- Panconesi, A.; Srinivasan, A. (1996), "On the complexity of distributed network decomposition", Journal of Algorithms (англ.), vol. 20
- Qu, Gang; Potkonjak, Miodrag (1998), "Analysis of watermarking techniques for graph coloring problem", ICCAD, pp. 190—193, doi:10.1145/288548.288607
- Schneider, J. (2010), "A new technique for distributed symmetry breaking", Proceedings of the Symposium on Principles of Distributed Computing (PDF) (англ.), Архивировано (PDF) 30 июля 2013 Архивная копия от 30 июля 2013 на Wayback Machine
- Schneider, J. (2008), "A log-star distributed maximal independent set algorithm for growth-bounded graphs", Proceedings of the Symposium on Principles of Distributed Computing (PDF) (англ.), Архивировано (PDF) 30 июля 2013 Архивная копия от 30 июля 2013 на Wayback Machine
- Sekine, K.; Imai, H.; Tani, S. (1995), "Computing the Tutte polynomial of a graph of moderate size", Proc. 6th International Symposium on Algorithms and Computation (ISAAC 1995), Lecture Notes in Computer Science (англ.), vol. 1004, Springer, pp. 224—233, doi:10.1007/BFb0015427, ISBN 3-540-60573-8
- Tutte, W. T. (1984), "Graph theory", Encyclopedia of mathematics and applications (англ.), 21, Cambridge University Press, ISBN 0-521-30241-2
- Welsh, D. J. A.; Powell, M. B. (1967), "An upper bound for the chromatic number of a graph and its application to timetabling problems", The Computer Journal, 10 (1): 85—86, doi:10.1093/comjnl/10.1.85
- Wilf, H. S. (1986), Algorithms and Complexity (англ.), Prentice–Hall
- Zhu, William; Thomborson, Clark (2006), "Recognition in software watermarking", MCPS '06: Proceedings of the 4th ACM international workshop on Contents protection and security, ACM, pp. 29—36, doi:10.1145/1178766.1178776, ISBN 1-59593-499-5
- Gross J. L., Yellen J. Graph theory and its applications. — 2nd ed. — Boca Raton—London—New York: Chapman & Hall / CRC, 2006. — С. 371–416.