Está en la página 1de 39

UNIVERSIDAD NACIONAL MAYOR DE

SAN MARCOS
(Universidad del Perú, Decana de América)
FACULTAD DE INGENIERÍA INDUSTRIAL
Investigación Operativa II

PROBLEMAS RESUELTOS DE
REDES Y APLICACIÓN EN
SOFTWARE LINGO Y STORM

Ing. Mayta Huatuco, Rosmeri

ALUMNOS:
Berrocal Jumpa, Ángel
Yucra Mendoza, Julio
Rosales Fernández, Alexander
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

CONTENIDO
I. Camino Más Corto....................................................................................................1
1.1. Problema 1..........................................................................................................1
1.1.1. Resolviendo con lingo 11.0.........................................................................3
1.1.2. Resolviendo a través de STORM:...............................................................4
1.2. Problema 2..........................................................................................................5
1.2.1. Resolviendo con lingo 11.0.........................................................................7
1.2.2. Resolviendo a través de STORM:...............................................................8
II. Árbol de Expansión Mínima.....................................................................................9
2.1. Problema 1..........................................................................................................9
2.1.1. Resolviendo a través de WINQSB:...........................................................10
2.1.2. Resolviendo con lingo 11.0.......................................................................11
2.2. Problema 2........................................................................................................15
2.2.1. Resolviendo a través de WINQSB:...........................................................15
2.2.2. Resolviendo con lingo 11.0.......................................................................16
III. Flujo MÁXIMO....................................................................................................18
3.1. Problema 1........................................................................................................18
3.1.1. Resolviendo a través de WINQSB:...........................................................19
3.1.2. Resolviendo con lingo 11.0.......................................................................20
3.2. Problema 2........................................................................................................23
3.2.1. Resolviendo a través de WINQSB:...........................................................25
3.2.2. Resolviendo con lingo 11.0.......................................................................27
IV. Flujo MÁXIMO a Costo MÍNIMO......................................................................29
4.1. Problema 1........................................................................................................29
4.1.1. Resolviendo a través de STORM:.............................................................29
4.1.2. Resolviendo con lingo 11.0.......................................................................30
4.2. Problema 2........................................................................................................32
4.2.1. Resolviendo a través de STORM:.............................................................32
4.2.2. Resolviendo con lingo 11.0.......................................................................33

1
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

I. CAMINO MÁS CORTO.


I.1. Problema 1
Libro: Investigación de Operaciones (7ma. Edición)
Autor: Hamdy A. Taha
Página: 224 (Problema 4 - Planeación de la producción)

DirectCo vende un artículo cuya demanda en los 4 meses venideros será 100, 140,
210 y 180 unidades, respectivamente. La empresa puede almacenar sólo la cantidad
justa para abastecer la demanda de cada mes, o puede almacenar más y cumplir con
la demanda de dos o más meses consecutivos. En el segundo caso se carga un costo
de retención de $1.20 mensual por unidad en exceso de existencia. DirectCo estima
que los precios unitarios de compra durante los 4 meses siguientes serán de 15, 12,
10 y 14 dólares respectivamente. Se incurre en un costo de preparación de $200
cada vez que se coloca un pedido. La empresa desea desarrollar un plan de compras
que minimice los costos totales de los pedidos, las compras y la retención del
artículo en el almacén. Formule el problema como un modelo de ruta más corta y
encuentre la solución óptima.
Solución:
Resumen:

Mes P. U. compra($) Demanda

1 15 100
2 12 140
3 10 210
4 14 180

Costo de almacenaje = $ 1.20/mensual


Costo de preparación = $ 200/pedido

Cij = Costo de compra + Costo de preparación + Costo de almacenaje


C12 = 15(100)+200 =1700
C13 = 15(100+140) + 200 +1.20 (140) =3968
C14 = 15(100+140+210) + 200 +1.20 (140+210) =7370
C15 = 15(100+140+210+180) + 200 +1.20 (140+210+180) = 10286

C23 = 12(140) +200 = 1880


C24 = 12(140+210) + 200 +1.20 (210) = 4652
C25 = 12(140+210+180) + 200 +1.20 (210+180) = 7028

C34 = 10(210) + 200 = 2300


C35 = 10(210+180) + 200 +1.20 (180) = 4316
C45 = 14(180) + 200 = 2720

2
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

Entonces, formulando el problema a través de una red:

10286

7370
3968

1 1700 2 1880 3 2300 4 2720 5

4652
7028 4316
Resolviendo manualmente (Algoritmo del Etiquetado)
m1 = 0
m2 = min {m1+d12} = min {0+1700} = 1700
m3 = min {m1+d13, m2+d23} = min {0+3968, 1700+1880} = 3580
m4 = min {m1+d14, m2+d24, m3+d34} = min {0+7370, 1700+4652, 3580+2300} =
5880
m5 = min {m1+d15, m2+d25, m3+d35, m4+d45}
= min {0+10286, 1700+7028, 3580+4316, 5880+2720} = 7896
De lo analizado anteriormente, obtenemos que el camino más corto será:

1–2–3–5

1 1700 2 1880 3 4 5

4316

I.1.1. Resolviendo con lingo 11.0

3
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

SETS:
nodo/1..5/:y;
arcos(nodo, nodo)/1,2 1,3 1,4 1,5 2,3 2,4 2,5 3,4 3,5
4,5/:costo;
ENDSETS

DATA:
costo=1700,3968,7370,10286,1880,4652,7028,2300,4316,2720;
ENDDATA

max=y(5)-y(1);
@for(arcos(i,j):y(j)<=y(i)+costo(i,j));

SALIDA EN LINGO
Global optimal solution found.
Objective value: 7896.000
Infeasibilities: 0.000000
Total solver iterations: 7

Variable Value Reduced Cost


