Está en la página 1de 24

Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal

FaCyT – Computación Prof. Kiara A. Ottogalli F.


Fundamentos de Optimización para la Computación (CAO801)

Tema 3
Tipos Especiales de Problemas de Programación Lineal

Contenido

1. Introducción
2. El modelo de Transporte
3. Tabla de Transporte
4. Equilibrio de un Modelo de Transporte
4.1. Fuente Ficticia
4.2. Destino Ficticio
5. Método Simplex de Transporte
5.1. Inicialización (Método de la esquina noroeste, método del costo mínimo y método de aproximación de
Vogel)
5.2. Prueba de Optimalidad
5.3. Prueba de Factibilidad
6. Modelo de Asignación
6.1. Método Húngaro
7. Modelo de Transbordo
8. Referencias

Pág. 1
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

1. Introducción

La programación lineal puede ser usada para resolver una gran cantidad de problemas, y en particular un
subconjunto especial de problemas denominados problemas de transporte. El problema de transporte tiene
que ver con el envío de recursos desde unas fuentes hasta unos destinos, y su objetivo es minimizar el costo
total del envío y a su vez satisfacer los límites de oferta y demanda.

Los modelos obtenidos de los problemas de transporte normalmente requieren un gran número de variables y
restricciones, por lo tanto su solución mediante la aplicación del método simplex requiere un gran esfuerzo
computacional, sin embargo, por la estructura especial que presentan dichos modelos, ha sido posible
desarrollar técnicas que simplifican su solución. Los algoritmos para resolver los modelos de transporte se
fundamentan en los pasos del método simplex.

Vale la pena destacar que existen otros tipos de problemas de programación lineal que son especializaciones
del problema de transporte: El problema de asignación y el problema de transbordo.

2. El modelo de Transporte

El modelo de transporte, como se había comentado, es un modelo especial de programación lineal, que
presenta la siguiente estructura:

Minimizar ∑ 
 ∑   (Minimización de los costos de transporte de una fuente i a un destino j)
Sujeto a
∑  ≤  i = 1, 2, …, m (Las cantidades transportadas no deben exceder la oferta)
∑   ≥  j = 1, 2, …, n (Las cantidades transportadas deben satisfacer la demanda)
 ≥ 0 para todas las i y j

Donde:
• xij es la cantidad transportada entre la fuente i y el destino j.
• cij es el costo de transporte unitario entre la fuente i y el destino j.

c11 : x11
a1 1 1 b1

Unidades de Unidades de
a2 2 2 b2
Oferta Demanda

am m n bn
cmn : xmn

Figura 1. Modelo de transporte con m fuentes y n destinos.

Pág. 2
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Cuando la oferta total es igual a la demanda total (∑ 


  = ∑  ) se dice que el modelo es equilibrado y
presenta la estructura:

Minimizar ∑ 
 ∑  

Sujeto a
∑  =  i = 1, 2, …, m
∑   =  j = 1, 2, …, n
 ≥ 0 para todas las i y j

En problemas reales la oferta no siempre será igual a la demanda (o mayor que ella), sin embargo, un modelo
de transporte siempre puede equilibrarse. Este equilibrio es importante para el desarrollo de un método
solución que explote las características especiales presentes en la estructura del modelo. Este método se
denomina método simplex de transporte.

Ejemplo:

La empresa AutoVen tiene sus plantas ensambladoras en Valencia, Lara y Falcón y sus centros de distribución
en Caracas y Maracaibo. Las capacidades de las plantas durante el próximo trimestre son de 1000, 1500 y 1200
automóviles. Las demandas trimestrales en los dos centros de distribución son de 2300 y 1400 automóviles. Los
costos de transporte de cada automóvil entre las plantas y los centros de distribución vienen dados en la
siguiente tabla:
Caracas Maracaibo
Valencia 80 215
Lara 100 108
Falcón 102 68

La empresa quiere minimizar los costos de transporte de automóviles hacia sus centros de distribución,
cumpliendo las demandas del trimestre.

Modelo

A cada fuente y a cada destino se le asigna un valor numérico de referencia:

Origenes: 1 = Valencia, 2 = Lara, 3 = Falcón; Destinos: 1 = Caracas, 2 = Maracaibo.

La variable xij representa la cantidad de automóviles transportados desde la fuente i hasta el destino j.

Minimizar Z = 80x11 + 215x12 + 100x21 + 108x22 + 102x31 + 68x32


Sujeto a
x11 + x12 = 1000
x21 + x22 = 1500
x31 + x32 = 1200
x11 + x21 + x31 = 2300
x12 + x22 + x32 = 1400
xij ≥ 0 para i = 1, 2, 3 y j = 1, 2

Pág. 3
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Tabla Simplex

Para poder resolver el problema mediante el simplex, se añade a cada restricción una variable artificial que
haga las veces de una variable de holgura. Usando el método de la M, la tabla del simplex queda como sigue
(se asume que las celdas sin valor son ceros):

Básica x11 x12 x21 x22 x31 x32 a1 a2 a3 a4 a5 Solución


