27
INSTITUO TECNOLOGICO DE PIEDRAS NEGRAS MATERIA: INVESTIGACION DE OPERACIONES 2 MAESTRO: ING. LUIS MANUEL GARCIA PIZARRO. UNIDAD 1 PROGRAMACION DINAMICA EQUIPO #1 INTEGRANTES: BLANCA MARGAARITA LARA PERALES. GABRIELA RIVAS CALVO. DALILA GARCIA ROCHA. BLANCA CECILIA NAVA OLIVA. YESENIA CASTRO LOPEZ. KEYLA SAUCEDO DE LA ROSA.

Unidad 1 Io2

Embed Size (px)

Citation preview

Page 1: Unidad 1 Io2

INSTITUO TECNOLOGICO DE PIEDRAS NEGRAS

MATERIA:

INVESTIGACION DE OPERACIONES 2

MAESTRO:

ING. LUIS MANUEL GARCIA PIZARRO.

UNIDAD 1

PROGRAMACION DINAMICA

EQUIPO #1

INTEGRANTES:

BLANCA MARGAARITA LARA PERALES.

GABRIELA RIVAS CALVO.

DALILA GARCIA ROCHA.

BLANCA CECILIA NAVA OLIVA.

YESENIA CASTRO LOPEZ.

KEYLA SAUCEDO DE LA ROSA.

ENRIQUE MARTINEZ.

SAUL NAVA MARTINEZ.

Page 2: Unidad 1 Io2

INDICE

UNIDAD 1 “PROGRAMACION DINAMICA”

1.1 CARACTERISTICAS DE LOS PROBLEMAS DE PROGRAMACION DINAMICA: ETAPAS, ESTADOS, FORMULA RECURSIVA, PROGHRAMACION EN AVANCE Y EN RETROCESO.

1.2 ALGUNOS EJEMPLOS DE PROGRAMACION DINAMICA.

1.3 PROGRAMACION DINAMICA DETERMINISTICA.

1.4 PROGRAMACION DINAMICA PROBABILISTICA.

1.5 PROBLEMA DE DIMENSIONALIDAD EN PROGRAMACION DINAMICA.

1.6 USO DE PROGRAMAS DE COMPUTACION.

Page 3: Unidad 1 Io2

1.7 CARACTERISTICAS DE LOS PROBLEMAS DE PROGRAMACION DINAMICA: ETAPAS, ESTADOS, FORMULA RECURSIVA, PROGHRAMACION EN AVANCE Y EN RETROCESO.

La programación dinámica (PD) es un procedimiento matemático diseñado principalmente para mejorar la eficiencia de cálculo de problemas de programación matemática seleccionados, descomponiéndolos en subproblemas de menor tamaño y por consiguiente, más fáciles de calcular.

La programación dinámica comúnmente resuelve el problema en etapas, en donde en cada etapa interviene exactamente una variable de optimización (u optimizadora).

Los cálculos en las diferentes etapas se alcanzan a través de cálculos recursivos de manera que se genere una solución óptima factible a todo el problema.

Características de la programación dinámica

1. El problema puede dividirse en etapas, con una decisión de la política requerida en cada etapa.El problema de la diligencia se dividió literalmente es sus cuatro “etapas”, correspondientes a las cuatro jornadas del viaje. La decisión de una política en cada etapa fue el destino para esa jornada particular (es decir, cual política de seguro de vida a elegir).

2. Cada etapa tiene un cierto número de estados asociados a ella. Los estados asociados con cada diligencia fueron los estados (o territorios) en los que el vendedor podía estar localizado al embarcarse en esa jornada particular del viaje.

3. En efecto de la decisión de una política en cada etapa es transformar el estado actual en un estado asociado a la etapa siguiente (posiblemente de acuerdo con una distribución de probabilidad).

4. Dado el estado actual, una política óptima para las etapas restantes es independiente de la política adoptada en las etapas previas.

5. El procedimiento de resolución empieza por hallar la política optima para cada estado de la última etapa.

6. Se dispone de una relación recursiva que identifica la política óptima para cada estado en la etapa n, dada la política optima para cada estado en la etapa (n+1).

Page 4: Unidad 1 Io2

La forma precisa de relación recursiva difiere de un problema a otro de 

Programación dinámica, pero usaremos una notación análoga a la siguiente:

