Задача о реберной раскраске.

Определение. Реберная раскраска называется правильной, если любые два смежных ребра имеют разные цвета. Реберная раскраска с минимальным числом цветов называется минимальной.

Из этого определения следует, что минимальное число цветов в правильной реберной раскраске оценивается снизу степенью графа, т.е. максимальной степенью вершин.

Минимальное число цветов в правильной реберной раскраске называется хроматическим классом графа. Пусть ‑ степень вершины . Для графа без петель и кратных дуг верна оценка[10]

Сформулируем задачу поиска минимального числа цветов в реберной раскраске в терминах целочисленного программирования. Пусть ‑ номер цвета, в который окрашено ребро .

Тогда модель имеет вид:

(4.8)

, , , (4.9)

(4.10)

 

4.2.2. Построение остовного дерева минимального веса.

Минимальный остов

Задача о минимальном остове [6] состоит в отыскании остова минимального веса во взвешенном графе , где ‑ граф, ‑ вещественнозначная функция, ставящая в соответствие каждому ребру положительное (или неотрицательное) число ‑ вес ребра .

Задача о минимальном остове считается одной из самых «легких» оптимизационных задач па графах. Решение этой задачи можно получить с помощью «жадного» алгоритма, задав процедуру, которая по любому ациклическому множеству ребер и ребру определяет, содержит ли множество ребер цикл графа . В качестве такой процедуры можно использовать поиск в глубину, поскольку выявление цикла в множестве , где , равнозначно отысканию -цепи в порожденном подграфе . В процессе работы «жадного» алгоритма эта процедура выполняется не более раз, и, следовательно, затраты времени составят .

Для упорядочения множества по неубыванию весов известны алгоритмы сложности . Таким образом, даже использование «жадной» стратегии поиска минимального остова приводит (независимо от способа задания графа ) к полиномиальному алгоритму сложности [11].

Рассмотрим алгоритм построения остовного дерева минимального веса, предложенный Примом [2, с. 73]. Алгоритм Прима порождает дерево посредством разрастания только одного поддерева, например , содержащего более одной вершины. «Одиночные» вершины рассматриваются как отдельные поддеревья (т. е. , для всех ). Поддерево постепенно разрастается за счет присоединения ребер , где и , причем добавляемое ребро имеет наименьший вес среди ребер из . Процесс продолжается до тех пор, пока число ребер в не станет равным . Тогда дерево будет требуемым остовом графа .

Алгоритм начинает работу с присвоения каждой вершине пометки , где на каждом шаге есть ближайшая к вершина из а ‑ вес ребра . На каждом шаге алгоритма вершина, например , с наименьшей пометкой присоединяется к посредством добавления ребра . Поскольку к добавлена новая вершина , то, может быть, придется изменить пометки у некоторых вершин , и после этого продолжить процесс.

Алгоритм Прима имеет следующий вид.

Инициализация

Пусть , где — произвольно выбранная вершина из , .

Основной цикл

Шаг 1. Для каждой вершины найти вершину такую, что и приписать вершине пометку . Если такой вершины нет, т. е. при , приписать вершине пометку .

Шаг 2. Выбрать такую вершину , что .

Обновить данные:

.

Если , то останов. Ребра в образуют остов минимального веса. Если , то перейти к шагу 3.

Шаг 3. Для всех таких, что обновить пометки следующим образом:

а) если , то положить , и вернуться к шагу 2;

б) если , то перейти к шагу 2.

Вычислительная сложность алгоритма Прима составляет операций.

Для решения задачи построения остова минимального веса также используется алгоритм Краскала. Рассмотрим шаги этого алгоритма.

Инициализация

Положить — несвязный граф, содержащий вершин.

Сортировка

Упорядочить ребра графа в порядке неубывания их весов.

Основной цикл

Шаг 1. Начать с первого ребра в построенном на шаге Сортировка списке. Добавлять ребра графу , соблюдая условие: добавление ребра не должно приводить к появлению цикла в .

Шаг 2. Повторять шаг 1 до тех пор, пока число ребер в не станет равным .

 






Дата добавления: 2016-06-05; просмотров: 1528; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2022 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.032 сек.