Este documento presenta los conceptos fundamentales de la programación dinámica. Explica que la programación dinámica divide un problema en subproblemas más pequeños y usa las soluciones óptimas de los subproblemas para encontrar la solución óptima del problema original. También define elementos clave como etapas, estados, política y subpolítica, y describe cómo la programación dinámica resuelve problemas de manera recursiva considerando cada etapa de manera secuencial.