Все, что мне удалось найти, это какой-то псевдокод:
for all node n in reverse topological order do
if n is a leaf then
NumPaths(n) ← 1
else
NumPaths(n) ← 0
for all edge e of the form n → m do
Val(e) ← NumPaths(n)
NumPaths(n) ← NumPaths(n) + NumPaths(m)
end for
end if
end for