有没有办法在matlab中找到每对顶点之间的最大流量?
c = sparse([1 1 2 2 3 4 4 5 5 6 7 8 9 9],[2 3 3 4 5 6 7 6 7 8 9 10 8 10],[15 10 3 8 9 7 5 6 2 12 10 6 10 8],10,10)
a = [2 3 4 5 6 7 8 9 10]
b = arrayfun(@(x)max_flow(c,1,x),a)
OR
b = arrayfun(@(x)graphmaxflow(c,1,x),a)
b =
15 13 8 9 13 7 16 7 13
因此,我可以采用稀疏矩阵并获得从一个顶点到所有其他顶点的最大流量。有没有办法继续这个以获得所有对的最大流量?
我最终希望能够找到定向加权图的全对最大流量。 。
答案 0 :(得分:0)
让它发挥作用:
c = sparse([1 1 2 2 3 4 4 5 5 6 7 8 9 9],[2 3 3 4 5 6 7 6 7 8 9 10 8 10],[15 10 3 8 9 7 5 6 2 12 10 6 10 8],10,10)
for a=1:10
for b=1:10
if a==b
continue
end
t(b,a)=graphmaxflow(c,a,b);
p=t(:);
end
end
我无法找到使用arrayfun执行此操作的方法。
每个最大流量值:
t =
0 0 0 0 0 0 0 0 0 0
15 0 0 0 0 0 0 0 0 0
13 3 0 0 0 0 0 0 0 0
8 8 0 0 0 0 0 0 0 0
9 3 9 0 0 0 0 0 0 0
13 10 6 7 6 0 0 0 0 0
7 7 2 5 2 0 0 0 0 0
16 11 8 12 8 12 10 0 10 0
7 7 2 5 2 0 10 0 0 0
13 11 8 11 8 6 10 6 14 0
p =
0
15
13
8
9
13
7
...