Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Алгоритм кратчайшей раскраски графа ⇐ ПредыдущаяСтр 3 из 3
Раскраска представляет собой маркировку вершин графа таким образом, чтобы у смежных вершин маркеры не совпадали. Вместо, красок используются числа 0, 1, 2... Условие оптимальности раскрашивания - использование минимального числа красок φ - хроматического числа графа. Граф, который можно представить на плоскости без пересечения его ребер, называется плоским. Конечная грань - это внутренняя область плоскости, ограниченная Теорема 3.5.1. Для плоских графов φ < 4. Пример 4.5.1. Рассмотрим граф G изображенный на рис.4.5.1, и произведем раскраску этого графа. φ =3 (0, 1, 2) φ =3 (0, 1, 2) Рис.4.5.1 Алгоритм граничного перебора построения максимальных внутренне устойчивых вершин графа (построение множества всех несмежных вершин графа). 0. Текущее множество Y={X1}, i=0. 1. Находим наибольший номер j, такой, что XjÎ Y: a). Если j ¹ n и i = 0 переходим в п.3 (n – количество вершин графа). b). Если j ¹ n и i ¹ 0 переходим в п.2. c). Если j = n, то удаляем из множества Y вершину Xn: Y=Y/{Xn}//(множ.Y без вершины Xn): если при этом Y¹ Æ, то переходим в п.1, иначе, если Y=Æ – переходим в п.6. 2. Удаляем элемент Xj из множества Y и проверяем: если Y=Æ, то j=j+1, вводим в Y элемент Xj и переходим в п.3, иначе, если Y¹ Æ – переходим в п.3 (ничего не выполняя). 3. j=j+1. Если j > n, то переходим в п.4, иначе проверяем на смежность вершины Xj со всеми вершинами множества Y. Если хотя бы для одного элемента Xl множества Y (XlÎ Y) вершины (Xj, Xl) смежные, выполняем п.3, иначе добавляем элемент Xj в множество Y и переходим в п.3. 4. Если i=0, то переходим в п.5, иначе, если i¹ 0, проверяем на поглощение множество Y: Y£ Ys (1 £ s £ i). Если Ys поглощает Y, то переходим в п.1, иначе переходим в п.5. 5. i=i+1, Yi=Y. Переходим в п.1 (Yi – очередное построенное подмножество максимальных внутренне устойчивых вершин графа). 6. Построение всех Ys (1 £ s £ i), максимально внутренне устойчивых множеств закончено. Алгоритм кратчайшей раскраски графа (словесное описание): 1. Методом граничного перебора строятся все максимальные внутренне устойчивые множества вершин графа (множество несмежных вершин). 2. Строится таблица покрытий, строками которой являются найденные внутренне устойчивые подмножества. Столбцами являются вершины графа. Таблица отражает отношение принадлежности вершин максимальных внутренне устойчивых множеств, множеству вершин графа. 3. Решается задача построения одного кратчайшего покрытия (например, методом минимального столбца максимальной строки). 4. Вершины принадлежащие каждому подмножеству вошедшему в найденное кратчайшее покрытие окрашиваются 1-й краской. Если некоторая вершина принадлежит нескольким вошедшим в покрытие подмножествам, то она в одном остается, из других исключается. В общем случае строим таблицу для определения максимальных внутренне устойчивых подмножеств множества вершин графа, т.е. множеств несмежных вершин графа. Столбцы этой таблицы - номера вершин графа, и последний столбец - название очередного максимального внутренне устойчивого подмножества. Строки таблицы - несмежные вершины. Несмежные вершины выбраны в таблице единицами. Далее решается задача построения одного кратчайшего покрытия (методом минимального столбца максимальной строки). Вершины, принадлежащие каждому подмножеству, вошедшему в найденное кратчайшее покрытие, окрашиваются одной краской. Если некоторая вершина принадлежит нескольким вошедшим в покрытие подмножествам, то она в одном остаётся, из остальных исключается. Для нашего примера получим два подмножества: Y1, Y2, Y3. Таким образом, получим три краски 0, 1, 2 соответственно. И действительно (как показано на рис, 4.5.1): если х1, покрасить краской 0, то все смежные с ней вершины Алгоритмы нахождения подграфов Циклом называется замкнутый маршрут в неориентированном графе. Для ориентированного графа определяется аналогично понятие контур - замкнутый путь. Пример 3.3.1 Рассмотрим граф (рис.3.3.1, а), в котором каждому ребру присвоен свой номер. В графе можно выделить соответствующее ему число циклов. Для нашего примера циклами Сi являются замкнутые маршруты, образованные ребрами (рис.3.3.1, б): С1 = {1, 2, 5, 4}, C2 = {5, 6, 7}, С3 = {3, 6, 2}, С4 = {1, 2, 6, 7, 4}.Среди этих циклов найдутся такие, которые включают в себя другие циклы. Так, цикл С4 состоит из циклов C1 и C2, у которых имеется общее ребро 5, не вошедшее в цикл 4. Говорят, что цикл 4 получен линейной комбинацией циклов 1 и 2, т.е. является линейно зависимым от них. Линейно зависимым от некоторой совокупности других циклов называется цикл, который можно построить линейной комбинацией циклов в совокупности этих циклов. Присвоим каждому ребру графа номер j, j = 1, m и поставим в соответствие каждому циклу Ci, двоичный m–разрядный вектор Vi, компоненты vij которого определяются следующим образом: Vj = 0, если ребро j не входит в цикл Сi, Vj = 1 – в противном случае. Тогда линейной комбинацией векторов V, является результат векторной операции сложения по модулю двух этих векторов. Для рассмотренного выше примера имеем: Поскольку Vi отношение принадлежности ребер графа циклу Ci, a Ci – это множество ребер, то в результате применения векторной операции Å получаем совокупность ребер, входящих в циклы, составляющих линейную комбинацию, за исключением общих для этих циклов ребер; на языке теории множеств это означает
В нашем примере общим является ребро 5, которое исключено из цикла 4. Максимальное множество линейно независимых циклов образует систему независимых циклов, мощность g этого множества называется цикломатическим числом. Популярное:
|
Последнее изменение этой страницы: 2016-07-14; Просмотров: 1085; Нарушение авторского права страницы