Y( 1) 0.000000 0.000000
Y( 2) 1700.000 0.000000
Y( 3) 3580.000 0.000000
Y( 4) 5176.000 0.000000
Y( 5) 7896.000 0.000000
COSTO( 1, 2) 1700.000 0.000000
COSTO( 1, 3) 3968.000 0.000000
COSTO( 1, 4) 7370.000 0.000000
COSTO( 1, 5) 10286.00 0.000000
COSTO( 2, 3) 1880.000 0.000000
COSTO( 2, 4) 4652.000 0.000000
COSTO( 2, 5) 7028.000 0.000000
COSTO( 3, 4) 2300.000 0.000000
COSTO( 3, 5) 4316.000 0.000000
COSTO( 4, 5) 2720.000 0.000000

Row Slack or Surplus Dual Price


1 7896.000 1.000000
2 0.000000 1.000000
3 388.0000 0.000000
4 2194.000 0.000000
5 2390.000 0.000000
6 0.000000 1.000000
7 1176.000 0.000000
8 832.0000 0.000000
9 704.0000 0.000000
10 0.000000 1.000000
11 0.000000 0.000000

I.1.2. Resolviendo a través de STORM:

4
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

I.2. Problema 2
Libro: Investigación de Operaciones (4ta. Edición)
Autor: Wayne L. Winston

5
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

Página: 419 (Problema 6)


Cuesta $40 comprar un teléfono de la tienda de departamentos. Suponga que
puedo mantener el teléfono durante a lo sumo 5 años y que el costo de
mantenimiento estimado cada año de operación es como sigue: año 1, $20; año
2, $30; año 3, $40; año 4, $60; año 5, $70. Acabo de comprar un nuevo
teléfono. Suponiendo que un teléfono no tiene valor de salvamento, determine
como minimizar el costo total de comprar y operar el teléfono durante los
siguientes 6 años.

190
260

190
130 130
90
90 90

1 2 3 4 5 6 7
60 60 60 60 60 60
90
130 90

190

260
130
Solución
C12 = 40 +20 = 60
C13 = 40 + 20 + 30 = 90
C14 = 40 + 20 + 30 + 40 = 130
C15 = 40 + 20 + 30 + 40 + 60 = 190
C16 = 40 + 20 + 30 + 40 + 60 + 70 = 260

C23 = 40 +20 = 60
C24 = 40 + 20 + 30 = 90
C25 = 40 + 20 + 30 + 40 = 130
C26 = 40 + 20 + 30 + 40 + 60 = 190
C27 = 40 + 20 + 30 + 40 + 60 + 70 = 260

C34 = 40 +20 = 60
C35 = 40 + 20 + 30 = 90
C36 = 40 + 20 + 30 + 40 = 130
C37 = 40 + 20 + 30 + 40 + 60 = 190

C45 = 40 +20 = 60
C46 = 40 + 20 + 30 = 90
C47 = 40 + 20 + 30 + 40 = 130
C56 = 40 +20 = 60
C57 = 40 + 20 + 30 = 90

C67 = 40 +20 = 60

Resolviendo manualmente (Algoritmo del Etiquetado)


m1 = 0

6
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

m2 = min {m1+d12} = min {0+60} =60


m3 = min {m1+d13, m2+d23} = min {0+90, 60+60} = 90
m4 = min {m1+d14, m2+d24, m3+d34} = min {0+130, 60+90, 90+60} = 130
m5 = min {m1+d15, m2+d25, m3+d35, m4+d45}
= min {0+190, 60+130, 90+90, 130+60} = 180
M6 = min {m1+d16, m2+d26, m3+d36, m4+d46, m5+d56}
= min {0+260, 60+190, 90+130, 130+90, 180+60} = 220
M7 = min { m2+d27, m3+d37, m4+d47, m5+d57, m6+d67}
= min {60+260, 90+190, 130+130, 180+90, 220+60} = 260
De lo analizado anteriormente, obtenemos que el camino más corto será:

1–3–5–7

190
260

190
130 130
90
90 90

1 2 3 4 5 6 7
60 60 60 60 60 60
90
130 90

190

260
130
I.2.1. Resolviendo con lingo 11.0
SETS:
nodo/1..7/:y;
arcos(nodo, nodo)/1,2 1,3 1,4 1,5 1,6 2,3 2,4 2,5 2,6 2,7
3,4 3,5 3,6 3,7 4,5 4,6 4,7 5,6 5,7 6,7/:costo;
ENDSETS

DATA:
costo=60,90,130,190,260,60,90,130,190,260,60,90,130,190,60,
90,130,60,90,60;
ENDDATA

max=y(7)-y(1);
@for(arcos(i,j):y(j)<=y(i)+costo(i,j));

SALIDA EN LINGO

7
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

Global optimal solution found.


Objective value: 260.0000
Infeasibilities: 0.000000
Total solver iterations: 8

Variable Value Reduced Cost


Y( 1) 0.000000 0.000000
Y( 2) 40.00000 0.000000
Y( 3) 80.00000 0.000000
Y( 4) 130.0000 0.000000
Y( 5) 170.0000 0.000000
Y( 6) 200.0000 0.000000
Y( 7) 260.0000 0.000000
COSTO( 1, 2) 60.00000 0.000000
COSTO( 1, 3) 90.00000 0.000000
COSTO( 1, 4) 130.0000 0.000000
COSTO( 1, 5) 190.0000 0.000000
COSTO( 1, 6) 260.0000 0.000000
COSTO( 2, 3) 60.00000 0.000000
COSTO( 2, 4) 90.00000 0.000000
COSTO( 2, 5) 130.0000 0.000000
COSTO( 2, 6) 190.0000 0.000000
COSTO( 2, 7) 260.0000 0.000000
COSTO( 3, 4) 60.00000 0.000000
COSTO( 3, 5) 90.00000 0.000000
COSTO( 3, 6) 130.0000 0.000000
COSTO( 3, 7) 190.0000 0.000000
COSTO( 4, 5) 60.00000 0.000000
COSTO( 4, 6) 90.00000 0.000000
COSTO( 4, 7) 130.0000 0.000000
COSTO( 5, 6) 60.00000 0.000000
COSTO( 5, 7) 90.00000 0.000000
COSTO( 6, 7) 60.00000 0.000000

