Как найти матрицу инцидентности графа: пошаговое решение
Дано: неориентированный граф на пяти вершинах с шестью рёбрами , , , , , . Найти: матрицу инцидентности этого графа, а затем её вариант со знаками для орграфа.
Матрица инцидентности строится механически: строк столько, сколько вершин, столбцов столько, сколько рёбер, а единица в клетке означает, что вершина является концом этого ребра. Размер матрицы здесь , в каждом столбце ровно две единицы, всего их двенадцать. Ответ: строки матрицы равны 1 1 0 0 0 0; 1 0 1 1 0 0; 0 1 1 0 1 0; 0 0 0 1 0 1; 0 0 0 0 1 1, а их суммы 2, 3, 3, 2, 2 совпадают со степенями вершин. Калькулятор сверху открыт ровно на этом графе: сними ребро, и столбец исчезнет вместе с отрезком на схеме.
Решение по шагам
Дано. Граф без петель и кратных рёбер, где
Найти. Матрицу инцидентности размера и матрицу инцидентности орграфа, полученного ориентацией каждого ребра от вершины с меньшим номером к вершине с большим.
Шаг 1. Фиксируем порядок вершин и рёбер. Это не формальность: матрица зависит от нумерации, и если рёбра заданы списком, порядок списка становится порядком столбцов. Вершины идут сверху вниз как , рёбра слева направо в порядке условия: , , , , , . Дальше остаётся заполнить пустую таблицу пять на шесть.
Шаг 2. Заполняем столбцы по одному ребру. Удобнее идти не по строкам, а по столбцам: каждое ребро даёт ровно две единицы, и обе ставятся сразу. Берём - единицы в строках и , остальные три клетки столбца нулевые. Берём - единицы в строках и . И так до последнего ребра.
| Вершина | e1 | e2 | e3 | e4 | e5 | e6 | Сумма |
|---|---|---|---|---|---|---|---|
| v1 | 1 | 1 | 0 | 0 | 0 | 0 | 2 |
| v2 | 1 | 0 | 1 | 1 | 0 | 0 | 3 |
| v3 | 0 | 1 | 1 | 0 | 1 | 0 | 3 |
| v4 | 0 | 0 | 0 | 1 | 0 | 1 | 2 |
| v5 | 0 | 0 | 0 | 0 | 1 | 1 | 2 |
| Сумма | 2 | 2 | 2 | 2 | 2 | 2 | 12 |
Шаг 3. Записываем ответ матрицей. Тот же результат в привычной записи, где строка номер отвечает вершине , а столбец номер - ребру :
Шаг 4. Проверяем себя двумя суммами. Сумма каждого столбца обязана равняться двум: у ребра два конца, третьего не дано. Сумма строки равна степени вершины , потому что строка перечисляет все инцидентные ей рёбра. Получаем , , , , . Общее число единиц равно , и это же число получается как сумма степеней - знакомая лемма о рукопожатиях, которую подробно разбирает страница о том, как найти степени вершин графа.
Шаг 5. Ориентируем рёбра и расставляем знаки. Пусть каждая дуга идёт от вершины с меньшим номером к вершине с большим: , , , , , . В столбце дуги теперь стоит у начала и у конца:
Проверка здесь другая: сумма каждого столбца равна нулю, потому что и гасят друг друга. Суммы строк дают - это разности полустепеней исхода и захода, и в сумме по всем вершинам они обязаны давать ноль.
Ответ. Матрица инцидентности имеет размер , её строки равны , , , , ; суммы строк совпадают со степенями вершин, суммы столбцов равны 2. Для орграфа та же матрица получает минусы у концов дуг, и суммы её столбцов равны нулю.
Что стоит в клетке матрицы инцидентности
Определение занимает одну строку, и всё остальное из него выводится. Для неориентированного графа с вершинами и рёбрами матрица инцидентности имеет размер , причём
Слово «инцидентна» означает ровно «является концом»: вершина и ребро инцидентны, вершина и вершина смежны. Отсюда и главное отличие от матрицы смежности - та квадратная и описывает пары вершин, а эта прямоугольная и описывает пары «вершина и ребро».
Петля выбивается из схемы, и на ней чаще всего спотыкаются. У петли оба конца в одной вершине, поэтому в её столбце стоит либо двойка, либо, в другой распространённой договорённости, единица; какое соглашение принято в вашем курсе, стоит подписать рядом с матрицей. Кратные рёбра, в отличие от петель, проблемы не создают: каждое получает свой столбец, и в матрице появляются два одинаковых столбца - то самое, чего матрица смежности показать не умеет.
Матрица инцидентности орграфа: откуда берутся знаки
В ориентированном графе у дуги есть начало и конец, и одной единицы уже мало: иначе дуга и дуга дали бы одинаковые столбцы. Поэтому в клетке ставят
Встречается и обратное соглашение, где минус ставят у начала, а плюс у конца. По существу оно ничего не меняет: вся матрица умножается на . Важно лишь не смешивать два соглашения внутри одной задачи.
Суммы строк в ориентированном случае читаются по-другому. Строка вершины содержит столько плюс единиц, сколько дуг из неё выходит, и столько минус единиц, сколько в неё входит, поэтому сумма строки равна . У нас даёт , даёт , даёт , а сумма всех этих чисел равна нулю: каждая дуга учтена один раз со знаком плюс и один раз со знаком минус.
Связь с матрицей смежности и степенями вершин
Матрица инцидентности и матрица смежности связаны одним произведением, и это самая полезная формула темы. Если - матрица смежности простого графа, а - диагональная матрица степеней вершин, то для неориентированной матрицы инцидентности выполняется
Проверим на нашем примере хотя бы одну клетку. Строка равна , строка равна ; их скалярное произведение равно единице - столько общих рёбер у вершин и , и ровно это стоит в матрице смежности. На главной диагонали получается скалярный квадрат строки, то есть число единиц в ней, то есть степень вершины.
Для ориентированной матрицы знаки переворачивают результат, и произведение даёт матрицу Кирхгофа (лапласиан):
На диагонали окажутся степени , а вне диагонали минус единицы на местах рёбер. Из-за этой формулы ориентированную матрицу любят в спектральной теории графов: лапласиан собирается из неё одним умножением.
Ранг матрицы инцидентности и что он показывает
Ранг ориентированной матрицы инцидентности равен , где - число компонент связности; для связного графа это . Наш граф связен, значит ранг равен , что и показывает калькулятор. Причина проста: сумма всех строк равна нулевой строке, поэтому строки линейно зависимы и ранг не достигает пяти.
Польза от этого факта двойная. Во-первых, ранг даёт число компонент связности без обхода графа: посчитали ранг, например приведением матрицы к ступенчатому виду, и число компонент равно минус ранг. Во-вторых, линейно независимые наборы столбцов - это в точности наборы рёбер без циклов; максимальный такой набор из столбца задаёт остовное дерево, и на этом свойстве держатся жадные алгоритмы вроде алгоритма Прима.
С неориентированной матрицей осторожнее: над обычными числами её ранг равен , если в компоненте есть цикл нечётной длины, и для двудольной компоненты. В нашем графе есть треугольник , поэтому ранг матрицы равен пяти, а не четырём. Если в задаче про ранг не сказано, какая матрица имеется в виду, почти всегда подразумевается ориентированная.
Частые ошибки
- Путают инцидентность и смежность. Матрица смежности квадратная, размера , и описывает пары вершин; матрица инцидентности прямоугольная, размера . Если у вас получилась квадратная таблица не случайно, а «по определению», вы построили не ту матрицу.
- Ставят строки-рёбра, а столбцы-вершины. Стандарт: строки - вершины, столбцы - рёбра. Транспонированный вариант встречается, но о нём надо предупредить явно.
- Теряют вторую единицу в столбце. Столбец заполняется целиком за один раз: отметили оба конца ребра и только потом переходите к следующему. Сумма каждого столбца ровно два - проверка занимает пять секунд.
- В орграфе забывают знак. Матрица из одних единиц не отличает дугу от дуги . Признак ошибки: сумма столбца равна двум вместо нуля.
- Неверно обходятся с петлёй. Петля инцидентна одной вершине дважды, и в её столбце стоит 2 (или 1 при другом соглашении), но никак не две единицы в разных строках.
- Меняют нумерацию посередине решения. Перестановка вершин переставляет строки, перестановка рёбер - столбцы. Матрица от этого остаётся верной, но не совпадёт с эталоном, поэтому порядок фиксируют один раз в начале.
FAQ
Чем матрица инцидентности лучше матрицы смежности? Она показывает кратные рёбра и кодирует рёбра как самостоятельные объекты, что удобно для потоковых задач и линейной алгебры на графах. Зато проверка смежности двух вершин по ней медленнее, а для плотных графов она занимает больше памяти.
Как восстановить граф по матрице инцидентности? Идти по столбцам: в каждом ровно две единицы (или пара и ), и номера их строк дают концы ребра. Из матрицы со строками 1 1 0 0; 1 0 1 0; 0 1 1 1; 0 0 0 1 получаются рёбра , , , , то есть треугольник с подвешенной вершиной.
Можно ли по матрице инцидентности найти расстояния между вершинами? Напрямую нет: в ней хранится только отношение «вершина принадлежит ребру». Расстояния, радиус и диаметр графа считают обходом в ширину или по степеням матрицы смежности, а матрица инцидентности при этом служит лишь исходным описанием графа.
Сколько единиц в матрице инцидентности графа с m рёбрами? Ровно ненулевых клеток, независимо от числа вершин: каждое ребро отмечается у обоих концов. Остальные клеток нулевые, поэтому в программах такую матрицу обычно хранят списком рёбер.
Коротко
- Строки матрицы инцидентности - вершины, столбцы - рёбра; размер , в клетке единица, если вершина является концом ребра.
- Заполняйте по столбцам: каждое ребро сразу даёт две единицы, сумма любого столбца равна двум, всего единиц .
- Сумма строки равна степени вершины, поэтому строки матрицы - готовая проверка по лемме о рукопожатиях.
- В орграфе ставят у начала дуги и у конца; суммы столбцов становятся нулевыми, а суммы строк дают разность полустепеней.
- Для примера из условия матрица имеет размер со строками 1 1 0 0 0 0; 1 0 1 1 0 0; 0 1 1 0 1 0; 0 0 0 1 0 1; 0 0 0 0 1 1, степени вершин равны 2, 3, 3, 2, 2, а ранг ориентированной матрицы равен 4.
Похожие задачи
Как найти степени вершин графа: пошаговое решение
Как найти степени вершин графа по списку рёбер и по матрице смежности: пошаговый разбор примера, проверка по лемме о рукопожатиях, чётность и подсчёт числа рёбер.
Дискретная математикаКак составить СКНФ по таблице: пошаговое решение
СКНФ по таблице истинности: разбор задачи с числами. Строки с нулём дают макстермы, отрицание ставится на единицах, ответ проверяется подстановкой. Внутри калькулятор и сравнение с СДНФ.
Дискретная математикаКак найти двойственную функцию: решение по шагам
Как найти двойственную функцию булевой алгебры: определение через отрицание аргументов и результата, вектор значений наоборот, замена операций в формуле и проверка на самодвойственность.
Дискретная математикаКак найти мощность множества: пошаговое решение
Как найти мощность множества: разбор задачи о 30 студентах по формуле включений исключений, мощность булеана 2 в степени n, счётные и континуальные множества, частые ошибки.
Дискретная математикаКак найти полином Жегалкина: решение по шагам
Как найти полином Жегалкина булевой функции по вектору значений 10011110: треугольник Паскаля, метод неопределённых коэффициентов, проверка подстановкой и вывод о линейности.
Дискретная математикаКак построить карту Карно: решение по шагам
Как построить карту Карно на четыре переменные: разметка осей кодом Грея, перенос единиц из таблицы истинности, склейка соседних клеток в группы и запись МДНФ с проверкой.