Está en la página 1de 17

!

ELPROBLEMA DE LA RUTA MAS CORTA;


!VERSION 2;
SETS:
NODOS/1..5/:U;
RED(NODOS,NODOS)/ 1,2 1,3 2,3 2,4 3,4 3,5 4,5/:C,X;
ENDSETS
DATA:
C=1 4 3 6 4 6 2;
ENDDATA
N=@SIZE(NODOS);
!FUNCION OBJETIVO ;
MAX=U(N)-U(1);
!RESTRICCIONES;
@FOR(RED(I,J):
U(J)-U(I)<= C(I,J);
);

POR LINGO:
Global optimal solution found.
Objective value:
Total solver iterations:
Variable
N
U( 1)
U( 2)
U( 3)
U( 4)
U( 5)
C( 1, 2)
C( 1, 3)
C( 2, 3)
C( 2, 4)
C( 3, 4)
C( 3, 5)
C( 4, 5)
X( 1, 2)
X( 1, 3)
X( 2, 3)
X( 2, 4)
X( 3, 4)
X( 3, 5)
X( 4, 5)
Row
1
2
3
4
5
6

9.000000
5
Value
5.000000
0.000000
1.000000
3.000000
7.000000
9.000000
1.000000
4.000000
3.000000
6.000000
4.000000
6.000000
2.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Slack or Surplus
0.000000
0.000000
1.000000
1.000000
0.000000
0.000000

Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Dual Price
0.000000
1.000000
0.000000
0.000000
1.000000
0.000000

7
8
9

0.000000
0.000000
9.000000

0.000000
1.000000
1.000000

!ELPROBLEMA DE LA RUTA MAS CORTA;