Z -80 -215 -100 -108 -102 -68 -M -M -M -M -M 0
a1 1 1 1 1000
a2 1 1 1 1500
a3 1 1 1 1200
a4 1 1 1 1 2300
a5 1 1 1 1 1400

Antes de la iteración inicial del simplex, hay que recordar que se requiere hacer cero los coeficientes de las
variables básicas (las variables artificiales). Como se puede ver, un problema de transporte presenta una
estructura especial, y particularmente es importante notar que por cada columna hay exactamente dos unos.
Esto quiere decir que si se representa el dual del modelo se tiene lo siguiente:

Maximizar W = (1000u1 + 1500u2 + 1200u3) + (2300v1 + 1400v2)


Sujeto a
u1 + v1 ≤ 80
u1 + v2 ≤ 215
u2 + v1 ≤ 100
u2 + v2 ≤ 108
u3 + v1 ≤ 102
u3 + v2 ≤ 68
ui, vj irrestrictas para todo i y j

Cada una de las restricciones duales cuenta con solamente dos variables, ui (i-ésima fuente) y vj (j-ésimo
destino) cuyos índices coinciden con los índices del lado derecho de la restricción dual, cij.

Se sabe que las restricciones duales ui + vj = cij, o lo que es lo mismo ui + vj – cij = 0, para toda variable básica xij
deben satisfacerse como ecuaciones, ya que los coeficientes de las variables básicas en el problema primal
deben ser 0. Esto brinda una forma de resolver fácilmente el problema dual, y por lo tanto obtener los
coeficientes de las variables básicas del problema primal, que son las variables duales (multiplicadores).

La estructura especial de un modelo de transporte ayuda a simplificar la tabla del simplex, en una tabla más
sencilla llamada tabla de transporte.

3. Tabla de Transporte

La tabla de transporte proporciona una forma resumida para representar el modelo de transporte. En esta
tabla las filas representan las fuentes y las columnas los destinos, un cuadro en una de las esquinas superiores
de cada celda contiene los coeficientes cij (costos de transporte) y en el interior de cada celda se tiene xij por
cada variable básica (que será colocada en negritas) y cij – ui – vj.

Pág. 4
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

En general, la tabla de transporte tiene la siguiente estructura:

Destino
1 2 … n Oferta
c11 c12 c1n
1 … a1
c21 c22 c2n
2 … a2
Fuente
⋮ ⋮ ⋮ ⋮ ⋮
cm1 cm2 cmn
m … am
Demanda b1 b2 … bn Z

En el ejemplo de AutoVen, la tabla de transporte correspondiente es la siguiente:

Destino
1 2 Oferta
80 215
1 1000
100 108
Fuente 2 1500
102 68
3 1200
Demanda 2300 1400

Como se puede ver, el modelo de AutoVen está equilibrado ya que 1000 + 1500 + 1200 = 3700 = 2300 + 1400.
Si el modelo no estuviera equilibrado, debe equilibrarse para poder aplicar el método simplex de transporte. A
continuación se presentará la forma de equilibrar un modelo de transporte.

4. Equilibrio de un Modelo de Transporte

Para equilibrar un modelo de transporte se pueden añadir fuentes y destinos ficticios.

4.1. Fuente Ficticia

Cuando en el modelo la demanda excede la oferta, se agrega una fuente ficticia que cuente con la diferencia
existente entre la oferta y la demanda. El costo de transporte desde una fuente ficticia hacia cada destino es
cero. Los destinos que reciban de una fuente ficticia presentarán un déficit de producto, por lo tanto si existe
un destino en el cual se necesita la totalidad del producto, se puede colocar un costo de transporte muy alto de
la fuente ficticia a ese destino.

Ejemplo:

Si la planta en Lara produjera 1300 carros en vez de 1500 por falta de mano de obra, la oferta total seria de
3500 carros, lo cual sería menor a la demanda de carros que es de 3700, por lo cual el modelo requiere una
fuente ficticia que cubra el déficit existente de 200 carros.

Pág. 5
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Destino
1 2 Oferta
80 215
1 1000
100 108
2 1300
Fuente
102 68
3 1200
0 0
4 200
Demanda 2300 1400

4.2. Destino Ficticio

Cuando en el modelo la oferta excede la demanda, se agrega un destino ficticio que cuente con la diferencia
existente entre la oferta y la demanda. El costo de transporte desde cualquier fuente hacia un destino ficticio
es cero. En este caso se cumplirá con la demanda completa y se contará con cierto exceso en las fuentes, por lo
tanto si existe una fuente que requiera despachar toda su mercancía, se puede colocar un costo de transporte
muy alto de la fuente al destino ficticio.

Ejemplo:

Si la demanda en Caracas bajara de 2300 a 1900 carros, la demanda total seria de 3300 carros, lo cual sería
menor a la oferta de carros que es de 3700, por lo cual el modelo requiere un destino ficticio que cubra el
exceso existente de 400 carros.

