Dualidad y análisis de sensibilidad en programación lineal
1
3 Dualidad y análisis de sensibilidad en programación programación lineal 3.1 Introducción En el tema anterior se describieron las características de los modelos de programación lineal, así como los diferentes caminos a partir de los que podemos encontrar la solución: resolución gráfica, algoritmo símplex o uso de programas informáticos. En este tema, se describen dos técnicas también relacionadas con la programación lineal: la dualidad y el análisis de sensibilidad. La segunda sección del tema desarrolla la teoría asociada a la dualidad: cómo se obtiene el dual de un programa lineal, la interpretación del concepto de precio sombra y una serie de teoremas y resultados útiles para la interpretación de un modelo lineal. La tercera sección muestra las posibilidades del análisis de sensibilidad de la programación lineal. Se trata de analizar cómo varía la solución del modelo (tanto el valor de la función objetivo como el valor de las variables de decisión) en función de dos conjuntos de parámetros del modelo: los coeficientes de coste de la función objetivo y los términos independientes de las restricciones. El tema concluye con un problema resuelto y con un glosario de los términos más relevantes introducidos en el mismo.
3.2 Dualidad en en programación programación lineal Dado un modelo lineal determinado, podemos definir otro modelo lineal que nos permitirá obtener propiedades interesantes del primero y que será su dual. La solución del modelo dual permite obtener interesantes resultados, relativos al análisis de sensibilidad de los términos independientes. Más concretamente, para los rangos de valores de los términos independientes para los que se mantiene la base óptima (que podemos conocer mediante el análisis de sensibilidad), la solución del dual nos permite conocer el precio sombra de la restricción, que será la variación de la función objetivo por unidad incrementada del término independiente de la restricción. En la primera parte de esta sección, encontramos cómo hallar el dual de un modelo lineal. En las siguientes, se define con más precisión el concepto de precio sombra, cómo obtener la solución del dual a partir de la del primal, y su aplicación al análisis de sensibilidad. Finalmente, se enuncian algunas propiedades de interés, como el teorema de la holgura complementaria y las relaciones entre las soluciones del primal con las soluciones del dual.
3.2.1 Reglas de obtención del dual Si el modelo está escrito en la forma canónica, el dual resulta singularmente fácil de obtener. Por ejemplo, partiendo de la forma canónica del modelo de máximo:
2
Primal
Dual
[MIN] z = c’· x
[MAX] w = b’· u
A· x ≥ b x j ≥ 0
A’· u ≤ c ui ≥ 0
Si se trata de obtener el dual del dual, se obtendr á el primal: se trata de una correspondencia biuní voca. voca. De forma más general, las reglas para obtener el dual de cualquier modelo lineal se indican en la tabla adjunta: Primal Dual Maximizar la F.O. Una variable no negativa Una variable no positiva Una variable no restringida en signo Una restricción menor o igual Una restricción mayor o igual Una igualdad
Dual Primal Minimizar la F. O. Una restricción mayor o igual Una restricción menor o igual Una igualdad Una variable no negativa Una variable no positiva Una variable no restringida en signo
En los ejemplos 4.2.1, 4.2.2 y 4.2.3 (adem ás del ejemplo 5), se muestran diversos ejemplos de obtención del dual. 3.2.2 Interpretación de las variables duales: precios sombra Cada variable del dual está asociada a una restricció restricción del programa primal, y su valor óptimo representa el incremento de la función objetivo del primal por cada unidad que aumente el término independiente de dicha restricción, siempre que este último aumento no suponga un cambio de base. Es, por tanto, el precio adicional máximo que estamos dispuestos a pagar por el incremento del recurso. Los valores de estas variables se denominan precios sombra. De manera analí tica, tica, podemos escribir que la variable dual de la restricci ón i representar á:
u i∗ =
∆ z ∆bi
Los precios sombra obtenidos a partir del óptimo del dual serán v álidos siempre que no var í e la base óptima. En consecuencia, los resultados obtenidos del dual est án í ntimamente ntimamente ligados al análisis de sensibilidad de los t érminos independientes, tal como se muestra en el ejemplo 2.4.1.
Ejemplo 2.2.1 Problema de la granja
El problema de la granja puede modelizarse mediante un modelo lineal de m áximo en forma can ónica, por lo que su dual también estará en forma canónica. Puede observarse que: a)
Los coeficientes de la función objetivo son los t érminos independientes de las restricciones del dual y viceversa.
b)
Los coeficientes tecnológicos de las restricciones en el primal son las columnas de los coeficientes tecnológicos asociados a cada variable del primal. Nótese, por ejemplo, c ómo la primera restricción tiene los coeficientes asociados a la variable CEB.
2
Primal
Dual
[MIN] z = c’· x
[MAX] w = b’· u
A· x ≥ b x j ≥ 0
A’· u ≤ c ui ≥ 0
Si se trata de obtener el dual del dual, se obtendr á el primal: se trata de una correspondencia biuní voca. voca. De forma más general, las reglas para obtener el dual de cualquier modelo lineal se indican en la tabla adjunta: Primal Dual Maximizar la F.O. Una variable no negativa Una variable no positiva Una variable no restringida en signo Una restricción menor o igual Una restricción mayor o igual Una igualdad
Dual Primal Minimizar la F. O. Una restricción mayor o igual Una restricción menor o igual Una igualdad Una variable no negativa Una variable no positiva Una variable no restringida en signo
En los ejemplos 4.2.1, 4.2.2 y 4.2.3 (adem ás del ejemplo 5), se muestran diversos ejemplos de obtención del dual. 3.2.2 Interpretación de las variables duales: precios sombra Cada variable del dual está asociada a una restricció restricción del programa primal, y su valor óptimo representa el incremento de la función objetivo del primal por cada unidad que aumente el término independiente de dicha restricción, siempre que este último aumento no suponga un cambio de base. Es, por tanto, el precio adicional máximo que estamos dispuestos a pagar por el incremento del recurso. Los valores de estas variables se denominan precios sombra. De manera analí tica, tica, podemos escribir que la variable dual de la restricci ón i representar á:
u i∗ =
∆ z ∆bi
Los precios sombra obtenidos a partir del óptimo del dual serán v álidos siempre que no var í e la base óptima. En consecuencia, los resultados obtenidos del dual est án í ntimamente ntimamente ligados al análisis de sensibilidad de los t érminos independientes, tal como se muestra en el ejemplo 2.4.1.
Ejemplo 2.2.1 Problema de la granja
El problema de la granja puede modelizarse mediante un modelo lineal de m áximo en forma can ónica, por lo que su dual también estará en forma canónica. Puede observarse que: a)
Los coeficientes de la función objetivo son los t érminos independientes de las restricciones del dual y viceversa.
b)
Los coeficientes tecnológicos de las restricciones en el primal son las columnas de los coeficientes tecnológicos asociados a cada variable del primal. Nótese, por ejemplo, c ómo la primera restricción tiene los coeficientes asociados a la variable CEB.
3
Dualidad y aná análisis de sensibilidad en programació programaci ón lineal
Primal
Dual
[MAX]z = 50CEB + 80LEC
[MIN]w = 80CUO + 110ARE + 720TRA
sujeto a:
sujeto a:
CEB ≤ 80 CEB + LEC ≤ 110 4CEB + 8LEC ≤ 720 CEB, LEC ≥ 0
ARE + 8TRA ≥ 80 CUO + ARE + 4TRA ≥ 50 CUO, ARE, TRA ≥ 0
Recuérdese que CEB y LEC son la superficie a cultivar de cebada y lechugas, respectivamente, por el agricultor para maximizar su beneficio. El dual del problema tiene tres variables, tantas como restricciones. Cada variable dual está asociada a una restricción: 1.
La primera restricción del primal tiene asociada la variable CUO. Dicha restricción indicaba la cota máxima de cebada que podí a cultivarse. El valor de dicha variable indicar á el incremento del beneficio del agricultor por unidad incrementada de la cantidad m áxima de cebada.
2.
La segunda restricci ón nos dice que la máxima área cultivable es de 110. Su variable dual es ARE. Representa el beneficio adicional obtenido al aumentar el área cultivable en una unidad. También representa el precio máximo a pagar por una unidad m ás de área cultivable.
3.
Finalmente, con la tercera restricción disponemos s ólo de 720 horas de trabajo. Su variable dual es TRA. Representa el incremento del beneficio al contratar horas de trabajo adicionales, as í como el precio máximo a pagar por dichas horas.
Ejemplo 2.2.2 Problema de la dieta
En ese caso nos encontramos con un primal que es un modelo de m í nimo nimo escrito en forma can ónica. Se trata, en este caso, de encontrar la dieta de coste m í nimo nimo a partir de un conjunto de alimentos (P, Q, M, G, E) que cubra con unas necesidades m í nimas nimas de nutrientes (proteí nas nas en la primera restricci ón y calorí as as en la segunda). El dual tendrá dos variables (tantas como restricciones el primal) y cinco restricciones (tantas como variables el primal), y estará también en forma can ónica: Primal
Dual
Función Objetivo:
Función Objetivo:
[MIN]z = 35P + 130Q + 100M + 75G + 30E
[MAX]w = 70u1 + 3000u2
Restricciones:
Restricciones:
8,3P + 24,9Q + 0,4M + 6,0G + 5,1E ≥ 70 246P + 423Q + 793M + 93G + 26E ≥ 3000 P, Q, M, G, E ≥ 0
8,3u1 + 246u2 ≤ 35 24,9u1 + 423u2 ≤ 130 0,4u1 + 793u2 ≤ 100 6u1 + 93u2 ≤ 7 5,1u1 + 26u2 ≤ 30 u1, u2 ≥ 0
4
Las variables del dual u1 y u 2 representan respectivamente los incrementos en el coste de la dieta que supone la exigencia en el contenido de la misma de un gramo m ás de proteí nas nas o una kilocalor í a más.
Ejemplo 2.2.3 Transporte barato
En este caso, nos encontramos ante un modelo lineal que busca minimizar el coste de transporte desde tres orí genes genes (i = 1, 2, 3) a cuatro destinos ( j = 1, 2, 3). Se trata de un modelo de 4 × 3 = 12 variables y 4 + 3 = 7 restricciones. El dual tendrá 7 variables, tantas como como restricciones del primal: tres asociadas a las restricciones de capacidad en el origen (u1, u 2, u 3), y cuatro asociadas a los destinos (v 1, v2, v 3, v 4). Por ser las restricciones de igualdad, las variables duales no est án restringidas en signo. En cuanto a las restricciones del dual, ser án 12, tantas como variables del primal. Cada variable xij tendrá asociada una restricci ón de la forma: ui + v j ≤ cij El signo de la desigualdad viene determinado por el hecho de que las xij son no negativas. En definitiva, el primal y el dual se muestran a continuaci ón: Primal
Dual
Función Objetivo:
Función Objetivo:
[MIN] z = 8x11 + 13x12 + 9x13 + 8x14 + 9x21 + 11x22 + 12x23 + 10x24 + 7x31 + 8x32 + 10x33 + 9x34
[MAX] w = 60u1 + 70u2 + 80u3 + 75v1 + 45v2 + 40v3 + 50v4
Restricciones:
Restricciones:
x11 + x12 + x13 + x14 = 60 x21 + x22 + x23 + x24 = 70 x31 + x32 + x33 + x34 = 80 u1+v4 ≤8 u2+v4 ≤10 u3+v4 ≤9 x11 + x21 + x31 = 75 x12 + x22 + x32 = 45 x13 + x23 + x33 = 40 x14 + x24 + x34 = 50
u1+v1 ≤8 u2+v1 ≤9 u3+v1 ≤7 u1+v2 ≤13 u2+v2 ≤11 u3+v2 ≤8 u1+v3 ≤9 u2+v3 ≤12 u3+v3 ≤10
ui, v j no restringidas en signo
x11, x12, x13, x14, x21, x22, x23, x24, x31, x32, x33, x34 ≥ 0 Las variables del dual ui representan los incrementos de coste por cada unidad adicional ofertada en cada centro emisor i, mientras que las variables del dual v j se corresponden con los incrementos de coste por cada unidad adicional solicitada por un centro receptor j. 3.2.3. Obtención de la soluci ón del dual El dual de un modelo lineal es otro modelo lineal, que puede solucionarse (despu és de las oportunas transformaciones, si alguna de las variables resultantes es no negativa o no restringida en signo) del
5
Dualidad y análisis de sensibilidad en programación lineal
mismo modo que el primal. Sin embargo, en general puede obtenerse la solución del dual resolviendo el primal. En los dos ejemplos siguientes, veremos dos modos de obtener la soluci ón óptima del dual: a)
A partir de la tabla sí mplex óptima del primal, en el ejemplo 4.3.1. La soluci ón obtenida nos permitirá obtener un importante resultado: el teorema de la holgura complementaria.
b)
Mediante un programa informático. Dado que en general los programas de resoluci ón de modelos lineales realizan el análisis de sensibilidad, podemos realizar un an álisis más exacto de la evolución de los precios sombra. Todo ello se muestra, con un modelo lineal sencillo, en el ejemplo 4.4.1.
Ejemplo 2.3.1 Tablas sí mplex del problema de la granja
Las tablas sí mplex óptimas obtenidas para el primal y para el dual son: Tabla sí mplex óptima del programa primal:
Base
Coefic.
H1 CEB LEC
0 50 80
Valor (RHS) 40 40 70 7600
50 CEB 0 1 0 0
80 LEC 0 0 1 0
0 H1 1 0 0 0
0 H2 -2 2 -1 -20
0 H3 0.25 -0.25 0.25 -7.5
80 CUO -0.25 1 40
110 ARE 0 1 0
720 TRA 1 0 0
0 D1 -0.25 1 70
0 D2 0.25 -2 40
Tabla sí mplex óptima del programa dual:
Base
Coefic.
TRA ARE
720 110
Valor (RHS) 7.5 20 7600
Del examen de las dos tablas óptimas, podemos deducir algunas propiedades interesantes: 1.
El valor de la función objetivo del dual en el óptimo es igual que el valor de la función objetivo del primal en el óptimo. Esta propiedad se cumple de manera general: c’· x* = b’ · u*
2.
La primera restricción del primal se cumple con holgura (H1= 40), y su variable dual asociada es igual a cero en el óptimo del dual (CUO = 0).
3.
Las otras dos restricciones se cumplen sin holgura (H2=H3=0) y sus variables asociadas TRA y ARE son positivas. Se trata del precio sombra asociado a las restricciones y tiene la interpretación siguiente: •
ARE = 20 indica que si aumentamos la cantidad de tierra disponible en ∆b2, la función ob jetivo aumenta en 20 ∆b2. Por lo tanto, este es el m áximo precio a pagar por tierra adicional.
6
•
TRA = 7,5 indica que si aumentamos la cantidad de trabajo en ∆b3, la función objetivo aumenta en 7,5· ∆b3. Así que esta es la cantidad máxima a pagar por trabajo adicional.
No necesitamos resolver el dual para obtener el óptimo u* si disponemos de la tabla s í mplex óptima del primal y el modelo no tiene restricciones de igualdad. La soluci ón del dual se obtiene a partir de los coeficientes de coste reducidos de las variables de holgura y exceso de las restricciones: a)
La variable dual asociada a una restricción de ≤ es igual al coeficiente de coste reducido de su variable de holgura asociada en la tabla s í mplex óptima del primal, cambiada de signo.
b)
La variable dual asociada a una restricción de ≥ es igual al coeficiente de coste reducido de su variable de exceso asociada en la tabla s í mplex óptima del primal.
En las tablas puede observarse cómo podemos encontrar la soluci ón del dual en el primal y la del primal en el dual.
3.2.4 Teorema de la holgura complementaria La propiedad observada en el ejemplo anterior es generalizable, dado el car ácter de precio sombra de las variables duales. En general, podremos decir que: 1.
Si una restricción se cumple con holgura o exceso, su variable dual asociada es 0: al no ser activa la restricción, los incrementos del término independiente no afectar án al valor del óptimo.
2.
Si una restricción se cumple con el signo de igualdad, su variable dual asociada puede ser diferente de 0: al ser la restricción activa, cabrá esperar que el óptimo, y en consecuencia el valor de la función objetivo, varí en al modificar el valor de su término independiente.
Este resultado es el teorema de la holgura complementaria, que puede expresarse como sigue: (u*)’ · ( A· x* - b ) = 0 El primer término representa la solución óptima del dual, y el segundo la holgura de las restricciones en el óptimo. Se pretende expresar, de esta manera, que para cada una de las restricciones al menos uno de los dos t érminos ha de ser cero. El siguiente ejemplo muestra tambi én cómo se cumple la holgura complementaria.
Ejemplo 2.4.1 Solución problema de reparto mediante programa informático
Un taller mecánico puede fabricar dos tipos de productos, P1 y P2. El beneficio unitario obtenido es de 20 y 60, respectivamente. Para fabricar estos dos productos dispone de dos recursos, horas hombre (HH) y horas máquina (HM). En lo que respecta a las horas hombre, dispone de 2.700, y fabricar una unidad de P1 consume 30 HH. En cuanto a las HM, sabemos que dispone de 850, y que fabricar una unidad de P1 consume 5 HM, y una de P2 10 HM. Adem ás, las condiciones contractuales le obligan a fabricar un mí nimo de 95 unidades, sean de P1 o de P2. Para maximizar el beneficio, puede plantearse el siguiente modelo, en el que P1 y P2 es la cantidad a producir en el óptimo de cada producto. Deben plantearse tres restricciones: a)
Una restricción HH que limita a 2.700 el número de HM.
b)
Una restricción HM que limita a 850 el número de HH.
7
Dualidad y análisis de sensibilidad en programación lineal
Una última restricción PM que impone un n úmero mí nimo de 95 unidades, entre P1 y P2.
c)
El modelo, introducido en el programa LINDO, es: MAX ST HH) HM) PM) END
20P1 + 60P2 30P1 + 20P2 < 2700 5P1 + 10P2 < 850 P1 + P2 > 95
Una vez ejecutado el programa, se obtiene la siguiente soluci ón: ÓPTIMO OBTENIDO EN EL PASO
2
VALOR FUNCIÓN OBJECTIVO 1)
4900.000
VARIABLE P1 P2
FILA
VALOR 20.000000 75.000000
HOLGURA O MARGEN
COSTE REDUCIDO 0.000000 0.000000
VARIABLES DUALES
HH)
600.000000
0.000000
HM)
0.000000
8.000000
PM)
0.000000
-20.000000
NO. ITERACIONES=
2
El programa nos da el valor de la variable dual para cada restricci ón (en rojo). El dual de este modelo es: [MIN] w =2700HH + 850HM + 95PM 30HH + 5HM + PM ≥ 20 20HH + 10HM + PM ≥ 60 HH, HM ≥ 0 PM ≤ 0 La interpretación que cabe hacer del resultado es: HH = 0: Esta variable muestra que, si aumentamos el número de HH, no se obtiene beneficio adicional. Este resultado concuerda con el hecho de que tenemos una holgura de 600 en HH (en azul): el efecto de añadir HH será el de aumentar dicha holgura, sin que el óptimo ni el valor de la funci ón objetivo se vean afectados. HM = 8: Aumentar las horas máquina supone (mientras se mantenga la base óptima) aumentar el beneficio, a razón de 8 unidades por cada HM adicional. Dado que estamos variando el t érmino independiente, el óptimo se modificará (y el valor de la función objetivo) si variamos el número máximo de HH.
8
PM = – 20: Dado que el primal es un programa de m áximo, y la restricción de número mí nimo es de mayor o igual, la variable PM debe ser no positiva. Esta variable muestra que la empresa puede obtener un gran rendimiento de reducir la cantidad máxima. En los lí mites de la base óptima actual, reducir la cantidad máxima en una unidad supone aumentar en 20 la funci ón objetivo. Ello se debe a que, liberado de producir una cantidad mí nima, la empresa puede dejar de producir P1 para producir más cantidad del más rentable P2. Estas interpretaciones son válidas para los intervalos de valores de los t érminos independientes para los que se mantiene la base óptima, que son suministrados por el propio programa: RANGOS PARA LOS QUE NO CAMBIA LA BASE: RANGOS TÉRMINOS INDEPENDIENTES FILA
VALOR
INCREMENT0
DECREMENT0
ACTUAL
PERMITIDO
PERMITIDO
HH
2700.000000
INFINITO
600.000000
HM
850.000000
100.000000
300.000000
PM
95.000000
15.000000
10.000000
Para este contexto observamos que los resultados son v álidos: 1.
Para un incremento ilimitado de las HH
2.
Para un incremento de hasta 100 HM
3.
Para un decremento de hasta 10 unidades máximas a fabricar
Una vez rebasados estos valores, la base óptima cambia y debe rehacerse el an álisis con los nuevos valores.
3.2.5 Caracterí sticas de las soluciones del dual y del primal Asimismo, existen algunas propiedades de inter és a cerca de las soluciones del primal y del dual: a)
Si el primal tiene solución óptima acotada x*, el dual también tendrá solución óptima acotada u*. Ambas soluciones dar án el mismo valor de la funci ón objetivo: c’· x* = b’ · u*
b)
Si uno de los dos problemas tiene óptimo no acotado, el otro no tendrá solución ( la regi ón factible será un conjunto vací o).
c)
Si uno de los dos problemas no tiene soluci ón, el otro puede tener óptimo no acotado, o no tener tampoco solución.
Dichas relaciones se muestran en el siguiente esquema:
9
Dualidad y análisis de sensibilidad en programación lineal
PRIMAL
DUAL
Óptimo
Óptimo
propio
propio
Óptimo
Óptimo
impropio
impropio
Sin soluciones
Sin soluciones
3.3 Análisis de sensibilidad El análisis de sensibilidad es una herramienta especialmente útil cuando no tenemos una certeza absoluta sobre los valores que se han dado a los t érminos independientes de las restricciones (en muchas ocasiones asociados a la limitación de los recursos) o los coeficientes de la funci ón objetivo (coeficientes de coste). Para estos casos el an álisis de sensibilidad consiste en estudiar c ómo evoluciona el óptimo y el valor de la función objetivo en el óptimo ante variaciones de dichos t érminos independientes y coeficientes. El análisis de sensibilidad propiamente dicho estudia los intervalos para los cuales la modificaci ón de un valor (coeficiente de la funci ón objetivo o término independiente) en el programa lineal, de forma individualizada, no cambia las variables que componen la base de nuestra solución. Hallando, para el rango de valores definido en el intervalo, la evoluci ón de la función objetivo (expresado a trav és de los precios sombra). Por otro lado, el análisis paramétrico, que no es más que un an álisis de sensibilidad en profundidad de los términos independientes de las restricciones, estudia las variaciones de la soluci ón óptima más allá de la solución obtenida con los valores iniciales de los par ámetros. Se consideran todos los valores posibles del término independiente, desde -∞ a + ∞, analizando las variables que entran y salen de la base (cambios de base), así como la evolución de los precios sombra. Ciertamente, el análisis de sensibilidad puede ir m ás allá que un estudio sobre la evoluci ón de los coeficientes de la función objetivo o de los términos independientes, por ejemplo, el estudio de los coeficientes tecnológicos de la matriz A. No obstante la aplicaci ón que este hecho representa es menos habitual, pues suele ser un dato bastante fiable. Posiblemente por este motivo no sea habitual encontrarlo implementado en los módulos de programas informáticos. Otros aspectos tenidos en cuenta en la bibliograf í a más clásica sobre análisis de sensibilidad son la introducción de nuevas variables o de nuevas restricciones, situaci ón que se vuelve trivial cuando el programa lineal se resuelve informáticamente, pues sólo hay que insertarlas y volver a ejecutar la aplicación. 3.3.1 Análisis de sensibilidad: resoluci ón gráfica Para ilustrar de forma clara y sencilla en qué consiste el análisis de sensibilidad, utilizaremos nuevamente la metodologí a gráfica de resolución con el ejemplo de dos variables de la granja.
10
Ejemplo 3.1.1 Problema de la granja
Recordemos que el modelo inicial del problema de la granja era: [MAX]z = 50CEB + 80LEC sujeto a: 4CEB + 8LEC ≤ 720 CEB + LEC ≤ 110 CEB ≤ 80
(1) (2) (3)
CEB, LEC ≥ 0 Las 3 restricciones de este modelo nos definen una regi ón factible (o dominio) en el plano CEB/LEC donde se encuentran las infinitas soluciones factibles. Gr áficamente lo representaremos por la siguiente figura:
Por otro lado, sabemos identificar las soluciones factibles en los v értices (A, B, C, D y O), una de las cuales será la solución óptima. Finalmente, existirí a un segundo plano, perpendicular al del papel, y que representar í a el plano de la función objetivo. El punto óptimo será aquel de la región factible que esté a mayor distancia (puesto que la función es de maximización) entre el plano de la regi ón factible y el plano de la funci ón objetivo. Dado que tenemos resuelto el programa lineal, veamos que la tabla s í mplex nos da la soluci ón en el punto: Base
Coefic.
H3 CEB LEC
0 50 80
CEB* = 40 LEC* = 70 H3* = 40
Valor (RHS) 40 40 70 7600
50 CEB 0 1 0 0
80 LEC 0 0 1 0
0 H3 1 0 0 0
0 H2 -2 2 -1 -20
0 H1 0.25 -0.25 0.25 -7.5
Dualidad y análisis de sensibilidad en programación lineal
11
Para cuyo valor de la funci ón objetivo es máximo en la región factible y toma un valor de beneficio de 7600. Gráficamente, este hecho significa que el punto óptimo se encuentra en la intersección de las restricciones (1) y (2), concretamente es la soluci ón factible en el vértice que hemos denominado B. Presentando una holgura respecto a la restricci ón (3) de H3 = 40. El objeto de este ejemplo es ir m ás allá de lo estudiado hasta ahora, adentr ándonos en el mundo de las hipótesis y la sensibilidad que presenta el óptimo frente a ellas. Empezaremos con hip ótesis referentes a los términos independientes de las restricciones:
Cambios en el t é rmino independiente de las restricciones
Lo primero que deberí amos notar es que dos de las restricciones son activas –las rectas (1) y (2) – mientras que la (3) es NO activa, es decir, tiene holgura. El hecho de que una restricci ón sea activa tiene ciertas implicaciones, puesto que indica que el recurso asociado a dicha restricci ón será escaso y nos limita un incremento de la función objetivo. Como se ha visto anteriormente, las restricciones activas tendrán un precio sombra diferente de cero. Esto significa que estar í amos dispuestos a negociar un incremento unitario del recurso a un precio inferior al precio sombra (valor que aumenta la funci ón objetivo por el aumento unitario del recurso). En este caso, los precios sombra son positivos: si aumentamos las horas de trabajo o la superficie cultivable, aumentaremos el beneficio. Por el contrario, una restricción NO activa está asociada a un recurso NO escaso, del cual tenemos disponibilidad a un nivel de producción óptimo; por tanto, ser á f ácil concluir que su precio sombra asociado será nulo. Al tener holgura en dicho recurso no estaremos dispuestos a pagar ning ún precio por un incremento unitario del recurso y un incremento o decremento “pequeño” de su disponibilidad (más adelante veremos los l í mites para los que es v álido este análisis) no afectará al valor de la función objetivo en el óptimo. Lo expuesto hasta ahora lo trasladaremos a la exposici ón gráfica: un cambio en el t érmino independiente de una restricción implica que la restricci ón se moverá paralelamente a su posici ón actual. En el caso de la granja, un incremento en el valor del t érmino independiente de una restricción implica que dicha restricción se desplazará hacia el exterior de la regi ón factible ampliando el área de la región factible; consecuentemente, el óptimo se verá desplazado si la restricción es activa, tal y como muestra el gráfico siguiente:
12
El caso de la recta (4) equivale a la frontera CEB + LEC = 120, mientras que el de la recta (5) equivaldrí a a la frontera CEB + LEC = 90. Recordemos que el valor actual es CEB + LEC = 110. Un hipotético aumento o reducción de los recursos disponibles, en este caso de las hect áreas de terreno para cultivar, deforma la región factible, desplazando el óptimo si la restricción estudiada es activa. El desplazamiento del óptimo implica, así mismo, una variación del valor de la función objetivo resultado de multiplicar el precio sombra de la restricción por el incremento del t érmino independiente. En nuestro ejemplo sabemos que el precio sombra de la restricci ón (2) asociada al área tiene un valor de 20; por tanto, si aument áramos nuestra área de cultivo de 110 a 120 Ha, nuestra funci ón objetivo aumentarí a en 20*10=200 unidades, pasando de un beneficio de 7600 a uno de 7800. Si, por el contrario, nuestra área de cultivo fuera de 90 Ha, la variaci ón serí a en sentido opuesto 20*(-20)=400, pasando el beneficio de 7600 a 7200. No obstante, este incremento no se mantendr á indefinidamente. Es f ácil comprender que si tuviéramos un terreno ilimitado nuestro beneficio no ser í a infinito, puesto que muy posiblemente la limitaci ón de otros recursos (mano de obra disponible o cuota de hect áreas de cebada) nos limitar í an la producción. Este último hecho está asociado a que las condiciones que configuran nuestra soluci ón (la base) habrá cambiado. El análisis de sensibilidad resultará interesante, porque nos indicar á el rango de valores para cada término independiente de modo que no se modifique la base de la soluci ón óptima (es decir, el óptimo se encuentre en la intersección de las mismas restricciones), manteni éndose además, para el citado rango de valores del t érmino independiente, el valor del precio sombra de la restricci ón. Es importante recordar que, como consecuencia de un desplazamiento de una restricci ón activa, se modificar án tanto el valor de las variables de decisi ón de la base como el valor de la función objetivo.
Cambios en los coeficientes de coste
Los cambios en los coeficientes de la función objetivo provocan un cambio en la inclinaci ón del plano oblicuo descrito por la funci ón objetivo. Intentaremos representar la funci ón objetivo sobre el plano CEB/LEC como la proyección sobre el plano CEB/LEC de la recta de intersección entre el plano definido por la funci ón objetivo y un plano paralelo al plano CEB/LEC situado a una altura Z* (valor de la funci ón objetivo en el óptimo). Esta recta proyectada sobre el plano CEB/LEC pasará por el punto de la solución factible en el vértice óptima y definirá una dirección perpendicular a la dirección de máximo crecimiento de la función objetivo (o lo que es lo mismo, dicha recta muestra una direcci ón de crecimiento nulo de la funci ón ob jetivo). La siguiente figura nos muestra las proyecciones de las rectas de intersecci ón entre planos paralelos al plano CEB/LEC a alturas de 4000 (4), 7600 (5) y 9600 (6) con el plano de la funci ón objetivo. Se puede observar que la recta de intersecci ón situada a una altura de 7600 pasa por el v értice de la región factible que es óptimo.
13
Dualidad y análisis de sensibilidad en programación lineal
Si modificamos los coeficientes de la funci ón objetivo, cambiará la dirección de máximo crecimiento y, por tanto, cambiará también la pendiente de la recta proyectada, tal y como se muestra en la siguiente figura:
En el gráfico presentado se ha ido modificando el valor del coeficiente asociado a la variable CEB. Recordemos que la expresión original de la funci ón objetivo era: [MAX]Z = 50· CEB + 80· LEC , proyección que coincide con la recta (4) y cuya intersección se situaba a una distancia (altura, valor de la funci ón objetivo) de 7600 respecto al eje FO. En las rectas sucesivas hemos aumentado el coeficiente de CEB, resultando la funci ón objetivo con la siguiente expresión: (5) [MAX]Z = 60· CEB + 80· LEC (6) [MAX]Z = 80· CEB + 80· LEC (7) [MAX]Z = 100· CEB + 80· LEC
intersección a distancia 8000 intersección a distancia 8800 intersección a distancia 10400
Queda claro, pues, que el hecho de aumentar el beneficio por hect área de cebada conlleva un aumento en el beneficio total (como era de esperar).
14
No obstante, cuando el coeficiente de CEB toma un valor de 80 sucede un hecho destacable: la proyección de la recta intersección tiene una direcci ón paralela a la restricción (2), lo que implica que el óptimo no se encontrará sólo sobre el vértice B, sino que se encontrar á sobre el vértice B, sobre el C, y sobre los infinitos puntos que configuran la arista de uni ón BC, obteniéndose un óptimo múltiple. Si llegados a este punto, aument áramos un infinitésimo el coeficiente de CEB, nos encontrar í amos con un cambio de base y el óptimo pasarí a de ubicarse en el v értice B a ubicarse en el v értice C; este hecho sucede en el caso (7) donde la soluci ón no es B sino C (80,30). Lo que estudia el análisis de sensibilidad de los coeficientes de coste es precisamente dónde se encuentra el lí mite superior e inferior de cada coeficiente para que el óptimo se mantenga en el mismo vértice (solución) que en el programa original, sabiendo que en el l í mite (superior e inferior) el óptimo será múltiple. Cabe recordar que a pesar de que el valor de las variables de decisión de la solución ó ptima no cambia puesto que no cambia la soluci ón (ni se deforma la regi ón factible), el valor de la FO en la solución cambia al modificarse el valor de sus coeficientes .
Análisis paramé trico
El análisis paramétrico se aplica cuando la variaci ón que sufre el término independiente de una restricción traspasa los l í mites de los valores para los cuales se mantiene la base. El análisis paramétrico tiene en cuenta una serie de intervalos sucesivos en la evoluci ón del término independiente desde –∞ a +∞. En cada uno de estos intervalos existir á una base (vértice) que indicará cuál es la solución óptima para el intervalo, cuáles son los precios sombra (que se mantendr án) para las restricciones activas en el intervalo y cu ál es el valor de la funci ón objetivo en el lí mite superior e inferior del intervalo. Pudi éndose calcular su valor para el resto de puntos intermedios multiplicando el incremento respecto al l í mite por el valor del precio sombra. Estudiemos gráficamente qué implica rebasar los lí mites del intervalo de mantenimiento de la base para el análisis de sensibilidad, y para lo cual ser á necesario un análisis paramétrico. Si observamos la siguiente figura, podremos notar que la restricci ón (2) ha superado los l í mites del análisis de sensibilidad, superior en el caso de (7) e inferior en el caso de (6).
Dualidad y análisis de sensibilidad en programación lineal
15
En el caso que la restricci ón (2) tome la forma: CEB + LEC ≤ 60
(6)
la región factible habrí a quedado reducida al área interior al triángulo definido por CEB = 0, LEC = 0 y CEB + LEC = 60. El lí mite de terreno disponible para cultivar serí a mucho más restrictivo que las horas de mano de obra disponible o el l í mite de cultivar 80 hectáreas de cebada, y los v értices de la región factible serí an los tres vértices del triángulo. Si los coeficientes de la funci ón objetivo son 50 y 80 para la cebada y la lechuga respectivamente, est á claro que cultivarí amos las 60 Ha de nuestro terreno exclusivamente con lechuga. Por otro lado, si lo que sucediera es que el t érmino independiente de la restricción (2) excede su valor del análisis de sensibilidad, como ocurre en el caso de (7): CEB + LEC ≤ 160 (7) En este caso, la región factible serí a el espacio contenido dentro de las restricciones (1) y (3) –se puede avanzar que el punto óptimo serí a el vértice de intersección entre (1) y (3) –. La restricción (2) no serí a activa y en consecuencia tendr í a un precio sombra nulo. Puede observarse, por lo tanto, que el an álisis paramétrico requiere de un conocimiento mucho más profundo del problema y de la modelización que el análisis de sensibilidad, y que en cada an álisis solamente podrá tenerse en cuenta una restricción, dejando el resto de condiciones invariables. 3.3.2 Análisis de sensibilidad mediante programas inform áticos Los programas informáticos que resuelven modelos de programaci ón lineal, como el LINDO, suelen incorporar la posibilidad de realizar el an álisis de sensibilidad de los coeficientes de coste c y de los términos independientes de las restricciones b. El resultado de este análisis es el intervalo de valores de estos parámetros para el que se mantiene la base. En el ejemplo siguiente (que corresponde al problema resuelto 4.1) vemos cómo muestra el programa LINDO los resultados del an álisis de sensibilidad.
Ejemplo 3.2.1 Análisis de sensibilidad con el programa LINDO
A continuación presentaremos los resultados de la resoluci ón mediante el programa LINDO del modelo lineal: MAX 20P1 + 60P2 ST HH) 30P1 + 20P2 < 2700 HM) 5P1 + 10P2 < 850 PM) P1 + P2 > 95 END
La primera parte corresponde a la resoluci ón del modelo (cuya interpretación ya se analizó en el tema anterior): LP OPTIMUM FOUND AT STEP
2
OBJECTIVE FUNCTION VALUE 1)
4900.000
16
VARIABLE
VALUE
REDUCED COST
P1
20.000000
0.000000
P2
75.000000
0.000000
ROW
SLACK OR SURPLUS
DUAL PRICES
HH)
600.000000
0.000000
HM)
0.000000
8.000000
PM)
0.000000
-20.000000
NO. ITERATIONS=
2
Ahora, sin embargo, podemos interpretar totalmente los resultados. La columna dual prices muestra el valor de las variables duales asociadas a las restricciones en el óptimo. En el caso del programa LINDO, es importante saber que cuando analizamos un modelo de m í nimo el programa nos da el valor de las variables duales cambiadas de signo . Si al resolver el modelo, respondemos s í (yes) a la pregunta DO (RANGE) SENSITIVITY ANALYSIS?, obtenemos el siguiente listado: RANGES IN WHICH THE BASIS IS UNCHANGED: OBJ COEFFICIENT RANGES VARIABLE
CURRENT COEF
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
P1
20.000000
10.000000
INFINITY
P2
60.000000
INFINITY
20.000000
ROW
CURRENT
RIGHTHAND SIDE RANGES RHS
ALLOWABLE
ALLOWABLE
INCREASE
DECREASE
HH
2700.000000
INFINITY
600.000000
HM
850.000000
100.000000
300.000000
PM
95.000000
15.000000
10.000000
El programa nos suministra los rangos para los que la base no var í a (RANGES IN WHICH THE BASIS IS UNCHANGED): a)
Los coeficientes de la función objetivo (OBJ COEFFICIENT RANGES) de cada una de las variables.
b)
Los términos independientes, que el programa llama valores del lado derecho (RIGHTHAND SIDE RANGES) de cada una de las restricciones.
Para cada uno de estos par ámetros, el listado suministra el valor original del modelo (CURRENT COEF para los coeficientes de coste y CURRENT RHS para los t érminos independientes), y los incrementos máximo (ALLOWABLE INCREASE) y mí nimo (ALLOWABLE DECREASE) para los que se mantiene la base. Por ejemplo, los valores del término independiente de la restricción HM para los que no cambia la base son: [850 – 300, 850 + 100 ] [550, 950] Y el rango de valores del coeficiente de coste de la variable P2 para el que no cambia la base es:
17
Dualidad y análisis de sensibilidad en programación lineal
[60 – 20, 60 + ∞] [40, ∞] Como hemos visto anteriormente, esto no significa que el valor de las variables en el óptimo y el valor de la función objetivo sea el mismo. Recordemos que en el caso de variaciones de c el valor de las variables no varí a, pero sí la función objetivo. Cuando variamos b, cambian los valores de las variables de decisi ón (aunque las no básicas siguen valiendo cero), y en consecuencia tambi én el valor de la función objetivo.
3.4 Ejercicios resueltos Seguidamente se muestra un ejemplo de análisis de sensibilidad e interpretaci ón de variables duales como precios sombra en un problema sencillo de dos variables (el lector puede realizar el an álisis de sensibilidad gráficamente). Ya se habí a utilizado este mismo modelo en los ejemplos 2.4.1 y 3.2.1, para introducir la dualidad y el análisis de sensibilidad en programas inform áticos. Ahora se muestra cómo responder a preguntas relacionadas con la naturaleza del modelo usando dualidad y análisis de sensibilidad. 3.4.1 Taller mecánico Un taller mecánico puede fabricar dos tipos de productos, P1 y P2. El beneficio unitario obtenido con cada producto es de 20 y 60, respectivamente. Para fabricar estos dos productos, dispone de dos recursos, horas hombre (HH) y horas m áquina (HM). En lo que respecta a las HH, dispone de 2.700, y fabricar una unidad de P1 consume 30 HH, y una de P2 20 HH. Dispone de 850 HM, y sabemos que fabricar una unidad de P1 consume 5 HM, y una de P2 10 HM. Adem ás, las condiciones contractuales le obligan a fabricar un mí nimo de 95 unidades, sea de P1 o de P2. Para maximizar el beneficio, el jefe del taller mecánico ha elaborado el siguiente modelo: MAX 20P1 + 60P2 ST HH) 30P1 + 20P2 < 2700 HM) 5P1 + 10P2 < 850 PM) P1 + P2 > 95 END
Una vez resuelto este modelo con un programa inform ático, se han obtenido los siguientes resultados: ÓPTIMO OBTENIDO EN EL PASO
2
VALOR FUNCIÓN OBJECTIVO 1)
4900.000
VARIABLE
VALOR
COSTE REDUCIDO
P1
20.000000
0.000000
P2
75.000000
0.000000
FILA
HOLGURA O EXCESO
VARIABLES DUALES
HH)
600.000000
HM)
0.000000
8.000000
PM)
0.000000
-20.000000
NO. ITERACIONES=
2
0.000000
18
RANGOS PARA LOS QUE NO CAMBIA LA BASE: RANGOS COEFICIENTES DE COSTE VARIABLE
COEF ACTUAL
INCREMENTO PERMITIDO
DECREMENTO PERMITIDO
P1
20.000000
10.000000
INFINITO
P2
60.000000
INFINITO
20.000000
RANGS TERMES INDEPENDENTS FILA
TÉRMINO
PERMITIDO
PERMITIDO
HH
2700.000000
INFINITO
600.000000
HM
850.000000
100.000000
300.000000
PM
95.000000
15.000000
10.000000
ACTUAL
INCREMENTO
DECREMENTO
Aunque hemos traducido los resultados del modelo, el encargado no entiende nada, y le ha pedido que analice los resultados. En la pr áctica, desea que les responda a las siguientes preguntas: a)
Escriba el dual del modelo original, indicando el sentido de las variables duales en cada caso.
b)
Escriba el modelo original en forma estándar, con las variables de holgura y exceso de las restricciones. ¿Qué variables forman la base en el óptimo?
c)
¿Qué beneficio adicional se obtiene al contratar una hora m ás de trabajo? Justifique brevemente su respuesta a partir de los resultados indicados.
d)
Si el beneficio obtenido con P2 pasa de 60 a 50, ¿el óptimo cambia? ¿Y el valor de la funci ón objetivo? Razone brevemente su respuesta.
e)
El cliente está dispuesto a negociar la cantidad mí nima a suministrar de producto. ¿Vale la pena? Si es así , ¿propondrí a aumentar o disminuir la cantidad mí nima? ¿Qué precio estarí a dispuesto a pagar por aumentar (o disminuir) esta cantidad mí nima? ¿Hasta qué valor estarí a dispuesto a aumentar (o disminuir) esta cantidad?
Solución a)
Escriba el dual del modelo original, indicando el sentido de las variables duales en cada caso.
MIN 2700HH + 850HM + 95PM 30HH + 5HM + PM ≥ 20 20HH + 10HM + PM ≥ 60 HH, HM ≥ 0 PM ≤ 0 HH, HM y PM representan el incremento del beneficio por incremento de horas hombre, horas máquina y producción má xima, respectivamente. b)
Escriba el modelo original en forma estándar, con las variables de holgura y exceso de las restricciones. ¿Qué variables forman la base en el óptimo?
Esta es la forma est ándar del modelo. H(xx) representan variables de holgura, y E(xx) representan variables de exceso de la restricción xx. MAX 20P1 + 60P2
Dualidad y análisis de sensibilidad en programación lineal
19
HH) 30P1 + 20P2 + H(HH) = 2700 HM) 5P1 + 10P2 + H(HM) = 850 PM) P1 + P2 + E(PM) = 95 P1, P2, H(HH), H(HM), E(PM) ≥ 0 Del examen de la solución ó ptima, encontramos que las variables básicas son P1, P2 y H(HH). El número de variables básicas es igual al de restricciones. c)
¿Qué beneficio adicional se obtiene al contratar una hora m ás de trabajo? Justifique brevemente su respuesta a partir de los resultados indicados.
No se obtiene ningún beneficio adicional. Puede verse por el hecho de que H(HH) = 600 (es decir, sobran 600 horas de trabajo), y por el hecho de que la variable dual asociada a la restricci ón HH es igual a cero. d)
Si el beneficio obtenido con P2 pasa de 60 a 50, ¿el óptimo cambia? ¿Y el valor de la funci ón objetivo? Razone brevemente su respuesta.
Si observamos en la solución del programa informático los rangos de valores para los que no cambia la base, encontramos que el beneficio por unidad de P2 (coeficiente de coste de P2 en la funci ón objetivo) puede bajar hasta 40 sin que cambie la base. Sabemos que, en estas condiciones, no cambia el valor del ó ptimo, que continúa siendo P1 = 20, y P2 = 75. En cuanto al valor de la funci ón objetivo, como para cada unidad de P2 tenemos una disminución del beneficio de 10, el valor de esta función disminuye en 10· 75 = 750. Entonces el beneficio total ha sido de 4.900 – 750 = 4.150. e)
El cliente está dispuesto a negociar la cantidad mí nima a suministrar de producto. ¿Vale la pena? Si es así , ¿propondrí a aumentar o disminuir la cantidad mí nima? ¿Qué precio estarí a dispuesto a pagar por aumentar (o disminuir) esta cantidad mí nima? ¿Hasta qué valor estarí a dispuesto a aumentar (o disminuir) esta cantidad?
La variable dual de la restricción PM vale –20. Esto significa que, si podemos, hemos de intentar disminuir esta cantidad mí nima. De hecho, podemos estar dispuestos a pagar hasta 20 um por unidad que disminuye esta cantidad mí nima. El valor má ximo con que puede bajarse esta cantidad sin que cambie la base es 10, tal como puede verse en los rangos de valores de los t é rminos independientes del análisis de sensibilidad. Esto significa que, por debajo de 95 – 10 = 85, la restricción PM no es activa, y no vale la pena pagar por variarla.
3.5 Glosario de términos Análisis de sensibilidad Estudio de las variaciones que se producen en la soluci ón de un modelo lineal cuando var í an los parámetros de dicho modelo. El an álisis de sensibilidad más usual se realiza para variaciones de los coeficientes de coste c y los t érminos independientes b. También es posible analizar el impacto de variaciones de los coeficientes tecnológicos de la matriz A, y el efecto de a ñadir nuevas variables y nuevas restricciones.
Base, cambio de Cuando alguno de los par ámetros varí e fuera de los intervalos obtenidos por an álisis de sensibilidad, tendremos un cambio de base. En resoluci ón gr áfica, esto supone que la soluci ón se encuentra en un
20
vértice diferente al de la solución original. En general, implica que las variables b ásicas son diferentes de dicha solución original.
Dual de un programa lineal Es otro programa lineal, que puede obtenerse a partir de un conjunto de reglas, cuya soluci ón u es el valor de los precios sombra de las restricciones del programa original. La correspondencia es biun í voca: el dual del dual es el primal.
Holgura complementaria, teorema de la Teorema que enuncia que el precio sombra de una restricci ón que no se cumple con el signo igual (esto es, cuya variable de holgura o exceso es diferente de cero) es igual a cero.
Precio sombra El precio sombra de una restricci ón es el incremento de la función objetivo por unidad de incremento del término independiente de la restricción, dentro del rango de valores del t érmino independiente que nos suministra el análisis de sensibilidad. El precio sombra puede ser negativo (la funci ón objetivo disminuye al aumentar el término independiente) positivo (la funci ón objetivo aumenta) o nulo (para las restricciones que se cumplan con holgura o exceso no nulos).
Primal Es el problema original del que se obtiene el programa dual. A su vez, es el dual de dicho dual.
Rangos de valores Intervalos de valores de los coeficientes de coste y t érminos independientes para los que no var í a la base óptima en un modelo lineal. Es el resultado del an álisis de sensibilidad obtenido por programas informáticos.
21
El problema del transporte
4 El problema del transporte 4.1 El problema del transporte: formulación general El llamado problema del transporte es un caso particular de programación lineal, que puede formularse del modo siguiente: Dados m orígenes de recursos y n destinos de esos recursos, determinar cómo deben distribuirse los recursos desde los i = 1,...,m orígenes hasta los j = 1,...,n destinos para minimizar los costes totales de distribución. Las variables de decisión de este problema se definirán como: xij: cantidad de recurso que se transporta desde el origen i hasta el destino j. El problema tendrá entonces m×n variables de decisión. Los parámetros del problema serán: i = 1,...,m oi = cantidad de recursos en el origen i j = 1,...,n d ij = necesidad de recursos en el destino j cij = coste de enviar una unidad de recurso de un origen i a un destino j Así, podemos representar gráficamente el problema del transporte del modo siguiente: o1
d1
o2
d2
o3
d3
d4
Figura 1.a Problema del transporte
Este problema puede formularse como problema lineal de la siguiente forma: m
n
[MIN] z = ∑ ∑ c ij ⋅ x ij i =1 j =1
s.a.:
n
∑ x j =1
ij
= oi
i = 1,…,m
restricciones origen
22
m
∑ x
ij
= d j
j = 1,...,n
restricciones destino
i =1
xij ≥ 0
El problema tiene entonces m×n variables de decisión y m + n restricciones. Para un número de orígenes y destinos relativamente reducido, el problema es bastante voluminoso. Por ejemplo, para m = 3 y n = 4 tenemos 12 variables de decisión y 7 restricciones. Sin embargo, la estructura bien definida del problema hace que éste tenga propiedades que permiten resolverlo mediante procedimientos más eficientes que el método símplex. En este tema, presentaremos en primer lugar las propiedades del problema del transporte y a continuación un procedimientos de resolución específico. El procedimiento tiene dos etapas: 1.
Determinación de una solución inicial, lo más cercana al óptimo que sea posible.
2.
La determinación de la solución óptima, siguiendo la misma estrategia que en el método símplex, pero con procedimientos más sencillos que la inversión de la matriz básica.
4.2 Propiedades del problema del transporte La primera propiedad de interés del problema del transporte es la propiedad de soluciones enteras, que se enuncia: En aquellos problemas en que oi y d j sean enteros, las variables de decisión xij tienen valores enteros para cualquier solución básica, incluida la solución óptima. Si las condiciones de una situación que puede modelizarse mediante problema de transporte exigen que las variables de decisión sean enteras y los recursos en los orígenes y las demandas en los destinos son valores enteros, no necesitamos añadir al modelo la condición de que las variables sean enteras, puesto que la solución óptima será entera con toda seguridad. Otra propiedad importante es la relativa a la existencia de solución. Las condiciones en que podemos estar seguros de que el problema tendrá solución se enuncian en la propiedad de soluciones factibles: La condición necesaria y suficiente para que un problema de transporte tenga solución es que éste sea un problema del transporte equilibrado : las cantidades disponibles en los orígenes debe ser igual a las cantidades demandadas en los destinos. La condición de problema del transporte equilibrado puede enunciarse en términos de los parámetros del problema del siguiente modo: m
n
i =1
j =1
∑ oi = ∑ d j Una condición para que el problema pueda resolverse mediante el procedimiento del transporte es que dicho problema debe estar equilibrado. Podemos modificar un problema del transporte cualquiera para que esté equilibrado añadiendo orígenes y destinos ficticios. Para el caso:
23
El problema del transporte
m
∑o
n
i
i =1
> ∑ d j j =1
las disponibilidades de recursos en los orígenes es mayor que la demanda en los destinos. Por lo tanto, no necesitamos transportar todos los recursos del origen al destino. Podemos equilibrar el problema añadiendo un destino ficticio d F, de demanda: m
n
∑ o − ∑ d i
i =1
j
j =1
Las cantidades xiF que se obtengan en la solución serán las cantidades no transportadas desde los orígenes. Por lo tanto, su coste de transporte será nulo, y haremos ciF = 0. La situación contraria, esto es: m
∑o
n
i
i =1
< ∑ d j j =1
representa un problema que no tiene solución, dado que los recursos en los orígenes son inferiores a las demandas en los destinos. Aunque, formalmente, el problema no tenga solución, sí podemos encontrar la forma de transportar el máximo posible de recursos del origen al destino. Podemos equilibrar el problema así planteado creando un origen ficticio oF, que representará la demanda que no se ha podido satisfacer en los destinos. La capacidad de dicho origen será: n
m
∑ d − ∑ o j
j =1
i
i =1
Las cantidades xFj que se obtengan en la solución representarán la demanda que no se ha podido cubrir en el destino j. Dado que se desea minimizar la cantidad no servida, haremos los coeficientes asociados al destino iguales a un número muy grande M: cFj=M. El problema de la figura (del se adjunta la tabla de costes de transporte del destino i al origen j) está desequilibrado debido a que las cantidades ofertadas en el origen superan a las demandas de los destinos. O1 =100
DA = 160 O1 O2 O3
O2 =200
DB =70 DA 8 4 3 160
O3 = 150
DC = 120 DB 9 5 6 70
DC 9 8 5 120
DD 5 7 9 80
DD = 80 100 200 150
Figura 2.a Equilibrado del problema de transporte
24
Para que el problema esté equilibrado, debe añadirse un destino ficticio E, igual a la diferencia entre la oferta total y la demanda total. En este caso, el valor del destino ficticio debe ser: (100 + 200 + 150 ) – (160 + 70 + 120 + 80 ) = 450 – 430 = 20 De manera que el problema se transforma en: O1 = 100
DA = 160
O2 = 200
DB =70 O1 O2 O3
DA 8 4 3 160
O3 = 150
DC = 120 DB 9 5 6 70
DC 9 8 5 120
DD = 80 DD 5 7 9 80
D E 0 0 0 20
DE = 20 100 200 150
Formalmente, esto equivale a añadir variables de holgura a las restricciones originales asociadas a los orígenes y a los destinos (con lo que se convierten en restricciones de igualdad), además de añadir una nueva restricción (también de igualdad) para el destino ficticio. Para el ejemplo, el conjunto de restricciones original era: x1A + x2A + x3A + x1A + x1B + x1C + x1D +
x1B x2B x3B x2A x2B x2C x2D
+ + + + + + +
x1C + x1D ≤ 100 x2C + x2D ≤ 200 x3C + x3D ≤ 150 x3A = 160 x3B = 70 x3C = 120 x3D = 80
Y después de la introducción del destino ficticio, tenemos: x1A + x2A + x3A + x1A + x1B + x1C + x1D +
x1B x2B x3B x2A x2B x2C x2D
+ + + + + + +
x1C + x1D + x1E = 100 x2C + x2D + x2E = 200 x3C + x3D + x3E = 150 x3A = 160 x3B = 70 x3C = 120 x3D = 80
x1E + x2E + x3E = 20
4.3 La tabla del transporte Para un problema de transporte equilibrado, todas las restricciones son de igualdad; podemos escribir una solución básica cualquiera del problema utilizando la tabla del transporte. Se trata de una tabla m×n, en la que los orígenes son representados por las filas y los destinos por las columnas, a la que se le añade una columna y una fila adicionales donde se escriben las ofertas
25
El problema del transporte
y las demandas totales, respectivamente. En la figura 1 se detalla la tabla de transporte para el ejemplo 2.a: DA O1 O2 O3
DB
DC
DD
DE
8
9
9
5
0
4
5
8
7
0
3
6
5
9
0
160
70
120
80
100 200 150 20
Si queremos escribir una solución al problema, bastará con asignar valores a las variables de modo que cumplan el conjunto de restricciones. En la tabla de transporte, escribiremos valores en cada celda (i, j) asociada a la variable xij , de modo que la suma de los valores de cada fila i sea igual a la oferta disponible en el centro emisor i y los valores de las columnas j iguales a la demanda de cada centro receptor j. Para conocer el valor de la función objetivo para la solución así obtenida, es útil escribir en cada cel da su coeficiente de coste asociado. El valor de la función ob jetivo se obtiene entonces como la suma de los productos de los valores de la celda por su coeficiente de coste.
Soluciones básicas para el problema del transporte Como es sabido, el número de variables básicas de un programa lineal es igual al número de restricciones linealmente independientes (rango de la matriz B). En un problema de transporte equilibrado, una de las restricciones es una combinación lineal de las otras. En consecuencia, una solución básica se caracterizará por tener un máximo de m+n–1 variables básicas . Por lo tanto, las posibles soluciones óptimas tendrán un máximo de m+n–1 valores diferentes de cero, aunque en ocasiones podemos tener alguna otra variable nula. La tabla de transporte siguiente muestra una solución básica para el problema del transporte del ejemplo 2.a: DA O1 O2 O3
DB
8
DC
9
DD
9
5
0
70 4
5
8
7
0 20
6
5
9
70
120
20 0
120 160
100
30
160 3
DE
150
30 80
200
20
Una propiedad interesante de las soluciones básicas de un problema de transporte es que, si unimos con una recta las variables básicas en un problema de transporte, obtenemos un árbol, esto es, un grafo conexo y sin ciclos. En la tabla se ha dibujado el árbol para esta solución básica.
4.4 Resolución del problema del transporte Puede resolverse el problema del transporte mediante cualquier algoritmo de programación lineal. Sin embargo, la estructura especial del problema permite diseñar algoritmos más eficientes, como el que
26
ahora se indica bajo la denominación de algoritmo del transporte. Dicho método se realiza en dos pasos: a)
Encontrar una buena solución factible inicial.
b)
Encontrar, por aproximaciones sucesivas, la solución óptima a partir de la solución factible inicial.
4.4.1 Determinación de una (buena) solución factible inicial Tenemos varias posibilidades de encontrar una solución inicial para un problema del transporte. Algunos métodos son más laboriosos que otros, aunque los primeros aseguran, en casi todas las circunstancias, una mejor solución. En cualquier caso, conviene recordar que cualquiera estos métodos no asegura encontrar el óptimo. Además, no nos dan un procedimiento para verificar si efectivamente hemos encontrado el óptimo. Los métodos de determinación de una solución inicial del problema del transporte que mostraremos en esta sección son: 1.
Método del rincón noroeste
2.
Método de los mínimos costes
3.
Método de la máxima ganancia
Método del rincón noroeste
Se trata de una metodología que nos permite encontrar una solución a partir de la esquina superior izquierda de las filas o columnas no saturadas (esto es, que se les ha asignado una cantidad igual a la oferta o demanda asociadas, respectivamente). Formalmente, tenemos el algoritmo siguiente: Paso 0
Se escoge x11
Paso 1
Se asigna a la variable escogida un valor tal que satura una fila (origen) o una columna (destino).
Paso 2
Si se ha retornado el origen, se escoge xi, j+1 Si se ha retornado el destino, se escoge xi+1, j
Paso 3;
Si i = m y j = n ; finalizar Si no, ir a Paso 1
Ejemplo 4.1.a Encontrar una solución inicial del problema del transporte del ejemplo 2.a mediante el método del rincón noroeste.
Partimos de la tabla del transporte para el problema equilibrado:
27
El problema del transporte
DA O1 O2 O3
DB
DC
DD
DE
8
9
9
5
0
4
5
8
7
0
3
6
5
9
0
160
70
120
80
100 200 150 20
Comenzamos a saturar el rincón noroeste, asignando 100 a la celda (1,A). Esto satura la primera fila (no podemos enviar nada más desde el primer origen). Para indicar que se ha saturado, se ha marcado en negrilla el valor de la cantidad total asociada al centro emisor. DA O1 O2 O3
DB
8
DC
DD
DE
9
9
5
0
4
5
8
7
0
3
6
5
9
0
100
100
160
70
120
80
200 150 20
Dado que la primera columna está saturada, ahora el rincón noroeste es (2,A). Sólo podemos asignarle 60, con lo que la primera columna queda también saturada: DA O1 O2 O3
DB
8
DC
DD
DE
9
9
5
0
5
8
7
0
6
5
9
0
100
100 4
200
60 3
160
70
120
80
150 20
Se va procediendo según el mismo sistema hasta que se encuentra una solución inicial. Para este problema, deberemos repetir el proceso 5 + 3 – 1 = 7 veces, que es la cantidad de variables básicas para este problema: Rincón noroeste: celda (2, A): DA O1 O2 O3
DB
8
DC
DD
DE
9
9
5
0
5
8
7
0
5
9
0
100
100 4 3
6
160
200
70
60
70
120
80
150 20
28
Rincón noroeste: celda (2, C): DA O1 O2 O3
DB
8
DC
DD
DE
9
9
5
0
5
8
7
0
9
0
100
100 4 60 3
6
160
200
70
70 5
150
70
120
80
20
DB
DC
DD
DE
Rincón noroeste: celda (3, C): DA O1 O2 O3
8
9
9
5
0
5
8
7
0
9
0
100
100 4 60 3
70 6
200
70 5
150
50 160
70
120
80
20
DB
DC
DD
DE
Rincón noroeste: celda (3, D): DA O1 O2 O3
8
9
9
5
0
5
8
7
0
9
0
100
100 4 60 3
70 6
5
150
80
50
160
200
70
70
120
80
20
DB
DC
DD
DE
Rincón noroeste: celda (3, E): DA O1 O2 O3
8
9
9
5
0
5
8
7
0
9
0
100
100 4 60 3
70 6
5 50
160
70
200
70
120
20
80
80
20
150
29
El problema del transporte
Multiplicando cada celda por su coste, obtenemos el valor de la función objetivo, que es el coste de transporte total: COSTE = 100· 8 + 60· 4 + +70· 5 + 70· 8 + 50· 5 + 80· 9 + 20· 0 = 2.920 Método de mínimos costes
El método del rincón noroeste es un método sencillo para obtener una solución básica, pero no nos garantiza que se trate de una buena solución, que economice el número de iteraciones a realizar en la segunda etapa del algoritmo para llegar al óptimo. Ello se debe a que no hemos tenido en cuenta los valores de los coeficientes de coste: bien pudiera ser que las variables básicas de esta solución estuvieran afectadas de los costes más elevados. Mediante el método de mínimos costes, escogemos como variable básica aquella afectada con el mínimo coste que no corresponda a una columna o fila saturadas. De esta manera, al tener en cuenta los costes, es de esperar obtener una solución inicial con un valor más pequeño de la función objetivo. Ejemplo 4.1.b Encontrar una solución inicial del problema del transporte del ejemplo 2.a mediante el método de mínimos costes.
Tenemos toda una columna con costes 0. Eligiendo una celda cualquiera de esa columna, por ejemplo (1,E), tenemos: DA O1 O2 O3
DB
8
9
DC 9
DD
DE
0
5
20 4
5
8
7
0
3
6
5
9
0
160
70
120
100 200 150
20
80
Ahora vamos saturando filas o columnas, escogiendo siempre aquella variable susceptible de ser básica (en columna o fila no saturada) con un coeficiente de coste menor: Mínimos costes: celda (3, A). Queda saturada la fila 3: DA O1 O2 O3
DB
8
9
DC 9
DD 5
DE 0 20
4
5
8
7
0
3
6
5
9
0
200
150
150 160
70
120
Mínimos costes: celda (2, A). Queda saturada la columna 1:
80
100
20
30
DA O1 O2 O3
DB
8
DC
9
9
DD
DE
5
0 20
4
5
8
7
0
6
5
9
0
200
10 3
150
150
160
70
120
100
20
80
Ahora nos encontramos con un empate: las celdas (1,D) y (2,B) son las de coste mínimo. El algoritmo no nos indica cuál de las dos es preferible, por lo que optaremos por la segunda: DA O1 O2 O3
DB
8
DC
9
9
DD
DE
5
0 20
5
4
7
0
5
9
0
200
70
10 3
8
6
150
150
160
70
120
100
80
20
DD
DE
A continuación, escogeremos la otra celda de coste igual a 5: DA O1 O2 O3
DB
8
DC
9
5
9
0
80 4
5 10
3
20
8
7
0
5
9
0
200
70 6
150
150
160
70
120
100
20
80
Nótese que esta última asignación ha saturado a la vez una fila y una columna. Cuando esto sucede y no estamos en el último paso, tenemos una solución degenerada: debemos considerar saturada una sola de las dos y asignar un valor de 0 a la otra en un paso posterior. DA O1 O2 O3
DB
8
DC
9
9
DD
DE
5
0 80
4
5 10
3
7
8
0
5
9
0
150
150
160
70
120
Ahora sólo podemos asignar valores a la celda (2, C):
80
100 200
0
70 6
20
20
31
El problema del transporte
DA O1 O2 O3
DB
8
DC
9
DD
9
DE
5
0 80
4
8
5 10
3
7
6
0
120
70 5
20
200
0 9
0
150
150
160
70
120
80
100
20
De modo que ahora se obtiene una nueva solución, con un coste considerablemente más bajo que en la etapa anterior: COSTE = 80· 5 + 20· 0 + 10· 4 + 70· 5 + 120· 8 + 7· 0 + 150· 3 = 2.200 La solución obtenida por el método de mínimos costes es mucho mejor que la obtenida por el método del rincón noroeste en el ejemplo 4.1.a. Método de Vogel (o de máxima ganancia)
Es un método basado en el concepto de ganancia. La ganancia para una fila o columna se define como: ganancia = coste que sigue al mínimo – coste mínimo La estrategia del método de Vogel consiste en ir asignando valores a las celdas de menor coste no saturadas, de manera que de las posibles filas o columnas que puedan saturarse, lo haga la de ganancia máxima. De esta manera, nos aseguramos de no saturar aquellas celdas con costes bajos (pero superiores al mínimo) y tener que escoger celdas con un coste elevado en los siguientes pasos. Ello se debe a que las filas o columnas con coeficientes de coste bajos, pero no mínimos, tendrán valores de ganancia reducidos. En cada una de las iteraciones deberemos recalcular las ganancias. Ejemplo 4.1.c Encontrar una solución inicial del problema del transporte del ejemplo 2.a mediante el método de Vogel.
Seguidamente se procederá a obtener una solución inicial mediante este método para nuestro problema. En cada caso, la ganancia se escribe junto a la denominación del origen o destino. Las ganancias más elevadas se encuentran en las filas, pero no podemos saturar ninguna de ellas. Por lo tanto, saturaremos la columna de ganancia más elevada en la celda de coste mínimo: 1 DA 5 O1 4 O2 3 O3
3 DC
1 DB
2 DD
0 DE
8
9
9
5
0
4
5
8
7
0
3
6
5
9
0
100 200 150
120 160
70
120
80
20
32
Ahora debemos recalcular las ganancias de las filas, dado que hemos eliminado la columna C. Dicha columna no tiene ganancia, porque ya está saturada. La fila o columna de mayor ganancia que puede saturarse es la columna D: 1 DA 5 O1 4 O2 3 O3
1 DB
8
2 DD
DC
9
0 DE
5
9
0
100
80 4
5
8
7
0
3
6
5
9
0
200 150
120 160
120
70
80
20
Ahora podemos saturar la primera fila, con ganancia 8. Obsérvese cómo se satura también la columna E. Sin embargo, no la damos por saturada para tener una solución con n + m – 1 variables básicas, alguna de las cuales será cero. 1 DA
8 O1 4 O2 3 O3
O1 4 O2
3 O3
1 DB
8
DC
9
DD
9
0 DE
0
5
20
80 4
5
8
3
6
5
7
0
9
0
200 150
120 160
70
120
80
20
1 DA
1 DB
DC
DD
0 DE
8
9
9
5
0 80
20
4
5
8
7
0
3
6
5
9
0
30
120
70
80
100 200 150
120
160
100
20
Ahora sólo podemos saturar las columnas, que carecen de ganancia (al quedar sólo una fila por saturar, el concepto de ganancia para las columnas deja de tener sentido). Las vamos saturando por coste mínimo creciente, empezando por la columna E: DA O1 4 O2 O3
DB
8
DC
9
DD
9
DE
5
0 80
4
5
8
130 3
0
7
70 6
0 5
9
30 160
20 0
120
80
200
150
120 70
100
20
33
El problema del transporte
DA O1 O2 O3
DB
8
DC
9
DD
9
DE
5
0 80
4
5
8
130
20
7
0
70
3
6
0 5
9
30
0
70
120
80
200 150
120
160
100
20
El coste total para esta alternativa es de: COSTE = 80· 5 + 20· 0 + 130· 4 + 70· 5 + 0· 0 + 30· 3 + 120· 5 = 1.960 Obsérvese la notable mejora en el coste total respecto de las soluciones obtenidas con los otros dos métodos. Aunque (todavía) no tengamos garantías de haber obtenido la solución óptima, sí sabemos que es una buena solución. Una buena solución inicial ahorra muchas iteraciones en la fase siguiente del algoritmo del transporte, que es la de determinación del óptimo.
4.4.2 Determinación del óptimo Para hallar el óptimo del problema de transporte equilibrado, se trabaja con el problema de transporte y con su dual: las expresiones genéricas de ambos problemas se muestran en la tabla adjunta. m
[MIN]
n
z = ∑∑ cij ⋅ xij i =1 j =1 n
∑ x
ij
m
n
i =1
j =1
[MAX] w = ∑ oi ⋅ u i + ∑ d j ⋅ v j
=o i
u i + v j ≤ cij
i = 1,...,m; j = 1,...,n
j =1
m
∑ x
ij
= d j
i =1
xij ≥ 0
ui , v j n.r.s.
Las variables del dual, no restringidas en signo, tienen la siguiente interpretación: Las variables ui, asociadas a las restricciones de los orígenes, son iguales al incremento de la función objetivo en el óptimo por cada unidad adicional ofertada en el centro emisor i. Las variables v j, asociada a las restricciones de los destinos, son iguales al incremento de la función objetivo en el óptimo por cada unidad adicional demandada en el centro receptor j. A partir de la forma del dual, podemos realizar el siguiente análisis utilizando el teorema de la holgura complementaria: En las variables básicas, si xij ≠ 0 (solución no degenerada) la restricción se cumple con signo igual: esto significa que tenemos un máximo de n + m – 1 ecuaciones del tipo: ui + v j = cij
34
Esto significa que podemos obtener los valores de las variables duales asociadas a una solución del primal resolviendo un sistema de ecuaciones indeterminado: podemos fijar arbitrariamente el valor de al menos una de las variables y obtener las demás. Para las variables no básicas xij = 0, el coste reducido de la variable es igual a la holgura de la restricción: (cij – zij) = cij – (ui + v j) Por lo tanto, una vez obtenidos los valores de las variables duales, podremos obtener los coeficientes de coste reducidos. Para el problema de mínimo, si todos resultan ser positivos, hemos hallado el óptimo. En caso contrario, obtendremos una nueva solución construyendo un ciclo de desplazamiento a partir del coste reducido negativo de mayor valor absoluto. Ejemplo 4.2.a. Determinar el óptimo para el problema del transporte del ejemplo 2.a, a partir de la solución obtenida por el método de Vogel en el ejemplo 4.1.c.
Apliquemos el algoritmo a la solución obtenida por el método de Vogel. En la tabla se indican las variables asociadas a cada uno de los orígenes y destinos. vA DA u1 O1 u2 O2 u3 O3
vB DB
8
vC D C
9
9
vD DD
vE DE
5
0 80
4
5
8
130 3
7
0
70 6
0 5
9
30 160
20 0
120
80
200 150
120 70
100
20
A partir de la tabla, vemos que podemos plantear el siguiente sistema de ecuaciones: u1 + vD = 5 u1 + vE = 0 u2 + vE = 0 u2 + vA = 4 u2 + vB = 5 u3 + vA = 3 u3 + vC = 5 Como tenemos siete ecuaciones para ocho incógnitas, el sistema es indeterminado. Haciendo, por ejemplo u1 = 0, tenemos: vD = 5 vE = 0 u2 = 0 vA = 4 vB = 5 u3 = -1 vC = 6 De manera que ya podemos obtener los coeficientes de coste reducidos a partir de la expresión cij – (ui + v j), para cada una de las variables no básicas. Se detallan en la tabla, en la esquina superior derecha de cada casilla:
35
El problema del transporte
vA = 4 u1 = 0 u2 =0 u3 =-1
8
vB = 5 4
4
9
vC = 6 4
5
3
8
130 3
9
70 2
6
2
5
vE = 0
5
0 80 2
7 9
30 160
vD = 5
5
20 0 0 1
0
120 70
120
80
100 200 150
20
Como todos los coeficientes reducidos son positivos, hemos llegado al óptimo. Al no haber ningún coeficiente de coste reducido nulo, sabemos además que la solución es única. En este problema, el método de Vogel ha permitido dar con el óptimo. El ciclo de desplazamiento
El fundamento del ciclo de desplazamiento reside en que podemos obtener una nueva solución para el problema de transporte si sumamos y restamos la misma cantidad a dos casillas de una fila o columna. A partir de cualquier variable no básica, puede construirse un ciclo dentro de la tabla de transporte, formado por la casilla de la variable no básica y de al menos tres casillas de variables básicas. A la casilla de variable no básica se le asignará un signo + (indicando que en la nueva solución tendrá un valor no nulo). A partir de ahí, se van asignando alternativamente signos + y –. Cada fila y columna afectadas tendrá al menos un par de signos + y –. La variable saliente en la iteración será aquella de menor valor de las afectadas de signo –, dado que ninguna variable puede ser negativa. Una vez detectada esta variable, se suma y resta su valor (según el signo asignado) a cada una de las variables afectadas por el ciclo, obteniéndose así la nueva solución. Algoritmo de transporte para problema de mínimo
Paso 0
Se determina una solución inicial, a partir de alguno de los métodos propuestos: Rincón noroeste • Mínimos costes • Máxima ganancia •
Paso 1
Para las variables básicas, se plantea el sistema de ecuaciones indeterminado: ui + v j = cij Fijando arbitrariamente el valor de una de las variables, se obtienen las restantes ui, v j.
Paso 2
Prueba de óptimo:
Paso 3
Variable entrante: la variable entrante será aquella que asegure un mayor decrecimiento de la función objetivo, esto es, aquella con un ( cij – zij) negativo de mayor valor absoluto.
Paso 4
Variable saliente: Se determina el ciclo de desplazamiento asociado a la variable entrante. La
para las variables no básicas, se encuentra su coste reducido a partir de: (cij – zij) = cij – (ui + v j) Si todos los valores obtenidos son no negativos: la solución es óptima. Fin del algoritmo. Si alguno de los valores es negativo. Ir a paso 3.
variable saliente será aquella de mayor valor absoluto de las afectadas con signo – en el ciclo. Paso 5
A partir del ciclo de desplazamiento, obtener la nueva solución básica. Ir a paso 1.
36
Ejemplo 4.2.c Determinar el óptimo para el problema del transporte del ejemplo 2.a a partir de la solución obtenida por el método del rincón noroeste en el ejemplo 4.1.b.
La tabla asociada a la solución obtenida por el método del rincón noroeste es: vA = 4 u1 = 4 u2 = 0 u3 =-3
vB = 5
8
vC = 8
9
0
9
-3
vD = 12 5 -11
vE = 3 0
-7
7
0
-3
100 4
5 60 2
3
8 70 4
6
-5
70 5
9
0
50 160
70
80
120
20
80
100 200 150
20
Ahora encontramos que algunos coeficientes de coste reducido son positivos, indicando que no estamos en el óptimo. En particular, la variable x1 D resulta ser la variable entrante, puesto que asegura el mayor decrecimiento de la función objetivo. El ciclo de desplazamiento para esta variable será: vA = 4 u1 = 4 u2 = 0 u3 =-3
8 4 + 3
vB = 5
vC = 8
9
0
9
70 4
8 5 +
-3
100 5 60 2
6
160
70
vD = 12 5 -11 + 7 -5
vE = 3 0
-7
0
-3
70 50
9 -
120
0 80
20
80
100 200 150
20
Nótese como intervienen, en este caso, seis variables básicas en el ciclo de desplazamiento. La variable saliente será la (2,C), por ser la de menor valor de las afectadas con signo -. La nueva solución será: vA = 12 u1 =-4 u2 =-8 u3 = 0
8
vB = 13 9
vC = 5 0
9
vD = 9 8
5
30 4
5
130 -9
3
8 70 -7
6
11
5
70 6
7 9
70
120
0
4
0
8
0
120 160
vE = 0
10 80
20
100 200 150
20
Todavía no hemos llegado al óptimo, puesto que en la tabla tenemos coeficientes de coste negativos. Para este caso particular, se alcanza el óptimo después de otras tres iteraciones, por lo que preferimos mostrar el proceso completo en el problema de máximo del ejemplo 5.a.
37
El problema del transporte
4.5 El problema del transporte: caso de máximo Todo el planteamiento se ha realizado para el problema de mínimo. Sin embargo, todo lo dicho, realizando los cambios de signo pertinentes, es igualmente válido para el problema de máximo. Los parámetros relativos al origen y al destino tienen la misma definición, pero los cij ahora tienen el sentido de utilidad o beneficio obtenido por transportar una cantidad i a un destino j. En este problema, la definición de ganancia es: ganancia = coste que sigue al mínimo – coste mínimo Otra alternativa para resolver el problema de máximo es cambiar los signos de los cij y resolverlo como un problema de mínimo. Ejemplo 5.a. Resolver el problema de transporte del ejemplo 2.a, para el caso de máximo, a partir de la solución obtenida por el método del rincón noroeste.
El método del rincón noroeste nos da la misma solución para el problema de máximo que para el de mínimo. En el ejemplo 4.2.c ya hallamos los coeficientes de coste reducidos para esta solución básica: vA = 4 u1 = 4 u2 = 0 u3 =-3
vB = 5
8
9
vC = 8 0
9
70 4
8 + 5 -
-3
vD = 12 5 -11
vE = 3 0
-7
7
0
-3
100 4 60 2
3
5 6 +
160
70
-5
70 9
0
50
80
120
20
80
100 200 150
20
Ahora hemos de buscar coeficientes de coste reducidos que permitan aumentar la función objetivo, esto es, de signo positivo. Vemos que el coeficiente más grande se encuentra en la celda (3, B), por lo que x3 B será la variable entrante. En la misma tabla se indica el ciclo de desplazamiento. La variable saliente, en este caso, será x3C . La cantidad a incrementar y disminuir será la más pequeña de las celdas afectadas con signo -, que en este caso es 50. La nueva solución es: vA = 4 u1 = 4 u2 = 0 u3 = 1
vB = 5
8
9
vC = 8 0
9
-3
vD = 12 5 -7
vE = -1 0
-3
0 + 0 -
1
100 4 60 -2
3 160
5 6 +
8
7
20
120 -4
5
-1
9
50 70
80 120
80
20
100 200 150
20
Ahora la variable entrante es x2 E , la única con coeficiente de coste reducido positivo. Una vez obtenido el ciclo de desplazamiento, vemos que la variable saliente puede ser tanto x2 B como x3 E , puesto que ambas tienen el mismo valor. Haremos salir de la base a x3 E y dejaremos dentro de la base, con un valor igual a cero, a x2 B.
38
Al calcular los coeficientes de coste reducidos para la nueva solución, comprobaremos que hemos llegado al óptimo, puesto que todos los coeficientes de coste reducidos son negativos: vA = 4 u1 = 4 u2 = 0 u3 = 1
vB = 5
8
9
vC = 8 0
9
vD = 8 -3
vE = 0
5
-7
0
7
-1
0
-4
100 4
5 60 -2
3
8 0
6
120 -4
5
9
0
70 160
70
20 -1
80 120
80
100 200 150
20
El valor de la función objetivo es de 3.140 y tiene la siguiente interpretación en términos del problema original del ejemplo 2.a: a)
Desde el origen 1, deben enviarse 100 unidades al destino 1. El origen 1 trabaja a plena capacidad.
b)
Desde el origen 2, deben enviarse 60 unidades al destino 1 y 120 al destino 2, que es servido exclusivamente desde este origen. Quedan 20 unidades de capacidad del origen 2 sin utilizar.
c)
Finalmente, el origen 3 sirve a los destinos 2 y 4, con 70 y 80 unidades respectivamente. Este origen también trabaja a plena capacidad.
Formalmente, esta no es la única solución óptima, puesto que el coeficiente de coste reducido de (1,B) es igual a cero. Sin embargo, si obtenemos el ciclo de desplazamiento observamos que la única diferencia de las dos soluciones es dónde se encuentra la variable básica igual a cero: en (2,B) en la solución actual, y en (1,B) en la nueva solución. A efectos prácticos, la distribución de recursos es la misma en las dos soluciones.
4.6 Problemas resueltos Seguidamente se muestra un ejemplo de aplicación al problema del transporte: la planificación de la producción de una empresa industrial.
Problema 6.1 Planificación de la producción El director de producción de la empresa Bowman debe llevar a cabo la planificación de la producción para los próximos cuatro meses. Las demandas estimadas (en lotes) para cada mes se detallan en la tabla adjunta. En dicha tabla se indican también los niveles de stock mínimo o de seguridad. Los costes de producción son de 100 euros por lote para los cuatro meses, y cada lote en existencias al final del periodo incurre en unos costes de almacenamiento de 20 euros por lote.
Demanda Inventario mín.
M1 100 10
M2 250 25
M3 130 13
M4 200 20
La capacidad productiva es de 175 lotes por mes. No se cuenta con inventarios al principio del periodo.
39
El problema del transporte
a)
Determinar cuál debe ser el plan de producción (producción prevista para cada mes) que minimice el total de costes de producción y almacenamiento, así como los niveles de inventarios en cada mes.
La idea es la de modelizar esta situación mediante un problema de transporte, en el que los orígenes sean la producción y los destinos la demanda. Entonces, las variables de decisión xij representarán el valor de la producción del mes i para servir la demanda del mes j. Tendremos los siguientes casos: i = j
Producción que se utiliza para servir la demanda del mes. Estas unidades no incurrirán en costes de almacenamiento.
i < j
Producción que se utiliza para servir la demanda de meses futuros. Estas unidades incurrirán en costes de almacenamiento.
i > j
Representaría la producción que se utiliza para servir demanda de meses anteriores. En principio, asumiremos que no pueden permitirse retrasos en el servicio, y asignaremos a estas posibilidades un coste muy elevado M.
Una complicación adicional que tenemos en este problema es la existencia de un inventario mínimo. Esto supone que hemos de incluir en la demanda las necesidades asociadas al mantenimiento de este inventario mínimo, utilizando la demanda corregida para tal fin. Dicha demanda se calcula como: demanda corregida = demanda + inventario mínimo final – inventario mínimo inicial Teniendo en cuenta que el inventario al principio de M1 es cero, tenemos:
Demanda Inventario mín. Dem. corregida
M1 100 10 110
M2 250 25 265
M3 130 13 118
M4 200 20 207
La demanda corregida total para los cuatro meses es de 700, cantidad igual a la capacidad productiva para los cuatro meses (175×4 = 700), por lo que el problema de transporte está equilibrado. Con estos datos, podemos proceder a elaborar la tabla del transporte para este problema. Por ejemplo, c13 representa el coste de producir en el mes 1 y servir en el mes 3: como el lote ha estado almacenado dos meses, tenemos unos costes de 100 + 2 ×20 = 140 euros por lote. M1 M1 M2 M3 M4
M2
M3
M4
100
120
140
160
M
100
120
140
M
M
100
120
M
M
M
100
110
265
118
Mediante el método de los mínimos costes, encontramos la solución óptima:
175 175 175 175 207
40
u1=120 -M u2=100 -M
v1=M-20 100 100 M M-80
v4=120 160 M-60
120
140
65 100
20
M
u4=-20
120
v3=100 140 M-80 M-80
M-80
175 M
u3=0
v2=M
M
40
100 25 20
M
120 118 M-80
M
32 100 175
110
265
118
175 175 175 175
207
Formalmente. el problema de transporte tiene solución factible. Sin embargo, la solución obtenida no es satisfactoria: aunque la capacidad productiva es suficiente, nos vemos obligados a servir 25 lotes de la demanda del mes 2 con un mes de retraso, o bien, no contar con stock de seguridad durante ese mes. Podemos evaluar esta situación elaborando la tabla siguiente, basada en la ecuación: stock inicial (SI) + producción (P) = demanda (D) + stock final (SF) SI 0 75 0 45
M1 M2 M3 M4
P 175 175 175 175
D 100 250 130 200
SF 75 0 45 20
Stock seg. 10 25 13 20
Vemos que tenemos niveles de inventario por encima del nivel de seguridad de tres meses, excepto el segundo, en el que podemos decir que tenemos rotura de inventario, dado que no tenemos inventario de seguridad en el mes en que la demanda es más alta. Añadir capacidad, por ejemplo, mediante capacidad adicional, permite una planificación de la producción más ajustada a los requerimientos. Vistos los resultados del apartado anterior, se plantea la posibilidad de añadir capacidad adicional. Los costes de producción de esta capacidad adicional son de 130 euros por lote y su valor máximo es de 50 nuevos lotes por mes. b)
Determinar cuál será ahora el plan de producción que minimice los costes totales de producción y almacenamiento.
Ahora hemos añadido 4 ×50=200 lotes de capacidad adicional. En el modelo de transporte, deberemos añadir un destino ficticio adicional de valor 200 lotes que representará la capacidad no utilizada. Además, deberemos añadir cuatro nuevos orígenes que representarán las posibilidades de producción suministradas por la capacidad adicional. Su coste será el mismo que en la capacidad inicial, más un sobrecoste de 30 euros por lote. M1 M1 M2 M3
M2
100 110 M
M3
120
M4
DF
140
160
0
120
140
0
100
120
0
175
65 100
175
175 M
M
118
32
25
175
41
El problema del transporte
M
M4
M
M
100
0
175
175 130
M1(A)
150
170
190
0 50
M
M2(A)
130
150
170
0
25 M
M3(A)
25
M
130
150
0 50
M
M4(A)
M
M
130
0 50
110
265
118
207
50 50 50 50
200
La solución es la misma que en el apartado anterior, con una excepción: las 25 unidades que se tenían que servir con retraso se producen ahora usando la capacidad adicional. Es la única ocasión en que usamos esta posibilidad. La capacidad adicional da una producción más ajustada a la demanda: SI 0 75 25 45
M1 M2 M3 M4 c)
P 175 200 150 175
D 100 250 130 200
SF 75 25 45 20
Stock seg. 10 25 13 20
¿Cuál será el nuevo plan de producción si los costes de la capacidad productiva adicional baja a 110 euros por lote?
En el caso anterior, era más económico producir con un mes de antelación que producir usando la capacidad adicional (100 + 20 < 130). Ahora, al disminuir el coste de la capacidad adicional, será preferible usar la capacidad adicional a pagar costes de almacenamiento adicionales. M1 M1 M2 M3 M4 M1(A) M2(A) M3(A) M4(A)
M2
100
M3
120
140
110 M
M4
DF
160
0
40 100
25 120
140
0
100
120
0
175
175 M
M
118 M
M
M
57 100
0
150
170
190
0 50
M
130
150
170
0
M
130
150
0 50
M
M
M
130
0 32
110
265
118
207
50 50
50 M
175 175
175 130
175
18 200
50 50
42
A diferencia del caso anterior, producimos en horas extra en los meses M2 (50 unidades) y M4 (32 unidades). La producción ahora será: SI 0 50 25 13
M1 M2 M3 M4
P 150 225 118 207
D 100 250 130 200
SF 50 25 13 20
Stock seg. 10 25 13 20
4.7 Problemas propuestos Problema 7.1 La empresa Logitrans cuenta con un sistema logístico formado por dos fábricas (F1 y F2) y tres almacenes de distribución (A1, A2 y A3). Los costes de producción son de 8 euros por lote en F1, y de 6 euros por lote en F2. Los costes de transporte por lote para cada combinación de fábrica y almacén se detallan en la tabla adjunta. También se indica la capacidad productiva en el periodo temporal considerado de cada una de las fábricas y la demanda de cada uno de los tres almacenes.
F1 F2 Demanda
a)
A1 4 5 80
A2 6 3 60
A3 2 7 90
Capacidad 100 150
Determinar cómo deben abastecerse los almacenes para minimizar la suma de costes de producción y transporte.
Se ofrece la posibilidad de que la demanda de cada almacén no sea fija, sino que pueda estar entre dos valores (demanda máxima d max y demanda mínima d min), tal como se indica en la tabla. La demanda total debe seguir siendo de 230, como en el caso anterior.
dmax dmín
A1 70 90
A2 50 70
A3 80 100
b) Determinar cómo deben abastecerse ahora los almacenes para minimizar la suma de costes de producción y transporte. ¿La flexibilidad supone un ahorro de costes respecto del planteamiento anterior? (Solución: En a) el coste de producción y transporte total óptimo es de 2.320 euros. En b) el coste óptimo es de 2.300 euros).
Problema 7.2 El fabricante de productos de limpieza Lavablanc se plantea optimizar la política a seguir respecto de la fabricación y distribución de uno de sus productos.
43
El problema del transporte
Para la producción dispone de tres fábricas (en adelante F1, F2 y F3) con costes de producción por unidad de 10, 12 y 15 respectivamente. La capacidad productiva de las tres fábricas es la misma: 150 unidades a la semana. Las ventas se realizan en tres puntos de venta V1, V2 y V3. La demanda máxima en cada uno de los puntos de venta es de 100, 200 y 300 respectivamente. Los precios a los que se puede vender el producto también varían: son de 30, 25 y 27 para V1, V2 y V3 respectivamente. El último componente del coste es el de transporte. En la tabla adjunta se detallan los costes asociados a transportar una unidad desde un centro de producción a uno de ventas: V1 3 4 7
F1 F2 F3
V2 9 2 8
V3 7 6 9
Se desea hallar, mediante el algoritmo del transporte, las unidades que se deben transportar desde los diferentes centros de producción a los diferentes centros de ventas para maximizar los beneficios totales. (Solución: Mediante el método de Vogel se obtiene la solución óptima. El beneficio para esta solución es de 4.300).
Problema 7.3 Textilsa, empresa del ramo textil, le ha encargado la elaboración de su plan maestro de producción para los próximos seis meses. Para ello cuenta con los siguientes datos: 1.
En cada día laborable (ver tabla), la empresa tiene una capacidad de producción de 15 lotes/día. El coste de fabricación de cada lote en esas horas es de 100 um/lote. Si se desea, pueden producirse en horas extra –siempre en días laborables– hasta 4 um/lote, a un coste de 130 um/lote.
2.
Se desea mantener un stock mínimo de seguridad (medido a final de mes), igual al 10% de la demanda del mes. El mantenimiento de dicho stock , así como del stock adicional que fuera necesario, será igual a 20 um/lote almacenado a final de mes.
En estas condiciones, el departamento de producción de Textilsa debe cubrir la demanda indicada en la tabla. MES stock inicial MAYO JUNIO JULIO AGOSTO SEPTIEMBRE OCTUBRE
DEMANDA 260 270 200 290 270 270
STOCK SEGURIDAD 50 26 27 20 29 27 27
DÍAS LABORABLES 20 22 23 5 18 21
44
Con estos datos, se pide: a)
Plantear el problema como un problema de transporte, indicando: 1. El significado, en este contexto, de los orígenes y los destinos. 2. Las capacidades de los orígenes y las demandas de los destinos (tener en cuenta las necesidades de stock de seguridad). 3. Los coeficientes de coste para este caso (tener en cuenta que no puede diferirse la demanda).
b)
Obtener una solución inicial para este problema mediante el método de los mínimos costes.
c)
Determinar la solución óptima.
(Solución: La solución de mínimos costes es la óptima. Se producen 72 lotes en horas extra en agosto, y en julio tenemos un inventario de 152 unidades por encima del de seguridad. El coste total del plan óptimo es de 162.020).
4.8 Glosario de términos Árbol Grafo conexo sin ciclos (ver tema teoría de grafos).
Destino En la nomenclatura del problema del transporte, puntos receptores de recursos. El total de recursos provenientes de los diferentes orígenes ha de ser igual a la demanda del destino en un problema del transporte equilibrado.
Ciclo de desplazamiento Metodología para pasar de una solución básica a otra en la tabla del transporte, consistente en sumar y restar la misma cantidad a las filas y columnas que forman parte del ciclo de desplazamiento. Todas las celdas del ciclo menos una (la de la variable entrante) deben ser de variables básicas.
Equilibrado, problema del transporte Se dice de aquel problema del transporte tal que el total de las capacidades de los orígenes es igual al total de las demandas de los destinos. Podemos equilibrar un problema del transporte cualquiera mediante un origen o un destino ficticios.
Ganancia La ganancia de una fila o columna es igual a la diferencia entre el segundo coeficiente de coste más pequeño y el coeficiente de coste más pequeño de la fila o columna, en el problema de mínimo. En el problema de máximo, es igual a la diferencia entre el coeficiente de coste más grande y el segundo más grande.