!VERSION 1;
SETS:
NODOS/1..5/:B;
RED(NODOS,NODOS)/ 1,2 1,3 2,3 2,4 3,4 3,5 4,5 /:C,X;
ENDSETS
DATA:
B=1 0 0 0 -1;
C=1 4 3 6 4 6 2;
ENDDATA
!FUNCION OBJETIVO ;
MIN=@SUM(RED:C*X);
!RESTRICCIONES;
@FOR(NODOS(I):
@SUM(RED(I,J):X(I,J))-@SUM(RED(J,I):X(J,I))=B;
POR LINGO:
Global optimal solution found.
Objective value:
Total solver iterations:
Variable
B( 1)
B( 2)
B( 3)
B( 4)
B( 5)
C( 1, 2)
C( 1, 3)
C( 2, 3)
C( 2, 4)
C( 3, 4)
C( 3, 5)
C( 4, 5)
X( 1, 2)
X( 1, 3)
X( 2, 3)
X( 2, 4)
X( 3, 4)
X( 3, 5)
X( 4, 5)
Row
1
2
3
4

9.000000
0
Value
1.000000
0.000000
0.000000
0.000000
-1.000000
1.000000
4.000000
3.000000
6.000000
4.000000
6.000000
2.000000
1.000000
0.000000
0.000000
1.000000
0.000000
0.000000
1.000000
Slack or Surplus
9.000000
0.000000
0.000000
0.000000

Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
1.000000
1.000000
0.000000
Dual Price
-1.000000
-7.000000
-6.000000
-3.000000

5
6

0.000000
0.000000

0.000000
2.000000

!MODELO DE PERT/COST;
!MODELO 1;
SETS:
NODOS/1..5/:T;
ARCOS(NODOS,NODOS)/1,2 1,3 2,3 2,4 3,4 4,5/:D,DN,DR,PENDIENTE;
ENDSETS
DATA:
DN
DR
PENDIENTE
TCORTE
ENDDATA

=
=
=
=

5 6 3 2 6 5;
3 4 2 1 3 3;
100 50 150 250 200 100;
15;

N=@SIZE(NODOS);
!FUNCION OBJETIVO;
MIN=@SUM(ARCOS(I,J):PENDIENTE(I,J)*(DN(I,J)-D(I,J)));
!RESTRICCION DE SECUENCIACION;
@FOR(ARCOS(I,J):
T(I)+D(I,J)<= T(J);
D(I,J)<= DN(I,J);
D(I,J)>= DR(I,J);
);
!RESTRICCION DE TIEMPO DE CORTE;
T(N)-T(1)<= TCORTE;

POR LINGO:
Global optimal solution found.
Objective value:
Total solver iterations:
Variable
TCORTE
N
T( 1)
T( 2)
T( 3)
T( 4)
T( 5)
D( 1, 2)
D( 1, 3)
D( 2, 3)
D( 2, 4)
D( 3, 4)
D( 4, 5)
DN( 1, 2)

400.0000
2
Value
15.00000
5.000000
0.000000
3.000000
6.000000
12.00000
15.00000
3.000000
6.000000
3.000000
2.000000
6.000000
3.000000
5.000000

Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000

DN(
DN(
DN(
DN(
DN(
DR(
DR(
DR(
DR(
DR(
DR(
PENDIENTE(
PENDIENTE(
PENDIENTE(
PENDIENTE(
PENDIENTE(
PENDIENTE(

1,
2,
2,
3,
4,
1,
1,
2,
2,
3,
4,
1,
1,
2,
2,
3,
4,

3)
3)
4)
4)
5)
2)
3)
3)
4)
4)
5)
2)
3)
3)
4)
4)
5)

6.000000
3.000000
2.000000
6.000000
5.000000
3.000000
4.000000
2.000000
1.000000
3.000000
3.000000
100.0000
50.00000
150.0000
250.0000
200.0000
100.0000

Row
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

Slack or Surplus
0.000000
400.0000
0.000000
2.000000
0.000000
0.000000
0.000000
2.000000
0.000000
0.000000
1.000000
7.000000
0.000000
1.000000
0.000000
0.000000
3.000000
0.000000
2.000000
0.000000
0.000000

! PROBLEMA DE TRANSPORTE;
SETS:
ORIGENES:OFERTAS;
DESTINOS:DEMANDAS;
MATRIZ(ORIGENES,DESTINOS):COSTOS,X;
ENDSETS
DATA:
ORIGENES=@OLE(

'C:/ENERGIA.XLS');

DESTINOS=@OLE(

'C:/ENERGIA.XLS');

OFERTAS=@OLE(

'C:/ENERGIA.XLS');

DEMANDAS=@OLE(

'C:/ENERGIA.XLS');

0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Dual Price
0.000000
-1.000000
100.0000
0.000000
0.000000
50.00000
0.000000
0.000000
100.0000
50.00000
0.000000
0.000000
250.0000
0.000000
150.0000
50.00000
0.000000
150.0000
0.000000
-50.00000
150.0000

COSTOS=@OLE(

'C:/ENERGIA.XLS');

ENDDATA
MIN=OPTIMO;
OPTIMO=@SUM(MATRIZ(I,J):COSTOS(I,J)*X(I,J));
! RESTRICCIONES DE LOS ORIGENES;
@FOR(ORIGENES(I):
@SUM(DESTINOS(J):X(I,J)) <= OFERTAS(I);
);
! RESTRICCIONES DE LOS DESTINOS;
@FOR(DESTINOS(J):
@SUM(ORIGENES(I):X(I,J)) = DEMANDAS(J);
);
DATA:

@OLE( 'C:/ENERGIA.XLS')=X;
@OLE( 'C:/ENERGIA.XLS')=OPTIMO;
ENDDATA
Desde
Planta 1
Planta 2
Planta 3
Demanda(Millones
kWh)

Desde
Planta 1
Planta 2
Planta 3
Demanda(Millones
kWh)

Ciudad 1
8
9
14

Ciudad 2
6
12
9

Ciudad 3
10
13
16

Ciudad 4
9
7
5

45

20

30

30

Ciudad 1
0
45
0

Hacia
Ciudad 2
10
0
10

Ciudad 3
25
5
0

Ciudad 4
0
0
30

45

20

30

30

OPTIMO

1020

USANDO DATA EXCEL:

POR LINGO:
Global optimal solution found.
Objective value:
Total solver iterations:

1020.000
7

Oferta (Millones kWh)


35
50
40

Oferta (Millones kWh)


35
50
40

Export Summary Report


--------------------Transfer Method:
OLE BASED
Workbook:
C:/ENERGIA.XLS
Ranges Specified:
1
X
Ranges Found:
1
Range Size Mismatches:
0
Values Transferred:
12
Export Summary Report
--------------------Transfer Method:
OLE BASED
Workbook:
C:/ENERGIA.XLS
Ranges Specified:
1
OPTIMO
Ranges Found:
1
Range Size Mismatches:
0
Values Transferred:
1

COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(

OFERTAS(
OFERTAS(
OFERTAS(
DEMANDAS(
DEMANDAS(
DEMANDAS(
DEMANDAS(
PLANTA_1,
PLANTA_1,
PLANTA_1,
PLANTA_1,
PLANTA_2,
PLANTA_2,
PLANTA_2,
PLANTA_2,
PLANTA_3,
PLANTA_3,
PLANTA_3,
PLANTA_3,
PLANTA_1,
PLANTA_1,
PLANTA_1,
PLANTA_1,
PLANTA_2,
PLANTA_2,
PLANTA_2,
PLANTA_2,
PLANTA_3,
PLANTA_3,
PLANTA_3,
PLANTA_3,

Variable
OPTIMO
PLANTA_1)
PLANTA_2)
PLANTA_3)
CIUDAD_1)
CIUDAD_2)
CIUDAD_3)
CIUDAD_4)
CIUDAD_1)
CIUDAD_2)
CIUDAD_3)
CIUDAD_4)
CIUDAD_1)
CIUDAD_2)
CIUDAD_3)
CIUDAD_4)
CIUDAD_1)
CIUDAD_2)
CIUDAD_3)
CIUDAD_4)
CIUDAD_1)
CIUDAD_2)
CIUDAD_3)
CIUDAD_4)
CIUDAD_1)
CIUDAD_2)
CIUDAD_3)
CIUDAD_4)
CIUDAD_1)
CIUDAD_2)
CIUDAD_3)
CIUDAD_4)

