  For quantum computers to successfully solve real-world problems, it is
necessary to tackle the challenge of noise: the errors which occur in
elementary physical components due to unwanted or imperfect interactions. The
theory of quantum fault tolerance can provide an answer in the long term, but
in the coming era of `NISQ' machines we must seek to mitigate errors rather
than completely remove them. This review surveys the diverse methods that have
been proposed for quantum error mitigation, assesses their in-principle
efficacy, and then describes the hardware demonstrations achieved to date. We
identify the commonalities and limitations among the methods, noting how
mitigation methods can be chosen according to the primary type of noise
present, including algorithmic errors. Open problems in the field are
identified and we discuss the prospects for realising mitigation-based devices
that can deliver quantum advantage with an impact on science and business.