Destino
1 2 3 Oferta
80 215 0
1 1000
100 108 0
Fuente 2 1500
102 68 0
3 1200
Demanda 1900 1400 400

5. Método Simplex de Transporte

El método simplex de transporte utiliza la estructura especial del modelo de transporte y las relaciones
primales-duales para simplificar los cálculos del simplex. Puede ser resumido en tres pasos:

• Inicialización: Búsqueda de una solución básica factible inicial.


• Prueba de optimalidad: Se usa la condición de optimalidad del simplex para determinar la variable de
entrada.
• Prueba de factibilidad: Se usa la condición de factibilidad del simplex para determinar la variable de salida.

Pág. 6
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Para ilustrar el método se utilizará el siguiente problema de ejemplo:

Uno de los principales productos de Empresas Polar es la harina PAN. La harina es empaquetada en 3 plantas,
ubicadas en Maracaibo, Trujillo y Maturín para luego ser distribuida en 4 almacenes ubicados en San Cristóbal,
Guanare, Los Teques y San Fernando de Apure. Las plantas producen 75.000, 125.000 y 100.000 kilos de harina
respectivamente que deben ser enviados mediante camiones (cada uno con capacidad para 1.000 kilos) a los
almacenes, cuya capacidad de almacenamiento de kilos de harina es de 80.000, 65.000, 70.000 y 85.000. Los
costos de transporte por camión entre las plantas y los almacenes vienen resumidos en la siguiente tabla:

San Cristóbal Guanare Los Teques San Fernándo


Maracaibo 464 513 654 867
Trujillo 352 416 690 791
Maturín 995 682 388 685

La idea es determinar un plan para llevar la harina a los diferentes almacenes minimizando los costos de
transporte.

Modelo

A cada fuente y destino se le dará un valor de referencia.

Fuentes:
1 = Maracaibo
2 = Trujillo
3 = Maturín

Destinos:
1 = San Cristóbal
2 = Guanare
3 = Los Teques
4 = San Fernándo

La variable xij representa la cantidad de camiones de harina transportados desde la fuente i hasta el destino j.

Minimizar Z = 464x11 + 513x12 + 654x13 + 867x14 +


352x21 + 416x22 + 690x23 + 791x24 +
995x31 + 682x32 + 388x33 + 685x34
Sujeto a
x11 + x12 + x13 + x14 = 75
x21 + x22 + x23 + x24 = 125
x31 + x32 + x33 + x34 = 100
x11 + x21 + x31 = 80
x12 + x22 + x32 = 65
x13 + x23 + x33 = 70
x14 + x24 + x34 = 85
xij ≥ 0 para i = 1, 2, 3 y j = 1, 2, 3, 4

Pág. 7
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

5.1. Inicialización

Normalmente dado que las restricciones funcionales del modelo de transporte son todas igualdades, se
introducirían al modelo m + n variables artificiales para obtener la solución básica, sin embargo el método
simplex de transporte evita esto mediante procedimientos más simples.

Antes de explicar la manera de encontrar la solución básica factible inicial al problema, se debe tener en cuenta
que en cualquier modelo de programación lineal se tiene una variable básica por cada restricción funcional, por
lo cual se puede intuir que en un problema de transporte se tienen m + n variables básicas, sin embargo,
realmente se tienen m + n – 1 debido a que en este conjunto de m + n ecuaciones hay una redundante, que
puede ser representada como combinación lineal de las demás y puede ser eliminada sin afectar la región
factible.

Existen criterios diferentes para construir la solución básica inicial factible, sin embargo, solo se tomarán en
cuenta 3:

• Método de la esquina noroeste.


• Método del costo mínimo.
• Método de aproximación de Vogel (VAM).

Estos métodos difieren en la calidad de la solución básica inicial que producen.

Método de la Esquina Noroeste

Este método inicia siempre en la esquina noroeste de la tabla simplex de transporte, correspondiente a la
variable x11.

a) Se coloca el menor valor entre la oferta y la demanda, y se calculan las nuevas oferta y demanda
restándoles la cantidad colocada.
b) Se tacha la fila o columna que haya quedado con oferta o demanda en cero (si ambas quedan en cero se
tacha una sola).
c) Si queda una sola fila o columna sin tachar se detiene el procedimiento, sino se mueve a una celda hacia la
derecha si se tachó una columna (si se satisfizo la demanda), o a una celda hacia abajo si se tachó una fila
(si se satisfizo la oferta) y se regresa al paso (a).

Ejemplo: La solución inicial del problema de Empresas Polar, mediante el uso del método de la esquina
noroeste es:

Destino
1 2 3 4 Oferta
464 513 654 867
1 75
352 416 690 791
Fuente 2 125
995 682 388 685
3 100
Demanda 80 65 70 85

Pág. 8
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Destino
1 2 3 4 Oferta
464 513 654 867
1 0
75
352 416 690 791
Fuente 2 125
995 682 388 685
3 100
Demanda 5 65 70 85

