MODELO DE TRANSPORTE
Existen dos aplicaciones importantes de la programación lineal que son
el modelo de transportes y el de asignación de recursos. Aún cuando la
solución de estos modelos puede obtenerse aplicando el método simplex, se
estudian algoritmos especiales para la solución de estos problemas.
Debido a su estructura especial, hace posible hace posible métodos de
solución más eficientes en términos del cálculo.
EJEMPLO
Suponga que una compañía tiene m plantas de producción (i), de
capacidad ai (i = 1…m) y n almacenes de distribución (j), con demanda bj
(j = 1…n). El costo de transporte entre la planta i y el almacén es conocido
como cij.
El problema es determinar la cantidad (xij) que debe suministrar la
planta i al almacén j, de tal manera que el costo de transporte total sea
mínimo. Las consideraciones de costos de producción e inventario se
pueden incorporar al modelo básico.
El modelo típico tiene cuatro componentes:
1. Un conjunto de m fuentes
2. Un conjunto de n destinos
3. Costos de transporte entre las fuentes y los destinos
4. Cantidades de producto para enviar entre las fuentes y los destinos.
El modelo general que representa el modelo de transporte es:
Min z = S iS j cijxij
Sujeto a:
S j xij = ai (fuentes i = 1..m)
S i xij = bj (destinos j = 1..n)
xij >= 0
IV.1 MODELOS BALANCEADOS Y NO BALANCEADOS
IV.1 MODELOS BALANCEADOS Y NO BALANCEADOS:
Un modelo de transporte se llama balanceado cuando:
S i ai = S j b
Esto significa que la suma de los suministros de todas las plantas debe ser
igual a la suma de las demandas de todos los almacenes.
Sin embargo en problemas de la vida real, esta igualdad rara vez se
satisface.
Lo que se hace entonces es balancear el problema.
Si los requerimientos exceden a los suministros, se agrega una planta
ficticia, que suministrará la diferencia.
El costo de transporte desde la planta ficticia hacia cualquier almacén es
cero.
Recíprocamente, si los suministros exceden a los requerimientos, se agrega
un almacén ficticio que absorberá el exceso.
El costo unitario de transporte desde las plantas al almacén ficticio es cero.
Ejemplo
Considere La Empresa Gerconsa productora de automóviles de tres plantas
y dos centros de distribución. Las capacidades de las tres plantas durante un
trimestre son de 1000, 1500 y 1200 automóviles, la demanda trimestral en
los dos centros de demanda son de 2300 y 1400 vehículos. El costo de
transporte en dólares es:
Planta/Almacén 1 2
1 80 215
2 100 108
3 102 68
Sea xij el número de automóviles transportados desde la fuente i al destino j.
Como la oferta total (1000+1500+1200 = 3700) es igual a la demanda total
(2300+1400 = 3700) el modelo de transporte está equilibrado.
Por lo tanto el siguiente modelo representa la situación descrita:
Min 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 toda i, j.
Un método más resumido para representar el modelo de transporte consiste
en utilizar los que se llama tabla de transporte, esta es una matriz donde las
filas representan las fuentes y las columnas el destino. En cada celda se
especifica la cantidad xij y el costo cij.:
Fuente/destino 1 2 Oferta
1 x11 80 x12 215 1000
2 x21 100 x22 108 1500
3 x31 102 x32 68 1200
Demanda 2300 1400 3700
El método de transporte es un problema clásico dentro de la programación
matemática; se analiza la manera de obtener el costo mínimo de transportar
una serie de productos desde n fabricas, hasta m almacenes; cada envío
tiene un costo particular que estará en función de la distancia, el tipo de
carretera, la cantidad y otras variables.
Como siempre, se entiende mejor con un ejemplo:
La más famosa empresa dentro de las aulas universitarias, la
Empresa Gerconsa, tiene tres fabricas donde manufactura su
famosísimo producto P, con capacidades de producción de 25
(unidades por micronanosegundo, por segundo, hora, año… no
importa, es lo mismo para todos), 25,10 y debe surtir a 4 almacenes
con demandas de 20,15,20,5 (unidades por micronanosegundo,
segundos.. o lo que sea, siempre y cuando se maneje la misma unidad
temporal en todo el problema). Los costos de enviar desde cualquier
fábrica a cualquier almacén se pueden ver en la tabla abajo.
Capacidad de Producción (u/t)
Fabrica 1 Fabrica 2 Fabrica 3
25 25 10
Demanda de los Almacenes (u/t)
Almacén Almacén Almacén
Almacén 4
1 2 3
20 15 20 5
Costo de Transporte desde la Fabrica i al almacén
j
Almacén
Almacén Almacén Almacén
$/unid
1 2 3 4
Fabrica
2 2 0 4
1
Fabrica
5 9 8 3
2
Fabrica
6 4 3 2
3
Ahora la pregunta es cuánto se debe enviar desde cada fábrica a cada
almacén con el fin de obtener el mínimo costo.
Min Z = 2X11 + 2X12 +0X13 +4X14 +5X21 +9X22 +8X23 +3X24
+6X31+4X32 + 3X33 +2X24
Sujeto a:
1. Satisfacer la demanda de los almacenes:
X11+X21+X31 >= 20
X12+X22+X32 >= 15
X13+X23+X33 >= 20
X14+X24+X34 >= 5
2. No sobrepasar la capacidad disponible de las fabricas
X11+X12+X13+X14 <= 25
X21+X22+X23+X24 <= 25
X31+X32+X33+X34 <= 10
3. Por supuesto la condición de no negatividad y todas las variables
enteras.
Bueno, aquí la formulación es un poco diferente a como lo hicimos en los
dos ejemplos anteriores. La idea aquí es la de tener dos matrices y dos
vectores; una matriz se corresponderá con las variables de decisión, y la
otra matriz con los costos. La primera la dejamos simplemente señalada,
con algún formato para distinguirla, y la otra la digitamos. La celda
objetivo será la suma del producto de cada una de las posiciones de cada
matriz con su correspondiente en la otra; esto lo podemos hacer
rápidamente con la función “sumaproducto” del Excel. Las restricciones
estarán en las columnas de “Consumo” y de “entregado”. Primero
preparemos el formato del problema, así:
Las variables de decisión están en el rango [B4-E6]. La celda objetivo sería
algo así como esto: = B4*B10+ C4*C10+… pero eso sería muy largo. La
manera corta es:= SUMAPRODUCTO (B4:E6,B10:E12).La cantidad
entregada a cada almacén se ve en la fila 8. Por ejemplo para la celda B8,
su fórmula es:=B4+B5+B6. La restricción de la capacidad de las fabricas la
escribiremos en función del consumo en la columna G; por ejemplo para la
celda G4:=B4+C4+D4+E4. Las restricciones las escribiremos en el cuadro
de diálogo como lo entregado debe ser mayor o igual a lo requerido, y lo
consumido debe ser menor igual que lo disponible, tal como se puede ver
en la captura siguiente:
Las variables de decisión deben ser enteras. Luego de introducir los datos
en éste cuadro de diálogo y de hacer click en resolver, se hallará la
siguiente solución:
V. EL PROBLEMA DE LA ASIGNACIÓN
El Problema de la Asignación es un problema clásico de la Investigación de
Operaciones y es un caso particular del Problema del Transporte.
Este problema se trata de asignar una serie de Recursos a una serie de
tareas. Tiene una limitante y es que a cada tarea se le puede asignar sólo un
recurso, pueden sobrar recursos o podrían sobrar tareas pero no se le puede
asignar dos recursos a una misma tarea, o tres… por ejemplo si se tienen
tres operarios con diferentes tiempos de operación en cuatro máquinas el
modelo nos diría como asignar los tres operarios a tres máquinas (nos
sobraría una) de manera que se minimice el tiempo total, pero no nos diría
como asignar dos operarios a dos máquinas y el otro operario a las otras
dos máquinas
Ejemplos de Asignaciones: Operarios a Tareas, Máquinas a Operarios,
Nadadores a Estilos,etc.
El Problema de la Asignación se basa en una información comparativa para
tomar la decisión de que asignar a que, por ejemplo una matriz de costos,
una matriz de tiempos, de ingresos, etc. Cuando la matriz no está
balanceada, es decir, cuando no es cuadrada, cuando sobran filas o
columnas, se debe balancear para que tenga solución mediante la inclusión
de filas o columnas ficticias, con valores de cero en dicha matriz.
V.1 FORMULACION DE PROGRAMACION LINEAL
EJEMPLO 5.1.1: Existen cuatro operarios que se pueden asignar al
trabajo con tres máquinas. Un estudio de tiempos y movimientos ha
arrojado los siguientes tiempos por operario para las tres máquinas. Indicar
que operario debe trabajar en que máquina y cuál de ellos no será asignado
a ninguna.
Máquina 1 Máquina 2 Máquina 3
Operario
10 7 9
1
Operario
7 5 8
2
Operario
9 8 10
3
Operario
8 9 7
4
Como la matriz no esta balanceada, es necesario incluir una máquina
ficticia:
(esto es fundamental para asegurar que haya una respuesta. Si la matriz no
está balanceada, el problema no será factible de resolver)
Máquina
Máquina 1 Máquina 2 Máquina 3
Ficticia
Operario 10 7 9 0
1
Operario
7 5 8 0
2
Operario
9 8 10 0
3
Operario
8 9 7 0
4
Xij = Se debe asignar el operario i a la máquina j? Sí o no?
En matemáticas existen dos números cuyas propiedades hacen que puedan
representar estas respuestas son el 1 y el 0, debido a que todo número
multiplicado por 1 da el mismo número entonces el 1 se puede reemplazar
por la respuesta Sí y como todo número multiplicado por cero da cero
entonces se puede reemplazar por la respuesta No.
Así por ejemplo:
10X11 + 7X12 + 9X13 + 0X14
Representa el tiempo sumado que emplearía el operario1 en operar las
máquinas, pero solo una variable de las tres anteriores puede tomar el valor
de Sí, o sea de 1 las demás tendrán que tomar el valor de 0, y eso es debido
a que el operario 1 sólo puede ser asignado a una máquina, lo que
significaría que el tiempo que utilice el operario 1 puede ser ya sea de “10”
de “7” o de “9”. Con base en esto podemos formular la función objetivo:
Min Z = 10X11 + 7X12 + 9X13
7X21 + 5X22 + 8X23
9X31 + 8X32 + 10X33
8X41 + 9X42 + 7X43
Restricciones:
Como cada operario sólo puede estar asignado a una máquina….
X11 + X12 + X13 + X14 = 1
X21 + X22 + X23 + X24 = 1
X31 + X32 + X33 + X34 = 1
X41 + X42 + X43 + X44 = 1
Y como cada máquina solo puede tener un operario asignado…
X11 + X21 + X31 + X41 = 1
X12 + X22 + X32 + X42 = 1
X13 + X23 + X33 + X43 = 1
X14 + X24 + X34 + X44 = 1
Xij = 1 o 0 para toda i,j.
Al resolver utilizando Software, por ejemplo el Solver del Excel, la
respuesta que se obtiene es la siguiente:
Máquina Máquina Máquina Máquina
1 2 3 Fic.
Operario
0 0 0 1
1
Operario
0 1 0 0
2
Operario
1 0 0 0
3
Operario
0 0 1 0
4
Esto significa que el Operario 1 queda asignado a la Máquina Ficticia (es
decir, es el que sobra), el operario 2 se asigna a la máquina 2, el operario 3
se asigna a la máquina 1 y el operario 4 se asigna a la máquina 3.
V.2 ALGORITMO HUNGARO
El Algoritmo Húngaro sirve para reemplazar los métodos tradicionales de
la Programación Binaria, que implican muchos cálculos, aprovechando la
forma especial que tienen los problemas de Asignación.
Los siguientes pasos que se presentan a continuación son para minimizar,
pero con algunas modificaciones se puede emplear también para
maximizar.
Ø Si la matriz no está balanceada, balancearla incluyendo las filas o
columnas ficticias necesarias.
Ø De cada elemento de la matriz restar el mínimo valor de cada fila
Ø De cada elemento de la matriz restar el mínimo valor de cada columna
Ø Realizar la Asignación de la siguiente manera:
Ø Cada cero que se encuentre en la matriz significa que se puede asignar
esa fila a esa columna, pero una vez hecha esta asignación, ya no se tendrá
en cuenta todos los demás ceros de esa misma fila y esa misma columna,
debido a que sólo se puede asignar una fila a una columna.
Ø Buscar de arriba a abajo la fila que tenga menos ceros, pero que mínimo
tenga uno. (Pues si no tiene ninguno significa que esa fila no se puede
asignar a ninguna columna) y asignar esa fila a la columna donde esta el
cero (puede ser el primer cero que encuentre de izquierda a derecha).
Tachar esa fila y esa columna para indicar que ya fueron asignados, para
que los demás ceros de esa fila y esa columna no se tengan en cuenta.
Repetir este paso hasta que haga todas las asignaciones que más pueda. Si
todas las filas quedaron asignadas a todas las columnas el problema ha
finalizado y esa es la solución óptima, sino será necesario utilizar el método
de Flood (también se llama condición de Köning) que se explica a
continuación.
V.2.1 MÉTODO DE FLOOD:
Ø Señalar todas las filas que no tienen una asignación. (Cuando digo
señalar puede ser una pequeña X a la izquierda de la fila o arriba de la
columna)
Ø Señalar todas las columnas que tengan un cero en la columna señalada.
Ø Señalar todas las filas que tienen una asignación en las columnas
indicadas.
Ø Repetir estos pasos hasta que no pueda señalarse más columnas o filas.
Ø Dibujar una línea por cada fila NO señalada y por cada columna SI
señalada.
Ø Encontrar el mínimo valor de los elementos no cubiertos y restarlo a
todos los elementos no cubiertos, y sumar este valor a cada elemento que se
encuentre en la intersección de una línea horizontal con una línea vertical.
Ø Realizar la Asignación… si no es óptima hacer flood, iterar hasta que se
pueda hacer la asignación.
V.3 PROGRAMACION BINARIA EN EL PROBLEMA DE
ASIGNACION
Muchas de las situaciones en la vida exigen una de dos respuestas posibles:
si o no. Así es que podemos representar éstas posibilidades con los valores
0 (no) y 1 (si), y aprovechar las matemáticas para que nos den una mano
ante decisiones difíciles; a esto es lo que solemos llamar -por obvias
razones- Programación Binaria.
Una de las muchísimas aplicaciones de la Programación Binaria, es el
problema de la Asignación. ¿Se debe asignar el recurso i a la tarea j ? ¿Si o
no?
EJEMPLO 5.3.1:
Se tienen tres personas (recurso) para asignarlos a tres labores diferentes.
Cada uno de ellos puede efectuar cualquiera de las tareas existentes, pero
con diferente nivel de especialidad. Sus respectivos jefes los han calificado
de 1 a 10, para cada tarea en particular. Por supuesto el objetivo es el de
asignar a las personas de manera tal que la calificación en conjunto sea la
máxima. Ver tabla de calificaciones abajo.
También funciona para minimizar. Por ejemplo, en vez de calificación
podrían ser tiempos de manufactura de cualquier tipo de productos, y el
objetivo sería el de minimizar el tiempo total de manufactura.
Calificación de Operario por Tarea
Tarea 1 Tarea 2 Tarea 3
Operario
8 6 4
1
Operario
9 7 3
2
Operario
6 5 7
3
Xij = 1 si asignamos el operario i a la tarea j, de lo contrario 0
En éste orden de ideas, nuestro deseo es maximizar la calificación total al
asignar los operarios a las diferentes tareas.
Max Z = 8X11 + 6 X12 + 4 X13 + 9X21 +7 X22 +3X33 +6X31 +5X32
+7X33
SUJETO A:
1. Cada operario sólo puede tener una tarea asignada
X11 +X12 +X13 = 1 (Es decir, sólo se puede responder Si una sóla vez.)
X21 +X22 +X23 = 1
X31 +X32 +X33 = 1
2. Cada tarea puede tener un sólo operario asignado
X11 + X21 + X31 = 1
X12 + X22 + X32 = 1
X13 + X23 + X33 = 1
3. La obvia: Xij = 0,1 para toda i y toda j.
Ahora en Excel…
Este puede ser el formato:
Las variables de decisión, están localizadas en el rango de celdas B4:D6,
como ya habíamos dicho son binarias, van a tomar el valor de 1 si se asigna
ese operario a esa tarea, cero de lo contrario. La calificación que se logre
está en la celda B2, y es el resultado de sumar el producto de dichas
variables con su respectiva calificación en la matriz de abajo. Ya se había
dicho que esto se logra fácilmente así: =SUMAPRODUCTO (B4:D6,
B9:D11). Como un operario sólo se puede asignar a una tarea, colocamos
una columna de Suma (E), ésta es por ejemplo para la celda E4: =B4+ C4 +
D4. Cuando agreguemos las restricciones, ésta columna debe ser igual a
uno, pues sólo se puede responder que si una vez, ni más, ni menos. De
igual manera agregamos una fila (7), para asegurarnos que a una tarea sólo
se asigne un operario, por ejemplo la celda B7: =B4+ B5+ B6 Deberá ser
igual a 1. Ahora en el cuadro de diálogo de los parámetros de Solver, lo
colocamos así:
Luego de hacer click en resolver…
La calificación máxima lograda es de 22. Y se asignó el operario 1 a la
tarea 2, el operario 2 a la tarea 1 y el operario 3 a la tarea 3. Para los
programas Lineales enteros es muy importante que Solver, esté
debidamente configurado para un número suficiente de iteraciones, de
tiempo, de precisión y de convergencia, para esto ver los detalles de Solver
VI. BIBLIOGRAFIA
1. Eppen G.D , Gould F.J, Schmidt C.P. Investigaciòn de operaciones en
la Ciencia
Administrativa
2. Hiller, Frederics.Introduccion a la Investigación de Operaciones,
Quinta
Edicion, 1991_MC_Graw_Hill
3. Kaufman, Arnold.Metodos y Modelos de Investigacion de
operaciones,Quinta
Edicion, 1984, CECSA
4. Levin, Richard I. Kirkpatrick, Charles A. Enfoques Cuantitativos a la
Administración. Primera Edicion, 1983
5. Lumberger David, Programación Lineal y no Lineal. Wesley ED
Addison,
Iberoamericana, 1989, EUA.
6. Nagui,Mohammad. Investigación de Operaciones. Interpretación de
Modelos y
Casos. Editorial Limusa, 1996, México
7. Prawda , Juan. Métodos y Modelos de Investigación de Operaciones,
volumen 1:
Modelos Deterministicos, Octava Reimpresión, 1989, Limusa Mexico.
8. Taha, Hamdy A., Investigación de Operaciones. Sexta edición 1999,
Alfa y Omega S.A. Mexico
9. Web Site:
Ø http://www.elprisma.com
Ø http://selva.dit.upm.es/ cd/apuntes/tema3/tema3.html
Ø http://ekeko.rcp.net.pe/rcp/listas/ioper/iosa.html
Advertisements