N = número de etapas.

n = etiqueta para la etapa actual ( n = 1,2,...,N)

sn = estado actual para la etapa

nxn = variable de decisión para la etapa nxn* = valor óptimo de xn (dado sn)

8.Cuando se usa esta relación recursiva, el procedimiento de solución comienza al final y se mueve hacia atrás etapa por etapa, hasta que encuentra la política óptima desde la etapa inicial.

Procedimiento de solución.

1. Se construye una relación recursiva que identifica la política óptima para cada estado en la etapa n, dada la solución óptima para cada estado en la etapa n+l.

2. Se encuentra la decisión óptima en la última etapa de acuerdo a la política de decisión establecida. Comúnmente la solución de esta última etapa es trivial, es decir, sin ningún método establecido, tomando en cuenta solamente la "contribución" de la última etapa.

3. La idea básica detrás de la relación recursiva es trabajar "hacia atrás", preguntándose en cada etapa: ¿qué efecto total tendría en el problema si tomo una decisión particular en esta etapa y actúo óptimamente en todas las etapas siguientes?

Si se resolviera el problema "hacia adelante", es decir, de la primera etapa hacia la sería necesario realizar una enumeración exhaustiva de todas las alternativas, que resolviéndolo "hacia atrás" reducimos el número de alternativas a analizar, simplificando la solución del problema.

Cuando se llega a la etapa inicial se encuentra la solución óptima.

Page 5: Unidad 1 Io2

1.2 ALGUNOS EJEMPLOS DE PROGRAMACION DINAMICA.

Una compañía está planeando una estrategia de publicidad durante el año próximo para sus 3 productos más importantes. Como los tres son bastantes diferentes, cada esfuerzo de publicidad estará dedicado a solo un producto. Se dispone de un total de 6 millones de dólares para esta campaña de publicidad y se supone que el gasto para cada producto deberá ser un número entero mayor o igual a uno. El vicepresidente de mercadotecnia ha establecido el objetivo como sigue: determinar cuánto gastar en cada producto con el fin de maximizar las ventas totales.

La siguiente tabla da un incremento estimado en ventas (en las unidades apropiadas) para los diferentes gastos en publicidad:

GASTOS EN PUBLICIDAD

P1 P2 P3

1 7 4 62 10 8 93 14 11 134 17 14 15

Utilizar la programación dinámica para resolver este problema.

Red

4

6

8

17 4 9

11 8

10 13

4

7

14 11 8 15

4

6

2

1

3

4

1

2

3

4

0

Sn XnF2F3

n = 3

Solución

S3

1

2

3

4

Page 6: Unidad 1 Io2

n=2

4 6

X2= 1

Ff2= (2,1) = P2 (1) + f3* (2-1)= 4+6 =

= 4(1) +6(1) = 4+6 = 10

10

1 1

X= 1

X= 2 6

8

4 9

F2 (3,1) = p2 ( 1 ) + f3 * ( 3-1 ) =

= 4(1 ) +9 ( 2 ) = 4 + 18 =

F2 (3,2) =p2 ( 2 ) + f3* ( 3-2 ) =

= 8 ( 2 ) + 6 (1) = 16 + 6 =

22

22

2

1

2

Page 7: Unidad 1 Io2

6

11

8 9

4 13

F2 (4,1) = p2 (1) + f3* (4-1) =

=4 (1) + 4(39) = 4 + 39 =

F2 (4,2) = p2 (2) + f3* (4-2) =

=8 (2) + 9(2) = 16 + 18 =

F2 (4,3) = p2 (3) + f3* (4-3) =

= 11 (3) + 6(1) = 33 + 6 =

3

1

2

3

X2 = 1

X2 =2

X2 = 3

43

34

39

Page 8: Unidad 1 Io2

6

4

9

11

18 13

4

15

F2 = (5, 1) = p2 (1) +f3* (5-1) =

=4 (1) + 15 (4) = 4 + 60 =

F2 = (5, 2) = p2 (2) +f3* (5-2) =

=8 (2) + 13 (3) = 16 + 39 =

F2 = (5, 3) = p2 (3 ) +f3* (5- 3 ) =

=11(3) + 9(2) = 33 + 18 =

F2 = (5, 4) = p2 (4) +f3* (5- 4) =

=14(4) +6(1) = 56 + 6 =