Destino
1 2 3 4 Oferta
464 513 654 867
1 0
75
352 416 690 791
Fuente 2 120
5
995 682 388 685
3 100
Demanda 0 65 70 85

Destino
1 2 3 4 Oferta
464 513 654 867
1 0
75
352 416 690 791
Fuente 2 55
5 65
995 682 388 685
3 100
Demanda 0 0 70 85

Destino
1 2 3 4 Oferta
464 513 654 867
1 0
75
352 416 690 791
Fuente 2 0
5 65 55
995 682 388 685
3 100
Demanda 0 0 15 85

Pág. 9
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Destino
1 2 3 4 Oferta
464 513 654 867
1 0
75
352 416 690 791
Fuente 2 0
5 65 55
995 682 388 685
3 85
15
Demanda 0 0 0 85

Destino
1 2 3 4 Oferta
464 513 654 867
1 0
75
352 416 690 791
Fuente 2 0
5 65 55
995 682 388 685
3 0
15 85
Demanda 0 0 0 0

En este caso la solución inicial dada por el método de la esquina noroeste (sólo las variables básicas) es:

x11 = 75 x23 = 55
x21 = 5 x33 = 15
x22 = 65 x34 = 85

El resto de las variables (no básicas) son cero, por lo que no se toman en cuenta para el cálculo de Z.

Z = 464(75) + 352(5) + 416(65) + 690(55) + 388(15) + 685(85)


= 34.800 + 1.760 + 27.040 + 37.950 + 5.820 + 58.225
= 165.595

Método del Costo Mínimo

El método del costo mínimo encuentra una mejor solución inicial, tratando de encontrar las rutas menos
costosas.

a) Se asigna lo máximo posible a la celda con menor costo.


b) Se tacha la fila o columna satisfecha y se ajustan las ofertas y demandas.
c) Si queda una sola fila o columna sin tachar se detiene el proceso, sino se regresa al paso (a).

Ejemplo: La solución inicial del problema de Empresas Polar, mediante el uso del método del costo mínimo.

Pág. 10
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Destino
1 2 3 4 Oferta
464 513 654 867
1 75
352 416 690 791
Fuente 2 125
995 682 388 685
3 100
Demanda 80 65 70 85

Destino
1 2 3 4 Oferta
464 513 654 867
1 75
352 416 690 791
Fuente 2 45
80
995 682 388 685
3 100
Demanda 0 65 70 85

Destino
1 2 3 4 Oferta
464 513 654 867
1 75
352 416 690 791
Fuente 2 45
80
995 682 388 685
3 30
70
Demanda 0 65 0 85

Destino
1 2 3 4 Oferta
464 513 654 867
1 75
352 416 690 791
Fuente 2 0
80 45
995 682 388 685
3 30
70
Demanda 0 20 0 85

Pág. 11
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Destino
1 2 3 4 Oferta
464 513 654 867
1 55
20
352 416 690 791
Fuente 2 0
80 45
995 682 388 685
3 30
70
Demanda 0 0 0 85

Destino
1 2 3 4 Oferta
464 513 654 867
1 55
20
352 416 690 791
Fuente 2 0
80 45
995 682 388 685
3 0
70 30
Demanda 0 0 0 55

Destino
1 2 3 4 Oferta
464 513 654 867
1 0
20 55
352 416 690 791
Fuente 2 0
80 45
995 682 388 685
3 0
70 30
Demanda 0 0 0 0

En este caso la solución inicial dada por el método de la esquina noroeste (sólo las variables básicas) es:

x12 = 20 x22 = 45
x14 = 55 x33 = 70
x21 = 80 x34 = 30

El resto de las variables (no básicas) son cero, por lo que no se toman en cuenta para el cálculo de Z.

Z = 513(20) + 867(55) + 352(80) + 416(45) + 388(70) + 685(30)


= 10.260 + 47.685 + 28.160 + 18.720 + 27.160 + 20.550
= 152.535

Pág. 12
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Método de Aproximación de Vogel

El método de aproximación de Vogel es una especialización del método del costo mínimo, y generalmente,
aunque no siempre, genera una mejor solución básica inicial.

a) Para cada fila y columna se determina una penalización restando el elemento más pequeño del siguiente
más pequeño en la misma.
b) Se identifica la fila o columna con mayor penalización y se coloca en la celda con menor costo en la misma
el mayor valor posible.
c) Se ajustan las ofertas y las demandas y se tacha aquella fila o columna donde la oferta o demanda quede
en cero.
d) Si sólo queda una fila o columna sin tachar, con oferta o demanda en cero, se detiene el proceso.
Si sólo queda una fila o columna sin tachar, con oferta o demanda positiva, se determina la variable básica
según el método del costo mínimo y se detiene el proceso.
Si todas las filas y columnas que no han sido cruzadas tienen oferta y demanda en cero, se determinan las
variables básicas con valor cero según el método del costo mínimo y se detiene el proceso.
Sino, se regresa al paso (a).

Ejemplo: La solución inicial del problema de Empresas Polar, mediante el uso del método de aproximación de
Vogel.

