  Decoherence is the phenomenon of non-unitary dynamics that arises as a
consequence of coupling between a system and its environment. It has important
harmful implications for quantum information processing, and various solutions
to the problem have been proposed. Here we provide a detailed a review of the
theory of decoherence-free subspaces and subsystems, focusing on their
usefulness for preservation of quantum information.
