UNIVERSIDAD TECNOLÓGICA NACIONAL – FAC. REG. RAFAELA Docentes: Lic. Elda G. de Huck – Lic. Cristian Bergesse Cátedra: Investigación Operativa 1 “ EL PROBLEMA DE TRANSPORTE” La TÉCNICA DE TRANSPORTE se puede aplicar a todo problema físico compatible con el siguiente esquema: FUENTES DESTINOS TRANSPORTE DE UNIDADES Donde “transporte de unidades” puede ser, por ejemplo: • flujo de energía • transporte de mercaderías • prestaciones de servicios • transporte de materia prima • etc. OBJETIVO: Minimizar los costos de “transporte” desde las fuentes a los destinos. DEFINICIÓN DEL MODELO: Suponemos: • m fuentes i • n destinos j • a i ( i = 1,..., m) n° de unidades disponibles en la fuente i • bj (j = 1, ...,n) n° de unidades demandadas por el destino j. • c i j costo de transporte de una unidad desde la fuente i al destino j • x i j n° de unidades transportadas desde las fuente i al destino j. REPRESENTACIÓN MATEMÁTICA: MIN Z = Σ Σ c ij x ij Sujeto a: Σ x ij = a i Σ x ij = b j x i j >= 0 i = 1,..., m ( restricciones de disponibilidad) j = 1,..., n ( restricciones de demanda) ∀i ; ∀ j Las etapas básicas para resolver un Problema de Transporte son: UNIVERSIDAD TECNOLÓGICA NACIONAL – FAC. REG. RAFAELA Docentes: Lic. Elda G. de Huck – Lic. Cristian Bergesse Cátedra: Investigación Operativa 2 Etapa 1: Balancear el problema Etapa 2: Encontrar una solución básica factible inicial Etapa 3: Optimización Etapa 1: Para que un problema esté balanceado el n° de unidades disponibles debe ser igual al n° de unidades requeridas. Cuando la condición de balance no se cumple naturalmente, se utilizarán fuentes o destinos ficticios para balancear el problema y poder aplicar la Técnica de Transporte. Si la demanda excede el suministro, se utilizará una fuente ficticia que suministra la cantidad faltante. Si la disponibilidad excede la demanda se utilizará un destino ficticio que consuma la cantidad sobrante. Los costos utilizados en las fuentes o destinos ficticios deben ser todos iguales, convenimos en que sean cero. Etapa 2: Encontrar una solución básica factible inicial (S.B.F.I.) Hay varios Métodos para encontrar una solución inicial. Aquí veremos dos de ellos: El Método del Extremo Noroeste (Regla del Noroeste) El Método del Mínimo Costo Utilizaremos la siguiente matriz de costos para desarrollar ambos Métodos: O1 O2 O3 O4 requerim. D1 8 5 9 4 70 D2 5 7 3 8 130 D3 2 4 6 2 140 D4 7 5 4 5 150 D5 3 8 2 1 150 D6 9 6 7 9 190 Disponib. 100 250 300 180 830 Regla del Noroeste El algoritmo es el siguiente: Asignar la mayor cantidad posible a la variable x 11 La columna (fila) satisfecha es tachada, indicando que las restantes variables de esa columna (fila) no son básicas UNIVERSIDAD TECNOLÓGICA NACIONAL – FAC. REG. RAFAELA Docentes: Lic. Elda G. de Huck – Lic. Cristian Bergesse Cátedra: Investigación Operativa 3 Continuar asignando la mayor cantidad posible a la próxima variable de la columna o fila no tachada El algoritmo finaliza cuando queda solo sin tachar una fila o una columna que es la que recibe la cantidad restante Una vez realizada la asignación, corroborar que la cantidad de asignaciones sea igual a m + n – 1 . En nuestro ejemplo la S.B.F.I. por Noroeste es: (tabla 1) O1 O2 O3 O4 requerim. D1 70 70 D2 30 100 130 D3 140 140 D4 10 140 150 D5 150 150 D6 10 180 190 Disponib. 100 250 300 180 830 Z = 70 x 8 + 30 x 5 + 100 x 7 + 140 x 4 + 10 x 5 + 140 + 4 + 150 x 2 + 10 x 7 + 180 x 9 = $ 4570 Método del Mínimo Costo El algoritmo es el siguiente: Asignar la mayor cantidad posible a la variable que posee el menor costo unitario, en caso de existir más de una elegir arbitrariamente. La columna o fila satisfecha se tacha. Continuar asignando la mayor cantidad posible a la variable no tachada con menor costo unitario El algoritmo finaliza cuando sólo queda sin tachar una fila o una columna que recibe lo que quedó sin asignar aún. Una vez realizada la asignación, corroborar que la cantidad de asignaciones sea igual a m + n – 1 . En nuestro ejemplo la S.B.F.I. por Mínimo Costo es: (tabla 2) O1 O2 O3 O4 requerim. D1 70 70 D2 130 130 D3 100 10 30 140 D4 150 150 D5 150 150 D6 170 20 190 Disponib. 100 250 300 180 830 UNIVERSIDAD TECNOLÓGICA NACIONAL – FAC. REG. RAFAELA Docentes: Lic. Elda G. de Huck – Lic. Cristian Bergesse Cátedra: Investigación Operativa 4 Z = $ 2950 Etapa 3: Optimización Para optimizar utilizaremos el Método iterativo MODI. Método MODI Trabajaremos con una matriz de costos indirectos. Los costos indirectos cumplen la condición: que se pueden descomponer en un valor u i correspondiente a fila y otra v j correspondiente a columnas. (C i j = u i + vj ). ¿ Cómo lo aplicamos en el Método MODI? Luego de obtener una S.B.F.I. construimos una nueva matriz en la cuál ubicamos los valores de la matriz inicial de costos en aquellos lugares donde aparecen las soluciones (asignaciones de valores) correspondientes a la 1era. Solución (utilizaré la solución encontrada por Mínimo Costo); luego fijamos un valor marginal ( ui o vj) y automáticamente quedarán fijados todos los restantes. En nuestro ejemplo: (tabla 3) D1 O1 3 O2 5 O3 6 O4 3 vj 2 D2 0 2 3 0 -1 D3 2 4 5 2 1 D4 1 3 4 1 0 D5 1 3 4 1 0 D6 4 6 7 4 3 ui 1 3 4 1 Luego de construir esta tabla hacemos la diferencia entre ella y la tabla de costos iniciales,; esta diferencia puede ser mayor, menor o igual a cero. Si la diferencia es negativa colocamos el signo _ en la tabla de costos indirectos, si es positiva colocamos el signo + y el resultado de la operación y si es cero colocamos 0. Las diferencias con signo + son las que nos interesan, ya que nos indican que podemos mejorar la solución anterior introduciendo en ese lugar una nueva solución, en nuestro ejemplo la introducimos en el casillero (3, 5), indicamos esto colocando en la tabla 2 un ; luego construimos un circuito cerrado que tome a lo largo de filas y columnas otros elementos (asignaciones distintas de cero). Los circuitos pueden ser únicos o no, se elige cualquier sentido para realizarlo, pues la solución no varía. Si hay más de una diferencia positiva elegimos el casillero que da la mayor diferencia, si hay 2 o más diferencias positivas iguales y menores elegimos el que corresponde al menor costo en la tabla de costos iniciales. Luego colocamos signos + y – en forma alternada empezando por + en los vértices del polígono determinado por el circuito (este vértice siempre debe tener un valor). UNIVERSIDAD TECNOLÓGICA NACIONAL – FAC. REG. RAFAELA Docentes: Lic. Elda G. de Huck – Lic. Cristian Bergesse Cátedra: Investigación Operativa 5 ¿Cómo elegimos el valor a introducir en el casillero (3,5)?. Al valor a introducir lo llamamos θ y deberá cumplir la condición de ser el mínimo de los valores que poseen el signo + en el circuito, en nuestro ejemplo: θ = mín ( 20, 10, 150) θ = 10. Construimos una nueva tabla (Tabla 4), colocando en el casillero (3,5) el valor 10, los valores que no eran vértices o no pertenecían al circuito se mantienen y los vértices del polígono que tenían signo + cambian colocando en su lugar el valor anterior menos θ y los que tenían signo negativo cambian por la suma del anterior y θ. (tabla 4) O1 O2 O3 O4 requerim. D1 70 70 D2 130 130 D3 100 40 140 D4 150 150 D5 10 140 150 D6 180 10 190 Disponib. 100 250 300 180 830 Z = $ 2930 Volvemos a repetir el proceso (hacer tabla de costos indirectos). Continuar como ejercicio y comprobar que se alcanza el óptimo en Z = $2920. Podemos observar que al hacer la diferencia entre la tabla de costos indirectos y la de costos iniciales aparecen ceros en aquellos lugares que corresponden a las asignaciones (en nuestro caso hay 9 asignaciones), con lo que podemos afirmar que si el número de soluciones es n deben aparecer como mínimo n ceros; si aparecen más significa que el problema tiene soluciones alternativas. UNIVERSIDAD TECNOLÓGICA NACIONAL – FAC. REG. RAFAELA Docentes: Lic. Elda G. de Huck – Lic. Cristian Bergesse Cátedra: Investigación Operativa 6 “ MODELOS O PROBLEMAS DE ASIGNACIÓN PERSONAL” EL PROBLEMA DE ASIGNACIÓN se aplica a todo problema que requiere “asignar m elementos (tareas, máquinas, equipos, operarios, etc.) a otros n elementos (máquinas, tareas, equipos, operarios, etc.), disponiéndose de más de una alternativa de asignación posible. Para simplificar el tema y sin pérdida de generalidad, consideremos el caso particular de asignar “m tareas” a “n máquinas”. OBJETIVO Asignar las tareas a las máquinas (una tarea por máquina) de tal forma de optimizar un índice de performance (objetivo) establecido. En nuestro caso particular será minimizar el costo total de asignación. Este problema es un caso particular del PROBLEMA DE TRANSPORTE en el cuál las FUENTES son cada una de las tareas y los DESTINOS cada una de las máquinas, la disponibilidad de cada fuente es 1 y la demanda de cada destino es 1. REPRESENTACIÓN TABULAR T A R E A S 1 .... i .... m Bj 1 C11 ... Ci1 ... Cm1 1 2 C12 ... Ci2 .... Cm2 1 Ai: disponibilidad MÁQUINAS ..... ... ... ... j C1j ... CiJ ... Cmj 1 ...... ... ... .... Bj: requerimientos REPRESENTACIÓN MATEMÁTICA: MIN Z = Σ Σ c ij x ij Sujeto a: Σ x ij = 1 i = 1,..., m ( restricciones de disponibilidad) Σ x ij = 1 x ij = 0 ó j = 1,..., n ( restricciones de demanda) x ij = 1 ∀i ; ∀ j n C1n ... Cin ... Cmn 1 Ai 1 ... 1 ... 1 UNIVERSIDAD TECNOLÓGICA NACIONAL – FAC. REG. RAFAELA Docentes: Lic. Elda G. de Huck – Lic. Cristian Bergesse Cátedra: Investigación Operativa 7 donde: x i j = 0 si la i-ésima tarea no es asignada a la j-ésima máquina x i j = 1 si la i-ésima tarea es asignada a la j-ésima máquina Por lo tanto un problema de Asignación Personal puede resolverse por el Método Simplex. Condición de balance: Para que un problema esté balanceado el n° de tareas a asignar debe ser igual al número de máquinas. Cuando no se cumple la condición de balance será necesario adicionar tantas tareas o máquinas como sea necesario para balancearlo Los costos utilizados en las tareas o máquinas ficticias deben ser todos iguales. RESOLUCIÓN DE UN PROBLEMA DE MINIMIZACIÓN “EL MÉTODO HÚNGARO” Para explicar los pasos del Método Húngaro utilizaremos el siguiente ejemplo: Se desea asignar en forma óptima 7 trabajos a 7 equipos. La tabla siguiente muestra los costos que ocasionarían cada una de las posibles asignaciones. Tabla 1 T1 T2 T3 T4 T5 T6 T7 Mínimo E1 8 9 6 11 1 16 14 1 E2 9 4 8 7 9 14 4 4 E3 3 3 4 7 10 13 12 3 E4 6 5 11 12 7 14 5 5 E5 1 9 8 3 9 12 1 1 E6 6 7 5 9 7 11 1 1 E7 4 10 9 4 7 6 9 4 Método Húngaro El algoritmo es el siguiente: 1) Se eligen los valores mínimos de cada una de las columnas de la matriz de costos (tabla 1) y se anotan en el margen inferior (lo hacemos en la tabla 1). 2) Formamos una nueva matriz restando a los elementos de la tabla 1 (por columna) los elementos que figuran en el margen inferior de la misma. UNIVERSIDAD TECNOLÓGICA NACIONAL – FAC. REG. RAFAELA Docentes: Lic. Elda G. de Huck – Lic. Cristian Bergesse Cátedra: Investigación Operativa 8 Tabla 2 T1 T2 T3 T4 T5 T6 T7 E1 7 8 5 10 0 15 13 E2 5 0 4 3 5 10 0 E3 0 0 1 4 7 10 9 E4 1 0 6 7 2 9 0 E5 0 8 7 2 8 11 0 E6 5 6 4 8 6 10 0 E7 0 6 5 0 3 2 5 Mínimo 0 0 1 0 0 2 0 Podemos observar que en la tabla 2 aparecen varios ceros, éstos son de gran importancia en la resolución del problema. Definición Llamaremos ceros esenciales o independientes a aquellos ceros que son únicos en su fila o en su columna. En la tabla 2 es esencial el cero de la posición x 47, por ejemplo. El Método Húngaro busca que efectuando transformaciones en la matriz inicial de costos aparezcan sobre la nueva matriz ceros esenciales. 3) Se trazan el menor número de líneas posibles sobre filas, sobre columnas o en forma combinada sobre filas y columnas que cumplan la condición de cubrir todos los ceros de la matriz. Llamaremos con n 1, al número de líneas que cubren los ceros y con n al número de filas o columnas de la matriz de los datos. Para hacer la prueba de optimidad comparamos n 1 con n y si: • n 1 < n el problema aún no está resuelto y debo continuar con el método. • n 1 = n el problema finalizó y se llegó a la solución óptima. En el ejemplo n 1 < n entonces: 4) Colocamos ahora en la tabla 2 los mínimos por fila en el margen derecho y procedemos a hacer una nueva tabla (tabla 3), restando a las filas de la tabla 2 el mínimo correspondiente. h Tabla 3 E1 E2 E3 E4 E5 E6 E7 T1 7 5 0 1 0 5 0 T2 8 0 0 0 8 6 6 T3 4 3 0 5 6 3 4 T4 10 3 4 7 2 8 0 T5 0 5 7 2 8 6 3 T6 13 8 8 7 9 8 0 T7 13 0 9 0 0 0 5 0 0 -1 0 -1 0 -1 1 0 1 1 0 1 0 UNIVERSIDAD TECNOLÓGICA NACIONAL – FAC. REG. RAFAELA Docentes: Lic. Elda G. de Huck – Lic. Cristian Bergesse Cátedra: Investigación Operativa 9 Tachamos los ceros y nuevamente n 1 < n por lo tanto, el problema no llegó al óptimo, continuamos con un proceso cíclico que consiste en lo siguiente: 5) Se elige de las filas o columnas “descubiertas” el valor mínimo que llamaremos “h”, este mínimo se ubica en el margen de la derecha en aquellos lugares que corresponde a una fila descubierta y el valor cero en las filas cubiertas. En el margen inferior colocamos el valor - h (h cambiado de signo) en aquellos lugares que corresponde a columnas cubiertas (tabla 3). En nuestro ejemplo h = 1 Se forma entonces una nueva matriz o tabla restando a cada uno de los elementos de la última matriz sus dos valores marginales correspondientes. En el ejemplo obtenemos: Tabla 4 E1 6 8 3 9 0 12 13 0 T2 T3 T4 T5 T6 T7 E2 4 0 2 2 5 7 0 0 E3 0 1 0 4 8 8 10 0 E4 0 0 4 6 2 6 0 0 E5 0 9 6 2 9 9 1 0 E6 4 6 2 7 6 7 0 0 E7 0 7 4 0 4 0 6 -2 h Como n 1 < n el problema aún no está resuelto y debo continuar con el método. Comenzamos entonces el proceso cíclico, repito el paso 5) eligiendo h = 2. La nueva matriz será: Tabla 4 T1 T2 T3 T4 T5 T6 T7 E1 6 8 3 7 [0] 10 13 E2 4 0 2 0 5 5 φ E3 φ 1 [0] 2 8 6 10 E4 0 0 4 4 2 4 φ E5 0 9 6 0 9 7 1 E6 4 6 2 5 6 5 [0] E7 2 9 6 φ 6 [0] 8 Como n 1 = n el problema está resuelto. ¿Cómo realizamos las asignaciones? Se hacen primero las asignaciones fijas en aquellos lugares donde están los ceros esenciales. 0 0 0 2 0 2 0 UNIVERSIDAD TECNOLÓGICA NACIONAL – FAC. REG. RAFAELA Docentes: Lic. Elda G. de Huck – Lic. Cristian Bergesse Cátedra: Investigación Operativa 10 En nuestro ejemplo tenemos 4 ceros esenciales por lo que tendremos 4 asignaciones fijas. ¿ Y las restantes cómo las elijo, ya que hay que hacer 7 asignaciones? Éstas se hacen en aquellos lugares donde aparecen los otros ceros en la matriz final (tabla 5), podemos observar que hay 6 ceros no esenciales de los cuáles hay que elegir 3 para que se cumpla la condición de que ningún equipo se quede sin utilizar y ningún trabajo sin realizar y cuidando de que no se otorgue dos o más trabajos a un mismo equipo (asignación 1 a 1). Teniendo en cuenta lo anterior la elección de los ceros se hace en forma arbitraria ya que con cualquier elección posible el costo total será el mismo. Podemos hacer lo siguiente: Asignaciones fijas: T5 E1 T3 E3 T7 E6 T6 E7 Restantes Asignaciones T2 E2 T1 E4 T4 E5 El costo total mínimo será de $ 25. Realizar como ejercicio otras asignaciones, modificando la elección de los ceros no esenciales.