Programación dinámica: No es lo que piensas

2025-07-21

El término "programación dinámica" en los estudios de algoritmos a menudo causa confusión. 'Dinámica' no se refiere a su mutabilidad, sino al aspecto de planificación de 'programación', originario de la década de 1950, cuando los ingenieros planificaban proyectos de construcción como 'programación de procesos'. En la ciencia de la computación, la programación dinámica significa planificar el orden de los subpasos necesarios para resolver un problema. Por ejemplo, al calcular la secuencia de Fibonacci, el 'programa' es la secuencia de pasos para calcular fib(2) a fib(10) en orden de dependencia. Esto se puede planificar de arriba hacia abajo o de abajo hacia arriba; el plan final es el mismo, y ambos se consideran programación dinámica. Richard Bellman acuñó el término para evitar la aversión de un Secretario de Defensa a la 'investigación matemática', eligiendo hábilmente 'programación dinámica' porque el adjetivo 'dinámica' no puede usarse peyorativamente.

Desarrollo