Destino
1 2 3 4 Oferta
464 513 654 867
1 75
352 416 690 791
Fuente 2 125
995 682 388 685
3 100
Demanda 80 65 70 85

Destino
1 2 3 4 Oferta
464 513 654 867
1 75 49
352 416 690 791
Fuente 2 125 64
995 682 388 685
3 30 294
70
Demanda 80 65 0 85
112 97 266 106

Pág. 13
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Destino
1 2 3 4 Oferta
464 513 654 867
1 75 49
352 416 690 791
Fuente 2 45 64
80
995 682 388 685
3 30 3
70
Demanda 0 65 0 85
112 97 - 106

Destino
1 2 3 4 Oferta
464 513 654 867
1 75 354
352 416 690 791
Fuente 2 0 375
80 45
995 682 388 685
3 30 3
70
Demanda 0 20 0 85
- 97 - 106

Destino
1 2 3 4 Oferta
464 513 654 867
1 55 354
20
352 416 690 791
Fuente 2 0 -
80 45
995 682 388 685
3 30 3
70
Demanda 0 0 0 85
- 169 - 182

Destino
1 2 3 4 Oferta
464 513 654 867
1 0
20 55
352 416 690 791
Fuente 2 0
80 45
995 682 388 685
3 0
70 30
Demanda 0 0 0 0

Pág. 14
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

En este caso la solución inicial dada por el método de aproximación de Vogel (sólo las variables básicas) es:

x12 = 20 x22 = 45
x14 = 55 x33 = 70
x21 = 80 x34 = 30

Como se puede ver, la solución (para este ejemplo) resultó ser la misma que la obtenida mediante el método
del costo mínimo, por lo tanto el valor de Z es igual.

5.2. Prueba de Optimalidad

Para que una solución básica factible sea óptima debe cumplir con la siguiente condición de optimalidad:

ui + vj – cij ≤ 0

para toda variable no básica xij.

Se sabe que para toda variable básica ui + vj – cij = 0, de esta manera se pueden calcular todos los valores de las
variables duales. Como existen m + n – 1 variables básicas, existe un igual número de ecuaciones en las
restricciones del modelo dual, por lo tanto como hay m + n variables duales, el sistema de ecuaciones que se
obtiene tiene un grado de libertad, y por lo tanto se puede asignar cero de manera arbitraria a una variable
dual para resolver el sistema. Ejemplo:

Se toma la solución básica inicial factible obtenida mediante el método de la esquina noroeste:

x11 = 75 x23 = 55
x21 = 5 x33 = 15
x22 = 65 x34 = 85

Las ecuaciones duales correspondientes a dichas variables básicas son:

x11: u1 + v1 = 464 u1 = 0 → v1 = 464


x21: u2 + v1 = 352 v1 = 464 → u2 = 352 – 464 = -112
x22: u2 + v2 = 416 u2 = -112 → v2 = 416 + 112 = 528
x23: u2 + v3 = 690 u2 = -112 → v3 = 690 + 112 = 802
x33: u3 + v3 = 388 v3 = 802 → u3 = 388 – 802 = -414
x34: u3 + v4 = 685 u3 = -414 → v4 = 685 + 414 = 1099

Por lo tanto los coeficientes de las variables no básicas, despejando las ecuaciones duales correspondientes:

x12: u1 + v2 – 513 = 0 + 528 – 513 = 15


x13: u1 + v3 – 654 = 0 + 802 – 654 = 148
x14: u1 + v4 – 867 = 0 + 1099 – 867 = 232
x24: u2 + v4 – 791 = -112 + 1099 – 791 = 196
x31: u3 + v1 – 995 = -414 + 464 – 995 = -945
x32: u3 + v2 – 682 = -414 + 528 – 682 = -568

Pág. 15
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Como el problema es de minimización, entrará aquella variable no básica con coeficiente más positivo, en este
caso la variable x14. Esto puede hacerse en la tabla directamente de la siguiente manera:

Destino
1 2 3 4 Oferta ui
464 513 654 867
1 75 0
75 15 148 232
352 416 690 791
Fuente 2 125 -112
5 65 55 196
995 682 388 685
3 100 -414
-945 -568 15 85
Demanda 80 65 70 85 165.595
vj 464 528 802 1.099

Este método para encontrar la variable de entrada es conocido como el método de los multiplicadores, ya que
mediante los multiplicadores del simplex (variables duales ui y vj) se pueden conseguir directamente los
coeficientes de las variables no básicas.

Cuando se aplica este método, lo que está sucediendo en la tabla simplex es lo siguiente (sin las variables
artificiales que deberían estar presentes):

Básica x11 x12 x13 x14 x21 x22 x23 x24 x31 x32 x33 x34 Solución
Z 0 15 148 232 0 0 0 196 -945 -568 0 0 165.595

5.3. Prueba de Factibilidad

Una vez que se identifica la variable de entrada, es necesario identificar la variable de salida. En el método
simplex esto se logra mediante el cálculo de las razones (lados derechos entre los coeficientes de la columna de
entrada), pero como los coeficientes en un modelo de transporte siempre son cero o uno, la razón será igual a
los valores de las variables básicas.

