In this paper we address the problem of minimizing a large class of energy functions that occur in early vision. The major restriction is that the energy function's smoothness term must only involve pairs of pixels. We propose two algorithms that use graph cuts to compute a local minimum even when very large moves are allowed. The first move we consider is an -swap: for a pair of labels , , this move exchanges the labels between an arbitrary set of pixels labeled and another arbitrary set labeled . Our first algorithm generates a labeling such that there is no swap move that decreases the energy. The second move we consider is an -expansion: for a label , this move assigns an arbitrary set of pixels the label . Our second algorithm, which requires the smoothness term to be a metric, generates a labeling such that there is no expansion move that decreases the energy. Moreover, this solution is within a known factor of the global minimum. We experimentally demonstrate the effective...