64

55

51

62

4

1

2

3

4

X2 = 1

X2 =2

X2=3

X2=4

Page 9: Unidad 1 Io2

TABLA DE RESULTADOS

S2 X2 1 2 3 4 F2* (S2) X2*

1 10 - - - 10 12 22 22 - - 22 1,23 43 34 39 - 43 14 64 55 51 62 64 1

n=1

10

17 22

14

10

43

7

64

F1(6,1) = p1 (1) + F2* (6-1) = 7(1) +64(5) = 7 + 320 =

F1(6,2) = p1 (2) + F2* (6-2) = 10(2) +43(4) = 20 + 172 =

F1(6,3) = p1 (3) + F2* (6-3) = 14(3) +22 (3) = 42 + 66 =

F1(6,4) = p1 (4) + F2* (6-4) = 17(4) +10(2) = 68 + 20=

6

1

2

3

4

327

192

108

88

Page 10: Unidad 1 Io2

S2 X1 1 2 3 4 F2 *(S2) X2*6 327 192 108 88 327 1

LA RUTA CRITICA ES:

1 2 3 = 7 + 8 + 13 = 28

3 2 1 = 14 + 8 + 6 = 28

6

2

1

3

4

1

2

3

4

0

Page 11: Unidad 1 Io2

El problema de la diligencia.

Un caza fortunas desea ir de Missouri a California en una diligencia, y quiere viajar de la forma más segura posible. Tiene los puntos de salida y destino conocidos, pero tiene múltiples opciones para viajar a través delterritorio. Se entera de la posibilidad de adquirir seguro de vida como pasajero de la diligencia. El costo de la póliza estándar (cij ) se muestra en la tabla siguiente.

El costo de la póliza estándar (cij ) se muestra en la tabla siguiente.

El problema de las monedas.

Para el problema de las monedas con programación dinámica se necesita crear un algoritmo que permita a una máquina expendedora devolver el cambio mediante el menor número de monedas posible. Mediante la programación   dinámica se solucionará el caso en el que el número demonedas de cada tipo es ilimitado. En el problema de las monedas mediante el algoritmo voraz el que el número de monedas es ilimitado.

El problema de la mochila.

Sean n objetos no fraccionables de pesos pi y beneficios bi. El peso máximo que puede llevar la mochila es C. Queremos llenar la mochila con objetos, tal que se maximice el beneficio. Los pasos que vamos a seguir son los siguientes:

•Ver que se cumple el principio de optimalidad de Bellman.

•Buscar ecuaciones recurrentes para el problema.

•Construir una tabla de valores a partir de las ecuaciones.

Page 12: Unidad 1 Io2

1.3PROGRAMACION DINAMICA DETERMINISTICA.

Es una técnica que se utiliza para resolver diversos problemas de optimizaciónEsta técnica llega a la solución: Trabajando hacia atrás partiendo del final del problema hacia el principio Esta categoría de Programación dinámica tiene que ver con la naturaleza de la evolución del sistema, una vez que se ha tomado la decisión.

Cuando, en una etapa determinada, podemos conocer con certeza la evolución del sistema para un determinado estado y un determinado valor de la variable de decisión, para este modelo podemos establecer las decisiones que, en cada etapa, dan valor óptimo de la función de recurrencia.

Los problemas determinísticos de programación dinámica son aquellos en los cuales el estado asociado en la etapa siguiente está totalmente determinado por el estado y la política de decisión de la etapa actual. La siguiente figura describe el funcionamiento de la programación dinámica determinística.

Los problemas de programación dinámica determinística son aquéllos en los que el estado en la etapa siguiente queda completamente determinado por el estado y la política en la etapa actual.

Una manera de catalogar los problemas de programación dinámica determinística es por la forma de la función objetivo.

Page 13: Unidad 1 Io2

Por ejemplo, el objetivo podría ser minimizar la suma de contribuciones de las etapas individuales, o bien minimizar un producto de tales términos y así sucesivamente. En un problema de programación dinámica, las temporadas deben ser las etapas

Algunas Aplicaciones De La Programación Dinámica Determinística • Modelo De La Ruta Más Corta • Modelo De Volumen-Carga “Mochila” • Modelo Del Numero De Empleados • Modelo De Reemplazo De Equipos • Modelo De Asignación De Recursos • Modelo De Inventarios

