Post on 17-Jan-2016
description
PRESENTACIÓN:
El presente informe fue elaborado con la finalidad de ampliar nuestros
conocimientos sobre la Programación Dinámica y en especial sobre la
Programación Dinámica Probabilística, el último viene adjuntado con un
ejercicio simple y sencillo de entender y resolver.
Universidad Andina del Cusco Programación Dinámica Probabilística
INTRODUCCIÓN:
La Programación Dinámica es un método de optimización de extraordinaria
versatilidad. Si bien fue desarrollada especialmente para la resolución de
problemas en Procesos de Decisión en Múltiples Pasos, diferentes
investigaciones han mostrado que las mismas ideas pueden utilizarse en otro
tipo de problemas de matemática aplicada, e incluso pueden ser útiles en el
planteo de algunas cuestiones teóricas. Habiendo surgido en los inicios de la
época de las computadoras, la Programación Dinámica fue, además,
concebida con un ojo puesto en esta potente herramienta.
La Ecuación Funcional que se obtiene, para cada problema, a través del uso
del Principio de Optimalidad de Bellman permite, con mayor o menor esfuerzo
dependiendo del caso, establecer una recurrencia que es, en sí misma, un
algoritmo que resuelve el problema en cuestión.
El objetivo de esta monografía es brindar un panorama relativamente amplio de
las aplicaciones de la Programación Dinámica, de manera que resulte
accesible para cualquier estudiante de Licenciatura, incluso para aquellos que
no estén familiarizados con las áreas específicas de dichas aplicaciones.
Persiguiendo este fin, procuramos, en la medida en que el espacio lo permitió,
exponer todos los pasos de cada razonamiento y los elementos teóricos
básicos para su comprensión.
Por ello, primero se desarrollarán conceptos básicos, características y
elementos que posee la programación dinámica. En la segunda parte se detalla
todo sobre la programación dinámica probabilística, en conjunto con un
ejemplo.
2
Universidad Andina del Cusco Programación Dinámica Probabilística
ÍNDICE:
PRESENTACIÓN:.....................................................................................................................2
INTRODUCCIÓN:.....................................................................................................................3
1. PROGRAMACIÓN DINÁMICA:......................................................................................5
1.1. CONCEPTO:..............................................................................................................5
1.2. DISEÑO DEL ALGORITMO DE PROGRAMACIÓN DINÁMICA:......................5
1.3. CONDICIONES QUE HA DE CUMPLIR:...............................................................6
1.4. CONTRASTE CON LA PROGRAMACIÓN LINEAL:..........................................6
2. PRINCIPIO DE OPTIMALIDAD:.....................................................................................6
3. CARACTERÍSTICAS:......................................................................................................7
3.1. ETAPAS:....................................................................................................................7
3.2. ESTADOS ASOCIADOS:........................................................................................7
3.3. POLÍTICA DE DECISIÓN:.......................................................................................7
3.4. PRINCIPIO DE LA OPTIMALIDAD:.......................................................................7
3.5. INICIO DE LA SOLUCIÓN:.....................................................................................8
3.6. RELACIÓN RECURSIVA:.......................................................................................8
3.7. RETROCESO:...........................................................................................................8
4. ENFOQUES:......................................................................................................................8
5. TIPOS DE PROGRAMACIÓN DINÁMICA:...................................................................8
6. PROGRAMACIÓN DINÁMICA PROBABILÍSTICA:....................................................8
6.1. CONCEPTO:..............................................................................................................8
6.2. ESTRUCTURA BÁSICA DEL PDP:.......................................................................9
6.3. CARACTERÍSTICAS DE PROBLEMAS PDP:...................................................10
6.4. EJEMPLOS:.............................................................................................................10
EJEMPLO 1:....................................................................................................................11
EJEMPLO 2:....................................................................................................................15
7. CONCLUSIONES:..........................................................................................................17
8. BIBLIOGRAFIA:..............................................................................................................17
3
Universidad Andina del Cusco Programación Dinámica Probabilística
PROGRAMACIÓN DINÁMICA PROBABILÍSTICA
1. PROGRAMACIÓN DINÁMICA:
1.1.CONCEPTO:
Técnica de programación matemática que proporciona un
procedimiento sistémico para determinar la combinación óptima de una
serie de decisiones interrelacionadas.
La programación dinámica determina la solución óptima de un problema
de n variables descomponiéndola en n etapas, con cada incluyendo un
subproblema de una sola variable. La principal contribución de la PD es
el principio de optimalidad, el cual establece que una política óptima
consiste de subpolíticas óptimas, un marco de referencia para
descomponer el problema en etapas.
Se utilizan en situaciones que se necesitan tomar una serie de
decisiones consecutivas. En el área de inventarios hay algunas
situaciones en donde la política de producción que optimiza el costo de
inventario en un mes dado, entonces minimiza el costo de inventario
para todo el año.
La programación dinámica no sólo tiene sentido aplicarla por razones
de eficiencia, sino porque además presenta un método capaz de
resolver de manera eficiente problemas cuya solución ha sido abordada
por otras técnicas y ha fracasado.
La solución de problemas mediante esta técnica se basa en el llamado
principio de óptimo enunciado por Bellman en 1957 y que afirma: “Es
una secuencia de decisiones óptima subsecuencia ha de ser también
óptima”. Sin embargo, este principio no siempre es aplicable y por tanto
es necesario verificar que se cumple para el problema en cuestión.
1.2.DISEÑO DEL ALGORITMO DE PROGRAMACIÓN DINÁMICA:
Planteamiento de la solución con una sucesión de decisiones.
4
Universidad Andina del Cusco Programación Dinámica Probabilística
Definición recursiva de la solución.
Cálculo del valor de la solución óptima mediante una tabla en
donde se almacenan soluciones a problemas.
Construcción de la solución óptima haciendo uso de la
información contenida.
1.3.CONDICIONES QUE HA DE CUMPLIR:
La solución ha de ser alcanzada a través de una secuencia de
decisiones, una en cada etapa.
Dicha secuencia de decisiones ha de cumplir el principio
1.4.CONTRASTE CON LA PROGRAMACIÓN LINEAL:
No se cuenta con una formulación concreta matemática estándar para
el problema a resolver. Se trata de un enfoque de tipo general para la
solución de problemas y las ecuaciones específicas que se usan deben
desarrollar para que representen cada situación individual.
2. PRINCIPIO DE OPTIMALIDAD:
Cuando hablamos de optimizar nos referimos a buscar alguna de las
mejores soluciones de entre muchas alternativas posibles.
Dicho proceso de optimización puede ser visto como una secuencia de
decisiones que nos proporcionan la solución correcta.
Si, dada una subsecuencia de decisiones, siempre se conoce cuál es la
decisión que debe tomarse a continuación para obtener la secuencia
óptima, el problema es elemental y se resuelve trivialmente tomando una
decisión detrás de otra, lo que se conoce como estrategia voraz.
En otros casos, aunque no sea posible aplicar la estrategia voraz, se
cumple el principio de optimalidad de Bellman que dicta que «dada una
5
Universidad Andina del Cusco Programación Dinámica Probabilística
secuencia óptima de decisiones, toda subsecuencia de ella es, a su vez,
óptima».
En este caso sigue siendo posible el ir tomando decisiones elementales, en
la confianza de que la combinación de ellas seguirá siendo óptima, pero
será entonces necesario explorar muchas secuencias de decisiones para
dar con la correcta, siendo aquí donde interviene la programación dinámica.
Contemplar un problema como una secuencia de decisiones equivale a
dividirlo en problemas más pequeños y por lo tanto más fáciles de resolver
como hacemos en Divide y Vencerás, técnica similar a la de programación
dinámica.
La programación dinámica se aplica cuando la subdivisión de un problema
conduce a:
Una enorme cantidad de problemas.
Problemas cuyas soluciones parciales se solapan.
Grupos de problemas de muy distinta complejidad.
3. CARACTERÍSTICAS:
3.1.ETAPAS:
El problema se puede dividir en etapas que requieren una política de
decisión en cada una de ellas.
3.2.ESTADOS ASOCIADOS:
Cada etapa tiene cierto número de estados asociados con su inicio.
3.3.POLÍTICA DE DECISIÓN:
El efecto de la política de decisión en cada etapa es transformar el
estado actual en un estado asociado con el inicio de la siguiente etapa.
3.4.PRINCIPIO DE LA OPTIMALIDAD:
6
Universidad Andina del Cusco Programación Dinámica Probabilística
Dado el estado actual, la política óptima para las etapas restantes es
independiente de la política adoptada en etapas anteriores. La decisión
inmediata óptima depende sólo del estado actual.
3.5. INICIO DE LA SOLUCIÓN:
Se inicia al encontrar una política óptima para la última etapa.
3.6.RELACIÓN RECURSIVA:
Identifica la política óptima para la etapa n, dada cada política óptima
para la etapa n+1.
3.7.RETROCESO:
Cuando se use esta relación recursiva, el procedimiento de solución
comienza la final y se mueve hacia atrás etapa por etapa, encontrando
cada vez la política óptima para esa etapa hasta que se encuentre la
política óptima para la etapa inicial.
4. ENFOQUES:
Top-down: El problema se divide en subproblemas, y estos se
resuelven recordando las soluciones por si fueran necesarias
nuevamente. Es una combinación de memorización y recursión.
Bottom-up: Todos los problemas que puedan ser necesarios se
resuelven de antemano y después se usan para resolver las
soluciones a problemas mayores. Este enfoque es ligeramente mejor
en consumo de espacio y llamadas a funciones, pero a veces resulta
poco intuitivo encontrar todos los subproblemas necesarios para
resolver un problema dado.
5. TIPOS DE PROGRAMACIÓN DINÁMICA:
Programación dinámica determinística
Programación dinámica probabilística
7
Universidad Andina del Cusco Programación Dinámica Probabilística
6. PROGRAMACIÓN DINÁMICA PROBABILÍSTICA:
6.1.CONCEPTO:
La programación dinámica probabilística (PDP) es una técnica
matemática útil para la toma de decisiones interrelacionadas, se
presenta cuando el estado en la siguiente etapa no está determinado
por completo por el estado y la política de decisión de la etapa actual.
En su lugar existe una distribución de probabilidad para determinar cuál
será el siguiente estado. Sin embargo, esta distribución de probabilidad
sí queda bien determinada por el estado y la política de decisión en la
etapa actual.
Por otro lado, cabe resaltar, qué; cuando el estado en la siguiente etapa
está determinado por completo por el estado y la política de decisión de
la etapa actual, entonces este problema corresponde a programación
dinámica determinística (PDD).
6.2.ESTRUCTURA BÁSICA DEL PDP:
8
Universidad Andina del Cusco Programación Dinámica Probabilística
6.3.CARACTERÍSTICAS DE PROBLEMAS PDP:
El problema se puede dividir en etapas que requieran una
política de decisión en cada una de ellas.
Cada etapa tiene cierto número de estados asociados con su
inicio.
El efecto de la política de decisión en cada etapa es transformar
el estado actual en un estado asociado con el inicio de la
siguiente etapa (Quizá según con una distribución de
probabilidad).
El procedimiento de solución está diseñado para encontrar una
política óptima para el problema completo, es decir, una receta
para la política de decisión óptima en cada etapa para cada uno
de los estados posibles.
Dado el estado actual, una política óptima para las etapas
restantes es independiente de la política adoptada en etapas
anteriores. Por lo tanto, la decisión inmediata óptima depende
solo del estado actual y no de cómo se llegó ahí. Éste es el
principio de optimalidad para programación dinámica (Sea PDD
óPDP).
El procedimiento de solución se inicia al encontrar la política
óptima para la última etapa
Se dispone de una relación recursiva que identifica la política
óptima para la etapa n, dada la política óptima para la etapa n+ 1
Cuando se usa esta relación recursiva, el procedimiento de
solución comienza al final y se mueve hacia atrás, etapa por
etapa (Encuentra cada vez la política óptima para esa etapa)
hasta que encuentra la política óptima desde la etapa inicial.
Esta política óptima lleva de inmediato a una solución óptima
para el problema completo, a saber, n para el estado inicial
después para el estado que resulta, luego para el estado que se
obtiene, y así sucesivamente hasta para el estado resultante.
6.4.EJEMPLOS:
9
Universidad Andina del Cusco Programación Dinámica Probabilística
(Ejercicio propuesto 11.4-2 del libro Investigación de operaciones - Hiller,Frederick S.
Lieberman, Gerald J. )
EJEMPLO 1:
Imagine que tiene $ 5.000 para invertir y que tendrá la oportunidad de
hacerlo en cualquiera de dos inversiones (A ó B) al principio de cada uno
de los próximos años.
Existe incertidumbre respecto al rendimiento de ambas inversiones. Si
se invierte en A, se puede perder todo el dinero o (con probabilidad más
alta) obtener$ 10.000 (una ganancia de $ 5.000) al final del año.
Si se invierte en B, se pueden obtener los mismos $ 5.000 ó (con
probabilidad más baja) $ 10.000 al terminar el año.
Las probabilidades para estos eventos son las siguientes:
Se le permite hacer (a lo sumo) una inversión al año y sólo puede
invertir $ 5000cada vez. (Cualquier cantidad de dinero acumulada
queda inútil)
a) Utilice programación dinámica para encontrar la política de inversión
que maximice la cantidad de dinero esperada que tendrá después de
los tres años.
b) Utilice programación dinámica para encontrar la política de inversión
que maximice la probabilidad de tener por lo menos $ 10000 después
de los tres años.
10
Universidad Andina del Cusco Programación Dinámica Probabilística
11
Universidad Andina del Cusco Programación Dinámica Probabilística
Por tanto la política óptima es invertir siempre en A, con una fortuna de
espera después de tres años de $ 9800.
12
Universidad Andina del Cusco Programación Dinámica Probabilística
13
Universidad Andina del Cusco Programación Dinámica Probabilística
Por lo tanto las políticas óptimas son (Con los números en los arcos
para representar el retorno de la inversión).
Y la máxima probabilidad de tener al menos $ 10000 al final de tres
años es 0.757.
14
Universidad Andina del Cusco Programación Dinámica Probabilística
EJEMPLO 2:
Una estudiante universitaria cuenta con 7 días para preparar los exámenes finales de 4 cursos y quiere asignar su tiempo de estudio de la manera más eficiente posible. Necesita por lo menos un día para cada curso y quiere concentrarse solo en un curso cada día por lo que quiere asignar 1, 2, 3 ó 4 días a cada curso. Como hace tiempo tomo un curso de Investigación de Operaciones, decide aplicar programación dinámica para hacer estas asignaciones que maximicen el total de puntos obtenidos en los 4 cursos. Estima que las distintas opciones en días de estudio le redituaran puntos de calificación según la siguiente tabla:
Número de días
Puntos de calificación estimados
Curso
1 2 3 4
0 0 0 0 0
1 3 5 2 6
2 5 5 4 7
3 6 6 7 9
4 7 9 8 9
Resuelva este problema con Programación Dinámica.
Etapa 4
S4 F4(S) X4
1 6 1
2 7 2
3 9 3
4 9 4
Etapa 3
S3/x3 1 2 3 4 F3(S3) X3
1
15
Universidad Andina del Cusco Programación Dinámica Probabilística
2 2+6=8 8 1
3 2+7=9 4+6=10 10 2
4 2+9=11 4+7=11 7+6=14 13 3
5 2+9=11 4+9=13 7+7=14 8+6=14 14 3,4
Etapa 2
S2/x2 1 2 3 4 F2(S) X2
1
2
3 5+8=13 13 1
4 5+10=15 5+8=13 15 1
5 5+13=18 5+10=15 6+8=14 18 1
6 5+14=19 5+13=18 6+10=16 9+8=17 19 1
Etapa 1
S1/x1 1 2 3 4 F1(S) X1
7 3+19=22 5+18=23 6+15=21 7+13=20 23 2
SOLUCION:
Curso1 Curso2 Curso3 Curso4
2 1 3 1
16
Universidad Andina del Cusco Programación Dinámica Probabilística
7. CONCLUSIONES:
La programación dinámica (Sea PDD ó PDP) es una técnica muy útil
para tomar una sucesión de decisiones interrelacionadas.
Requiere la formulación de una relación recursiva apropiada para
cada problema individual. Sin embargo, proporciona grandes ahorros
computacionales en comparación con la enumeración exhaustiva
para encontrar la mejor combinación de decisiones, en especial
cuando se trata de problemas grandes.
Es práctica para aplicarlas en programas como el solver en Excel, de
fácil utilización para hallar las rutas más óptimas en el proceso de
fabricación, ejecución, etc.
Sirve como ayuda para la facilidad de obtención de información en el
estudio de mercados.
8. BIBLIOGRAFIA:
http://web.ing.puc.cl/~jabaier/iic2552/progdin.pdf
http://www.konradlorenz.edu.co/images/stories/
suma_digital_matematicas/Programacion%20Dinamica.PDF
http://www.lcc.uma.es/~av/Libro/CAP5.pdf
http://eprints.uanl.mx/3096/1/1020070586.PDF
https://es.scribd.com/doc/54086068/Programacion-dinamica-
probabilistica
http://www.escuelauniversitaria.cl/apuntes/
ProgramacionDinamica.pdf
17