DSatur - DSatur

DSatur это раскраска графика алгоритм выдвинутый Даниэль Брелаз в 1979 г.[1] Аналогично жадный алгоритм раскраски, DSatur раскрашивает вершины из график один за другим, при необходимости растягивая ранее неиспользованный цвет. Когда-то новый вершина был раскрашен, алгоритм определяет, какая из оставшихся неокрашенных вершин имеет наибольшее количество цветов в своей окрестности, и раскрашивает эту вершину следующей. Brélaz определяет это число как степень насыщения данной вершины.[1] Уменьшение степени насыщенности и составляет название алгоритма.[2]:39 DSatur - это эвристический алгоритм раскраски графов, но он дает точные результаты для двудольных,[1] циклические и колесные графики.[2] DSatur также упоминается в литературе как НЧ насыщения.[3]

Псевдокод

Определите степень насыщенности вершины как количество разных цветов в ее окрестности. Учитывая просто, неориентированный граф г компрометирующий набор вершин V и набор кромок E:[4]

  1. Создайте порядок степеней V.
  2. Выберите вершину максимальной степени и раскрасьте ее первым цветом.
  3. Рассмотрим вершину с наибольшей степенью насыщения. Разорвите связи, рассмотрев эту вершину с наивысшей степенью. Дальнейшие связи разрываются случайным образом.
  4. Прокрутите все уже созданные классы цветов и раскрасьте выбранную вершину первым подходящим цветом.
  5. Пока не V все окрашены, вернитесь к шагу 3

Спектакль

Наихудшая сложность DSatur составляет Ο(п2), однако на практике некоторые дополнительные расходы возникают из-за необходимости выдерживать степень насыщенности неокрашенных вершин.[2] Доказано, что DSatur точен для двудольных графов,[1] а также для цикловых и колесных графиков.[2] В эмпирическом сравнении, проведенном Льюисом 2015, DSatur давал значительно лучшие раскраски вершин, чем жадный алгоритм на случайных графах с вероятностью ребра п = 0,5 при разном количестве вершин, что, в свою очередь, дает значительно худшую окраску, чем алгоритм Recursive Largest First.

Рекомендации

  1. ^ а б c d Brélaz, Даниэль (1979-04-01). «Новые методы раскраски вершин графа». Коммуникации ACM. 22 (4): 251–256. Дои:10.1145/359094.359101. ISSN  0001-0782.
  2. ^ а б c d Льюис, R.M.R. (2016). Руководство по раскраске графиков. Берлин: Springer. Дои:10.1007/978-3-319-25730-3. ISBN  978-3-319-25728-0.
  3. ^ Кубале, изд. (2004). Раскраски графиков (Том 352). Провиденс: Американское математическое общество. п. 13. ISBN  978-0-8218-3458-9.
  4. ^ Льюис, Рид (19 января 2019). «Конструктивные алгоритмы раскраски графов». youtube.com. Событие происходит в 3:49.