Value
1020.000
35.00000
50.00000
40.00000
45.00000
20.00000
30.00000
30.00000
8.000000
6.000000
10.00000
9.000000
9.000000
12.00000
13.00000
7.000000
14.00000
9.000000
16.00000
5.000000
0.000000
10.00000
25.00000
0.000000
45.00000
0.000000
5.000000
0.000000
0.000000
10.00000
0.000000
30.00000

Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
2.000000
0.000000
0.000000
7.000000
0.000000
3.000000
0.000000
2.000000
5.000000
0.000000
3.000000
0.000000

Row
1
2
3
4
5
6
7
8
9

Slack or Surplus
1020.000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000

! PROBLEMA DE TRANSPORTE;
SETS:
ORIGENES:OFERTA;
DESTINOS:DEMANDAS;
MATRIZ(ORIGENES,DESTINOS):COSTOS,X;
ENDSETS
DATA:
ORIGENES=@OLE(

'C:/DATOS1.XLS');

DESTINOS=@OLE( 'C:/DATOS1.XLS');
OFERTA=@OLE( 'C:/DATOS1.XLS');
DEMANDAS=@OLE( 'C:/DATOS1.XLS');
COSTOS=@OLE( 'C:/DATOS1.XLS');
ENDDATA
MIN=OPTIMO;
OPTIMO=@SUM(MATRIZ(I,J):COSTOS(I,J)*X(I,J));
! RESTRICCIONES DE LOS ORIGENES;
@FOR(ORIGENES(I):
@SUM(DESTINOS(J):X(I,J)) <= OFERTA(I);
);
! RESTRICCIONES DE LOS DESTINOS;
@FOR(DESTINOS(J):
@SUM(ORIGENES(I):X(I,J)) = DEMANDAS(J);
);
DATA:

