CATEDRÁTICO:
NELSON ARCHILA LÓPEZ
INVESTIGACIÓN DE OPERACIONES
ING. IND.
SEMESTRE:”4” GRUPO:”B”
INTEGRANTES:
JOSÉ ISAACK VELÁZQUEZ MENDOZA.
GUILLERMO CRUZ MOTA.
HERNÁN CABRERA HERNÁNDEZ.
JOSÉ ALBERTO OVANDO VÁZQUEZ.
JOSÉ TOMÁS ESPEJO CRUZ.
PABLO BARRAGÁN VILLA.
REYNOL GERARDO PÉREZ DÍAZ.
SILVIA RUIZ RUIZ.
Cada origen tiene ciertos recursos (oferta) para distribuir a los destinos y cada
destino tiene cierta demanda de estos recursos que recibe de los orígenes. El
modelo de un problema de transporte hace la siguiente suposición acerca de estos
recursos (ofertas) y demandas.
EJEMPLO:
Solución:
Variables de Decisión: Xij : Unidades transportadas desde la planta i (i=1, 2) hasta
el centro de distribución j (j=1, 2, 3)
EJEMPLO:
MG Auto Company tiene plantas en Los Ángeles, Detroit y Nueva Orleáns. Sus
centros de distribución principales son Denver y Miami. Las capacidades de las
plantas durante el trimestre próximo son 1 000, 1 500, y 1 200 automóviles. Las
demandas trimestrales en los dos centros de distribución son de 2 300 y 1 400
vehículos. El costo del transporte de un automóvil por tren es de 8 centavos por
milla. El diagrama de las distancias recorridas entre las plantas y los centros de
distribución son:
Denver Miami
Los Ángeles 1 000 1 690
Detroit 1 250 1 350
Nueva Orleans 1 275 850
Esto produce en costo por automóvil a razón de 8 centavos por milla recorrida.
Produce los costos siguientes (redondeados a enteros), que representan a C ij del
modelo original:
Denver Miami
Los Ángeles 80 215
Detroit 100 108
Sujeto a:
X 11 X 12 = 1 000
X 21 X 22 = 1 500
X 31 X 32 = 1 200
X 11 X 21 X 31 = 2 300
X 12 X 22 X 32 = 1 400
Hoy contamos con programas de cómputo que nos apoyan en la solución de los
problemas que se presentan en la investigación de operaciones, sin embargo, el
algoritmo además de su importancia histórica permite tener una perspectiva del uso
de las relaciones teóricas primal-dual para llegar a un resultado práctico, de mejorar
los cálculos a mano.
Los pasos del algoritmo de transporte son exactamente iguales a los del algoritmo
simplex.
1. En el primer paso se determina una solución básica factible de inicio que nos
ayude a proseguir en el paso dos.
2. En el segundo paso se usa la condición de optimalidad del método simplex
para determinar la variable de entrada entre todas las variables básicas.
Detenerse si se satisface.
3. En el tercer paso se usa la condición de factibilidad del método simplex para
determinar la variable de salida y así obtener la nueva solución y
posteriormente regresar al paso dos.
Los pasos para solucionar un problema de programación lineal por este método son:
Paso 2. Hacer el más grande envío como pueda en la celda de la esquina noroeste.
Esta operación agotara completamente la disponibilidad de suministros en un origen
a los requerimientos de demanda en un destino.
Paso 3. Corregir los números del suministro y requerimientos para reflejar lo que va
quedando de suministro y requerimiento y regrese al paso 1.
EJEMPLO:
La empresa “químicos del caribe S.A” posee 4 depósitos de azufre que deben ser
usados para fabricar 4 tipos de productos diferentes (A, B, C, D), además por cada
litro que se haga de los productos A, B, C, y D se utilizan un litro de azufre. Se sabe
que las capacidades de cada depósito son de 100L, 120L, 80L,
95L respectivamente. La empresa tiene un pedido de 125L de la sustancia A, 50L
de la sustancia B, 130L de la sustancia C y 90L de la sustancia D.
Los costos que reaccionan la producción de cada químico con cada depósito se
presenta a continuación:
A B C D
2 3 4 6
deposito1
1 5 8 3
deposito2
8 5 1 4
deposito3
4 5 6 3
deposito4
Tabla1
Formule una solución para este problema de manera que se cumpla el pedido y se
minimice los costos:
Tabla2
Tabla4
Las unidades para nuestra nueva esquina serán 25. El procedimiento continúa como
se hizo anteriormente.
Ahora que todos los litros requeridos por la sustancia B han sido completados por
lo tanto no es necesaria esta columna. Presentaremos nuestra nueva esquina con
su respectiva unidad se muestra a continuación:
A1: 100 (se le asigna 100 litros al depósito 1 para suministrarle al químico 2).
100 0 0 0 100
deposito1
25 50 45 0 120
deposito2
0 0 80 0 80
deposito3
0 0 5 90 95
deposito4
125 50 130 90
EJEMPLO:
Clientes Almacén 1 2 3 4
1 10 0 20 11
2 12 7 9 20
3 0 14 16 18
PASO 1:
De la matriz se elige la ruta (celda) menos costosa (en caso de un empate, este se
rompe arbitrariamente) y se le asigna la mayor cantidad de unidades posible,
cantidad que se ve restringida ya sea por las restricciones de oferta o de demanda.
En este mismo paso se procede a ajustar la oferta y demanda de la fila y columna
afectada, restándole la cantidad asignada a la celda.
PASO 2:
En este paso se procede a eliminar la fila o destino cuya oferta o demanda sea 0
después del "Paso 1", si dado el caso ambas son cero arbitrariamente se elige cual
eliminar y la restante se deja con demanda u oferta cero (0) según sea el caso.
PASO 3:
Una vez en este paso existen dos posibilidades, la primera que quede un solo
renglón o columna, si este es el caso se ha llegado al final el método, "detenerse".
La segunda es que quede más de un renglón o columna, si este es el caso iniciar
nuevamente el "Paso 1".
EJEMPLO:
Los costos asociados al envío de suministro energético por cada millón de KW entre
cada planta y cada ciudad son los registrados en la siguiente tabla.
Formule un modelo de programación lineal que permita satisfacer las necesidades
de todas las ciudades al tiempo que minimice los costos asociados al transporte.
Una vez finalizado el cuadro anterior nos daremos cuenta que solo quedará una fila,
por ende asignamos las unidades y se ha terminado el método.
El cuadro de las asignaciones (que debemos desarrollarlo paralelamente) queda
así:
Planta 1 5 2 7 3
Planta 2 3 6 6 1
Planta 3 6 1 2 4
Planta 4 4 3 6 6
Planta 1 5 2 7 3 80
Planta 2 3 6 6 1 30
Planta 3 6 1 2 4 60
Planta 4 4 3 6 6 45
Demanda 70 40 70 35
PASO 1
Elegimos la celda menos costosa y se le asigna la mayor cantidad de unidades
posible, cantidad que se ve restringida ya sea por las restricciones de oferta o de
demanda.
Maicao Riohacha Uribia Manaure Oferta
Planta 1 5 2 7 3 80
Planta 2 3 6 6 1 30
Planta 3 6 1 2 4 60
Planta 4 4 3 6 6 45
Demanda 70 40 70 35
En este caso se presenta un empate, este se rompe de forma arbitraria, así que se
le asigna a cualquiera la mayor cantidad posible.
Maicao Riohacha Uribia Manaure Oferta
Planta 1 5 2 7 3 80
Planta 2 3 6 6 1 30
Planta 3 6 2 4 60 (20)
(40) 1
Planta 4 4 3 6 6 45
Demanda 70 40 70 35
En este mismo paso se procede a ajustar la oferta y demanda de la fila y columna
afectada, restándole la cantidad asignada a la celda.
PASO 2
Dado que se satisface totalmente la demanda de suministro energético del
municipio de Riohacha, entonces procedemos a tachar la columna correspondiente.
Maicao Riohacha Uribia Manaure Oferta
Planta 1 5 2 7 3 80
Planta 2 3 6 6 1 30
Planta 3 6 1 (40) 2 4 20
Planta 4 4 3 6 6 45
Demanda 70 40 70 35
Planta 1 5 2 7 3 80
Planta 2 3 6 6 (30)1 30
Planta 3 6 1 (40) 2 4 20
Planta 4 4 3 6 6 45
Demanda 70 40 70 35 (5)
Planta 1 5 2 7 3 80
Planta 4 4 3 6 6 45
Demanda 70 40 70 (50) 5
Planta 2 3 6 6 1 (30) 30
Planta 3 6 1 (40) 2 4 20
Planta 4 4 3 6 6 45
Demanda 70 40 70 5
Planta 1 5 2 7 3 80
Planta 2 3 6 6 1 (30) 30
Planta 2 3 6 6 1 (30) 30
Planta 4 4 3 6 6 45
Demanda 70 40 50 5
Planta 2 3 6 6 1 (30) 30
Planta 4 4 3 6 6 45
Demanda 70 40 50 5
Planta 1 5 2 7 3 (5) 75
Planta 2 3 6 6 1 (30) 30
Planta 4 4 3 6 6 45
Demanda 70 40 50 5
Planta 1 5 2 7 3 (5) 75
Planta 2 3 6 6 1 (30) 30
Planta 4 (45) 4 3 6 6 45
Demanda 70 (25) 40 50 5
Planta 1 5 2 7 3 (5) 75
Planta 2 3 6 6 1 (30) 30
Planta 4 4 (45) 3 6 6 45
Demanda 25 40 50 5
Como podemos observar, solo nos queda una fila, es decir que solamente tenemos
disponible la Planta 1, la cual está en capacidad de suministrar 75 millones de Kw
de energía, entonces procedemos a distribuirla a los dos (02) municipios restantes:
Maicao Riohacha Uribia Manaure Oferta
Planta 2 3 6 6 1 (30) 30
Planta 4 4 (45) 3 6 6 45
Demanda 25 40 50 5
Planta 2 30 30
Planta 3 40 20 60
Planta 4 45 45
Demanda 70 40 70 35
Para realizar el análisis de costos asociado con esta distribución, procedemos a
darle valor a cada una de las asignaciones, teniendo en cuenta la tabla de costos
al inicio del ejercicio:
Variable de decisión Actividad Costo
de la x
Contribución
Variable Unidad
Total
X1,1 25 5 125
50 7 350
X1,3
5 3 15
X1,4
30 1 30
X2,4
40 1 40
X3,2
20 2 40
X3,3
45 4 180
X4,1
TOTAL 780
INTERPRETACIÓN GENERAL
La empresa Electri-Guajira realizará el suministro energético desde las cuatro
plantas de generación hasta los cuatro municipios a un costo mínimo total de 780
pesos.
ALGORITMO DE VOGEL
- Si queda sin tachar una fila o columna con oferta o demanda positiva, determine
las variables básicas en la fila o columna con el método de costos mínimos, detenerse.
- Si todas las filas y columnas que no se tacharon tienen cero oferta y demanda,
determine las variables básicas cero por el método del costo mínimo, detenerse.
- Si no se presenta ninguno de los casos anteriores vuelva al paso 1 hasta que las
ofertas y las demandas se hayan agotado.
EJEMPLO:
EJEMPLO:
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.
Operario 10 7 9
1
Operario 7 5 8
2
Operario 9 8 10
3
Operario 8 9 7
4
Operario
10 7 9 0
1
Operario 7 5 8 0
2
Operario 9 8 10 0
3
Operario 8 9 7 0
4
Restricciones:
Como cada operario sólo puede estar asignado a una máquina....
X11 + X12 + X13 + X14 = 1X21 + X22 + X23 + X24 = 1X31 + X32 + X33 + X34 =
1X41 + X42 + X43 + X44 = 1
Y como cada máquina solo puede tener un operario asignado...
X11 + X21 + X31 + X41 = 1X12 + X22 + X32 + X42 = 1X13 + X23 + X33 + X43 =
1X14 + 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.
Teorema fundamental de la asignación:
Si a todos los elementos de una fila o de una columna de una matriz de rendimientos
se le suma o se le resta una cantidad constante la asignación optima no varía.
Algoritmo húngaro:
El algoritmo Húngaro está destinado para minimizar si tenemos que maximizar
tendremos previamente que darle la vuelta a la matriz restándole el mayor elemento
de toda la matriz a cada uno de los elementos de la misma de manera que el
elemento que era más pequeño pasara a ser el más grande y a la inversa.
El Algoritmo Húngaro se debe a D. König y E. E Egervóry.
Cuando hay que pasar de maximizar a minimizar en lugar de operar con el mayor
de toda la matriz podemos ir tomando el mayor de cada fila o columna e ir restándole
todos los elementos de esa fila o columna con lo cual conseguiremos de camino
obtener por lo menos un cero como mínimo en cada fila o columna. Si en alguna
columna no hubiera ceros le quitamos el mayor a la columna.
El método Húngaro:
Este algoritmo se usa para resolver problemas de minimización, ya que es más
eficaz que el empleado para resolver el problema del transporte por el alto grado de
degeneración que pueden presentar los problemas de asignación. Las fases para
la aplicación del método Húngaro son:
Paso 1: Encontrar primero el elemento más pequeño en cada fila de la matriz de costos
m*m; se debe construir una nueva matriz al restar de cada costo el costo mínimo de
cada fila; encontrar para esta nueva matriz, el costo mínimo en cada columna. A
continuación se debe construir una nueva matriz (denominada matriz de costos
reducidos) al restar de cada costo el costo mínimo de su columna. Paso 2: (En algunos
pocos textos este paso se atribuye a Flood). Consiste en trazar el número mínimo de
líneas (horizontales o verticales o ambas únicamente de esas maneras) que se requieren
para cubrir todos los ceros en la matriz de costos reducidos; si se necesitan m líneas
para cubrir todos los ceros, se tiene una solución óptima entre los ceros cubiertos de la
matriz. Si se requieren menos de m líneas para cubrir todos los ceros, se debe continuar
con el paso 3. El número de líneas para cubrir los ceros es igual a la cantidad de
asignaciones que hasta ese momento se pueden realizar.
Paso 3: Encontrar el menor elemento diferente de cero (llamado k) en la matriz de
costos reducidos, que no está cubierto por las líneas dibujadas en el paso 2; a
continuación se debe restar k de cada elemento no cubierto de la matriz de costos
reducidos y sumar k a cada elemento de la matriz de costos reducidos cubierto por
dos líneas (intersecciones). Por último se debe regresar al paso 2.
Notas:
1. Para resolver un problema de asignación en el cual la meta es maximizar la
función objetivo, se debe multiplicar la matriz de ganancias por menos uno (-1) y
resolver el problema como uno de minimización.
2. Si el número de filas y de columnas en la matriz de costos son diferentes, el
problema de asignación está desbalanceado. El método Húngaro puede
proporcionar una solución incorrecta si el problema no está balanceado; debido a lo
anterior, se debe balancear primero cualquier problema de asignación (añadiendo
filas o columnas ficticias) antes de resolverlo mediante el método Húngaro.
3. En un problema grande, puede resultar difícil obtener el mínimo número de
filas necesarias para cubrir todos los ceros en la matriz de costos actual. Se puede
demostrar que si se necesitan j líneas para cubrir todos los ceros, entonces se
pueden asignar solamente j trabajos a un costo cero en la matriz actual; esto explica
porqué termina cuando se necesitan m líneas.
Mediante el siguiente ejemplo vamos a ilustrar la manera de aplicar el método Húngaro
a la solución de un problema de asignación de minimización:
Una factoría tiene cuatro operarios, los cuales deben ser asignados al manejo de
cuatro máquinas; las horas requeridas para cada trabajador en cada máquina se
dan en la tabla adjunta; el tiempo a laborar por cada operario en cada una de las
máquinas se pretende que sea mínimo, para lo cual se busca la asignación óptima
posible.
OPERARIOS MAQUINAS
1 2 3 4
Antonio 10 14 16 13
Bernardo 12 13 15 12
Carlos 9 12 12 11
Diego 14 13 18 16
1 2 3 4
A 10 14 16 13
B 12 13 15 12
C 9 12 12 11
D 14 16 18 16
1 2 3 4
A 0 3 6 3
B 0 1 3 0
C 0 3 3 2
D 0 2 4 2
En la matriz
anterior trazamos
el menor número
de líneas (3), de
manera tal que
cubran todos los
ceros (Método de
Flood):
1 2 3 4
A 0 3 3 3
B 0 0 0 0
C 0 2 0 2
D 0 1 1 2
En la matriz
anterior trazamos el menor
número
de líneas (3), de
1 2 3 4
A 0 2 3 2
B 1 0 1 0
C 0 1 0 1
D 0 0 1 1
Solución Optima Unica:A-1, B-4, C-3 y D-2.Lo anterior quiere decir que Antonio va
a laborar en la máquina 1 (10 horas), Bernardo en la máquina 4 (12 horas), Carlos
va a trabajar en la máquina 3 (12 horas) y Diego en la máquina 2 (16 horas). La
combinación óptima de los recursos para este problema de minimización de
asignación es de 50 horas, resultantes de adicionar las asignadas a cada uno de
los operarios en cada una de las máquinas. Dicho valor corresponde al valor óptimo
de la función objetivo.
EJEMPLO:
ORIGEN 1 2 3 OFERTA
DEMANDA 1 1 1
4.7 METODO HUNGARO
EJEMPLO:
PASO 2
Construimos una nueva matriz con las diferencias entre los valores de la matriz original
y el elemento menor de la fila a la cual corresponde.
PASO 3
Ahora observamos cómo se hace necesario trazar tres líneas (la misma cantidad
de filas o columnas de la matriz) por ende se ha llegado al tabulado final, en el que
por simple observación se determina las asignaciones óptimas.
Por ende la asignación que representa el menor costo para la jornada de
mantenimiento preventivo determina que el Equipo 1 realice el mantenimiento de la
Máquina 1, el Equipo 2 realice el mantenimiento de la Máquina 3 y el Equipo 3
realice el mantenimiento de la Máquina 2, jornada que tendrá un costo total de 17
unidades monetarias.
EJEMPLO:
En este caso este valor es 15, por lo cual procederemos a realizar la siguiente operación
con cada uno de los valores:
Restaremos a 15, el valor de cada una de las celdas y este valor quedará en cada una
de las celdas correspondientes.
A partir de este tabulado ya podemos aplicar el algoritmo del método húngaro como se
aplicaría en un caso e minimización (normalmente).
Ahora efectuamos este mismo paso, pero esta vez con las columnas. Elegimos el
menor de los valores de cada columna y se lo restamos a cada una de las celdas
de la columna correspondiente.
Ahora procedemos a cubrir la mayor cantidad de ceros, con la menor cantidad de
líneas, si el número de líneas que empleemos es igual al grado de la matriz (en este
caso matriz grado 4, 4x4) habremos llegado al final del ejercicio.
Las asignaciones, como es lógico deberán iniciarse por el equipo al cual solo
corresponda un terreno, en este caso al Equipo 3 le corresponde el Terreno A. De
esta manera al Equipo 1 le corresponde el Terreno D. Mientras tanto el Equipo 2 se
encargará de la cosecha en los terrenos B y C. Según el tabulado del problema
(recordemos que es de maximización), la cantidad de sacos (expresada en cientos
de sacos) será así:
4.8 USO DE SOFTWARE (WIN, QSB, TORA, DS, FOR WINDOWS, LINGO, LINDO
Y OTROS.
El software TORA de optimización es un programa basado en Windows® que tiene
por objeto usarse con muchas de las técnicas presentadas en el libro Investigación
de Operaciones de TAHA . TORA es una aplicación muy simple, con una interfaz
gráfica de baja calidad. Una de las ventajas de TORA es que puede utilizarse en
procesadores de 32 y 64 bits, hoy por hoy su principal desventaja es que deberá
ajustarse la configuración de pantalla para adecuarse a sus ajustes de
presentación de 800 x 600 y 1024 x 768 pixeles. Se recomienda el segundo ajuste,
porque produce una distribución más proporcionada de la pantalla.
EJEMPLO:
Un herrero con 80 Kg. de acero y 120 Kg. de aluminio quiere hacer bicicletas de
paseo y de montaña que quiere vender, respectivamente a 20.000 y 15.000 pesos
cada una para sacar el máximo beneficio. Para la de paseo empleará 1 Kg. De acero
y 3 Kg. de aluminio, y para la de montaña 2 Kg. de ambos metales. ¿Cuántas
bicicletas de paseo y de montaña deberá fabricar para maximizar las utilidades?
Disponibilidad 80 kg 120 kg
Declaración de variables
Restricciones de capacidad
Aluminio: x
+ 2y <= 80
Acero:
3x + 2y <= 120
Función Objetivo