我需要生成不同维度的随机单源/单汇流网络,以便我可以衡量一些算法的性能,例如Ford-Fulkerson和Dinic。
Kruskal算法是否可以生成这样的图形?
答案 0 :(得分:1)
要创建通用流网络,您只需创建一个邻接矩阵。
adj [u] [v] =从节点u到节点v的容量
所以,你只需要随机创建这个矩阵。
例如,如果n是您想要的顶点数(您也可以随机生成):
for u in 0..n-1:
for v in 0..u-1:
if (rand() % 2 and u != sink and v != source or u == source):
adj[u][v] = rand()
adj[v][u] = 0
else:
adj[u][v] = 0
adj[v][u] = rand()