Row Slack or Surplus Dual Price


1 260.0000 1.000000
2 20.00000 0.000000
3 10.00000 0.000000
4 0.000000 1.000000
5 20.00000 0.000000
6 60.00000 0.000000
7 20.00000 0.000000
8 0.000000 0.000000
9 0.000000 0.000000
10 30.00000 0.000000
11 40.00000 0.000000
12 10.00000 0.000000
13 0.000000 0.000000
14 10.00000 0.000000
15 10.00000 0.000000
16 20.00000 0.000000
17 20.00000 0.000000
18 0.000000 1.000000
19 30.00000 0.000000
20 0.000000 0.000000
21 0.000000 0.000000

8
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

I.2.2. Resolviendo a través de STORM:

II. ÁRBOL DE EXPANSIÓN MÍNIMA.


II.1. Problema 1.
Libro: Investigación de Operaciones (7ma. Edición)
Autor: Hamdy A. Taha
Página: 218 (Problema 3)

En el transporte internacional, los camiones remolques cargados se mueven entre


las terminales de ferrocarril colocando la caja en carros especiales (“camas
bajas”). La figura 6.7 muestra la ubicación de los ferrocarriles en estados unidos,
y las vías actuales de FC. El objetivo es decidir cuales vías se debe revitalizar
para manejar el tráfico internacional. En especial, se debe unir la terminal de Los
Ángeles (AN) en forma directa con Chicago (CH) para dar cabida al intenso
9
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

tráfico esperado. Por otra parte, todas las terminales restantes se pueden enlazar,
en forma directa o indirecta, de tal modo que se minimice la longitud total (en
millas) de las vías seleccionadas. Determine los segmentos de vías de
ferrocarriles que se deben incluir en programa de revitalización.

PLANTEAMIENTO DEL PROBLEMA:

SE LA DE DA CH NY DC
SE - 1100 1300
LA - 1100 1400 2000 2600
DE - 780
DA - 1300
CH -
NY - 200
DC -

II.1.1. Resolviendo a través de WINQSB:


Se selección la opción Árbol de expansión mínima (Minimal Spanning
Tree), Colocando el total de nodos, 7.

1
0
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

Se colocan los datos en la matriz.

En esta pantalla se muestra el resultado, se muestran que nodos se conectan y el


resultado final 6480, que viene a ser la cantidad de vías de ferrocarril que se
debe emplear.

II.1.2. Resolviendo con lingo 11.0.


SETS:
NODO/1..7/: U;
RED(NODO, NODO): COSTO,X;
ENDSETS
1
1
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

DATA:
COSTO=0 0 1300 0 2000 0 0
0 0 0 0 2000 0 0
1300 0 0 780 1000 0 0
0 0 780 0 900 0 1300
2000 2000 1000 900 0 0 0
0 0 0 0 0 0 290
0 0 0 1300 0 200 0;
ENDDATA

N = @SIZE(NODO);

MIN = @SUM(RED: COSTO*X);

