Gestión de Operaciones II IN4704 Profesor: Fernando Ordoñez P. Auxiliar: Felipe Lagos G. Semestre: Otoño 2012 IN4704 - Gestión de Operaciones II 1. Métodos para programación entera Cortes de gomory Sea x∗ una solución óptima factible y B su matriz asociada. Se particiona x en un vector para las variables básicas, xB , y uno para las no básicas, xN . Ax = b B−1 Ax = B−1 b xB + B−1 AN xN = B−1 b Sea āij = (B−1 Aj )i y āi0 = (B−1 b)i . Consideremos una ecuación donde āi0 es fracción: xi + ∑ āij x j = āi0 j∈ N Como x j debe ser entero se debe cumplir que: xi + ∑ bāij cx j ≤ bāi0 c j∈ N puesto que en el óptimo xi∗ = āi0 , x ∗j = 0 para todo j ∈ J no básico y b āi0 c < āi0 . Agregando estas restricciones sistemáticamente se logra resolver el problema de programación entera. Branch and bound Branch and bound usa un enfoque "dividir y conquistar"para explorar un conjunto factible de soluciones enteras. Para no revisar todo el junto, utiliza cotas del óptimo para descartar conjuntos. Consideremos un conjunto F factible para el siguiente problema mı́n c0 x s.t. x ∈ F Si dividimos F en un conjunto finito de subconjuntos, Fi con i = 1, ..., k y se resuelven separadamente cada uno mı́n c0 x s.t. x ∈ Fi i = 1, ..., k 2 IN4704 - Gestión de Operaciones II Entonces comparamos el óptimo de la solucion para cada subproblema y elegimos el mejor. Cada subproblema se supone que es tan complejo como el inicial, teniendo que ser resueltos con el mismo método. Cada subproblema puede generar más subproblemas. Además se asume que se tiene un algoritmo relativamente eficiente, el cual para cada Fi calcula la cota inferior, b( Fi ) b( Fi ) ≤ mı́n c0 x x∈ Fi La idea básica es que mientras el costo óptimo puede que sea difícil de calcular exactamente, la cota inferior debería ser fácil de obtener. El método más conocido para encontrar una cota inferior del problema, es la relajación lineal. Además, para descartar conjuntos es necesario comparar los óptimo con un óptimo factible, U. En efecto, si para algún i se cumple que b( Fi ) ≥ U, este subproblema no debe seguir siendo considerado, pues la mejor solución que puede entregar este subconjunto nunca va a ser mejor que la que ya tenemos. Inicialmente U es algún costo factible conocido para el problema o simplemente ∞. El algoritmo funciona de la siguiente forma: 1. Seleccionar un subconjunto activo de Fi . 2. Si el subproblema es infactible, se debe borrar; en caso contrario, calcular b( Fi ) correspondiente. 3. Si b( Fi ) ≥ U, borrar el subproblema. 4. Si b( Fi ) < U, se puede tanto obtener una solución óptima del subproblema, como dividir este problema en sus subproblemas, los cuales son añadidos a la lista de subproblemas activos. Existen muchas variantes de este algoritmo. Algunas consideraciones son: (a) Existen muchas formas de elegir el subproblema activo. Se puede usar "Búsqueda por nivel.o "Búsqueda por profundidad". (b) Se puede obtener la cota inferior de varias maneras. La más popular es la relación lineal. (c) Para dividir un subproblema se pueden usar varios métodos Si para encontrar la cota inferior del problema usamos la relajación lineal, sabemos que al momento de encontrar una solución con valores enteros, se debe actualizar U y podemos borrar el subproblema. Si encontramos una solución no entera, x∗ , elegimos una componente no entera xi∗ y creamos dos subproblemas, con las siguientes restricciones: 3 IN4704 - Gestión de Operaciones II xi ≥ b xi∗ c, o xi ≥ d xi∗ e A pesar de que Branch & Bound puede tomar un tiempo exponencial en encontrar una solución, produce soluciones aceptables en un tiempo pequeño. Pregunta 1 Se debe decidir que objetos llevar a un paseo a la playa, los cuales se deben transportar en un bolso de capacidad total de 150 unidades de volumen. Cada uno de estos objetos reporta una utilidad por llevarlos, pero también tienen un costo en volumen. Las cosas que puede llevar son: un Quitasol, 6 Parlantes, 3 Toallas y un Notebook. Índice 1 2 3 4 Objeto Quitasol Parlantes Toallas Notebook Cantidad 1 6 3 1 Utilidad 40 5 15 25 Espacio 90 20 10 40 Determine la máxima utilidad posible, sin sobrepasar la capacidad del bolso. 1. Escriba la Rejación Lineal del problema. 2. ¿Existe alguna forma simple de obtener la solución óptima del problema relajado, sin realizar ningún algoritmo?, ¿Cómo es? Resuelva mediante este método el problema. 3. Resuelva el problema utilizando el algoritmo Branch & Bound, resolviendo cada nodo mediante el método desarrollado en la parte anterior. Solución 1. La Relajación Lineal del problema es: máx z = 40x1 + 5x2 + 15x3 + 25x4 s.a. 90x1 + 20x2 + 10x3 + 40x4 ≤ 150 x2 ≤ 6 x3 ≤ 3 x1 , x2 ∈ [0, 1] x2 , x3 ∈ R0+ 4 IN4704 - Gestión de Operaciones II 2. La forma más sencilla de resolver el problema es rankear los objetos según la razón Beneficio-Capacidad, que en este caso es la razón Utilidad-Espacio. Índice 1 2 3 4 Objeto Quitasol Parlantes Toallas Notebook Cantidad 1 6 3 1 Utilidad 40 5 15 25 Espacio 90 20 10 40 Razón 0.44 0.25 1.5 0.63 Luego se llevan en primer lugar todos las Toallas que se puedan, es decir, 3, utilizando 30 unidades de volumen. En segundo lugar se agrega el Notebook, con lo que solo quedan 80 unidades de volumen. Luego se agrega el Quitasol pero como no cabe entero, se agregan 8/9 de este objeto, para satisfacer la restricción de capacidad. Con esto queda la siguiente solución: x1 = 8/9, x2 = 0, x3 = 3 x4 = 1 3. Se inicializa el incumbente (mejor solución entera encontrada hasta ahora) en z̄ = −∞. Observaciones: Las variables xi son binarias, por lo tanto alramificar hay solo dos opciones. En general para variables enteras se ramifica utilizando desigualdades. Llamamos solución entera a aquella en la cual TODAS las variables toman valores enteros. Los 3 criterios para dejar de ramificar son: Solución entera, Solución peor que el incumbente y Solución Infactible. En este caso de haber resuelto P6 antes que P3 no habría sido necesario resolver P4 ni P5 ya que P3 hubiese caído en el criterio ”Solución peor que el incumbente”. Pregunta 2 Considere el siguiente problema de programación entera: 5 IN4704 - Gestión de Operaciones II P0 x1 = 8/9 x2 = 0 z = 105.5 x3 = 3 x4 = 1 x1 = 0 P1 x1 = 0 x2 = 4 x1 = 1 z = 90 x3 = 3 x4 = 1 P2 x1 = 1 x2 = 0 Sol. Entera x4 = 0 P3 x1 = 1 x2 = 3/2 x4 = 1 z = 92.5 x3 = 3 x4 = 0 x2 ≤ 1 P4 x1 = 1 x2 = 1 z = 103.8 x3 = 3 x4 = 3/4 P6 x1 = 1 x2 = 0 Sol. Entera x2 ≥ 2 z = 90 x3 = 3 x4 = 0 P5 x1 = 1 x2 = 2 Sol. Entera z = 95 x3 = 2 x4 = 1 z = 80 x3 = 2 x4 = 0 Sol. Entera Peor que incumbente Figura 1: Branch and Bound para la Pregunta 1 mı́n x1 − 2x2 s.a. − 4x1 + 6x2 ≤ 9 x1 + x2 ≤ 4 x1 , x2 ≥ 0 x1 , x2 enteros 1. Resuelvalo usando Cortes de Gomory. 2. Resuelvalo usando Branch & Bound. Solución 6 IN4704 - Gestión de Operaciones II 1. Se comienza transformando el problema a su forma estándar: mı́n x1 −2x2 s.a. −4x1 +6x2 + x3 =9 x1 + x2 + x4 = 4 x1 , ..., x4 ≥ 0 x1 , ..., x4 enteros Se resuelve relajando linealmente el problema con lo que se obtiene un óptimo x1 = (15/10, 25/10). La ecuación que se obtiene de juntar las primeras dos igualdades es: x2 + 1 4 25 x3 + x4 = 10 10 10 Tomando parte entera a esta ecuación y usando las condiciones de corte, se obtiene la siguiente desigualdad: x2 ≤ 2 En su forma estándar, se debe agregar la variable x5 ≥ 0 y la restricción x2 + x5 = 2. El nuevo óptimo, con esta restricción es x2 = (3/4, 2). Tomemos la desigualdad recién agregada y −4x1 + 6x2 + x3 = 9. Sacando x2 se llega a: 6 3 1 x1 − x3 + x5 = 4 4 4 Nuevamente tomando parte entera y cosiderando los cortes de Gomory: x1 − x3 + x5 ≤ 0 Lo cual si dejamos en función de x1 y x2 es simplmente: −3x1 + 5x2 ≤ 7 Con esta nueva restricción se llega finalmente al óptimo buscado: x3 = (1, 2). 7 IN4704 - Gestión de Operaciones II 2. Iniciamos el incumente en z̄ = ∞. Resolviendo la relajación lineal se obtiene x1 = (1.5, 2.5). La función objetivo correspondiente es z = −3.5. Con esto, se generan dos subproblemas, uno con la restricción z2 ≥ 3 (subproblema F1 ) y x2 ≤ 2 (subproblema F2 ). F1 es infactible por lo que se saca de la lista. La solución óptima de F2 es x2 = (3/4, 2), lo que genera un z = −3.25. Nuevamente se generan dos restricciones y dos subproblemas, x1 ≥ 1 (F3 ) y x1 ≤ 0 (F4 ), por lo que la lista de problemas a resolver consiste en { F3 , F4 }. El problema F3 tiene como solución x3 = (1, 2), el cual es entero y por lo tanto actualizamos el incumbente. z̄ = −3. Sacamos F3 de la lista y vemos F4 . EL óptimo de este problema es x4 = (0, 3/2) y su z = −3. Dado que z ≥ U, no exploramos F4 y ya no quedan problemas por resolver. La solución final es x3 = (1, 2) x2 x2 −3x1 + 5x2 ≤ 7 x x2 x 1 x 3 x2 x2 ≤ 2 1 x3 x2 ≥ 3 x2 ≤ 2 x1 ≥ 1 x1 ≤ 0 x1 (a) x1 (b) Figura 2: En (a) restricciones generadas por Cortes de Gomory, en (b) por Branch & Bound 8 IN4704 - Gestión de Operaciones II 2. Revenue Management El problema que se estudia es revenue management para un único recurso basado en la cantidad, y donde se debe administrar diferentes clases de demandas. Existen dos ejemplos clásicos en que se aplica: un vuelo sin escalas y reserva de habitaciones para una fecha determinada. Vamos a asumir que existe una capacidad para n distintas clases, las cuales son perfectamente segmentadas. Además, asumiremos que las unidades de capacidad son homogéneas y que cada cliente utiliza un cupo. El problema principal es cómo reservar óptimamente este recurso para la demanda. Existen distintos mecanismos para controlar la disponibilidad. Algunos son: Booking Limits: Es una forma de controlar la disponibilidad a través de la capacidad para una clase en algún momento del tiempo. Este control puede ser particionado o anidado. El particionado divide la capacidad disponible en bloques separados y solo pueden ser vendidos a la clase asignada. Esto significa que no importa si queda disponibilidad en otras clases cuando la una de ellas ya esta copada, igual no se venderá un cupo más. Con el control anidado, la capacidad disponible a diferentes clases sí puede superponerse, pero de una forma jerárquica según las clases. Supongamos que b j es el límite anidado. Entonces b j es el número máximo de capacidad que está disponible para las clases j, j + 1, ..., n. Este método evita el problema de capacidad para las clases superiores cuando quedan unidades en clases "menores". Niveles de protección: Es muy parecido a booking limits solo que este caso se define y j como la cantidad reservada para las clases j, j − 1, ..., 1 combinada. La relación con bj , b j = C − y j −1 j = 2, ..., n donde C es la capacidad. Por conveniencia definimos b1 = C y yn = C. Standard versus theft nesting: El proceso estándar para usar booking limits o niveles de protección es el siguiente. Se comienza con C unidades de capacidad y se comienzan a recibir reservas. Se acepta la reserva de la clase j si (1) existe capacidad disponible, (2) el número total de de pedidos aceptados por la clase j hasta el momento es menor que el límite b j o la capacidad restante es mayor o igual a y j−1 para las clases mayores que j. Otra alternativa es theft nesting. Este proceso no solo reduce disponibilidad para la clase j, sino también roba"disponibilidad a todas las demás clases menores, en este caso j + 1, j + 2, ..., n. 9 IN4704 - Gestión de Operaciones II Bid prices: Lo que distingue bid-prices de booking limits y niveles de protección es que bid-price está basado en los ingresos esperados, en vez de los controles por clases. Este sistema de control establece un precio umbral (el que puede depender de la capacidad remanente, tiempo, etc), con el cual se acepta una venta siempre y cuando supere este umbral. Este sistema puede ser más simple que los otros dos, puesto que lo único que requeriere en un momento determinado es un precio umbral, en vez de un conjunto de capacidades para las clases. Generalmente se establece una función π ( x ), donde x es la capacidad restante. Además, se puede considerar el tiempo como criterio para definir un precio. Para exponer algunos modelos se asumen ciertos supuestos: 1. La demanda para diferentes clases llega en intervalos que no se superponen en el tiempo. 2. La demanda son variables aleatorias independientes. 3. La demanda no depende de la capacidad restante. 4. Se asume que la demanda llega de forma agregada en una sola etapa, y la decisión es cuántos clientes aceptar. 5. No existen grupos de clientes que aceptar. 6. Se asume un modelo neutro al riesgo. Modelo para dos clases de Littlewood Se asume un solo recurso y dos clases con precios p1 > p2 . La capacidad es C y no hay cancelaciones ni sobreventa. La demanda de la clase j es D j , la distribución se denota por Fj (·). La demanda por la clase dos llega primero. El problema es cuánto vender a esta clase antes de que llegue la clase 1. Este problema es muy similar al problema de Newsvendor problem ya que la decisión se debe tomar en base a un análisis marginal. Supongamos que tenemos x unidades de capacidad restantes y que recibimos una reserva de la clase 2. Si aceptamos la reserva recolectamos p2 . Si no la aceptamos, venderemos la unidad x-ésima solo si la demanda de la clase 1 es igual o mayor a x, es decir, D1 ≥ x. Por lo tanto, la ganancia esperada por reservar la x-ésima unidad a la clase 1 (el valor marginal esperado) es p1 P( D1 ≥ x ). Aceptaremos vender la unidad a 2 si el precio p2 excede este valor marginal, p2 ≥ p1 P( D1 ≥ x ) Se debe notar que el lado derecho es decreciente en x, por lo tanto existe un nivel y∗j , tal que aceptaremos la clase 2 si la capacidad restante sobrepasa este nivel. En otras palabras se cumple que: p2 < p1 P( D1 ≥ y1∗ ) y p2 ≥ p1 P( D1 ≥ y1∗ + 1) 10 IN4704 - Gestión de Operaciones II Si la función de distribución F1 ( x ) es continua, entonces, p2 = p1 P( D1 > y1∗ ) o, equivalentemente, y1∗ =F −1 p2 1− p1 Esta expresión se conoce como regla de Littlewood, y es óptimo para y1∗ . Alternativamente, usando bid-price, π ( x ) = p1 P( D1 > x ) Este resultado es un caso especial para el modelo de n clases. Modelo para n clases Nuevamente se asume que las n clases llegan en n etapas, ordenadas según los valores de venta. Se cumple que p1 > p2 > · · · > pn . Por lo tanto, la primera en llegar es la clase n, seguida por n − 1, así hasta que lleguen todas. Con estos supuestos se plantea un problema de programación dinámica, el cual en el caso de demanda continua, se puede encontrar el óptimo. El vector y∗ = (y1∗ , y2∗ , ..., y∗n ), cumple que P( Bj (y∗ , D )) = p j +1 p1 ∀j donde Bj (y, D ) ≡ { D1 > y1 , D1 + D2 > y2 , ..., D1 + · · · + D j > y j } Como se mencionó anteriormente para n = 2, recuperamos la regla de Littlewood. Cabe destacar que Bj (y, D ) = Bj−1 (y, D ) ∩ { D1 + · · · + D j > y j } por lo que es necesario que se cumpla Bj−1 (y, D ) para que se cumpla Bj (y, D ). Este problema se puede resolver según dos enfoques, programación dinámica o Monte carlo. El algoritmo se puede representar en seudocódigo de la siguiente forma: 11 IN4704 - Gestión de Operaciones II Algorithm 1: Monte carlo para RM 1 2 3 4 5 6 7 8 9 10 11 12 Generar y guardar K vectores de demanda aleatorios dk = (d1k , ..., dkn ) k = 1, j = 1 while k ≤ K y j ≤ n − 1 do Calcular la suma: Skj = d1k + d2k + ... + dkj Formar el vector Sk = (S1k , ..., Snk ) Inicializamos el conjunto K 0 = {1, ..., K } y j = 1 while j ≤ n − 1 do Ordenar los vectores Sk , k ∈ K 0 por la j-ésima componente, Skj 0 Se llamará [l ] al l-ésimo elemento de j k K en esta lista ordenada Buscamos el índice l ∗ = p j +1 pj [l ∗ ] · |K 0 | y calculamos y j = 21 (S j [ l ∗ +1] + Sj ) Actualizamos K 0 , esto es, quitando los valores tales que Skj < y j j=j+1 Para encontrar intervalos de confianza para estos parámetros debemos hacer esta simulación varias veces, con datos distintos generados a partir de las distribuciones. Heurísticas La mayoría de los sistemas implementados para encontrar los límites de venta, utilizan heurísticas para ello. Tienen varias ventajas como códigos simples de utilizar, son de rápida ejecución y obtienen valores muy cercanos al óptimo. Existen dos conocidas heurísticas: EMSR-a y EMSR-b, las cuales se adaptan a los supuestos mencionados anteriormente. EMSR-a Es la heurística más utilizada, a pesar de que EMSR-b obtiene mejores resultados. Está basada en la idea de aplicar la regla de Littlewood sucesivamente a pares de clases. Consideremos la etapa j + 1 en que la j + 1-ésima clase llega, con el precio p j+1 . Intentamos calcular cuánto se debe reservar a las demás clases j, j − 1, ..., 1, es decir, encontrar y j para la clase j y mayores. Para ello, consideremos una clase k y las restantes clases j, j − 1, ..., 1 y comparemos k con j + 1 de forma aislada. Usando la regla de Littlej +1 wood y la cantidad yk (correspondiente a la cantidad que le reserva j + 1 a k) se cumple que, p j +1 j +1 P ( Dk > y k ) = pk Repitiendo para cada clase k = j, j − 1, ..., 1, se consigue encontrar cuál es la capacidad que tienen disponibles las clases j, j − 1, ..., 1 simplemente sumando, j yj = ∑ yk j +1 k =1 12 IN4704 - Gestión de Operaciones II Durante un tiempo se pensó incluso que este era un óptimo, pero tiempo después se comprobó que no era así. En efecto, esta heurística tiene el problema de ser demasiado conservadora, ya que no considera el efecto de la demanda agregada. Esto quiere decir que arroja malos resultados cuando los precios de las demandas futuras son muy parecidos. Por ejemplo, para j + 1 supongamos que p j = p j−1 = · · · = p1 = p, en vez de considerar estas j clases como una sola, realiza el cálculo para cada una, por lo que y j será mayor de lo que debería. EMSR-b Es una alternativa que intenta evitar el efecto agregado de EMSR-a. Este método también utiliza Littlewood para dos clases, pero lo hace agregando la demanda por niveles. Además, usa el precio de venta ponderado según la esperanza de la demanda de cada una de las demandas futuras. Consideremos la etapa j + 1 en la cual queremos determinar el nivel de protección y j . Definamos la demanda agregada de j como j Sj = ∑ Dk k =1 y el precio ponderado, p̄ j , como j p̄ j = ∑ k = 1 p k E ( Dk ) j ∑ k = 1 E ( Dk ) Lo niveles y j se elijen usando la siguiente ecuación: P(S j > y j ) = p j +1 p̄ j Pregunta 1 Considere cuatro clases con una demanda normalmente distribuida y con precios de venta que aparecen en la siguiente Tabla: j 1 2 3 4 pj 1050 567 534 520 Datos demanda µj σj 17.3 5.8 45.1 15 39.6 13.2 34 11.3 Cuadro 1: Modelo estático de un solo recurso 13 IN4704 - Gestión de Operaciones II Encuentre los niveles y j a reservar usando EMSR-a, EMSR-b y el óptimo a través de simulación. Solución Comencemos con EMSR-a: p2 2 − 1 1 − p1 σ1 . Al reemplazar se obtiene Para y1 , se cumple que y1 = y1 = µ1 + φ y1 = 16.71, lo cual corresponde a la cantidad reservada exclusivamente para la clase 1. Para la clase 2 el cálculo es el siguiente: p3 3 −1 σ1 y1 = µ1 + φ 1− p1 = 17.1 p3 3 −1 σ2 y2 = µ2 + φ 1− p2 = 21.5 y2 = y31 + y32 = 38.7 Finalmente para la clase 3, y41 = µ1 + φ −1 p 1− 4 p1 p 1− 4 p2 p 1− 4 p3 σ1 = 17.4 y42 = µ2 + φ −1 σ2 = 24.3 y43 = µ3 + φ −1 σ3 = 13.99 y3 = y41 + y42 + y43 = 55.68 Usando EMSR-b, se consiguien los siguientes y j : Para la clase 1 es el mismo cálculo que en EMSR-a, por lo tanto, y1 = 16.71. Para la clase 2, q p3 · ( µ1 + µ2 ) −1 2 2 1− y2 = µ1 + µ2 + σ1 + σ2 · φ µ1 p1 + µ2 p2 = 50.94 mientras que para la 3, y3 = µ1 + µ2 + µ3 + q σ12 + σ22 + σ12 ·φ −1 p · ( µ1 + µ2 + µ3 ) 1− 4 µ1 p1 + µ2 p2 + µ3 p3 = 83.15 14 IN4704 - Gestión de Operaciones II La tabla de resumen es la siguiente: Niveles de protección j 1 2 3 4 OPT 16.71 42.5 72.3 EMSR-a 16.71 38.7 55.6 EMSR-a 16.71 50.9 83.1 Cuadro 2: Tabla resumen niveles obtenidos Pregunta 2 Suponga que quedan 3 asientos por vender en un vuelo que pueden ser vendidos a precio completo por US$1.000 o a precio descontado por US$400. Suponga además que la probabilidad que lleguen 0, 1, o 2 clientes que compran a precio completo es 0.1, 0.25, y 0.35, respectivamente. Utilice la regla de Littlewood para decidir si se vende el pasaje si el siguiente cliente quiere comprar a precio descontado. ¿Qué dificultades se enfrenta cuando uno trata de implementar la regla de Littlewood en la práctica? Solución Sea pk la probabilidad de que al menos lleguen k clientes a comprar a precio completo. Se tiene que: p0 = 1, p1 = 0.9, p2 = 0.65 y p3 = 0.3 (pi = 0, ∀i ≥ 4). Se debe buscar k∗ tal que: máx 1000pk ≥ 400 k Lo que se cumple con k∗ = 2. Esto quiere decir que se deben reservar dos de los tres asientos que quedan, por lo tanto se le vende el asiento al cliente con precio descontado. Esta regla presenta algunos problemas tales como: Se debe conocer la demanda y la probabilidad de que llegue una cierta cantidad de clientes. Es óptimo para 2 precios y es útil para condiciones simples. Para varios precios y demandas puede que no sea tan claro aplicar esta regla. 15 IN4704 - Gestión de Operaciones II Son problemas que por lo general dependen del tiempo y por lo tanto son dinámicos y requieren que la solución se vaya actualizando. Pregunta 3 Se desea simular el efecto de un sistema de RM en la venta de entradas a un cine (Joik) con capacidad C. En este sistema los clientes pueden comprar entradas para un show desde 14 hasta 1 dia antes de la función con un descuento o en el momento de la función a precio completo. Suponga que conoce p(i, q), la probabilidad que al menos i personas aparezcan a comprar entradas al momento de la función, si q entradas se han vendido con descuento. Note que p(0, q) = 1 para todo q ∈ {0, . . . , C } y suponga que estas funciones son constantes durante las 2 semanas. 1. Utilize Littlewood para definir cuantas entradas reservar para precio completo si el precio de descuento por internet tiene un 50 % de descuento y se han vendido 10 entradas con descuento. Respuesta en función de p(i, q). 2. Deseamos hacer una simulación del período de venta de entradas. Suponga que el tiempo entre clientes en internet sigue una distribución exponencial con tasa λd que depende del dia d. ¿Cuáles son las variables de estado, eventos y los estadísticos de interes en una simulación con incrementos variables de tiempo? Solución 1. Si el precio completo es c, Littlewood dice que se vende con descuento si cp(i, 10) < .5c, es decir si p(i, 10) < 0.5. El número de asientos que se debería guardar para precio completo entonces es el mayor i tal que p(i, 10) ≥ 0.5. Note que por su definición p(i, 10) es decreciente en i. 2. variables de estado: q número de asientos vendidos, d el día de la simulacíon. Eventos: 1. la llegada de un cliente a comprar en internet. Seguido del cálculo de la cantidad de asientos que se reservan para precio completo. 2. Cambio de dia, pues cambia la tasa de llegada. 3. El día de la función: generar llegadas de clientes a tiempo completo. estadístico de interés son los ingresos por entradas. También para medir la calidad de servicio puede ser en número de clientes con precio entero y de internet que no pueden comprar entrada. Pregunta 4 16 IN4704 - Gestión de Operaciones II MegaRed es un canal de televisión que cada tarde tiene 25 espacios publicitarios de 30 segundos. Suponga que estamos en marzo y que la empresa se encuentra vendiendo por adelantado publicidad para los primeros días de julio, siendo el valor cada espacio de 30 segundos igual a $USD 4,000. No obstante, se sabe que el 9 de julio habrá un evento deportivo muy importante y que el canal podría llegar a vender a último minuto espacios publicitarios a prestigiosas empresas deportivas por un precio de $USD 10,000 cada uno. Teniendo en cuenta los antecedentes proporcionados responda: 1. ¿Cuántos espacios publicitarios debería el canal vender en forma anticipada? Suponga que un espacio publicitario que no se vende vale 0. 2. Ahora suponga que si un espacio publicitario no es vendido anticipadamente o a último minuto puede ser utilizado para promocionar programas del canal, siendo valorado en $USD 2,500. ¿Cómo cambia su respuesta a la pregunta anterior? Utilice la siguiente distribución de probabilidad para las ventas de último minuto: Demanda [unids.] Probabilidad 8 .0 9 .05 10 .1 11 .15 12 .2 13 .1 14 .1 15 .1 16 .1 17 .05 18 .05 19 .0 Cuadro 3: Distribución de probabilidad de la demanda Solución 1. Para determinar la cantidad de espacios publicitarios se debe conocer la Pr ( D ≥ k ), ∀k. Sea pk la probabilidad de que al menos lleguen k empresas. k pk 8 1 9 1 10 .95 11 .85 12 .7 13 .5 14 .4 15 .3 16 .2 17 .1 18 .0.5 19 .0 Cuadro 4: Valores de pk para cada k Se busca la cantidad k∗ tal que 4.000 ≥ 10.000Pr ( D ≥ k∗ + 1) 4.000 < 10.000Pr ( D ≥ k∗ ) Lo que se cumple con k∗ = 13. 2. En este caso tenemos un precio de salvataje de $USD 2,500. En este caso esperaríamos que la cantidad reservada para empresas deportivas sea mayor. Si se vende a precio anticipado, el ingreso extra que se genera es de $USD1,500, y si se espera a último minuto, en caso de ser vendido, se obtienen $USD7,500. 17 IN4704 - Gestión de Operaciones II El problema entonces: 1.500 ≥ 7.500Pr ( D ≥ k∗ + 1) 1.500 < 7.500Pr ( D ≥ k∗ ) La cantidad a reservar es k∗ = 15. Pregunta 5 Considere cuatro clases con una demanda normalmente distribuida y con precios de venta que aparecen en la siguiente Tabla: k 1 2 3 pk 40 20 5 Datos demanda µk σk 5.6 1.2 18.6 7.9 41.7 15.4 Cuadro 5: Modelo estático de un solo recurso 1. Encuentre los niveles y j a reservar usando EMSR-a, EMSR-b. 2. Encuentre el óptimo usando datos simulados. Solución 1. Comencemos con EMSR-a: p Para y1 , se cumple que y1 = y21 = µ1 + φ−1 1 − p21 σ1 . Al reemplazar se obtiene y1 = 5.6, lo cual corresponde a la cantidad reservada exclusivamente para la clase 1. Para la clase 2 el cálculo es el siguiente: y31 = µ1 + φ −1 p3 1− p1 p3 1− p2 σ1 = 6.98 y32 = µ2 + φ −1 σ2 = 23.9 y2 = y31 + y32 = 30.9 Usando EMSR-b, se consiguien los siguientes y j : 18 IN4704 - Gestión de Operaciones II Para la clase 1 es el mismo cálculo que en EMSR-a, por lo tanto, y1 = 5.6. Para la clase 2, y2 = µ1 + µ2 + q σ12 + σ22 ·φ −1 p3 · ( µ1 + µ2 ) 1− µ1 p1 + µ2 p2 = 30.8 2. El modelo para n clases nos dice que se deben cumplir las siguientes igualdades: Pr ( D1 > y1 ) = p2 p1 Pr ( D1 > y1 , D1 + D2 > y2 ) = p3 p1 La primera igualdad es simplemente la regla de Littlewood, mientras que la segunda la podemos reescribir como: Pr ( D1 > y1 , D1 + D2 > y2 ) = p3 p1 ⇐⇒ Pr ( D1 + D2 > y2 | D1 > y1 ) Pr ( D1 > y1 ) = ⇐⇒ Pr ( D1 + D2 > y2 | D1 > y1 ) = p3 p1 p p3 = 3 p1 Pr ( D1 > y1 ) p2 Esta última condición lo que nos dice es tenemos que encontrar un y2 tal que dado p que D1 > y1 , el número de veces que D1 + D2 > y2 debe ser igual a p23 . Se generaron 100 valores de demanda para D1 y D2 , a partir de los parámetros de las distribuciones. En el gráfico 3 estos valores están graficados. En el eje horizontal está el valor de S1 = D1 y en el vertical, S2 = D1 + D2 . p Primero buscamos el valor de y1∗ . Para ello, debemos usar el ratio p21 = 0.5. Esto quiere decir que tenemos que encontrar el valor de S1 que está en la mitad de los datos y asignárselo a y1∗ , para que así Pr ( D1 > y1 ) = 0.5. Ordenamos los datos y tomamos el que está entre el 50 y el 51, y los promediamos. Con esto obtenemos y1∗ = 5.94. Una vez que tenemos este número, calculamos y2 . La condición nos dice que hay que utilizar solo los S2 tales que D1 > y1 , por lo tanto, solo nos quedamos con los datos a la derecha de y1∗ , es decir, con 50 números. p El ratio p23 = 0.25 nos dice que debemos escoger el y2 tal que solo un 25 % de los S2 queden fuera, una vez que los hemos ordenado. Como tenemos 50 datos, buscamos 19 IN4704 - Gestión de Operaciones II y1∗ 40 37 34 y2∗ S2 31 28 25 22 19 16 13 3 4 5 6 7 8 9 S1 Figura 3: Gráfico con los valores de demanda simulados y los yi óptimos k j p el valor en la posición l ∗ = p32 · N = b12.5c = 12, y l ∗ + 1 = 13, y los promediamos. Esto nos da y2∗ = 30.2. Pregunta 6 Suponga que una cadena de hoteles nos ha pedido que le ayudemos con sus políticas de reservas en una fecha determinada. Vamos a tomar en cuenta que solo existen 3 clases de clientes, 1, 2 y 3, con precios a pagar distintos y distribuciones de demanda con parámetros diferentes. Para este problema supondremos que las demandas son variables aleatorias uniformes. La siguiente tabla resume los parámetros del problema: clase 1 2 3 precio 10 5 1 distribución U (0, 10) U (0, 50) U (40, 100) Cuadro 6: Parámetros para el problema de hoteles Encuentre los niveles y∗ para cada clase, usando el criterio que permite obtener el óptimo del problema. 20 IN4704 - Gestión de Operaciones II Solución Los y∗ deben satisfacer las siguientes igualdades: Pr ( D1 > y1 ) = p2 p1 Pr ( D1 > y1 , D1 + D2 > y2 ) = p3 p1 La última igualdad la podemos reescribir como: Pr ( D1 + D2 > y2 | D1 > y1 ) = p3 p2 Comenzamos calculando y1∗ : Pr ( D1 > y1∗ ) = 0.5 Z 10 1 y1∗ 10 dx = 0.5 1 (10 − y1∗ ) = 0.5 10 y1∗ = 5 Con este valor claro, ahora debemos calcular y2∗ : Pr ( D1 + D2 > y2∗ | D1 > 5) = 0.2 Z 10 5 Pr ( x + D2 > y2∗ ) Z 10 Z 50 5 y2∗ − x Z 10 1 dx = 0.2 10 dy dx = 0.2 50 10 dx = 0.2 10 5 50 1 102 − 52 ∗ (50 − y2 )(10 − 5) + = 0.2 500 2 75 250 − 500 · 0.2 + = 5y2∗ 2 y2∗ = 37.5 (50 − y2∗ + x ) 21 IN4704 - Gestión de Operaciones II 3. Newsvendor problem Pregunta 1 Considere un problema de Newsvendor, donde la demanda por productos está dada por la v.a. continua D con soporte positivo y función de densidad f ( x ) y distribución F (d) Rd (= P{ D ≤ d} = 0 f ( x )dx). La utilidad esperada se puede expresar como: π ( Q) = pE(Ventas) + vE(Sobras) − cQ, (1) RQ R∞ RQ donde E(Ventas) = 0 x f ( x )dx + Q Q f ( x )dx y E(Sobras) = 0 ( Q − x ) f ( x )dx son el valor esperado de las unidades vendidas y sobrantes, respectivamente. Además, c es el costo de producción, p es el precio de venta, v es el precio de reventa y Q es la cantidad ordenada. Definimos además el costo de ’underage’ Cu = p − c, el costo de ’overage’ Co = c − v, y el costo de incertidumbre como : CI ( Q) = Cu Z ∞ Q ( x − Q) f ( x )dx + Co Z Q 0 ( Q − x ) f ( x )dx, (2) 1. Explique la ecuación (2) y muestre que CI ( Q) = π IP − πR( Q) donde πIP = ( p − c)µ ∞ es la utilidad esperada con información perfecta yµ = 0 x f ( x )dx es la demanda esperada. 2. Dada la ecuación (2), demuestre que la cantidad Q∗ , que maximiza π ( Q) viene dado por: Cu ∗ −1 Q =F , Co + Cu donde F −1 es la inversa de la funcion distribucion F 3 Suponga ahora que D sigue una distribución Normal de media µ y varianza σ2 . φ(z) CI ( Q∗ ) Nos interesa el costo de incertidumbre relativo, dado por π IP = Φ(z) × µσ , donde φ(z) y Φ(z) son la densidad y distribución de la normal estándar (media 0 y varianza 1), y z = ( Q∗ − µ)/σ. Considere los siguientes productos mostrados en la tabla a continuacion. Ordene los productos de acuerdo al ratio CI ( Q∗ )/π IP . Justifique su respuesta. Producto 1 Producto 2 Producto 3 p 15000 6000 10000 c 7000 3000 6000 v 5000 2500 5000 µ 300 2000 1500 σ 150 500 375 22 IN4704 - Gestión de Operaciones II HINT: Use el hecho que el término (φ(z)/Φ(z)) es decreciente en z (este término es la tasa de riesgo de la normal estándar). Solución 1. La primera integral en (2) es el valor esperado de por cuanto la demanda supera el pedido que hicimos. A esto se cobra el beneficio perdido que es el precio de venta menos el costo de ordenar (p − c). La segunda integral es el numero esperado de pedidos que no fueron vendidos. Esta cantidad genera un costo que es igual al costo de ordenar menos el precio de reventa (c − v). Para mostrar la equivalencia, desarrollamos (2) obteniendo CI ( Q) = ( p − c) Z ∞ Q x f ( x )dx − p Z ∞ Q Z ∞ Q f ( x )dx + cQ f ( x )dx − c 0 −v Z Q 0 Z Q 0 x f ( x )dx ( Q − x ) f ( x )dx RQ el último termino corresponde a vE(Sobras). Sumando y restando la cantidad p 0 x f ( x )dx a esta expresión obtenemos: Z Q Z ∞ Z ∞ CI ( Q) = ( p − c) x f ( x )dx − p x f ( x )dx + Q f ( x )dx + cQ − vE(Sobras) 0 Q 0 = ( p − c)µ − pE(Ventas) + cQ − vE(Sobras) = π IP − π ( Q) 2. Dada que la cantidad Q∗ que maximiza π ( Q) también minimiza CI ( Q) (debido a que CI ( Q) = π PI − π ( Q)), encontramos la solución óptima al derivar e igualar a cero: d(CI ( Q))/dQ = 0, donde d CI ( Q) = −Cu dQ Z ∞ Q f ( x )dx + Co = −Cu 1 − Z Q 0 Z Q 0 f ( x )dx f ( x )dx + Co Z Q 0 f ( x )dx = −Cu (1 − F ( Q)) + Co F ( Q) = 0 simplificando esta expresion obtenemos F ( Q) = Cu /(Cu + Co ) de donde se obtiene el resultado. CI ( Q∗ ) 3. Utilizamos los datos para calcular las distintas partes del ratio π IP . Utilizamos que Cu /(Cu + Co ) = ( p − c)/( p − v). Ademas, como F ( Q∗ ) = P{ D ≤ Q∗ } = P{( D − µ)/σ ≤ ( Q∗ − µ)/σ} = Φ(z∗ ) tenemos que ( Q∗ − mu)/σ = z∗ = Φ−1 (Cu /(Cu + Co )). 23 IN4704 - Gestión de Operaciones II Producto 1 Producto 2 Producto 3 σ/µ 1/2 1/4 1/4 Cu /(Cu + Co ) 4/5 6/7 4/5 z∗ 0.84 1.07 0.84 Como el término (φ(z)/Φ(z)) es decreciente en z, tenemos que el producto 2 es el CI ( Q∗ ) que tiene el menor ratio π IP , seguido por producto 3 y el producto 1 es el que tiene este ratio mayor. Pregunta 2 1. Demuestre que la siguiente ecuación tiene como solución Q∗ que maximiza las utilidades en el problema de Newsvendor, donde p es el precio de venta, c es el costo, v el precio de reventa, todos valores fijos. ( p − c) P(lleguen por lo menos Q) = (c − v) P(lleguen menos de Q) 2. Usando la expresión para Q∗ calculada en la pregunta anterior, encuentre el cantidad que se debe ordenar para los siguientes valores. Si encuentra algún problema, explique qué está fallando. Item 1 Item 2 Item 3 Item 4 p 200 200 400 150 c 181 190 240 240 v 180 195 150 150 3. Ahora suponga que el precio depende de la cantidad demandada, según la relación p( x ) = αx con α > 0. Suponga además que la demanda se distribuye uniformemente en un intervalo (0, T ), con T > 0, y que los costos dependen linealmente de Q, c( Q) = αT 2 Q. Por último, considere que v, el precio de reventa, es fijo. a) Encuentre el Q∗ que maximiza las utilidades. b) ¿Cuál es el valor de Q∗ cuando α = 1, T = 10 y v = 2? c) ¿Qué pasa cuando v = α. Explique. Solución 24 IN4704 - Gestión de Operaciones II 1. Primero se debe notar que c − v = Co y que p − c = Cu . Además la probabilidad de que lleguen al menos Q corresponde a F ( Q). Con esto reescribimos la ecuación Cu (1 − F ( Q)) = Co F ( Q) Cu = (Co + Cu ) F ( Q) Cu F ( Q) = Co + Cu Cu −1 Q=F Co + Cu 2. Por Item tenemos: Item 1. Q∗ = F −1 19 20 Item 2. Aquí tenemos un problema ya que v > c. En este caso siempre se tienen utilidades por los productos, así que conviene pedir lo máximo posible. 160 Item 3. Q∗ = F −1 250 Item 4. En este caso el costo es mayor al precio de venta, por lo que nunca conviene pedir. Q∗ = 0. 3. a) La utilidad se escribe como T Q dx dx dx αT + αxQ + v (Q − x) − Q T T T 2 0 Q 0 αQ3 αQ 2 vQ2 αT = + ( T − Q2 ) + − Q 3T 2T 2T 2 dπ ( Q) αQ2 αT 3αQ2 vQ αT = + − + − dQ T 2 2T T 2 2 αQ vQ =− + 2T T π ( Q) = =⇒ Z Q αx · x Z Z Lo cual al igual a cero, y descartando la solución Q∗ = 0, nos queda: Q∗ = 2v α b) Reemplazando obtenemos que Q∗ = 4. 25 IN4704 - Gestión de Operaciones II c) Cuando v = α, Q∗ ya no depende de los parámetros y es constate igual a 2. Cuando se cumple esta condición el tomador de decisiones se vuelve indiferente al precio de venta, a los costos y el precio de reventa, por lo que es neutro a las condiciones del mercado. Pregunta 3 Un micro empresario posee una producción de un licor llamado “Efimerouse”, el cual tiene la característica de que luego de una semana de producción, perece convirtiéndose en una solución que no puede ser vendida, pero sí reutilizado para la producción de siguientes unidades. Considere que cada día Lunes se pone en venta una cierta cantidad para ser vendida durante la semana, a un precio de $3500 la unidad, mientras que el costo unitario es de $1000 y el valor estimado de una botella vencida es de $375. Suponga que la demanda sigue una distribución (continua) uniforme en [0, 100]. Hint: Si X ∼ U [ a, b], entonces F −1 ( p) = a + (b − a) p para p ∈ [0, 1]. a) Determine la cantidad óptima de botellas a vender cada día Lunes. Suponga que la fábrica posee un límite de producción semanal de 240 unidades como máximo. b) Determine el número óptimo de unidades a producir bajo este escenario. c) Encuentre las utilidades esperadas para los casos de las partes a) y b) a obtener en una semana. Si no es capaz de obtener los valore precisos, también se dará puntaje por escribir las expresiones. Suponga al igual que en la parte b) que la fábrica posee un límite de producción semanal de 60 unidades. Por otro lado, se tiene la posibilidad de hacer una inversión por un monto fijo de $500000 tal que la fábrica alcanza una capacidad extra de producción de 60 unidades. Es decir, en caso de hacer la inversión, el vendedor podría producir semanalmente cualquier cantidad entre 0 y 120 unidades. Considerando además un factor de descuento de 0.99 del dinero en cada semana (es decir, si en cada semana futura desde i ≥ 0 recibo un monto esperado de m, entonces el monto en valor presente es de ∑i≥0 m · 0.99i ). Haga el supuesto de que las compras, e ingresos por venta y salvataje de referentes de cada semana son realizados en esa semana. d) Determine si es o no conveniente hacer la inversión, considerando el valor presente del dinero. Solucón: 26 IN4704 - Gestión de Operaciones II a) Se tiene que p = 3500, c = 1000 y s = 375, luego: Cu = p − c = 3500 − 1000 = 2500 Co = c − s = 1000 − 375 = 625 Luego la cantidad óptima es: Q ∗ Cu = F C + Cu o 2500 −1 = F 625 + 2500 −1 = F −1 (0.8) = 80 b) Dado que el valor óptimo es de 80 unidades cuando no hay restricción de capacidad, entonces con un capacidad de 60 unidades, se deberán producir hasta ese número. c) La expresión de las utilidades es la siguiente: πQ = p = p Z +∞ 0 Z Q 0 mı́n{ Q, x } f ( x )dx + s 1 dx + x 100 Z 100 Q Z +∞ 0 1 Q dx + s 100 máx{ Q − x, 0} f ( x )dx − cQ Z Q 0 (Q − x) 1 dx − cQ 100 Donde Q es la cantidad a producir. Para la parte a) es: Z 80 Z 100 Z 80 1 1 1 dx + p 80 dx + s (80 − x ) dx − 80c π80 = p x 100 100 100 80 0 0 802 02 1 (80 − 0)2 1 = 3500 ( − ) + 80(100 − 80) + 375 −0 + − 80 · 1000 2 2 100 2 100 = 100000 Para la parte b) es: Z 60 Z 100 Z 60 1 1 1 π60 = p x dx + p 60 dx + s (60 − x ) dx − 60c 100 100 100 0 60 0 602 02 1 (60 − 0)2 1 = 3500 ( − ) + 60(100 − 60) + 375 −0 + − 60 · 1000 2 2 100 2 100 = 93750 Como es de esperar, la utilidad da más en la parte a), en donde se produce la cantidad óptima que no está sujeta a la restricción de capacidad. 27 IN4704 - Gestión de Operaciones II d) Para esto, debemos comparar ambos escenarios. Sean π80 y π60 las utilidades semanales que se obtienen según las partes a) y b) respectivamente. Si no se hace la inversión, entonces la utilidad en valor presente es: πs/inv = π60 ∑ 0.99i = π60 i ≥0 1 = 100π60 = 9375000 1 − 0.99 πc/inv = π80 ∑ 0.99i − 5000000 = π80 i ≥0 1 − 500000 = 100π80 − 500000 1 − 0.99 = 10000000 − 500000 = 9500000 Por ende conviene hacer la inversión. 28 IN4704 - Gestión de Operaciones II 4. Descomposición de benders Se utiliza este algoritmo para resolver problemas de la forma: mı́n c0 x + K ∑ αw f0 yw w =1 s.a. Ax = b Bw x + Dyw = dw ∀w x≥0 yw ≥ 0 ∀w Este problema se divide en un problema principal (problema maestro)y en varios subproblemas. Los subproblemas, para cada w son: mı́n f0 yw s.a. Bw x + Dyw = dw yw ≥ 0 De cada subproblema se obtiene su dual, que es de la forma máx p0w (dw − Bw x) s.a. p0w D ≤ f0 Sea P = {p | p0 D ≤ f0 }. Sea también pi un punto extremo y w j un rayo extremo del conjunto P. Este es el conjunto de solución para el problema dual para cada w. Si como solución se obtiene zw (x) = ∞, o equivalentemente el problema primal no es factible, entonces se debe agregar restricciones del tipo: (wj )0 (dw − Bw x) ≤ 0, ∀j Cada vez que el zw (x) sea finito, entonces se trata de un punto extremo del conjunto P. En particular zw (x) es el mínimo valor que cumple ( p i ) 0 ( d w − B w x ) ≤ z w ( x ), ∀i El problema maestro, finalmente, es: 29 IN4704 - Gestión de Operaciones II mı́n c0 x + K ∑ αw zw w =1 s.a. Ax = b (pi )0 (dw − Bw x) ≤ zw , ∀ i, w (wj )0 (dw − Bw x) ≤ 0, ∀ j, w El algoritmo de D. de Benders: 1. Se comienza con una solución incial (x∗ , z∗ ), que cumpla con el problema maestro relajado. 2. Para cada w se soluciona el subproblema mı́n f0 yw s.a. Dyw = dw − Bw x∗ yw ≥ 0 del cual se obtienen las soluciones duales. 3. Si para cada w su correspondiente subproblema es factible y el costo óptimo es menor o igual a z∗w , entonces se encontró la solución al problema principal y al algoritmo termina. 4. Si para algún w el valor encontrado de costo es mayor que z∗w entonces se debe agregar al problema maestro la siguiente restricción ( pi(w) )0 ( dw − Bw x ) ≤ zw ( x ) 5. Si para algún w el problema es infactible, entonces para el problema dual existe un rayo extremo w j(w) al cual se le debe asociar la restricción que se debe incluir en el problema maestro ( wj(w) )0 ( dw − Bw x ) ≤ 0 Pregunta 1 Se tiene un problema de generación electrica con dos fuentes de producción: una central térmica y una hidráulica. La central hidráulica puede producir a los más 5 unidades en el primer perído, y en el segundo puede producir a lo más 5 + r s − h1 , donde r s es una 30 IN4704 - Gestión de Operaciones II variable aleatoria que está determinada por el escenario s. La térmica no tiene límite de producción para ningún período. En la primera etapa se debe satisfacer toda la demanda que es de 10, y para el segundo se debe satisfacer una demanda d2s . El siguiente PPL resume lo descrito. Resuélvalo usando Descomposición de Benders. mı́n 3x1 + 1 8 s s c2 x2 8 s∑ =1 x1 + h1 ≥ 10 h1 ≤ 5 x2s + h2s ≥ d2s ∀s = 1, ..., 8 s s h2 ≤ 5 + r − h1 ∀s = 1, ..., 8 x1 , h1 , x2s , h22 ≥ 0 Los escenarios están determinados por la siguiente Tabla: s d2s c2s rs 1 15 1 0 2 10 1 0 3 15 5 0 4 5 6 7 8 10 15 10 15 10 5 1 1 5 5 0 10 10 10 10 Cuadro 7: Valores que toman las v.a. para cada escenario Solución Se plantea primero el Problema Maestro. 1 8 mı́n 3x1 + ∑ γs 8 s =1 x1 + h1 ≥ 10 h1 ≤ 5 γs ≥ d2s π s + (5 + r s − h1 )γs ∀s = 1, ..., 8 x1 , h1 , γ s ≥ 0 El Subproblema, para cada s: φs ( x1 , h1 ) = mı́n c2s x2s x2s + h2s ≥ ds h2s ≤ 5 + r s − h1 h2s , x2s ≥ 0 ⇐⇒ φs ( x1 , h1 ) = máx d2s π s + (5 + r s − h1 )γs π s ≤ c2s π s + γs ≤ 0 π s ≥ 0, γs ≤ 0 31 IN4704 - Gestión de Operaciones II Notar que ∀( x1 , h1 ), φ( x1 , h1 ) es siempre factible ( x2s , h2s ) = (d2s , 0). Por lo tanto, no son necesarios cortes de factibilidad (dual tiene óptimo factible). c2s (0, 0) πs (c2s , −c2s ) π s + γs ≤ 0 γs Figura 4: Conjunto factible del dual del Subproblema Iteraciones mı́n 3x1 x1 + h1 ≥ 10 h1 ≤ 5 x1 , h1 ≥ 0 Una solución para este problema podría ser: ( x1∗ , h1∗ ) = (5, 5) γs∗ = −∞ ∀s. Los subproblemas: (15, 1, 0) (10, 1, 0) (15, 5, 0) (10, 5, 0) (15, 1, 10) (10, 1, 10) (15, 5, 10) (10, 5, 10) φ1 (5, 5) φ2 (5, 5) φ3 (5, 5) φ4 (5, 5) φ5 (5, 5) φ6 (5, 5) φ7 (5, 5) φ8 (5, 5) = 15 · 1 + (5 + 0 − 5)(−1) = 15 = 10 · 1 + (5 + 0 − 5)(−1) = 10 = 15 · 5 + (5 + 0 − 5)(−5) = 75 = 10 · 5 + (5 + 0 − 5)0 = 50 = 15 · 1 + (5 + 10 − 5)(−1) = 5 = 10 · 1 + (5 + 10 − 5)(−1) = 0 = 15 · 5 + (5 + 10 − 5)(−5) = 25 = 10 · 5 + (5 + 10 − 5)(−5) = 0 Como γs∗ < φ(5, 5) para todo s, agregamos restricciones al maestro: 32 IN4704 - Gestión de Operaciones II 1 8 mı́n 3x1 + ∑ γs 8 s =1 x1 + h1 ≥ 10 h1 ≤ 5 x1 , h1 ≥ 0 γ1 ≥ 15 − (5 − h1 ) = 10 + h1 γ2 ≥ 10 − (5 − h1 ) = 5 + h1 γ3 ≥ 75 − 5(5 − h1 ) = 50 + 5h1 γ4 ≥ 50 − 5(5 − h1 ) = 25 + 5h1 γ5 ≥ 15 − (15 − h1 ) = h1 γ6 ≥ 10 − (15 − h1 ) = −5 + h1 γ7 ≥ 75 − 5(15 − h1 ) = 5h1 γ8 ≥ 50 − 5(15 − h1 ) = −25 + 5h1 γ1 , ..., γ8 ≥ 0 Segunda Iteración de Benders Sumando ∑ γs podemos escribir el maestro como 1 mı́n 3x1 + (60 + 24h1 ) 8 x1 + h1 h1 x1 , h1 = 3x1 + 3h1 + 15 2 ≥ 10 ≤5 ≥0 Todas soluciones tales que x1 + h1 = 10 (h1 ≤ 5 y x1 , h1 ≥ 0) son óptimos. La solución al problema Maestro, 30 + 15 2. Claramente si usamos ( x1∗ , h1∗ ) = (5, 5) voy a tener que γs∗ = φ(5, 5) ya que esta solución fue usada en la iteración anterior (se repite lo que está en la iteración anterior). Tenemos entonces la solución óptima del maestro. Si usamos ( x1∗ , h1∗ ) = (10, 0), entonces (15, 1, 0) (10, 1, 0) (15, 5, 0) (10, 5, 0) (15, 1, 10) (10, 1, 10) (15, 5, 10) (10, 5, 10) φ1 (5, 5) φ2 (5, 5) φ3 (5, 5) φ4 (5, 5) φ5 (5, 5) φ6 (5, 5) φ7 (5, 5) φ8 (5, 5) = 15 · 1 + (5 + 0 − 0)(−1) = 10 = 10 · 1 + (5 + 0 − 0)(−1) = 5 = 15 · 5 + (5 + 0 − 0)(−5) = 50 = 10 · 5 + (5 + 0 − 0)(−5) = 25 = 15 · 1 + (5 + 10 − 0)(−1) = 0 = 10 · 0 + (5 + 10 − 0)(−5) = 0 = 15 · 5 + (5 + 10 − 0)(−5) = 25 = 10 · 0 + (5 + 10 − 0)(0) = 0 33 IN4704 - Gestión de Operaciones II Escenarios 6 y 8 tiene γs∗ < φs (10, 0), entonces se agregan al maestro los cortes: γ6 ≥ 10 · 0 + (15 − h1 )0 = 0 γ8 ≥ 10 · 0 + (15 − h1 )0 = 0 Al agregar estas restricciones al maestro se obtiene que la única solución posible es = (5, 5). ( x1∗ , h1∗ ) Pregunta 2 Encuentre una cota inferior y una superior para el problema original de minimización, usando la información proporcionada por los subproblemas y el problema maestro, cuando se utiliza la descomposición de Benders. Solución Cota inferior: Sabemos que al problema maestro de la D. B. se le van agregando restricciones por cada iteración, por lo que el conjunto de solución es cada vez más pequeño. Luego, para una iteración dada, la solución del problema maestro va a ser mejor solución que la óptima del problema completo. Cota superior: Los subproblemas utilizan el valor de x ∗ como dado, por lo que su solución es peor que la que encontraría el problema que considera el valor de x como una variable. De esta forma, el valor de zi encontrado en cada iteración es mayor de lo que podría ser cuando se resuelve el problema original. La cota se puede escribir como: c0 x + K ∑ αw z∗w w =1 donde los zw son los encontrados en cada subproblema. Pregunta 3 Una empresa de generación eléctrica debe decidir la capacidad a instalar de dos generadores (indexados por j = 1, 2) con diferentes costos fijos y de operación, de forma de satisfacer la demanda de la zona. Cada día se divide en 3 partes de igual duración, indexados por i = 1, 2, 3. Estos corresponden a las partes del día en los cuales la demanda puede ser baja, media o peak respectivamente. Los costos fijos por unidad de capacidad 34 IN4704 - Gestión de Operaciones II del generador j es amortizada por su vida útil en una suma c j por día. Los costos de operación del generador j durante la parte i-ésima del día es f ij . Si la demanda durante la i-ésima parte del día no puede ser satisfecha, se incurre en un costo adicional gi para suplirla. Finalmente, la capacidad de cada generador j debe ser al menos b j . Hay dos fuentes de incertidumbre, la demanda di durante cada parte del día, y la disponibilidad a j del generador j. La demanda di durante el día puede tomar cuatro valores di,1 ,...,di,4 , con probabilidad pi,1 ,...,pi,4 , respectivamene. La disponibilidad del generador 1 es a1,1 ,...,a1,4 , con probabilidad q1,1 ,...,q1,4 , para cada uno de los eventos. Similarmente, la disponibilidad del generador 2 es a2,1 ,...,a2,5 , con probabilidad q2,1 ,...,q2,5 . 1. Formule un problema de programación estocástica que minimice los costos y cumpla con las restricciones. 2. Escriba el problema Maestro y el Subproblema de la descomposición de Benders para este problema. 3. Encuentre la solución incial y haga una iteración del algoritmo de Benders. Escriba el problema Maestro modificado. Solución 1. Se utilizará la variable x j , j = 1, 2 para indicar las unidades de capacidad instalada de cada generador. También se incluirá la variable yijw para denotar los niveles de operación del generador j durante la parte i-ésima del día, bajo el escenario w. Finalmente, la variable siw es la capacidad extra necesaria en el escenario w, durante la parte i del día. " !# 2 mı́n ∑ cj xj + E j =1 3 2 i =1 j =1 ∑ ∑ fij yijw + gi siw s.t. x j ≥ b j yijw ≤ aw j xj ∀j ∀i, j, w 2 ∑ yijw + siw ≥ diw ∀i, w x j , yijw siw ≥ 0 ∀i, j, w j =1 2. La cantidad de escenarios w es 43 · 4 · 5 = 1280. Cada Subproblema se ve de la sigu- 35 IN4704 - Gestión de Operaciones II iente forma: 3 mı́n s.t. 2 ∑ ∑ fij yijw + gi siw ! i =1 j =1 yijw ≤ aw j xj ∀i, j 2 ∑ yijw + siw ≥ diw j =1 yijw , siw ∀i ≥0 ∀i, j Recordando que cada subproblema se resuelve considerando x j , j = 1, 2, fijo. Si utilizamos πijw y σiw como las variables duales, el dual para cada w es 3 máx s.t. 2 ∑ ∑ awj x j πijw + σiw diw i =1 j =1 πijw + σiw σiw ≤ gi πijw ≤ 0 σiw ≥ 0 ! = zw ≤ f ij ∀i, j ∀i ∀i, j ∀i El Problema Maestro es, por lo tanto, 2 mı́n ∑ cj xj + j =1 W ∑ ζ w zw w =1 s.t. x j ≥ b j 3 2 i =1 j =1 ∑ ∑ awj x j πijw + σiw diw xj ≥ 0 ∀j ! ≤ zw ∀w ∀j La segunda desigualdad puede considerar un rayo extremo, con lo cual debe imponerse que la parte izquierda de la desigualdad sea menor a 0. 3. Una posible solución inicial puede ser x j = b j , j = 1, 2 y zw = −∞, ∀w. Con esto el 36 IN4704 - Gestión de Operaciones II dual para cada subproblema w es 3 máx s.t. 2 ∑ ∑ awj bj πijw + σiw diw i =1 j =1 πijw + σiw σiw ≤ gi πijw ≤ 0 πiw ≥ 0 ! ≤ f ij ∀i, j ∀i ∀i, j ∀i Considerando el óptimo πijw∗ , ∀i, j, w y σiw∗ , ∀i, w finito, el valor z∗w es mayor a −∞ por lo que se agregan al problema Maestro. ! 3 2 i =1 j =1 ∑ ∑ awj x j πijw∗ + σiw∗ diw ≤ zw ∀w Pregunta 4 Utilice Revenue Management para decidir una politica de arriendo de C habitaciones en un hotel en Viña del Mar. Suponga que para el mes de Enero hay tres tipos de clientes, los que arriendan por el fin de semana de año nuevo (F), los que arriendan por los primeros 21 días del mes (T) y los que arriendan por el mes completo (M). Suponga que si las utilidades por arrendar el fin de semana de año nuevo son u F = X, entonces arrendar por tres semanas u T = 3X y por mes uQ = 5X. Suponga que la probabilidad de que al menos i clientes de tipo k aparezcan cuando faltan t días para Enero está dada por pk,t (i ). 1. En cuanto a las propiedades de pk,t (i ), responda lo siguiente: ¿Cuánto es pk,t (0)? ¿Son las pk,t (i ) monótonas en i? Cuando t = 1 ¿cuál debería ser mayor p F,t (i ), p T,t (i ) o p M,t (i )? (Justifique sus respuestas) 2. Suponga las siguientes probabilidades (posiblemente artificiales) p F,t (i ) = (1/2)i , p T,t (i ) = 1/(i + 1) y p M,t (i ) = (3/5)i . Utilice EMSRa para definir el numero de habitaciones que se debe reservar para cada clase. 3. (0,5 pts) Deseamos ahora formular un problema de optimización estocástica que maximice las utilidades. Suponga que t días antes que comience Enero tiene C habitaciones disponibles y que el número de clientes de cada tipo que aparecerán es una cantidad incierta. Suponga que las habitaciones no arrendadas al comienzo del mes pueden ser arrendadas con probabilidad 1 a un descuento que nos entrega una utilidad de u D = 0, 2X. 37 IN4704 - Gestión de Operaciones II 4. Describa el problema maestro y el subproblema de la descomposición de Benders para este problema estocástico. 5. Si supone que la primera solución del maestro es el vector de ceros, haga una iteración del algoritmo de Benders y escriba el problema Maestro modificado. Solución 1. Claramente pk,t (0) = 1 pues representa la probabilidad de que al menos lleguen 0 clientes, lo cual siempre ocurre. De la misma forma pk,t (i ) es la probabilidad de que al menos lleguen i clientes, por lo que es esperable que a medida que crece i la probabilidad disminuya, concluyendo que es una función decreciente. t = 1 significa que se está a solo 1 día de que comience Enero, entonces se espera que aparezcan en mayor medida los que buscan vacaciones más cortas (los más sensibles al precio) que los que están dispuestos a gastar mucho en sus vacaciones. Por lo tanto, las probabilidades deberían estar en el siguiente orden: p F,1 (i ) ≥ p T,1 (i ) ≥ p M,1 (i ). 2. Se plantéan las desigualdades para F con respecto a las otras dos clases: m 3 máx 5x · ≥x m 5 1 máx 3x · ≥x t t+1 =⇒ m = 3 =⇒ t = 2 Finalmente se debe comparar los clientes que arriendan los primeros 21 días y los que arriendan el mes completo. n 3 ≥ 3x máx 5x · n 5 =⇒ n = 1 Con esto se deduce que los clientes M tienen 4 cupos en total (los 3 que se obtuvieron en la primera comparación y el que le dejan los clientes T), los T tienen 1 cupo (los dos que tenían y el que cedieron) y el resto es para los clientes F. 3. Se plantea el siguiente problema: Variables xm , xt , x f cantidad fijada para cada clase. w w yw m , yt , y f cantidades vendidas en cada escenario w para cada clase. Función Objetivo w w w w w máx ∑ pw (5x · yw m + 3x · yt + x · y f + 0.2x · (C − ym − yt − y f )) w 38 IN4704 - Gestión de Operaciones II Restricciones Cada escenario w tiene una demanda por un tipo de arriendo dw k, k = m, t, f . xm + xt + x f ≤ C yw m ≤ xm w yt ≤ xt ywf ≤ x f ∀w ∀w ∀w w yw m ≤ dm w yw t ≤ dt ywf ≤ dwf ∀w ∀w ∀w w w yw t , y f , ym , xm , x f , xt ≥ 0 4. Las variables xk son globales para el problema, mientras las yw k dependen del escenario. El problema maestro queda: máx ∑ pw γw + 0.2xC w s. a xm + xt + x f ≤ C xm , xt , x f ≥ 0 Y los subproblemas w w w w w máx 5x · yw m + 3x · yt + x · y f + 0.2x · (− ym − yt − y f ) s. a yw m ≤ xm yw t ≤ xt ywf ≤ x f w yw m ≤ dm w yw t ≤ dt ywf ≤ dwf w w yw t , y f , ym ≥ 0 El dual asociado a cada escenario es: w w mı́n z1 · xm + z2 · xt + z3 · x f + z4 · dw m + z5 · d t + z6 · d f s. a z1 + z4 ≥ (5x − 0.2x ) z2 + z5 ≥ (3x − 0.2x ) z3 + z6 ≥ ( x − 0.2x ) zi ≥ 0 39 IN4704 - Gestión de Operaciones II 5. La solución inicial corresponde a: xk∗ = 0 y γw ∗ = ∞. El dual para cada subproblema se simpifica a: w w mı́n z4 · dw m + z5 · d t + z6 · d f z1 + z4 ≥ (5x − 0.2x ) z2 + z5 ≥ (3x − 0.2x ) z3 + z6 ≥ ( x − 0.2x ) zi ≥ 0 s. a El óptimo es simplemente: ∗ z1 (5x − 0.2x ) z∗ (3x − 0.2x ) 2∗ z ( x − 0.2x ) 3∗ = z 0 4∗ z 0 5 ∗ z6 0 ∗ = 0, menor al obtenido anteriormente por lo que se agregan las Con un valor γw restricciones: (5x − 0.2x ) · xm + (3x − 0.2x ) · xt + ( x − 0.2x ) · x f ≥ γw ∀w El problema maestro para esta iteración: máx ∑ pw γw + 0.2xC w s. a xm + xt + x f ≤ C (5x − 0.2x ) · xm + (3x − 0.2x ) · xt + ( x − 0.2x ) · x f ≥ γw ∀w xm , xt , x f ≥ 0 Pregunta 5 Considere el siguiente problema estocástico con x ∈ R: mı́nx 12 x + ∑iS=1 pi Q( x, ξ i ) s.t. 0 ≤ x ≤ 10 40 IN4704 - Gestión de Operaciones II Supondremos que este problema tiene tres escenarios equiprobables con ξ 1 = 1, ξ 2 = 2, y ξ 3 = 4. En el caso en que Q( x, ξ ) = | x − ξ |, resuelva este problema usando el algoritmo de Benders. Para esto, indique la forma del subproblema de generación de cortes; escriba el maestro al comienzo de cada iteración; y los cortes generados. Resuelva los problemas lineales por inspección. Pregunta 6 Usted debe visitar a n clientes distribuidos geograficamente con K vehiculos. Suponga que todos los vehiculos comienzan localizados en el depot y que viajar entre el cliente i y el cliente j toma tij unidades de tiempo y cuesta cij . Suponga además que cada cliente i debe ser visitado en el intervalo de tiempo [ ai , bi ]. Llegar antes incurre una multa de α por unidad de tiempo y llegar tarde una multa de β. 1. Escriba el problema de ruteo de vehiculos que minimiza los costos de viaje y multas por no llegar en la ventana de tiempo acordada. 2. Suponga ahora que los tiempos de viaje son inciertos. De hecho se dispone de S escenarios de tiempos de viajes correspondientes a lo ocurrido en los ultimos S dias. Es decir existen datos de tijs correspondiente al tiempo de viaje entre i y j durante el escenario s. Si suponemos que el escenario s ocurre con probabilidad ps , escriba el modelo de optimización estocástica de dos etapas que minimiza el costo esperado de la ruta. Suponga que la ruta se decide en la primera etapa y que los costos de violar las ventanas de tiempo se ajustan en la segunda etapa. 3. Describa el método de Benders’ para resolver el problema estocástico descrito arriba. Para eso: a) Indique cual es el subproblema de generación de restricciones, y cuando este genera restricciones de factibilidad y de optimalidad. b) Escriba el problema maestro. 4. Considere ahora el caso con ventanas de tiempo duras (esto es, α = β = ∞). ¿Qué modificaciones sufren los cortes generados por el método de Benders’. Solución 1. Variables: 1 si se va del cliente i a j xijk = 0 si no wi = tiempo de llegada al cliente i 41 IN4704 - Gestión de Operaciones II ei = unidades de tiempo de anticipación en la llegada a i li = unidades de tiempo de atraso en la llegada a i Restricciones: ∑ xoj ≤ K j ∑ xij = ∑ x jl ∀j ∑ xij = 1 ∀i 6 = 0 i l j wi ≥ w j + tij − M (1 − xij ) ∀i, j a i ≤ wi + ei w i ≤ bi + l i wi , li , ei ≥ 0 xij ∈ {0, 1} ∀i ∀i ∀i Función Objetivo ∑ cij xij + ∑ αei + βli i ij 2. Variables: Ahora las variables wis , eis y lis dependen del escenario s ∈ S. Restricciones: Las restricciones que solo se relacionan con xij se mantienen iguales, las que cambian son wis ≥ wsj + tijs − M(1 − xij ) ∀i, j, s ai ≤ wis + eis wis ≤ bi + lis wis , lis , eis ≥ 0 ∀i ∀i ∀i Función Objetivo mı́n ∑ cij xij + ∑ ps ∑ ijk 3. s ! αeis + βlis i a) Planteamos un subproblema para cada escenario s 42 IN4704 - Gestión de Operaciones II ∑ αeis + βlis mı́n i wis ≥ wsj + tijs − M(1 − xij∗ ) ∀i, j ai ≤ wis + eis wis ≤ bi + lis wis , lis , eis ≥ 0 ∀i ∀i ∀i Su dual correspondiente: máx ∗ s z M ( 1 − x ) − t ∑ ij ij ij + ∑ λi ai − σi bi ij i λi ≤ α σi ≤ β ∀i ∀i ∑ zij − ∑ zki + λi − σi ≤ 0 ∀i σi , λi ≥ 0 zij ≤ 0 ∀i ∀i, j j k Los cortes de factibilidad entonces son: γs ≥ ∑ ij M(1 − xij∗ ) − tijs zij∗ − ∑ bi σi∗ + ∑ ai λi∗ i i donde (zij∗ , σi∗ , λi∗ ) ∀i, es un punto extremo del problema dual. Para cortes el factibilidad se debe cumplir: 0 ≥ ∑ M(1 − xij∗ ) − tijs pij∗ − ∑ bi pi∗ + ∑ ai ri∗ ij i i donde ( pij∗ , qi∗ , ri∗ ) ∀i es un rayo extremo. b) El problema maestro es: 43 IN4704 - Gestión de Operaciones II mı́n ∑ cij xij + ∑ ps γs s ij ∑ xoj ≤ K j ∑ xij = ∑ x jl ∀j ∑ xij = 1 ∀i 6 = 0 i l j ∑ γs ≥ i ij 0≥ ∑ ij M(1 − xij∗ ) − tijs zij∗ − ∑ bi σi∗ + ∑ ai λi∗ ∀i i M(1 − xij∗ ) − tijs pij∗ − ∑ bi pi∗ + ∑ ai ri∗ i ∀i i xij ∈ {1, 0} ∀i, j 4. Como α = β = ∞ el problema es: ∑ cij xij mı́n ij ∑ xoj ≤ K j ∑ xij = ∑ x jl ∀j ∑ xij = 1 ∀i 6 = 0 i l j wis + tijs − w j ≤ M(1 − xij ) ∀i, j a i ≤ w i ≤ bi xij ∈ {1, 0} ∀i ∀i, j Por lo tanto, no hay costo futuro por escenarios. El método de Bender’s solo generará cortes de factibilidad. El subproblema queda: máx ∑ zij M (1 − ij xij∗ ) − tijs + ∑ λi ai − σi bi i ∑ zij − ∑ zki + λi − σi ≤ 0 ∀i σi , λi ≥ 0 zij ≤ 0 ∀i ∀i, j j k 44 IN4704 - Gestión de Operaciones II problema que solo tendrá como valor óptimo 0, o +∞, por lo que solo generará cortes de factibilidad. 45 IN4704 - Gestión de Operaciones II 5. Generación de columnas Considere un problema en forma estándar con muchas variables, es decir, con n >> m, mı́n c0 x Ax = b x≥0 En general, en el óptimo, el número de variables básica es, a lo más al número de restricciones, lo que deja una gran cantidad de variables no básicas que no participan de la solución óptima y, por lo tanto, no necesitan ser consideradas explícitamente. La idea de Generación de columnas es solo trabajar con la cantidad mínima de variables necesarias para hallar la solución óptima, incorporando una a una las que presenten costos reducidos negativos, dejando implícitas las demás variables no básicas. Recordando que el problema se puede descomponer en variables básicas básicas y no básicas, reescribimos el problema, mı́n c0B xb + c0N xn AB xB + An xn = b x≥0 despejando las variables básicas de la segunda ecuación se obtiene, 1 −1 xb = A− b b − AB AN xN Reemplanzando en la primera ecuación el problema depende solo de las variables no básicas 1 0 0 −1 0 −1 0 0 −1 mı́n c0B A− B b + ( cN − cB AB AN ) xn = cB AB b + mı́n( cN − cB AB AN ) xN = y0 b + mı́n(c0N − y0 AN )xN 1 donde y0 = cB A− B corresponde al valor de las variables duales en el óptimo. c¯N = c0N − y0 AN los costos reducidos asociados a las variables no básicas. De la última ecuación se puede apreciar que si existe algún costo reducido negativo, el valor de la función objetivo se puede reducir, aumentando la variable correspondiente, es decir, haciéndola entrar a la base. El algoritmo de generación de columnas elige la variable no básica con menor costo reducido, resolviendo el siguiente problema de optimización, conocido como Subproblema mı́n cj − yAj j Luego la variable (o columna) encontrada entra en el problema Maestro y se vuelve a resolver. 46 IN4704 - Gestión de Operaciones II Problema maestro mı́n c0 x s.a. Ax ≥ b x≥0 Columnas Aj Variables Duales yi Generador de columnas máx c j − yA j s.a. wA j ≤ W a ∈ N0 Figura 5: Iteración generación de columnas Cutting stock problem Se tienen trozos de metal de largo L y existe una demanda por piezas de ciertos tamaños determinados li . El problema consiste en determinar cómo cortar las piezas de modo que el desperdicio de material sea mínimo. La formulación del problema maestro es la siguiente mı́n ∑ xj j ∑ aij x j ≥ di ∀i j x j ∈ N0 donde x j es la cantidad de veces que se usa el patrón j, aij es la cantidad de piezas de tamaño li en el patrón j y di es la demanda por piezas de tamaño li . El subproblema debe generar un patrón factible con el mínimo costo reducido. Si llamamos yi al costo dual óptimo asociado a la i-ésima restricción del problema maestro se tiene: mı́n 1 − ∑ yi aij i ∑ li aij ≤ L i i aj ∈ N0 o equivalentemente máx ∑ yi aij i ∑ li aij ≤ L i i aj ∈ N0 47 IN4704 - Gestión de Operaciones II donde el costo reducio será 1 − ∑i yi aij . Ejemplo Se tienen barras de metal de largo 218cm y se requieren las siguientes piezas: Tamaño 81cm 70cm 68cm Demanda 44 3 48 Cuadro 8: Tamaño y cantidad demandada Iteración 1 Se comienza con patrones que permitan resolver el problema. Utilizaremos unos que solo consideran una pieza por barra. Con esto el problema maestro queda mı́n x1 + x2 + x3 x1 ≥ 44 x2 ≥ 3 x3 ≥ 48 x1 , x2 , x3 ≥ 0 El dual de este problema máx 44y1 + 3y2 + 48y3 y1 ≤ 1 y2 ≤ 1 y3 ≤ 1 y1 , y2 , y3 ≥ 0 Al resolver este problema se obtiene que y = (1, 1, 1). Luego el subproblema queda: máx a1 + a2 + a3 81a1 + 70a2 + 68a3 ≤ 218 a1 , a2 , a3 ∈ N0 donde el nuevo patron está dado por A j = (0, 0, 3) y su costo reducido es 1 − ( a1∗ + a2∗ + a3∗ ) = −2 < 0. Iteración 2 48 IN4704 - Gestión de Operaciones II Se agrega el nuevo patrón al problema maestro mı́n x1 + x2 + x3 + x4 x1 ≥ 44 x2 ≥ 3 x3 + 3x4 ≥ 48 x1 , x2 , x3 , x4 ≥ 0 El dual de este problema máx 44y1 + 3y2 + 48y3 y1 ≤ 1 y2 ≤ 1 y3 ≤ 1 3y3 ≤ 1 y1 , y2 , y3 ≥ 0 Con estas modificaciones se obtiene que y = (1, 1, 31 ). Luego el subproblema queda: 1 máx a1 + a2 + a3 3 81a1 + 70a2 + 68a3 ≤ 218 a1 , a2 , a3 ∈ N0 El nuevo patron será A j = (0, 3, 0) y su costo reducido es 1 − ( a1∗ + a2∗ + 13 a3∗ ) = −2 < 0. Iteración 3 mı́n x1 + x2 + x3 + x4 + x5 x1 ≥ 44 x2 + 3x5 ≥ 3 x3 + 3x4 ≥ 48 x1 , x2 , x3 , x4 , x5 ≥ 0 El dual de este problema máx 44y1 + 3y2 + 48y3 y1 ≤ 1 y2 ≤ 1 y3 ≤ 1 3y3 ≤ 1 3y2 ≤ 1 y1 , y2 , y3 ≥ 0 49 IN4704 - Gestión de Operaciones II Se obtiene y = (1, 13 , 13 ). Luego el subproblema queda: 1 1 máx a1 + a2 + a3 3 3 81a1 + 70a2 + 68a3 ≤ 218 a1 , a2 , a3 ∈ N0 0. El nuevo patrón será A j = (2, 0, 0) y su costo reducido es 1 − ( a1∗ + 31 a2∗ + 13 a3∗ ) = −1 < Iteración 4 mı́n x1 + x2 + x3 + x4 + x5 + x6 x1 + 2x6 ≥ 44 x2 + 3x5 ≥ 3 x3 + 3x4 ≥ 48 x1 , x2 , x3 , x4 , x5 , x6 ≥ 0 El dual de este problema máx 44y1 + 3y2 + 48y3 y1 ≤ 1 y2 ≤ 1 y3 ≤ 1 3y3 ≤ 1 3y2 ≤ 1 2y1 ≤ 1 y1 , y2 , y3 ≥ 0 Se obtiene y = ( 21 , 13 , 13 ). Luego el subproblema queda: máx 1 1 1 a1 + a2 + a3 2 3 3 81a1 + 70a2 + 68a3 ≤ 218 a1 , a2 , a3 ∈ N0 El nuevo patrón será A j = (1, 0, 2) y su costo reducido es 1 − ( 21 a1∗ + 13 a2∗ + 13 a3∗ ) = − 61 < 0. Se debe continuar hasta obtener un costo reducido positivo. 50 IN4704 - Gestión de Operaciones II Pregunta 1 Ud. está a cargo de la logística de la repartición de las pruebas de la PSU. Suponga que cada día de la PSU se reparten las pruebas de ese dia entre las 0 y las T horas de la mañana del mismo día. Dado que se opera con un sistema de arriendo de vehículos para la repartición de los enunciados, se desea realizar la labor con el mínimo de éstos. Por lo demás, la capacidad de cada vehículo es de s [pruebas], los que saldrán desde un único punto (nodo 0) hacia el conjunto de centros C donde se rinde la prueba. Cada uno de estos centros posee una demanda igual a dc [pruebas] (dc ≤ s ∀c ∈ C), los cuales deberán ser atendidos dentro de una ventana de tiempo entre lc y uc . Considere que el tiempo de viaje de un centro a otro es de tij , con i, j ∈ C ∪ {0}, y que el tiempo en descargar las pruebas en cada centro es αdc [horas] (las pruebas deben ser descargadas antes que uc en cada centro c y todas deben haber sido descargadas antes del tiempo T). 1. Plantee el problema de optimización que represente este problema de ruteo de vehículos. Suponga que la empresa de arriendo de vehículos dispone de un set K de éstos. El resto de esta pregunta considera el uso de generación de columnas para resolver la relajación lineal de una reformulación de este problema. Considere la siguiente versión de este problema de VRP en términos de patrones/rutas por vehículo (conocida como el set-covering formulation): mı́n p∈P ∑ p∈P z p s.t. ∑ p∈P a pij z p = 1 ∀i ∈ C z p ∈ {0, 1} ∀p ∈ P Donde P el conjunto de todos los patrones posibles y a pi vale 1 si patrón p pasa por el nodo i. 2. ¿Qué representa un patrón en este problema? ¿Qué variables o coeficientes son los que poseen la información de dicho patrón? 3. ¿Cómo inicializaría la resolución del problema? 4. Considere ahora el problema maestro relajado (z p ≥ 0 y solo se consideran I ⊂ P patrones). Suponga que la solución primal-dual de este problema maestro relajado es (z∗ , π ∗ ). Escriba la función objetivo del subproblema de generación de columnas. 5. Escriba en detalle el problema maestro y el subproblema de generación de columnas para este problema. 51 IN4704 - Gestión de Operaciones II 6. Una vez resuelto el subproblema, complete una iteración del método de generación de columnas (hasta antes de resolver el maestro nuevamente). ¿Qué cotas se obtienen del valor óptimo en una iteración? Solución 1. Variables de decisión: xijk vale 1 si el vehículo k va desde el cliente i al j. wi , tiempo en el cual se llega al centro i. mı́n ∑ x0jk j,k s.t. ∑ xijk = 1 ∀j ∈ C ∑ xijk = 1 ∀i ∈ C i ∈C0 ,k j∈C0 ,k ∑ xijk = ∑ xijk d j ≤ s i ∈C0 ∑ ∀ j ∈ C, k ∈ K x jik i ∈C0 ∀ j ∈ C, k ∈ K i ∈C0 w j ≥ wi + tij + αdi + M 1− ∑ xijk ! ∀i ∈ C0 , j ∈ C k∈K li ≤ wi ≤ ui − αdi wi + αdi ≤ T xijk ∈ {0, 1} ∀i ∈ C ∀i ∈ C ∀i, j ∈ C0 , k ∈ K wi ≥ 0 ∀i ∈ C0 donde C0 = C ∪ {0}. 2. En este caso un patrón representa una ruta en la cual se visita a un conjunto de centros, los cuales serán atendidos en un viaje de un vehículo. Un patrón viene definido por los coeficientes de la matriz del problema maestro, en particular un patrón en especifico corresponderá a una columna de coeficientes en especifico del lado izquierdo del problema maestro. 3. Partiría con un conjunto de patrones fáciles de encontrar, como por ejemplo el conjunto de de patrones en donde cada uno corresponde a ir a un cliente en particular y volver al nodo 0. Esto sirve, pues así tengo claramente una solución factible del problema maestro. 52 IN4704 - Gestión de Operaciones II 4. Debemos tener una expresión para los costos reducidos de las variables no-básicas: cj = cj − π∗ T y = 1 − π∗ T y Luego, la función objetivo del subproblema es maximizar π ∗ T y. 5. Luego el subproblema queda: mı́n π ∗ T y s.t. ∑ yij ≤ 1 j∈C ∑ yij ≤ 1 ∀i ∈ C ∑ yij = ∑ yij d j ≤ s i ∈C0 j∈C0 i ∈C0 ∑ ∀j ∈ C y ji i ∈C0 ∀j ∈ C i ∈C0 w j ≥ wi + tij + αdi + M 1 − yij ∀i ∈ C0 , j ∈ C li ≤ wi ≤ ui − αdi wi + αdi ≤ T yij ∈ {0, 1} ∀i ∈ C ∀i ∈ C ∀i, j ∈ C0 wi ≥ 0 ∀i ∈ C0 6. Sea w∗ el valor óptimo obtenido de la función objetivo del subproblema, luego, si 1 − w∗ ≥ 0, entonces terminamos de iterar dado que la última solución al problema maestro es exactamente el óptimo. En caso contrario, si 1 − w∗ < 0, ingresamos la nueva variable (y) al problema maestro como una nueva columna de parámetros, para la nueva variable que corresponde entonces a un nuevo patrón p, luego I ← I ∪ { p }. Pregunta 2 Considere el problema de satisfacer la demanda de una serie de componentes al mínimo costo, en que los componentes deben ser empaquetados en bins o containrs para su envío, más conocido en la literatura como binpacking. Específicamente, considere que se tienen tres tipos de bins, los que se caracterizan por su color (Rojo, Azul o Verde), tamaño y tipos de items que pueden almacenar. El costo por utilizar cada bin depende del color, siendo para los Rojos de $10, para los Azules de $20 y para los verdes de $30. Para determinar los componentes que pueden ser almacenados en cada bin, así como el tamaño de éste, se debe seguir el siguiente procedimiento. Sea 53 IN4704 - Gestión de Operaciones II una lista de N componentes ordenada según sus pesos, el 40 % más pequeño de la lista, puede ser almacenado en los bins de color rojo, el 40 % más grande de la lista puede ser almacenado en los bins de color Verde. Mientras que el 60 % del centro puede ser almacenado en los bins de color Azul. El tamaño de cada bin se determina como n-veces el tamaño del componente más pesado que puede almacenar dicho bin, con n dependiendo de la cantidad de componentes N. Por otra parte, para asegurar un mínimo de variedad en cada bin, se ha impuesto que a lo más se pueden incluir 15 componentes del mismo tipo en los bins Rojos, 10 en los Azules y 5 en los Verdes. 1. Plantee el modelo de programación lineal mixto. 2. Plantee el modelo de generación de columnas. En particular escriba el problema maestro y el subproblema. Solución 1. Variables: xijk wkj 1 Si incluyo una unidad del componente i ∈ N en el k − esimo bin de tipo j ∈ B = R 0 Si no 1 Si uso k − esimo bin de tipo j ∈ B = R ∪ A ∪ V 0 Si no = = yijk = Unidades de componente i ∈ N incluídas en k − esimo bin de tipo j ∈ B = R∪A∪V Para definir el número máximo de bins de cada tipo a utilizar, k, se estimó que éste es menor al peso de la demanda total de productos que pueden ser almacenado enese tipo de contenedor dividido la capacidad de éste, es decir, k = máx j ∑i Qij · Di · pi cap j . Restricciones: xijk ≤ Qij · wkj ∀ i, j, k ∑ yijk · pi ≤ cap j · wkj ∀ j, k ∑ yijk ≥ Di ∀i yijk ≤ v j · xijk ∀ i, j, k yijk , ∈ Z0+ ∀ i, j, k xijk , wkj , ∈ {0, 1} ∀ i, j, k i j,k 54 IN4704 - Gestión de Operaciones II Función Objetivo: mı́n ∑ wkj · c j j,k 2. Problema Maestro Para este problema se define la variable x kj que corresponde al número de bins de tipo j ∈ B = R ∪ A ∪ V que son rellenados con el patrón k. mı́n ∑ xkj · c j j,k ∑ xkj aijk ≥ Di ∀i x kj ∈ N0+ ∀ j, k j,k Subproblema Por su parte, para el subproblema se define la variable aijk que corresponde al número de unidades de componente i ∈ N que pueden ser incluídas en un bin de tipo j ∈ B = R ∪ A ∪ V a través del patrón k. Además, se consideran tres subproblemas, uno para cada tipo de bin j, de tal forma de determinar el patrón óptimo para cada tipo de compartimento. Considerando las variables duales del problema maestro ,yi , el problema queda formulado de la siguiente forma: máx ∑ yi · aijk i ∑ aijk · pi ≤ cap j i k aij aijk ∀ j, k ≤ Qij · vij ∀ i, j, k ∈ N0+ ∀ i, j, k Pregunta 4 Una pequeña empresa de transportes posee un conjunto K de camiones con capacidades de carga CAPk , costos dijos CFk y costos variables CVk por kilómetros recorrido. Se tiene un conjunto E de entregas a realizar dentro de las ventanas de tiempo [t1d , t2d ] ∀d ∈ E y un conjunto R de encargos a recoger dentro de la ventana de tiempo [t1d , t2d ] ∀d ∈ R1 . 1 Para todo nodo de regida i ∈ R llame n + i ∈ E al correspondiente nodo de entrega 55 IN4704 - Gestión de Operaciones II Para cada demanda d ∈ D = E ∪ R existe un peso wd , un beneficio bd y un tiempo de servicio TSd asociados. Las distancias y los tiempos de viaje están dados por distij y Tij , ∀i, j ∈ D, respectivamente. 1. Formule el problema de satisfacer la demanda a costo mínimo, con una cantidad polinomial de variables. Hint 1: Si le es útil, defina los nodos ficticios Ok y Dk como el nodo inicial y final del camión k. Hint 2: No olvide considerar el tiempo de llegada y la carga con la que sale un camión de cada nodo. 2. ¿Cómo cambia el modelo anterior si el objetivo es maximizar beneficios asumiendo que los clientes son opcionales? 3. Formule un modelo de Generación de Columnas para el problema de minimización de costos. Específicamente, defina cuáles serán los patrones para este problema en particular y escriba el Problema Maestro y el Subproblema que utilizaría. Solución 1. Variables: 1 Uso el camión k k y = 0 Si no 1 Si camión k va de i a j xijk = 0 Si no ti,k =Tiempo de llegada del camión k a i pik =Peso de k cuando llega a i zik =Distancia recorrida por camión k Restricciones: 56 IN4704 - Gestión de Operaciones II ∑ xijk = 1 ∀j i,k yk = k ∑ xOk k j = ∑ xiD k j ∀k i ∑ xijk = ∑ xkj(i+n) ∀k, j pik + w j − M(1 − xijk ) ≤ pkj ∀i, j, k i j ti,k + Tij + TS j − M(1 − xijk ) ≤ t j,k ∀i, j, k zik + distij − M (1 − xijk ) ≤ zkj ∀i, j, k pik ≤ CAPk ∀k, i ∑ xijk ∀k ti,k ≥ t1i ∑ xijk ∀k ti,k ≤ t2i j j Función objetivo: máx ∑ xijk bj − ∑ CFk yk − ∑ CVk zik i,j,k k i,k 2. En ese caso el único cambio que se debe hacer es quitar la restricción: ∑ xijk = 1 ∀j i,k 3. 57 IN4704 - Gestión de Operaciones II 6. Heurísticas y ruteo Heurísticas de construcción ruteo Nearest Neighbor Consiste en secuencialmente buscar el nodo que se encuentra más cerca del nodo que se está analizando. Los pasos son: 1. Elegir un nodo de partida al azar 2. Unir el nodo más cercano al último elegido hasta que se acaben 3. Unir el último nodo con el primero Para cada nodo es necesario revisar todos los nodos restantes, por lo cual este algoritmo tiene una complejidad O(n2 ). Multiple Fragment Este algoritmo, a diferencia de anterior, no va arramando la ruta de forma ordenada sino que va juntando las nodos con arcos más baratos y los va uniendo, hasta que ya no queden nodos sin unir. Los pasos son: 1. Buscar el arco más barato que no se haya usado 2. Añadir solo si no forma un ciclo Nearest Addition 1. Elegir un nodo de partida al azar y su nodo más cercano 2. Formar un tour con los nodos agregados 3. Añadir el nodo más cercano al tour Farthest Addition 1. Elegir un nodo de partida al azar y su nodo más lejano 2. Formar un tour con los nodos agregados 3. Añadir el nodo más lejano al tour 58 IN4704 - Gestión de Operaciones II Nearest neighbor Farthest Addition Figura 6: Ejemplo heurísticas de contrucción en ruteo Heurísticas de mejoramiento ruteo Explique las siguientes heurísticas de mejoramiento: 2-opt: Intercambiar dos arcos tales que se reduzca el costo total. Figura 7: 2-opt 3-opt: Intercambiar tres arcos tales que se reduzca el costo. Figura 8: 3-opt 59 IN4704 - Gestión de Operaciones II Exchange: Intercambiar vecinos. Figura 9: Exchange Pregunta 1 Considere un problema de un vendedor viajero que debe visitar ciudades 1,...,n, partiendo de la ciudad 0. El viaje entre la ciudad i y j tiene un costo de cij y demora un tiempo tij > 0. Suponga además que debe visitar cada ciudad i ∈ {1, ..., n} antes de una fecha límite li . 1. Formule el problema de vendedor viajero que minimice el costo de viaje y satisfaga todas las restricciones de tiempo. 2. Muestre por qué se pueden eliminar subtours en este problema sin utilizar un número exponencial de restricciones. 3. Explique cómo se debe modificar el algoritmo de 2-Opt para el problema del TSP con restricciones de tiempo. Para esto, asuma que tiene el orden en que se visitan las ciudades en un arreglo pos[i] con i = 1, ..., n, donde pos[i] es la i-ésima ciudad visitada en el tour y que para dos ciudades i, j tiene los costos cij y tiempos tij entre i y j. (Asuma por simplicidad que ambos son simétricos i.e. cij = c ji y tij = t ji ). Solución 1. mı́n ∑ cij xij ij n s.t. ∑ xij = 1 j =0 n n j =0 k =0 ∑ xij = ∑ xki i = 0, ..., n i = 0, ..., n wi + tij − w j ≤ M (1 − xij ) i, j = 0, ..., n wi ≤ li i = 1, ..., n 60 IN4704 - Gestión de Operaciones II 2. Suponga que tiene un subtour que visita los nodos i1 , i2 , ..., in , entonces el tiempo en que visitamos cada uno de estos nodos satisface n −1 w i n ≥ w i n −1 + t i n −1 i n ≥ w i n −2 + t i n −2 i n −1 + t i n −1 i n ≥ w i 1 + ∑ t i j i j +1 j =1 Como luego va de in a i1 también satisface wi1 ≥ win + tin i1 , estas dos desigualdades con el hecho que tij > 0 nos muestra que win > win , una contradicción. 3. En el algoritmo 2-Opt el paso que se ve afectado es determinar qué rutas pertenecen a la vecindad de una ruta dada. Para eso, además de recostruir la ruta, se debe verificar si el largo de la ruta es menor a li para todos los nodos que cambian su tiempo de llegada. Dada una ruta descrita por el arreglo pos[i], si eliminamos los arcos en la l y k, con l < k de la ruta tenemos que la ruta reconstituida desde pos[0] hasta pos[l] es la misma. Pero luego hay que verificar que w j ≤ l j para todo j en {pos[j]}nj=l . Si wi es la variable que contiene el tiempo en que se llega a pos[i], entonces hay que verificar que k−s wl + t pos[l ] pos[k] + ∑ t pos[h] pos[h−1] ≤ l pos[k−s−1] para k − s − 1 ∈ 0, ..., k − l h=k y también verificar que w j + t pos[l ] pos[k] + t pos[l +1] pos[k+1] − t pos[l ] pos[l +1] − t pos[k] pos[k+1] ≤ l j j ∈ k + 1, ..., n El resto de la rutina es idéntica. Pregunta 2 Considere un problema de vendedor viajero en n ciudades, partiendo de la ciudad 0, y donde el costo de ir de i a j es cij . Este problema se puede interpretar como scheduling de n trabajos que estan inicialmente todos disponibles en una máquina sin preemption ni deadlines. Para esto debe considerar que todos los trabajos se demoran un tiempo constante en la máquina pero existe un tiempo de set up al hacer el trabajo j después del i igual a cij . 1. Para este problema de scheduling, describa la heurística Shortest Remaining Processing Time (SRPT). ¿A qué tipo de heurística corresponde esta para el problema de vendedor viajero original? 61 IN4704 - Gestión de Operaciones II 2. Explique cómo puede utilizar la relajación con preemption de este problema de scheduling para obtener una solución factible. ¿Qué tipo de garantías tiene de esta solución? Solución 1. La heurística SRPT escoje el trabajo que tiene el tiempo de ejecución más corto y hace ese trabajo. Como no hay preemption, solo decide el sgte trabajo una vez que el trabajo anterior ha terminado. Como no hay release ni due dates, en cada momento están disponibles todos los trabajos que no han sido realizados, y si el último trabajo que se hizo fue el trabajo k, entonces se ejecuta a continuación el trabajo j que tenga el menor ckj entre los j que falta por ejecutar. Al inicio se escoje el trabajo j que tenga el menor c0j . Esto corresponde a una heurística de vecino más próximo (NN) En cada etapa de la ruta visita a continuación al trabajo que se encuentra más cerca del punto actual. En extenso, visita al j que no ha sido visitado que tiene el menor ckj . 2. Dado que el problema no tiene release ni due dates, no existe ningún motivo para interrumpir un trabajo. Si un trabajo tenía el menor tiempo de procesamiento y se comienza a ejecutar, durante toda su ejecución continua siendo el trabajo con menor tiempo de servicio. Note que asumo que el tiempo de servicio de un trabajo depende del último trabajo que ha sido completado. Si el último trabajo completo fue i y luego trabajo en j. Mientras quede algo de j los tiempos de procesamiento de los otros trabajos continúa siendo cik ≥ cij . Pero cuando termina j entonces los tiempos de los otros trabajos pasan a ser c jk que pueden estar ordenados differente. Entonces el problema con preemption obtiene la misma respuesta entera que el problema sin preemption. Es decir es factible para el problema sin preemption. Sabemos que la solución sin preemption es mayor el valor óptimo del schedule. Como esta solución corresponde a la solución que entrega la heurística de vecino más próximo en el TSP, podemos usar la garantía que nos da esa heurística: I.e. sabemos que NN ≤ 1/2(log2 (n) + 1)OPT. para problemas en los que los valores cij sean una distancia euclidiana. Pregunta 3 Considere un grafo dirigido G = ( N, A) con n nodos y m arcos. El siguiente algoritmo realiza una búsqueda en profundidad en el grafo partiendo del nodo 1. 62 IN4704 - Gestión de Operaciones II Algorithm 2: BUSQUEDA EN PROFUNDIDAD 1 2 3 4 5 6 7 8 9 10 VISITA(i)=0; PRED(i)=NULL ∀i ∈ N VISITA(1)=1; PRED(1)=0; LISTA={1} while LISTA6= ∅ do Sea i el último nodo puesto en LISTA if i tiene un arco (i, j) ∈ A tal que VISITA(j)=0 then VISITA(j)=1; PRED(j)=i; LISTA=LISTA∪{ j}; else LISTA=LISTA\{i }; 1. Explique que es el problema de búsqueda en profundiad en un grafo, que es una instancia de este problema y cual es el tamaño de una instancia. 2. Encuentre la menor cota del número de operaciones que realiza el Algoritmo 1 en el peor caso. Considere que todas las operaciones matemáticas y de comparación, asignación, lectura, demoran lo mismo. Utilize la notación O(). Solución 1. El problema encuentra todos los nodos que pueden ser accesados de 1. Lo de profundida se refiere a que después que encuentra un decendiente, digamos j del nodo actual, el algoritmo busca a un decendiente de j antes de buscar a nodos al mismo nivel que j. Una instancia es un grafo dado. El tamaño de una instancia es el número de nodos y el número de arcos, n y m respectivamente. 2. La inicializacion es O(n). El número de iteraciones es a lo más 2n ya que en cada iteración se agrega o retira un nodo a LISTA y cada nodo es agregado una sola vez (cuando se revisa el arco (i, j) y VISITA(j)=0). Pero el trabajo por iteración puede cambiar ya que encontrar un arco (i, j) tal que VISITA(j)=0 puede requerir mirar todos los arcos de i. A lo largo del algoritmo, revisamos cada arco una sola vez (imaginese que los borra si los reviso en una iteración anterior). Pasamos O(m) revisando arcos y O(n) iteraciones mas para borrar nodos de LISTA. Con esto tenemos que la parte principal del algoritmo demora O(n + m) ya que encontrar el último nodo en LISTA y las asignaciones y evaluaciones de condiciones son a lo maás un número constante en cada iteración (= 6 por iteración). Total del algoritmo O(n + m + n) = O(n + m) =O(m). Pregunta 4 63 IN4704 - Gestión de Operaciones II Usted es dueño de un canal, donde debe decidir la programación dentro de los espacios publicitarios. Considere que tiene una oferta de un conjunto de publicidades I = {1, . . . , I }, las cuales se deben asignar a un horario h ∈ H = {1, . . . , H }. De esta forma, una publicidad i pagará un precio pih si es asignada en el horario h. Es obligación aceptar a todas las ofertas publicitarias. Además cada publicidad tiene un largo li , como también cada horario es de largo L, de modo que el conjunto de publicidades asignado a un horario no debe exceder L. Por otro lado, hay un conjunto C de conjuntos de a pares publicitarios que no pueden estar en un mismo horario, por ejemplo, si C = {{1, 2}}, entonces en cualquier horario en particular, puedo asignar a lo más una sola de estas dos publicidades. Llame Ah el conjunto de publicidades asignadas en el horario h, ∀h ∈ H, lo cual es lo que Ud. como dueño del canal debe decidir. Para esto se pide lo siguiente: a) Plantee una heurística constructiva de una solución factible, explicando sus claramente pasos. Dicha solución factible debe ser “buena” en la lógica de la construcción de la heurística, en el sentido de que no sea cualquier solución factible. b) Explique una heurística de mejoramiento de la solución obtenida de la parte a). c) Aplique su heurística constructiva explicada en la parte a) para hallar una solución factible al problema instancia: H = {1, 2, 3}, I = { a, b, c, d}, C = para la siguiente 20 60 5 40 80 20 {{ a, d}}, [ pih ] = 10 50 2 , la = 3, lb = 4, lc = 2, ld = 3 y L = 6. 70 30 10 d) Explique que enfoque recomendaría usar y por qué, entre generación de restricciones o generación de columnas para resolver el problema. Solución a) Heurística constructiva, tratamos de generar de alguna manera una solución factible para el problema que sea buena en lo posible (y no cualquier cosa factible al azar). Por ejemplo la siguiente heurística para construir una solución: Sea R en conjunto de pares publicidad-horario donde ya no se busca el máximo pih . 64 IN4704 - Gestión de Operaciones II Algorithm 3: Heurística constructiva Data: H, I , C , P 1 Inicializar T = I , A h = φ ∀ h ∈ H , R = φ; 2 while T 6 = φ do 3 Tomar i ∈ T y h ∈ H tal que (i, h) = arg máx j∈T ,k∈H,( j,k)6∈R p jk ; 4 if li + ∑ j∈ Ah l j ≤ L and ∀k ∈ Ah i ∪ k 6∈ C then 5 Ah ← Ah ∪ {i } Asigno publicidad i en horario h ; 6 T ← T \ { i }; 7 8 9 else R ← R ∪ {(i, h)} return Ah ∀h ∈ H ; En palabras: 1. Considero un conjunto de todas las publicidades inicialmente T . 2. Tomo la publicidad en T tal que tenga el máximo precio a pagar dentro las publicidades en T , sea la publicidad i en el horario h. 3. Asigno la publicidad i en el horario h solo si es que ésta cabe en este horario, y además si es que no hay publicidades ya asignadas en este horario que estén prohibidas con la que estamos agregando. En caso de asignar, retiro del conjunto T la publicidad i. En caso de no asignar, entonces descartar asignar la publicidad i en el horario h en adelante. 4. Si todavía quedan publicidades en T , volver al paso 2. También es posible otras heurísticas, que deben estar explicadas claramente paso a paso, en donde se busque una buena solución y no cualquier cosa. b) Algunas de las heurísticas de mejoramiento que se pueden mencionar: • Mejoras 2 − opt (ó k − opt) donde considero los conjuntos de 2 (ó k) publicidades asignadas, y ver la mejor reasignación posible entre todas las combinaciones. • Swaps o intercambios de a dos publicidades entre sí, realizando el cambio en la medida que se mejore. • Aplicar una búsqueda local de mejoramiento, de la siguiente forma: 1. 2. 3. 4. Partir con una solución factible s. Examinar soluciones s0 en una vecindad N (s) de s (s 6∈ N (s)). Moverse a la mejor solución s0 ∈ N (s). s = s0 y registrar si s es lo mejor obtenido, ir a 2. 65 IN4704 - Gestión de Operaciones II En este caso, se debe definir claramente la vecindad, la cual puede ser por ejemplo, las soluciones con un intercambio de una sola publicidad, o de k publicidades, o cambios en publicidades que estén en k horarios. • Algún método de búsqueda local tipo TABU, en donde consideramos la lista como que guarde las publicidades asignadas en las ultimas iteraciones. O bien también hacer una búsqueda local con simulated anneahling. c) Iteración 1 2 3 4 5 6 7 T { a, b, c, d} { a, c, d} { a, c} { a, c} { a} { a} φ (i, h) (b, 2) (d, 1) ( a, 2) (c, 2) ( a, 1) ( a, 3) >Agrego? Sí Sí No Sí No Sí A1 φ {d} {d} {d} {d} {d} A2 {b} {b} {b} {b, c} {b, c} {b, c} A3 φ φ φ φ φ { a} R φ φ {( a, 2)} {( a, 2)} {( a, 2), ( a, 1)} {( a, 2), ( a, 1)} En palabras, cada iteración: • Iteración 1, no tengo ninguna publicidad asignada, es decir T = { a, b, c, d}, luego veo la que al asignar me de mayores utilidades, es decir, la publicidad b en el horario 2, pues pb2 = 80 es el máximo pago. Hago la asignación pues es posible hacerla. Luego A2 = {b}. • Iteración 2, T = { a, c, d}, el máximo pago es pd1 = 70, y asigno publicidad d a horario 1. Luego A1 = {d}. • Iteración 3, T = { a, c}, el máximo pago es p a2 = 60, pero no puedo asignar la publicidad a al horario 2, pues no caben en el horario 2 las publicidades a y b dado que sus largos suman 7, lo que supera a L = 6. • Iteración 4, T = { a, c}, el máximo pago es pc2 = 50, y asigno publicidad c a horario 2. Luego A2 = {b, c}. • Iteración 5, T = { a}, el máximo pago es p a1 = 20, pero no puedo asignar la publicidad a al horario 1, pues no es compatible con la publicidad d. • Iteración 6, T = { a}, el máximo pago es p a3 = 5, y asigno publicidad a a horario 3. Luego A3 = { a}. • Termino, pues T = φ. En este caso, la función objetivo de la solución obtenida es: 5 + 80 + 50 + 70 = 205. d) Claramente este puede ser abordado mediante generación de columnas, pues se pueden generar patrones de asignaciones de publicidades en horarios, por ejemplo, un patrón podría ser el conjunto de publicidades que se considera para asignar en algún horario en particular. De modo que habrían muchas variables, las cuales se irán agregando de a poco. 66 IN4704 - Gestión de Operaciones II Pregunta 5 Considere el problema de rutear K vehículos de capacidad Q para satisfacer clientes {1, ..., n} cada uno con demanda di . Suponga además que los vehículos parten y vuelven a un depósito, el punto 0, adonde hay un inventario I y que el costo de viaje entre los puntos i y j está dado por cij . Note que el inventario total I y las capacidades de los vehículos Q pueden hacer imposible satisfacer toda la demanda. Se desea resolver este problema de ruteo de vehículos de forma que se minimice la demanda insatisfecha de la forma más eficiente posible. Suponga que todos los clientes son visitados por exáctamente un vehículo. Para balancear estos dos obejtivos se considera α ≥ 0 y la función objetivo: Demanda insatisfecha + α(Costo de rutas) 1. Escriba un problema de programación entero mixto que represente este problema de ruteo de vehículos. Explique las variables que utiliza y las restricciones 2. ¿Es posible que toda la demanda sea satisfecha? Utilice los parámetros del problema para encontrar cotas a la demanda insatisfecha. 3. Explique como obtener una cota a este problema en tiempo polinomial. 4. ¿Cómo podría adaptarse la heurística Multiple Fragment a este problema? Solución 1. Variables yi = cantidad que hay en el camión cuando llega a i zi = cantidad con la que parte un camión desde bodega a i 1 si viajo de i a j xij = 0 si no δi = demanda insatisfecha de i Restricciones ∑ j xij = ∑k xki ≤ 1 ∀i ∑i x0i = ∑k xk0 ≤ K y j ≥ yi − di + δi − M(1 − xij ) yi ≤ Q ∀i, j ∀i yi ≤ zi + M (1 − x0i ) ∀i ∑i zi ≤ I 67 IN4704 - Gestión de Operaciones II yi ≥ 0, zi ≥ 0, xij ∈ {0, 1}, δi ≥ 0 Función Objetivo mı́n ∑ δi + α ∑ cij xij i ij 2. Las cotas a la demanda insatisfecha las dan el inventario y la capacidad de los camiones. El menor de ellos será el determinante, por lo tanto, demanda insatisfecha ≥ ∑ di − mı́n { I, kQ} i 3. Se puede encontrar una cota de varias formas. Una alternativa es a través de heurísticas que garanticen una solución factible. Otra podría ser resolviendo el la relajación lineal del problema y mejorar esta solución mediante algoritmos de corte (como B&B o Gomory). 4. Esta heurística se puede integrar agregando la restricción de capacidad para seleccionar arcos. El algoritmo sería así: 1) seleccionar el arco de menor costo. 2) probar que el camión que utiliza ese arco es capaz de llevar la nueva demanda. 3) cuando ya no queden camiones disponibles o nodos libres (que toda la demanda fue satisfecha) unir los extremos de las rutas a la bodega en 0. 68 IN4704 - Gestión de Operaciones II 7. Ejercicios Pregunta 1 1. ¿Cómo perciben la variabilidad en la demanda final, los eslabones de la cadena más lejanos a la misma, con respecto a los más cercanos?. ¿Cómo se puede mejorar esta percepción y cómo se denomina este fenomeno?. 2. ¿Por qué al configurar redes logísticas con foco en los costos de habilitación (construcción) y transporte es adecuado utilizar horizontes de planificación superiores a 5 años? 3. Indique cuatro factores en común que tienen las industrias donde Revenue Managment se ha aplicado con éxito. 4. ¿Por qué se justifica la maximización de valor esperado en el problema de venta de asientos en la industria aérea? ¿En qué casos la maximización de valor esperado no se debería aplicar? 5. Considere un sistema de inventario (S, s) con tiempos entre llegadas de clientes exponencialmente distribuidas (con tasa λ), tiempo de pedido exponencial de tasa µ, y con costos de inventario (h), quiebre de stock (b), de orden fijo (A) y de orden variable (v). ¿Comó utilizaría el método de reducción de varianza que considera una variable de control para obtener una estimación del costo total de inventario? 6. Suponga que la probabilidad que lleguen al menos i clientes de la clase 1 es p1 (i ) = 1/5i y de la clase 2 es p2 (i ) = 1/2i . Calcule cuantos asientos se deben reservar en total para las clases 1 y 2 y no vender a la clase 3 si los precios son c1 = 100, c2 = 80 y c3 = 40. Solución 1. La variabilidad de la demanda se va ampliando a medida que estamos en eslabones más distantes de la demanda final. Esto se llama el efecto látigo y se puede mejorar con mejor integración y comunicación entre los eslabones de la cadena de suministro. 2. Debido a que los costos de habilitación (construcción) son importantes, relativo a los costos operacionales o diarios. Además estas decisiones crean infraestructura que va a influenciar operaciones por períodos largos, en particular superiores a 5 años. Para medir el impacto de estas decisiones, es necesario comparar los costos de estas con su impacto en los costos operativos por un período importante para determinar si es conveniente. Períodos demasiado largos resultan irrelevantes por la tasa de descuento y el aumento de incertidumbre en las condiciones del problema. 69 IN4704 - Gestión de Operaciones II 3. Primero, son industrias donde con altos costos fijos. Segundo, donde ajustar oferta a la demanda es difícil o imposible en el corto plazo. Tercero, costos marginales bajos, es decir, el atender o entregar un bien a un cliente extra tiene costo muy bajo en la medida que exista capacidad disponible. Cuarto, es posible discriminar clientes de distintas formas, por ejemplo, cuando realizan su compra, o por pequeñas diferencias en el tipo de producto requerido. Quinto, en general, los productos vendidos no son almacenables. 4. Maximización de valor esperado se justifica cuando el agente tomador de decisiones es neutro ante el riesgo. Típicamente esto sucede cuando las decisiones se repiten muchas veces en un período corto de tiempo, como en el caso de la venta de asientos de una aerolinea aérea, donde un dado vuelo de A a B, en un horario fijo durante la semana es esencialmente el mismo. Nótese sin embargo que cuando esta simetría se pierde, valor esperado deja de ser atractivo, pues esencialmente, en la medida que una decisión es única, queremos sacarle el mayor provecho posible, o resguardarnos de las malas situaciones etc. Por ejemplo, para la venta de pasajes en la semana anterior a navidad, usar valor esperado pierde sentido, o más claramente, al momento de diseñar un sistema de emergencia, uno no considera el caso promedio, si no que los malos escenarios. 5. Si xi son los resultados de costo total de la simulación i, este método utiliza el estimador insesgado del costo total dado por X̄c = 1/n ∑in=1 xi + c(zi − µz ), donde z es una variable aleatoria correlacionada con x y con esperanza conocida. En este caso z puede ser el tiempo entre la llegada de i − 1 e i, que tiene esperanza conocida µz = 1/λ. Se deben correr algunos simulaciones piloto para estimar c = −corr ( x, z)/var (z) con la correlación y varianzas empíricas de las corridas piloto. 6. Los asientos que reserva la clase j estan dados por el mayor i tal que c j p j (i ) ≥ c3 . Si c j p j (i ) < c3 preferimos aceptar el cliente de la clase 3. Con los datos arriba, esto dice que p1 (i ) = 1/5i > 40/100 = 2/5. Es decir i = 0 para la clase 1, y p2 (i ) = 1/2i ≥ 40/80 = 1/2 es decir i = 1 para la clase 2. En total EMSRa guardaria 1 asiento para las clases 1 y 2 y no se lo vendería a algún cliente de 3 que aparezca. Pregunta 2 1. En cuanto al modelo de tamaño de flota que se puede decir respecto a: ¿De qué tipo de decisón se trata? ¿Estratégica, táctica u operacional?. Mencione que consideraciones se deben tener al momento de tomar una decisión?. Proponga formas de solución a este problema. 70 IN4704 - Gestión de Operaciones II 2. Una empresa le pide determinar el número de vehículos que necesita dado que debe realizar viajes desde un conjunto de I productores a un conjunto de J vendedores. Además se cuenta con una estimación del tiempo de viaje desde el origen i al destino j y un factor de conversión α que relaciona la cantidad de horas viajadas y el número de vehículos necesario para esa cantidad de horas. Cada punto de origen i tiene una oferta determinada que se satisface con ai viajes, y cada punto de destino j tiene una demanda que se satisface con b j viajes. Plantée un modelo para encontrar el número de vehículos óptimo. Solución 1. Se trata de una decisión táctica- estratégica, pues es una decisión que afecta al mediano y largo plazo, y que condiciona de gran forma el funcionamiento de una empresa. Algunas consideraciones que se deben tener al momento de tomar la decisión son: Tipos de vehículos (ej. pasajeros, servicios, productos, etc) Relaciones contractuales (vehículos propios, subcontratados, sistema mixto) Número de depósitos, de destinos y demanda Frecuencia de viajes, tiempos y distancias de viaje Tipos de ruteo Características de los vehículos (costos, carac. técnicas, etc) Objetivos (tiempo de llegada, minimizar costos, calidad de servicio, etc) Algunas soluciones a este problema pueden ser: Cálculo directo: número aproximado de clientes por vehículo Simulación: análisis de distintos escenarios Modelos matemáticos (ejemplo modelo lineal) 2. Variables xij : número de viajes desde el origen i al destino j N: número de vehículos Restricciones 71 IN4704 - Gestión de Operaciones II ∑ j xij = ai ∀i ∑i xij = b j ∀j N = ∑i ∑ j tij xij α xij ≥ 0 Función Objetivo mı́n N Pregunta 3 Sea Xc = X + c( Z − E( Z )), tal que Z y X son v.a. que están correlacionadas y donde además E( X ) = µ. Demuestre que la media de Xc es la misma que la de X y encuentre el punto de menor varianza de Xc , a partir de c. Explique porqué siempre que X y Z estén correlacionadas, la variable Xc tendrá menor varianza. Solución Teniendo Xc = X + c( Z − E( Z )), tomemos la esperanza de esta variable. E( Xc ) = E( X ) + c(E( Z ) − E( Z )) = E( X ) =µ Para encontrar el punto de mínima varianza calculemos Var ( Xc ) y derivemos en función de c. =⇒ =⇒ Var ( Xc ) = Var ( X ) + c2 Var ( Z ) + 2cCov( X, Z ) dVar ( Xc ) = 2cVar ( Z ) + 2Cov( X, Z ) = 0 dc −cVar ( Z ) = Cov( X, Z ) −Cov( X, Z ) =⇒ c= Var ( Z ) 72 IN4704 - Gestión de Operaciones II Si reemplazamos en Var ( Xc ): Var ( Xc ) = Var ( X ) + c2 Var ( Z ) + 2cCov( X, Z ) −Cov( X, Z ) 2 −Cov( X, Z ) = Var ( X ) + Var ( Z ) + 2 Cov( X, Z ) Var ( Z ) Var ( Z ) Cov( X, Z )2 Cov( X, Z )2 = Var ( X ) + −2 Var ( Z ) Var ( Z ) Cov( X, Z )2 = Var ( X ) − Var ( Z ) Cov( X,Z )2 Dado que Var(Z) > 0 (X y Z están correlacionadas y Var ( Z ) > 0) siempre la varianza de Xc va a ser menor que la de X. Pregunta 4 1. Dado f , g : N → R+ , demuestre que f (n) + g(n) = O(máx f (n), g(n)) 2. Ordene en términos de crecimiento asintótico ls√siguientes funciones (i.e. ordenadas según notación O( g)). n3 , log(n!), 2log(n) , n3+4 n , 4log(n) , n73 , n!, log(log(n)), n, 2n , nlog(log(n)) , log(n), 1. 3. Suponga que puede obtener sampleos X1 , ..., Xq de una variable aleatoria X de distribución desconocida. Explique como estimar el cuantil 10 % de la distribución (el valor que es superado un 90 % del tiempo) con una confianza del 95 %. 4. Describa los distintos elementos presentes en una cadena de suministros y como cada uno contribuye al objetivo de la cadena. Solución 1. Se tiene que: f (n) ≤ máx( f (n), g(n)) ∀n g(n) ≤ máx( f (n), g(n)) ∀n g(n) + f (n) ≤ 2 · máx( f (n), g(n)) ∀n Siendo 2 una constante, se tiene el resultado por definición. 2. Una transformación útil: log2 (n) 1 2log(n) = 2 log2 10 = n log2 10 = nlog(2) 73 IN4704 - Gestión de Operaciones II Además de la siguiente desigualdad: n log(n!) = ∑ log(i) ≤ nlog(n) ≤ n2 i =1 Y por último para demostrar que n 3+4 √ n ≤ n7 √ n ≤ 2n se considera la siguiente igualdad. Dado que log() es creciente estricta: √ 7 nlog(n) 7log(n) lı́m = lı́m √ =0 n→∞ nlog (2) n→∞ nlog(2) Finalmente se tiene: 1 ≤ log(log(n)) ≤ 2log(n) ≤ 4log(n) ≤ n ≤ log(n!) ≤ n3 ≤ n73 ≤ nlog(log(n)) ≤ n3+4 √ n 3. Realizamos varias simulaciones para obtener un set de N sampleos X1,..., Xq/N . Luego se ordenan los Xi de menor a mayor para cada simulación, de modo de poder separar el 10 % más bajo. Luego, se toman los valores críticos (cada valor que mar% ca el 10 % menor) para cada simulación; se promedian los ∑ X10 N y se obtiene su desviación estándar empírica S10 % . Para lograr un intervalo de confianza del 95 %, suponemos que el promedio sigue una distribución normal (implica N mayor que 30), se necesita crear uno que multiplique por 1, 96 a la desviación. Luego se tiene X10 % X10 % ∑ N − 1, 96 · S10 %, ∑ N + 1, 96 · S10 % 4. Esta se compone de proveedores, centros de manufactura, bodegas, centros de distribución y locales de venta. Además considera materias primas, inventario de productos en proceso y productos terminados que fluyen por las instalaciones. En general, una cadena de suministros bien articulada, busca reducir costos y tiempos de ciclo, como también mejorar la calidad del servicio, en un proceso de reparto de productos. Específicamente: Los proveedores son quienes entregan productos típicamente no procesados a la cadena. Los centros de manufactura se utilizan para ensamblar o terminar el producto. 74 ≤ 2n ≤ n! IN4704 - Gestión de Operaciones II Las bodegas son utilizadas para almacenar el producto terminado. Los centros de distribución se encargan de repartir de manera inteligente el producto a los distintos locales. En los locales de venta se entrega el producto al cliente. Pregunta 5 El centro de distribución (CD) de una cadena farmacéutica, se encarga de recibir fármacos desde distintos laboratorios, para luego repartirlos a diversos locales para su venta, según las necesidades de estos. Una operación importante del CD es la preparación de pedidos. La preparación ocurre en cada una de 8 áreas de almacenamiento en el CD. Los operarios de preparación reciben pedidos (guías de despacho) desde los locales con la cantidad y tipo de producto deseado. De modo que el operario debe extraer todo lo que se indica, armar un paquete, y despacharlo. Los fármacos se mantienen en un inventario con un valor máximo por producto de Imax . Cada producto se abastece mediante entregas que completan la cantidad a Imax y cuyo tiempo entre llegada sigue una exponencial con media 15 días. El tiempo que demora un operario en armar una guía depende del número k de distintos tipos de fármacos en la guía y se representa por una distribución exponencial de media 2k minutos. Una vez completa la guía se pone en un camión que la lleva a destino. El Jefe de operaciones del CD se ha dado cuenta que existen importantes pérdidas, producto de las horas extras que debe pagar para la preparación. Antes de ajustar el personal ha considerado utilizar los conocimientos de simulación que adquirió en su curso de Ingeniería de Operaciones para identificar los tiempos muertos del sistema y realizar mejoras tecnológicas en aquellas partes del proceso donde existen cuellos de botella. Suponga que hay 10 fármacos distintos y que las guías de despacho llegan al CD con una distribución exponencial de media 30 minutos. Para evaluar distintas formas de preparación de guías de despacho, se desea correr simulaciones y estimar: Tiempo muerto en preparación Tiempo para completar cada tipo de orden 1. Identifique cuando hay tiempo muerto en el sistema. 2. Describa como haría una simulación para el sistema anterior. ¿Cuáles son las variables de estado del sistema? ¿Cuáles son los eventos importantes? y ¿Cómo se calculan los estadísticos requeridos? 3. Describa en grandes razgos el control de flujo o algoritmo de este proceso de simulación. Puede presentar un diagrama explicando el proceso de simulación y los distintos eventos del sistema. 75 IN4704 - Gestión de Operaciones II Solución 1. Por definición, tiempo muerto es cualquier momento en el que se desaprovechen recursos en el sistema. El único recurso son los operarios, luego el tiempo muerto relevante es el tiempo ocioso de cada operario. 2. Variables de Estado: Número de productos en inventario por cada uno de los fármacos. Número de guias en cola. Estado de ocupado, vacio o trabado por cada operario. Tiempo ocioso de cada operario. Tiempo en el sistema de cada guia Cualquier evento que gatille la modificacion de una variable de estado es un evento importante. Por ende vamos a describir una simulación que es ”event driven”. Los eventos importantes son: Llegada de un abastecimiento Llegada de una guia Fin de un servicio Un producto se agota Los estadisticos requeridos: Se calculan las diferencias de tiempo cada vez que se cambia de estado, a cada estadistico relevante se le suma su delta. Esto se realiza de la siguiente forma: Cuando sucede un evento, queda registrada su hora. Luego el diferencial de tiempo se calcula con la resta simple entre la hora del último evento con el penúltimo. Debe existir un contador del tiempo ocioso de cada operario, como también uno del tiempo que lleva en el sistema cada guia. 3. El control de flujo de la simulación consiste en esperar a que ocurra el siguiente evento y cuando este ocurre actualizar las variables de estado. Una vez concluido un evento, se samplean los tiempos exponenciales de las llegadas de productos, llegadas de una guia, servicios de operarios. El siguiente evento que ocurre es el evento que logra el menor tiempo entre todas las variables aleatorias. En el caso en que el servicio sea el menor y que los inventarios sean menores que los requerimientos de la guia en ese operario ocurre el evento en que falta un producto. Las acciones del control de flujo en los 4 distintos eventos que pueden ocurrir, son: 76 IN4704 - Gestión de Operaciones II Llegada de una guia: • Se actualizan las diferencias de tiempo. • Caso operario vacio, admite la guia • Caso operarios ocupados, va a la cola. Llegada de productos: • Se actualizan las diferencias de tiempo. • Se programa ese producto en Im ax. • Si producto en ”0”, se completan los pedidos estancados. Se completa servicio: • • • • Se actualizan las diferencias de tiempo. Se pone el servidor en vacio. Si hay cola, se le asigna otro trabajo. Si no hay cola, se pone en ocio. Cuando falta producto: • Se actualizan las diferencias de tiempo. • Se pone el servidor en ”trabado”. Pregunta 6 1. Explique la diferencia entre (y dé ejemplos de) un modelo de simulación estocastico dinámico y uno estático. 2. Describa como utilizaría un método de reducción de varianza en un simulador de un sistema M/M/1 con tasa de llegada λ y de servicio µ, si la variable de interés es el tiempo de espera en la primera media hora de funcionamiento. Explique cuál es el estimador que utilizará y por qué tiene menor varianza. 3. Dé un ejemplo de una decisión estratégica, una táctica y una operacional en el contexto de la logística, explicando las razones de su clasificación. 4. Considere el problema de lineal de obtener el tamaño de una flota visto en clase: mı́n N x,N s. a ∑ xij = ai ∀i = 1, . . . , M ∑ xij = bi ∀ j = 1, . . . , M j i N = α ∑ tij xij i,j xij ≥ 0 77 IN4704 - Gestión de Operaciones II a) Explique qué significa este problema. En particular dé el significado de los parámetros a, b, α y t y de las variables x, N. b) ¿Cómo modificaría este problema para indicar que deben considerarse dos tipos distintos de camiones que difieren en tamaño? 5. ¿A qué corresponde el coeficiente de variación de un producto? ¿Qué impacto tenía éste en las decisiones tomadas en el caso de Sport Obermayer? Solución 1. Dinámico: El problema cambia de estructura con el tiempo y debe resolverse cada vez que cambian los parámetros. Ejemplos: Ruteo de vehículos de emergencia, asistencia de fallas. Estático: La configuración no cambia y basta con resolver una vez el problema. Ejemplo: planificación diaria de despacho de productos. 2. Si se quiere estimar el tiempo de espera antes de salir del sistema utilizando reducción de varianza, entonces se puede utilizar la variable aleatoria Xc = X + c( Z − E( Z )) donde X es el tiempo de espera, Z es una variable que está correlacionada −Cov( X,Z ) con X y c = Var(Z) una constante a estimar. En este caso Z podría ser el tiempo de llegada de los individuos o el tiempo de servicio, pues ambas variables estarán correlacionadas con el tiempo de espera. Además se conoce su esperanza por lo que es más fácil generar Xc . El estimador finalmente sería X̄c . 3. Estratégica: Son de gran impacto, afectan de gran medida el largo plazo de la empresa y también el mediano plazo, son de carácter gerencial. Ejemplo: Alianzas con otras empresas, creación de centros de almacenamiento, tamaño de flota. Táctica: Mediano plazo, no tan decisivas como las estratégicas. Ejemplos: Reducción o aumento de personal. Operacional: Día a día, corto plazo. Son decisiones no tan importantes y son tomadas por quienes ejecutan las tareas. Ejemplos: Atraso en entregas, horas extra de trabajo. 4. a) Este problema busca determinar la cantidad mínima de vehículos para satisfacer la demanda de un conjunto de clientes distribuyendo la oferta de productos de varios centros de producción. N es el número de camiones a comprar, xij representan la cantidad de viajes necesarios que se deben realizar en la ruta i − > j, por lo que ai y bi representarán el número esperado de viajes que se tendrán que realizar desde una bodega o hacia un cliente. Esto tiene sentido pues la compra de camiones es 78 IN4704 - Gestión de Operaciones II una decisión táctica, entonces no existe certeza total sobre la cantidad de bienes a transportar, pero sí se puede estimar mejor la cantidad de viajes. α representa un factor de conversión de el número de horas de viajes que se hacen al número de vehículos necesarios para realizar esas horas en un periodo de tiempo. b) Se deben crear las variables N1 = número de vehículos de tipo 1 y N2 = número de vehículos de tipo 2. Además se debe determinar lo transportado por cada vehículo en cada ruta i − j, por lo que se agregan las variables xij1 y xij2 . Finalmente el problema se reescribe como: mı́n N1 + N2 s. a ∑ xij1 + xij2 = ai ∀i = 1, . . . , M ∑ xij1 + xij2 = bi ∀ j = 1, . . . , M j i N1 = α1 ∑ tij xij1 i,j N2 = α2 ∑ tij xij2 i,j xij1 , xij2 ≥0 5. El coeficiente de variación representa una medida de la dispersión de la demanda σ con respecto a la media, dada por µpp , con σp la desviación estándar esperada del producto y µ p la demanda media del producto. Coeficientes de variación altos están asociados a altos costos de errar en calzar demanda con oferta, así que deben ser los productos a los que más atención se les coloca al momento de decidir las cantidades a ordenar, según se realizó en el caso de SO. Pregunta 7 1. Explique la diferencia entre decisiones estratégicas, tácticas y operacionales en la administración de una cadena de suministro. De un ejemplo de cada tipo de decisión. 2. Comente la veracidad de las siguientes afirmaciones: a) En un sistema de colas con cola única y multiples servidores (e.g. M/M/c), un nivel de utilización de 95 % es riesgoso ya que siempre produce tiempos de espera demasiado altos. 79 IN4704 - Gestión de Operaciones II b) En el control estadístico de procesos, aumentar el tamaño de la muestra utilizada para construir los diagramas de control lleva a una detección mas eficiente de procesos fuera control. 3. Considere el problema de optimización con n variables x = ( x1 , x2 , . . . , xn ) = ( x1 , x̄ ): mı́n c1 x1 + c̄ T x̄ s.t. x1 + aiT x̄ ≤ bi i = 1, . . . m donde m >> n. a) Describa el método de generación de restricciones para resolver este problema. Indique cuál es el valor de la cota inferior del valor óptimo que se obtiene en cada iteración. b) Encuentre una cota superior al valor óptimo que se obtiene en cada iteración cuando c1 < 0. ¿Cuanto es el gap con la cota inferior.? Solución 1. Diferencias tienen que ver con cuanto tiempo estas decisiones influencian la cadena de suministro ademas de los montos involucrados en las decisiones. Por ejemplo, una decision estratégica seria decidir si extender la red de suministro a un mercado nuevo, lo que involucra inversion en la cantidad de produccion, bodegas, expandir flota, etc para el nuevo mercado. Una decision táctica puede ser decidir con que transportista establecer un contrato de transporte que dure un periodo (por ejemplo un año). una decision operacional puede ser cuanto producir una semana o enviar un dia. 2. a) En un sistema de colas markovianos un nivel de utilización del 95 % no producirá siempre tiempos de espera altos, pero si genera una espera promedio alta, junto con una prácticamente nula capacidad de respuesta frente a variabilidad de la demanda al alza. b) Dado q que los intervalos de confianza del proceso están dados por CL = p̄ ± p̄(1− p̄) 3 ni , con ni , i = 1, . . . , m el tamaño de la sub-muestra dentro de las m muestras, si se consideran más casos por cada muestra tiene un efecto en la certeza, pero este efecto debe ser contrapesado con el mayor costo que trae el muestrear más veces, por lo que no siempre es eficiente en costos. 3. a) El problema maestro del método de generación de restricciones es mı́n c1 x1 + c̄ T x̄ s.t. x1 + aiT x̄ ≤ bi i ∈ I 80 IN4704 - Gestión de Operaciones II donde I ⊂ {1, . . . , m} es un conjunto pequeño de restricciones. Una vez resuelto el maestro se obtiene una solución x ∗ = ( x1∗ , x̄ ∗ ) y se debe resolver el siguiente subproblema: z = mı́n bi − aiT x̄ ∗ i ∈{1,...,m} Si z ≥ x1∗ entonces tenemos que x ∗ es la solución óptima del problema completo. Si no, entonces exite un j tal que z = b j − a Tj x̄ ∗ , agregamos j a I y volvemos a resolver el problema maestro. En cada iteración el valor c1 x1∗ + c̄ T x̄ ∗ es una cota inferior al valor óptimo del problema completo, v∗ ya que es la solución de un problema mas relajado (con región factible mas grande). b) Dada la solución al maestro x ∗ y el valor del subproblema z, tenemos que x̃ = (z, x̄ ∗ ) es factible para el problema completo, por lo tanto v∗ ≤ c1 z + c̄ T x̄ ∗ . Note que en una iteración normal z < x1∗ por lo que c1 < 0 es critico para que las cotas superiores e inferiores estén ordenadas ya que en ese caso c1 x1∗ < c1 z. El gap es de c1 (z − x1∗ ) > 0. Pregunta 8 Considere un problema en que rutea K vehículos que salen del nodo 0 para atender clientes 1, . . . , n. Para cada localidades i y j usted enfrenta un costo de viaje igual a cij y un tiempo de viaje igual a tij . Cada cliente i tiene una ventana de tiempo para ser visitado dada por [ ai , bi ] y si el vehiculo llega antes incurre un costo de α por unidad de tiempo, mientras que si llega tarde un costo de β por unidad de tiempo. 1. Formule este problema de ruteo de vehículos de forma de minimizar el costo total de las rutas por viajes y violaciones a las ventanas de tiempo. 2. ¿Tiene sentido llegar antes a un cliente o siempre se puede esperar en la puerta? 3. Cuando α = β = 0 recuperamos el ruteo de vehiculos simple, si α = β = ∞ tenemos un problema de ruteo de vehiculos con ventanas de tiempo duras. ¿Cómo se comparan los costos de viaje de la ruta óptima cuando α = β = 0, α = β = ∞ y α, β > 0? 4. Muestre la siguiente equivalencia en las restricciones que eliminan sub-tours de un problema de ruteo de vehiculos: ∑ i,j∈S xij ≤ |S| − 1 ∀ S ⊂ V ⇔ ∑ xij ≥ 1 ∀ S ⊂ V i ∈S,j6∈S Solución 81 IN4704 - Gestión de Operaciones II 1. usaremos variables binarias xij para indicar si un vehiculo viaja de i a j. Ademas se utilizarán variables continuas wi que indica el tiempo de llegada al cliente i, li el atraso al cliente i, y ei el tiempo que se llega adelantado al cliente i. mı́n ∑ijn =1 cij xij + ∑in=1 αei + βli s.a. ∑nj=1 xij = ∑nk=1 xki = 1 ∑nj=1 x0j = ∑nk=1 xk0 = K wi + tij ≤ w j + M (1 − xij ) wi + ei ≥ a i w i − l i ≤ bi wi , li , ei ≥ 0 xij ∈ {0, 1} i = 1, . . . n i, j = 1, . . . n i = 1, . . . n i = 1, . . . n i = 1, . . . n i, j = 0, 1, . . . n 2. Si, puede ser ventajoso llegar adelantado a un cliente i, e incurrir en el costo α si esto luego permite llegar a tiempo a otro cliente k, posiblemente ahorrando un costo β. Note que hay ejemplos en los que podemos llegar adelantados a un cliente y ’esperar en la puerta’ para ahorrarnos el costo α. En este caso se veria que la restriccion 3 tendria holgura y podriamos ahorrarnos la penalidad por llegar antes. 3. En este problema solo deseamos comparar el costo de viaje c T x = ∑ij cij xij de las rutas óptimas en cada caso. Esto es, como se ordenan c T x0 , c T x ∞ , y c T x ∗ , donde x0 es la solución óptima cuando α = β = 0 (caso 1), x ∞ cuando α = β = ∞ (caso 2) y x ∗ para todo los otros α, β > 0(caso3) Como el problema con restricciones duras de ventanas de tiempo es un problema más restringido, tenemos que c T x ∞ ≥ c T x0 , c T x ∗ ya que no todas las rutas que son factibles en los casos 1 y 3 son factibles en el caso 2. Luego, en el caso 1 solo se esta minimizando c T x (ya que las penalidades por adelantarse o atrasarse son cero) por lo que c T x0 debe ser el valor de la ruta con tiempo de viaje minimo. Luego c T x0 ≤ c T x ∗ ≤ c T x ∞ 4. Dado un conjunto no vacio y estricto, S ⊂ V. Es decir que hay al menos un punto i ∈ S y un punto j 6∈ S. Tenemos que para todo punto i ∈ S una ruta factible satisface la restriccion ∑nj=1 xij = 1, esto quiere decir que para todo i ∈ S tenemos 1= ∑ xij + ∑ xij j∈S j6∈S sumando sobre todos los i ∈ S tenemos |S| = ∑ i,j∈S xij + ∑ xij i ∈S,j6∈S Esta equación se utiliza para demostrar la equivalencia de la pregunta. 82 IN4704 - Gestión de Operaciones II Pregunta 9 1. Describa brevemente como utilizar optimización estocástica para encontrar la solución óptima para el problema del caso Sport Obermayer. En particular indique cuales son las variables de primera etapa, de segunda etapa, la incertidumbre, objetivo y restricciones. 2. Un cine debe decidir cuantas entradas ofrece atravez de un sistema de ventas colectivas con descuento (Grapin) recibiendo $1.000 y cuantas deja para clientes de último minuto que compran en la boleteria a $5.000. Suponga que siempre vende todas las entradas ofrecidas por Grapin, que la sala de cine tiene capacidad para 200 personas, y que el número de clientes de último minuto es un número uniformemente distribuido entre 21 y 70. Utilice la regla de Littlewood para determinar cuantos asientos se deben reservar para clientes de último minuto. 3. De dos ejemplos de decisiones estratégicas en la logística de transportes. Indique el tipo de problema que debe ser resuelto para tomar esta decisión y explique porque son estratégicas y no de otro tipo. 4. Muestre que el sub-problema de generación de columnas es equivalente al subproblema de generación de restricciones en el dual del problema original. Considere para esto la generación de columnas en el siguiente PL, donde n >> m: n mı́n ∑ c j x j | j =1 n ∑ aij x j = bi , i = 1 . . . m, x j ≥ 0, j = 1 . . . n . j =1 5. De un pequeño ejemplo que muestre que la heurística del vecino más cercano puede no encontrar la solución óptima. Solución 1. En el caso de S.O. hay que decidir cuanto de distintos productos encargar antes de ver una buena approximación de la demanda real en el show de Las Vegas. Luego del show se pueden encargar más productos sujeto a restricciones de capacidad mas estrictas. Si tomamos la demanda despues del show como la demanda real, esto es un problema de optimización estocástica con dos etapas: la variable de primera etapa son los pedidos originales, mientras la variable de segunda etapa son los pedidos que se realizan despues del show conocida la demanda real. La demanda es incierta al hacer los pedidos originales, pero es revelada en el show de las vegas, antes de las variables de segunda etapa. Este modelo busca la solución que maximiza los ingresos esperados, considerando los costos de overage y underage, dadas realizaciones de demanda. 83 IN4704 - Gestión de Operaciones II 2. El criterio de littlewood dice: si se tienen k asientos disponibles, se debe reservar el último espacio para el cliente de mejor precio (p1 ) si p1 P(d1 ≥ k ) ≥ p2 . En este caso esto dice que, se debe encontrar el mayor k tal que P(d1 ≥ k ) ≥ 1000/5000 = 1/5 = 0.2. Como d1 es un número entero ∼ U [21, 70] tenemos que P(d1 = k) = 1/50 para todo k ∈ {21 . . . 70}, por lo que P(d1 ≥ k ) = (70 − k + 1)/50 para todo k ∈ {21 . . . 70}. Con esto vemos que el mayor k que satisface Littlewood es k = 61 donde P(d1 ≥ 61) = 1/5. Esto implica que se deben guardar 61 asientos para la clase 1 y enviar 139 a Grapin. 3. Todos los problemas abajo se pueden representar con modelos de optmizacion lineal, algunos con variables enteras. Son principalmente estratégicas por los montos de inversión involucrados en estas decisiones y los horizontes de planificación que deben ser considerados para estos proyectos. No se pueden tomar estas decisiones todos los días o varias veces al año. Otra generalidad es que dado los horizontes de planificación resulta importante representar la incertidumbre se puede optar a modelos mas simples (flujo en redes) en los que es mas facil considerar la incertiumbre. Abajo describo algunos ejemplos de decisiones estrategicas y describo en mas detalle que modelos de optimización servirian. Comprar una flota o subarrendar el servicio de transporte. Se puede representar el problema de ruteo que se debe hacer como un VRP (con variables enteras) para determinar los costos y nivel de servicio de las distintas alternativos de flota. Donde construir un depot (bodegas, garage, mantencion vehiculos). Problemas de localizacion, con variables enteras que deciden si un depot se usa o no y algun modelo de asignación de demanda a depots abiertos. Como diseñar la red de transporte, por ejemplo usar una bodega de distribución y altos costos de transporte, o muchas bodegas con menores costo de transporte pero con mas segmentos. Un problema de flujo en redes en los que tambien pueden haber nodos con capacidades que se van a cero. Determinar los puntos de la demanda que serán cubiertos (determinando cantidad de transporte necesario). Modelos lineales del costo approximado de satisfacer una cierta cantidad de demanda. 4. 5. Pregunta 10 84 IN4704 - Gestión de Operaciones II 1. Explique cuando es conveniente abordar un problema de decisón con un modelo de simulación, de optimización matemática, o mediante heurísticas. 2. Suponga que quedan 3 asientos disponibles en un vuelo que pueden venderse a precio completo (US$1.000) o en oferta (US$400). Suponga además que la probabilidad que lleguen 0, 1, ó 2 clientes de precio completo es 0,1 , 0,25 y 0,35 , respectivamente. En este momento llega una persona a comprar el pasaje en oferta. Utilice la regla de Littlewood para decidir si se le vende el pasaje o no. 3. Dada esta formulación de el cutting stock problem: mı́n ∑kK=1 yk s.t. ∑kK=1 xik ≥ bi ∑in=1 wi xik ≤ Wyk yk ∈ {0, 1} xik ≥ 0 integer ∀i = 1 . . . m ∀k = 1 . . . K ∀k = 1 . . . K ∀i = 1 . . . m, k = 1 . . . K a) Formule el problema que es resuelto por generación de columnas. ¿Cómo se compara el valor óptimo con el del problema de arriba? b) Escriba el problema maestro y el subproblema del método de generación de columnas. c) ¿Cómo obtenemos una cota superior al valor óptimo en cada iteración del método de generación de columnas? d) Al hacer una generación de columnas para resolver el problema, >como obtenemos una cota superior? Solución Pregunta 11 1. ¿Cuándo es importante utilizar un método de reducción de varianza en una simulación? 2. Suponga que una simulación (con varianza σ2 conocida) arroja un promedio x̄ > 0. ¿Cuántas repeticiones de la simulación son necesarias para tener un 95 % de confianza que el promedio de la simulación es mayor o igual a zero? 3. ¿El algoritmo de descomposición de Benders es un ejemplo de un método de generación de columnas o de generación de restricciones? Explique brevemente. 4. ¿Por qué se justifica la maximización del valor esperado en el Newsvendor problem? ¿En qué casos maximizar el valor esperado no tiene sentido? Solución 85 IN4704 - Gestión de Operaciones II 1. Cuando realizar una simulación sea muy costoso o difícil, la reducción de varianza se convierte en una alternativa para conseguir resultados más robustos, sin la necesidad de hacer nuevas simulaciones. 2. Sabemos que el estimador x̄ tiene media µ y varianza se el promedio es no negativo se debe cumplir: σ2 n . Para garantizar al % 95 que P(µ ≥ 0) = 0.95 =⇒ P µ− x̄ √ σ/ n =⇒ 1.64 · =⇒ √σ n 1.64 x̄ σ 2 ≥ −√ x̄ σ/ n = 0.95 ≤ x̄ ≤n Gracias a que P( Z ≤ 1.64) = 0.95 cuando Z ∼ N (0, 1) 3. Es un ejemplo de generación de restricciones. Es un método que tiene un problema principal (P. Maestro) al que se le agregan restricciones, en la medida que los subproblemas no cumplan ciertos criterios. 4. Maximización de valor esperado se justifica cuando el agente tomador de decisiones es neutro ante el riesgo. Típicamente esto sucede cuando las decisiones se repiten muchas veces en un período corto de tiempo, como en el caso de la venta de asientos de una aerolinea aérea, donde un dado vuelo de A a B, en un horario fijo durante la semana es esencialmente el mismo. Nótese sin embargo que cuando esta simetría se pierde, valor esperado deja de ser atractivo, pues esencialmente, en la medida que una decisión es única, queremos sacarle el mayor provecho posible, o resguardarnos de las malas situaciones etc. Por ejemplo, para la venta de pasajes en la semana anterior a navidad, usar valor esperado pierde sentido, o más claramente, al momento de diseñar un sistema de emergencia, uno no considera el caso promedio, si no que los malos escenarios. Pregunta 12 Suponga el siguiente problema: Usted tiene N trabajos que procesar en M máquinas. Cada trabajo debe ser procesado en todas las máquinas, pasando siempre primero por la máquina 1, luego por la máquina 2, y así sucesivamente hasta terminar en la máquina M. Suponga además que los trabajos deben ser procesados en el mismo orden en todas las máquinas. 86 IN4704 - Gestión de Operaciones II El trabajo n toma Tnm en ser procesado en la máquina m. Plantee un problema de programación lineal para determinar el orden en que debe procesar los trabajos de modo de minimizar el tiempo de tránsito total. Solución Las variables son: 1 Si el trabajo j se realiza inmediatamente después del i xij = 0 Si no tim = tiempo de comienzo del trabajo i en la máquina m. t f = tiempo de fin del último trabajo en la última máquina Las restriciones: ∑iN=0 xij = 1 ∀j +1 ∑N j=1 xij = 1 ∀i ∑N j=1 x0j = 1 ∑iN=1 xiN +1 = 1 t f ≥ tiM + TiM tim+1 ≥ tim + Tim ∀i ∀i, m t jm ≥ tim + Tim − (1 − xij )V tim ≥ 0, xij ∈ {0, 1} ∀i, j, m V >> 1 ∀i, j, m y finalmente la función objetivo mı́n t f 87