Random Permutations
Jacques Carette
carette@mcmaster.ca
Fri, 7 Mar 2003 09:31:16 -0500
Pertinent to this thread (though perhaps overkill) is the work of Flajolet
et al on (fast) random generation of combinatorial structures for any
structure given as a context-free grammar, including Permutation.
In particular see
http://citeseer.nj.nec.com/flajolet93calculus.html
http://citeseer.nj.nec.com/flajolet95computer.html
There is a complete implementation of this in Maple as well as a partial
port to MuPAD. The Maple version is available at
http://pauillac.inria.fr/algo/libraries/libraries.html. Also worth a look
is the set of fully documented example applications (available in various
formats) at
http://pauillac.inria.fr/algo/libraries/autocomb/autocomb.html
A translation of the random generation parts of this work to Haskell would
not be too difficult, and might in fact be easier than the original,
although a full translation would require Template Haskell. Translating the
automatic generation of the 'counting' functions would be very challenging
[as no one has, as far as I know, yet to create a workable, truly
statically-typed computer algebra system!]
Jacques