@OLE( 'C:/DATOS1.XLS')=X;
@OLE( 'C:/DATOS1.XLS')=OPTIMO;
ENDDATA

CON EXCEL:

Dual Price
-1.000000
-1.000000
3.000000
0.000000
0.000000
-9.000000
-9.000000
-13.00000
-5.000000

TIENDA 1
ALMACEN 1
ALMACEN 2
ALMACEN 3
ALMACEN 4
DEMANDAS

3
1
2
2
100

TIENDA 1
ALMACEN 1
ALMACEN 2
ALMACEN 3
ALMACEN 4
DEMANDAS

0
100
0
0
100

TIENDA 2

TIENDA 3

4
3
2
3
200

TIENDA 2

5
4
3
1
300

TIENDA 3

0
0
200
0
200

0
0
0
300
300

TIENDA 4

TIENDA 5

2
2
1
1
100

TIENDA 4
0
0
0
100
100
OPTIMO

1
2
1
2
100

OFERTA
100
300
200
400

TIENDA 5
OFERTA
100
100
0
300
0
200
0
400
100
1000

CON LINGO:
Global optimal solution found.
Objective value:
Total solver iterations:

1000.000
6

Export Summary Report


--------------------Transfer Method:
OLE BASED
Workbook:
C:/DATOS1.XLS
Ranges Specified:
1
X
Ranges Found:
1
Range Size Mismatches:
0
Values Transferred:
20
Export Summary Report
--------------------Transfer Method:
OLE BASED
Workbook:
C:/DATOS1.XLS
Ranges Specified:
1
OPTIMO
Ranges Found:
1
Range Size Mismatches:
0
Values Transferred:
1
Variable

Value

Reduced Cost

COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(
X(

OPTIMO
OFERTA( ALMACEN_1)
OFERTA( ALMACEN_2)
OFERTA( ALMACEN_3)
OFERTA( ALMACEN_4)
DEMANDAS( TIENDA_1)
DEMANDAS( TIENDA_2)
DEMANDAS( TIENDA_3)
DEMANDAS( TIENDA_4)
DEMANDAS( TIENDA_5)
ALMACEN_1, TIENDA_1)
ALMACEN_1, TIENDA_2)
ALMACEN_1, TIENDA_3)
ALMACEN_1, TIENDA_4)
ALMACEN_1, TIENDA_5)
ALMACEN_2, TIENDA_1)
ALMACEN_2, TIENDA_2)
ALMACEN_2, TIENDA_3)
ALMACEN_2, TIENDA_4)
ALMACEN_2, TIENDA_5)
ALMACEN_3, TIENDA_1)
ALMACEN_3, TIENDA_2)
ALMACEN_3, TIENDA_3)
ALMACEN_3, TIENDA_4)
ALMACEN_3, TIENDA_5)
ALMACEN_4, TIENDA_1)
ALMACEN_4, TIENDA_2)
ALMACEN_4, TIENDA_3)
ALMACEN_4, TIENDA_4)
ALMACEN_4, TIENDA_5)
ALMACEN_1, TIENDA_1)
ALMACEN_1, TIENDA_2)
ALMACEN_1, TIENDA_3)
ALMACEN_1, TIENDA_4)
ALMACEN_1, TIENDA_5)
ALMACEN_2, TIENDA_1)
ALMACEN_2, TIENDA_2)
ALMACEN_2, TIENDA_3)
ALMACEN_2, TIENDA_4)
ALMACEN_2, TIENDA_5)
ALMACEN_3, TIENDA_1)
ALMACEN_3, TIENDA_2)
ALMACEN_3, TIENDA_3)
ALMACEN_3, TIENDA_4)
ALMACEN_3, TIENDA_5)
ALMACEN_4, TIENDA_1)
ALMACEN_4, TIENDA_2)
ALMACEN_4, TIENDA_3)
ALMACEN_4, TIENDA_4)
ALMACEN_4, TIENDA_5)
Row
1
2
3
4
5