EJEMPLOS del tema 1.2

Page 14: Unidad 1 Io2
Page 15: Unidad 1 Io2

1.4PROGRAMACION DINAMICA PROBABILISTICA

La PDP Se caracteriza porque el valor asociado a los arcos es un valor probable, y por lo tanto el valor de las rutas posibles desde el estado inicial hasta el estado final tiene un valor asociado a la probabilidad de ocurrencia de ella. Estando en un estado s cualquiera en cualquiera de las etapas del problema, los arcos que de ese estado s salen tienen una probabilidad de ocurrencia, que puede ser igual para todos o tener valores diferentes.

En este tipo de problemas de la PDP se distinguen: -estados, -etapas, -estado inicial, -estado final -valor al horizonte, -función objetivo, -política óptima, -arcos, -valor asociado a los arcos (estos son probables y no determinísticos), -óptimo, -solución óptima, -ruta óptima.

Ejemplo 1. (PDP)

El Enunciado:

Una empresa ha recibido el encargo de construir un artículo, que, por las características exigidas por el cliente deberá pasar controles de calidad altos. Esto hace que la empresa estime que la probabilidad de que un artículo producido salga bueno es 2/3 (66,6667%) y de 1/3 (33,3333%) que salga malo sin posibilidad de recuperarlo o arreglarlo. El plazo que tiene la empresa para obtener al menos un artículo bueno es de 3 días, y la producción del artículo implica ocupar el día en hacer andar la línea de producción, fabricarlos y finalmente ver si salieron buenos; por lo que la empresa tiene 3 intentos de fabricación para obtener el artículo bueno.

Por contrato con el cliente se acuerda que si la empresa no obtiene el artículo bueno en los 3 días, en los 3 intentos, la empresa deberá pagar una multa de $200 al cliente por indemnización o pérdida de tiempo.

También la empresa sabe que cada día que decide elaborar ese producto incurre en un costo fijo de $20 por iniciar toda la línea de producción ese día , y tiene un costo de $5 por cada unidad que decida fabricar.

Se pide encontrar la política óptima a seguir por la empresa en cuanto a la producción de este artículo, para hacer mínimo el costo total de producción y obtener al menos un artículo de buena calidad, según lo exigido.

Page 16: Unidad 1 Io2

El Modelo y sus partes.

Las etapas. En este problema estarán asociadas a los dias de producción. Por lo que el problema tiene 3 etapas. La Etapa 1 es el proceso de decidir si produce o no produce el día 1; y si decide producir, cuántas unidades producir. De manera similar se entienden las etapas 2 y 3.

Los estados: En este problema se pueden distinguir 2 estados posibles dentro de cada etapa, y son: "la cantidad de artículos buenos que se tiene la obligación de obtener en esa etapa". Se indicarán por 0 y 1. Por lo que el estado inicial es 1 y los estados finales posibles son 0 y 1.

Es decir, el estado:

0 : indica que en esa etapa no se tiene la necesidad obligada de obtener un artículo bueno.

1 : indica que en esta etapa sí se tiene la necesidad obligada de obtener un artículo bueno.

Las variables de decisión : Son las decisiones que cada día deberá tomarse, y son: la cantidad de artículos que se deberá fabricar ese día. Por lo que son 3 variables de decisión: x1, x2, x3, donde: x1 es la cantidad de artículos a fabricar el día 1, x2 es la cantidad de artículos a fabricar el día 2, y x3 es la cantidad de artículos a fabricar el día 3.

Es claro que si un día tiene el estado 0, fabricará 0 artículos, y ese día tendrá un costo de $0. Si un día tiene el estado 1, deberá fabricar algunos artículos (si es lo más conveniente), e incurrirá en un costo de $5 por unidad más $200 fijos.

El costo de producción de cada día esta dado por:

200 ; si xi > 0

Costo por dia: = 5xi + K(xi) ; Donde K(xi) = <

0 ; si xi = 0

Page 17: Unidad 1 Io2

Para cada artículo que se produzca la probabilidad de que salga bueno es 2/3, y que salga malo es 1/3 (datos del problema).

Por lo que, si produce 2 artículos la probabilidad de que los 2 salgan malos es:

(1/3)*(1/3) = (1/3)2. Si decide producir 3 artículos, la probabilidad de que los 3 salgan

