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

Материал из Поле цифровой дидактики


Описание Матрица смежности (англ. Adjacency matrix, Connectivity matrix) — математическая структура представления графа в виде матрицы, которая широко применяется в теории графов, сетевом анализе, а также при изучении групповых взаимодействий и командной деятельности.
Область знаний Математика, Социология
Авторы
Поясняющее видео
Близкие понятия Матрица, Граф
Среды и средства для освоения понятия R, NetLogo

Матрица смежности (англ. Adjacency matrix, Connectivity matrix) — математическая структура представления графа в виде матрицы, которая широко применяется в теории графов, сетевом анализе, а также при изучении групповых взаимодействий и командной деятельности. Матрицы смежности как инструмент анализа графов начали использоваться в начале XX века в контексте теории графов. С развитием компьютерной техники и методов анализа социальных сетей (особенно в работах Милгрэма, Грановеттера и других социологов) они стали стандартным инструментом для представления и анализа сложных систем взаимодействий.

Определение и математическое описание

Матрица смежности графа [math]\displaystyle{ G }[/math] с конечным числом вершин [math]\displaystyle{ n }[/math] — это квадратная целочисленная матрица размера [math]\displaystyle{ n \times n }[/math], в которой значение элемента [math]\displaystyle{ a_{i,j} }[/math] равно числу рёбер из [math]\displaystyle{ i }[/math]-й вершины графа в [math]\displaystyle{ j }[/math]-ю вершину.

Математически матрица смежности [math]\displaystyle{ A(G) = (a_{ij}) }[/math] определяется следующим образом:

[math]\displaystyle{ a_{ij} = \begin{cases} 1, & \text{если вершины } v_i \text{ и } v_j \text{ смежны} \\ 0, & \text{в противном случае} \end{cases} }[/math]

Основные свойства

  • Бинарность: Для простого графа (без петель и кратных рёбер) матрица смежности бинарна и содержит только значения 0 и 1
  • Нулевая диагональ: Для графа без петель главная диагональ матрицы состоит из нулей ([math]\displaystyle{ a_{ii} = 0 }[/math])
  • Симметричность: Для неориентированного графа матрица смежности всегда симметрична: [math]\displaystyle{ a_{ij} = a_{ji} }[/math]
  • Степень вершины: Сумма элементов [math]\displaystyle{ i }[/math]-й строки равна степени вершины [math]\displaystyle{ v_i }[/math]: [math]\displaystyle{ \sum_{j=1}^{n} a_{ij} = \deg(v_i) }[/math]

Примеры матриц смежности

Граф Матрица смежности Описание
Граф из 3 связных вершин [math]\displaystyle{ \begin{pmatrix} 0 & 1 & 1 \\ 1 & 0 & 1 \\ 1 & 1 & 0 \end{pmatrix} }[/math] Полносвязный неориентированный граф [math]\displaystyle{ K_3 }[/math]
Граф с ориентированным ребром [math]\displaystyle{ \begin{pmatrix} 0 & 1 & 0 \\ 0 & 0 & 1 \\ 1 & 0 & 0 \end{pmatrix} }[/math] Ориентированный граф (циклический)
Граф из 4 изолированных вершин [math]\displaystyle{ \begin{pmatrix} 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{pmatrix} }[/math] Пустой граф [math]\displaystyle{ O_4 }[/math]

Применение в анализе командной деятельности

Основная концепция

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

Основные применения:

  • Выявление структуры команды: Матрица смежности позволяет определить, кто с кем взаимодействует в команде
  • Анализ центральности узлов: Выявление ключевых участников, которые активнее всего взаимодействуют с коллегами
  • Обнаружение подгрупп: Идентификация кластеров или сообществ внутри команды
  • Анализ потоков информации: Понимание, как информация распространяется через команду

Метрики анализа социальных сетей

Метрика Формула Применение в команде
Центральность по степени (Degree Centrality) [math]\displaystyle{ C_D(v_i) = \sum_{j=1}^{n} a_{ij} }[/math] Выявляет наиболее активных членов команды, с которыми взаимодействуют многие коллеги
Центральность по посредничеству (Betweenness Centrality) [math]\displaystyle{ C_B(v_i) = \sum_{s \neq i \neq t} \frac{\sigma_{st}(v_i)}{\sigma_{st}} }[/math] Определяет «связующих звеньев» — людей, которые соединяют разные части команды
Центральность по близости (Closeness Centrality) [math]\displaystyle{ C_C(v_i) = \frac{1}{\sum_{j=1}^{n} d(v_i, v_j)} }[/math] Показывает, насколько быстро участник может донести информацию до остальных
Плотность графа (Graph Density) [math]\displaystyle{ \rho = \frac{2e}{n(n-1)} }[/math] Характеризует уровень связности команды (от 0 до 1)

Групповые дискуссии и анализ участия

При анализе групповых дискуссий матрица смежности фиксирует:

  • Кто кому адресует высказывания (ориентированное ребро)
  • Интенсивность взаимодействия между участниками (вес ребра)
  • Паттерны коммуникации (кто инициирует диалоги, кто редко участвует)
  • Равномерность распределения участия в дискуссии

Практическое применение: Анализ в R с использованием igraph

Пример: Анализ взаимодействий в команде проекта

Рассмотрим команду из 6 человек, взаимодействующих во время групповой дискуссии. Ниже приведен пример кода на R для создания и визуализации сетевого графа на основе матрицы смежности.

# Загрузка библиотеки igraph
library(igraph)

# Определение матрицы смежности для команды
# Строки и столбцы: Иван, Эльза, Айжан, Николай, Аэлина, Анастасия
A <- matrix(c(
  0, 1, 1, 0, 1, 0,  # Иван взаимодействует с Эльзой, Айжан, Аэлиной
  1, 0, 1, 1, 0, 1,  # Эльза взаимодействует со многими
  1, 1, 0, 1, 1, 0,  # Айжан активна в коммуникации
  0, 1, 1, 0, 0, 1,  # Николай
  1, 0, 1, 0, 0, 1,  # Аэлина
  0, 1, 0, 1, 1, 0   # Анастасия
), nrow = 6, ncol = 6, byrow = TRUE)

# Создание графа из матрицы смежности
g <- graph_from_adjacency_matrix(A)

# Присвоение имен вершинам (членам команды)
V(g)$label = c("Иван", "Эльза", "Айжан", "Николай", "Аэлина", "Анастасия")

# Установка расположения вершин в виде круга
g$layout <- layout_in_circle

# Подготовка к визуализации: установка параметров окна
par(mar=c(0,0,0,0))

# Создание и вывод графика
plot(g, vertex.size=40, vertex.color="white", edge.color="black")


# Расчет метрик центральности
degree_centrality <- degree(g)
betweenness_centrality <- betweenness(g)
closeness_centrality <- closeness(g)

# Вывод результатов анализа
cat("Центральность по степени:\n")
print(degree_centrality)
cat("\nЦентральность по посредничеству:\n")
print(betweenness_centrality)
cat("\nЦентральность по близости:\n")
print(closeness_centrality)

# Вычисление плотности графа
density_value <- edge_density(g)
cat("\nПлотность графа (показатель связности):\n")
print(density_value)

Интерпретация результатов

Результаты анализа показывают:

  • Высокая степень центральности указывает на активное участие в групповой дискуссии и взаимодействие со многими коллегами
  • Высокая центральность по посредничеству у членов команды, которые связывают различные подгруппы
  • Плотность графа показывает, насколько команда сплочена в своих взаимодействиях

Выращивание графа в модели