1000.000
100.0000
300.0000
200.0000
400.0000
100.0000
200.0000
300.0000
100.0000
100.0000
3.000000
4.000000
5.000000
2.000000
1.000000
1.000000
3.000000
4.000000
2.000000
2.000000
2.000000
2.000000
3.000000
1.000000
1.000000
2.000000
3.000000
1.000000
1.000000
2.000000
0.000000
0.000000
0.000000
0.000000
100.0000
100.0000
0.000000
0.000000
0.000000
0.000000
0.000000
200.0000
0.000000
0.000000
0.000000
0.000000
0.000000
300.0000
100.0000
0.000000
Slack or Surplus
1000.000
0.000000
0.000000
200.0000
0.000000

0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
2.000000
2.000000
4.000000
1.000000
0.000000
0.000000
1.000000
3.000000
1.000000
1.000000
1.000000
0.000000
2.000000
0.000000
0.000000
1.000000
1.000000
0.000000
0.000000
1.000000
Dual Price
-1.000000
-1.000000
0.000000
0.000000
0.000000

6
7
8
9
10
11

0.000000
0.000000
0.000000
0.000000
0.000000
0.000000

0.000000
-1.000000
-2.000000
-1.000000
-1.000000
-1.000000

!PROBLEMA DEL FLUJO MAXIMO;


!FLUJO;
SETS:
NODOS/1..5/;
RED(NODOS,NODOS)/1,2 1,3 2,3 2,4 3,4 2,5 4,5 3,5 5,1/:CAPACIDAD,X;
ENDSETS
DATA:
CAPACIDAD=5 7 8 6 2 3 4 3 1000;
ENDDATA
!FUNCION OBJETIVO;
MAX=X(5,1);
@FOR(NODOS(I):
@SUM(RED(J,I):X(J,I))-@SUM(RED(I,J):X(I,J))=0;
);
!RESTRICCIONES;
@FOR(RED(I,J):
X(I,J)<=CAPACIDAD(I,J);

POR LINGO:
Global optimal solution found.
Objective value:
Total solver iterations:
Variable
CAPACIDAD( 1, 2)
CAPACIDAD( 1, 3)
CAPACIDAD( 2, 3)
CAPACIDAD( 2, 4)
CAPACIDAD( 3, 4)
CAPACIDAD( 2, 5)
CAPACIDAD( 4, 5)
CAPACIDAD( 3, 5)
CAPACIDAD( 5, 1)
X( 1, 2)
X( 1, 3)
X( 2, 3)
X( 2, 4)
X( 3, 4)
X( 2, 5)

10.00000
3
Value
5.000000
7.000000
8.000000
6.000000
2.000000
3.000000
4.000000
3.000000
1000.000
5.000000
5.000000
0.000000
2.000000
2.000000
3.000000

Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000

X( 4, 5)
X( 3, 5)
X( 5, 1)
Row
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

4.000000
3.000000
10.00000

0.000000
0.000000
0.000000

Slack or Surplus
10.00000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
2.000000
8.000000
4.000000
0.000000
0.000000
0.000000
0.000000
990.0000

Dual Price
1.000000
0.000000
0.000000
0.000000
0.000000
-1.000000
0.000000
0.000000
0.000000
0.000000
0.000000
1.000000
1.000000
1.000000
0.000000

!PROBLEMA DE FLUJO MAXIMO;


!FLUJO COSTO MINIMO 1;
SETS:
NODOS/1..5/:B;
RED(NODOS,NODOS)/1,2 1,3 2,3 2,4 3,4 2,5 4,5 3,5/:COSTOS,X;
ENDSETS
DATA:
COSTOS =5 7 8 6 2 3 4 3;
B=100 50 0 -80 -70;
ENDDATA
!FUNCION OBJETIVO;
MIN=@SUM(RED:COSTOS*X);
!RESTRICCIONES;
@FOR(NODOS(I):
@SUM(RED(I,J):X(I,J))-@SUM(RED(J,I):X(J,I))= B(I);
);

POR LINGO:
Global optimal solution found.
Objective value:
Total solver iterations:
Variable
B( 1)
B( 2)
B( 3)
B( 4)
B( 5)
COSTOS( 1, 2)
COSTOS( 1, 3)

1030.000
3
Value
100.0000
50.00000
0.000000
-80.00000
-70.00000
5.000000
7.000000

Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000

COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
COSTOS(
X(
X(
X(
X(
X(
X(
X(
X(

2,
2,
3,
2,
4,
3,
1,
1,
2,
2,
3,
2,
4,
3,

3)
4)
4)
5)
5)
5)
2)
3)
3)
4)
4)
5)
5)
5)
Row
1
2
3
4
5
6

