У меня есть n-раздельный (ненаправленный) граф, заданный в виде матрицы смежности, например, вот этот:
a b c d
a 0 1 1 0
b 0 0 0 1
c 0 0 0 1
d 0 0 0 0
Я хотел бы знать, существует ли набор матричных операций, которые я могу применить к этой матрице, что приведет к матрице, которая "перечисляет" все пути (длиной n, т.е. через все разбиения) в этом графе , Для приведенного выше примера существуют пути a-> b-> d и a-> c-> d. Следовательно, я хотел бы получить следующую матрицу в результате:
a b c d
1 1 0 1
1 0 1 1
Первый путь содержит узлы a, b, d, а второй - узлы a, c, d. При необходимости матрица результатов может иметь несколько строк со значением 0, как здесь:
a b c d
1 1 0 1
0 0 0 0
1 0 1 1
0 0 0 0
Спасибо!
P.S. Я рассмотрел алгоритмы для вычисления транзитивного замыкания, но они обычно только говорят, существует ли путь между двумя узлами, а не напрямую, какие узлы находятся на этом пути.