Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
OBJETIVO GENERAL: Discriminar los problemas del transporte, trasbordo y asignación utilizando
los métodos establecidos para su resolución.
Modelo de Transporte
Las restricciones que deben cumplirse en este modelo serán, en primer lugar que las cantidades
enviadas desde cada origen no superen la disponibilidad de éste; siendo la segunda la que se
encarga de garantizar la demanda. Además es necesario incluir siempre, para la correcta
resolución del problema, la condición de que las soluciones sean positivas (soluciones factibles).
Normalmente se realiza la minimización de los costes totales, aunque también sería posible
plantear una función objetivo a maximizar, sin más que introducir en ésta, en vez de los costes
unitarios, los rendimientos unitarios.
Una forma más práctica de representar un problema de transporte es mediante una tabla de
transporte. Una celda de la fila i y la columna j representa la variable xij . Se suele incorporar en la
esquina superior derecha de cada celda, el costo unitario cij. En general, la tabla queda:
También se debe aclarar que si la demanda total no coincide con la oferta total, se dice que el
modelo es “no equilibrado”:
Caso 1: La oferta (origen) es mayor que la demanda (destino): Los productos no asignados
aparecen como holgura o exceso en la restricción. En este caso se puede balancear el problema
de transporte incorporando un punto de demanda artificial que tenga como demanda el
excedente de oferta del problema. Como las asignaciones al punto artificial no son reales, se le
asigna un costo unitario de cero. En general, el costo unitario no necesariamente debe ser igual a
cero, basta con que tenga igual valor a todos los puntos de oferta disponibles de forma de no
generar preferencias. Por simplicidad, se prefiere emplear cero.
Caso 2: La oferta (origen) es menor que la demanda (destino): El modelo, así planteado no tiene
solución, por lo que si se quiere satisfacer toda la demanda posible, se debe reformulan las
desigualdades, o se añade una oferta artificial con valor de oferta equivalente a la diferencia entre
oferta y demanda. En la mayoría de las situaciones, el hecho de no satisfacer totalmente la
demanda puede significar algún tipo de costo. Por lo tanto, en estos casos el costo unitario de las
casillas ficticias suele no ser cero y puede variar de un punto de demanda a otro.
Finalmente, es conveniente asignar un costo arbitrariamente grande a una de las rutas (mayor que
las demás), cuando queremos “eliminar” una de ellas del modelo.
Esto se debe a que se manejan restricciones de igualdad y este conjunto de m + n ecuaciones tiene
una ecuación adicional o (redundante) que se puede eliminar. La razón es que se sabe que la
cantidad total que se manda desde todos los orígenes debe ser igual que la cantidad total que se
recibe en todos los destinos. Por lo tanto, cualquier solución básica factible en una tabla de
transporte debe aparecer con exactamente m + n - 1 asignaciones no negativas, en donde la suma
de las asignaciones en cada renglón o columna es igual a su demanda o sus recursos.
Mediante el uso del método simplex se pueden resolver los modelos de transporte y de cualquier
otro tipo de problemas de programación lineal. Sin embargo debido a la estructura especial de
modelo de transporte, se puede utilizar otro método que se ha diseñado para aprovechar las
características de los problemas de transporte.
Los método de esquina noroeste, costo mínimo y aproximación de Vogel son alternativas para
encontrar una solución inicial factible.
Esquina noroeste. Se asigna la máxima cantidad posible entre la oferta y la demanda a la variable
de la esquina noroeste, se tachan las filas y columnas cubiertas y se continúa hasta completar el
número de variables básicas.
Ejemplo:
Procedimiento general, utilizando la regla de la esquina noroeste en el siguiente ejemplo:
Recursos
3 7 6 4 5
2 4 3 2 2
4 3 8 5 3
Demanda 3 4 2 1 10 10
La solución inicial básica factible es x11=3, x12=2, x22=2, x32=0 (variable básica degenerada),
x33=2 y x34=1 y el costo total de transporte asociado a esta primera “Política de Transporte” factible
es de:
x11 c11 x12 c12 x22 c22 x32 c32 x33 c33 x34 c34
Costo Mínimo: Se asigna la mayor cantidad posible entre la oferta y la demanda a la variable con
el costo mínimo, se tachan las filas y columnas cubiertas y se continúa hasta completar el número
de variables básicas. Este método produce soluciones óptimas en la mayoría de los casos, en la
primera tabla.
Ejemplo
Resolver el ejemplo presentado anteriormente y que fue resuelto por la regla de la esquina
noroeste por el método de costo mínimo
Recursos
3 7 6 4 5 4 3 1 0
1 1 2 1
2 4 3 2 2 0
4 3 8 5 3 0
Demanda 3 1 0 4 10 2 0 1 0 10 10
La solución inicial básica factible es x11=1, x12=1, x13=2, x14=1, x21=2 y x32=3 y el costo total de
transporte asociado a esta primera “Política de Transporte” factible es de:
x11 c11 x12 c12 X13 c13 x14 c14 x21 c21 x32 c32
Es necesario aclarar que esta no es la solución final del problema, es necesario aplicar a
esta primera solución factible la prueba de optimalidad ya que puede existir una mejor “política de
transporte” que minimice todavía más el costo total.
Aproximación de Vogel: Este método es heurístico y suele producir una mejor solución inicial que
los métodos anteriores. De hecho, suele producir una solución inicial óptima, o próxima al nivel
óptimo. Consiste en penalizar las filas y columnas restando los dos menores costos, luego se
asigna la mayor cantidad posible entre la oferta y la demanda en la fila o columna con la mayor
penalización.
Los pasos del procedimiento son los siguientes:
1.- Se Evalúa una penalización para cada renglón (columna) restando el menor elemento de costo
del renglón (columna) del elemento de costo menor siguiente en el mismo renglón (columna).
2.- Se Identifica el renglón o columna con mayor penalización, se rompe los empates en forma
arbitraria. Se asigna el mayor valor posible a las variables con el costo más bajo del renglón o
columna seleccionado. Se ajusta la oferta y la demanda y se tacha el renglón o columna
satisfecha. Si un renglón y una columna se satisfacen al mismo tiempo, sólo uno de ellos se tacha
y al renglón (columna) restante se le asigna una oferta (demanda) cero. Cualquier renglón o
columna con oferta o demanda cero no debe utilizarse para calcular penalizaciones futuras (en el
paso 3).
3: a) si sólo hay un renglón o columna sin tachar, se detiene.
b) si sólo hay un renglón (columna) con oferta (demanda) positiva sin tachar, se determina
las variables básicas del renglón (columna) a través del método de costo mínimo.
c) si todos los renglones o columnas sin tachar tiene oferta y demanda cero asignadas,
determínese las variables básicas cero a través del método de costo mínimo.
d) de lo contrario, se calcula las penalizaciones de los renglones y columnas no tachados y
después se va al paso 2.
Ejemplo
Resolver el ejemplo presentado anteriormente y que fue resuelto por la regla de la esquina
noroeste por el método de Vogel.
Se Inicia el método calculando las primeras diferencias para cada renglón y columna. De las
diferencias que se obtiene se toma el mayor, que resulta ser para la tercera columna. En esa
columna se encuentra el costo unitario (cij) menor y en esa celda se realiza la primera asignación:
Recursos DIF.
3 7 6 4 5 1
2 4 3 2 2 0 0
4 3 8 5 3 1
Demanda 3 4 2 0 1 10 10
1
DIF. 1 1 3 2
La solución inicial básica factible es x11=3, x12=1, x13=0 (variable básica degenerada), x14=1,
x23=2 y x32=3 y el costo total de transporte asociado a esta primera “Política de Transporte” factible
es de:
x11 c11 x12 c12 x13 c13 x14 c14 x23 c23 x32 c32
Es necesario aclarar que ésta puede o no ser la solución final del problema, es necesario
aplicar a esta primera solución factible la prueba de optimalidad ya que puede existir una mejor
“política de transporte” que minimice todavía más el costo total.
EJERCICIOS:
Determinar las dos tablas iniciales (esquina noroeste, costo minimo y Vogel) para los siguientes
problemas:
1)
2)
MÉTODO HÚNGARO.
Caso A: Minimización.
Revisar que todas las casillas tengan su costo (beneficio) unitario correspondiente. Si alguna no lo
tiene asignarlo en términos del tipo de matriz y problema considerado.
Caso B: Maximización.
Seleccionar el MAYOR ELEMENTO de toda la matriz de beneficio. Este valor restarlo de todos los
demás, los valores negativos que se obtengan representan los costos de oportunidad, lo que se
deja de ganar o producir.
Para el caso de la solución del modelo considerar solo valores absolutos. Con esta transformación
se ha obtenido un modelo de minimización y por tanto resolverlo como tal.
Ejemplos:
Se necesita procesar 4 diferentes tareas para lo cual se cuenta con 4 máquinas. Por diferencias
tecnológicas el desperdicio que se produce depende del tipo de tarea y la máquina en la cual se
ejecuta, dada la matriz de Desperdicios expresada en pesos definir la asignación óptima.
MAQUINAS
TAREAS 1 2 3 4
A 49 86 54 70
B 45 79 66 81
C 46 58 78 88
D 44 38 66 69
Como se trata de Desperdicios, se busca MINIMIZAR.
Se chequea que todas las casillas tengan su costo unitario, en este caso se cumple sin ningún
problema.
MAQUINAS
TAREAS 1 2 3 4
A 49 86 54 70
B 45 79 66 81
C 46 58 78 88
D 44 38 66 69
POR RENGLÓN
Se Elige el menor valor de renglón y se resta a los demás. En este caso es son: 49,45,46,38.
MAQUINAS
TAREAS 1 2 3 4
A 49-49=0 86-49=37 54-49=5 70-49=21
B 45-45=0 79-45=34 66-45=21 81-45=36
C 46-46=0 58-46=12 78-46=32 88-46=42
D 44-38=6 38-38=0 66-38=28 69-38=31
MAQUINAS
TAREAS 1 2 3 4
A 0 37 5 21
B 0 34 21 36
C 0 12 32 42
D 6 0 28 31
POR COLUMNA.
Se Elige los menores valores de cada columna en este caso son: 0,0,5,21
Se Resta esos valores a los demás números de las columnas
MAQUINAS
TAREAS 1 2 3 4
A 0-0=0 37-0=37 5-5=0 21-21=0
B 0-0=0 34-0=34 21-5=16 36-21=15
C 0-0=0 12-0=12 32-5=27 42-21=21
D 6-0=6 0-0=0 28-5=23 31-21=10
MAQUINAS
TAREAS 1 2 3 4
A 0 37 0 0
B 0 34 16 15
C 0 12 27 21
D 6 0 23 10
MAQUINAS
TAREAS 1 2 3 4
A 0 37 0 0
B 0 34 16 15
C 0 12 27 21
D 6 0 23 10
Contar el número de líneas y observar que son 3 líneas y el número de la matriz es de 4 por lo
que NO ES ÓPTIMO.
Restar a todos los demás, respetar los valores de los ya tachados y adicionar a los que están
interceptados.
MAQUINAS
TAREAS 1 2 3 4
A 0+12=12 37 0 0
B 0 34-12=22 16-12=4 15-12=3
C 0 12-12=0 27-12=15 21-12=9
D 6+12=18 0 23 10
Queda:
MAQUINAS
TAREAS 1 2 3 4
A 12 37 0 0
B 0 22 4 3
C 0 0 15 9
D 18 0 23 10
3 ≠ 4 NO ES ÓPTIMO
MAQUINAS
TAREAS 1 2 3 4
A 12+3=15 37+3=40 0 0
B 0 22 4-3=1 3-3=0
C 0 0 15-3=12 9-3=6
D 18 0 23-3=20 10-3=7
En este caso es 3 y se resta a los demás no tachados, respetar a los tachados y se suman a los
interceptados. Y volver a trazar líneas.
MAQUINAS
TAREAS 1 2 3 4
A 15 40 0 0
B 0 22 1 0
C 0 0 12 6
D 18 0 20 7
4=4 ES ÓPTIMO
MAQUINAS
TAREAS 1 2 3 4
A 15 40 0 0
B 0 22 1 0
C 0 0 12 6
D 18 0 20 7
0 = se escogen
0= se deshabilitan
Se traduce la solución:
Realizar la tarea A en la máquina 3 con un costo de $54
Realizar la tarea B con la máquina 4 con un costo $81.
Realizar la tarea C en la máquina 1 con un costo $46.
Realizar la tarea D en la máquina 2 con un costo $38.
EJERCICIO
1.- Una empresa tiene un trabajo compuesto de 5 módulos para ser desarrollado por 5
programadores, se desea que cada módulo sea desarrollado por un solo programador y que cada
programador desarrolle un solo módulo. Debido a los diferentes grados de dificultad de los
módulos y a las diferencias individuales de los programadores, el tiempo (en días) que ellos
emplean es diferente y se da en la siguiente tabla:
A B C D E
Módulo 1 2 4 4 3 6
Módulo 2 2 6 5 4 6
Módulo 3 5 6 5 3 7
Módulo 4 3 5 7 2 4
Módulo 5 8 5 6 2 1
a) Determine la asignación óptima de modo de minimizar el tiempo total -
b) Para cuándo debe comprometerse a entregar el trabajo
c) Cómo sería la formulación si un programador puede desarrollar más de un módulo?
d) Cuál es la opción que más le conviene hacer a la empresa?
A continuación se expondrán los pasos para aplicar el método Simplex para el problema de
Transporte. La deducción y justificación detallada de cada uno de los pasos se puede encontrar en
los textos de la bibliografía de la asignatura.
La variable eij representa el aporte neto unitario de la incorporación de la variable i¡j a la base.
Por lo tanto, si el problema es de maximización, la solución seria optima si todos los eij < 0. En caso
contrario, se ingresa a la base la variable con mayor eij que pueda formar un loop.
En el caso de que al emplear uno de los métodos para obtener una solución inicial falten dos o
más asignaciones para completar las m + n ¡ 1 asignaciones requeridas, los ceros deben ser
ubicados de tal forma que sea suficiente dar solo un valor arbitrario a las variables del sistema
asociado a la asignación para poder resolverlo completamente.
Ejemplo
Recursos
8 6 10 9 35
35
9 12 13 7 50
10 20 20
14 9 16 15 40
10 30
Demanda 45 20 30 30
A continuación podemos plantear las variables del sistema asociado:
v1 v2 v3 v4
V1 V2 V3 V4 Recursos
U1 8 6 10 9 35
35
U2 9 12 13 7 50
10 20 20
U3 14 9 16 15 40
10 30
Demanda 45 20 30 30
e12 = 6 - 0 - 11 = -5
e13 = 10 - 0 - 12 = -2
e14 = 9 - 0 - 1 = 8
e24 = 7 - 1 - 1 = 5
e31 = 14 - 4 - 8 = 2
e32 = 9 - 4 - 11 = -6
Por lo tanto, el menor eij corresponde a e32 con valor -6. Lo que significa que por cada unidad
asignada a la variable x32 el efecto global neto es de ¡6, independientemente de que el costo
asociado a dicha casilla sea de 9. Veamos si existe un loop factible y el maximo valor ® que podria
tomar la variable.
V1 V2 V3 V4 Recursos
U1 8 6 10 9 35
35
U2 9 12 13 7 50
10 20 - α 20 + α
U3 14 9α 16 15 40
α 10 - α 30
Demanda 45 20 30 30
Como las variables deben ser positivas, el valor de α debe ser tal que no introduzca una variable
negativa al tabla. En este caso, la condición que controla es 10 – α ≥ 0, por lo tanto α = 10.
Introducimos el valor de α y se vuelve a plantear el sistema asociado:
V1 V2 V3 V4 Recursos
U1 8 6 10 9 35
35
U2 9 12 13 7 50
10 10 30
U3 14 9α 16 15 40
10 0 30
Demanda 45 20 30 30
u1 + v1 = 8
u2 + v1 = 9
u2 + v2 = 12
u2 + v3 = 13
u3 + v2 = 9
u3 + v4 = 5
u1 = 0
Las únicas variables no básicas que tienen un eij < 0 son: e12 = -5, e24 = -1 y e13 = -2. Se busca un
loop para x12 y su máximo valor factible se obtiene:
V1 V2 V3 V4 Recursos
U1 8 6 10 9 35
35-α α
U2 9 12 13 7 50
10+α 10-α 30
U3 14 9α 16 15 40
10 0 30
Demanda 45 20 30 30
De acuerdo al loop encontrado, el máximo valor para α es 10. Luego, se vuelve a plantear el
sistema para las variables basales:
FLUJO DE REDES
Un modelo de transporte se puede representar como una red o grafo, con m fuentes y n destinos.
Cada fuente y cada destino están representados por un nodo, estos nodos se unen por un arco
que representa la ruta por la cual se transporta la mercancía.
Si tenemos:
ai= Cantidad de oferta en la fuente i.
bj = Cantidad de demanda en el destino j.
Cij= Costo de transporte unitario entre la fuente i y el destino j.
Xij = Cantidad transportada desde la fuente i al destino j,
Entonces, el modelo general de Programación Lineal que representa el modelo de transporte es:
Minimizar: Z = Σ i =1 m Σj=1 n Cij X ij
Sujeto a:
Σi=1 X ij ≥ bj j = 1, 2, ... , n.
Σj=1 X ij ≤ ai i = 1, 2, ... , m.
Xij ≥ 0 para todo i j.
FLUJO DE REDES
Las técnicas de flujo de redes están orientadas a optimizar situaciones vinculadas a las redes de
transporte, redes de comunicación, sistema de vuelos de los aeropuertos, rutas de navegación de
los cruceros, estaciones de bombeo que transportan fluidos a través de tuberías, rutas entre
ciudades, redes de conductos y todas aquellas situaciones que puedan representarse mediante
una red donde los nodos representan las estaciones o las ciudades; los arcos, los caminos, las
líneas aéreas, los cables, las tuberías y el flujo lo representan los camiones, mensajes y fluidos que
pasan por la red.
Cuando se trata de encontrar el camino más corto entre un origen y un destino, la técnica,
algoritmo o el modelo adecuado es el de la ruta más corta. Cuando se trata de enviar el máximo
flujo de líquido por una tubería, la técnica, algoritmo o el modelo adecuado es el de flujo máximo,
(aunque existen otros modelos)
Se trata de enlazar un nodo fuente y un nodo destino a través de una red de arcos dirigidos. Cada
arco tiene una capacidad máxima de flujo admisible. El objetivo es el de obtener la máxima
capacidad de flujo entre la fuente y el destino.
Características:
1. Todo flujo a través de una red conexa dirigida se origina en un nodo, llamado fuente, y termina
en otro nodo llamado destino. En el caso de que el origen o el destino no existan en el problema,
se añaden ficticiamente utilizando arcos unidireccionales de capacidad infinita. como en grafo
mostrado a continuación
4. El objetivo es maximizar la cantidad total de flujo de la fuente al destino. Esta cantidad se mide
en cualquiera de las dos maneras equivalentes, esto es, la cantidad que sale de la fuente o la
cantidad que entra al destino.
1. Se identifica una trayectoria de aumento encontrando alguna trayectoria dirigida del origen al
destino en la red residual, tal que cada arco sobre esta trayectoria tiene capacidad residual
estrictamente positiva. (Si no existe una, los flujos netos asignados constituyen un patrón del flujo
óptimo).
Consiste en encontrar la ruta más corta entre dos nodos dados de un grafo dirigido y valuado (con
capacidades). Se tiene dos algoritmos, por un lado el algoritmo de Dijkstra, que encuentra el
camino más corto entre el nodo origen y cada uno de los otros nodos de la red, y por otro lado el
algoritmo de Floyd, que encuentra el camino más cortó entre cualquier par de nodos de la red.
Algoritmo de Dijkstra.
Consiste en asignar una etiqueta a cada nodo de la red, la que luego de sucesivas actualizaciones,
contendrá el valor del camino de valor mínimo que une el nodo incio de la red con el nodo
considerado y el vértice precedente en dicho camino.
Para etiquetar cada uno de los nodos de la red se procede de la siguiente forma:
Paso 1: Considere todos los nodos que estén conectados con el origen por un arco, es decir a
través de un camino de longitud 1. A cada uno de ellos se le colocará una etiqueta que tiene dos
componentes a saber:
El componente de distancia de la etiqueta que se pone en cada nodo de éstos es la distancia desde
el origen. El otro componente es el nodo predecesor (el origen en este caso). Estas etiquetas serán
temporales.
Paso 2: De todos los nodos con etiqueta temporal, se elige uno cuyo componente de distancia sea
mínimo y se lo etiqueta permanente. Los empates se rompen arbitrariamente. Cuando todos los
nodos son permanentes se pasa al Paso 4.
Paso 3: Todo nodo que no tenga actualmente etiqueta permanente, estará sin etiqueta o con una
temporal. Si i es el último etiquetado permanente considere todos los vértices que estén
conectados directamente con éste a través de un camino de longitud 1. Para cada uno de ellos
calcular la suma de su distancia a i más la distancia de la etiqueta de i .
Si el nodo no está etiquetado darle una etiqueta temporal. Si el nodo en cuestión ya tiene etiqueta
temporal, cambiarla sólo si la distancia recién calculada es menor que la componente de distancia
de la etiqueta actual. Si la distancia recién calculada es igual a la que tiene la etiqueta anterior,
conservar ambas. Regresar al Paso 2.
Paso 4: Las etiquetas permanentes indican la distancia más corta desde el origen a cada nodo de la
red. También indican el nodo predecesor en la ruta más corta hacia cada nodo.
Ejemplo:
Paso 1
En este primer paso, podemos apreciar que hay tres candidatos: Los vértices b, c y d. En este caso,
hacemos el camino desde el vértice a, hasta el vértice d, ya que es el camino más corto de los tres.
Solución momentánea:
Camino: AD
Distancia:5
Paso 2
Ahora, vemos que se añade un nuevo candidato, el vértice e, y el vértice c, pero esta vez a través
del d. Pero el camino mínimo surge al añadir el vértice c.
Solución momentánea:
Camino: ADC
Distancia:9
Paso 3
En este paso no se añade ningún candidato más puesto que el último vértice es el mismo que en el
paso anterior. En este caso el camino mínimo hallado es el siguiente:
Solución momentánea:
Camino: ADCB
Distancia:11
Paso 4
Como podemos comprobar, se han añadido dos candidatos nuevos, los vértices f y g, ambos a
través del vértice b. El mínimo camino hallado en todo el grafo hasta ahora es el siguiente:
Solución momentánea:
Camino: ADCBF
Distancia:15
Paso 5
En este antepenúltimo paso, se añaden tres vértices candidatos, los vértices g, z y e. Este último ya
estaba pero en esta ocasión aparece a través del vértice f. En este caso el camino mínimo, que
cambia un poco con respecto al anterior, es:
Solución momentánea:
Camino: ADCBF
Distancia:17
Paso 6
En el penúltimo paso, vuelve a aparecer otro candidato: el vértice z, pero esta vez a través del
vértice g. De todas formas, el camino mínimo vuelve a cambiar para retomar el camino que venía
siguiendo en los pasos anteriores:
Solución momentánea:
Camino: ADCBFE
Distancia:18
Paso 7
Por fin, llegamos al último paso, en el que sólo se añade un candidato, el vértice z a través del e. El
camino mínimo y final obtenido es:
Solución Final:
Camino: ADCBFEZ
Distancia:23
Otra forma. Ejemplo: Aplicar el algoritmo de Dijkstra sobre el siguiente grafo siendo el nodo
origen el 1:
1->2 -100
1 2 3 4 5 1 2 3 4 5
2 1->3->4 - 40 Nodo 4 {2, 5} {1, 3, 4}
0 30 40 0 1 3
1->3->5 - 90
1->2 -100
1->3->5 - 90 1 2 3 4 5 1 2 3 4 5
3 Nodo 2 {5} {1, 2, 3, 4}
1->3->4->5 - 90 0 55 30 40 0 4 1 3
1->3->4->2 - 55
1->3->5 - 90 1 2 3 4 5 1 2 3 4 5
4 Nodo 5 {}FIN {1, 2, 3, 4, 5}
1->3->4->5 - 90 0 55 30 40 90 0 4 1 3 3
La ruta más corta entre el nodo origen y cualquier otro nodo de la red se determina
empezando en el nodo del punto de destino deseado y retrocediendo a través de los nodos,
utilizando la información proporcionada por el vector P.
EJERCICIOS
Una persona tiene que desplazarse a diario de un pueblo 1 a otro 7. Está estudiando cual es el
trayecto más corto usando un mapa de carreteras. Las carreteras y sus distancias están
representadas en la figura siguiente: