JOURNAL OF THE AMERICAN MATHEMATICAL SOCIETY Volume 14, Number 2, Pages 347–363 S 0894-0347(00)00356-8 Article electronically published on October 18, 2000 THE PRODUCT REPLACEMENT ALGORITHM AND KAZHDAN’S PROPERTY (T) ALEXANDER LUBOTZKY AND IGOR PAK Introduction A problem of great importance in computational group theory is to generate (nearly) uniformly distributed random elements in a finite group G. A good example of such an algorithm should start at any given set of generators, use no prior knowledge of the structure of G, and in a polynomial number of group operations return the desired random group elements (see [Bb2]). Then these random elements can be used further to determine the structure of G. In a pioneer paper [Bb1] Babai found such an algorithm which provably gen- erates (nearly) uniformly distributed random elements in O(log 5 |G|) group multi- plications, too many for practical applications. A different heuristic, the “product replacement algorithm”, was designed by Leedham-Green and Soicher [LG], and studied by Celler et al. in [CLMNO]. In spite of the fact that very little theoretical justification was known, practical experiments showed excellent performance. So, it quickly became the most popular “practical” algorithm to generate random group elements, and was included in the two most frequently used group algebra packages GAP ([Sc]) and MAGMA ([BCP]). A systematic and quantitative approach was carried out by Diaconis and Saloff- Coste [DS1], [DS2] (see also [Bb2], [CG]), but their results did not reveal the mystery of the truly outstanding performance of the algorithm. The aim of this paper is to propose a conceptual explanation based on Kazhdan’s property (T) from representation theory of Lie groups and to improve some of the previous estimates on the running time. The product replacement algorithm works as follows ([CLMNO]): Given a finite group G, let Γ k (G) be the set of k-tuples (g)=(g 1 ,...,g k ) of elements of G such that 〈g 1 ,...,g k 〉 = G. We call elements of Γ k (G) the generating k-tuples. Given a generating k-tuple (g 1 ,...,g k ), define a move on it in the following way: Choose uniformly a pair (i,j ), such that 1 ≤ i = j ≤ k, then apply one of the following four operations with equal probability: R ± i,j :(g 1 ,...,g i ,...,g k ) → (g 1 ,...,g i · g ±1 j ,...,g k ), L ± i,j :(g 1 ,...,g i ,...,g k ) → (g 1 ,...,g ±1 j · g i ,...,g k ). Received by the editors January 5, 2000 and, in revised form, August 23, 2000. 2000 Mathematics Subject Classification. Primary 60B15; Secondary 05C25, 22D10, 60J10. Key words and phrases. Random walks on groups, Kazhdan’s property (T), nilpotent groups. c 2000 American Mathematical Society 347 License or copyright restrictions may apply to redistribution; see http://www.ams.org/journal-terms-of-use