8.000000
6.000000
2.000000
3.000000
4.000000
3.000000
20.00000
80.00000
0.000000
0.000000
80.00000
70.00000
0.000000
0.000000

0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
6.000000
2.000000
0.000000
0.000000
5.000000
2.000000

Slack or Surplus
1030.000
0.000000
0.000000
0.000000
0.000000
0.000000

Dual Price
-1.000000
-7.000000
-2.000000
0.000000
2.000000
1.000000

!PROBLEMA DE FLUJO MAXIMO;


!FLUJO COTO MINIMO2;
SETS:
NODOS/1..5/:B;
RED(NODOS,NODOS)/1,2 1,3 2,3 2,4 3,4 2,5 4,5 3,5/:COSTOS,X;
ENDSETS
DATA:
COSTOS =5 7 8 6 2 3 4 3;
B=100 50 0 -80 -70;
ENDDATA
!FUNCION OBJETIVO;
MIN=@SUM(RED:COSTOS*X);
!RESTRICCIONES INCIDENCIA;
@FOR(NODOS(I):
@SUM(RED(I,J):X(I,J))-@SUM(RED(J,I):X(J,I))= B(I);
);
!RESTRICCION DE FLUJO;
@FOR(RED(I,J):
X(I,J)<=70;
);

POR LINGO:
Global optimal solution found.
Objective value:
Total solver iterations:

1050.000
2

Variable
B( 1)
B( 2)
B( 3)
B( 4)
B( 5)
COSTOS( 1, 2)
COSTOS( 1, 3)
COSTOS( 2, 3)
COSTOS( 2, 4)
COSTOS( 3, 4)
COSTOS( 2, 5)
COSTOS( 4, 5)
COSTOS( 3, 5)
X( 1, 2)
X( 1, 3)
X( 2, 3)
X( 2, 4)
X( 3, 4)
X( 2, 5)
X( 4, 5)
X( 3, 5)
Row
1
2
3
4
5
6
7
8
9
10
11
12
13
14

Value
100.0000
50.00000
0.000000
-80.00000
-70.00000
5.000000
7.000000
8.000000
6.000000
2.000000
3.000000
4.000000
3.000000
30.00000
70.00000
0.000000
10.00000
70.00000
70.00000
0.000000
0.000000
Slack or Surplus
1050.000
0.000000
0.000000
0.000000
0.000000
0.000000
40.00000
0.000000
70.00000
60.00000
0.000000
0.000000
70.00000
70.00000

Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
4.000000
0.000000
0.000000
0.000000
4.000000
1.000000
Dual Price
-1.000000
-11.00000
-6.000000
-2.000000
0.000000
0.000000
0.000000
2.000000
0.000000
0.000000
0.000000
3.000000
0.000000
0.000000

