2. 3.1. Definición y conceptos.
3.2. Formulación de problemas.
3.3. Método hacia atrás para casos
discretos.
3.4. Método hacia atrás para casos
continuos.
3. DEFINICIÓN Y CONCEPTOS
La programación dinámica es un enfoque general para la solución de
problemas en los que es necesario tomar decisiones en etapas sucesivas.
Las decisiones tomadas en una etapa condicionan la evolución futura del
sistema, afectando a las situaciones en las que el sistema se encontrará en
el futuro (denominadas estados), y a las decisiones que se plantearán en
el futuro.
Conviene resaltar que a diferencia de la programación lineal, el modelado
de problemas de programación dinámica no sigue una forma estándar.
Así, para cada problema será necesario especificar cada uno de los
componentes que caracterizan un problema de programación dinámica.
El procedimiento general de resolución de estas situaciones se divide en el
análisis recursivo de cada una de las etapas del problema, en orden
inverso, es decir comenzando por la última y pasando en cada iteración a
la etapa antecesora. El análisis de la primera etapa finaliza con la
obtención del óptimo del problema.
4. DEFINICIÓN Y CONCEPTOS
En general, se pueden resolver problemas con subestructuras óptimas
siguiendo estos tres pasos:
• Dividir el problema en subproblemas más pequeños.
• Resolver estos problemas de manera óptima usando este proceso de
tres pasos recursivamente.
• Usar estas soluciones óptimas para construir una solución óptima al
problema original.
Los subproblemas se resuelven a su vez dividiéndolos en subproblemas
más pequeños hasta que se alcance el caso fácil, donde la solución al
problema es trivial, es decir, que un problema tiene subproblemas
superpuestos es decir que se usa un mismo subproblema para resolver
diferentes problemas mayores.
10. NATURALEZA RECURSIVA DE LOS CÁLCULOS EN
PROGRAMACIÓN DINÁMICA
Los cálculos de programación dinámica se hacen en forma recursiva, ya
que la solución óptima de un subproblema se usa como un dato en el
siguiente subproblema. Para cuando se resuelve el último subproblema
queda a la mano la solución óptima de todo el problema. La forma en la
que se hacen los cálculos recursivos dependen de cómo se descomponga el
problema original.
En particular, los subproblemas se vinculan normalmente mediante
restricciones comunes. Al pasar de un subproblema al siguiente se debe
mantener la factibilidad de esas restricciones comunes.
11. MÉTODO DE RELACIÓN RECURSIVA
Existen dos formas de plantear la fórmula de recursividad en los
problemas de programación dinámica.
RECURSIVIDAD DE RETROCESO (HACIA ATRÁS)
El problema se resuelve partiendo de la última etapa hacia la
primera.
RECURSIVIDAD DE AVANCE(HACIA ADELANTE)
El problema se resuelve partiendo de la primera etapa hacia la
última.
12. MÉTODOS HACIA ATRÁS PARA CASOS CONTINUOS
La programación dinámica resuelve problemas transformando un problema
en varios subproblemas utilizando la recursividad; así, se tiene que un
problema extenso, se descompone en pequeños problemas secuenciales
denominados “etapas” y las variables de cada etapa se discretizan en
“estados”.
En la solución a problemas continuos dinámicos se requiere definir, en
tiempo continuo, el concepto discreto del valor de una variable en el
“periodo anterior”. En el campo continuo, este concepto se asocia con el
valor de la variable en un instante, junto con su tasa de variación, es decir,
su derivada temporal. Así, el problema dinámico en tiempo continuo puede
escribirse:
donde 𝑥 𝑡 representa la derivada temporal de x(t). Esta es la representación
de un problema típico de cálculo de variaciones.
13. MÉTODOS HACIA ATRÁS
PARA CASOS DISCRETOS
La optimización dinámica estudia la evolución de sistemas en el
tiempo. Cuando se analiza un problema dinámico en
Administración es necesario elegir cuál es el campo de variación de
la variable tiempo. Si la elección corresponde a los enteros no
negativos el problema tendrá una presentación en tiempo discreto.
La optimización dinámica busca dar solución a ´problemas
dinámicos que precisan una planificación óptima a lo largo de un
intervalo temporal. No se pretende encontrar el óptimo en un
instante de tiempo dado, sino a través de la trayectoria de decisiones
óptimas.
14. En la recursión en avance, los cálculos se hacen de la etapa 1 a la n, en
la recursión en reversa, estos cálculos se realizan comenzando en la
etapa n a y terminando en la etapa 1.
Con las recursiones en avance y en reversa se obtiene la misma
solución. Aunque el procedimiento en avance parece más lógico, en las
publicaciones sobre programación dinámica se usa la recursión en
reversa de modo invariable. La razón de esta preferencia es que, en
general, la recursión en reversa es más eficiente desde el punto de vista
computacional.
MÉTODOS HACIA ATRÁS
PARA CASOS DISCRETOS