All paths of length L from node n using python

前端 未结 5 1428
伪装坚强ぢ
伪装坚强ぢ 2020-12-16 07:34

Given a graph G, a node n and a length L, I\'d like to collect all (non-cyclic) paths of length L that depart from n.

Do you have any idea on how to approach this?

5条回答
  •  孤城傲影
    2020-12-16 08:14

    A very simple way to approach (and solve entirely) this problem is to use the adjacency matrix A of the graph. The (i,j) th element of A^L is the number of paths between nodes i and j of length L. So if you sum these over all j keeping i fixed at n, you get all paths emanating from node n of length L.

    This will also unfortunately count the cyclic paths. These, happily, can be found from the element A^L(n,n), so just subtract that.

    So your final answer is: Σj{A^L(n,j)} - A^L(n,n).

    Word of caution: say you're looking for paths of length 5 from node 1: this calculation will also count the path with small cycles inside like 1-2-3-2-4, whose length is 5 or 4 depending on how you choose to see it, so be careful about that.

提交回复
热议问题