Abstract
In this paper we give an introduction to the numerical density matrix renormalization group (DMRG) algorithm, from the perspective of the more general matrix product state (MPS) formulation. We cover in detail the differences between the original DMRG formulation and the MPS approach, demonstrating the additional flexibility that arises from constructing both the wavefunction and the Hamiltonian in MPS form. We also show how to make use of global symmetries, for both the Abelian and non-Abelian cases.