已知一个交换网络的网络参数为c(3,3,2)判断其是否为我阻塞网络,并说明原因

已知一个交换网络的网络参数为c(3,3,2)判断其是否为我阻塞网络,并说明原因

根据题意,c(3,3,2)表示一个3层的交换网络,第1层有3个输入端口,第3层有3个输出端口,每一个输入端口会与第2层的2个交换器连接,每一个输出端口也会与第2层的2个交换器连接。

如果该交换网络是阻塞网络,那么就意味着无论怎么样的输入都可以导致输出端口无法全部连接,从而导致数据被阻塞无法流通。

根据布尔著名定理,要判断一个交换网络是否阻塞,只需要判断交换网络的交换矩阵是否存在全零行。交换矩阵是一个含有0和1的m*n矩阵,其中m为所有输入端口数目,n为所有输出端口数目。在本例中,交换矩阵的大小为(9,9),可以通过下面的代码生成:

c = [3,3,2];
m = prod(c);
n = prod(c);
H = zeros(m,n);
for i = 1:c(1)
    for j = 1:c(3)
        H((i-1)*c(2)+(1:c(2)), (j-1)*c(2)+(1:c(2))) = eye(c(2));
    end
end

然后可以利用matlab内置的rank函数判断交换矩阵的秩。如果交换矩阵的秩小于输入输出端口数目的较小值,则说明该网络为阻塞网络。
对于本例,输入端口数目为9,输出端口数目也为9。因此,如果交换矩阵的秩小于9,则说明该网络为阻塞网络。在matlab中,可以使用如下代码计算交换矩阵H的秩:


r = rank(H)

运行上述代码可以发现r=9,也就是说交换矩阵的秩等于输入输出端口的数目,因此该交换网络不是阻塞网络。也可以直接观察交换矩阵的形式,可以发现该交换矩阵不存在全零行,因此该交换网络不是阻塞网络。