我正在学习从邻接矩阵(如AM1)计算路径矩阵的方式。从邻接矩阵计算路径矩阵
图G的与n个顶点的路径矩阵是一个布尔N * N矩阵,其元素可以被定义为:
p[i][j]=1(if there is a path from i to j)
p[i][j]=0(otherwise)
我学到的步骤如下:
如果我们乘以一个邻接矩阵A [] []我们得到A^2(比如AM2),其每个顶点A [i] [j]基本上代表从i到j的路径长度2的路径数。类似地,如果我们将一个邻接矩阵乘以3次,即我们得到每个顶点A [i] [j]基本上代表从i到j的路径长度3的路径数的A^3(也就是AM3)。等等。
现在我们定义一个矩阵X这样的:
X = AM1 + AM2 + AM3 ... AMN(其中n是顶点的数目)
从这个X矩阵我们通过将所有非零顶点替换为1来计算路径/伸展能力矩阵。
我无法理解的是,如何将所有非零顶点替换为1会给我们提供路径矩阵。 为什么我们计算或添加所有的矩阵到AMn?
我知道X [i] [j]表示从i到j的路径长度为n或小于n的路径数,但为什么我们只计算直到n,不多或少?
请解释一下!