ICS 1102 (3) Optimización Departamento de Ingeniería Industrial y de Sistemas Pontificia Universidad Católica de Chile Programación Entera III Prof. Claudio Seebach - 2do Semestre 2006 Ejemplos de modelación (1) • Distribución de las tareas semanales entre dos hermanos: • La siguiente tabla refleja las tareas semanales y el número de horas que tardaría cada uno Compras Cocinar Lavar platos Lavar ropa Juan 4,5 7,8 3,6 2,9 Luis 4,9 7,2 4,3 3,1 • Las tareas no son divisibles y cada uno debe tomar dos. • Cómo se asignan de modo de minimizar el tiempo total requerido para llevarlas adelante? Prof. Claudio Seebach ICS 1102 – Optimización / Clase 25 Ejemplos de modelación (2) • Se debe decidir en qué proyectos invertir de una cartera de alternativas: • La siguiente tabla presenta un listado de proyectos y la ganancia y capital requerido (en millones de dólares) para cada uno 1 2 3 4 5 6 7 Ganancia 17 10 15 19 7 13 9 Capital 43 28 34 48 17 32 23 • • • • Se cuenta con 100 millones de dólares. Los proyectos 1 y 2 son mutuamente excluyentes Los proyectos 3 y 4 son mutuamente excluyentes Para realizar el proyecto 3 se debe realizar uno de los dos primeros proyectos. Lo mismo para el proyecto 4. • ¿Qué proyectos realizar de modo de maximizar las ganancias? Prof. Claudio Seebach ICS 1102 – Optimización / Clase 25 Ejemplos de modelación • Variable: • xi=1 si se ejecuta proyecto i, 0 en otro caso. 7 Max $ xi gi i =1 s.a. 7 $xc i i ! 100 i =1 x1 + x2 ! 1 x3 + x4 ! 1 x3 ! x1 + x2 x4 ! x1 + x2 xi " {0,1} #i " {1,..., 7} Prof. Claudio Seebach ICS 1102 – Optimización / Clase 25 Ejemplos de modelación (3) • Supongamos que se debe cumplir una de dos restricciones (por ejemplo hay recursos alternativos). • Equivale a la condición lógica “o”, es decir se cumple esta restricción “o” esta otra. • Por ejemplo sujeto a 4 x1 + 2 x2 ! 18 "o" 3 x1 + x2 ! 16 • z=1 si se satisface primera restricción, 0 si la segunda sujeto a 4 x1 + 2 x2 ! 18 + M (1 " z ) 3 x1 + x2 ! 16 + Mz • En que M es un número suficientemente grande. • Notar que en los modelos de optimización se exige que se cumplan todas las restricciones para que el punto sea factible. Esto equivale a condición lógica “y”. Prof. Claudio Seebach ICS 1102 – Optimización / Clase 25 Ejemplos de modelación (3) • Supongamos que se deben cumplir k de un conjunto de m restricciones (k<m). sujeto a "o" f 2 ( x1 , x2 ,...xn ) ! d 2 "o" ... • Siguiendo una lógica análoga, se definen variables auxiliares yi sujeto a para cada restricción que corresponde a 1 si no se satisface la restricción i, y 0 si sí se satisface • En que M es un número suficientemente grande. Prof. Claudio Seebach f1 ( x1 , x2 ,...xn ) ! d1 f m ( x1 , x2 ,...xn ) ! d m f1 ( x1 , x2 ,...xn ) ! d1 + My1 f 2 ( x1 , x2 ,...xn ) ! d 2 + My2 ... f m ( x1 , x2 ,...xn ) ! d m + Mym m #y i = m"k i=1 ICS 1102 – Optimización / Clase 25 Ejemplos de modelación (4) • Supongamos que una función puede tomar un número finito de valores posibles. ! d1 "d " f1 ( x1 , x2 ,...xn ) = # 2 "M "$d m • Se definen variables auxiliares yi para cada posible valor que corresponde a 1 si la función toma el valor di, y 0 si no m f ( x1 , x2 ,...xn ) = # di yi i =1 m #y i =1 i=1 yi ! {0,1}, "i ! {1,...., m} Prof. Claudio Seebach ICS 1102 – Optimización / Clase 25 Ejemplos de modelación (5) • Se debe escoger a lo sumo k productos de entre n para producción. • yi=1 si se produce producto i, 0 en otro caso • xi= cantidad a producir del producto i xi ! Myi , "i # {1,...., n} n $y i !k i=1 yi # {0,1}, "i # {1,...., n} • En que M es un número suficientemente grande. Prof. Claudio Seebach ICS 1102 – Optimización / Clase 25 Ejemplos de modelación (6) • Problema de localización de plantas. Se debe localizar un conjunto de plantas de entre un conjunto de posibles m sitios de modo de servir a n clientes. • Existe un costo fi por instalarse en el sitio i • Cada cliente demanda dj • El costo unitario de despachar productos de i a j es cij • yi=1 si se instala planta en i, 0 en otro caso • xij= cantidad a enviar del sitio i al cliente j Min n m n $$ c x + $ f y ij ij i =1 j =1 sujeto a i i i =1 n $x ij = dj, i=1 xij # Myi , !j " {1,...., n} !i " {1,...., n}, !j " {1,...., m} yi " {0,1}, !i " {1,...., n} xij % 0, !i " {1,...., n}, !j " {1,...., m} Prof. Claudio Seebach ICS 1102 – Optimización / Clase 25 Ejemplos de modelación (7) • Consideremos una función objetivo lineal a trazos en la variable y especificada por sus puntos (ai,f(ai)) f(y) a1 a2 a3 a4 a5 a6 y • ¿Cómo especificar una función como ésta en un problema de optimización? Definamos la siguiente variable: • xi=1 si y está en el tramo i, 0 en otro caso. (i en {1,…,r-1}) Prof. Claudio Seebach ICS 1102 – Optimización / Clase 25 Ejemplos de modelación (7) • Supongamos que y está en el tramo i (que va de ai a ai+1). En ese caso podemos definirla como una combinación lineal de los extremos del tramo. Es decir: y = !i ai + !i +1ai +1 ; !i + !i +1 = 1; !i , !i +1 " 0 • En términos más generales podemos decir: r y = % !i ai ; i =1 r %! i = 1; !i " 0, #i $ {1,.., r} i =1 Prof. Claudio Seebach ICS 1102 – Optimización / Clase 25 Ejemplos de modelación (7) • Claramente debe suceder que !i sea positivo sólo si y está en el tramo i o i+1. Es decir: !1 # x1 !i # xi "1 + xi , $i % {2,.., r " 1} !r # xr "1 r "1 &x i =1 i =1 xi % {0,1}, $i % {1,.., r " 1} • Y la función buscada queda como: r f ( y ) = % !i f (ai ); i =1 r %! i i =1 = 1; !i " 0, #i $ {1,.., r} • Ese modelo es lineal en las variables Prof. Claudio Seebach ICS 1102 – Optimización / Clase 25