Programación Dinámica Investigación de operaciones II INSTITUTO TECNOLÓGICO DE TEPIC MATERIA: INVESTIGACION DE OPERACIONES II NOTAS DE PROGRAMACIÓN DINÁMICA DEPARTAMENTO DE INGENIERIA INDUSTRIAL ELABORADAS POR: M.C. HECTOR MARTINEZ RUBIN CELIS M.C. Héctor Martínez Rubin Celis 1/31 Programación Dinámica Investigación de operaciones II CASO FABRICA DE TORTILLAS "MI TIERRA" La fábrica de tortillas "Mi Tierra" es una pequeña compañía ubicada en Tuxpan, Nay. En ella se producen varios productos de harina de maíz y trigo. Principalmente, estos productos son tortillas de maíz y trigo. Las tortillas de maíz son utilizadas en enchiladas, tacos y tostadas; las tortillas de harina se utilizan normalmente en los burritos. El gerente de "Mi Tierra" ha estado trabajando para obtener un contrato con una de las compañías de comida rápida tipo mexicana más importante la "Taco-Tec". La semana pasada fue informado que la compañía "Taco-Tec" había decidido comprar 200 cajas de tortillas de harina a "Mi Tierra" en cada uno de los próximos 7 meses (cada caja contiene 1000 tortillas de harina) a un precio fijo. El gerente inmediatamente empezó a calcular las ganancias que "Mi tierra" pueda tener, llegando a la conclusión de que la compañía hará $1000 cada mes si "mi Tierra" produce exactamente la cantidad necesitada ese mes. Después de un momento de juicio, el gerente calculo también la ganancia por producir más del número de cajas necesitadas para un solo mes. El hizo esto pensando que las tortillas de harina pueden ser producidas y congeladas por un máximo de 4 meses. "Mi Tierra" puede producir más tortillas para un solo mes si se trabaja tiempo extra y contratando más ayuda. Esto no tendrá efecto en la producción de otros productos y se comporta igual en todos los meses. El gerente ha calculado las ganancias para la producción de varias cantidades de tortillas, o como son llamados TAMAÑOS DE LOTE, como a continuación se muestra; Tamaño del lote (Cajas) 200 400 600 800 Ganancia $1000 $2500 $3750 $4750 Debido a la combinación de factores económicos y de almacenaje, existen economías de escala en la producción del tamaño de lote grande, pero también existen los costos de congelar las tortillas y los costos resultantes del deterioro de algunas tortillas. Pasando de un período de 2 meses, el deterioro por congelación se incrementa marcadamente. Debido a que el gerente desea obtener la mayor ganancia posible para "Mi Tierra" en un contrato de 7 meses con "Taco-Tec", el desea producir el tamaño de lote que conducirá a la ganancia total máxima. Se busca optimizar una función objetivo: Programación Lineal, considera respuestas en fracciones, pero este problema incluye soluciones de tamaño de lote exacto. Además P.L. no siempre considera decisiones sobre el tiempo y el problema de producción de tortillas requiere ser separado en una secuencia de decisiones. M.C. Héctor Martínez Rubin Celis 2/31 Programación Dinámica Investigación de operaciones II Este problema requiere una secuencia de decisiones que sean realizadas con respecto al tiempo, y los parámetros (demanda, ganancias, etc.) son asumidos ser conocidos con certeza. La primera pregunta a hacerse es que tanto producir cada mes tal que sean maximizadas las ganancias totales para un período de planeación de 7 meses considerando la restricción de producir al máximo hasta 4 meses en adelantado a la demanda debido a que los productos se echan a perder después de 4 meses. Sea: w1 = Número de veces que la demanda de un mes es producida (200 cajas). w2 = Número de veces que la demanda de dos meses es producida (400 cajas). w3 = Número de veces que la demanda de tres meses es producida (600 cajas). w4 = Número de veces que la demanda de cuatro meses es producida (800 cajas). Usando estas definiciones el problema es formulado de la manera siguiente: Maximizar 1000w1+ 2500w2+ 3750w3+ 4750w4 Sujeto a; w1+ 2w2+ 3w3+ 4w4 = 7 wi = 0,1,2,3,... para toda i Este problema parece uno de Programación Lineal, pero debido a los requerimientos de que las variables wi tengan valores discretos este problema pudiera ser resuelto como no de Programación Entera, pero ya que este es un problema de secuencia de tiempo se pudiera utilizar una técnica denominada Programación Dinámica. Programación Dinámica enfoca este problema como una secuencia de decisiones y trabaja para tomar una serie de decisiones que conduzcan a las mayores ganancias sujeto a cualquier restricción que exista en el problema. Tabla de decisiones del séptimo mes Mes 7 Demanda 200 Opciones de producción 200 M.C. Héctor Martínez Rubin Celis Ganancia inmediata $1000 Demanda restante 0 Mejor ganancia sobre la demanda restante 0 Ganancia total $1000 * 3 Programación Dinámica Investigación de Operaciones II Tabla de decisiones del sexto mes Mes 6 Demanda 400 Opciones de producción Ganancia inmediata Demanda restante Mejor ganancia sobre la demanda restante Ganancia total $2000 200 $1000 200 $1000 400 $2500 0 0 $2500 * Tabla de decisiones del quinto mes Mes Demanda Opciones de producción Ganancia inmediata Demanda restante Mejor ganancia sobre la demanda restante Ganancia total 5 600 200 $1000 400 $2500 $3500 400 $2500 200 $1000 $3500 600 $3750 0 0 $3750 * Tabla de decisiones del cuarto mes Mes Demanda Opciones de producción Ganancia inmediata Demanda restante Mejor ganancia sobre la demanda restante Ganancia total 4 800 200 $1000 600 $3750 $4750 400 $2500 400 $2500 $5000 * 600 $3750 200 $1000 4750 800 $4750 0 0 $4750 Tabla de decisiones del tercer mes M.C. Héctor Martínez Rubin Celis 4 Programación Dinámica Investigación de Operaciones II Mes Demanda Opciones de producción Ganancia inmediata Demanda restante Mejor ganancia sobre la demanda restante Ganancia total 3 1000 200 $1000 800 $5000 $6000 400 $2500 600 $2750 $6250 * 600 $3750 400 $2500 $6250 * 800 $4750 200 $1000 $5750 Tabla de decisiones del segundo mes Mes Demanda Opciones de producción Ganancia inmediata Demanda restante Mejor ganancia sobre la demanda restante Ganancia total 2 1200 200 $1000 1000 $6250 $7250 400 $2500 800 $5000 $7500 * 600 $3750 600 $3750 $7500 * 800 $4750 400 $2500 $7250 Tabla de decisiones inicial (primer mes) Mes Demanda Opciones de producción Ganancia inmediata Demanda restante Mejor ganancia sobre la demanda restante Ganancia total 1 1400 200 $1000 1200 $7500 $8500 400 $2500 1000 $6250 $8750 * 600 $3750 800 $5000 $8750 * 800 $4750 600 $3750 $8500 El programa de máximas ganancias es: Producir M.C. Héctor Martínez Rubin Celis 5 Programación Dinámica mes 1 400 mes 2 0 mes 3 400 mes 4 0 mes 5 600 mes 6 0 mes 7 0 400 0 600 0 0 400 0 600 0 0 400 0 400 0 Investigación de Operaciones II cajas " cajas " cajas " " PROGRAMACION DINAMICA DEFINICION: Es la técnica matemática (procedimiento de optimización) que es particularmente aplicable a problemas que requieren una secuencia interrelacionadas de decisiones. Cada decisión transforma la actual situación en una nueva situación. El valor de la secuencia de decisiones es generalmente igual a la suma de valores de las decisiones individuales y las situaciones en la secuencia. En contraste con la Programación Lineal (P.L.) no existe una formulación matemática estándar para los problemas de Programación Dinámica (P. D.). La PROGRAMACION DINAMICA es un tipo general de enfoque para resolver problemas y la ecuación particular debe ser desarrollada (elaborada) para enfrentar (corresponder) a cada situación individual. Por lo tanto cierta habilidad es requerida para reconocer cuando los problemas pueden ser resueltos usando PROGRAMACION DINAMICA y como estos pueden ser resueltos (afrontados). Esta habilidad puede ser probablemente desarrollada con la exposición de una amplia variedad de aplicaciones de PROGRAMACION DINAMICA y es estudio de lo que todas las situaciones tienen en común H Ejemplo de un problema de camino simple; E 3 2 L 5 5 1 C I 4 Suponga que usted vive en una ciudad cuyas calles están A distribuidas de la manera siguiente: 1 F 7 0 D G 2 J B 1 8 P 2 4 Todas las calles son de un solo sentido y que el número K mostrado en el mapa representa el esfuerzo (usualmente tiempo y algunas veces costo de distancia) requerido para atravesar cada bloque M.C. Héctor Martínez Rubin Celis 2 M 2 5 3 2 2 A 1 O 3 4 N 2 6 Programación Dinámica Investigación de Operaciones II individualmente. Se desea encontrar el mínimo de esfuerzo total para ir de A a B. Este problema puede ser resuelto enumerando todos los posibles caminos de A a B; sumando esfuerzos, bloque tras bloque de cada camino y escogiendo la suma más pequeña. Existen 20 caminos diferentes ,100 adiciones y 19 comparaciones. ⎡ N ⎤ ⎢ N/2 ⎥ ⎣ ⎦ No. de caminos diferentes = 20 [N - 1] ⎡⎢ N ⎤ ⎥ ⎣ N/2 ⎦ ⎡ N ⎤ ⎢ N/2 ⎥ - 1 ⎣ ⎦ Numero de adiciones = 100 Numero de comparaciones = 19 donde N es el numero de etapas (vértices) de A a B. (numero de elementos a sumar) A esta enumeración se le denomina FUERZA BRUTA Aplicando PROGRAMACION DINAMICA Denote Sc como el esfuerzo mínimo de C a B. SD como el esfuerzo mínimo de D a B. No se sabe si ir diagonalmente hacia arriba o diagonalmente hacia abajo; adicionalmente se conocen 2 números; a) El esfuerzo total requerido para llegar a C a B por el mejor camino (mínimo esfuerzo). b) El esfuerzo total requerido para llegar de D a B por el mejor camino. Se añade Sc el esfuerzo requerido para ir de A a C obteniendo el esfuerzo requerido de el mejor camino empezando diagonalmente hacia arriba. Lo mismo se le hace a SD mas el esfuerzo para ir de A a D pero diagonalmente hacia abajo. Se comparan las sumas para encontrar el esfuerzo total mínimo la primera mejor decisión. Pero Sc y SD aun son desconocidas. Sin embargo una de las principales ideas de PROGRAMACION DINAMICA a hecho una inofensiva aparición. M.C. Héctor Martínez Rubin Celis 7 Programación Dinámica I) Investigación de Operaciones II Únicamente los esfuerzos a lo largo del mejor camino de C a B y de D a B son relevantes para los cálculos anteriores y los esfuerzos de los restantes caminos (9 de cada uno) no necesitan ser calculados. Esta observación es llamada El principio de Optimalidad el cual dice; El mejor camino de A a B tiene la propiedad de que cualesquiera que sea la decisión inicial en A, el camino restante a B, empezando del próximo punto después de A, debe ser el mejor camino desde ese punto a B. Principio de optimalidad de Bellman; Un camino óptimo tiene la siguiente propiedad; Una vez que el primer paso es tomado, los pasos restantes deberán ser una solución óptima para el nuevo problema, con un reducido número de etapas ahora escribiendo la formula 1+Sc SA = min 0+SD esta justifica lo anterior enunciado II) La segunda de las principales ideas dice que mientras los dos números Sc y SD son desconocidos inicialmente, se puede calcular Sc si son desconocidos SE y SF (mínimo esfuerzo de E y F a B.) 7+SF 5+SE Sc= min y 4+SF SD =min 3+SG Para poder obtener SE,SF y SG es necesario calcular SI, SJ, SH y SK y estos dependen de SL, SM y SN los cuales a su vez dependen de So y SP. SO y SP pueden ser fácilmente calculados y trabajado en forma de Retroceso (hacia atrás) de O y P a A podemos obtener los deseados cálculos. SO=2 SP=1 2+SO =4 ← SL =5+SO=7 SM= min M.C. Héctor Martínez Rubin Celis 8 Programación Dinámica Investigación de Operaciones II 8+SP =9 SH =3+SL=10 SN= 4+SP = 5 SK=2+SN=7 SJ =min 2+SM = 6 ← 2+SN = 7 3+SL = 10 SI= min 4+SM = 8 ← 2+SH = 12 SE= min 1+SI = 9← 1+SI = 9 SF= min 2+SJ = 8 ← 5+SJ = 11 7+SF = 15 SG= min SD =min 4+SK = 11← 3+SG = 14 ← 5+SE = 14 1+SC = 13 SC=min SA =min 4+SF = 12 ← 0+SD = 14 ← Punto óptimo próximo de cada punto inicial PO =B PP =B PL =O PM =O PN =P PH =L PI =M PE =I PF =J PA =C PD =G PJ =M PK =N PG =J o K Pc =F CAMINO OPTIMO A - C - F - J - M - O - B; 1 + 4 + 2 + 2 + 2 + 2 = 13 Lo común en todos los problemas de PROGRAMACION DINAMICA es; M.C. Héctor Martínez Rubin Celis 9 Programación Dinámica Investigación de Operaciones II I) Un dado problema como un todo puede ser resuelto si los valores de las mejores soluciones de ciertos subproblemas pueden ser determinados (principio de Optimalidad). II) La realización de que si uno empieza en o cerca del final del problema como un todo , los subproblemas son tan simples como tener soluciones triviales. TERMINOLOGIA: Podemos nombrar a la regla que asigna valores a varios subproblemas FUNCION DE VALOR OPTIMO. La función S es el valor óptimo y A en SA es el argumento de la función S. La regla que asocia la primera mejor decisión con cada problema (la función P) es llamada FUNCION DE POLITICA OPTIMA. El principio de optimalidad produce o genera una formula o conjunto de formulas que relacionan varios valores de S. Esta formula es llamada RELACION DE RECURRENCIA (RELACION RECURSIVA). El valor de la función de valor óptimo S para ciertos argumentos es asumida como obvia desde el establecimiento del problema y desde la definición de S con cálculos requeridos. Estos valores obvios son llamados CONDICIONES LIMITANTES. ETAPAS Y ESTADOS EN PROGRAMACION DINAMICA Una variable describe cuantas decisiones hasta cierto momento han sido tomadas y si el número total de decisiones es fijo entonces el número de etapas será igual al número de decisiones. Las variables restantes que describen la actual situación dadas por las variables de etapa son llamadas variables de estado que en general son las variadas posibles condiciones en las cuales el sistema se encuentra en esa etapa del problema y el número de estados puede ser finito o infinito. *Identificar etapas y estados en el ejemplo. M.C. Héctor Martínez Rubin Celis 10 Programación Dinámica Investigación de Operaciones II Xn variable de estado dn decisión fn retorno en la etapa n La decisión en cada etapa es que tanto asignar La variable de estado sucesivas Xn ,Xn+1 están unidas a través de la ecuación recursiva que calcula los valores de Xn+1 usando el valor de Xn y la decisión en este estado dn . Las variables de estado relacionan el presente estado con el previo. Las variables de estado permiten calcular la restante cantidad de recursos escasos. I) Retroceso Procedimientos en Programación Dinámica II) Avance I) En Retroceso Condiciones terminales fijas Se realiza el cálculo de valores numéricos desde la línea terminal al punto inicial II) En Avance Condiciones Iniciales fijas Se realiza el cálculo de valores numéricos desde la línea inicial al punto final. Ejemplos La notación simple particular para el problema del camino simple, transforma el mapa de la ciudad en un sistema de coordenadas. Ahora el punto A tiene las coordenadas (0,0), B tiene (6,0) e I tiene (3,1) etc. La función de valor óptimo es ahora una función de un par de números (x,y). *Programación en Retroceso S(x,y)= El valor del camino de mínimo-esfuerzo conectando el vértice (x,y)con el vértice terminal (6,0) M.C. Héctor Martínez Rubin Celis 11 Programación Dinámica Investigación de Operaciones II Definamos; au(x,y) como el esfuerzo asociado con el arco conectando el vértice (x,y) con el vértice (x+1,y+1)(u significa flecha hacia arriba). ad (x,y) como el esfuerzo del arco que va diagonalmente hacia abajo de (x,y) a (x+1,y-1) (d significa hacia abajo). au (x,y) o ad (x,y) = ∞ si no existe tal arco en nuestra red ejemplo: au(7,8) = ∞ , Ad(4,2)= ∞ El principio de optimalidad nos da la siguiente relación recursiva au(x,y)+S (x+1,y+1) S(x,y)=min ad (x,y)+S(x+1,y-1) Condición limitante S(6,0)=0 Si se pide formulación de PROGRAMACION DINAMICA para un problema se refiere a; 1) Definir la función apropiada de valor óptimo incluyendo definición especifica de los argumentos y el significado del valor de la función. 2) Escribir la relación de recurrencia apropiada. 3) Anotar la condición limitante apropiada. *Programación de Avance S(x,y)= El valor del camino de mínimo-esfuerzo conectando el vértice inicial con el vértice (x,y) vértice (x,y) con el vértice inicial (0,0) M.C. Héctor Martínez Rubin Celis o el 12 Programación Dinámica Investigación de Operaciones II Relación Recursiva au (x-1,y-1)+S(x-1,y-1) S(x,y)=min ad (x-1,y+1)+S(x-1,y+1) Condición limitante S(0,0)=0 Otro enfoque de Programación Dinámica: (Programación en avance) Programación Dinámica empieza con una pequeña porción del problema y encuentra la solución óptima para ese pequeño problema. Entonces gradualmente agranda el problema, encontrando la corriente solución óptima de el problema previo, hasta que el prob. Original es resuelto enteramente. Definamos: Xn(n = 1, 2,3,4,5,6)sean las variables de decisión del inmediato destino en la etapa n. La ruta será seleccionada 1=>X1=>X2=>X3=> X4=> X5=>X6 Sea fn (s,xn) el costo total de la política general de las etapas restantes, dado que nos encontramos en s y seleccionamos Xn como el destino inmediato dado s y n , sea Xn* el valor de Xn que minimiza fn(s,Xn )y sea fn*(s) el valor mínimo correspondiente de fn(s,Xn) por esto fn*(s)=fn(s,Xn*) PROGRAMACION DINAMICA resuelve el problema encontrando f6(s)*, f5(s)*, f4(s)*, f3(s)*, f2(s)* y f1(s)*. Entonces; Relación recursiva: fn(s,Xn)=dS,Xn+fn+1*(Xn) Condición limitante: f6(s,X6)=f(X6) M.C. Héctor Martínez Rubin Celis 13 Programación Dinámica X6 Investigación de Operaciones II Decisión f6(s,X6)=f(X6) Decisión X5 f5(s,X5)=dSx5+f6(X5)* s f6(x6)* X6 B O 2 O s O L 5+2=7 - 7 O M 2+2=4 8+1=9 4 O 4+1=5 5 P Variable de Estado P 1 P N X4 S H I J K S E F G S C D M 4+4=8 2+4=6 - N f4*(s) X4* 10 L 8 M 2+5=7 6 M 2+5=7 7 N f3(s,X3)=dSX3+f4(x3)* H 2+10=12 - X2 - dec. opt. dist.min opt. f5(s)* X5 * f4(s,X4)=dSX4+f*5(X4) L 3+7=10 3+7=10 - X3 P I 1+8=9 1+8=9 - J K f3(S)* X3* 9 I 2+6=8 8 J 5+6=11 4+7=11 11 JoK f2(s,X2)=dSX2+f3(X2)* E F 5+9=14 4+8=12 7+8=15 G 3+11=14 f2(S)* x2* 12 F 14 G X1 f(s,X1)=dsX1+f(X1)* S C O f1(S)* x1* A 1+12=13 0+14=14 13 C RUTA A - C - F - J - M - O - B Produciendo un costo total de 13 *Tarea resolver estos problemas en avance y retroceso respectivamente. M.C. Héctor Martínez Rubin Celis 14 Programación Dinámica Investigación de Operaciones II REEMPLAZO DE EQUIPO Sea; N = numero de unidades en el período planeado tiempo en unidades discretas Reemplazar Piezas de equipo; Mantener. Xi = antigüedad del equipo al principio del problema P = precio de nuevo equipo C(i)= costo de operación por un año cuando el equipo tiene i años de antigüedad al principio del período C(i)= ∞ pone un máximo a la antigüedad del equipo t(i)= valor de cambio el equipo al principio del período, donde i es antigüedad del equipo cuando el cambio se realiza S(i)= Valor de rescate recibido por el equipo con antigüedad i al final de N año Máxima edad (antigüedad)del equipo≤X1 + N X= Antigüedad del equipo al principio de la etapa Problema; especificar una decisión en cada etapa para minimizar el costo total. Estados; antigüedad del cierto equipo al principio de la etapa Sea; S(x,n)=mínimo costo total hasta el final de período N-esimo dada la antigüedad del corriente equipo en X al principio de la etapa n. 1≤n≤N 0≤X≤ N+1 condiciones limitantes: S(X,N+1)=-S(X) valor de rescate Reemplazar S(X,n)=min Mantener P-t(X)+C(0)+S(1,n+1) C(X)+S(X+1,n+1) Donde: P-t(x) Reemplazo C(0) Mantenimiento S(1,n+1)C. a la próxima etapa C(x) Mantener S(X+1,n+1) a la próxima etapa M.C. Héctor Martínez Rubin Celis 15 Programación Dinámica Investigación de Operaciones II Ejemplo: Período Planeado 4 años Antigüedad del equipo al año 0 = 2 años Costo de nuevo equipo $100 Costo de mantenimiento Valor de rescate Valor considerado a cambio C(0)=50 t(0)=80 C(1)=60 t(1)=60 C(2)=100 t(2)=40 C(3)=140 t(3)=20 C(4)=200 t(>3)=0 Para i >5 C ( i ) = ∞ Condiciones limitantes: M.C. Héctor Martínez Rubin Celis 16 Programación Dinámica s(0)=-80 s(1)=-60 Investigación de Operaciones II s(2)=-40 100+S(3,1)=340 S(2,0)= s(3)=-20 s(4)=0 140+S(4,2)=310 S(3,1)=min 110+S(1,1)=300 ← 130+S(1,2)=240← 200+S(5,3)=290 60+S(2,2)=190← S(4,2)=min S(1,1)=min 150+ S(1,3)=170← 90+S(1,2)=200 100+S(3,3)=170 S(2,2)=min 110+S(1,3)=130← ∞ S(5,3)=min 150-60=90← 60+S(2,3)=110← 140-s(4)=140 S(1,2)=min S(3,3)=min 90+S(1,3)=110← 130-s(1)=130-60=70← 100-S(3)=100-20=80 S(2,3)=min 110-S(1)=110-60=50← 60-S(2)=60-40=20← S(1,3)=min 90-S(1)=90-60=30 11 21 31 41 R - M - R - M Período de decisión con un costo de 300 Problema: Una planta de energía eléctrica tiene un proyecto de generación por 5 años en los cuales se dará mantenimiento al equipo utilizado. El mantenimiento podrá ser dado por 3 equipos diferentes y el costo de mantenimiento dependerá del equipo y del año de antigüedad del proyecto (los 3 equipos proporcionan un eficiente servicio por igual). Los costos de mantenimiento son: Equipo año I II III 1 3 4 6 2 4 5 7 3 6 9 4 8 10 5 11 Los costos de cambiar de política para el mantenimiento son todo cambio a III cuesta 7 M.C. Héctor Martínez Rubin Celis 17 Programación Dinámica Investigación de Operaciones II todo cambio a II cuesta 6 todo cambio a I cuesta 4 Encuentre la mejor política de mantenimiento para el proyecto, la cual minimiza el costo total del mismo. Sea S(n,i) mínimo costo del equipo i en el año n. n(i)+S(n-1,i) no cambio de equipo S(n.i)=min n(i)+R(i)+S(n-1,i) cambio de equipo Equipo II I 4II III 1 3I 7I X X X 9II 15II 23II 6III 13III 22III 32III 41II 2 3 4 Para toda j<i j Equipos previos a i 5 n Otro enfoque de solución: Sea S(n,i)= Mínimo costo del equipo i en el año n. C(n,i)=Costo de mantenimiento del equipo i en el año n R(j,i)= Costo por cambio del equipo j al equipo i Relación recursiva: S(n-1,i)+C(n,i) no cambio de equipo S(n.i)=min S(n-1,i)+C(n,i)+R(j,i) cambio de equipo Etapa 1 Equipo Equipo anterior actual I II III I 3 II 4 III Etapa 2 Equipo Mejor s(1,i) decisión 3 I 4 II 6 6 III Equipo anterior M.C. Héctor Martínez Rubin Celis Mejor 18 Programación Dinámica Investigación de Operaciones II actual I II III I 3+4=7 3+6+5=14 3+3+7=17 Etapa 3 Equipo actual I II III Equipo anterior I II ∞ 9+4+∞=∞ 7+6+6=19 9+6=15 7+9+7=23 9+9+7=25 III 13+4+∞=∞ 13+5+6=25 13+9=22 s(3,i) 15 22 Etapa 4 Equipo actual I II III Equipo anterior I II ∞ ∞ ∞ 15+8=23 ∞ 15+10+7=32 III ∞ 22+8+6=36 22+10=32 s(3,i) 23 32 Etapa 5 Equipo actual I II III Equipo anterior I II ∞ ∞ ∞ ∞ ∞ 23+11+7=41 Costo Total = 41 Etapa 1 2 Decisión II II 4+4+4=12 4+5=9 4+7+7=18 3 II 4 II III 6+4+4=14 6+6+5=17 6+7=13 s(2,i) 7 9 13 decisin I II III Mejor decisión II III Mejor decisión II II o III Mejor III ∞ ∞ 32+11=43 5 II s(3,i) 41 decisión II III ASIGNACION DE RECURSOS El problema mas simple de localización de recursos consiste en que se nos dan X unidades de un recurso y se nos dice que este recurso debe ser distribuido entre N actividades. Se nos proporcionan M.C. Héctor Martínez Rubin Celis 19 Programación Dinámica Investigación de Operaciones II N tablas de datos ri(x) (para i=1,...N) y X=0,1,...X) que representan el retorno por localizar X unidades del recurso en la actividad i. El problema consiste en localizar todas las X unidades del recurso en las actividades de tal manera que el retorno total sea máximo. N ∑ri (x) i=1 Sujeto a; N ∑Xi =X, El coeficiente asociado a Xi es la unidad y no aparece i=1 Xi ≥ 0 y Enteros Formulación de Programación Dinámica Habiendo designado las actividades arbitrariamente (números fijos) desde 1 a N, se toman X unidades del recurso y primero localizamos X1 unidades en la actividad 1. Entonces localizamos X2 unidades de las restantes X-X1 unidades del recurso a la actividad 2, entonces X3 unidades del recurso a la actividad 3, etc. Función de Valor Óptimo S( X,K)=/K(X) es el máximo retorno obtenido desde las actividades K hasta N, dadas X unidades del recurso restantes para ser asignadas. La variable de estado será la asignación total hecha hasta ahora. Y K puede definirse como el número de actividades hasta ahora consideradas. Relación Recursiva S(X,K)=/k(X)=Max [rK(XK)+/K+1(X- Xk}] S(X,K)=Max [rK(XK)+S(X-XK , K+1)] Donde Xk= 0,1,...,X y es la asignación en la actividad K y fk(x) debe ser calculada para Xk=0,1,...,X La condición limitante fN(x)=rN(x) Ejemplo: Max 3x12+ 4x22+ 5x32 Sujeto a; x1+ x2+ x3≤4 x´s ≥ 0 y Enteros M.C. Héctor Martínez Rubin Celis 20 Programación Dinámica Investigación de Operaciones II Retorno r1= 3x12 r2= 4x22 r3= 5x32 Etapa 1 (Variable x1) f1(4) = 0 0+f2(4)=80 ← 1 3+f2(3)=48 2 12+f2(2)=32 3 27+f2(1)=32 4 Etapa 2 (Variable x2 ) f2(4) f2(3) f2(2) = = = 48+f2(0)=48 0 0+f3(4)=80 ← 1 4+f3(3)=49 2 16+f3(2)=36 3 36+f3(1)=41 4 64+f3(0)=64 0 0+f3(3)=45 ← 1 4+f3(2)=24 2 16+f3(1)=21 3 36+f3(0)=36 0 0+f3(2)=20 ← 1 4+f3(1)=9 2 16+f3(0)=16 M.C. Héctor Martínez Rubin Celis 21 Programación Dinámica f2(2) Investigación de Operaciones II 0 0+f3(1)=5 ← 1 4+f3(0)=4 = Etapa 3 (Variable x3 ) r3(4)=f3(4)=80 r3(3)=f3(3)=45 r3(2)=f3(2)=20 r3(1)=f3(1)=5 r3(0)=f3()=0 ← Asignación Optima: x1=0, x2=0, x3=4 con un Retorno Optimo de 80 Caso: existe un coeficiente Ci≠1 Solución de problemas de programación lineal o no lineal con un recurso aplicando programación Dinámica: N Max ∑ri Xi i=1 ri ←Retorno por asignar Xi unidades Sujeto a; N ∑ Ci Xi ≤x , donde Ci ←Coeficiente de Xi en la restricción i=1 Xi≥0 y enteros Cada ecuación corresponde a un recurso limitado en disponibilidad. Solución óptima; M.C. Héctor Martínez Rubin Celis 22 Programación Dinámica Investigación de Operaciones II Encontrar la actividad para la cual ri (Xi ) es máxima, considere que la actividad Xi puede tomar valores enteros de 0,1,...,X/Ci y a estos se les denomina valor de la variable de Decisión f(X)=Max rK(XK)+fK+1(X - CKXK) XK=0,1,...X/CK XK ← Cantidad máxima asignada ri (Xi)←función de retorno para la condición limitante fN(X)=rN(X/CN) Modelo: Max r1(X1)+ r2X2)+...+ rn(Xn) Sujeto a; C1X1+ C2X2 + .. . .+ CnXn ≤ X X´s ≥ 0 y Enteros Problema: Max 2X13- 3X1+ X22 -4X2+ X3 Sujeto a; 4X1+ 2X2+3X3≤15 X1,X2,X3 Enteros no negativos ( ≥0 y Enteros ) Retorno: r1(X1)=2X13 -3X1 r2(X2)=X22-4X2 r3(X3)=X3 r1(X1)+f2(15-C1X1) Analiza X1 0 f1(15)= Max 1 2 3 Analiza X2 C1(X1)=4 C2(X2)=2 C3(X3)=3 r1(0)+/2(15)= 0+/2(15)=21 r1(1)+/2(11)=-1+/2(11)=5 r1(2)+/2(7) =10+/2(7) =12 r1(3)+/2(3) =45+/2(3) =46 ← r2(X2)+f3(15-C3X3) M.C. Héctor Martínez Rubin Celis 23 Programación Dinámica /2(15)= Max /2 (11)=max /2 (7)=max /2 (3)=max 0 1 2 3 4 5 6 7 Investigación de Operaciones II 0+/3 (15)=5 -3+/3 (13)=1 -4+/3 (11)=-1 -3+/3(9)=0 0 +/3 (7)=2 5+/3 (5)=6 12+/3 (3)=13 21+/3 (1)=21 ← r2(X2)+f3(11-C3X3) 0 0+/3 (11)=3 1 -3+/3 (9)=0 2 -4+/3 (7)=-2 3 -3+/3 (5)=-2 4 0+/3 (3)=1 5 5+/3 (1)=5 ← r2(X2)+f3(7-C3X3) 0 0 +/3 (7)=2 ← 1 -3 +/3 (5)=-2 2 -4 +/3 (3)=-3 3 -3 +/3 (1)=-3 r2(X2)+f3(3-C3X3) 0 0+/3 (3)= 1 ← 1 -3+/3 (1)=-3 Analiza X3 /3 (15)=5 /3 (13)=4 /3 (11)=3 /3 (9) =3 /3 (7) =2 /3 (5 )=1 /3 (3 )=1 /3 (1 )=0 Asignar 3→X1 0→X2 1→X3 Caso: Varias restricciones Cuando existe más de una restricción (Recurso ) la función de política óptima cambia a; M.C. Héctor Martínez Rubin Celis 24 Programación Dinámica Investigación de Operaciones II fk(X)=max[rK(XK)+fK+1(X- max{X- Ci kXk}] Donde Xk= Min{X / Ci k}, y es el coeficiente de la variable Xk en la ecuación i Ejemplo: Max Z = 13x1- X21-5X22+30.2X2+ 10X3-2.5X23 Sujeto a; X1+ X2 ≤5 es equivalente a 2X1+ 4X2+ 5X3≤10 2X1+ 2X2 ≤10 En 2X1+ 4X2+ 5X3 ≤10 por cada unidad asignada en X1 se consumen 2, por cada unidad asignada en X2 se consumen 4, por cada unidad asignada en X3 se consumen 5. Los valores de las variables estarán comprendidos de la forma siguiente Valores posibles 0 ≤X1≤5 x1=0,1,2,3,4,5 0 ≤X2≤2 x2=0,1,2 x3=0,1,2 0 ≤X3≤2 R1(x1)=13X1-X21 R2(X2)=-5X22+30.2X2 f1(10)=Max 0 1 2 3 4 5 0+/2(1,0)=40.2 12+/2(8)=52.2 22+/2(6)=47.2 30+/2(4)=55.2← 36+/2(2)=36 40+/2(0)=40 f2(10)=max 0 0+/3 (10)=10 1 25.2+/3(6)=32.7 2 40.4+/3(2)=40.2← f2(8)=max 0 0+/3(8)=7.5 1 25.2+/3(4)=25.2 2 40.4+/3(0)=40.2← R3(X3)=10X3-2.5X23 30+ f2(10- Max{1(3),2(3)}=30+ f2(10-6)=30+ f2(4) 30+ f2(10- Max{1(4),2(4)}=30+ f2(8-6)=36+ f2(2) 0 0+/3(6)=7.5 f2(6)=max 1 1+/3(2)=25.2← 0 0+/3(4)=0 f2(4)=max 1 25.2+/3(0)=25.2← M.C. Héctor Martínez Rubin Celis 25 Programación Dinámica Investigación de Operaciones II f2(2)=0 f3(10)= max f3(8)= max 0 0 1 7.5 2 10← 5X3=10 X3=1 0 0 1 7.5← f3(4)= 0← 2 5X3=8 X3=1 f3(2)= 0← 0 0 f3(6)= max f3(0)= 0← 5X3=6 X3=1 1 7.5← X1=3, X2=1, X3=0 PROBLEMA DE ASIGNACION DE RECURSOS En el I.T.T. se tiene un promedio del 47% de calificación en lectura de los alumnos de nuevo ingreso. Si se contratan 5 maestros especiales en Educación y estos son asignados a las tres carreras con el promedio más bajo de lectura para mejorar la habilidad en general de los estudiantes en esas carreras. ¿Como deberán ser asignados estos maestros tal que se maximice la efectividad en lectura por parte de los alumnos en estas carreras? Porcentaje de incremento en el nivel de lectura Carrera No. de Maestros A B C Xn es el No. de maestros disponibles para asignar en la etapa n. 0 0 0 0 dn es el No. de maestros asignados en la 1 6 9 12 etapa n. 2 10 14 18 Xn-1 = Xn - dn Es la relación recursiva. 3 15 18 21 4 18 20 21 5 20 20 21 Secuencia de la asignación Asignar => Asignar => en A en B M.C. Héctor Martínez Rubin Celis Asignar en C 26 Programación Dinámica 3 Etapas Etapa 1 Etapa 2 Etapa 3 Investigación de Operaciones II Carrera C Carrera B Carrera A ETAPA 1 (Carrera C) Variable de Retorno Decisión Retorno Estado X1 Inmediato óptima d1 óptimo ───────────────────────── 0 0 0 0 1 12 1 12 2 18 2 18 3 21 3 21 4 21 3o4 21 5 21 3,4 o 5 21 ETAPA 2 (Carrera B) Variable de Decisión (d2) Estado X2 0 1 2 3 4 5 ──────────────────────────── 0 0 1 12 9+0 2 18 9+12 14+0 3 21 9+18 14+12 18+0 4 21 9+21 14+18 18+12 20 5 21 9+21 14+21 18+18 20+12 20 Retorno Decisión óptimo óptima d2* 0 12 21 27 32 36 0 0 1 1 2 3 ETAPA 3 (Carrera C) Retorno Decisión Variable de Decisión (d3) Estado óptimo óptima X3 0 1 2 3 4 5 d3 * ────────────────────────── 5 0+36 6+32 10+27 15+21 18+12 20+0 38 1 Asignar: 1 maestro => A 2 maestros => B 2 maestros => C Efectividad Total = 38 M.C. Héctor Martínez Rubin Celis Efectividad 6 14 18 27 Programación Dinámica Investigación de Operaciones II Otro enfoque al problema anterior fn(x) = Max [ Eixi + fn-1( X-xi ) ] Relación recursiva Donde; En es la efectividad por asignar maestros en la etapa n xn Son el número de maestros asignados en la etapa n X es la cantidad de recursos a asignar Etapa 1 (Carrera A) f1(0) = 0 ; f1(1) = 12 ; f1(2) = 18; f1(3) = 21 ; f1(4) = 21 Etapa 2 (Carrera B) 0 0+ f1(5) = 21 1 9+ f1(4) = 30 f2(5) = Max 2 14+ f1(3) = 35 f2(4) = Max 3 18+ f1(2) = 36 ← 4 20+ f1(1) = 32 5 20+ f1(0) = 20 f2(3) = Max f2(1) = Max 0 0+ f1(3) = 21 1 9+ f1(2) = 27 ← 2 14+ f1(1) = 26 f2(2) = Max 3 18+ f1(0) = 18 0 0+ f1(4) = 21 1 9+ f1(3) = 30 2 14+ f1(2) = 32 ← 3 18+ f1(1) = 30 4 20+ f1(0) = 20 0 0+ f1(2) = 12 1 9+ f1(1) = 21 ← 2 14+ f1(0) = 14 0 0+ f1(1) = 12 ← 1 9+ f1(0) = 9 Etapa 3 (Carrera C) 0 0+ f2(5) = 36 1 6+ f2(4) = 38 ← f3(5) = Max 2 10+ f2(3) = 37 3 15+ f2(2) = 29 4 18+ f2(1) = 30 5 20+ f2(0) = 20 Etapas Carreras Efectividad 1 C 18 2 B 14 3 A 6 Total de efectividad = 38 CONFIABILIDAD COMPONENTES EN SERIE Una compañía fabricante de T.V. estereos y radios se enfrenta a un serio problema en uno de sus productos debido a que las ventas de este han sido muy bajas. Después de ciertas investigaciones realizadas se ha encontrado que las causas son debidas a que la vida del cinescopio es muy baja M.C. Héctor Martínez Rubin Celis 28 Programación Dinámica Investigación de Operaciones II (corta) y para resolver el problema se deberá aumentar la vida de uso del cinescopio. El cinescopio esta formado por 3 unidades en serie y en el cual, cada unidad puede estar formada por 1,2 o 3 partes en paralelo. El cinescopio fallara si alguna de las unidades falla, entonces se deseara aumentar la confiabilidad del cinescopio (probabilidad de que el cinescopio trabaje después de haber transcurrido cierto tiempo t). El costo del cinescopio esta restringido a $1000.00, y los costos de las partes por unidad ya instaladas son; MATRIZ DE COSTOS Partes 1 2 3 Unidad 1 2 3 200 300 100 400 500 200 500 600 300 Etapa 1 R1 costo 1 .5 200 2 .75 400 3 .875 500 Etapa 2 R2 costo Etapa 3 1 .7 300 1 2 .91 500 2 3 .973 600 3 R3 costo .6 100 .84 200 .936 300 Ri← Confiabilidad .75 .7 .6 .75 .91 .84 M.C. Héctor Martínez Rubin Celis 29 Programación Dinámica .875 Investigación de Operaciones II .973 .936 Reemplazar componentes individuales por componentes paralelos en bloque Costo total aceptable $10 Max R(X1)*R2(X2)*R3 (X3 ) X11 tómese la mejor elección X1, X2, y X3 tal que se maximice la confiabilidad X21 X31 y enteros CK es el Costo asignado a K unidad con cierto número de partes C1(X1)+C2(X2)+C3(X3)10 Etapas = diferentes unidades de componentes Estados = diferentes partes de la unidad. /K(X)= Valor de la función XK =numero de partes de cierta unidad fK(XK)=Max rK(XK)/K+1(X-XK) Max R1(X1)*R2(X2)*R3(X3) Sujeto a; C1(X1)+C2(X2)+C3(X3) 10 XS0 y Enteros Partes 1 .5*/2 (8)=.4259 f1(10)=MAX 2 .75*/2(6)=.4914 3 .875*/2(5)=.5127 ← Partes f2(8)=max 1 .7*/3(5)=.6552 2 .91*/3(3)=.85176 ← 3 .973*/3(2)=.78708 M.C. Héctor Martínez Rubin Celis 30 Programación Dinámica Investigación de Operaciones II Partes f2(6)=max 1 .7*/3(3)=.6552← 2 .91*/3(1)=.546 3 .973*/3(0)=no factible Partes f2(5)=max 1 .7*/3(2)=.588← 2 .91*/3(0)=no factible Partes f3(5)=max Partes f3(3)=max Partes f3(2)=max 1 .6 2 .84 3 .936← 1 .6 2 .84 3 .936← 1 .6 2 .84← Partes f3 (1)= 1 .6 3 Partes al componente 1 Costo 5 1 Partes al componente 2 Costo 3 2 Partes al componente 3 Costo 2 ─── $10 Confiabilidad total del Cinescopio .5127 M.C. Héctor Martínez Rubin Celis 31