The problem of determining which permutations can be sorted using certain
switchyard networks dates back to Knuth in 1968. In this work, we are
interested in permutations which are sortable on a double-ended queue (called a
deque), or on two parallel stacks. In 1982, Rosenstiehl and Tarjan presented an
O(n) algorithm for testing whether a given permutation was sortable on parallel
stacks. In the same paper, they also presented a modification giving O(n) test
for sortability on a deque. We demonstrate a slight error in the version of
their algorithm for testing deque sortability, and present a fix for this
problem.
The general enumeration problem for both of these classes of permutations
remains unsolved. What is known is that the growth rate of both classes is
approximately Theta(8^n), so computing the number of sortable permutations of
length n, even for small values of n, is difficult to do using any method that
must evaluate each sortable permutation individually. As far as we know, the
number of deque sortable permutations was known only up to n=14. This was
computed using algorithms which effectively generate all sortable permutations.
By using the symmetries inherent in the execution of Tarjan's algorithm, we
have developed a new dynamic programming algorithm which can count the number
of sortable permutations in both classes in O(n^5 2^n) time, allowing the
calculation of the number of deque and parallel stack sortable permutation for
much higher values of n than was previously possible.Comment: dartmouth senior honors thesis advised by Peter Doyle and Scot
Drysdale 45 pages, 9 figure