Decomposition of Permutation Networks

The problem of decomposing an arbitrary permutation of a large number of elements into a number of permutations of smaller numbers of elements has become important recently in rearrangeable switching networks and in interconnectors for computer peripheral and processing units. Opferman and Tsao-Wu have published an algorithm for decomposing an arbitrary permutation of n = d × q elements into d permutations of q elements each and (2q - 1) permutations of d elements each. The following is a modified version of their algorithm, wherein a matrix, called the allocator matrix, each of whose elements is a set of integers, is used for obtaining the d permutations of q elements each; and a simpler way of obtaining the (2q - 1) permutations of d elements each is given. The modified algorithm is similar to the backtrack procedure in combinatorics and leads directly to an APL program for any divisor d of n.