malos es de (1/3)3 , asi también se tendrá que si fabrica 4 es (1/3)4 = 0,0123 la probabilidad de que los 4 salgan malos. Generalizando, si se decide fabricar xi

artículos, entonces la probabilidad de que todos salgan malos es: (1/3) xi.

Probabilidades de cada uno de los casos finales, si se decide producir 3 artículos.

Los 3 malos tiene probabilidad

de ocurrencia de: (1/3)3.

y para xi artículos a fabricar la

Probab. será de: (1/3)xi de que todos salgan malos.

La función objetivo, para cualquiera de las etapas contendrá lo que representa el costo de esa etapa más el costo probable de la etapa siguiente si todos hubiesen salido malos, y más el costo probable de la etapa siguiente si no todos hubiesen salidos malos (al menos uno salió bueno). Y en la etapa n-ésima tendremos el estado 0 y el estado 1. Tomenos el estado 1 para f.

Page 18: Unidad 1 Io2

donde:

K(xn ) es el costo de producción fijo de $0 o de $200, según ese día produzca artículos

o no.

5*xn : representa el costo de $5 por unidad que se decida producir.

(1/3)xn : representa la probabilidad de que los xn artículos salgan malos.

fn+1(1) : es el costo que se tendrá en la etapa siguiente, si se llega a ella con la

obligación de obtener un artículo bueno. Este valor es: f *n+1(1).

(1/3)xnfn+1(1) : es el costo probable desde la etapa siguiente en adelante, si todos los

de esta etapa salen malos.

(1- (1/3)xn) : es la probabilidad de que no todos los xn artículos salgan malos; alguno sale bueno.

fn+1(0) : es el costo en que se incurrirá desde la etapa siguiente, si se llega a ella al

estado 0, es decir sin la necesidad de producir un artículo bueno, porque ya se obtuvo.

Es f *n+1(0)

(1-(1/3)xn)fn+1(0) : es el costo probable desde la etapa siguiente, si en esta etapa sale

alguno de los artículos bueno.

En el problema aquí dado, se tiene que f *n+1( 0 ) es cero, porque es cero el costo más

bajo si no se tiene la obligación de producir un artículo bueno, en cualquiera de las etapas. La etapa 1 tiene como estado inicial: 1; es decir, en la etapa 1 se tiene la obligatoriedad de obtener un artículo bueno.

Los cálculos:

n=3, f3(1,0) = 0 + 5*0 + (1/3)0*200 = 200

f3(1,1) = 20 + 5*1 + (1/3)1*200 = 91.666

f3(1,2) = 20 + 5*2 + (1/3)2*200 = 52.222

2 f3(1,3) = 20 + 5*1 + (1/3)3*200 = 42.407

Page 19: Unidad 1 Io2

3 f3(1,4) = 20 + 5*1 + (1/3)4*200 = 42.469

f3(1,5) = 20 + 5*1 + (1/3)5*200 = 45.82

(Se calcula hasta que, para valores de x3, la f.o. empiece a aumentar de valor, luego de haber ido descendiendo. En este caso nos interesa el menor valor de la f.o.).

s \ x3 0 1 2 3 4 5 f *3 x*3

0 0 -- -- -- -- -- 0 0

1 =200 = 91.666 =52.222 =42.407 =42.469 =45.82 42.407 3

n=2, f2(1,0) = 0 + 5*0 + (1/3)0*42.407 = 42.407

f2(1,1) = 20 + 5*1 + (1/3)1*42.407 = 39.1356

f2(1,2) = 20 + 5*2 + (1/3)2*42.407 = 34.7119

f2(1,3) = 20 + 5*3 + (1/3)3*42.407 = 36.5706

f2(1,4) = 20 + 5*4 + (1/3)4*42.407 = 40.5235

s \ x2 0 1 2 3 4 f *2 x*2

0 0 -- -- -- -- 0 0

1 42.407 39.14 34.71 36.57 40.52 34.7119 2

n=1, f1(1,0) = 0 + 5*0 + (1/3)0*34.7119 = 34.7119

f1(1,1) = 20 + 5*1 + (1/3)1*34.7119 = 36.5706

f1(1,2) = 20 + 5*2 + (1/3)2*34.7119 = 33.8568

