We study efficient implementations of the push-relabel method for the maximum flow problem. The resulting codes are faster than the previous codes, and much faster on some problem families. The speedup is due to the combination of heuristics used in our implementations: we show that the highest-level selection strategy gives better results when combined with both global and gap relabeling heuristics. We also exhibit a family of problems for which the running time of all implementations we consider is quadratic. 1. Introduction. The maximum flow problem is a classical combinatorial problem that arises in a wide variety of applications. In this paper we study implementations of the push-relabel [15], [18] method for the problem. The basic methods for the maximum flow problem include the network simplex method of Dantzig [7], [8], the augmenting path method of Ford and Fulkerson [13], the blocking flow method of Dinitz [11], and the push-relabel method of Goldberg and Tarjan [15], [18]. (An earlier algorithm of Cherkassky [5] has many features of the pushrelabel method.) The best theoretical time bounds for the maximum flow problem, based on the latter method, are as follows. An algorithm of Goldberg and Tarjan [18] runs in O(nm log(n 2 /m)) time, an algorithm of King et al. [22] runs in O(nm + n 2+ε ) time for any constant ε > 0, algorithms of Cheriyan et al. [3] run in O(n 3 /log n) time and O(nm + (n log n) 2 ) time with high probability, and an algorithm of Ahuja et al. [1] runs in O(nm log(n/(m √ U ) + 2)) time.Prior to the push-relabel method, several studies have shown that Dinitz's algorithm [11] is in practice superior to other methods, including the network simplex method [7], [8], Ford-Fulkerson algorithm [12], [13], Karzanov's algorithm [21], and Tarjan's algorithm [24]. See, e.g., [19]. Several recent studies (e.g., [2], [9], [10], and [23]) show that the push-relabel method is superior to Dinitz's method in practice.In this paper we study implementations of the push-relabel method. We evaluate several operation orderings and distance update heuristics. Unlike previous implementa-