In this section we prove that the multi-Benes network is a strict-sense nonblocking connector. As a consequence, a simple algorithm like breadth-first search can be used to establish a single path from any unused input to any unused output in bit steps, where N is the number of rows. Algorithms that handle simultaneous requests for connections and multiparty calls are deferred to Sections 4 and 5.
In order for the algorithm to succeed, the multi-Benes network must be ``lightly loaded'' by some fixed constant factor L, where we will choose L to be a power of 2. Thus, in an N-row multi-Benes network, we only make connections between the inputs and outputs in rows that are multiples of L. Since the other inputs and outputs are not used, the first and last levels of the network can be removed, and the inputs and outputs can each be connected directly to their L descendants and ancestors on levels and , respectively.
The basic idea is to treat the nodes through which paths have already been established as if they were faulty and to apply the fault propagation techniques from [17] to the network. In particular, we define a node to be busy if there is a path currently routing through it. We recursively define a node in the second half of the network to be blocked if all of its up outputs or all of its down outputs are busy or blocked. More precisely, nodes are declared to be blocked according to the following rule. Working backwards from level to level 0, a node is declared blocked if either all d of its up edges or all d of its down edges lead to busy or blocked nodes. From level -1 to level , a node is declared blocked if all 2d of its outgoing edges lead to busy or blocked nodes. A node that is neither busy nor blocked is said to be working.
The following pair of lemmas bound the fraction of input nodes that are blocked in every splitter and merger.
After the fault propagation process, every working node in the first half of the network has an output that leads to a working node, and every working node in the second half has both an up output and a down output that lead to working nodes. Furthermore, since at most a fraction of the nodes in each merger on level are blocked, and for and , each of the inputs has an edge to a working node on level . As a consequence, we can establish a path through working nodes from any unused input to any unused output in bit steps using a simple greedy algorithm. Since the declaration of blocked nodes takes just bit steps, and since the greedy routing algorithm is easily accomplished in bit steps, the entire process takes just bit steps.
The preceding algorithm for establishing paths one after another in the multi-Benes network implies that it is a wide-sense nonblocking connector. The proofs of Lemmas 3.1 and Lemmas 3.2, however, do not make any assumptions about the strategy used to make previous connections between inputs and outputs. Indeed, the only requirement is that there are at most paths through each M-input splitter or M-output merger, which holds for any path selection strategy. Therefore, no matter how the paths for the previous connections were found, there is still at least one working node in each block at level , and as a consequence, at least one path between any unused input and unused output. Thus the multi-Benes network is also a strict-sense nonblocking connector. As such, it is not really necessary to label the nodes as blocked or working; a simple on-line algorithm like breadth-first search is guaranteed to find a path. When simultaneous requests are dealt with in Section 4.4, however, a proper labeling will be important.