我负责计算图中的最大吞吐量。
最简单的方法是将图描述为int[][]
。内部数组是图中的节点,而外部数组是连接图中每个节点的距离,例如:
new int[][] {
{0, 5, 0, 0}, // node 0 (the "source")
{0, 0, 4, 0}, // node 1
{0, 0, 0, 8}, // node 2
{0, 0, 0, 0} // node 3 (the "destination")
}
要从节点0
(源)到达节点3
(目标),“每轮的最大吞吐量”将为4,因为:
- 5个数据包可以从节点0发送到节点1
- 4个数据包可以从节点1发送到节点2
- 8个数据包可以从节点2发送到节点3
按照“每轮”的基础计算,瓶颈在节点1
和节点2
之间,这里的最大吞吐容量为4。
有人能指导我使用一种算法来解决此类问题,对于给定的以int[][]
方式定义的任何图形和给定的源
和目标
节点,都能计算出“最大吞吐量”吗?
示例图将扩展为具有多个“源”和“目标”的图,我需要在任何给定的“轮次”上计算整个系统的最大吞吐量。
我希望得到一些算法学习或“伪代码”的帮助。