@FOR(NODO(J)|J#GT#1:
@SUM(NODO(I)| I#NE# J:X(I,J))=1;
@FOR(NODO(I)| I#GT# 1 #AND# I #NE# J:
U(J)>=U(I)+X(I,J)-(N-2)*(1-X(I,J))+(N-3)*X(J,I);
);
);

@SUM(NODO(J)|J#GT#1 : X(1,J))>=1;

@FOR(RED: @BIN(X));

@FOR(NODO(J)|J#GT#1:
@BND(1,U(J),9999999);
U(J)<=N-1-(N-2)*X(1,J);
);

SALIDA EN LINGO
Global optimal solution found.
Objective value: 6480.0000
Extended solver steps: 0
Total solver iterations: 3
Variable Value Reduced Cost
N 7.000000 0.000000
U( 1) 0.000000 0.000000
U( 2) 4.000000 0.000000
U( 3) 3.000000 0.000000
U( 4) 1.000000 0.000000
U( 5) 2.000000 0.000000
U( 6) 3.000000 0.000000
U( 7) 1.000000 0.000000
COSTO( 1, 1) 0.000000 0.000000
COSTO( 1, 2) 1100.000 0.000000
COSTO( 1, 3) 1300.000 0.000000

1
2
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

COSTO( 1, 4) 0.000000 0.000000


COSTO( 1, 5) 0.000000 0.000000
COSTO( 1, 6) 0.000000 0.000000
COSTO( 1, 7) 0.000000 0.000000
COSTO( 2, 1) 1100.000 0.000000
COSTO( 2, 2) 0.000000 0.000000
COSTO( 2, 3) 1100.000 0.000000
COSTO( 2, 4) 1400.000 0.000000
COSTO( 2, 5) 2000.000 0.000000
COSTO( 2, 6) 0.000000 0.000000
COSTO( 2, 7) 2600.000 0.000000
COSTO( 3, 1) 1300.000 0.000000
COSTO( 3, 2) 1100.000 0.000000
COSTO( 3, 3) 0.000000 0.000000
COSTO( 3, 4) 780.0000 0.000000
COSTO( 3, 5) 0.000000 0.000000
COSTO( 3, 6) 0.000000 0.000000
COSTO( 3, 7) 0.000000 0.000000
COSTO( 4, 1) 0.000000 0.000000
COSTO( 4, 2) 1400.000 0.000000
COSTO( 4, 3) 780.0000 0.000000
COSTO( 4, 4) 0.000000 0.000000
COSTO( 4, 5) 0.000000 0.000000
COSTO( 4, 6) 0.000000 0.000000
COSTO( 4, 7) 1300.000 0.000000
COSTO( 5, 1) 0.000000 0.000000
COSTO( 5, 2) 2000.000 0.000000
COSTO( 5, 3) 0.000000 0.000000
COSTO( 5, 4) 0.000000 0.000000
COSTO( 5, 5) 0.000000 0.000000
COSTO( 5, 6) 0.000000 0.000000
COSTO( 5, 7) 0.000000 0.000000
COSTO( 6, 1) 0.000000 0.000000
COSTO( 6, 2) 0.000000 0.000000
COSTO( 6, 3) 0.000000 0.000000
COSTO( 6, 4) 0.000000 0.000000
COSTO( 6, 5) 0.000000 0.000000
COSTO( 6, 6) 0.000000 0.000000
COSTO( 6, 7) 200.0000 0.000000
COSTO( 7, 1) 0.000000 0.000000
COSTO( 7, 2) 2600.000 0.000000
COSTO( 7, 3) 0.000000 0.000000
COSTO( 7, 4) 1300.000 0.000000
COSTO( 7, 5) 0.000000 0.000000
COSTO( 7, 6) 200.0000 0.000000
COSTO( 7, 7) 0.000000 0.000000
X( 1, 1) 0.000000 0.000000
X( 1, 2) 0.000000 1100.000
X( 1, 3) 0.000000 1300.000

1
3
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

X( 1, 4) 1.000000 0.000000
X( 1, 5) 0.000000 0.000000
X( 1, 6) 0.000000 0.000000
X( 1, 7) 1.000000 0.000000
X( 2, 1) 0.000000 1100.000
X( 2, 2) 0.000000 0.000000
X( 2, 3) 0.000000 1100.000
X( 2, 4) 0.000000 1400.000
X( 2, 5) 0.000000 2000.000
X( 2, 6) 0.000000 0.000000
X( 2, 7) 0.000000 2600.000
X( 3, 1) 0.000000 1300.000
X( 3, 2) 0.000000 1100.000
X( 3, 3) 0.000000 0.000000
X( 3, 4) 0.000000 780.0000
X( 3, 5) 0.000000 0.000000
X( 3, 6) 0.000000 0.000000
X( 3, 7) 0.000000 0.000000
X( 4, 1) 0.000000 0.000000
X( 4, 2) 0.000000 1400.000
X( 4, 3) 0.000000 780.0000
X( 4, 4) 0.000000 0.000000
X( 4, 5) 1.000000 0.000000
X( 4, 6) 0.000000 0.000000
X( 4, 7) 0.000000 1300.000
X( 5, 1) 0.000000 0.000000
X( 5, 2) 0.000000 2000.000
X( 5, 3) 1.000000 0.000000
X( 5, 4) 0.000000 0.000000
X( 5, 5) 0.000000 0.000000
X( 5, 6) 1.000000 0.000000
X( 5, 7) 0.000000 0.000000
X( 6, 1) 0.000000 0.000000
X( 6, 2) 1.000000 0.000000
X( 6, 3) 0.000000 0.000000
X( 6, 4) 0.000000 0.000000
X( 6, 5) 0.000000 0.000000
X( 6, 6) 0.000000 0.000000
X( 6, 7) 0.000000 200.0000
X( 7, 1) 0.000000 0.000000
X( 7, 2) 0.000000 2600.000
X( 7, 3) 0.000000 0.000000
X( 7, 4) 0.000000 1300.000
X( 7, 5) 0.000000 0.000000
X( 7, 6) 0.000000 200.0000
X( 7, 7) 0.000000 0.000000

Row Slack or Surplus Dual Price


1 0.000000 0.000000

1
4
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

2 0.000000 -1.000000
3 0.000000 0.000000
4 6.000000 0.000000
5 8.000000 0.000000
6 7.000000 0.000000
7 0.000000 0.000000
8 8.000000 0.000000
9 0.000000 0.000000
10 4.000000 0.000000
11 7.000000 0.000000
12 0.000000 0.000000
13 5.000000 0.000000
14 7.000000 0.000000
15 0.000000 0.000000
16 2.000000 0.000000
17 3.000000 0.000000
18 0.000000 0.000000
19 3.000000 0.000000
20 5.000000 0.000000
21 0.000000 0.000000
22 3.000000 0.000000
23 0.000000 0.000000
24 0.000000 0.000000
25 0.000000 0.000000
26 6.000000 0.000000
27 0.000000 0.000000
28 0.000000 0.000000
29 5.000000 0.000000
30 7.000000 0.000000
31 0.000000 0.000000
32 7.000000 0.000000
33 0.000000 0.000000
34 2.000000 0.000000
35 3.000000 0.000000
36 5.000000 0.000000
37 4.000000 0.000000
38 3.000000 0.000000
39 1.000000 0.000000
40 2.000000 0.000000
41 3.000000 0.000000
42 0.000000 0.000000
43 4.000000 0.000000
44 3.000000 0.000000
45 0.000000 0.000000

1
5
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

II.2. Problema 2.
Practica: Practica Calificada de Investigación Operativa II
Autor: profesores del curso

Una reserve de gas natural cuenta con 9 puestos de vigilancia unidos entre si
por un sistema de caminos que une los puestos de vigilancia se da la siguiente
tabla.

A B C D E F G H I
A 1 3 5 1
5 3
B 1 7 8 5 7 6
5
C 3 7 1 1
4 5
D 5 8 1 4 9 8 1
4 0
E 4 1 4
7
F 9 1 7 6 4
7
G 1 1 4 7 2 7
3 5
H 8 6 2
I 6 1 4 7
0

Si se desea diseñar una red de telefonía fija que conecte todas las estaciones
al mínimo costo total. Considere que el tendido de los cables telefónicos sigue
la ruta de los caminos. (Nota el costo de 1 kilómetro de cable telefónico
incluido mano de obra es de $ 3500)

II.2.1. Resolviendo a través de WINQSB:

1
6
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

Costo total =37 km x 3500 $/km=$ 129500

II.2.2. Resolviendo con lingo 11.0


SETS
NODO/1..9/: U;
RED(NODO, NODO): DISTANCIA,X;
ENDSETS
DATA:
DISTANCIA=0 15 3 5 0 0 13 0 0
15 0 7 8 5 7 0 0 6
3 7 0 14 0 0 15 0 0
5 8 14 0 4 9 0 8 10
0 5 0 4 0 17 4 0 0
0 7 0 9 17 0 7 6 4
13 0 15 0 4 7 0 2 7
000806200
0 6 0 10 0 4 7 0 0;
ENDDATA
N = @SIZE(NODO);
MIN = @SUM(RED: DISTANCIA*X);
@FOR(NODO(J)|J#GT#1:
@SUM(NODO(I)| I#NE# J:X(I,J))=1;
@FOR(NODO(I)| I#GT# 1 #AND# I #NE# J:
U(J)>=U(I)+X(I,J)-(N-2)*(1-X(I,J))+(N-3)*X(J,I);
);
);
@SUM(NODO(J)|J#GT#1 : X(1,J))>=1;
@FOR(RED: @BIN(X));
@FOR(NODO(J)|J#GT#1:
@BND(1,U(J),9999999);
U(J)<=N-1-(N-2)*X(1,J);
);

1
7
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

SALIDA EN LINGO

Hay un error porque excedimos el número de variables

1
8
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

III.FLUJO MÁXIMO.
III.1. Problema 1.
Libro: Investigación de Operaciones (7ma. Edición)
Autor: Hamdy A. Taha
Página: 248 (Problema 7)

Un padre de familia tiene cinco hijos adolescentes y cinco tareas para asignarles.
La experiencia ha indicado que es contraproducente forzar a que los niños
acepten determinadas tareas. Teniendo eso en cuenta, les pide a sus hijos hacer
una lista de preferencias entre las cinco tareas y resulta la siguiente tabla.

Niño Tarea preferida


Rif 3,4,5
Mai 1
Ben 1, 2
Kim 1,2,5
Kem 2

EL modesto objetivo del padre es terminar todas las tareas posibles y atender al
mismo tiempo las preferencias de sus hijos. Determine la cantidad máxima de
tareas que pueden terminarse y la asignación de tareas a hijos.

PLANTEAMIENTO DEL PROBLEMA

1
9
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

HIJOS TAREAS

1 136
1
1 1
2 2 1
1
Xo 1 1 Xf
3 1
1 3
1 1
1
1 1 1
4 1 4
1 1

5 1 50

CAMINOS FLUJO
Xo-H1-T3- Xf 1
Xo-H2-T1- Xf 1
Xo-H3-T2- Xf 1
Xo-H4-T5- Xf 1
TOTAL FLUJO = 1+1+1+1= 4

Entonces el Flujo máximo está representado por 4 tareas.

III.1.1. Resolviendo a través de WINQSB:

Entrar al Winqsb, buscar la opción de Flujo Máximo y colocar el número


de nodos.

2
0
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

Colocar los datos.

2
1
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

En esta pantalla se muestra la solución.

La red es.

III.1.2. Resolviendo con lingo 11.0

SETS:
nodo/1..12/;
arco(nodo, nodo)/1,2 1,3 1,4 1,5 1,6 2,9 2,10 2,11 3,7 4,7 4,8 5,7
5,8 5,11 6,8 7,12 8,12 9,12 10,12 11,12 12,1/:cap, flujo;
ENDSETS

DATA:
cap = 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1000;
ENDDATA

2
2
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

MAX=flujo(12,1);
@for(arco(I,J):flujo(I,J)<cap(I,J));
@for(nodo(I):@sum(arco(J,I):flujo(J,I))=@sum(arco(I,J):fluj
o(I,J)));

SALIDA EN LINGO
Global optimal solution found.
Objective value: 4.000000
Infeasibilities: 0.000000
Total solver iterations: 3

Variable Value
Reduced Cost
CAP( 1, 2) 1.000000
0.000000
CAP( 1, 3) 1.000000
0.000000
CAP( 1, 4) 1.000000
0.000000
CAP( 1, 5) 1.000000
0.000000
CAP( 1, 6) 1.000000
0.000000
CAP( 2, 9) 1.000000
0.000000
CAP( 2, 10) 1.000000
0.000000
CAP( 2, 11) 1.000000
0.000000
CAP( 3, 7) 1.000000
0.000000
CAP( 4, 7) 1.000000
0.000000
CAP( 4, 8) 1.000000
0.000000
CAP( 5, 7) 1.000000
0.000000
CAP( 5, 8) 1.000000
0.000000
CAP( 5, 11) 1.000000
0.000000
CAP( 6, 8) 1.000000
0.000000
CAP( 7, 12) 1.000000
0.000000
CAP( 8, 12) 1.000000
0.000000
CAP( 9, 12) 1.000000
0.000000
CAP( 10, 12) 1.000000
0.000000
CAP( 11, 12) 1.000000
0.000000
CAP( 12, 1) 1000.000
0.000000
FLUJO( 1, 2) 1.000000
0.000000

2
3
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

FLUJO( 1, 3) 0.000000
0.000000
FLUJO( 1, 4) 1.000000
0.000000
FLUJO( 1, 5) 1.000000
0.000000
FLUJO( 1, 6) 1.000000
0.000000
FLUJO( 2, 9) 1.000000
0.000000
FLUJO( 2, 10) 0.000000
0.000000
FLUJO( 2, 11) 0.000000
0.000000
FLUJO( 3, 7) 0.000000
0.000000
FLUJO( 4, 7) 1.000000
0.000000
FLUJO( 4, 8) 0.000000
0.000000
FLUJO( 5, 7) 0.000000
1.000000
FLUJO( 5, 8) 0.000000
1.000000
FLUJO( 5, 11) 1.000000
0.000000
FLUJO( 6, 8) 1.000000
0.000000
FLUJO( 7, 12) 1.000000
0.000000
FLUJO( 8, 12) 1.000000
0.000000
FLUJO( 9, 12) 1.000000
0.000000
FLUJO( 10, 12) 0.000000
0.000000
FLUJO( 11, 12) 1.000000
0.000000
FLUJO( 12, 1) 4.000000
0.000000

Row Slack or Surplus


Dual Price
1 4.000000
1.000000
2 0.000000
1.000000
3 1.000000
0.000000
4 0.000000
0.000000
5 0.000000
1.000000
6 0.000000
0.000000
7 0.000000
0.000000
8 1.000000
0.000000

2
4
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

9 1.000000
0.000000
10 1.000000
0.000000
11 0.000000
0.000000
12 1.000000
0.000000
13 1.000000
0.000000
14 1.000000
0.000000
15 0.000000
0.000000
16 0.000000
0.000000
17 0.000000
1.000000
18 0.000000
1.000000
19 0.000000
0.000000
20 1.000000
0.000000
21 0.000000
0.000000
22 996.0000
0.000000
23 0.000000
0.000000
24 0.000000
-1.000000
25 0.000000
0.000000
26 0.000000
0.000000
27 0.000000
-1.000000
28 0.000000
0.000000
29 0.000000
0.000000
30 0.000000
0.000000
31 0.000000
-1.000000
32 0.000000
-1.000000
33 0.000000
-1.000000
34 0.000000
-1.000000

III.2. Problema 2
Libro: Investigación de Operaciones (4ta. Edición)
Autor: Wayne L. Winston
Página: 430 (Problema 7)

2
5
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

Cuatro trabajadores están disponibles para efectuar las tareas 1 a 4.


Desafortunadamente, tres trabajadores pueden hacer solo ciertas tareas; el
trabajador 1, solo la tarea 1; el trabajador 2, solo las tareas 1 y 2; el trabajador 3,
solo puede hacer la tarea 2; el trabajador 4, cualquier otra tarea. Dibuje la red
para el problema de flujo máximo que permita determinar si las tareas se pueden
asignar a un trabajador adecuado.
PLANTEAMIENTO DEL PROBLEMA:

TAREAS
TRABAJADORES
C2
1
1 5
1
C1
1 1
1
1 1 C3
1 2 6
Xo Xf
1
1 1
1
1 3 7
1
1
1
4 8

Realizando cortes:
C1 = 1+1+1+1 = 4
C2 = 1+1+1+1 = 4
C3 = 1+1+1 = 3, Sin considerar los arcos de salida del cuarto trabajador porque
ya se está cortando la entrada al nodo de ese trabajador.

Entonces el Flujo máximo está representado por 3 tareas.

2
6
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

III.2.1. Resolviendo a través de WINQSB:

a. Seleccionamos la opción de flujo Máximo (Maximal Flow Problem),


colocando también el número de nodos, 10.

b. Colocamos los datos en la tabla.

c. Seleccionamos el nodo de inicio y el nodo final.

2
7
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

d. El resultado es 3. Entonces solo se pueden realizar 3 tareas por 3


trabajadores.

2
8
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

III.2.2. Resolviendo con lingo 11.0


SETS:
nodo/1..10/;
arco(nodo, nodo)/1,2 1,3 1,4 1,5 2,6 3,6 3,7 4,7 5,6 5,7 5,8 5,9
6,10 7,10 8,10 9,10 10,1/:cap, flujo;
ENDSETS

DATA:
cap = 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1000;
ENDDATA

MAX=flujo(10,1);
@for(arco(I,J):flujo(I,J)<cap(I,J));
@for(nodo(I):@sum(arco(J,I):flujo(J,I))=@sum(arco(I,J):flujo(I,J)));

SALIDA EN LINGO
El resultado final al igual que en el anterior caso, resulta 3.

Global optimal solution found.


Objective value: 3.000000
Total solver iterations: 3

Variable Value Reduced Cost


CAP( 1, 2) 1.000000 0.000000
CAP( 1, 3) 1.000000 0.000000
CAP( 1, 4) 1.000000 0.000000
CAP( 1, 5) 1.000000 0.000000
CAP( 2, 6) 1.000000 0.000000
CAP( 3, 6) 1.000000 0.000000
CAP( 3, 7) 1.000000 0.000000
CAP( 4, 7) 1.000000 0.000000
CAP( 5, 6) 1.000000 0.000000
CAP( 5, 7) 1.000000 0.000000
CAP( 5, 8) 1.000000 0.000000
CAP( 5, 9) 1.000000 0.000000
CAP( 6, 10) 1.000000 0.000000
CAP( 7, 10) 1.000000 0.000000
CAP( 8, 10) 1.000000 0.000000
CAP( 9, 10) 1.000000 0.000000
CAP( 10, 1) 1000.000 0.000000
FLUJO( 1, 2) 0.000000 0.000000
FLUJO( 1, 3) 1.000000 0.000000
FLUJO( 1, 4) 1.000000 0.000000
FLUJO( 1, 5) 1.000000 0.000000
FLUJO( 2, 6) 0.000000 0.000000
FLUJO( 3, 6) 1.000000 0.000000
FLUJO( 3, 7) 0.000000 0.000000
FLUJO( 4, 7) 1.000000 0.000000

2
9
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

FLUJO( 5, 6) 0.000000 1.000000


FLUJO( 5, 7) 0.000000 1.000000
FLUJO( 5, 8) 1.000000 0.000000
FLUJO( 5, 9) 0.000000 0.000000
FLUJO( 6, 10) 1.000000 0.000000
FLUJO( 7, 10) 1.000000 0.000000
FLUJO( 8, 10) 1.000000 0.000000
FLUJO( 9, 10) 0.000000 0.000000
FLUJO( 10, 1) 3.000000 0.000000

Row Slack or Surplus Dual Price


1 3.000000 1.000000
2 1.000000 0.000000
3 0.000000 0.000000
4 0.000000 0.000000
5 0.000000 1.000000
6 1.000000 0.000000
7 0.000000 0.000000
8 1.000000 0.000000
9 0.000000 0.000000
10 1.000000 0.000000
11 1.000000 0.000000
12 0.000000 0.000000
13 1.000000 0.000000
14 0.000000 1.000000
15 0.000000 1.000000
16 0.000000 0.000000
17 1.000000 0.000000
18 997.0000 0.000000
19 0.000000 0.000000
20 0.000000 0.000000
21 0.000000 0.000000
22 0.000000 0.000000
23 0.000000 -1.000000
24 0.000000 0.000000
25 0.000000 0.000000
26 0.000000 -1.000000
27 0.000000 -1.000000

3
0
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

IV. FLUJO MÁXIMO A COSTO MÍNIMO.


IV.1. Problema 1
Libro: Investigación de Operaciones (7ma. Edición)
Autor: Hamdy A. Taha
Página: 260 (ejemplo 6.5-4)
Problema 7. (LIBRO TAHA HAMDY) Una red de tuberías conecta 2 plantas
desaladoras de agua a dos ciudades. Las cantidades diarias de abastecimiento en
las 2 plantas es de 50 y 60 millones de galones, las demandas diarias en las
ciudades son 40 y 70 millones de galones. Existe una estación de bombeo entre
las plantas y ciudades.
En la tabla se muestran los costos de transporte:

Planta 2 Bomba Ciudad 1 Ciudad 2


Planta 1 3 7 5 -
Planta 2 - 2 - 1
Bomba - 4 8

En la tabla están las capacidades máximas:

Planta 2 Bomba Ciudad 1 Ciudad 2


Planta 1 60 20 40 -
Planta 2 - 70 - 30
Bomba - Inf Inf

IV.1.1. Resolviendo a través de STORM:


Entrar al Storm, buscar la opción de Flujo Máximo y colocar el número
de nodos.

3
1
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

Colocar los datos.

En esta pantalla se muestra la solución. Que será la resta de: 11 000 –


10340 = 660

IV.1.2. Resolviendo con lingo 11.0


SETS:
NODO/1..7/: B;
ARCO(NODO,NODO)/1,2 1,3 2,3 2,4 2,5 3,4 3,6 4,5 4,6 5,7
6,7/: CAP, X, COSTO;
ENDSETS

DATA:
COSTO= 0,0,3,7,5,2,1,4,8,0,0;
B = 110,0,0,0,0,0,-110;

3
2
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

CAP = 50,60,60,20,40,70,30,90,90,40,70;
ENDDATA

MIN=@SUM(ARCO: COSTO*X);
@FOR(ARCO(I,J): X(I,J)<CAP(I,J));
@FOR(NODO(I): -@SUM(ARCO(J,I):X(J,I))
+@SUM(ARCO(I,J):X(I,J))=B(I));

SALIDA EN LINGO
Global optimal solution found.

Objective value: 660.0000


Infeasibilities: 0.000000
Total solver iterations: 1

Variable Value Reduced Cost


B( 1) 110.0000 0.000000
B( 2) 0.000000 0.000000
B( 3) 0.000000 0.000000
B( 4) 0.000000 0.000000
B( 5) 0.000000 0.000000
B( 6) 0.000000 0.000000
B( 7) -110.0000 0.000000
CAP( 1, 2) 50.00000 0.000000
CAP( 1, 3) 60.00000 0.000000
CAP( 2, 3) 60.00000 0.000000
CAP( 2, 4) 20.00000 0.000000
CAP( 2, 5) 40.00000 0.000000
CAP( 3, 4) 70.00000 0.000000
CAP( 3, 6) 30.00000 0.000000
CAP( 4, 5) 90.00000 0.000000
CAP( 4, 6) 90.00000 0.000000
CAP( 5, 7) 40.00000 0.000000
CAP( 6, 7) 70.00000 0.000000
X( 1, 2) 50.00000 0.000000
X( 1, 3) 60.00000 0.000000
X( 2, 3) 10.00000 0.000000
X( 2, 4) 0.000000 2.000000
X( 2, 5) 40.00000 0.000000
X( 3, 4) 40.00000 0.000000
X( 3, 6) 30.00000 0.000000
X( 4, 5) 0.000000 4.000000
X( 4, 6) 40.00000 0.000000
X( 5, 7) 40.00000 0.000000
X( 6, 7) 70.00000 0.000000
COSTO( 1, 2) 0.000000 0.000000
COSTO( 1, 3) 0.000000 0.000000
COSTO( 2, 3) 3.000000 0.000000
COSTO( 2, 4) 7.000000 0.000000
COSTO( 2, 5) 5.000000 0.000000
COSTO( 3, 4) 2.000000 0.000000
COSTO( 3, 6) 1.000000 0.000000
COSTO( 4, 5) 4.000000 0.000000
COSTO( 4, 6) 8.000000 0.000000
COSTO( 5, 7) 0.000000 0.000000
COSTO( 6, 7) 0.000000 0.000000

3
3
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

Row Slack or Surplus Dual Price


1 660.0000 -1.000000
2 0.000000 0.000000
3 0.000000 3.000000
4 50.00000 0.000000
5 20.00000 0.000000
6 0.000000 0.000000
7 30.00000 0.000000
8 0.000000 9.000000
9 90.00000 0.000000
10 50.00000 0.000000
11 0.000000 8.000000
12 0.000000 0.000000
13 0.000000 0.000000
14 0.000000 0.000000
15 0.000000 3.000000
16 0.000000 5.000000
17 0.000000 5.000000
18 0.000000 13.00000
19 0.000000 13.00000

IV.2. Problema 2
Libro: Investigación de Operaciones (7ma. Edición)
Autor: Hamdy A. Taha
Página: 264 (Problema 7)
Wyoming Electric usa actualmente unos tubos para transportar lodo de carbón
(arrastrado por agua bombeada) desde tres áreas mineras (1, 2 y3) hasta tres
centrales eléctricas (4, 5 y 6). Cada tubo puede transportar cuando mucho 10
toneladas por hora. Los costos de transporte, por tonelada y oferta y la demanda
por hora se ven en la tabla siguiente.

4 5 6 Oferta
1 $5 $6 $4 8
2 $6 $9 $12 10
3 $3 $1 $5 18
Demanda 16 6 14

IV.2.1. Resolviendo a través de STORM:


Entrar al Storm, buscar la opción de Flujo Máximo y colocar el número
de nodos.

3
4
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

Colocar los datos.

En esta pantalla se muestra la solución. Que será la resta de: 3600 – 3454 = 146

3
5
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

IV.2.2. Resolviendo con lingo 11.0


SETS:
NODO/1..8/: B;
ARCO(NODO,NODO)/1,2 1,3 1,4 2,5 2,6 2,7 3,5 3,6 3,7 4,5 4,6
4,7 5,8 6,8 7,8/: CAP, X, COSTO;
ENDSETS

DATA:
COSTO= 0,0,0,5,6,4,6,9,12,3,1,5,0,0,0;
B = 36,0,0,0,0,0,0,-36;
CAP = 8,10,18,10,10,10,10,10,10,10,10,10,16,6,14;
ENDDATA

MIN=@SUM(ARCO: COSTO*X);
@FOR(ARCO(I,J): X(I,J)<CAP(I,J));
@FOR(NODO(I): -@SUM(ARCO(J,I):X(J,I))
+@SUM(ARCO(I,J):X(I,J))=B(I));

SALIDA EN LINGO
Global optimal solution found.

Objective value: 146.0000


Infeasibilities: 0.000000
Total solver iterations: 5

Variable Value Reduced Cost


B( 1) 36.00000 0.000000
B( 2) 0.000000 0.000000
B( 3) 0.000000 0.000000
B( 4) 0.000000 0.000000
B( 5) 0.000000 0.000000
B( 6) 0.000000 0.000000
B( 7) 0.000000 0.000000
B( 8) -36.00000 0.000000
CAP( 1, 2) 8.000000 0.000000
CAP( 1, 3) 10.00000 0.000000

3
6
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

CAP( 1, 4) 18.00000 0.000000


CAP( 2, 5) 10.00000 0.000000
CAP( 2, 6) 10.00000 0.000000
CAP( 2, 7) 10.00000 0.000000
CAP( 3, 5) 10.00000 0.000000
CAP( 3, 6) 10.00000 0.000000
CAP( 3, 7) 10.00000 0.000000
CAP( 4, 5) 10.00000 0.000000
CAP( 4, 6) 10.00000 0.000000
CAP( 4, 7) 10.00000 0.000000
CAP( 5, 8) 16.00000 0.000000
CAP( 6, 8) 6.000000 0.000000
CAP( 7, 8) 14.00000 0.000000
X( 1, 2) 8.000000 0.000000
X( 1, 3) 10.00000 0.000000
X( 1, 4) 18.00000 0.000000
X( 2, 5) 0.000000 3.000000
X( 2, 6) 0.000000 6.000000
X( 2, 7) 8.000000 0.000000
X( 3, 5) 10.00000 0.000000
X( 3, 6) 0.000000 5.000000
X( 3, 7) 0.000000 4.000000
X( 4, 5) 6.000000 0.000000
X( 4, 6) 6.000000 0.000000
X( 4, 7) 6.000000 0.000000
X( 5, 8) 16.00000 0.000000
X( 6, 8) 6.000000 0.000000
X( 7, 8) 14.00000 0.000000
COSTO( 1, 2) 0.000000 0.000000
COSTO( 1, 3) 0.000000 0.000000
COSTO( 1, 4) 0.000000 0.000000
COSTO( 2, 5) 5.000000 0.000000
COSTO( 2, 6) 6.000000 0.000000
COSTO( 2, 7) 4.000000 0.000000
COSTO( 3, 5) 6.000000 0.000000
COSTO( 3, 6) 9.000000 0.000000
COSTO( 3, 7) 12.00000 0.000000
COSTO( 4, 5) 3.000000 0.000000
COSTO( 4, 6) 1.000000 0.000000
COSTO( 4, 7) 5.000000 0.000000
COSTO( 5, 8) 0.000000 0.000000
COSTO( 6, 8) 0.000000 0.000000
COSTO( 7, 8) 0.000000 0.000000

Row Slack or Surplus Dual Price


1 146.0000 -1.000000
2 0.000000 4.000000
3 0.000000 0.000000
4 0.000000 3.000000
5 10.00000 0.000000
6 10.00000 0.000000
7 2.000000 0.000000
8 0.000000 0.000000
9 10.00000 0.000000
10 10.00000 0.000000
11 4.000000 0.000000
12 4.000000 0.000000
13 4.000000 0.000000
14 0.000000 2.000000
15 0.000000 4.000000

3
7
LABORATORIO DE INVESTIGACIÓN OPERATIVA II

16 0.000000 0.000000
17 0.000000 -4.000000
18 0.000000 0.000000
19 0.000000 -4.000000
20 0.000000 -1.000000
21 0.000000 2.000000
22 0.000000 0.000000
23 0.000000 4.000000
24 0.000000 4.000000

3
8

También podría gustarte