Este documento describe la técnica de programación dinámica y sus aplicaciones. Explica las características de los problemas de programación dinámica como dividirlos en etapas y estados. Usa el ejemplo del problema de la diligencia para ilustrar cómo la programación dinámica resuelve un problema dividiéndolo en subproblemas más pequeños de manera recursiva hasta alcanzar la solución óptima global. También cubre aplicaciones deterministas como el tamaño de la fuerza laboral y la reposición de equipo, así como aplicaciones probabilísticas como