La programación dinámica es una técnica de diseño algorítmico de carácter general con un amplísimo abanico de aplicaciones. A diferencia de otros esquemas algorítmicos en los que la capacidad analítica del problema y creatividad en la concepción de una solución pueden llegar a jugar un papel importante, la programación dinámica puede abordarse de manera muy sistemática mediante el empleo de una metodología de resolución muy bien delimitada, al menos al nivel básico tratado en cursos introductorios. En este volumen se muestran estas bases metodológicas de la resolución de un problema mediante programación dinámica y se ilustran paso a paso y con detalle a través de numerosos ejemplos. Se sigue un enfoque matemáticamente riguroso y se emplea un pseudocódigo genérico para la descripción de algoritmos, asumiéndose únicamente conocimientos básicos de programación y familiaridad con el empleo de notación matemática. Por ello, el destinatario del libro no es únicamente el estudiante de Informática, sino también el estudiante de Ciencias, Matemáticas, o Ingeniería interesado en algoritmia en general o en programación dinámica en particular.