Para determinar la razón mínima se construye un ciclo cerrado que comienza y termina en la variable de
entrada, consta de segmentos sucesivos horizontales o verticales cuyos extremos son las variables básicas del
problema.

Al aumentar en una unidad la variable de entrada se genera una reacción en cadena, ya que para mantener la
factibilidad de la solución, al haber un aumento en una variable debe haber una disminución en la siguiente
variable del ciclo (celda donante), y al haber una disminución en una variable debe haber un aumento en la
siguiente variable del ciclo (celda receptora), y así sucesivamente hasta llegar nuevamente al punto de partida,
que es la variable de entrada.

La cantidad que debe ser aumentada en la variable de entrada debe ser el menor de los valores de las variables
básicas a las cuales se les debe restar en el ciclo (esto se puede comparar con la condición de factibilidad del
simplex, donde sale aquella variable con la menor razón). Ejemplo:

Se arma el ciclo:

Pág. 16
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Destino
1 2 3 4 Oferta
- 464 513 654 + 867
1 75
75 232
+ 352 416 - 690 791
Fuente 2 125
5 65 55
995 682 + 388 - 685
3 100
15 85
Demanda 80 65 70 85 165.595

Entre las variables a las cuales se les resta, se toma el menor valor, esa es la variable que sale, en este caso x23.
Luego ese valor se coloca a la variable entrante y se comienza la reacción en cadena de sumas y restas para
mantener la factibilidad de la solución.

Destino
1 2 3 4 Oferta
- 464 513 654 + 867
1 75
20 55
+ 352 416 - 690 791
Fuente 2 125
60 65
995 682 + 388 - 685
3 100
70 30
Demanda 80 65 70 85 152.835

Luego se recalcula el valor de Z de una forma sencilla:


a) Se calcula la diferencia que ocurre en Z que ocurre por la reacción en cadena. Para esto se toma la cantidad
que se movió a la nueva variable y se multiplica por su coeficiente u1 + v4 – c14 (que es simplemente lo que
disminuiría Z por unidad de x14 añadida), es decir, ∆Z = 55(232) = 12.760.
b) Luego se le resta al Z anterior, por lo cual el nuevo valor de Z es: Z = Z – ∆Z = 165.595 – 12.760 = 152.835.

Iteración 2

Paso 1: Variable que entra.

Destino
1 2 3 4 Oferta ui
464 513 654 867
1 75 0
20 15 -84 55
352 416 690 791
Fuente 2 125 -112
60 65 -232 -36
995 682 388 685
3 100 -182
-713 -336 70 30
Demanda 80 65 70 85 152.835
vj 464 528 570 867

Pág. 17
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Paso 2: Variable que sale y nueva solución.

Destino
1 2 3 4 Oferta
- 464 + 513 654 867
1 75
20 55
+ 352 - 416 690 791
Fuente 2 125
80 45
995 682 388 685
3 100
70 30
Demanda 80 65 70 85 152.535

Iteración 3

Paso 1: Variable que entra.

Destino
1 2 3 4 Oferta ui
464 513 654 867
1 75 0
-15 20 -84 55
352 416 690 791
Fuente 2 125 -97
80 45 -217 -21
995 682 388 685
3 100 -182
-728 -351 70 30
Demanda 80 65 70 85 152.535
vj 449 513 570 867

Como los coeficientes de las variables no básicas son negativos todos, no hay variable de entrada, por lo tanto
la solución ya es óptima.

6. Modelo de Asignación

Existe un tipo especial de problemas de programación lineal en el cual un conjunto de recursos son asignados
para realizar tareas. Estos problemas se denominan problemas de asignación (Hillier y Lieberman, 2001).

Los recursos asignados generalmente son trabajadores, sin embargo, no necesariamente deben ser personas,
podrían ser máquinas, vehículos, plantas y hasta bloques de horario, los cuales se asignan a tareas.

El modelo de asignación es una especialización del modelo de transporte donde los trabajadores representan
las fuentes y los trabajos representan los destinos, lo que lo hace especial es que tanto la oferta como la
demanda siempre es igual a uno. Esta característica especial permitió el desarrollo de un algoritmo sencillo
para la asignación, llamado el método húngaro, el cual se basa en el método simplex, tal como en el modelo de
transporte, aunque no parezca relacionado (Taha, 2007).

Para que un problema de transporte pueda ser tratado como un problema de asignación, se debe cumplir lo
siguiente:

Pág. 18
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

• El número de recursos y tareas debe ser el mismo y se denota n.


• Cada recurso es asignado a una única tarea.
• Cada tarea debe ser realizada por un único recurso.
• Existe un costo asociado cij, correspondiente al recurso i (i = 1, 2, …, n) realizando la tarea j (j = 1, 2, …, n).
• El objetivo es determinar cómo se deben realizar las asignaciones para minimizar el costo.

