МатВектор

Command Palette

Search for a command to run...

🔀 Дискретка

Матрица смежности

англ. Adjacency matrix

Квадратная таблица n×n, где единица на пересечении i и j означает ребро из вершины i в вершину j; k-я степень матрицы считает маршруты длины k.

Матрица смежности графа с вершинами — квадратная таблица : на пересечении строки и столбца стоит , если из вершины в вершину идёт ребро; для взвешенных графов пишут вес, для мультиграфов — кратность. У неориентированного графа матрица симметрична, у ориентированного — нет. Это самый удобный формат для линейной алгебры: степени вершин — суммы по строкам, спектры и маршруты считаются матричными операциями. Основы графов — в уроке графы: основы.

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

умножение матрицы смежности пересчитывает маршруты: каждый сомножитель выбирает очередную промежуточную вершину пути

Частые вопросы

Зачем возводить матрицу смежности в степень?

Чтобы посчитать маршруты фиксированной длины без перебора путей: — готовое число маршрутов из в ровно за шагов. Так проверяют достижимость за ограниченное число ходов, считают треугольники в графе через , анализируют случайные блуждания: степени стохастической матрицы переходов дают вероятности попаданий. Быстрое возведение в степень делает всё это за .

Матрица смежности или списки — что выбрать?

Матрица выигрывает на плотных графах и там, где нужен мгновенный ответ «есть ли ребро », а также в алгебраических задачах: Флойд—Уоршелл, подсчёт маршрутов, спектральный анализ. Списки выигрывают памятью на разреженных графах — против — и скоростью обходов: BFS и Дейкстра с кучей ходят именно по спискам. Правило простое: алгебра и плотные графы — матрица, обходы и пути — списки.