!PROBLEMA DE FLUJO MAXIMO;


!FLUJO;
SETS:
NODOS/1..5/:B;
RED(NODOS,NODOS)/1,2 1,3 1,4 1,5 2,3 3,4 4,5/:COSTOS,X;
ENDSETS
DATA:
COSTOS =7 8 8 10 1 1 1;
B=180 -60 -50 -30 -40;
ENDDATA
!FUNCION OBJETIVO;
MIN=@SUM(RED:COSTOS*X);

!RESTRICCIONES;
@FOR(NODOS(I):
@SUM(RED(I,J):X(I,J))-@SUM(RED(J,I):X(J,I))= B(I);
);

POR LINGO:
Global optimal solution found.
Objective value:
Total solver iterations:
Variable
B( 1)
B( 2)
B( 3)
B( 4)
B( 5)
COSTOS( 1, 2)
COSTOS( 1, 3)
COSTOS( 1, 4)
COSTOS( 1, 5)
COSTOS( 2, 3)
COSTOS( 3, 4)
COSTOS( 4, 5)
X( 1, 2)
X( 1, 3)
X( 1, 4)
X( 1, 5)
X( 2, 3)
X( 3, 4)
X( 4, 5)
Row
1
2
3
4
5
6

1420.000
0
Value
180.0000
-60.00000
-50.00000
-30.00000
-40.00000
7.000000
8.000000
8.000000
10.00000
1.000000
1.000000
1.000000
60.00000
50.00000
70.00000
0.000000
0.000000
0.000000
40.00000
Slack or Surplus
1420.000
0.000000
0.000000
0.000000
0.000000
0.000000

Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
1.000000
0.000000
1.000000
0.000000
Dual Price
-1.000000
-8.000000
-1.000000
0.000000
0.000000
1.000000

!MODELO 2;
!PERT/CPM;
SETS:
NODOS/1..5/:T;
RED(NODOS,NODOS)/1,2 2,3 2,4 3,4 3,5 4,5/:DURACION,DN,DR,PENDIENTE;
ENDSETS
DATA:
DN= 5 3 4 5 7 6;
DR= 2 1 1 2 4 3;
PENDIENTE= 100 150 80 200 150 100;
DESEMBOLSO= 400;
ENDDATA
N=@SIZE(NODOS);

!FUNCION OBJETIVO;
MIN=T(N)-T(1);

!RESTRICCION SECUENCIA;
@FOR(RED(I,J):
T(I) + DURACION(I,J) <= T(J);
DR(I,J) <= DURACION(I,J);
DURACION(I,J) <= DN(I,J);
);
!RESTRICCION GASTOS;
@SUM(RED(I,J):PENDIENTE(I,J)*(DN(I,J)-DURACION(I,J)))<=DESEMBOLSO;
POR LINGO:
Global optimal solution found.
Objective value:
Total solver iterations:
Variable
DESEMBOLSO
N
T( 1)
T( 2)
T( 3)
T( 4)
T( 5)
DURACION( 1, 2)
DURACION( 2, 3)
DURACION( 2, 4)
DURACION( 3, 4)
DURACION( 3, 5)
DURACION( 4, 5)
DN( 1, 2)
DN( 2, 3)
DN( 2, 4)
DN( 3, 4)
DN( 3, 5)
DN( 4, 5)
DR( 1, 2)
DR( 2, 3)
DR( 2, 4)
DR( 3, 4)
DR( 3, 5)
DR( 4, 5)
PENDIENTE( 1, 2)
PENDIENTE( 2, 3)
PENDIENTE( 2, 4)
PENDIENTE( 3, 4)
PENDIENTE( 3, 5)
PENDIENTE( 4, 5)
Row
1

