Está en la página 1de 7

Programación Dinámica

Concepto
La programación dinámica es una técnica matemática que se utiliza para la solución de
problemas matemáticos seleccionados, en los cuales se toma una serie de decisiones en forma
secuencial.
Proporciona un procedimiento sistemático para encontrar la combinación de decisiones que
maximice la efectividad total, al descomponer el problema en etapas, las que pueden ser
completadas por una o más formas (estados), y enlazando cada etapa a través de cálculos
recursivos.
Definiciones
Etapa: es la parte del problema que posee un conjunto de alternativas mutuamente
excluyentes, de las cuales se seleccionará la mejor alternativa.
Estado: es el que refleja la condición o estado de las restricciones que enlazan las etapas.
Representa la “liga” entre etapas de tal manera que cuando cada etapa se optimiza por
separado la decisión resultante es automáticamente factible para el problema completo.
Decisión: transición del estado actual a otro n estado de la etapa siguiente.
Características de las aplicaciones de programación dinámica

 El problema se puede dividir en etapas; cada etapa requiere una decisión. En muchos
problemas de programación dinámica, la etapa es la cantidad de tiempo que pasa desde el
inicio del problema, en ciertos casos no se necesitan decisiones en cada etapa.
 Cada etapa tiene un número de estados asociados con ella. Por estado se entiende la
información que se necesita en cualquier etapa para tomar una decisión óptima.
 La decisión tomada en cualquier etapa indica cómo se transforma el estado en la etapa
actual en el estado en la siguiente etapa. En muchos problemas, una decisión no determina
con certeza el estado de la siguiente etapa; en lugar de ello, la decisión actual sólo
determina la distribución de probabilidad del estado en la etapa siguiente.
 Dado el estado actual, la decisión óptima para cada una de las etapas restantes no debe
depender de estados previamente alcanzados o de decisiones previamente tomadas. A esta
idea se le conoce como principio de optimalidad.
 Si los estados del problema se han clasificado en uno de N etapas, debe haber una fórmula
recursiva que relacione el costo o beneficio durante las etapas n, n+1….N con el costo o
beneficio de las etapas n+1, n+2…N. En esencia, la fórmula recursiva formaliza el
procedimiento de marcha atrás.
Importancia
Este algoritmo evita calcular dos veces la misma información, manteniendo una tabla de
resultados conocidos, la cual se va llenando a medida que se resuelven los sub-casos. La
programación dinámica se aplica no solo por razones de eficiencia, sino porque permite
resolver de manera eficiente problemas que no se pueden resolver por otras metodologías.
Formulación y solución de problemas
La programación dinámica no cuenta con una formulación matemática estándar, sino que se trata de un
enfoque de tipo general para la solución de problemas, y las ecuaciones específicas que se usan se
deben desarrollar para que representen cada situación individual. Comúnmente resuelve el problema
por etapas, en donde cada etapa interviene exactamente una variable de optimización (u optimizadora).

La teoría unificadora fundamental de la programación dinámica es el Principio de Optimalidad, que nos


indica básicamente como se puede resolver un problema adecuadamente descompuesto en etapas
utilizando cálculos recursivos. “Una política óptima tiene la propiedad de que, independientemente de
las decisiones tomadas para llegar a un estado particular, en una etapa particular, las decisiones
restantes deben constituir una política óptima para abandonar ese estado”.

El algoritmo de programación dinámica está compuesto por los siguientes pasos:


1. Planteamiento de la solución como una sucesión de decisiones y verificación de que esta
cumple con el principio de óptimo.
2. Definición recursiva
3. Cálculo del valor de la solución óptima mediante una tabla en donde se almacenan
soluciones a problemas parciales para reutilizar los cálculos.
4. Construcción de la solución óptima haciendo uso de la información contenida en la tabla
anterior.

Procesos de Decisión de “n” etapas

Un proceso de decisión de
“n” etapas es el que puede descomponerse en cierto número de pasos. Cualquiera sea la forma
de completar una etapa, se llama decisión y la secuencia de decisiones a lo largo de las etapas,
se denomina política. En la resolución de un problema se busca la “política óptima” que
optimice el problema.
La condición del proceso en una etapa. Se denomina “estado” en esa etapa y cada decisión
produce un cambio de estado o transición del estado actual a un estado asociado con la
siguiente etapa. Es decir, que en cada decisión se pasa de un estado actual a un estado
asociado con la próxima etapa.

También podría gustarte