Beruflich Dokumente
Kultur Dokumente
I.
Lista Explicita
No Densos
Filtros
Conjunto Primitivo:
Los conjuntos primitivos son los objetos fundamentales en un modelo y no pueden ser
desmenuzados en componentes ms pequeos.
La definicin de un conjunto primitivo requiere:
Sintaxis:
nombre_conjunto / lista_miembros / [ : lista_atributos ]
SUCURSAL / AREQUIPA, CUZCO, TRUJILLO / : INGRESOS;
Los miembros de los dos ejemplos anteriores han sido definidos por extensin.
nombre_conjunto / 1 ..n / [ : lista_atributos ]
PROYECTO / 1 .. 3 / : RENTABILIDAD;
Los miembros del ejemplo anterior han sido definidos por compresin.
Ambos casos son validos.
Miembro
( AREQUIPA,
( AREQUIPA,
( AREQUIPA,
( AREQUIPA,
( CUZCO,
(CUZCO,
(CUZCO,
(CUZCO,
PROY1,
PROY1,
PROY2,
PROY2,
PROY1,
PROY1,
PROY2,
PROY2,
1)
2)
1)
2)
1)
2)
1)
2)
Tambin se podra generar un SET derivado a partir de un solo tipo de SET padre:
SETS:
SUCURSAL / AREQUIPA, CUZCO, TRUJILLO /:;
CONEXION(SUCURSAL, SUCURSAL): DISTANCIA;
ENDSETS
Miembro
( AREQUIPA, AREQUIPA)
( AREQUIPA, CUZCO
)
( AREQUIPA, TRUJILLO )
( CUZCO,
AREQUIPA)
( CUZCO,
CUZCO
)
(CUZCO,
TRUJILLO )
(TRUJILLO, AREQUIPA)
(TRUJILLO, CUZCO
)
(TRUJILLO,
TRUJILLO)
II
#EQ#
#NE#
#GE#
#LT#
#LE#
Igual
No igual
Mayor que o igual a
Menor que
Menor que o igual a
El filtro de miembros permite solo aquellos camiones que tienen una capacidad de
carga (CAPACIDAD(&1)) mayor que (#GT) 50,000 en el conjunto
CAMIONES_PESADOS.
El simbolo &1 en el filtro es conocido como un ubicador de indice del conjunto.
El primer conjunto primitivo padre es colocado en &1, el segundo en &2 y asi. En
este ejm. Solo tenemos un un conjunto padre, de modo que &2 no tiene sentido.
DESARROLLANDO MODELOS
El siguiente modelo, ilustra el uso del SET derivado, las sentencias @SUM y
@FOR con filtros.
PROBLEMA :
Proyecto
1
2
3
1
2
3
1
2
3
Tasa de
Utilidad (%)
8
6
7
5
8
9
10
6
15
Inversin
Mxima
10
5
9
7
10
4
6
12
6
Solucin:
i .
i.
i para el proyecto j .
(i , j )
Minimo(i )
i = 1,2,3
j =1
(i , j )
Mximo(i )
i = 2
j =1
X (i , j ) InvMaxima(i , j )
i = 1,2,3; j = 1,2,3
(i , j )
PresupuestoTotal
i =1 j =1
Funcin Objetivo
3
(i ) = ndice de sucursal.
( j ) = ndice de proyectos.
Mnimo(i ) = Nivel mnimo de asignacin de fondos para la sucursal
i .
i para el proyecto j .
i en la sucursal j .
ELEMENTOS
ndice
Sucursal (i)
ndice
Proyecto (j)
Parmetro
Tasa
Parmetro
Inv. Mxima
Parmetro
Mnimo
Parmetro
Mximo
Parmetro
Presupuesto
Variable
X (i , j )
Sucursal
(i)
Proyecto
(j)
x
x
x
x
x
x
Tasa
Inv.
Mximo
Mnimo
Mximo
Presup
Asignacin
Los elementos mnimo y mximo depende solo del elemento Sucursal(i), por lo
tanto sern llamados atributos del conjunto primitivo SUCURSAL, y los definiremos
como MINIMO y MAXIMO. Finalmente la seccin SETS quedara de la siguiente
manera:
SETS:
SUCURSAL /AREQUIPA,CUZCO,TRUJILLO/: MINIMO, MAXIMO;
PROYECTO /1..3/: ;
SUCURSAL_PROYECTO(SUCURSAL, PROYECTO): TASA, INVMAXIMA, ASIGNACION ;
ENDSETS
Observacin : Para la lectura del atributo MAXIMO, solo para la 2da sucursal
existe lmite mximo, para las otras que tienen cero, se debe asumir que no existe
lmite mximo, en la implementacin de las restricciones se tratara este caso con
filtros (*).
Note que cada una de las 3 sucursales tiene un valor asignado para un nivel de
inversin MINIMO y MAXIMO, y cada una de las 9 combinaciones posibles de
SUCURSAL y PROYECTO - es decir cada elemento de SUCURSAL_ PROYECTO
- tiene una inversion maxima INVMAXIMA y una TASA asociada. En la seccin
DATA, usted notar que no contiene valores para el atributo ASIGNACION. Esto
es porque ASIGNACION representa las variables de decisin en el modelo, esto
ser determinado por LINGO.
6. Definiendo la estructura de las restricciones.
Definiendo la funcin Objetivo:
Formulacin Matemtica:
3
Formulacin en LINGO:
MAX = @SUM( SUCURSAL_PROYECTO : TASA
* ASIGNACION );
La funcin de @SUM es usada para alcanzar todos los miembros del SET
derivado SUCURSAL_PROYECTO.
Ecuacin Generada:
MAX
+
+
+
+
.08
.07
.08
.1
.15
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
AREQUIPA,
AREQUIPA,
CUZCO, 2)
TRUJILLO,
TRUJILLO,
1) + .06
3) + .05
+ .09
1) + .06
3)
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
AREQUIPA, 2)
CUZCO, 1)
CUZCO, 3)
TRUJILLO, 2)
(i , j )
Minimo(i )
i = 1,2,3
j =1
Formulacin en LINGO:
@FOR( SUCURSAL(I):
@SUM( PROYECTO(J) :
ASIGNACION(I,J) )
>=
MINIMO(I)
);
(i , j )
Mximo(i )
i = 2
j =1
10
Formulacin en LINGO:
@FOR( SUCURSAL( I) | MAXIMO(I) #NE# 0 :
@SUM( PROYECTO (J):
ASIGNACION(I,J)) <= MAXIMO( I));
Para cada SUCURSAL I, donde su valor de atributo nivel MAXIMO sea distinto de
cero, la suma de las cantidades asignadas a cada SUCURSAL I asociadas al
PROYECTO J, en la variable ASIGNACION(I,J), debe ser menor o igual que el
MAXIMO de nivel de asignacin de fondos de la SUCURSAL I.
Ecuacin Generada:
Solo se genera la ecuacin para la sucursal cuzco, que es la nica que tiene una
restriccin de uso mximo de presupuesto de 20 millones. Para las otras
sucursales que tienen cero (segn la data leda en la seccin DATA), se debe
asumir que no existe restriccin de lmite mximo.
ASIGNACION( CUZCO, 1) + ASIGNACION( CUZCO, 2)
+ ASIGNACION( CUZCO, 3) <=
20
X (i , j ) InvMaxima(i , j )
i = 1,2,3; j = 1,2,3
Formulacin en LINGO:
@FOR( SUCURSAL_PROYECTO (I,J) :
ASIGNACION(I,J)
<= INVMAXIMA(I,J) );
Ecuacin Generada:
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
AREQUIPA,
AREQUIPA,
AREQUIPA,
CUZCO, 1)
CUZCO, 2)
CUZCO, 3)
TRUJILLO,
TRUJILLO,
TRUJILLO,
1)
2)
3)
<=
<=
<=
1)
2)
3)
<=
<=
<=
5
8
9
<=
<=
<=
8
6
7
10
6
15
11
(i , j )
PresupuestoTotal
i =1 j =1
Formulacin en LINGO:
@SUM( SUCURSAL_PROYECTO (I,J):
ASIGNACION(I,J)) <= PRESUPUESTO ;
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
AREQUIPA,
AREQUIPA,
CUZCO, 2)
TRUJILLO,
TRUJILLO,
1) + ASIGNACION( AREQUIPA, 2)
3) + ASIGNACION( CUZCO, 1)
+ ASIGNACION( CUZCO, 3)
1) + ASIGNACION( TRUJILLO, 2)
3) <=
35
7. Usando LINGO
Al iniciar LINGO, este abre una ventana en blanco conocida como la ventana del
modelo, en esta ventana pondremos todo nuestro trabajo.
Desarrollando un Modelo
12
13
Ahora resolvamos el modelo. En LINGO para Windows escoger solve del men
Lingo.
Resolviendo el Problema
Para resolver el problema haga un clic en el boton del bull ubicada en la barra de
herramientas
State:
Iterations:
Infeasibility:
Objective:
14
Best IP:
IP Bound:
Value
35.00000
8.000000
10.00000
15.00000
0.0000000
20.00000
0.0000000
0.8000000E-01
0.6000000E-01
0.7000000E-01
0.5000000E-01
0.8000000E-01
0.9000000E-01
0.1000000
0.6000000E-01
0.1500000
8.000000
6.000000
7.000000
5.000000
8.000000
9.000000
10.00000
6.000000
15.00000
8.000000
0.0000000
0.0000000
0.0000000
1.000000
9.000000
2.000000
0.0000000
15.00000
Row
1
2
3
4
5
6
7
8
9
10
Slack or Surplus
3.980000
0.0000000
0.0000000
2.000000
10.00000
0.0000000
6.000000
7.000000
5.000000
7.000000
Reduced Cost
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.1000000E-01
0.0000000
0.3000000E-01
0.0000000
0.0000000
0.0000000
0.4000000E-01
0.0000000
Dual Price
1.000000
-0.3000000E-01
-0.2000000E-01
0.0000000
0.0000000
0.1000000E-01
0.0000000
0.0000000
0.0000000
0.0000000
15
11
12
13
14
15
0.0000000
8.000000
6.000000
0.0000000
0.0000000
0.1000000E-01
0.0000000
0.0000000
0.5000000E-01
0.1000000
El valor objetivo, en la parte superior del reporte, nos dice que la mxima rentabilidad
es 3.98 millones de dlares.
El resultado nos da la asignacin total de los recursos financieros, en el atributo
ASIGNACION. El valor de ASIGNACION(Arequipa, 1), por ejemplo es 8. Esto significa
que la cantidad de dinero asignado a la sucursal Arequipa para el proyecto 1 deber
ser 8 millones de dlares. Para ver la solucin de slo este atributo en LINGO, escoja
la opcin solution del men Lingo e ingrese el nombre del atributo ASIGNACION
en el cuadro de dialogo. Tambin puede seleccionar el siguiente icono:
Active con un check la opcin que le permite mostrar solo los valores distintos de cero, y haga
Click en OK. De esta manera, Lingo mostrar slo los valores de las variables ASIGNACION
distintos de cero, como se muestra abajo.
Variable
ASIGNACION( AREQUIPA, 1)
ASIGNACION( CUZCO, 2)
ASIGNACION( CUZCO, 3)
ASIGNACION( TRUJILLO, 1)
ASIGNACION( TRUJILLO, 3)
Value
8.000000
1.000000
9.000000
2.000000
15.00000
Reduced Cost
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
16
El siguiente modelo es una ampliacin del modelo anterior, ilustra el uso del SET
derivado no denso, usando una lista de miembros explicita.
PROBLEMA :
Una compaa dispone de 180 millones como presupuesto para los siguientes 3
periodos, que se usaran entre sus 3 sucursales. Se ha establecido un nivel mximo de
asignacin de fondos de 20 millones para cada sucursal por periodo. En caso que una
sucursal no exceda el lmite del periodo, puede usar esa diferencia para el siguiente
periodo. Cada sucursal tiene la oportunidad de dirigir distintos proyectos con los
fondos que recibe. Para cada proyecto se ha establecido una tasa de ganancia (como
un porcentaje de la inversin). Por otra parte, algunos de los proyectos obligan una
inversin mnima. Determine la poltica de asignacin que genere el mejor beneficio.
Sucursal
Arequipa
Cuzco
Trujillo
Proyecto
1
2
3
1
2
3
1
2
3
Periodo 1
Tasa de
Utilidad
(%)
Inversin
Mxima
(m)
Proyecto
8
6
7
5
8
9
10
6
15
10
7
9
7
10
4
6
12
6
1
2
3
1
2
3
1
2
3
Periodo 2
Tasa de
Utilidad
(%)
Inversin
Mxima
(m)
Proyecto
9
6
7
6
18
9
11
6
15
9
5
9
4
10
3
6
10
5
1
2
3
1
2
3
1
2
3
Periodo 3
Tasa de
Utilidad
(%)
Inversin
Mxima
(m)
8
7
7
5
8
9
7
6
15
10
6
9
7
8
4
6
11
6
Solucin:
Formulacin Algebraica del modelo
Definicin de variables:
i en el periodo
k.
17
Tasa (i, j,k) = Tasa de rentabilidad de la sucursal i, para el proyecto j durante el periodo
k.
X
j =1
+ Sobrante( i ,k ) = Mximo(i ,k )
(i , j ,k )
X
j =1
(i , j ,k )
k = 2,3 (Periodo)
i = 1,2,3 (Sucursal)
Restriccin de inversin mnima para algunos proyectos especficos.
X ( i , j ,k ) Minimo(i , j ,k )
X ( i , j ,k ) InvMaxima(i , j ,k )
X
i =1 j =1 k =1
PresupuestoTotal
(i , j ,k )
Funcin Objetivo
3
18
ELEMENTOS
Parmetro
Sucursal (i)
Parmetro
Proyecto (j)
Parmetro
Periodo (k)
Parmetro
Tasa
Parmetro
Inv. Mxima
Parmetro
Mnimo
Parmetro
Mximo
Parmetro
Presupuesto
Variable
X (i,j,k)
Variable
Sobrante.(i, k )
Sucur.
(i)
Proy
(j)
Period
(k)
x
x
x
x
x
x
x
x
x
x
x
x
x
X
X
Tasa
Inv.
Mximo
Mn
Mx
Presup
X
(i,j,k)
Sobrante.(i, k )
Periodo(k).
10. Relacionar los elementos (depende de) y plantear una estructura de SET.
Sucursal(i), no depende de ningn elemento superior, por lo tanto es un elemento
bsico, que se define como un conjunto primitivo, para nuestro ejemplo lo
llamaremos el set SUCURSAL definido por extensin (Arequipa, Cuzco, Trujillo).
SETS:
SUCURSAL /AREQUIPA,CUZCO,TRUJILLO/: ;
ENDSETS
19
Sobrante
(i,k)
20
INVMAXIMA =
10, 9, 8, 7, 5, 7, 9, 9, 7,
7, 4, 7, 10, 10, 8, 4, 3, 4,
6, 6, 6, 12, 10, 11, 6, 5, 6;
PRESUPUESTO = 35;
MINIMO = 5, 4, 3;
MAXIMO = 20, 20, 20,
20, 20, 20,
20, 20, 20;
ENDDATA
J. Ponce, G. Solis y L. Ulfe Investigacin de Operaciones
21
Formulacin en LINGO:
MAX = @SUM(SUCURSAL_PROYECTO_PERIODO: TASA
* ASIGNACION );
La funcin de @SUM es usada para alcanzar todos los miembros del SET
derivado SUCURSAL_PROYECTO_PERIODO.
Ecuacin Generada:
MAX
+
+
+
+
+
+
+
+
+
+
+
+
+
X
j =1
(i , j ,k )
+ Sobrante( i ,k ) = Mximo(i ,k )
k = 1 (Solo para el periodo k=1)
i = 1,2,3 (Sucursal)
X
j =1
(i , j ,k )
k = 2,3 (Periodo)
i = 1,2,3 (Sucursal)
22
Formulacin en LINGO:
@FOR(PERIODO(K) | K #EQ# 1 :
@FOR( SUCURSAL(I):
@SUM( PROYECTO(J) :
ASIGNACION(I,J,K) ) + SOBRANTE(I,K) =
MAXIMO(I,K) ));
Solo para el PERIODO (k=1), y para cada SUCURSAL I, la suma de las cantidades
asignadas a cada PROYECTO J asociado a la SUCURSAL I, en la variable
ASIGNACION(i,j,k), mas el posible SONBRANTE (i,k) debe ser igual al MAXIMO
del nivel de asignacin de fondos de la SUCURSAL I, en el PERIODO K.
Ecuacin Generada:
SOBRANTE(AREQUIPA, 1) + ASIGNACION(AREQUIPA, 1, 1) +
ASIGNACION(AREQUIPA, 2, 1) + ASIGNACION(AREQUIPA, 3, 1) =
SOBRANTE(CUZCO, 1) + ASIGNACION(CUZCO, 1, 1) +
ASIGNACION(CUZCO,2,1) + ASIGNACION( CUZCO, 3, 1) =
20
20
SOBRANTE(TRUJILLO, 1) + ASIGNACION(TRUJILLO, 1, 1) +
ASIGNACION(TRUJILLO, 2, 1) + ASIGNACION(TRUJILLO, 3, 1) =
20
Formulacin en LINGO:
@FOR(PERIODO(K) | K #NE# 1 :
@FOR( SUCURSAL(I):
@SUM( PROYECTO(J) :
ASIGNACION(I,J,K) ) - SOBRANTE(I,K-1)+ SOBRANTE(I,K) =
MAXIMO(I,K) ));
Para los PERIODOS mayores que 1 (k >1), y para cada SUCURSAL I, la suma de
las cantidades asignadas a cada PROYECTO J asociado a la SUCURSAL I, en la
variable ASIGNACION(i,j,k), menos el SOBRANTE(i,k-1) del periodo anterior, mas
el posible SONBRANTE (i,k) del periodo actual debe ser igual al MAXIMO del nivel
de asignacin de fondos de la SUCURSAL I, en el PERIODO K.
Ecuacin Generada:
- SOBRANTE(AREQUIPA, 1) + SOBRANTE(AREQUIPA, 2) +
ASIGNACION(AREQUIPA, 1, 2) + ASIGNACION(AREQUIPA, 2, 2) +
ASIGNACION(AREQUIPA, 3, 2) = 20
- SOBRANTE(CUZCO, 1) + SOBRANTE(CUZCO, 2)+ ASIGNACION(CUZCO,1,2) +
ASIGNACION( CUZCO, 2, 2)+ ASIGNACION( CUZCO, 3, 2) = 20
- SOBRANTE(TRUJILLO, 1) + SOBRANTE(TRUJILLO, 2) +
ASIGNACION(TRUJILLO, 1, 2) + ASIGNACION(TRUJILLO, 2, 2) +
ASIGNACION( TRUJILLO, 3, 2) = 20
- SOBRANTE(AREQUIPA, 2) + SOBRANTE(AREQUIPA, 3) +
ASIGNACION(AREQUIPA, 1, 3) + ASIGNACION(AREQUIPA, 2, 3) +
ASIGNACION(AREQUIPA, 3, 3) = 20
- SOBRANTE(CUZCO, 2) + SOBRANTE(CUZCO, 3) + ASIGNACION(CUZCO,1,3) +
ASIGNACION(CUZCO, 2, 3) + ASIGNACION( CUZCO, 3, 3) = 20
J. Ponce, G. Solis y L. Ulfe Investigacin de Operaciones
23
- SOBRANTE(TRUJILLO, 2) + SOBRANTE(TRUJILLO, 3) +
ASIGNACION(TRUJILLO, 1, 3) + ASIGNACION(TRUJILLO, 2, 3) +
ASIGNACION(TRUJILLO, 3, 3) = 20
X ( i , j ,k ) Minimo(i , j ,k )
Formulacin en LINGO:
@FOR(INVERSION_MINIMA(I,J,K):
ASIGNACION(I,J,K) >= MINIMO(I,J,K));
Ecuacin Generada:
ASIGNACION( AREQUIPA, 1, 1) >=
ASIGNACION( CUZCO, 1, 3) >=
4
ASIGNACION( TRUJILLO, 3, 1) >=
5
3
X ( i , j ,k ) InvMaxima(i , j ,k )
Formulacin en LINGO:
@FOR(SUCURSAL_PROYECTO_PERIODO(I,J,K):
ASIGNACION(I,J,K)
<= INVMAXIMA(I,J,K) );
24
Ecuacin Generada:
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
AREQUIPA,
AREQUIPA,
AREQUIPA,
AREQUIPA,
AREQUIPA,
AREQUIPA,
AREQUIPA,
AREQUIPA,
AREQUIPA,
CUZCO, 1,
CUZCO, 1,
CUZCO, 1,
CUZCO, 2,
CUZCO, 2,
CUZCO, 2,
CUZCO, 3,
CUZCO, 3,
CUZCO, 3,
TRUJILLO,
TRUJILLO,
TRUJILLO,
TRUJILLO,
TRUJILLO,
TRUJILLO,
TRUJILLO,
TRUJILLO,
TRUJILLO,
1,
1,
1,
2,
2,
2,
3,
3,
3,
1)
2)
3)
1)
2)
3)
1)
2)
3)
1,
1,
1,
2,
2,
2,
3,
3,
3,
1)
2)
3)
1)
2)
3)
1)
2)
3)
<=
<=
<=
<=
<=
<=
<=
<=
<=
1)
2)
3)
1)
2)
3)
1)
2)
3)
<=
<=
<=
<=
<=
<=
<=
<=
<=
7
4
7
10
10
8
4
3
4
<=
<=
<=
<=
<=
<=
<=
<=
<=
10
9
8
7
5
7
9
9
7
6
6
6
12
10
11
6
5
6
X
i =1 j =1 k =1
(i , j ,k )
PresupuestoTotal
Formulacin en LINGO:
@SUM( SUCURSAL_PROYECTO_PERIODO(I,J,K):
ASIGNACION(I,J,K)) <= PRESUPUESTO ;
Ecuacin Generada:
+
+
+
+
+
+
+
+
+
+
+
+
+
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
ASIGNACION(
AREQUIPA,
AREQUIPA,
AREQUIPA,
AREQUIPA,
AREQUIPA,
CUZCO, 1,
CUZCO, 2,
CUZCO, 2,
CUZCO, 3,
TRUJILLO,
TRUJILLO,
TRUJILLO,
TRUJILLO,
TRUJILLO,
1,
1,
2,
3,
3,
2)
1)
3)
2)
1,
1,
2,
3,
3,
1) + ASIGNACION( AREQUIPA,
3) + ASIGNACION( AREQUIPA,
2) + ASIGNACION( AREQUIPA,
1) + ASIGNACION( AREQUIPA,
3) + ASIGNACION( CUZCO, 1,
+ ASIGNACION( CUZCO, 1, 3)
+ ASIGNACION( CUZCO, 2, 2)
+ ASIGNACION( CUZCO, 3, 1)
+ ASIGNACION( CUZCO, 3, 3)
1) + ASIGNACION( TRUJILLO,
3) + ASIGNACION( TRUJILLO,
2) + ASIGNACION( TRUJILLO,
1) + ASIGNACION( TRUJILLO,
3) <=
180
1,
2,
2,
3,
1)
2)
1)
3)
2)
1,
2,
2,
3,
2)
1)
3)
2)
25
* ASIGNACION );
MAXIMO(I,K) ));
@FOR(PERIODO(K) | K #NE# 1 :
@FOR( SUCURSAL(I):
@SUM( PROYECTO(J) :
ASIGNACION(I,J,K) ) - SOBRANTE(I,K-1)+ SOBRANTE(I,K) =
MAXIMO(I,K) ));
! Restriccion de inversion minima para algunos proyectos especificos ;
@FOR(INVERSION_MINIMA(I,J,K):
ASIGNACION(I,J,K) >= MINIMO(I,J,K));
! Restriccion de inversion maxima por proyecto en cada sucursal ;
@FOR(SUCURSAL_PROYECTO_PERIODO(I,J,K):
ASIGNACION(I,J,K)
<= INVMAXIMA(I,J,K) );
! Restriccion de prespuesto disponible;
@SUM( SUCURSAL_PROYECTO_PERIODO(I,J,K):
ASIGNACION(I,J,K)) <= PRESUPUESTO ;
DATA:
TASA =
INVMAXIMA =
10, 9, 8, 7, 5, 7, 9, 9, 7,
7, 4, 7, 10, 10, 8, 4, 3, 4,
6, 6, 6, 12, 10, 11, 6, 5, 6;
MINIMO = 5, 4, 3;
PRESUPUESTO = 180;
26
Resolviendo el Problema
La solucin aparece abajo:
43
15.40000
El valor objetivo, en la parte superior del reporte, nos dice que la mxima rentabilidad
es 15.4 millones de dlares.
Para ver la solucin de slo los atributos variables, seleccione la opcin solution del
men Lingo e ingrese el nombre del atributo ASIGNACION , SOBRANTE en el
cuadro de dialogo.
Variable
ASIGNACION( AREQUIPA, 1, 1)
ASIGNACION( AREQUIPA, 1, 2)
ASIGNACION( AREQUIPA, 1, 3)
ASIGNACION( AREQUIPA, 2, 2)
ASIGNACION( AREQUIPA, 2, 3)
ASIGNACION( AREQUIPA, 3, 1)
ASIGNACION( AREQUIPA, 3, 2)
ASIGNACION( AREQUIPA, 3, 3)
ASIGNACION( CUZCO, 1, 1)
ASIGNACION( CUZCO, 1, 2)
ASIGNACION( CUZCO, 1, 3)
ASIGNACION( CUZCO, 2, 1)
ASIGNACION( CUZCO, 2, 2)
ASIGNACION( CUZCO, 2, 3)
ASIGNACION( CUZCO, 3, 1)
ASIGNACION( CUZCO, 3, 2)
ASIGNACION( CUZCO, 3, 3)
ASIGNACION( TRUJILLO, 1, 1)
ASIGNACION( TRUJILLO, 1, 2)
ASIGNACION( TRUJILLO, 1, 3)
ASIGNACION( TRUJILLO, 2, 1)
ASIGNACION( TRUJILLO, 2, 2)
ASIGNACION( TRUJILLO, 2, 3)
ASIGNACION( TRUJILLO, 3, 1)
ASIGNACION( TRUJILLO, 3, 2)
ASIGNACION( TRUJILLO, 3, 3)
Value
10.00000
9.000000
8.000000
1.000000
7.000000
9.000000
9.000000
7.000000
6.000000
4.000000
7.000000
10.00000
10.00000
8.000000
4.000000
3.000000
4.000000
6.000000
6.000000
6.000000
7.000000
10.00000
8.000000
6.000000
5.000000
6.000000
Reduced Cost
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
Variable
SOBRANTE( AREQUIPA, 1)
SOBRANTE( AREQUIPA, 2)
SOBRANTE( CUZCO, 2)
SOBRANTE( CUZCO, 3)
SOBRANTE( TRUJILLO, 1)
Value
1.000000
2.000000
3.000000
4.000000
1.000000
Reduced Cost
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
27
PROBLEMA :
Una compaa dispone de 180 millones como presupuesto para los siguientes 3
periodos, que se usaran entre sus 3 sucursales. Se ha establecido un nivel mximo de
asignacin de fondos de 20 millones para cada sucursal por periodo. En caso que una
sucursal no exceda el lmite del periodo, puede usar esa diferencia para el siguiente
periodo. Cada sucursal tiene la oportunidad de dirigir distintos proyectos con los
fondos que recibe. Para cada proyecto se ha establecido una tasa de ganancia (como
un porcentaje de la inversin). Por otra parte, algunos de los proyectos permiten una
inversin mnima. Determine la poltica de asignacin que genere el mejor beneficio.
Inversin Mnima (millones)
Cantidad
Sucursal Proyecto
Periodo
mnima
Arequipa
1
1
5
Cuzco
1
3
4
Trujillo
3
1
3
Sucursal
Arequipa
Cuzco
Trujillo
Proyecto
1
2
3
1
2
3
1
2
3
Periodo 1
Tasa de
Utilidad
(%)
Inversin
Mxima
(m)
Proyecto
8
6
7
5
8
9
10
6
15
10
7
9
7
10
4
6
12
6
1
2
3
1
2
3
1
2
3
Periodo 2
Tasa de
Utilidad
(%)
Inversin
Mxima
(m)
Proyecto
9
6
7
6
18
9
11
6
15
9
5
9
4
10
3
6
10
5
1
2
3
1
2
3
1
2
3
Periodo 3
Tasa de
Utilidad
(%)
Inversin
Mxima
(m)
8
7
7
5
8
9
7
6
15
10
6
9
7
8
4
6
11
6
Adicionalmente por una directiva de la alta gerencia se requiere que los proyectos que
tienen una rentabilidad mayotes del 5% por lo menos tengan una inversin de 90
millones.
Solucin:
Formulacin Algebraica del modelo
Definicin de variables:
i en el periodo
k.
Minimo(i , j ,k ) = Nivel mnimo de asignacin de fondos en la sucursal i , para el
proyecto j , en el periodo k .
InvMaxima (i, j,k) = Inversin mxima en la sucursal i para el proyecto j en el periodo
k.
J. Ponce, G. Solis y L. Ulfe Investigacin de Operaciones
28
Tasa (i, j,k) = Tasa de rentabilidad de la sucursal i, para el proyecto j durante el periodo
k.
X
j =1
+ Sobrante( i ,k ) = Mximo(i ,k )
(i , j ,k )
X
j =1
(i , j ,k )
k = 2,3 (Periodo)
i = 1,2,3 (Sucursal)
Restriccin de inversin mnima para algunos proyectos especficos.
X ( i , j ,k ) Minimo( i , j ,k )
X ( i , j ,k ) InvMaxima(i , j ,k )
X
i =1 j =1 k =1
PresupuestoTotal
(i , j ,k )
Funcin Objetivo
3
29
ELEMENTOS
Parmetro
Sucursal (i)
Parmetro
Proyecto (j)
Parmetro
Periodo (k)
Parmetro
Tasa
Parmetro
Inv. Mxima
Parmetro
Mnimo
Parmetro
Mximo
Parmetro
Presupuesto
Variable
X (i,j,k)
Variable
Sobrante.(i, k )
Sucur.
(i)
Proy
(j)
Period
(k)
x
x
x
x
x
x
x
x
x
x
x
x
x
X
X
Tasa
Inv.
Mximo
Mn
Mx
Presup
X
(i,j,k)
Sobrante.(i, k )
Periodo(k).
15. Relacionar los elementos (depende de) y plantear una estructura de SET.
Sucursal(i), no depende de ningn elemento superior, por lo tanto es un elemento
bsico, que se define como un conjunto primitivo, para nuestro ejemplo lo
llamaremos el set SUCURSAL definido por extensin (Arequipa, Cuzco, Trujillo).
SETS:
SUCURSAL /AREQUIPA,CUZCO,TRUJILLO/: ;
ENDSETS
30
Sobrante
(i,k)
31
SETS:
SUCURSAL /AREQUIPA, CUZCO, TRUJILLO/: ;
PROYECTO /13/: ;
PERIODO /13/: ;
SUCURSAL_PERIODO(SUCURSAL, PERIODO): SOBRANTE, MAXIMO;
SUCURSAL_PROYECTO_PERIODO(SUCURSAL, PROYECTO, PERIODO):
TASA, INVMAXIMA, ASIGNACION ;
ENDSETS
INVMAXIMA =
10, 9, 8, 7, 5, 7, 9, 9, 7,
7, 4, 7, 10, 10, 8, 4, 3, 4,
6, 6, 6, 12, 10, 11, 6, 5, 6;
32
PRESUPUESTO = 35;
MINIMO = 5, 4, 3;
MAXIMO = 20, 20, 20,
20, 20, 20,
20, 20, 20;
ENDDATA
33