La programación dinámica puede verse como una optimización de otros métodos algorítmicos (../Divide y vencerás/, ../Vuelta atrás/, ...) en los que una solución a un problema puede implicar la repetición continua de subproblemas.