La estructura general de un modelo de asignación es la siguiente:

Minimizar ∑ ∑  


Sujeto a
∑  = 1 i = 1, 2, …, n
∑  = 1 j = 1, 2, …, n
 ≥ 0 para todas las i y j

Donde
1 si el recurso  es asignado a la tarea "
 = 
0 en caso contrario

Como se puede notar xij es una variable binaria, que en el problema de asignación está representando una
decisión de tipo si/no.

6.1. Método Húngaro

Es una especialización del método simplex, que saca provecho de la estructura especial del modelo de
asignación para resolver el problema.

Los pasos de este método son los siguientes:

a) Para cada fila de la tabla de costos, identificar el mínimo y restarlo a todos los valores de la fila.
b) Para cada columna de la tabla resultante, identificar el mínimo y restarlo a todos los elementos de la
columna.
c) Identificar la solución óptima como la asignación factible asociada con las celdas cuyo valor quedo en cero
después del paso (b). Si se encontró una solución factible, terminar el algoritmo. Si no se encontró una
solución factible:
c.1) Tachar con el menor número de líneas horizontales y verticales todos los ceros obtenidos.
c.2) Encontrar el menor elemento no tachado. Este elemento le se debe restar a todos los elementos no
tachados y sumar a las intersecciones de las líneas.
c.3) Repetir (c).

Ejemplo:

La empresa Best Computer necesita asignar tres tareas a tres de sus empleados. El costo por hora de realizar
un trabajo, presentado en la tabla, es una función de las habilidades de cada trabajador. La idea es asignar las
tareas a los trabajadores de manera tal que el costo sea el menor posible.

Pág. 19
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Tarea 1 Tarea 2 Tarea 3


Empleado 1 10 5 4
Empleado 2 4 10 5
Empleado 3 5 7 3

Se busca el mínimo por fila y se resta a toda la fila:

Tarea 1 Tarea 2 Tarea 3 ui


Empleado 1 10 5 4 4
Empleado 2 4 10 5 4
Empleado 3 5 7 3 3

Sobre la tala resultante se busca el mínimo por columna y se resta a toda la columna:

Tarea 1 Tarea 2 Tarea 3


Empleado 1 6 1 0
Empleado 2 0 6 1
Empleado 3 2 4 0
vj 0 1 0

Sobre la tabla resultante se verifica si existe solución factible:

Tarea 1 Tarea 2 Tarea 3


Empleado 1 6 0 0
Empleado 2 0 5 1
Empleado 3 2 3 0

En este caso se asignarían las tareas de la siguiente forma:

Tarea 1 – Empleado 2
Tarea 2 – Empleado 1
Tarea 3 – Empleado 3

Con un costo total de 12 Bs.F. por hora.

Ahora la empresa necesita asignar cuatro tareas a cuatro empleados. La tabla de costos es la siguiente:

Tarea 1 Tarea 2 Tarea 3 Tarea 4


Empleado 1 1 4 6 3
Empleado 2 9 7 10 9
Empleado 3 4 5 11 7
Empleado 4 8 7 8 5

Pág. 20
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

La solución, por el método húngaro, sería la siguiente:

Tarea 1 Tarea 2 Tarea 3 Tarea 4 ui


Empleado 1 1 4 6 3 1
Empleado 2 9 7 10 9 7
Empleado 3 4 5 11 7 4
Empleado 4 8 7 8 5 5

Tarea 1 Tarea 2 Tarea 3 Tarea 4


Empleado 1 0 3 5 2
Empleado 2 2 0 3 2
Empleado 3 0 1 7 3
Empleado 4 3 2 3 0
vj 0 0 3 0

Tarea 1 Tarea 2 Tarea 3 Tarea 4


Empleado 1 0 3 2 2
Empleado 2 2 0 0 2
Empleado 3 0 1 4 3
Empleado 4 3 2 0 0

Como se puede ver, no se encontró una solución factible al problema, por lo cual hay que aplicar los pasos
(c.1), (c.2) y (c.3).

Tarea 1 Tarea 2 Tarea 3 Tarea 4


Empleado 1 0 3 2 2
Empleado 2 2 0 0 2
Empleado 3 0 1 4 3
Empleado 4 3 2 0 0

Tarea 1 Tarea 2 Tarea 3 Tarea 4


Empleado 1 0 2 1 1
Empleado 2 3 0 0 2
Empleado 3 0 0 3 2
Empleado 4 4 2 0 0

Tarea 1 Tarea 2 Tarea 3 Tarea 4


Empleado 1 0 2 1 1
Empleado 2 3 0 0 2
Empleado 3 0 0 3 2
Empleado 4 4 2 0 0

Pág. 21
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

La solución sería:

Tarea 1 – Empleado 1
Tarea 2 – Empleado 3
Tarea 3 – Empleado 2
Tarea 4 – Empleado 4

Con un costo total de 21 Bs.F. por hora.

7. Modelo de Transbordo