f1(1,3) = 20 + 5*3 + (1/3)3*34.7119 = 36.2856

f1(1,4) = 20 + 5*4 + (1/3)4*34.7119 = 40.4285

s \ x2 0 1 2 3 4 f *1 x*1

1 34.71 36.57 33.857 36.29 40.43 33. 857 2

Page 20: Unidad 1 Io2

Respuesta: Costo Mínimo Probable: 33. 857 Solución óptima: x1 = 2 , x2 = 2 , x3 = 3El costo mínimo probable para obtener al menos un producto bueno es de $ 33. 857; y el día 1 se debe producir 2, y si los 2 salen malos el día 2 se deben producir 2, y si salen malos el día 3 se deben producir 3.

Con más detalles, la política óptima, y costos, en cuanto al lote de producción es:- Que el día 1 fabrique 2 artículos, y si al menos uno de ellos sale bueno, el día 2 y día 3 no fabrica, y tiene un costo total de $20 + $5*2 = $30.- Si todos los artículos del día 1 salen malos, entonces el día 2 se deben fabricar 2 nuevos arículos. Si al menos uno de ellos sale bueno, el día 3 no fabricar, y tiene un costo total de $60. ($30 el dia 1 más $30 el día 2).- Si todos los artículos del día 2 salen malos, entonces el día 3 se deben fabricar 3 artículos más. Si todos los del día 3 salen malos, tendrá un costo total de $295. ($30 el dia 1 + $30 el día 2 + $35 el dia 3 + $200 de multa). Si al menos uno del día 3 sale bueno, tendrá un costo total de $95, dado por $30 el día 1 + $30 el día 2 + $35 el día 3.

Otras preguntas:

*) ¿Cuál es el costo total en los 3 días?. No se sabe de ese costo a priori, y no se sabe cual será en cada ocasión que se deba fabricar uno de estos artículos, porque no se sabe si se obtendrá el día 1 con un costo de $30, o el día 2 con un costo de $60, o el día 3 con un costo de $95, o bien deberá pagar la multa de $200 con un costo de $295. El costo del día 1 es seguro, los demás son costos probables.

*) ¿De que modo se puede obtener un costo total mínimo de $33. 857 ?.En este caso, de ninguna manera se tendrá en alguna ocasión un costo de $33. 857. Según lo ya indicado, el dia 1 hay un costo de $30, si debe fabricar el día 2 el costo es de $60, y si fabrica el día 3, el costo es de $95, y si todos salen malos, tiene un costo total con multa de $295.

*)Tomando en cuenta los resultados y valores de los costos ya indicados, ¿cuál debiese ser el mínimo valor al que convendría vender ese artículo de calidad exigente?.

Page 21: Unidad 1 Io2

El costo mínimo probable de $33. 857 es aquel costo al que se tenderá, si se tiene muchos pedidos de este artículos, y cada vez se toma la política de producción que ya se indicó (x1=2, x2=2, x3=3).

Como el día 1 tiene un costo de $30, (cerca de $33.857), se puede concluir que casi siempre, (en el 88,89% porque: 1 - (1/3)*(1/3) = 0,888 ) el artículo bueno se obtiene el primer día, lográndolo con un costo de $30. En muy pocas ocasiones pasa al día 2 con un costo de $60. (11,11%), y casi nunca pasará al día 3. ( (1/3)^4 = 0,0123; el 1,2 % ).

Muy rara vez pagará la multa y tendrá un costo de $295, ( (1/3)^7 = 0,00045724737082 ; un 0,045% ).Por lo que el piso para el precio de venta que se debe considerar es de $ 33.857, que es el costo al que tenderá si se tiene muchos pedidos de este tipo.

1.5 PROBLEMA DE DIMENSIONALIDAD EN PROGRAMACION DINAMICA.

La programación dinámica tradicional permite obtener las trayectorias óptimas de control para procesos no lineales, variantes, con cualquier tipo de funcional o índice de desempeño y con restricciones en las variables.

Con un número del orden de cinco variables de estado, los algoritmos tradicionales de programación dinámica exigen elevados requisitos de memoriay de tiempo de cálculo a los sistemas de procesamiento digital. Estacaracterística de la metodología fue denominada “maldición de dimensionalidad”  por el propio Bellman, lo cual desalentó el empleo de la programación dinámica tradicional durante más de veinte años.