Поиск цикломатического числа графа
Для нахождения цикломатического числа нужно прежде всего определить число компонент связности графа (см. 3.3.1.6) Это необходимо для вычисления цикломатического числа по формуле: l(G)=m-n+k(G) Затем следует составить матрицу циклов и выбрать наиболее оптимальное сочетание удаляемых ребер для устранения всех циклов в графе. Пример: на рис. 3.17 дан граф. Составить матрицу циклов и найти цикломатическое число.
Ниже представлена матирица циклов.
Интересно отметить, что операция (сiÅсj) формирует вектор-строку другого цикла. с1=10001100 с1=10001100 с6= 01110100 Å Å Å с2=11001010 с4=11111000 с8= 01100001 с7=01000110 с6 =01110100 с10=00010101 и т.д.
В данном графе четыре базовых цикла: {r1, r5, r6}, {r4, r6, r8}, {r2, r3, r8}, {r3, r4, r7}. Если удалить четыре ребра в каждом базовом цикле, то будут устранены в графе все циклы. Например, {r1, r3, r4, r6}. Если k(G)=1, то l(G)=m-n+k(G)=4. Поиск хроматического числа графа Прежде, чем определять число красок для раскрашивания вершин по числу ребер в циклах, следует найти клику графа, содержащую наибольшее число вершин полного подграфа. Если клика содержит n³3, то хроматическое число должно быть равным g(G)=n. В противном случае можно оценивать g(G) числу ребер в цикле. Если число ребер в цикле есть четное число, то g(G)=2, если нечетное - g(G)=3.
Пример: На рис. 3.17а) дан граф. Определить его хроматическое число. Проверим число красок по трем основаниям: 1) граф содержит циклы четной и нечетной длины, т. е. число красок должно быть g(G)³3; 2) наибольшая степень вершин x2 и x5 равна 4, т. е. Число красок должно быть g(G)<5; 3) плотность графа r(G)=4 (см. таблицу ниже), т. е. полный подграф содержит четыре вершины. Следовательно, число красок должно быть g(G)4.
Бинарные операции Бинарные операции поволяют формировать новые графы в результате объединения, пересечения, разности, композиции, произведения или суммы двух или нескольких графов. При исполнении операций над двумя графами G1=<X1, r1> и G2=<X2, r2> следует обратить внимание на наличие общих элементов для X1 и X2 и/или r1 и r2. Это позволяет выделить три конструктивных объекта: a) вершины и рёбра (дуги) не имеют общих элементов, т.е. (X1ÇX2)=Æ и (r1Çr2)=Æ; b) вершины имеют общие элементы, а рёбра (дуги) - нет, т.е. (X1ÇX2)¹Æ и (r1Çr2)=Æ; c) вершины и рёбра (дуги) имеют общие элементы, т.е. (X1ÇX2)¹Æ и (r1Çr2)¹Æ. Объединение графов Граф G=G1ÈG2), для которого X=(X1ÈX2) и r=(r1Èr2) есть объединение графов G1=<X1, r1> и G2=<X2, r2>. Для вычисления матрицы смежности формируемого графа следует использовать матрицы смежности исходных графов. Матрицы смежности всех графов должны иметь число строк и столбцов |X|=|(X1ÈX2)|. Значение смежности вычисляют по формуле:
r(i, j)=r(1)(i, j) Ú r(2)(i, j). На рис. 3.18 показан результат этой операции для трех конструктивных объектов.
Ниже приведены матрицы для вычисления объединения графов G1 и G2 по рис. 3.18с).
Пересечение графов Граф G=(G1ÇG2), для которого X=(X1ÇX2) и r=(r1Çr2) есть пересечение графов G1=<X1, r1> и G2=<X2, r2>. На рис. 3.19 дан результат исполнения этой операции. Для вычисления матрицы смежности формируемого графа следует использовать матрицы смежности исходных графов. Матрицы смежности всех графов должны иметь число строк и столбцов |X|=|(X1ÈX2)|. Значение смежности вычисляют по формуле : ri,j=r(1)(i, j) × r(2)(i, j).
Ниже приведены матрицы для вычисления пересечения графов G1 и G2 по рис. 3.19с).
Композиция графов Граф G=(G1·G2)=<X, r>, для которого XÍ(X1ÈX2), а ri,jÎr существует тогда и только тогда, когда есть хотя бы одна вершина xk, принадлежащая графам G1 и G2, что обеспечивает маршрут через вершину xk, с началом в xi(1)ÎX1 и концом в xj(2)ÎX2. На рис. 3.20 дан результат исполнения этой операции.
Значение смежности вычисляют по формуле: r(i, j)= k=1 Ú n(r(1)(i, k) × r(2)(k, j). Ниже приведены матрицы смежности для вычисления композиции графов G1 и G2 по рис. 3.17с).
Соединение графов Граф G=(G1+G2)=<X, r> представляет собой объединение графов G1 и G2 и двудольного полного графа, построенного на носителях X1\(X1ÇX2) и X2\(X1ÇX2). Каждая вершина xÎX1, не вошедшая в пересечение (X1ÇX2), соединяется со всеми вершинами X2, не вошедшими в пересесчение (X1ÇX2), и наоборот. X=X1ÈX2, r=r1Èr2È{(x(1), x(2))| x(1)Î(X1\(X1ÇX2)), x(2)Î(X2\(X1ÇX2)))}. На рис. 3.21а) X1ÇX2=Æ. Следовательно, ребра двудольного графа соединяют каждую вершину графа G1 с каждой вершиной графа G2. На рис. 3.21b) X1ÇX2=x3. Следовательно, ребра двудольного графа соединяют только вершины x1 и x2 графа G1 с вершинами x4, x5, x6 графа G2. На рис. 3.21c) X1ÇX2={x1, x2, x3}. Следовательно, X1\(X1ÇX2)=Æ, а X2\(X1ÇX2)=x4. Следовательно, множество ребер двудольного графа (x(1), x(2))=Æ.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|