El modelo de transporte estándar permite solamente envíos directos entre una fuente y un destino, y se asume
que las rutas tomadas en cuenta son de costo mínimo (pudiendo haber sido calculadas mediante algún tipo de
pre-procesamiento). Ahora bien, existen situaciones en las cuales se permiten envíos con escala entre las
fuentes y los destinos, en estos casos, el problema puede ser formulado mediante un modelo de transbordo
(Wayne, 2004).

Este tipo de modelo permite que las unidades transportadas pasen por una serie de nodos intermedios o
transitorios antes de llegar a su destino. Estos nodos se denominan nodos de transbordo. De esta manera los
nodos del modelo pueden ser clasificados como: Nodos de oferta pura, nodos de demanda pura y nodos de
transbordo.

Los nodos de transbordo actúan como nodos fuente y destino al mismo tiempo, por esta razón la oferta podría
pasar por un mismo nodo de transbordo antes de llegar a su destino designado, en cuyo caso se asume que
estos nodos cuentan con la capacidad necesaria de almacenamiento. Estos nodos son de almacenamiento
temporal, por lo tanto el flujo de entrada en los mismos debe ser igual al flujo de salida, es decir, una vez que
se realicen los envíos, no debe quedar nada en los nodos de transbordo. De esta manera los nodos de
transbordo actúan como buffers, y su valor mínimo será el total de oferta o demanda, que se denominará B.

Un modelo de transbordo puede ser formulado y resuelto como un modelo de transporte regular usando la
idea de un buffer.

5 800
8
3
1000 1 3 5
4 6
7 6 900
2
4
5
1200 2 4 3

9
7 500

Figura 2. Un modelo de transbordo.

Pág. 22
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

En el modelo de la Figura 2 (el cual es equilibrado), se puede observar que los nodos 1 y 2 son de oferta pura,
los nodos 3, 4, 5 y 6 son de transbordo y el nodo 7 es de demanda pura. Al plantear el modelo, se tomará en
cuenta el flujo de entrada y salida de cada nodo. El flujo de entrada se considerara negativo, ya que representa
la cantidad que el nodo sustrae de los demás nodos, y el flujo de salida será positivo, ya que representa la
cantidad que el nodo despacha a los demás nodos.

El modelo queda como sigue:

Minimizar Z = 3x13 + 4x14 + 2x23 + 5x24 + 7x34 + 8x35 + 6x36 + 4x46 + 9x47 + 5x56 + 3x67
Sujeto a
x13 + x14 = 1000
x23 + x24 = 1200
–x13 – x23 + x34 + x35 + x36 = 0
– x14 – x24 – x34 + x46 + x47 = 0
– x35 + x56 = –800
– x36 – x46 – x56 + x67 = –900
– x47 – x67 = –500
x13, x14, x23 , x24, x34, x35, x36, x46, x47, x56, x67 ≥ 0

Nótese que en los nodos de transbordo el lado derecho es cero, esto se debe a que en estos nodos el flujo
entrante es igual al flujo saliente, por lo tanto al restarlos da cero.

Este modelo puede ser convertido a un modelo de transporte regular con seis fuentes (nodos 1, 2, 3, 4, 5 y 6) y
cinco destinos (nodos 3, 4, 5, 6 y 7). La oferta y demanda en cada nodo se calcula como sigue:

Nodo de Oferta Pura Nodo de Demanda Pura Nodo de Transbordo


Oferta Oferta original Cero Oferta Original + B
Demanda Cero Demanda Original Demanda Original + B

De esta manera la tabla de transporte queda como sigue:

Destino
Oferta
3 4 5 6 7
3 4 M M M
1 1000
x13 x14
2 5 M M M
2 1200
x23 x24
0 7 8 6 M
3 B
x33 x34 x35 x36
Fuente
M 0 M 4 9
4 B
x44 x46 x47
M M 0 5 M
5 B
x55 x56
M M M 0 3
6 B
x66 x67
Demanda B B 800 + B 900 + B 500

Pág. 23
Universidad de Carabobo Tema 3 – Tipos Especiales de Problemas de Programación Lineal
FaCyT – Computación Prof. Kiara A. Ottogalli F.
Fundamentos de Optimización para la Computación (CAO801)

Como se puede ver, a aquellas rutas inexistentes se les coloca como costo M, y las variables que las
representan no serán tomadas en cuenta en la solución óptima.

Una vez obtenida la tabla de transporte, se aplica el simplex de transporte y se obtiene la solución óptima:

x14 = 1000
x23 = 1200
x35 = 800
x36 = 400
x46 = 1000
x67 = 500

(Se recomienda aplicar el simplex de transporte para buscar la solución)

8. Referencias

• Hillier, F. y Lieberman, G. (2001). Introduction to Operations Research. New York, USA: McGraw-Hill.
• Taha, H. (2007). Investigación de Operaciones: Una Introducción. New Jersey, USA: Pearson Education.
• Waine, W. y Goldberg, J. (2004). Operations Research: Applications and Algorithms. California, USA:
Thomson Brooks/Cole.

Pág. 24

También podría gustarte