Если булевы операции заменить обычными алгебраическими операциями, нахождение матрицы достижимости сведётся к обычному пошаговому перемножению матриц.Так как получившаяся матрица будет состоять не только из 0 и 1, то нужно воспользоваться функцией знака sign(x). Данный алгоритм удобно реализовать используя математические пакеты, например MathCAD (смотри приложение 1), пакет Excel (смотри приложение 2), или написать программу на любом алгоритмическом языке. Приведем методику расчета. Матрицы в примере расчета следует заменить на полученные для своего варианта. Построим матрицы смежности графа G (рисунок 5).
Рисунок 5 - Матрица смежности ||H|| графа G
Получим матрицу достижимости ||Q|| графа G (рисунок 6).
Рисунок 6 - Матрица достижимости ||Q|| графа G
Рисунок 7 - Матрица ||H2|| графа G
Возведем матрицу смежности ||H|| в третью степень. Получим ||H3|| (рисунок 8).
Рисунок 8 - Матрица ||H3|| графа G Анализ матриц ||H2|| и ||H3|| показывает, что никаких изменений в ||H3|| по сравнению ||H2|| нет. Это значит, что процесс вычислений завершен. Матрица достижимости ||Q3|| (рисунок.9) рассчитывается следующим образом:
Рисунок 5.9 - Матрица ||Q3|| графа G
Поскольку матрица ||Q3|| содержит два блока: один – 3х3 элемента, другой – 6х6 элементов, то граф G содержит два связных подграфа:
где X1={x1,x2,x3}, X2={x4,x5,x6,x7,x8,x9}.
Таким образом, для исходного графа G=<X,H> число компонент связности равно æ(G)=2.
Рассчитаем цикломатическое число графа G, т.е. наименьшее число ребер, удаление которых приведет к графу без циклов и петель. Расчет выполним по формуле:
В качестве примера удалим на графе G четыре ребра (1,3), (4,5), (5,6), (8,9). Получим граф на рисунке 10.
Рисунок 10 - Граф без циклов и петель
Рассчитаем хроматическое число графа G, т.е. наименьшее число красок при применении которых для раскраски вершин графа две любые смежные вершины графа G, не будут окрашены в один цвет. Для выполнения расчета воспользуемся двумя оценочными соотношениями. Одно из них задает левую границу для γ(G), min возможное значение γ(G), т.е. γmin(G):
1) полный n -вершинный граф имеет γmin(G)=n; 2) пустой граф имеет γmin(G)=1; 3) граф с циклом (т.е. хотя бы одним) четной длины имеет γmin(G)=2; 4) граф с циклом нечетной длины имеет γmin(G)=3; 5) граф-дерево имеет γmin(G)=2. Другое оценочное соотношение задает правую границу для γ(G), max необходимое значение γ(G), т.е. γmax(G): .
Начинаем проверку с вычисления γmin(G). Поскольку в графе G есть цикл нечетной длины пробуем раскрасить граф тремя красками (рисунок 11).
Рисунок 11 - Раскраска графа G синей, желтой и красной красками
Вывод: трех красок, т.е. γmin(G) =3 оказалось достаточно:
.
Если бы трех красок оказалось недостаточно, следовало бы γmin(G) увеличить на единицу и повторить раскраску заново. И так далее, до получения желаемого результата. Однако таких красок не должно быть больше чем γmax(G).
|