15.00000
6
Value
400.0000
5.000000
0.000000
4.000000
7.000000
12.00000
15.00000
4.000000
3.000000
4.000000
5.000000
7.000000
3.000000
5.000000
3.000000
4.000000
5.000000
7.000000
6.000000
2.000000
1.000000
1.000000
2.000000
4.000000
3.000000
100.0000
150.0000
80.00000
200.0000
150.0000
100.0000
Slack or Surplus
0.000000

Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Dual Price
0.000000

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

0.000000
2.000000
1.000000
0.000000
2.000000
0.000000
4.000000
3.000000
0.000000
0.000000
3.000000
0.000000
1.000000
3.000000
0.000000
0.000000
0.000000
3.000000
0.000000
15.00000

1.000000
0.000000
0.000000
1.000000
0.000000
0.5000000
0.000000
0.000000
0.8000000
1.000000
0.000000
1.000000
0.000000
0.000000
1.500000
1.000000
0.000000
0.000000
0.1000000E-01
-1.000000

!MODELO 2;
!PERT/CPM;
SETS:
NODOS/1..5/:T;
RED(NODOS,NODOS)/1,2 2,3 2,4 3,4 3,5 4,5/:DURACION,DN,DR,PENDIENTE;
ENDSETS
DATA:
DN= 5 3 4 5 7 6;
DR= 2 1 1 2 4 3;
PENDIENTE= 100 150 80 200 150 100;
CIND=100;
ENDDATA
N=@SIZE(NODOS);
!FUNCION OBJETIVO: COSTOS DIRECTO + COSTOS INDIRECTOS;
MIN=(T(N)-T(1))*CIND + @SUM(RED(I,J):PENDIENTE(I,J)*(DN(I,J)DURACION(I,J)));
!RESTRICCION SECUENCIA;
@FOR(RED(I,J):
T(I) + DURACION(I,J) <= T(J);
DR(I,J) <= DURACION(I,J);
DURACION(I,J) <= DN(I,J);
);

POR LIMGO:
Global optimal solution found.
Objective value:
Total solver iterations:
Variable
CIND

1900.000
0
Value
100.0000

Reduced Cost
0.000000

DURACION(
DURACION(
DURACION(
DURACION(
DURACION(
DURACION(
DN(
DN(
DN(
DN(
DN(
DN(
DR(
DR(
DR(
DR(
DR(
DR(
PENDIENTE(
PENDIENTE(
PENDIENTE(
PENDIENTE(
PENDIENTE(
PENDIENTE(

T(
T(
T(
T(
T(
1,
2,
2,
3,
3,
4,
1,
2,
2,
3,
3,
4,
1,
2,
2,
3,
3,
4,
1,
2,
2,
3,
3,
4,

N
1)
2)
3)
4)
5)
2)
3)
4)
4)
5)
5)
2)
3)
4)
4)
5)
5)
2)
3)
4)
4)
5)
5)
2)
3)
4)
4)
5)
5)

5.000000
0.000000
2.000000
5.000000
10.00000
16.00000
2.000000
3.000000
4.000000
5.000000
7.000000
6.000000
5.000000
3.000000
4.000000
5.000000
7.000000
6.000000
2.000000
1.000000
1.000000
2.000000
4.000000
3.000000
100.0000
150.0000
80.00000
200.0000
150.0000
100.0000

Row
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

Slack or Surplus
0.000000
0.000000
0.000000
3.000000
0.000000
2.000000
0.000000
4.000000
3.000000
0.000000
0.000000
3.000000
0.000000
4.000000
3.000000
0.000000
0.000000
3.000000
0.000000
1900.000

0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Dual Price
0.000000
100.0000
0.000000
0.000000
100.0000
0.000000
50.00000
0.000000
0.000000
80.00000
100.0000
0.000000
100.0000
0.000000
0.000000
150.0000
100.0000
0.000000
0.000000
-1.000000

También podría gustarte