![]() |
![]() |
npl |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 21 Пол: Мужской Реальное имя: http://npfiles.ru Репутация: ![]() ![]() ![]() |
Помогите с алгоритмом. Для произвольного графа найти хроматическое число и раскраску.
|
![]() ![]() |
Michael_Rybak |
![]()
Сообщение
#2
|
Michael_Rybak ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 1 046 Пол: Мужской Реальное имя: Michael_Rybak Репутация: ![]() ![]() ![]() |
Пытаешься раскрасить в один цвет; если не получилось - в два; если не получилось - в три, и т.д.
Чтобы раскрасить в k цветов, используешь такую схему. Фиксируешь порядок обхода вершин. Идешь в первую вершину, даешь ей цвет 1. Идешь во вторую, и даешь ей такой наименьший цвет, который не вызовет конфликтов. Идешь в третью, и т.д. Если на очередном ходу цвет выбрать не получается, откатываешь к предыдущей вершине, и выбираешь для нее следующий цвет, который не вызовет конфликтов. Если и для нее возможные цвета кончились - откатываешь дальше, и т.д. Если всем вершинам назначены цвета - задача решена. Рекурсивная процедура будет выглядеть примерно так: procedure visit(i: integer); |
![]() ![]() |
![]() |
Текстовая версия | 27.07.2025 14:45 |