logo
Ответы на экзаменационные вопросы / Ответы на экзаменационные вопросы по дискретной математике

Матрицы

Рисунок 10. Неориентированный мультиграф

Трудно переоценить роль матриц в теории графов. Перечислим наиболее известные.

Матрица смежности. Это квадратная матрица порядка ( — число вершин), в которой нули стоят по главной диагонали (если в графе нет петель, а если петли есть в вершине (и число этих петель равно ), то на главной диагонали в строчке с номером стоит число ). Если вершина связана с вершиной одним ребром, то элемент матрицы смежности равен 1, если эти вершины связаны рёбрами, то . Аналогичным образом строятся матрицы смежности для орграфов и для мультиграфов.

Для предыдущего рисунка матрица смежности такая:

Теорема. Если матрица смежности графа с вершинами есть , то элемент матрицы равен числу маршрутов длины из вершины с номером в вершину с номером (под длиной маршрута понимается число рёбер в этом маршруте).

Доказательство. По правилу перемножения матриц:

Для обычного графа каждый элемент матрицы смежности равен или 0, или 1. Значит, в написанной сумме каждое слагаемое равно или 0, или 1, причём оно равно 1 тогда и только тогда, когда все множители равны 1. Но в этом случае индексы у множителей указывают некоторый путь из -й вершины в -ю, а тогда сумма всех этих единиц равна числу маршрутов из -й вершины в -ю, и теорема доказана. Для мультиграфов доказательство аналогично.

Замечание. В частности, матрица составлена из целых чисел , которые равны числу маршрутов длины 2, соединяющих вершины и . Аналогично составлена из чисел , равных числу маршрутов длины 3 (то есть маршрутов из трёх рёбер) из вершины в вершину и так далее.

Матрица инцидентности. Это матрица размера , где — число вершин, а — число рёбер графа, при этом её элементы равны 1, если вершина с номером инцидентна ребру с номером (если ребро неориентированное), или является начальной (для ориентированного ребра). Заметим, что матрица инцидентности сравнительно редко используется, так как в современных условиях (где число рёбер часто очень велико) она имеет слишком большое число столбцов.

Для предыдущего рисунка матрица инцидентности такая:

Структурная матрица. Именно эта матрица имеет особое значение в теории сетей связи. Структурная матрица — это символьная матрица порядка (размера ), где — число вершин графа, причём её элементы — символьные обозначения рёбер. На главной диагонали стоят 1, то есть . Если при вершины и соединены ребром , то элемент , при — отрицание , которое обычно отмечается чертой наверху: . Если же ребра из вершины с номером в вершину с номером нет, то . Структурная матрица может составляться и для орграфа, и для мультиграфа без петель (здесь если два ребра и соединяют две вершины, то соответствующий элемент при равен , а при этот элемент равен .

Для предыдущего рисунка структурная матрица такая:

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

Теорема. Для того чтобы найти все простые пути из вершины в вершину достаточно раскрыть минор структурной матрицы методами булевой алгебры (то есть вычеркнуть из структурной матрицы строчку с номером и столбец с номером ). При этом раскрытие минора производится обычными действиями с определителями, но сложение заменяется дизъюнкцией, умножение — конъюнкцией, знаки умножения на числа не используются.

Для предыдущего рисунка нахождение всех простых путей из (1) в (4):

Подробно доказывать эту теорему не будем, но отметим, что определитель равен сумме (в данном случае дизъюнкции) элементов, взятых по одному из каждой строчки и каждого столбца с определенным знаком. В нашем случае знаки не присутствуют, а значит, любой член раскрытия определителя всей структурной матрицы соответствует циклу в графе. Если же брать минор , то его раскрытие соответствует тем членам определителя, в которых имелся элемент , но без самого этого элемента (таким образом, индексы и встречаются вместо двух только один раз). Это и означает, что мы получаем маршрут от вершины с номером к вершине с номером .

Понятно, что раскрытие минора методами булевой алгебры предусматривает, что верны следующие соотношения: , (это свойство нужно, для того чтобы не проходить по одному ребру дважды в противоположных направлениях), а также используется правило простого поглощения: . Видно, что если не использовать правило поглощения, то получим все маршруты (без повторения рёбер), связывающие вершины и .

Замечание 1. Если граф не ориентирован, то миноры и совпадают.

Замечание 2. После получения ответа чёрточки над обозначениями рёбер (то есть отрицания) можно убрать (на самом деле «черта» над ребром означает, что ребро проходится от вершины с большим номером к вершине с меньшим номером). Затем рекомендуется записать каждый путь по порядку прохождения рёбер (в этом случае удобны обозначения рёбер с индексами вершин).

Сечение (разрез) между вершинами и — неизбыточный набор рёбер, при удалении которых из графа теряется связь между данными вершинами (не существует пути из вершины в вершину ). Слово «неизбыточный» означает, что если любое ребро из сечения снова возвратить в граф, то связь восстановится. Заметим, что сечений между данными вершинами может быть много, и они могут содержать разное количество рёбер.

Естественно, что если известны все пути из вершины в вершину , причём эти пути заданы в виде ДНФ, то есть дизъюнктивной нормальной формы (а именно такой вид получается после раскрытия соответствующего минора структурной матрицы), то все сечения между этими вершинами можно получить отрицанием этих путей (по правилу де Моргана конъюнкцию заменить на дизъюнкцию и наоборот), затем полученное выражение снова привести к ДНФ, используя раскрытие скобок по обычным правилам; при этом правило поглощения обеспечит неизбыточность набора рёбер в каждом сечении. Ясно, что знаки отрицания (чёрточки над символами рёбер) можно опустить.

Для предыдущего примера нахождение всех сечений между (1) и (4):