Изоморфизм графов
Вершины графа можно нумеровать произвольным образом , и это не должно оказывать влияния на результат обработки графа . Графы, идентичные друг другу с точностью до перенумерации вершин, называются изоморфными .
Рассмотрим для простоты ненаправленный граф .
Ниже приведён пример исходного графа и его эквивалентной версии, используя следующую перенумерацию вершин:
1 → 2 ′ , 2 → 3 ′ , 3 → 1 ′ 1\to 2',\quad 2\to 3', \quad 3 \to 1' 1 → 2 ′ , 2 → 3 ′ , 3 → 1 ′
В общем случае для графа, состоящего из N N N вершин, существует N ( N − 1 ) ⋅ . . . ⋅ 1 = N ! N(N-1)\cdot...\cdot 1=N! N ( N − 1 ) ⋅ ... ⋅ 1 = N ! перенумераций его вершин.
Матрица перестановок
Перенумерацию вершин можно задать матрицей перестановок (permutation matrix) P ∈ R N × N P\in\mathbb{R}^{N\times N} P ∈ R N × N , формируемой по правилу:
p i j = { 1 , если i -й узел перенумеруется j -м узлом, 0 , иначе. p_{ij}=
\begin{cases}
1, & \text{если $i$-й узел перенумеруется $j$-м узлом,} \\
0, & \text{иначе.}
\end{cases} p ij = { 1 , 0 , если i - й узел перенумеруется j - м узлом , иначе .
Перестановочная м атрица для перенумерации выше будет:
P = ( 0 1 0 0 0 1 1 0 0 ) P=\left(\begin{array}{ccc}
0 & 1 & 0\\
0 & 0 & 1\\
1 & 0 & 0
\end{array}\right) P = 0 0 1 1 0 0 0 1 0
Заметим, что
P ⋅ P T = P T ⋅ P = I (единичная матрица) , P\cdot P^T=P^T\cdot P=I \quad \text{(единичная матрица)}, P ⋅ P T = P T ⋅ P = I ( единичная матрица ) ,
поскольку
{ P ⋅ P T } i j = ∑ k = 1 N p i k p j k = { 1 , i = j , 0 , i ≠ j . \{P\cdot P^T\}_{ij} = \sum_{k=1}^N p_{ik}p_{jk}=
\begin{cases}
1, & i=j,
\\
0, & i\ne j.
\end{cases} { P ⋅ P T } ij = k = 1 ∑ N p ik p jk = { 1 , 0 , i = j , i = j .
Следовательно P T P^T P T соответствует о братной перенумерации к P P P .
Преобразование матрицы данных
Рассмотрим, как при изоморфизме можно преобразовывать матрицу данных , содержащую по столбцам данные, ассоциированные с каждой вершиной графа.
Рассмотрим изоморфные графы:
Пусть в исходном графе узлам были сопоставлены данные:
v 1 → ( 1 2 3 4 ) , v 2 → ( 10 20 30 40 ) , v 3 → ( 100 200 300 400 ) v_{1}\to\left(\begin{array}{c}
1\\
2\\
3\\
4
\end{array}\right),\quad v_{2}\to\left(\begin{array}{c}
10\\
20\\
30\\
40
\end{array}\right),\quad v_{3}\to\left(\begin{array}{c}
100\\
200\\
300\\
400
\end{array}\right) v 1 → 1 2 3 4 , v 2 → 10 20 30 40 , v 3 → 100 200 300 400
а исходная матрица данных имела вид:
H = ( 1 10 100 2 20 200 3 30 300 4 40 400 ) . H=\left(\begin{array}{ccc}
1 & 10 & 100\\
2 & 20 & 200\\
3 & 30 & 300\\
4 & 40 & 400
\end{array}\right). H = 1 2 3 4 10 20 30 40 100 200 300 400 .
После перенумерации соответствующую матрицу данных X ′ X' X ′ можно получить по правилу:
H ′ = H ⋅ P = ( 1 10 100 2 20 200 3 30 300 4 40 400 ) ⋅ ( 0 1 0 0 0 1 1 0 0 ) = ( 100 1 10 200 2 20 300 3 30 400 4 40 ) H' = H\cdot P=\left(\begin{array}{ccc}
1 & 10 & 100\\
2 & 20 & 200\\
3 & 30 & 300\\
4 & 40 & 400
\end{array}\right)\cdot\left(\begin{array}{ccc}
0 & 1 & 0\\
0 & 0 & 1\\
1 & 0 & 0
\end{array}\right)=\left(\begin{array}{ccc}
100 & 1 & 10\\
200 & 2 & 20\\
300 & 3 & 30\\
400 & 4 & 40
\end{array}\right) H ′ = H ⋅ P = 1 2 3 4 10 20 30 40 100 200 300 400 ⋅ 0 0 1 1 0 0 0 1 0 = 100 200 300 400 1 2 3 4 10 20 30 40
Преобразование матрицы смежности
Рассмотрим, как преобразуется матрица смежности для следующих изоморфных графов:
Матрица смежности исходного графа была:
A = ( 0 1 0 1 0 1 0 1 0 ) A=\left(\begin{array}{ccc}
0 & 1 & 0\\
1 & 0 & 1\\
0 & 1 & 0
\end{array}\right) A = 0 1 0 1 0 1 0 1 0
После перенумерации узлов соответствующую матрицу смежности можно получить по правилу:
A ′ = P T ⋅ A ⋅ P = ( 0 0 1 1 0 0 0 1 0 ) ⋅ ( 0 1 0 1 0 1 0 1 0 ) ⋅ ( 0 1 0 0 0 1 1 0 0 ) = ( 0 0 1 0 0 1 1 1 0 ) , \begin{aligned}
A'=&P^T\cdot A\cdot P
\\=&
\left(\begin{array}{ccc}
0 & 0 & 1\\
1 & 0 & 0\\
0 & 1 & 0
\end{array}\right)\cdot\left(\begin{array}{ccc}
0 & 1 & 0\\
1 & 0 & 1\\
0 & 1 & 0
\end{array}\right)\cdot\left(\begin{array}{ccc}
0 & 1 & 0\\
0 & 0 & 1\\
1 & 0 & 0
\end{array}\right)
\\
=&\left(\begin{array}{ccc}
0 & 0 & 1\\
0 & 0 & 1\\
1 & 1 & 0
\end{array}\right),
\end{aligned} A ′ = = = P T ⋅ A ⋅ P 0 1 0 0 0 1 1 0 0 ⋅ 0 1 0 1 0 1 0 1 0 ⋅ 0 0 1 1 0 0 0 1 0 0 0 1 0 0 1 1 1 0 ,
откуда видно, что первая и вторая вершины должны быть соединены с третьей.
Применённое правило следует из того, что для получения исходной матрицы смежности A A A по преобразованной A ′ A' A ′ нужно:
перейти от исходной к преобразованной нумерации;
найти связи в преобразованной нумерации;
отобразить эти связи в терминах исходной нумерации.
Обратное преобразование будет иметь следующий вид:
A = P A ′ P T A=P A' P^T A = P A ′ P T
Преобразование матрицы степеней
Рассмотрим, как преобразуется матрица степеней для следующих изоморфных графов:
Матрица степеней исходного графа была:
D = ( 1 0 0 0 2 0 0 0 1 ) D=\left(\begin{array}{ccc}
1 & 0 & 0\\
0 & 2 & 0\\
0 & 0 & 1
\end{array}\right) D = 1 0 0 0 2 0 0 0 1
Матрицу степеней после перенумерации можно получить по правилу
D ′ = P T ⋅ D ⋅ P = ( 0 0 1 1 0 0 0 1 0 ) ⋅ ( 1 0 0 0 2 0 0 0 1 ) ⋅ ( 0 1 0 0 0 1 1 0 0 ) = ( 1 0 0 0 1 0 0 0 2 ) \begin{aligned}
D'=&P^T\cdot D\cdot P
\\=&
\left(\begin{array}{ccc}
0 & 0 & 1\\
1 & 0 & 0\\
0 & 1 & 0
\end{array}\right)\cdot\left(\begin{array}{ccc}
1 & 0 & 0\\
0 & 2 & 0\\
0 & 0 & 1
\end{array}\right)\cdot\left(\begin{array}{ccc}
0 & 1 & 0\\
0 & 0 & 1\\
1 & 0 & 0
\end{array}\right)
\\
=&\left(\begin{array}{ccc}
1 & 0 & 0\\
0 & 1 & 0\\
0 & 0 & 2
\end{array}\right)
\end{aligned} D ′ = = = P T ⋅ D ⋅ P 0 1 0 0 0 1 1 0 0 ⋅ 1 0 0 0 2 0 0 0 1 ⋅ 0 0 1 1 0 0 0 1 0 1 0 0 0 1 0 0 0 2
Аналогичное правило действует и для обратной матрицы D − 1 D^{-1} D − 1 .
Литература
Граф (wikipedia).
Prince S. J. D. Understanding deep learning. – MIT press, 2023.