random generation of combinatorial structures from a uniform distribution .
introduction to automata theory , languages and computation .