Modelos y Optimización I María Inés Parnisari 7 de enero de 2012 Índice 1. Deniciones 2 2. Método Simplex 2 3. Problemas 4 4. Modelización 10 5. Heurísticas 10 1 1 Deniciones Investigación operativa: aplicación de la ciencia moderna a problemas complejos que aparecen en la administración de sistemas formados por personas, materiales, equipos y dinero. Su característica es la elaboración de modelos cientícos que mediante la incorporación de factores de riesgo e incertidumbre permitan evaluar decisiones. 1.1 Supuestos básicos de la programación lineal 1. 2. Proporcionalidad: el benecio y el uso de recursos son directamente proporcionales al nivel de actividad. Aditividad: no existen interacciones entre las actividades que cambien la medida total de la efectividad o el uso total de algún recurso. 3. Divisibilidad: pueden permitirse valores fraccionarios. 4. Certeza: todos los parámetros del modelo son constantes conocidas. 1.2 Elementos de un modelo Análisis del problema Objetivo: ¾qué hacer? ¾cuándo? ¾para qué? Hipótesis: supuestos aceptados como verdaderos Actividad: procesos que se realizan en el sistema, caracterizados por consumir recursos y generar resultados económicos Variables: indican el estado de una actividad • Continuas: miden • Enteras: indican 2 Método Simplex Algoritmo 1 Método simplex 1. Transformar las desigualdades en igualdades, agregando variables slacks o variables artificiales 2. Mover las constantes a los 2dos miembros 3. Armar la tabla 4. Mientras hay algún zj − cj negativo (zmax ) o positivo (zmin ): a ) Elegir la variable que entra: 1) 2) Menor zj − cj (zmax ) Mayor zj − cj (zmin ) b ) Elegir la variable que sale: 1) Menor θ positiva (o θ = 0 si aij > 0) c ) Armar nueva tabla: 1) 2) 3) Dividir la fila del pivote por el pivote Aplicar el método del rectángulo para las demás filas znuevo = zviejo − θmin · (zj − cj )variable que entra a la base 2 2.1 Teoremas Teorema 1. El conjunto de todas las soluciones factibles a un problema de programación lineal es un poliedro convexo. Teorema. El funcional alcanza su mínimo (o máximo) en un punto extremo del poliedro convexo. Teorema 2. El número de vértices del conjunto factible del problema es: m+n m = (m + n)! m!(m + n − m)! donde n es la cantidad de variables reales y m es la cantidad de ecuaciones. 2.2 Análisis de variables Cj Xj Bj aij Coeciente en el funcional de cada Xj Variable que forma parte de la base (nivel de actividad Valor de Xj j) en la base (las que no están valen 0) Cuánto disminuye el valor de Xi [f ila] por cada unidad de Xj [columna] que decida fabricarse o que sobre zj − cj Yj Costo de oportunidad si Xj está j en la base; Valor marginal de un Xj slack Valor marginal del recurso Recurso saturado: recurso con cero sobrante. Equivale a tener una variable slack xj = 0. P Lucro cesante: ∀i U soRecursoi · V alorM arginalRecursoi Valor marginal Costo de oportunidad Variable real Cuánto va a empeorar el funcional si debemos fabricar una unidad de ese producto Variable slack Cuánto va a mejorar el funcional si se tiene una unidad más de ese recurso 2.3 Análisis de sensibilidad El análisis de sensibilidad se efectúa en todo estudio de programación lineal porque la mayoría de los parámetros utilizados en el modelo suelen ser solamente estimaciones de condiciones futuras. 1. Variación de los cj El rango para que la solución óptima siga siéndolo es 2. Variación de los cj tal que zj − cj ≥ 0 (zmax ) bj El análisis se hace tomando la tabla del problema dual y analizando los 3. Variación simultánea de varios bj El análisis se hace tomando la tabla del problema dual y analizando los 4. Variación simultánea de varios cj Primero analizar los cambios de cambios de y varios bj bj 5. Curva de oferta Es un gráco de la variación de cada Xj en función de 2.4 Dualidad Dual Maximizar: z= Pn j=1 Cj Sujeto a: · Xj Xj ≥ 0 ∀j j=1 aij · Xj ≤ Bj ∀i Pn Minimizar: W = Pm i=1 Bj · Yi Sujeto a: Pm i=1 bj en el problema dual, y luego hacer el dual del dual para analizar los cj Primal cj Yi ≥ 0 ∀i aij · Yi ≥ Cj ∀j 3 Cj 2.4.1 Teorema fundamental de la dualidad 1. X tiene solución óptima nita 2. X es poliedro abierto 3. X es incompatible ⇐⇒Y ⇐⇒(Y ⇐⇒Y tiene solución óptima nita es incompatible es incompatible) ∨ (Y es poliedro abierto) 2.4.2 Modicaciones al problema original 1. Agregar un producto: a) La columna del producto en la tabla óptima será: y = A·x donde A es la matriz inversa óptima (tiene 1 las columnas de la tabla óptima que corresponden a la matriz identidad del 1er paso, ordenados ), y x b) es el vector de coecientes del producto. Con la nueva tabla formada, calcular el 2. Cambios en los zj − cj y proseguir normalmente. Cj Reemplazar en la tabla nal en todos los lugares que aparezcan y recalcular los 3. Cambios en los zj − cj involucrados. Bj Realizar (2) tomando la tabla del dual. 4. Agregar una restricción a) b) Vericar si la nueva restricción no afecta a la solución actual. Si afecta, realizar (1) tomando la tabla del dual. Recordar que si había un coeciente negativo en el funcional del primal, habrá un coeciente de x negativo. 2.5 Tipos de soluciones Punto degenerado Cuándo Solución alternativa Acumulación de Hay otro vértice vértices en un del poliedro con el punto mismo Poliedro abierto Incompatible No existe solución No existe solución óptima factible Hay una variable En la tabla óptima z Tabla anterior: empate de En Simplex θ mínimos. Tabla actual: Bk = 0 para una variable zj − cj = 0 de una variable que no está en la base que quiere entrar a hay una variable la base pero articial en la base ninguna puede salir con Bk 6= 0 de la base Gráco 3 Problemas 3.1 Problema de análisis de actividad Datos: n m 1 Si actividades recursos la matriz identidad del 1er paso incluye a variables articiales, no utilizar éstas, sino las reales cambiadas de signo. 4 Bi =disponibilidad aij =cantidad ci =ganancia del recurso de recurso i i que consume la actividad unitaria de la actividad j i Problema: encontrar la intensidad de trabajo de las actividades, para maximizar la ganancia total. Denición de variables: xi =intensidad de la actividad i Funcional: Pn · xi i=1 ci Zmax = Modelización: 1. La cantidad de recursos utilizados no puede superar la disponibilidad del recurso Pn j=1 aij · xj ≤ Bi para todo i 2. Condición de no negatividad xi ≥ 0 i para todo 3.2 Problema de centros de producción Problema: determinar cuánto producir y cuánto insumo consumir en cada centro de producción. Modelización: 1. Relación E/S: M ERM A · P Entradai Ck = P Salidai Ck 2. Mezcla a la entrada: %dDEi ENk · P Entradai Ck = Entradai Ck 3. Mezcla a la salida: %DEi ENk · P Salidai Ck = Salidai Ck 4. Capacidad productiva: HS.P ORkG.Ck · P Entradai Ck ≤ Cap.Hs.Ck 3.3 Problema del viajante Datos: n ciudades Cij =costo de ir de la ciudad Simetría (Cij = Cji ) i a la ciudad o asimetría (Cij j 6= Cji ) del problema Problema: encontrar el orden en el cual un viajante visita las ciudades para minimizar la distancia total recorrida. Cada ciudad debe ser visitada solo una vez, y al terminar el recorrido debe volverse a la ciudad de origen. Denición de variables: ( Yij = 1 0 Ui =orden si va de la ciudad i a la ciudad j directamente si no de visita de la ciudad i, {1, 2, . . . , n} Funcional: 5 Zmin = Pn i=0 Pn j=0 Cij · Yij Modelización: 1. Hay solo una ciudad después de Pn j=0 Yij = 1, ∀i, i 6= j 2. Hay solo una ciudad antes de Pn i=0 i j Yij = 1, ∀j, i 6= j 3. Evitamos subtours Ui − Uj + n · Yij ≤ n − 1, ∀i, j i 6= j 3.4 Problema de distribución Datos: m n Orígenes / Suministros Demandas / Destinos Cij =costo de enviar el producto desde el origen i al destino Si =cantidad de producto disponible en el suministro i Di =cantidad de producto demandada por el destino i j Hipótesis: Cualquier origen puede enviar producto a cualquier destino Producto homogéneo Costos lineales Problema: determinar qué origen le envía a cuál destino para minimizar los costos de transporte. Denición de variables: Xij =cantidad de productos enviados desde el origen i al destino j Funcional: Zmin = Pm Pn i=1 j=1 Cij · Xij Modelización: Si 1. La cantidad enviada desde Pm i=1 Xij ≤ Si para cada 2. La cantidad que llega a Pn i=1 Xij ≥ Dj i Di para cada debe ser menor o igual a su disponibilidad debe ser mayor o igual a su demanda j 3. Condición de no negatividad Xij ≥ 0 para cada i, j 6 3.5 Problema de transbordo Datos: o Orígenes d Destinos t Transbordos COi Tj =costo de enviar un producto desde el origen i CTi Dj =costo de enviar un producto desde el transbordo al transbordo i j al destino j Hipótesis: Los transbordos tienen capacidad de stock ilimitada Costos lineales Problema: determinar qué origen le envía a cuál transbordo, y qué transbordo le envía a cuál destino, para minimizar los costos de transporte. Denición de variables: XOi Tj =cantidad enviada desde el origen i XTi Dj =cantidad enviada desde el transbordo al transbordo i j al destino j Funcional: Zmin = Po i=1 Pt i=1 COi Tj · XOi Tj + Pt i=1 Pd i=1 CTi Dj · XTi Dj Modelización: 1. La cantidad enviada desde Pt j=1 XOi Tj ≤ Oi para cada 2. La cantidad que llega a Pt i=1 XTi Dj ≥ Dj Oi Di debe ser menor o igual a su disponibilidad i debe ser mayor o igual a su demanda para cada j 3. Todo lo que entra a un transbordo, es enviado a un destino Po i=1 XOi Tj = Pd k=1 XTj Dk para cada j 4. Condición de no negatividad XOi Tj ≥ 0 para cada i, j XTi Dj ≥ 0 para cada i, j 3.6 Problema de la dieta Datos: m Comidas n Nutrientes Ri =requerimiento Pi =precio mínimo diario del nutriente por unidad de la comida cij =cantidad de nutriente j i i en la comida i Problema: determinar una dieta que satisfaga los requisitos alimenticios a un costo mínimo. Denición de variables: 7 Yi =cantidad de comida i a comprar por día Funcional: Pm Zmin = Pi · Yi i=1 Modelización: 1. Se deben satisfacer los requerimientos alimenticios Pm · Yi ≥ Ri i=1 cij para cada j 2. Condición de no negatividad Yi ≥ 0 para cada i 3.7 Problema del secuenciamiento de máquinas (Job Shop Scheduling) Datos: n trabajos m máquinas Problema: determinar en qué orden y en qué máquinas se procesarán todos los trabajos para minimizar el tiempo que lleva terminar todos los trabajos. 3.8 Problema de asignación Datos: p personas t trabajos aij =ganancia que se obtiene cuando la persona i está con el trabajo Problema: determinar qué personas realizarán qué trabajos. Denición de variables: ( xij = 1 0 si la persona ise asigna al trabajo j si no Funcional: Zmax = Pp i=1 Pt j=1 aij · xij Modelización: 1. Un trabajo por persona Pt j=1 xij = 1 para cada i 2. Una persona por trabajo Pp i=1 xij = 1 para cada j 8 j 3.9 Problema de asignación cuadrática Datos: m fábricas m ciudades dij =distancia de la ciudad cij =capacidad i a la ciudad j de transporte de la fábrica i a la fábrica j Problema: determinar qué fábricas se instalarán en qué ciudades para minimizar la suma de las distancias multiplicado por la capacidad de transporte. Denición de variables: cijkl = cij · dkl ( 1 si la fábrica ise instala xij = 0 si no ( 1 si xij = xkl = 1 Yijkl = 0 si no en la ciudad j Funcional: Zmin = Pm Pm Pm Pm i=1 j=1 k=1 l=1 Yijkl · cijkl para todo i 6= k y para todo j 6= l Modelización: 1. Valor para Yijkl 2 · Yijkl ≤ xij + xkl ≤ Yijkl + 1 3.10 Problema de la mochila Datos: k objetos pk =peso del objeto vk =valor P =peso k económico del objeto k máximo de la mochila Problema: determinar qué objetos meter dentro de la mochila para satisfacer la restricción de peso, y maximizar el valor de los objetos guardados. Denición de variables: ( 1 xi = 0 si el objeto ise guarda en la mochila, i = {1, . . . , k} si no Funcional: Zmax = Pk i=1 vi · x i Modelo: 1. El peso de los objetos de la mochila no debe superar el peso máximo permitido: Pk i=1 p i · xi ≤ P 9 4 Modelización cantidad de producto Pn n · YAN D ≤ Pi=1 xi ≤ YAN D + n − 1 n YOR ≤P i=1 xi ≤ n · YOR n i=1 xi ≤ 1 m · YN N ≤ x ≤ M · YN N xi ≤ M AX P ≤ xi + M · Yi i = {1, . . . , n} n i=1 Yi = n − 1, Yi es bivalente xi − M · Yi P ≤ M IN ≤ xi i = {1, . . . , n} n i=1 Yi = n − 1, Yi es bivalente c1 · x1 + c3 · x3 + · · · + cn · xP n ≤ Y ≤ c2 · x1 + c4 · x3 + · · · + cn+1 · xn n i=1 xi = 1, xi es bivalente Y − (0,5 − m) ≤ x ≤ Y + 0,5 −m · (1 − YP OS ) + m · YP OS ≤ x ≤ M · YP OS $IN I + IN GRESOS − EGRESOS − $F IN = EXCESO − DEF ECT O Q = cantidad de producto (u.) Ci = costo i ($), i = {1, . . . , n}, n intervalos Q = Q1 + Q2 + · · · + Qn COST OQ = $C1 · Q1 + $C2 · Q2 + · · · + $Cn · Qn $min1 · x1 ≤ Q1 ≤ $max1 · x1 $min2 · x2 ≤ Q2 ≤ $max2 · x2 Continuidad de $min Pn n · xn ≤ Qn ≤ $maxn · xn i=1 xi = 1 stockinicial + produccion = demanda + stocksobrante YAN D = x1 ∧ x2 ∧ . . . ∧ xn YOR = x1 ∨ x2 ∨ . . . ∨ xn XOR x>0 M AX = max(x1 , x2 , . . . , xn ) M IN = min(x1 , x2 , . . . , xn ) Y ∈ [c1 , c2 ] o Y ∈ [c3 , c4 ] ... o Y ∈ [cn , cn+1 ] Y = round(x) x ≶ 0, x 6= 0 Restricciones nancieras Costos dependientes de la . . . inventarios 5 Heurísticas Heurística: técnica que aumenta la eciencia de un proceso de búsqueda, posiblemente sacricando demandas de completitud. Heurísticas de construcción: se utilizan para encontrar una solución al problema Heurísticas de mejoramiento: parten de una solución conocida y tratan de mejorarla Función heurística: correspondencia entre las descripciones de estados del problema hacia alguna medida de deseabilidad, generalmente representada por números. HEU R ≤ K · OP T IM O donde: HEU R =valor K= óptimo encontrado por la heurística constante de calidad OP T IM O =valor óptimo real Si para una función heurística puede encontrarse un valor de problemas de un mismo tipo, esta heurística tendrá K que permanezca constante para todos los garantía de calidad. 5.1 Análisis de características de un problema para elegir el mejor método 1. ¾Puede descomponerse el problema? 10 2. ¾Pueden deshacerse o ignorarse pasos hacia una solución? 3. ¾El universo es predecible? 4. Una solución adecuada, ¾es absoluta o relativa? 5. La solución, ¾es un estado o una ruta? 6. ¾Cuál es el papel del conocimiento? 7. ¾La tarea necesita interactuar con la persona? 5.2 Ejemplos de heurísticas 5.2.1 Para el problema del viajante De construcción: 1. Heurística del vecino más próximo: consiste en seleccionar en cada paso la ciudad que se encuentre más cerca de la actual. Este tipo de algoritmos también se conocen como greedy, porque en cada paso hacen lo que sea mejor, sin tener en cuenta estados anteriores o posteriores. Es muy fácil de implementar, pero puede arrojar soluciones muy lejanas a la óptima. 2. Heurística del emparchamiento más cercano. 3. Heurística de la inserción más cercana. 4. Heurística de barrido: se rota una semirrecta alrededor del centro del plano y se determina el tour a medida que la recta vaya tocando ciudades. 5. Heurística con curvas de llenado. 6. Heurística con algoritmos genéticos. De mejoramiento: 1. Heurística de los K-intercambios: se toma una solución factible y se trata de mejorarla cambiando K ejes de la solución. La complejidad de este algoritmo es de nk . 2. Heurística de recocido simulado: se evalúan algunos vecinos del estado actual y probabilísticamente se decide entre efectuar una transición a un nuevo estado o quedarse en el estado actual. 5.2.2 Para el problema de secuenciamiento Técnicas de despacho: 1. SPT ( Shortest processing time ) First come, rst served ) 2. FCFS ( 3. MWKR ( 4. LWKR ( Most work remaining ) Least work remaining ) 5. MOPNR ( Most operation remaining ) 5.2.3 Para el problema de distribución 1. Regla del Noroeste 2. Costos mínimos progresivos 3. Método VAM 11 5.3 Metaheurísticas Metaheurística: método de solución general que proporciona una estructura general y criterios estratégicos para desarrollar un método heurístico especíco que se ajuste a un tipo particular de problema. Ejemplos: GRASP: Greedy Randomized Adaptative Search Procedure. Para resolver problemas combinatorios. En cada iteración hay dos fases: construcción y búsqueda local. En la fase de construcción se construye una solución factible, y en la búsqueda local se examinan las soluciones vecinas hasta encontrar un mínimo local. Algoritmos genéticos Ant Colony Optimization Simulated Annealing Taboo Search 12