This document summarizes and compares various relay selection techniques for cooperative communication systems. It begins by introducing cooperative communication and describing the basic system model involving a source, destination, and multiple relays. It then reviews seven categories of relay selection methods: 1) threshold-based techniques, 2) multiple relay beamforming, 3) cross-layer techniques, 4) distributed techniques, 5) delay-optimized techniques, 6) joint relay selection and resource optimization techniques, and 7) techniques that perform joint uplink and downlink relay selection. Each category is described and examples of approaches within that category are provided. The techniques are compared in terms of their benefits, challenges, and ability to optimize parameters such as power, throughput, and delay.