You are on page 1of 80

INVESTIGACION OPERATIVA I

2013 - I

CONTENIDO
MSc. Ing. Ezzard Omar Alvarez Daz

INVESTIGACION OPERATIVA I

2013 - I

INTRODUCCION A LINGO 11.0

1Que es LINGO?
2Desarrollando un modelo para LINGO
1. Resolviendo un modelo en LINGO
2. Mostrando el informe de solucin
3. detalles del informe de solucin
a. costo reducido
b. Holgura
c. Precio dual
3 Qu es SETS?
4Seccin de conjuntos, SETS en un modelo
5Qu es DATA?
6Seccin de datos, DATA en un modelo
7Seccin de modelo, MODEL
8Operadores y funciones en LINGO
1. Operadores Estndar
2. Operadores Matemticos
3. Funciones Financieras
4. Funciones de probalidad
9Interfase con archivos EXTERNOS
1. Lingo y Excel
2. Lingo y Acces
10

Programando en LINGO
1. programacin lineal
2. problemas de transporte
3. Sensibilidad

MSc. Ing. Ezzard Omar Alvarez Daz

INVESTIGACION OPERATIVA I

2013 - I

4. programacin entera

1 QUE ES LINGO?
LINGO es una herramienta simple que permite utilizar el poder de la
optimizacin lineal y no lineal para formular grandes problemas
concisamente, resolverlos, y analizar la solucin. La optimizacin ayuda a
encontrar la respuesta que satisface el mejor resultado. Frecuentemente,
estos problemas involucraban el uso mas eficiente de los recursos (dinero,
tiempo, maquinaria, personal, etc.). Los problemas de optimizacin se
pueden clasificar en lineales o no lineales, dependiendo de cmo las
relaciones entre las variables.

*La ventana inicial de LINGO.


2 DESARROLLO DE UN MODELO EN LINGO.
MSc. Ing. Ezzard Omar Alvarez Daz

INVESTIGACION OPERATIVA I

2013 - I

Supongamos que CompuQuick Corp. Produce 2 modelos de computadoras:


Standard y Turbo. CompuQuick puede vender cada unidad Standard que
produce a un precio de $100, y cada unidad Turbo por $150. La fbrica
puede producir a lo sumo 100 computadoras Standard por da y 120
computadoras Turbo. CompuQuick tiene una capacidad de trabajo de 160
horas por da. Las computadoras Standard requieren 1 hora de labor,
mientras que las Turbo requieren 2 horas. El problema de CompuQuick es
determinar la mezcla de computadoras Standard y Turbo a producir cada
da para maximizar el total de las ventas sin exceder el lmite de produccin
y de trabajo.
En general un modelo de optimizacin consiste en los siguientes 3 tems:
1. Funcin objetivo
2. Variables
3. Restricciones
La sintaxis para escribir la funcin objetivo en LINGO es:
MAX = 100 * STANDARD + 150 * TURBO;
Nota: Cada lnea en LINGO finaliza con un punto y coma. El punto y la
coma son requeridos. El modelo no se resolver si falta algn punto y
coma.
Las restricciones se introducen de la siguiente manera:
STANDARD <= 100;
TURBO <=120;
STANDARD + 2 * TURBO <= 160;
Nota: Dado que la mayor parte de las computadoras no tienen una tecla de
menor o igual (), LINGO ha adoptado como convencin utilizar el
smbolo <= para representar Como alternativa, se puede usar el smbolo <
para expresar menor o igual. Lo mismo se usa >= > para expresar mayor
o igual (

MSc. Ing. Ezzard Omar Alvarez Daz

INVESTIGACION OPERATIVA I

2013 - I

Una expresin puede abarcar mas de una lnea, por ejemplo:


MAX = 100 * STANDARD + 150 * TURBO;
Se pueden introducir comentarios, que sern ignorados por LINGO,
comenzando con un signo de exclamacin ! y terminando con un punto y
coma. Los comentarios tambin pueden ocupar varias lneas. Por ejemplo:
X= 1.5 * Y + Z / 2 * Y; ! Esto es
Un comentario;
X= 1.5 * ! Esto es un comentario en el medio de una restriccin ; Y + Z / 2 *
Y;

LINGO no distingue entre maysculas y minsculas, por lo que es lo


mismo STANDARD que standard y que StAnDaRd.
Los nombres de las variables deben comenzar con un carcter alfabtico
(A-Z), los siguientes caracteres pueden ser alfabticos, numricos o
subrayado (_). Los nombres pueden ser de hasta 32 caracteres de longitud.
RESOLVIENDO UN MODELO EN LINGO.
Para ordenar a LINGO a que resuelva el problema, se debe seleccionar el
comando Solve del men LINGO, o presionar el botn Solve de la barra
de herramientas.
MSc. Ing. Ezzard Omar Alvarez Daz

INVESTIGACION OPERATIVA I

2013 - I

Si no hay errores en la formulacin del problema durante la etapa de


compilacin, LINGO invocar al mdulo de resolucin adecuado para
buscar la solucin ptima.

*Ventana de estado.
En esta ventana se puede monitorear el proceso de resolucin y las
dimensiones del modelo.
El recuadro "Variables" muestra el numero total de variables del modelo,
las variables que son no lineales y las enteras. Una variable es considerada
no lineal si es parte de una restriccin no lineal en el modelo. Mientras
mas variables no lineales y enteras contenga el modelo, mas difcil ser
resolverlo de forma ptima en un tiempo razonable. Los modelos lineales
puros sin variables enteras tienden a resolverse mas rpidamente.
La cuenta de variables no incluye las que LINGO determina como de valor
fijo, por ejemplo:
Dadas las restricciones
X = 1; X + Y = 3;
LINGO determina por la primera restriccin que X est fija en 1, y, usando
esta informacin, deduce que Y est fija en 2. X e Y sern entonces
excluidas del modelo.
En el recuadro "Constraints" se muestra la cantidad total de restricciones y
el nmero de stos que son no lineales. Una restriccin es considerada no
lineal si una o mas variables aparecen de forma no lineal en la restriccin.

MSc. Ing. Ezzard Omar Alvarez Daz

2013 - I

INVESTIGACION OPERATIVA I

El recuadro "Nonzeros" muestra el total de coeficientes distintos de cero


que aparecen en el modelo y el nmero de estos que aparecen en variables
no lineales.
El recuadro "Memory Used" muestra la cantidad de memoria que est
utilizando LINGO para resolver el modelo.
El recuadro "Elapsed Runtime" muestra el tiempo total utilizado para
generar y resolver el modelo.
El recuadro "Optinizer Status" muestra el estado actual del optimizador:
Campo
State

Iterations
Infeasibility
Objetive
Best IP

IP Bound

Descripcin
Estado de la solucin actual, puede
ser "Global optimum", "Local
optimum",
"Feesible",
"Unbounded",
"Interrupted",
"Undetermined"
Numero de iteraciones
Cantidad de veces que es violada
una restriccin
Valor actual de la funcin objetivo
Valor de la funcin objetivo de la
mejor solucin entera encontrada
(solo en modelos de programacin
entera)
Lmite terico de la funcin
objetivo
para
modelos
de
programacin entera.

Cuando LINGO termine de resolver el modelo, crear una nueva ventana


con el ttulo Solution Report, conteniendo los detalles de la solucin:
MOSTRANDO EL INFORME DE LA SOLUCIN

MSc. Ing. Ezzard Omar Alvarez Daz

INVESTIGACION OPERATIVA I

2013 - I

Informe de la solucin.

COSTO REDUCIDO:
En el informe de la solucin se encuentra un valor de costo reducido para
cada variable. Hay dos interpretaciones vlidas y equivalentes para el
costo reducido.
Primero se puede interpretar como el monto por el cual el coeficiente
objetivo de la variable se debera incrementar antes de hacerse provechoso
darle a la variable en cuestin un valor positivo en la solucin ptima. Por
ejemplo, si la variable tuviera un costo reducido de 10, el coeficiente
objetivo de esta variable deber incrementarse en 10 unidades en un
problema de maximizacin o decrementarse en 10 unidades en un
problema de minimizacin para convertirse en una alternativa atractiva.
Una variable en la solucin ptima automticamente tiene un costo
reducido de 0
MSc. Ing. Ezzard Omar Alvarez Daz

INVESTIGACION OPERATIVA I

2013 - I

Segundo, el costo reducido de una variable se puede interpretar como el


monto de penalizacin que habr que pagar por introducir una unidad de
esa variable en la solucin. Como antes, si la variable tuviera un costo
reducido de 10, habr que pagar una penalizacin de 10 unidades para
introducir la variable en la solucin. En otras palabras, el valor objetivo
caer en 10 unidades en un modelo de maximizacin, o se incrementar 10
unidades en un problema de minimizacin.
Los costos reducidos son vlidos slo dentro de un rango de valores.
HOLGURA O EXCEDENTE
La columna Slack or Surplus en el informe de la solucin de LINGO
muestra que tan cerca se est de satisfacer una restriccin como una
igualdad. Esta cantidad, en restricciones de menor o igual, se denomina
generalmente holgura. En restricciones de mayor o igual se la llama
excedente.
Si una restriccin es exactamente satisfecha como una igualdad, la holgura
o excedente valdr cero. Si una restriccin es violada, este valor ser
negativo. Esto ayuda a encontrar las restricciones violadas cuando en el
modelo no existe un conjunto de valores para las variables que satisfacen
simultneamente todas las restricciones.
En el ejemplo de CompuQuick, ntese que la fila 3 (TURBO <= 120) tiene
un slack de 90, porque el valor ptimo de TURBO es 30, esta fila est a 90
unidades de ser satisfecha como una igualdad.

PRECIO DUAL.
El informe de la solucin de LINGO tambin da un valor de precio dual
para cada restriccin. El precio dual se puede interpretar como el monto en
que la funcin objetivo mejorar si el segundo miembro de la restriccin se
incrementase una unidad. Por ejemplo, en la solucin de CompuQuick, el
precio dual en la fila 4 significa que agregar una unidad mas al trabajo
causar que la funcin objetivo mejore en 75, a un valor de 14575.
Ntese que mejorar es un trmino relativo. En un problema de
maximizacin, mejorar significa que la funcin objetivo se incrementar, y
en un problema de minimizacin el valor objetivo se reducir si el segundo
miembro de una restriccin con precio dual positivo es incrementado.

MSc. Ing. Ezzard Omar Alvarez Daz

INVESTIGACION OPERATIVA I

2013 - I

Los precios duales son a veces llamados precios sombra, porque ellos dicen
cuanto debera pagar por una unidad de recurso. En el ejemplo anterior,
CompuQuick podra pagar hasta $75 por cada unidad de trabajo.
Al igual que los costos reducidos, los precios duales son vlidos slo dentro
de un rango de valores.
QU ES SETS?
LINGO permite definir conjuntos de objetos relacionados en la "seccin de
conjuntos" (sets section). Estos conjuntos pueden ser primitivos o
derivados. Esta seccin comienza con la palabra clave SETS: y termina
con ENDSETS
SECCION DE CONJUNTOS
Cada conjunto tiene la sintaxis siguiente:
NOMBRE/ LOS MIEMBROS/: LOS ATRIBUTOS;
SETS:
FABRICAS /F1,F2/ : CAPACIDAD;
CENTROS /C1,C2,C3/ :DEMANDA;
RUTAS( FABRICAS, CENTROS ): C, X;
ENDSETS
Los conjuntos, FABRICAS y CENTROS se denominan conjuntos
primitivos y el ltimo se denomina conjunto derivado, donde C y X
representan, respectivamente, los costos unitarios de transporte y cantidad
transportada de las fabricas a los centros.

QU ES DATA?
ES la seccion del modelo en la cual se declaran los datos que se utilizarna
para encontrara una solucion al modelo. Existen diversas Formas de
ingresar o leer los datos en un modelo asi tenemos EXCEL , ACCES,
SQL, etc.
SECCIN DE DATOS, DATA
Los valores de los atributos de los elementos de los conjuntos, tienen la
sintaxis siguiente:
DATA:
MSc. Ing. Ezzard Omar Alvarez Daz

10

2013 - I

INVESTIGACION OPERATIVA I

CAPACIDAD = 30, 20;


DEMANDA = 10, 25, 15;
C
= 2, 4, 6,
7, 10, 1;
ENDDATA
SECCION DEL MODELO
Para presentar el modelo se utiliza dos funciones @SUM y @FOR.
@SUM calcula la suma de una expresin sobre todos los miembros del
conjunto.La forma general es:
@SUM(set: expresin)
Suma la expresin que sigue a los dos puntos.
Por ejemplo:
@SUM (RUTAS: C*X)
Suma la expresin que sigue a los dos puntos que corresponde al producto
del costo unitario de transporte por la cantidad transportada de cada origen
a cada destino considerado.
La segunda funcin
es @FOR, esta funcin sirve para generar
restricciones sobre los miembros de un conjunto. La forma general es:
@FOR (set: restriccin)
Por ejemplo:
@FOR(CENTROS(J):
@SUM(FABRICAS(I):X(I,J))<=CAPACIDAD(I));
Indica que se genere la restriccin que sigue a los dos puntos para cada
miembro del conjunto que les precede. Cada elemento del conjunto
CENTROS(J) para J = 1,2,3 se genera las restricciones siguientes:
J = 1:

X11 + X21 >= 10

J = 2:

X12 + X22 >= 25

J=3

X13 + X23 >= 15


***

MSc. Ing. Ezzard Omar Alvarez Daz

11

INVESTIGACION OPERATIVA I

2013 - I

OPERADORES Y FUNCIONES EN LINGO


USO DE FUNCIONES DE DOMINIO DE VARIABLES
A menos que se especifique lo contrario, las variables en un modelo de
LINGO son continuas y no negativas. Mas especficamente las variables
pueden asumir cualquier valor real desde cero hasta mas infinito. En
muchos casos este dominio para una variable puede ser inapropiado. Por
ejemplo puede necesitarse que una variable asuma valores negativos, o
solamente valores enteros. LINGO est provisto de cuatro funciones de
MSc. Ing. Ezzard Omar Alvarez Daz

12

2013 - I

INVESTIGACION OPERATIVA I

dominio de variables que permiten sobrepasar el dominio por omisin de


una variable:

@GIN

Limita la variable slo a valores enteros

@BIN

Hace una variable binaria (0 1)

@FREE

Permite que la variable tome cualquier


valor real (positivo o negativo)
Limita la variable para que se ajuste a un
rango finito

@BND

USO DE VARIABLES ENTERAS


@GIN(X);
@GIN(PRODUCE(5));
@FOR(DAYS(I): @GIN(START(I)));

Transforma la variable escalar X en entera


Transforma la variable PRODUCE(5) en
entera
Transforma todas las variables del atributo
START en enteras

EJEMPLOS DE USO DE VARIABLES BINARIAS:


@BIN(X);
@BIN(INCLUDE(4));
@FOR(ITEMS: @BIN(INCLUDE));

Transforma la variable escalar X en binaria


Transforma la variable INCLUDE(4) en
binaria
Transforma todas las variables del atributo
INCLUDE en binarias

EJEMPLOS DE USO DE VARIABLES LIBRES:


@FREE(X);
@FREEE(QUANTITY(4));
@FOR(ITEMS: @FREE(QUANTITY))

Transforma la variable escalar X en libre


Transforma la variable QUANTITY(4) en
libre
Transforma todas las variables del atributo
QUANTITY en libres

EJEMPLOS DE USO DE VARIABLES CON LMITES:


MSc. Ing. Ezzard Omar Alvarez Daz

13

2013 - I

INVESTIGACION OPERATIVA I

@BND(-1, X, 1);
@BND(100, QUANTITY(4), 200) ;
@FOR(ITEMS: @BND( 10, Q, 20));
@FOR(ITEMS: @BND(QL, Q, QU));

Restringe la variable X al intervalo [-1, 1]


Limita QUANTITY(4) entre 100 y 200
Fija los lmites de todas las variables del
atributo Q en 10 y 20
Fija los lmites de todas las variables del
atributo Q en QL y QU (A QL y QU deben
habrsele asignado valores en la seccin de
datos)

OPERADORES ESTNDAR
LINGO tiene tres tipos de operadores estndar:
1. OPERADORES ARITMETICOS
Lingo tiene cinco operadores aritmticos que se muestran:
Operador
^
*
/
+
-

Descripcin
Exponencial
Multiplicacin
Divisin
Suma
Resta

2. OPERADORES LOGICOS
Operador
lgico
#NOT#
#EQ#
#NE#

Valor que regresa


Verdadero si el operando inmediatamente a la derecha es
falso, de lo contrario es falso.
Verdadero si los dos operando son iguales, de lo contrario
es falso
Verdadero si los dos operando no son iguales, de lo
contrario es falso

MSc. Ing. Ezzard Omar Alvarez Daz

14

2013 - I

INVESTIGACION OPERATIVA I

#GT#
#GE#
#LT#
#LE#
#AND#
#OR#

Verdadero si el operando izquierdo es estrictamente mayor


al operando de la derecha, de lo contrario es falso
Verdadero si el operando izquierdo es mayor o igual al
operando de la derecha, de lo contrario es falso
Verdadero si el operando izquierdo es estrictamente menor
al operando de la derecha, de lo contrario es falso
Verdadero si el operando izquierdo es estrictamente menor
o igual al operando de la derecha, de lo contrario es falso
Verdadero solo si ambos argumentos son verdad, de lo
contrario es falso
Falso solo si ambos argumentos son falso, de lo contrario es
verdadero

3. OPERADORES RELACIONALES
Operador
Relacional

Descripcin

La expresin de la izquierda debe ser igual a


ala de la derecha
La expresin de la izquierda debe ser menor o
igual a la de la derecha
La expresin de la izquierda debe ser mayor o
igual a la de la derecha

<=
>=

FUNCIONES MATEMTICAS
Lingo presenta funciones matemticas. Estas funciones retornan un
solo resultado basado en uno o ms argumentos escalares.
Operador
@ABSS(X)
@ACOS(X)
@ACOH(X)
@ASIN(X)

Descripcin
Retorna el valor absoluto de X
Retorna el arco coseno, de X donde X esta en
radianes
Retorna la inversa del coseno hiperblico, de X
donde X esta en radianes
Retorna el arco seno, de X donde X esta en

MSc. Ing. Ezzard Omar Alvarez Daz

15

2013 - I

INVESTIGACION OPERATIVA I

@ASINH(X)
@ATAN(X)
@ATAN2(Y,X)
@ATANH(X)
@COS(X)
@COSH(X)
@EXP(X)
@FLOOR(X)
@LOG(X)
@LOG10(X)
@MOD(X,Y)
@POW(X)
@SIGN(X)
@SIN(X)
@SINH(X)
@SMAX(X1,X2,..Xn
)
@SMIN(X1,X2,..Xn)
@SQR(X)
@SQRT(X)
@TAN(X)
@TANH(X)

radianes
Retorna la inversa del seno hiperblico, de X
donde X esta en radianes
Retorna el arco tangente, de X donde X esta en
radianes
Retorna el arco tangente, de X /Y
Retorna la inversa de la tangente hiperblico de X
Retorna el coseno de X, Donde X esta en radianes
Retorna el coseno hiperblico de X, Donde X esta
en radianes
Retorna e (i.e, 2.718281) elevado al
exponente X
Retorna la parte entera de X
Retorna el logaritmo natural de X
Retorna el logaritmo en base 10 de X
Retorna el residuo de dividir X entre Y
Retorna el valor de X elevado al exponente Y
Retorna -1 si X < 0, 0 si X = 0, +1 si X > 0
Retorna el seno de X, Donde X esta en radianes
Retorna el seno hiperblico de X, Donde X esta
en radianes
Retorna el mximo valor entre X1,X2.Xn
Retorna el mnimo valor entre X1,X2.Xn
Retorna la raz de X
Retorna la raz con radial X
Retorna la tangente de X, Donde X esta en
radianes
Retorna la tangente hiperblica de X, Donde X
esta en radianes

FUNCIONES FINANCIERAS
Funcin
@FPA(I,N)

Descripcin
Esto devuelve el valor actual de una anualidad.
Que, una corriente de pagos por un perodo a
una tasa de inters, donde I no es porcentajes
sino pero es una fraccin que representa l a

MSc. Ing. Ezzard Omar Alvarez Daz

16

2013 - I

INVESTIGACION OPERATIVA I

tasa de inters. Por N perodos mirando un


periodo a partir de ahora.

FUNCIONES FINANCIERAS
Funcin

@PSN(X)

Descripcin
Esta es la distribucin de probabilidad
acumulada normal estndar. Un estndar X
variable aleatoria normal = media 0,0 y
Desviacin estndar = 1,0 (La curva de
campana ", centrada en el origen). El valor
devuelto por @ PSN es el rea bajo la curva a
la izquierda del punto en la ordenada indicado
por x, es decir, P (X) x

INTERFASE CON ARCHIVOS EXTERNOS


IMPORTANDO DATA DE UN CUADRO DE EXCELL
LINGO dispone de la funcin @OLE para importar data desde un cuadro de datos.
@OLE (es una tecnologa de integracin entre programas que se puede utilizar para
compartir informacin entre programas). De esta manera @OLE permite transferencia
de data entre LINGO Y EXCEL.
USANDO @OLE PARA IMPORTAR DATA DE EXCEL

MSc. Ing. Ezzard Omar Alvarez Daz

17

INVESTIGACION OPERATIVA I

2013 - I

@OLE puede leer una o dos dimensiones de rango, pero no puede leer rangos
discontinuos o rango de tres dimensiones. Los rangos son ledos de izquierda a derecha,
de arriba hacia abajo.
La sintaxis para utilizar @OLE para importar es:
Obgect_list =@OLE ([cuadro][rango]);
PARA FINES APLICATIVOS HAREMOS USO DE UN ARCHIVO QUE LINGO
CARGA POR DEFECTO AL INSTALARSE
1. Abrir el archivo de LINGO que se encuentra en la carpeta donde se encuentra
instalado LINGO C:\ LINGO11\SAMPLES\STAFFOLE(.lg4). (PARA ESTE CASO
ESTA ES LA RUTA)
Se apreciara de la siguiente forma:

1. La data para el presente modelo se esta importando desde un archivo de


EXCEL llamado
STAFFOLE.XLS que se encuentra en:

C:\ LINGO11\SAMPLES\STAFFOLE.XLS

MSc. Ing. Ezzard Omar Alvarez Daz

18

INVESTIGACION OPERATIVA I

2013 - I

SE MUESTRA LA EL CONTENIDO DE LOS DATOS DEL ARCHIVO


STAFFOLE.XLS

SE MUESTRA LA SENTENCIA PARA IMPORTAR LOS DATOS DE EXCEL


DATA:

COST, NEEDS = @OLE( '\LINGO11\SAMPLES\STAFFOLE.XLS');


@OLE( '\LINGO11\SAMPLES\STAFFOLE.XLS') = START;
ENDDATA

2. Se observa que de trata de minimizar el costo de inicio (COST*START)se


presenta el modelo:

MSc. Ing. Ezzard Omar Alvarez Daz

19

2013 - I

INVESTIGACION OPERATIVA I

3. Mediante el comando SOLVE se tiene la solucin al problema que se muestra


a continuacin
Global optimal solution found.
Objective value:
Objective bound:
Infeasibilities:
Extended solver steps:
Total solver iterations:

4400.000
4400.000
0.000000
0
6

Export Summary Report


--------------------Transfer Method:
OLE BASED
Workbook:
\LINGO11\SAMPLES\STAFFOLE.XLS
Ranges Specified:
1
START
Ranges Found:
1
Range Size Mismatches:
0
Values Transferred:
7
Variable
COST( 1)
COST( 2)
COST( 3)
COST( 4)
COST( 5)
COST( 6)
COST( 7)
NEEDS( 1)
NEEDS( 2)
NEEDS( 3)
NEEDS( 4)
NEEDS( 5)
NEEDS( 6)
NEEDS( 7)
START( 1)
START( 2)
START( 3)
START( 4)
START( 5)
START( 6)
START( 7)
Row
OBJECTIVE
COVERAGE( 1)
COVERAGE( 2)
COVERAGE( 3)
COVERAGE( 4)
COVERAGE( 5)
COVERAGE( 6)
COVERAGE( 7)

MSc. Ing. Ezzard Omar Alvarez Daz

Value
200.0000
200.0000
200.0000
200.0000
200.0000
200.0000
200.0000
19.00000
16.00000
12.00000
16.00000
20.00000
15.00000
12.00000
7.000000
3.000000
0.000000
6.000000
4.000000
2.000000
0.000000
Slack or Surplus
4400.000
0.000000
0.000000
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
200.0000
200.0000
200.0000
200.0000
200.0000
200.0000
200.0000
Dual Price
-1.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000

20

INVESTIGACION OPERATIVA I

2013 - I

EXPORTANDO SOLUCION A UN CUADRO DE EXCELL


LINGO nos permite EXPORTAR hacia un archivo de EXCEL soluciones que se
encontraron.
1. Para esto se tomara el archivo de anteriormente utilizado
C:\ LINGO11\SAMPLES\STAFFOLE(.lg4).

2. Se insertara un Nuevo objeto


con el comando Insert New
Objet.. como se muestra a
continuacin

3. Se mostrara la siguiente
interface en la cual se dar la
opcin : Crear desde archivo

MSc. Ing. Ezzard Omar Alvarez Daz

21

INVESTIGACION OPERATIVA I

2013 - I

luego con ayuda del botn Examinar direccionaremos hacia la ruta conde se
encuentra el archivo :

C:\LINGO11\SAMPLES\STAFFOLE.XLS (PARA ESTE CASO ESTA ES LA RUTA)

4. Presionar el botn Aceptar. Y luego se mostrara lo siguiente:

MSc. Ing. Ezzard Omar Alvarez Daz

22

2013 - I

INVESTIGACION OPERATIVA I

5. Mediante el comando SOLVE se tiene la solucin al problema que se muestra


a continuacin
Global optimal solution found.
Objective value:
Objective bound:
Infeasibilities:
Extended solver steps:
Total solver iterations:

Export Summary Report


--------------------Transfer Method:
Workbook:
Ranges Specified:
START

4400.000
4400.000
0.000000
0
6

OLE BASED
\LINGO11\SAMPLES\STAFFOLE.XLS
1

MSc. Ing. Ezzard Omar Alvarez Daz

23

2013 - I

INVESTIGACION OPERATIVA I
Ranges Found:
Range Size Mismatches:
Values Transferred:
Variable
COST( 1)
COST( 2)
COST( 3)
COST( 4)
COST( 5)
COST( 6)
COST( 7)
NEEDS( 1)
NEEDS( 2)
NEEDS( 3)
NEEDS( 4)
NEEDS( 5)
NEEDS( 6)
NEEDS( 7)
START( 1)
START( 2)
START( 3)
START( 4)
START( 5)
START( 6)
START( 7)
Row
OBJECTIVE
COVERAGE( 1)
COVERAGE( 2)
COVERAGE( 3)
COVERAGE( 4)
COVERAGE( 5)
COVERAGE( 6)
COVERAGE( 7)

1
0
7
Value
200.0000
200.0000
200.0000
200.0000
200.0000
200.0000
200.0000
19.00000
16.00000
12.00000
16.00000
20.00000
15.00000
12.00000
7.000000
3.000000
0.000000
6.000000
4.000000
2.000000
0.000000
Slack or Surplus
4400.000
0.000000
0.000000
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
200.0000
200.0000
200.0000
200.0000
200.0000
200.0000
200.0000
Dual Price
-1.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000

6. Una vez hallada la solucin se proceder a dar doble Clikc en el objeto que
fue generado en el archivo de Lingo y se muestra a continuacin.

MSc. Ing. Ezzard Omar Alvarez Daz

24

INVESTIGACION OPERATIVA I

2013 - I

7. Al darle doble Clikc al objeto. Se abrir el archivo de EXCEL con la solucin


exportada desde LINGO. y que se muestra a continuacin.

8. As mismo tambin podemos volver al archivo de LINGO donde se encuentra


el objeto que fue vinculado con la hoja de EXCEL por lo cual tambin se
muestra la solucin en el objeto, mostrndose de la forma siguiente.

MSc. Ing. Ezzard Omar Alvarez Daz

25

2013 - I

INVESTIGACION OPERATIVA I

***

LINGO Y ACCES
MSc. Ing. Ezzard Omar Alvarez Daz

26

INVESTIGACION OPERATIVA I

2013 - I

CREACION DE UN ORIGEN DE DATOS ODBCC-PROBLEMA DE TRANSPORTE


IMPORTANDO DESDE UNA BASE DE DATOS DE ACCESS 2007 EN EL
SISTEMA OPERATIVO WINDOWS SEVEN
Al instalar LINGO, se incluyo como parte de la instalacin una Base de Microsoft
Access para el modelo de transporte. Este archivo de Access se encuentra en el
directorio con el nombre de MUESTRAS TRANDB.MDB. Para registrar una base
datos como una fuente de datos ODBC para nuestro modelo de transporte, debe iniciar
el administrador de ODBC de la siguiente manera.
1. Hacer doble Click en el botn INICIO.
Luego dar la opcin PANEL DE
CONTROL como se muestra en la
figura.

2. Ubicar el
icono de
Orgenes de
Datos (ODBC).

3. Se observara la interface de Administrador de Orgenes de Datos ODBC.

MSc. Ing. Ezzard Omar Alvarez Daz

27

INVESTIGACION OPERATIVA I

2013 - I

Para Instalar la base de datos TRANDB.mdb como una fuente de datos, se


realizara lo siguiente:
1. Dar Click en el botn AGREGAR en la interface Administrador de Orgenes
de Datos ODBC para mostrar la siguiente interface:

2. Se esta instalando una fuente de datos de acceso en ACCES, asi que se


selecionara la opcin Microsoft Access Driver (*.mdb) y luego se pulsara el
botn FINALIZAR
3. En la siguiente interface :

MSc. Ing. Ezzard Omar Alvarez Daz

28

INVESTIGACION OPERATIVA I

2013 - I

Asignar a la fuente de datos el nombre de Transporte en el campo Nombre de


origen de datos.

En el Campo Descripcin , escriba fuente de datos para un modelo de


transporte LINGO.

Pulse el botn seleccionar e introduzca la ubicacin de base de datos .Se


direccionar la base mediante la siguiente interface:

Una vez seleccionada la base TRANDB.mdb. (La ruta de la base de datos


depende de la ubicacin en donde se encuentre instalado LINGO) se dar
Click en Aceptar. Se mostrar la interface siguiente:

MSc. Ing. Ezzard Omar Alvarez Daz

29

INVESTIGACION OPERATIVA I

2013 - I

4. Pulse
el
botn
ACEPTAR
y
se
podr ver que la
fuente de datos de
Transporte se ha
aadido a la lista de
Orgenes de Datos
ODBC.

5. Hacer Click en el botn ACEPTAR para cerrar el Administrador de Datos


ODBC.
Ahora debe ser capaz de iniciar y resolver el modelo LINGO TRANDB.LG4.
LINGO sabe ir a la fuente de datos por que el modelo de titulo (de entrada con
el titulo de declaracin) es el Transporte.

MSc. Ing. Ezzard Omar Alvarez Daz

30

2013 - I

INVESTIGACION OPERATIVA I

6. Al resolver este modelo, debera ver los siguientes resultados:


Global optimal solution found.
Objective value:
Infeasibilities:
Total solver iterations:

161.0000
0.000000
6

Export Summary Report


--------------------Transfer Method:
ODBC BASED
ODBC Data Source:
Transporte
Data Table Name:
ARCS
Columns Specified:
1
VOLUME
LINGO Column Length:
12
Database Column Length:
12
Model Title: Transporte
Variable
CAPACITY( PLANT1)
CAPACITY( PLANT2)
CAPACITY( PLANT3)
DEMAND( CUST1)
DEMAND( CUST2)
DEMAND( CUST3)
DEMAND( CUST4)

MSc. Ing. Ezzard Omar Alvarez Daz

Value
30.00000
25.00000
21.00000
15.00000
17.00000
22.00000
12.00000

Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000

31

2013 - I

INVESTIGACION OPERATIVA I
COST(
COST(
COST(
COST(
COST(
COST(
COST(
COST(
COST(
COST(
COST(
COST(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(

PLANT1,
PLANT1,
PLANT1,
PLANT1,
PLANT2,
PLANT2,
PLANT2,
PLANT2,
PLANT3,
PLANT3,
PLANT3,
PLANT3,
PLANT1,
PLANT1,
PLANT1,
PLANT1,
PLANT2,
PLANT2,
PLANT2,
PLANT2,
PLANT3,
PLANT3,
PLANT3,
PLANT3,

CUST1)
CUST2)
CUST3)
CUST4)
CUST1)
CUST2)
CUST3)
CUST4)
CUST1)
CUST2)
CUST3)
CUST4)
CUST1)
CUST2)
CUST3)
CUST4)
CUST1)
CUST2)
CUST3)
CUST4)
CUST1)
CUST2)
CUST3)
CUST4)
Row
OBJ
2
3
4
5
6
7
8

6.000000
2.000000
6.000000
7.000000
4.000000
9.000000
5.000000
3.000000
8.000000
8.000000
1.000000
5.000000
2.000000
17.00000
1.000000
0.000000
13.00000
0.000000
0.000000
12.00000
0.000000
0.000000
21.00000
0.000000
Slack or Surplus
161.0000
0.000000
0.000000
0.000000
0.000000
10.00000
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
9.000000
1.000000
0.000000
7.000000
11.00000
0.000000
5.000000
Dual Price
-1.000000
-6.000000
-2.000000
-6.000000
-5.000000
0.000000
2.000000
5.000000

EXPORTANDO DATOS EN ACCES DESDE LINGO

Tomando como base el ejemplo anterior se realizara la exportacin de los


resultados del volumen optimo encontrado por LINGO a nuestra base de base
de datos de la cual importamos la data. Esta contiene el Campo VOLUME que
se encuentra en la tabla Arcs.

1. Al modelo anterior se le agregara la siguiente instruccin:


@ODBC('Transporte','Arcs','VOLUME')=VOLUME;

Que nos indica que las soluciones de volumen encontrado se copiaran


en la base transporte, en la tabla Arcs, en el campo VOLUME.

MSc. Ing. Ezzard Omar Alvarez Daz

32

2013 - I

INVESTIGACION OPERATIVA I

2
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(
VOLUME(

Al resolver este modelo, debera ver los siguientes resultados:


PLANT1,
PLANT1,
PLANT1,
PLANT1,
PLANT2,
PLANT2,
PLANT2,
PLANT2,
PLANT3,
PLANT3,
PLANT3,
PLANT3,

CUST1)
CUST2)
CUST3)
CUST4)
CUST1)
CUST2)
CUST3)
CUST4)
CUST1)
CUST2)
CUST3)
CUST4)

2.000000
17.00000
1.000000
0.000000
13.00000
0.000000
0.000000
12.00000
0.000000
0.000000
21.00000
0.000000

0.000000
0.000000
0.000000
2.000000
0.000000
9.000000
1.000000
0.000000
7.000000
11.00000
0.000000
5.000000

Los cuales se vern en la base de datos de donde se importaron los datos:

MSc. Ing. Ezzard Omar Alvarez Daz

33

2013 - I

INVESTIGACION OPERATIVA I

ACCES nos permite generar un reporte de solucin

***

PROGRAMANDO EN LINGO
MSc. Ing. Ezzard Omar Alvarez Daz

34

INVESTIGACION OPERATIVA I

2013 - I

Una formulacin en lingo tiene tres secciones:


Seccin conjuntos, SETS que especifica los conjuntos y sus atributos.
Seccin de datos, DATA, que proporciona los datos a usar o indica donde
obtenerlos.
Seccin del modelo, MODEL, lugar donde se describe el modelo matemtico.
SECCION DE CONJUNTOS
Cada conjunto tiene la sintaxis siguiente:
NOMBRE/LOS MIEMBROS/:LOS ATRIBUTOS;
SETS:FABRICAS/F1,F2/:CAPACIDAD;
CENTROS/C1,C2,C3/:DEMANDA;
RUTAS(FABRICAS,CENTROS):C,X;
ENDSETS
Los conjuntos, FBRICAS Y CENTROS se denominan conjuntos primitivos y el
conjunto RUTAS se denomina conjunto derivado, donde C y X representa,
respectivamente los costos unitarios de transporte y cantidad transportada de las fabricas
a los centros.
SECCION DE DATOS
Los valores de los atributos de los elementos de los conjuntos, tienen la sintaxis
siguiente:
DATA:
CAPACIDAD= 30,20;
DEMANDA =10, 25,15;
C = 2, 4,6,
7, 10,1;
ENDDATA
SECCION DE MODELO
Para presentar el modelo se puede utilizar las funciones @SUM Y @FOR,
@SUM calcula la suma de la expresin sobre todo los miembros de conjunto.
La forma general es:
@SUM(set: expresin)
Suma la expresin que sigue a los dos puntos.
Por ejemplo
@SUM(RUTAS:C*X)
Suma las expresiones que sigue a los dos puntos que corresponde al producto del costo
unitario de transporte de la cantidad transportada de cada origen a cada destino
considerado.
@FOR (set: restriccin)
MSc. Ing. Ezzard Omar Alvarez Daz

35

2013 - I

INVESTIGACION OPERATIVA I

Por ejemplo:
@FOR (CENTROS (J)):@SUMA (FABRICAS (I): X (I,J))<=CAPACIDAD(I));
Indica que genera la restriccin que sigue a los dos puntos para cada miembro del
conjunto que precede. Cada elemento del conjunto CENTROS (J) PARA J=1,2,3 se
genera las restricciones siguientes:

J=1:
J=2:
J=3:

X11 + X21 >= 10


X12 + X22 >= 25
X13 + X23 >= 15

La formulacin completa es como sigue:

MODEL:
!2 FABRICAS, 3 CENTROS, problema de transporte;
SETS:
FABRICAS/F1, F2/:CAPACIDAD;
CENTROS/C1, C2, C3/:DEMANDA;
RUTAS (FABRICAS, CENTROS):C,X;
ENDSETS
DATA:
CAPACIDAD =30,20;
DEMANDA = 10,25,15;
C=2,4,6,
7,10,1;
ENDDATA
!LA FUNCION OBJETIVO;
MIN = @SUM(RUTAS:C*X);
! RESTRICCION DE LA DEMANDA;
@FOR(CENTROS(J):@SUM(FABRICAS(I):X(I,J))>=DEMANDA(J));
! RESTRICCION DE LA OFERTA;
@FOR(FABRICAS(I):@SUM(CENTROS(J):X(I,J))<=CAPACIDAD(I));
END

Para presentar el modelo algebraico se hace clic en la ficha LINGO, generate, display
model.

MODEL:

MSc. Ing. Ezzard Omar Alvarez Daz

36

2013 - I

INVESTIGACION OPERATIVA I

[_1] MIN= 2 * X_F1_C1 + 4 * X_F1_C2 + 6 * X_F1_C3 + 7 * X_F2_C1 +


10 *
X_F2_C2 + X_F2_C3 ;
[_2] X_F1_C1 + X_F2_C1 >= 10 ;
[_3] X_F1_C2 + X_F2_C2 >= 25 ;
[_4] X_F1_C3 + X_F2_C3 >= 15 ;
[_5] X_F1_C1 + X_F1_C2 + X_F1_C3 <= 30 ;
[_6] X_F2_C1 + X_F2_C2 + X_F2_C3 <= 20 ;
END
Global optimal solution found.
Objective value:
Infeasibilities:
Total solver iterations:
Variable
CAPACIDAD( F1)
CAPACIDAD( F2)
DEMANDA( C1)
DEMANDA( C2)
DEMANDA( C3)
C( F1, C1)
C( F1, C2)
C( F1, C3)
C( F2, C1)
C( F2, C2)
C( F2, C3)
X( F1, C1)
X( F1, C2)
X( F1, C3)
X( F2, C1)
X( F2, C2)
X( F2, C3)
Row
1
2
3
4
5
6

MSc. Ing. Ezzard Omar Alvarez Daz

160.0000
0.000000
4
Value
30.00000
20.00000
10.00000
25.00000
15.00000
2.000000
4.000000
6.000000
7.000000
10.00000
1.000000
5.000000
25.00000
0.000000
5.000000
0.000000
15.00000
Slack or Surplus
160.0000
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
10.00000
0.000000
1.000000
0.000000
Dual Price
-1.000000
-7.000000
-9.000000
-1.000000
5.000000
0.000000

37

2013 - I

INVESTIGACION OPERATIVA I

USO DE FUNCIONES DE DOMINIO DE VARIABLES


A menos que se especifique lo contrario, las variables en un modelo de
LINGO son continuas y no negativas. Mas especficamente las variables
pueden asumir cualquier valor real desde cero hasta mas infinito. En
muchos casos este dominio para una variable puede ser inapropiado. Por
ejemplo puede necesitarse que una variable asuma valores negativos, o
solamente valores enteros. LINGO est provisto de cuatro funciones de
dominio de variables que permiten sobrepasar el dominio por omisin de
una variable:
@GIN

Limita la variable slo a valores enteros

@BIN

Hace una variable binaria (0 1)

@FREE

Permite que la variable tome cualquier


valor real (positivo o negativo)
Limita la variable para que se ajuste a un
rango finito

@BND

USO DE VARIABLES ENTERAS


@GIN(X);
@GIN(PRODUCE(5));
@FOR(DAYS(I): @GIN(START(I)));

Transforma la variable escalar X en entera


Transforma la variable PRODUCE(5) en
entera
Transforma todas las variables del atributo
START en enteras

EJEMPLOS DE USO DE VARIABLES BINARIAS:


@BIN(X);
@BIN(INCLUDE(4));
@FOR(ITEMS: @BIN(INCLUDE));

Transforma la variable escalar X en binaria


Transforma la variable INCLUDE(4) en
binaria
Transforma todas las variables del atributo
INCLUDE en binarias

EJEMPLOS DE USO DE VARIABLES LIBRES:


@FREE(X);
@FREEE(QUANTITY(4));
@FOR(ITEMS: @FREE(QUANTITY))

MSc. Ing. Ezzard Omar Alvarez Daz

Transforma la variable escalar X en libre


Transforma la variable QUANTITY(4) en
libre
Transforma todas las variables del atributo
QUANTITY en libres

38

2013 - I

INVESTIGACION OPERATIVA I

EJEMPLOS DE USO DE VARIABLES CON LMITES:


@BND(-1, X, 1);
@BND(100, QUANTITY(4), 200) ;
@FOR(ITEMS: @BND( 10, Q, 20));
@FOR(ITEMS: @BND(QL, Q, QU));

Restringe la variable X al intervalo [-1, 1]


Limita QUANTITY(4) entre 100 y 200
Fija los lmites de todas las variables del
atributo Q en 10 y 20
Fija los lmites de todas las variables del
atributo Q en QL y QU (A QL y QU deben
habrsele asignado valores en la seccin de
datos)

OPERADORES LGICOS
LINGO tiene nueve operadores lgicos:
NOT (no), EQ (igual), NE (no igual), GT (mayor que), GE (mayor o igual), LT (menor
igual), LE (menor o igual), AND (y) Y OR(o) que se utiliza para comparar valores, la
forma de usar es:

#operador#
Ejemplo: #EQ#
EJEMPLO A (Mezcla)
Una compaa fabrica tres productos de caucho :AIRTEX(material esponjoso),
EXTENDES(material elstico) y RESISTEX(material rgido). Los tres productos
requieren los mismos tres polmeros qumicos y una base. La cantidad de caga
ingrediente usado por libra del producto final se muestra en la siguiente tabla:

producto

Ingrediente(OZ/LB de producto)
Polmero A Polmero B Polmero C
AIRTEX
4
2
4
EXTENDEX 3
2
2
RESISTEX 6
3
5
inventario
500
425
650

Base
6
9
2
1100

La compaa tiene el compromiso de producir a lo menos 1000 libras de AIRTEX ,500


libras de EXTENDEX y 400 libras de RESISTEX para la prxima semana , pero la
gerencia de la compaa sabe que puede vender ms de cada uno de los tres productos.
Los inventarios actuales de los ingredientes se muestran tambin el cuadro. Cada libra
de AIRTEX produce una ganancia de $7, cada libra de EXTENDEX una ganancia de
$7 y cada libra de RESISTEX una de $6.como gerente del departamento de produccin,
usted necesita determinar el plan de produccin optimo para esta semana.

MSc. Ing. Ezzard Omar Alvarez Daz

39

2013 - I

INVESTIGACION OPERATIVA I

SOLUCION
producto

Ingrediente(OZ/LB de producto)
Polmero A Polmero B Polmero C

AIRTEX
EXTENDEX
RESISTEX
inventario

4
3
6
500

2
2
3
425

4
2
5
650

Base

COMPROMISO

6
1000
9
500
2
400
1100

GANANCIA

7
7
6

Sea:
Xi : la cantidad de ingredientes del producto i(i=AIRTEX,EXTENDEX,RESISTEX)
que se puede usar
FUNCION OBJETIVO: Xi*ganacia(i) (i desde 1 hasta 3)
Entonces: MAX Z= 7X1 + 7*X2 + 6*X3
SUJETO A:
Xi>=Compromiso (i) (i desde 1 hasta 3)
Para i=1 X1>=1000
Para i=2 X1>=500
Para i=3 X1>=400
Xi*requerimiento (i,j)<=inventario(i)*16 , donde requerimiento (i,j)es la cantidad de
producto de cada tipo de ingrediente.
Para j=1 4X1+3X2+6X3 <=500*16;
Para j=2 2X1+2X2+3X3 <=425*16;
Para j=3 4X1+2X2+3X3 <=650*16;
Para j=4 6X1+9X2+2X3 <=1100*16;
MODEL:
SETS:
PRODUCTO/AIRTEX,EXTENDEX,RESISTEX/:NIVEL,COMPROMISO,GANANCIA;
INGREDIENTE/POLA,PLOB,POLC,BASE/:INVENTARIO;
PROIN(PRODUCTO,INGREDIENTE):X;
ENDSETS
DATA:
COMPROMISO=1000,500,400;
GANANCIA=7,7,6;
INVENTARIO= 500,425,650,1100;
X= 4,2,4,6,
3,2,2,9,
6,3,5,2;
ENDDATA
!FUNCION OBJETIVO MAXIMIZAR LA UTILIDAD;
MAX=@SUM(PRODUCTO:GANANCIA*NIVEL);
!RESTRICCION DEL INVENTARIO;
@FOR(INGREDIENTE(I):@SUM(PRODUCTO(P):X(P,I)*NIVEL(P))<=INVENTARIO(I)*1
6);

MSc. Ing. Ezzard Omar Alvarez Daz

40

2013 - I

INVESTIGACION OPERATIVA I
!RESTRICCION DEL COMPROMISO;
@FOR(PRODUCTO:NIVEL<=COMPROMISO);
END
MODEL:
[_1]
[_2]
;
[_3]
;
[_4]
;
[_5]
;
[_6]
[_7]
[_8]
END

MAX= 7 * NIVEL_AIRTEX + 7 * NIVEL_EXTENDEX + 6 * NIVEL_RESISTEX ;


4 * NIVEL_AIRTEX + 3 * NIVEL_EXTENDEX + 6 * NIVEL_RESISTEX <= 8000
2 * NIVEL_AIRTEX + 2 * NIVEL_EXTENDEX + 3 * NIVEL_RESISTEX <= 6800
4 * NIVEL_AIRTEX + 2 * NIVEL_EXTENDEX + 5 * NIVEL_RESISTEX <= 10400
6 * NIVEL_AIRTEX + 9 * NIVEL_EXTENDEX + 2 * NIVEL_RESISTEX <= 17600
NIVEL_AIRTEX <= 1000 ;
NIVEL_EXTENDEX <= 500 ;
NIVEL_RESISTEX <= 400 ;

Global optimal solution found.


Objective value:
Infeasibilities:
Total solver iterations:
Variable
NIVEL( AIRTEX)
NIVEL( EXTENDEX)
NIVEL( RESISTEX)
COMPROMISO( AIRTEX)
COMPROMISO( EXTENDEX)
COMPROMISO( RESISTEX)
GANANCIA( AIRTEX)
GANANCIA( EXTENDEX)
GANANCIA( RESISTEX)
INVENTARIO( POLA)
INVENTARIO( PLOB)
INVENTARIO( POLC)
INVENTARIO( BASE)
X( AIRTEX, POLA)
X( AIRTEX, PLOB)
X( AIRTEX, POLC)
X( AIRTEX, BASE)
X( EXTENDEX, POLA)
X( EXTENDEX, PLOB)
X( EXTENDEX, POLC)
X( EXTENDEX, BASE)
X( RESISTEX, POLA)
X( RESISTEX, PLOB)
X( RESISTEX, POLC)
X( RESISTEX, BASE)
Row
1
2
3
4
5
6
7
8

MSc. Ing. Ezzard Omar Alvarez Daz

12900.00
0.000000
0
Value
1000.000
500.0000
400.0000
1000.000
500.0000
400.0000
7.000000
7.000000
6.000000
500.0000
425.0000
650.0000
1100.000
4.000000
2.000000
4.000000
6.000000
3.000000
2.000000
2.000000
9.000000
6.000000
3.000000
5.000000
2.000000
Slack or Surplus
12900.00
100.0000
2600.000
3400.000
6300.000
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
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Dual Price
1.000000
0.000000
0.000000
0.000000
0.000000
7.000000
7.000000
6.000000

41

2013 - I

INVESTIGACION OPERATIVA I

EJEMPLO B (DIETAS)
El departamento de nutricin de un hospital prepara 30 menus de cena , uno para cada
da del mes, una comida consiste en spaghetti, pavo, papas, espinacas y pastel de
manzanas. Como director del departamento de nutricin, usted ha determinado que esta
comida debe proporcionar 63000 miligramos de protenas, 10 miligramos de hierro, 15
miligramos de niacina, 1 miligramo de tiamina y 50 miligramos de vitamina c, cada 100
gramos de esta comida proporciona la cantidad de nutriente y grasas indicadas en la
siguiente tabla:
POTAJE

NUTRIENTE( mg/100g)
PROTEINA HIERRO
SPAGHETTI 5000
1.1
PAVO
29300
1.8
PAPAS
5300
0.5
ESPINACAS 3000
2.2
PASTEL
4000
1.2

TIACINA
1.4
5.4
0.9
0.5
0.6

TIAMINA
0.18
0.06
0.06
0.07
0.15

VTNA. C

0.0
0.0
10
28
3.0

GRASA
5000
5000
7900
300
14300

SOLUCION
POTAJE
SPAGHETTI
PAVO
PAPAS
ESPINACAS
PASTEL

NUTRIENTE( mg/100g)
PROTEINA

HIERRO

TIACINA

TIAMINA

VTNA. C

GRASA

MAXIMO

5000
29300
5300
3000
4000

1.1
1.8
0.5
2.2
1.2

1.4
5.4
0.9
0.5
0.6

0.18
0.06
0.06
0.07
0.15

0.0
0.0
10
28
3.0

5000
5000
7900
300
1430
0

300
300
200
100
100

Sea Xi: cantidad de nutrientes de tipo (i= 1,2,3,4,5,6)


i=1
spaghetti
i=1
pavo
i=1
papas
i=1
espinacas
i=1
pastel
i=1
grasa
FUNCION OPBJETIVO:
Min z=Xi
Sujeto a:
Restriccin de la cantidad de grasa total que debe haber:
X6 = Xi*CGi = 0; donde CGi es la cantidad de grasa ya sea en pavo, papas, espinacas,
spaghetti, pastel.
Por tanto:
X6 5000*X1 - 5000*X2 - 7900*X3 - 3000*X4 - 14300*X5 = 0
MSc. Ing. Ezzard Omar Alvarez Daz

42

INVESTIGACION OPERATIVA I

2013 - I

Restriccin de la cantidad de nutriente por cada 100mg que proporciona


Xi < = MAXIMOi/100; Donde MAXIMOi es la cantidad mxima de cada potaje ya
sea de spaghetti, pavo, papas, espinacas y pastel.
Por tanto:
Para i=1
Para i=2
Para i=3
Para i=4
Para i=5

X1<=300/100
X2<=300/100
X3<=200/100
X4<=100/100
X5<=100/100

Restriccin de la cantidad de nutriente por potaje que debe haber como mnimo:
Xi *nutrientej,i< = MINIMOi ; donde nutriente j,i es la cantidad ya sea de protena,
hierro, tiacina, tiamina, vitamina C, grasa por cada potajei ya sea: spaghetti, pavo,
papas, espinacas y pastel. Y MINIMOi es la cantidad de potaje como mximo que debe
existir.
Por tanto:
Para i=1, 2,3,4,5 y j=1
X1*5000+x2*29300+x3*53000+x4*3000+x5*4000 >=63000
Para i=1, 2,3,4,5 y j=2
X1*1.1+X2*1.8+X3*0.5+X4*2.2+X5*1.2 >=10
Para i=1,2,3,4,5 y j=3
X1*1.4+X2*5.4+X3*0.9+X4*0.5+X5*0.6 >=15
Para i=1,2,3,4,5 y j=4
X1*0.18+X2*0.06+X3*0.06+X4*0.07+X5*0.15 >=1
Para i=1,2,3,4,5 y j=5
X1*5000+X2*5000+X3*7900+X4*300+X5*14300 >=0
Se Presenta El Modelo
MODEL:
[_1] MIN= GRASA ;
[_2] GRASA - 5000 * NIVEL_SPAGHETTI - 5000 * NIVEL_PAVO - 7900 *
NIVEL_PAPAS - 300 * NIVEL_ESPINACAS - 14300 * NIVEL_PASTEL = 0 ;
[_3] NIVEL_SPAGHETTI <= 3 ;
[_4] NIVEL_PAVO <= 3 ;
[_5] NIVEL_PAPAS <= 2 ;
[_6] NIVEL_ESPINACAS <= 1 ;
[_7] NIVEL_PASTEL <= 1 ;
[_8] 5000 * NIVEL_SPAGHETTI + 29300 * NIVEL_PAVO + 5300 * NIVEL_PAPAS +
3000 * NIVEL_ESPINACAS + 4000 * NIVEL_PASTEL >= 63000 ;
[_9] 1.1 * NIVEL_SPAGHETTI + 1.8 * NIVEL_PAVO + 0.5 * NIVEL_PAPAS + 2.2
* NIVEL_ESPINACAS + 1.2 * NIVEL_PASTEL >= 10 ;
[_10] 1.4 * NIVEL_SPAGHETTI + 5.4 * NIVEL_PAVO + 0.9 * NIVEL_PAPAS + 0.5
* NIVEL_ESPINACAS + 0.6 * NIVEL_PASTEL >= 15 ;
[_11] 0.18 * NIVEL_SPAGHETTI + 0.06 * NIVEL_PAVO + 0.06 * NIVEL_PAPAS +
0.07000000000000001 * NIVEL_ESPINACAS + 0.15 * NIVEL_PASTEL >= 1 ;
[_12] 10 * NIVEL_PAPAS + 28 * NIVEL_ESPINACAS + 3 * NIVEL_PASTEL >= 50 ;

MSc. Ing. Ezzard Omar Alvarez Daz

43

2013 - I

INVESTIGACION OPERATIVA I

[_13] 5000 * NIVEL_SPAGHETTI + 5000 * NIVEL_PAVO + 7900 * NIVEL_PAPAS +


300 * NIVEL_ESPINACAS + 14300 * NIVEL_PASTEL >= 0 ;
END

Global optimal solution found.


Objective value:
Infeasibilities:
Total solver iterations:

54800.00
0.000000
3

Variable
GRASA
NIVEL( SPAGHETTI)
NIVEL( PAVO)
NIVEL( PAPAS)
NIVEL( ESPINACAS)
NIVEL( PASTEL)
MAXIMO( SPAGHETTI)
MAXIMO( PAVO)
MAXIMO( PAPAS)
MAXIMO( ESPINACAS)
MAXIMO( PASTEL)
MINIMO( PROTEINA)
MINIMO( HIERRO)
MINIMO( TIACINA)
MINIMO( TIAMINA)
MINIMO( VITAMC)
MINIMO( GRASA)
REQ( SPAGHETTI, PROTEINA)
REQ( SPAGHETTI, HIERRO)
REQ( SPAGHETTI, TIACINA)
REQ( SPAGHETTI, TIAMINA)
REQ( SPAGHETTI, VITAMC)
REQ( SPAGHETTI, GRASA)
REQ( PAVO, PROTEINA)
REQ( PAVO, HIERRO)
REQ( PAVO, TIACINA)
REQ( PAVO, TIAMINA)
REQ( PAVO, VITAMC)
REQ( PAVO, GRASA)
REQ( PAPAS, PROTEINA)
REQ( PAPAS, HIERRO)
REQ( PAPAS, TIACINA)
REQ( PAPAS, TIAMINA)
REQ( PAPAS, VITAMC)
REQ( PAPAS, GRASA)
REQ( ESPINACAS, PROTEINA)
REQ( ESPINACAS, HIERRO)
REQ( ESPINACAS, TIACINA)
REQ( ESPINACAS, TIAMINA)
REQ( ESPINACAS, VITAMC)
REQ( ESPINACAS, GRASA)
REQ( PASTEL, PROTEINA)
REQ( PASTEL, HIERRO)
REQ( PASTEL, TIACINA)
REQ( PASTEL, TIAMINA)
REQ( PASTEL, VITAMC)
REQ( PASTEL, GRASA)

Value
54800.00
3.000000
2.833333
2.000000
1.000000
0.6666667
300.0000
300.0000
200.0000
100.0000
100.0000
63000.00
10.00000
15.00000
1.000000
50.00000
0.000000
5000.000
1.100000
1.400000
0.1800000
0.000000
5000.000
29300.00
1.800000
5.400000
0.6000000E-01
0.000000
5000.000
5300.000
0.5000000
0.9000000
0.6000000E-01
10.00000
7900.000
3000.000
2.200000
0.5000000
0.7000000E-01
28.00000
300.0000
4000.000
1.200000
0.6000000
0.1500000
3.000000
14300.00

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
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

Row
1
2
3
4
5
6
7
8
9
10
11
12
13

Slack or Surplus
54800.00
0.000000
0.000000
0.1666667
0.000000
0.000000
0.3333333
51283.33
2.400000
7.200000
0.000000
0.000000
54800.00

Dual Price
-1.000000
-1.000000
10000.00
0.000000
3100.000
22333.33
0.000000
0.000000
0.000000
0.000000
-83333.33
-600.0000
0.000000

MSc. Ing. Ezzard Omar Alvarez Daz

44

2013 - I

INVESTIGACION OPERATIVA I

EJEMPLO C
la cadena de restaurantes cuatro maras se especializa en la preparacin y venta de
pescados y mariscos . la demanda de pescado de las 4 sucursales de la cadena de
restaurantes s e presenta en la siguiente tabla:
SUCURSAL

JESUS MARIA

CALLAO

SAN LUIS

LOS OLIVOS

15

17

22

12

Demanda(ton)

La cadena de restaurantes compra el pescado de tres proveedores que proporciona las


siguientes cantidades (ton) de pescado:
PROVEEDOR

VENTANILLA

VILLA
SALVADOR

CHORRILLOS

30

25

21

CANTIDAD

Los costos de transporte (soles/ton) de los proveedores a las sucursales son:


SUCURSAL
VENTANILLA
VILLA SALV.
CHORRILLOS

JESUS MARIA

CALLAO

SAN LUIS

LOS OLIVOS

6
4
8

2
9
8

6
5
1

7
3
5

Formule el modelo de PL que permita la distribucin optima de pescado de los


proveedores de las sucursales:
SOLUCION:
El problema nos menciona que debemos determinar la distribucin optima de pescado o
tambin dicho la cantidad de toneladas pescado que debe ir de cada proveedor a cada
sucursal de la empresa, este dato debe reflejarse en la funcin objetivo.
Xij : cantidad de pescado distribuido (en toneladas) por el proveedor i hacia el destino j
donde (i va de 1 a 3 y j de 1 a 4)
E n esta expresin i(por convencin representa las filas) representa los proveedores
y j representa las sucursales.
Ya tenemos el conjunto de variables con que vamos a trabajar pero eso no es suficiente
para determinar la funcin objetivo, para nuestro caso nos pide determinar la
distribucin optima para tener el menor costo posible debido a la distribucin de
pescado
SUCURSAL
VENTANILLA
VILLA SALV.

JESUS MARIA

CALLAO

SAN LUIS

LOS OLIVOS

6
4

2
9

6
5

7
3

MSc. Ing. Ezzard Omar Alvarez Daz

45

2013 - I

INVESTIGACION OPERATIVA I

CHORRILLOS

Para armar la funcin objetivo necesitamos relacionar los datos costo unitario por
tonelada de pescado por numero de toneladas de pescado transportados esto nos dara el
costo total de transporte.
En la tabla relacionamos primero al primer proveedor ventanilla con la primera sucursal
Jess mara este dato nos refleja el costo por tonelada desde ventanilla hasta Jess mara
cual nos da la relacin 6X11 este mismo paso para los demas con lo cual tendramos:
FO: MIN Z = Xij*Cij ; donde i va desde 1 a3 y j de 1 a4)
Determinado las restricciones:
Al determinar nuestra funcin objetivo ya tenemos un punto departida de donde
trabajar, ahora sabemos relacionar la forma mas adecuada todos los datos que tengamos
a mano de preferencia almacenarlos en una sola tabla.
Sucursal
PROVEDOR

JESUS
MARIA

CALLAO

SAN LUIS

LOS OLIVOS

DISPONIBILIDAD

VENTANILLA

6
4
8
15

2
9
8
17

6
5
1
22

7
3
5
12

30
25
21

VILLA SALV.
CHORRILLOS

DEMANDA

Restriccin de la demanda:
Para la determinacin de las restricciones se debe tener en cuenta la relacin de los
datos para el caso de la demanda ella est relacionada directamente con los proveedores
ya que reflejan la cantidad de toneladas que requiere cada sucursal. Entonces la
restriccin de la demanda va estar basada segn sucursal j.
Para j=1

xi,1 >= disponibilidad(1)

X11+X21+X31 >=15 (Jess Mara)


Para j=2

xi,2 >= disponibilidad(2)

X12+X22+X32 >=17 (Callo)


Para j=3

xi,3 >= disponibilidad(3)

X13+X23+X33 >=22 (san luis)


Para j=4

xi,4 >= disponibilidad(4)

X14+X24+X34 >=12 (los olivos)


MSc. Ing. Ezzard Omar Alvarez Daz

46

INVESTIGACION OPERATIVA I

2013 - I

El smbolo de mayor igual en las restricciones quiere decir que la empresa requiere
satisfacer sus necesidades de la demanda ms un excedente para que no haya problemas
en suficiencia de comida
Como se observa no se ha tomado los datos de los costos de transporte, esto se debe a
que la demanda est en funcin da las cantidades de pescado y no en funcin a los
costos, es por ello que se relaciona directamente con las cantidades a transportar, en
conclusin se deben relacionar datos que tengan igual unidades de medicin para que
exista concordancia en el problema
Restriccin de la disponibilidad
Se trabaja de forma anloga a la restriccin de la demanda pero como se vio en el
cuadro anterior la disponibilidad no esta relacionada con las sucursales si no con os
proveedores , entonces.
El smbolo de menor igual refleja que los proveedores pueden distribuir todo el pescado
que poseen o menos hacia las sucursales.
Para i=1

x1,j >= compra(1)

X11+X12+X13 >=30 (ventanilla)


Para i=2

x2,j >= compra(2)

X21+X22+X23 >=25 (villa el salvador)


Para i=3

x3,j >= compra(3)

X31+X32+X33 >=30 (chorrillos)


Al igual que la demanda la disponibilidad esta en funcin de la cantidad de toneladas
transportadas as que no debe relacionarse con los costos.
El modelo en LINGO es:
MODEL:
! Problema de transporte de 3 proveedores a 4 sucursales;
SETS:
PROVEEDOR / WH1, WH2, WH3/: CAPACIDAD;
SUCURSAL
/ C1, C2, C3, C4/: DEMANDA;
RUTAS( PROVEEDOR, SUCURSAL): COSTO, VOLUMEN;
ENDSETS
! La funcin objetivo;
[OBJ] MIN = @SUM( RUTAS: COSTO * VOLUMEN);
! Las restricciones de demanda son;

MSc. Ing. Ezzard Omar Alvarez Daz

47

2013 - I

INVESTIGACION OPERATIVA I

@FOR( SUCURSAL( J):


@SUM( PROVEEDOR( I): VOLUMEN( I, J)) >= DEMANDA( J));
! Las restricciones de los proveedores son;
@FOR( PROVEEDOR( I):
@SUM( SUCURSAL( J): VOLUMEN( I, J)) <= CAPACIDAD( I));
! Los parmetros del modelo son;
DATA:
CAPACIDAD = 30, 25, 21 ;
DEMANDA =
15, 17, 22, 12 ;
COSTO =
6, 2, 6, 7,
4, 9, 5, 3,
8, 8, 1, 5 ;
ENDDATA
END
El reporte de LINGO es:
Global optimal solution found.
Objective value:
Infeasibilities:
Total solver iterations:
Variable
CAPACIDAD( WH1)
CAPACIDAD( WH2)
CAPACIDAD( WH3)
DEMANDA( C1)
DEMANDA( C2)
DEMANDA( C3)
DEMANDA( C4)
COSTO( WH1, C1)
COSTO( WH1, C2)
COSTO( WH1, C3)
COSTO( WH1, C4)
COSTO( WH2, C1)
COSTO( WH2, C2)
COSTO( WH2, C3)
COSTO( WH2, C4)
COSTO( WH3, C1)
COSTO( WH3, C2)
COSTO( WH3, C3)
COSTO( WH3, C4)
VOLUMEN( WH1, C1)
VOLUMEN( WH1, C2)
VOLUMEN( WH1, C3)
VOLUMEN( WH1, C4)
VOLUMEN( WH2, C1)
VOLUMEN( WH2, C2)
VOLUMEN( WH2, C3)
VOLUMEN( WH2, C4)
VOLUMEN( WH3, C1)
VOLUMEN( WH3, C2)
VOLUMEN( WH3, C3)
VOLUMEN( WH3, C4)
Row
OBJ
2
3
4

MSc. Ing. Ezzard Omar Alvarez Daz

161.0000
0.000000
6
Value
30.00000
25.00000
21.00000
15.00000
17.00000
22.00000
12.00000
6.000000
2.000000
6.000000
7.000000
4.000000
9.000000
5.000000
3.000000
8.000000
8.000000
1.000000
5.000000
2.000000
17.00000
1.000000
0.000000
13.00000
0.000000
0.000000
12.00000
0.000000
0.000000
21.00000
0.000000
Slack or Surplus
161.0000
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
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
2.000000
0.000000
9.000000
1.000000
0.000000
7.000000
11.00000
0.000000
5.000000
Dual Price
-1.000000
-6.000000
-2.000000
-6.000000

48

2013 - I

INVESTIGACION OPERATIVA I
5
6
7
8

0.000000
10.00000
0.000000
0.000000

-5.000000
0.000000
2.000000
5.000000

EJEMPLO D
La ciudad de busville tiene tres distritos escolares. En la tabla A se da elnumero de
estudiantes que pertenecen a grupos minoritarios y no minoritarios. El 25% de todos los
estudiantes (200/800) pertenecen a grupos minoritarios
DISTRITO

ESTUDIANTES DE
GRUPOS MINORITARIOS

ESTUDIANTES DE GRUPO
MAYORITARIO

1
2
3

50
50
100

200
250
150

la corte local a decidido que cada una de las dos escuelas de segunda enseanza de la
ciudad (cooley y walt widman) debe tener aproximadamente (ms o menos el 5%) el
mismo porcentaje de estudiantes de minoras, que la ciudad entera. En la tabla B se da
las distancias entre los distritos escolares y las escuelas. Cada escuela debe tener entre
300 y 500 estudiantes. Utilice la programacin lineal para determinar la asignacin de
los estudiantes a cada escuela para minimizar la distancia total que tiene que viajar los
estudiantes para llegar a ella:
DISTRITO COOLEY WALT WITMAN
1
1
2
2
2
1
3
1
1
SOLUCION
Primero vamos a encontrar la funcin objetivo, la escuela busca minimizar la distancia
total recorrida por sus estudiantes de su distrito a la escuela y cuantos estudiantes son
mayoras y minoritario, entonces vamos a llamar a la variable estudiantes i,j,k, donde :
i: estudiantes del distrito i(i=1,2,3) que pertenece al grupo j(1:minora, 2: mayora) y
que estudia en la escuela k(1: cooley, 2:walt witman). Si solo queremos expresar
escalarmente con los datos de la tabla.

MINIMIZAR DISTANCIA ik*Estudiante ijk


Las Restricciones
La primera restriccin va ser con respecto a la cantidad de alumnos de los dos tipos en
los distritos i, segn la encuesta realizada matemticamente lo expresamos as:

FOR i (FOR j Estudiante ijk < Cantidad ij)


La segunda restriccin es con respecto a la cantidad de estudiantes en cada escuela por
tos nos dicen que el mnimo numero de estudiantes para las dos escuelas es 30
estudiantes y la mxima es de 500 estudiantes, lo presentamos as:
MSc. Ing. Ezzard Omar Alvarez Daz

49

2013 - I

INVESTIGACION OPERATIVA I

FOR k ij Estudiante ijk >= Numero Estudiantes


La tercera restriccin es con respecto al porcentaje de alumnos en cada escuela, la
minoritaria representa el 25% de la ciudad entera y la mayora el 75%, como nos dice
que cada escuela tiene un +- 5% de minora total de la cuidad, entonces cada escuela
debe tomar entre el 20% y el 30% de estudiantes de las minoras. Representando
matemticamente:

FOR k ( i j Estudiante ijk >= porctipo*( i j Estudiante ijk))

PROBLEMA 1:
Una compaa elabora dos productos P1 y P2, cada uno requiere e
componentes C1 y C2, la disponibilidad de los componentes y precio de
venta de muestra en el siguiente cuadro:
Producto

Componentes

Precio de Venta
(S/./Unidad)
4
3

C1
C2
P1
1
2
P2
3
1
Dispone
15000
10000
Se pide formular el problema y optimizar el ingreso de ventas:
DEFINIREMOS LOS CONJUNTOS:
SETS:
PROD/1..2/:PV,X;
COM/1..2/:DISP;
MATRIZ(PROD,COM):CANT;
ENDSETS
Luego procedermosa ingresar los datos
DATA:
PV=4,3;
DISP=15000,10000;
CANT=1,2, 3,1;
ENDDATA
MSc. Ing. Ezzard Omar Alvarez Daz

50

INVESTIGACION OPERATIVA I

2013 - I

PLANTEAREMOS LA FUNCION OBGETIVO:


MAX=@SUM(PROD:PV*X);
LAS RESTRICCIONES :
MAX=@SUM(PROD:PV*X);
@FOR(COM(J):@SUM(PROD(I):CANT(I,J)*X(I))<=DISP(J));
FINALIZAREMOS EL MODELO CON EL COMADO
END
El modelo deber quedar de la siguiente manera:

/Se muestra el codigo del programa/

MSc. Ing. Ezzard Omar Alvarez Daz

51

INVESTIGACION OPERATIVA I

2013 - I

!PROBLEMA N1;
!PROD=TIPO DE PRODUCTO PV=PRECIO DE VENTA DE PRODUCTO;
!COM=COMPONENTES DISP=DISPONIBILIDAD DE LOS COMPONENTES;
!CANT=COMPONENTES PARA CADA PRODUCTO X=CANTIDAD DEL
PRODUCTO(1,2);
SETS:
PROD/1..2/:PV,X;
COM/1..2/:DISP;
MATRIZ(PROD,COM):CANT;
ENDSETS
DATA:
PV=4,3;
DISP=15000,10000;
CANT=1,2,
3,1;
ENDDATA
MAX=@SUM(PROD:PV*X);
@FOR(COM(J):@SUM(PROD(I):CANT(I,J)*X(I))<=DISP(J));
END

Procederemos a generar el modelo

MSc. Ing. Ezzard Omar Alvarez Daz

52

INVESTIGACION OPERATIVA I

2013 - I

Nos muestra lo siguiente.

Se dar el comando SOLVE para hallar la solucion del modelo.


Luego del cual no mostrara la siguiente:

Global optimal solution found.


Objective value:
Infeasibilities:
Total solver iterations:
Variable
PV( 1)
PV( 2)
X( 1)
X( 2)
DISP( 1)
DISP( 2)
CANT( 1, 1)
CANT( 1, 2)
CANT( 2, 1)
CANT( 2, 2)
Row
1

24000.00
0.000000
2

Value
Reduced Cost
4.000000
0.000000
3.000000
0.000000
3000.000
0.000000
4000.000
0.000000
15000.00
0.000000
10000.00
0.000000
1.000000
0.000000
2.000000
0.000000
3.000000
0.000000
1.000000
0.000000

Slack or Surplus Dual Price


24000.00
1.000000

MSc. Ing. Ezzard Omar Alvarez Daz

53

2013 - I

INVESTIGACION OPERATIVA I

2
3

0.000000
0.000000

0.4000000
1.800000

Nos indica que el valor de la funcion objetivo sera de 24000 si


se tiene
X( 1)
3000.000
X( 2)
4000.000
Problema 2. Una empresa se dedica a la construccin de puertas y ventanas de fierro.
Una puerta requiere 2 horas de pintado y 5 horas de soldadura, mientras que una
ventana requiere 4 de pintado y 6 de soldadura. El total de horas disponibles de la
mquina para pintura es 150 y de la mquina para soldar es 200. La utilidad de una
puerta es 30 dlares y de una ventana es 40 dlares. Formule un modelo que permita
determinar la combinacin ptima de produccin de puertas y ventanas.
El modelo en LINGO es:
Model:
sets:
productos/puerta, ventana/: utilidad, cant;
materia_prima/pintura, soldadura/:horas_disponibles;
horas(productos,materia_prima):hora;
endsets
data:
hora= 2, 5, 4, 6;
utilidad= 30, 40;
horas_disponibles= 150, 200;
enddata
max=@sum(productos(i):cant(i)*utilidad(i));
@for(materia_prima(j):@sum(productos(i):cant(i)*hora(i,j))<=horas_disponibles(j));
@for(productos(i):@gin(cant(i)));
end
Global optimal solution found.
Objective value:
Objective bound:
Infeasibilities:
Extended solver steps:
Total solver iterations:
Variable
UTILIDAD( PUERTA)
UTILIDAD( VENTANA)
CANT( PUERTA)
CANT( VENTANA)
HORAS_DISPONIBLES( PINTURA)
HORAS_DISPONIBLES( SOLDADURA)
HORA( PUERTA, PINTURA)
HORA( PUERTA, SOLDADURA)
HORA( VENTANA, PINTURA)
HORA( VENTANA, SOLDADURA)
Row
1

MSc. Ing. Ezzard Omar Alvarez Daz

1320.000
1320.000
0.000000
0
0
Value
30.00000
40.00000
0.000000
33.00000
150.0000
200.0000
2.000000
5.000000
4.000000
6.000000
Slack or Surplus
1320.000

Reduced Cost
0.000000
0.000000
-30.00000
-40.00000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Dual Price
1.000000

54

2013 - I

INVESTIGACION OPERATIVA I
2
3

18.00000
2.000000

0.000000
0.000000

Problema 3.

Sailco Corporation tiene que determinar cuntos veleros hay que producir en
cada uno de cuatro trimestres. La demanda es 40, 60, 75 y 25 para el primer, segundo, tercero y
cuarto trimestre. Sailco tiene que cumplir con las demandas. Al principio del primer trimestre,
Sailco tiene un inventario de 10 veleros. Sailco tiene que decidir, al principio de cada trimestre,
cuntos veleros hay que construir en el trimestre. Los veleros construidos en un trimestre son
usados para satisfacer la demanda de ese trimestre. Durante cada trimestre, Sailco puede
producir hasta 40 veleros, en el tiempo regular de trabajo, a un costo de 400 dlares por velero.
Sailco puede producir ms veleros, al hacer que trabajen tiempo extra los empleados durante un
trimestre, a un costo total de 450 dlares por velero. Al final de cada trimestre (despus de
terminar la produccin y despus de satisfacer la demanda del trimestre actual) se presentan
costos de mantenimento del inventario, de 20 dlares por velero.Utilice la programacin lineal
para determinar un programa de produccin para los siguientes cuatro trimestres.

El modelo en LINGO es:


Sets:
trimestres/q1,q2,q3,q4/:tiempo,demanda,prod_reg,prod_ext,inv;
Endsets
min=@sum(trimestres:400*prod_reg+450*prod_ext+20*inv);
@for(trimestres(i):prod_reg(i)<40);
@for(trimestres(i)|tiempo(i) #gt#1:
inv(i)=inv(i-1)+prod_reg(i)+prod_ext(i)-demanda(i););
inv(1)=10+prod_reg(1)+prod_ext(1)-demanda(1);
Data:
demanda=40,60,75,25;
tiempo=1,2,3,4;
Enddata
End
El reporte de LINGO es:
Global optimal solution found.
Objective value:
Infeasibilities:
Total solver iterations:
Variable
TIEMPO( Q1)
TIEMPO( Q2)
TIEMPO( Q3)
TIEMPO( Q4)
DEMANDA( Q1)
DEMANDA( Q2)
DEMANDA( Q3)
DEMANDA( Q4)
PROD_REG( Q1)
PROD_REG( Q2)
PROD_REG( Q3)
PROD_REG( Q4)
PROD_EXT( Q1)
PROD_EXT( Q2)
PROD_EXT( Q3)
PROD_EXT( Q4)

MSc. Ing. Ezzard Omar Alvarez Daz

Value
1.000000
2.000000
3.000000
4.000000
40.00000
60.00000
75.00000
25.00000
40.00000
40.00000
40.00000
25.00000
0.000000
10.00000
35.00000
0.000000

78450.00
0.000000
8
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
20.00000
0.000000
0.000000
50.00000

55

2013 - I

INVESTIGACION OPERATIVA I
INV(
INV(
INV(
INV(

Q1)
Q2)
Q3)
Q4)

10.00000
0.000000
0.000000
0.000000

Row
1
2
3
4
5
6
7
8
9

Slack or Surplus
78450.00
0.000000
0.000000
0.000000
15.00000
0.000000
0.000000
0.000000
0.000000

0.000000
20.00000
70.00000
420.0000
Dual Price
-1.000000
30.00000
50.00000
50.00000
0.000000
450.0000
450.0000
400.0000
430.0000

Problema 4. NEWCOMP S.A. ha obtenido fondos para producir un nuevo tipo de


computadora. La empresa debe decidir la ubicacin y el tamao de las fbricas que
producirn la computadora. Existen dos lugares disponibles, en cada lugar slo puede
construirse a lo ms una fbrica pequea, grande o enorme. En uno de los lugares se
puede construir una fbrica enorme. La tabla N1 presenta los costos de construccin de
las fbricas, sus capacidades de produccin y los costos unitarios de manufactura de la
computadora para cada una de las alternativas.
Tabla N 1
Lugar

Ate
Bellavista

Tamao

Pequea
Grande
Pequea
Grande
Enorme

Costo de
construccin
(miles de
dlares)
1000
1500
1200
1600
2000

Capacidad
(miles de
unidades)

Costo de
Manufactura
(dlares por unidad)

600
1200
600
1200
2000

5.00
4.00
5.00
4.00
3.50

NEWCOMP S.A. debe distribuir su producto en cuatro regiones. El costo de transporte


por unidad de las fbricas a las regiones y los requerimientos de las regiones se
presentan en la tabla N2.
Tabla N2
De la fbrica
ATE
BELLAVISTA
Requerimiento (Miles de
unidades)

1
1
2
500

Hasta la regin
2
3
4
2
3
4
3
2
3
200 700 800

NEWCOMP S.A. debe decidir en qu lugares se deben construir las fbricas, de qu


tamaos deben ser stas y cmo se deben satisfacer los requerimientos de las regiones.
MSc. Ing. Ezzard Omar Alvarez Daz

56

2013 - I

INVESTIGACION OPERATIVA I

El modelo en LINGO es:


model:
sets:
fabrica/fpa,fga,fpb,fgb,feb/:capacidad,costo_construccion, costo_manufactura,
construccion;
region/r1,r2,r3,r4/:requerimiento;
rutas(fabrica, region): costo, cantidad;
endsets
data:
capacidad
=
600, 1200, 600, 1200, 2000;
costo_construccion =
1000, 1500, 1200, 1600, 2000;
costo_manufactura =
5, 4, 5, 4, 3.5;
requerimiento
= 500, 200, 700, 800;
costo = 1, 2, 3, 4,
1, 2, 3, 4,
2, 3, 2, 3,
2, 3, 2, 3,
2, 3, 2, 3;
enddata
min=@sum(rutas:costo*cantidad)+@sum(fabrica: costo_construccion*construccion)
+@sum(fabrica(i):@sum(rutas(i,j):costo_manufactura(i)*cantidad(i,j)));
@for(region(j):@sum(rutas(i,j) : cantidad(i,j)) >= requerimiento(j));
@for(fabrica(i):@sum(rutas (i,j) : cantidad(i,j))<=capacidad(i)*construccion(i));
@for(fabrica(i):@sum(rutas(i,j) : cantidad(i,j))<=capacidad(i));
@for(fabrica:@bin(construccion));
El reporte de LINGO es:
Global optimal solution found.
Objective value:
Objective bound:
Infeasibilities:
Extended solver steps:
Total solver iterations:
Variable
CAPACIDAD( FPA)
CAPACIDAD( FGA)
CAPACIDAD( FPB)
CAPACIDAD( FGB)
CAPACIDAD( FEB)
COSTO_CONSTRUCCION( FPA)
COSTO_CONSTRUCCION( FGA)
COSTO_CONSTRUCCION( FPB)
COSTO_CONSTRUCCION( FGB)
COSTO_CONSTRUCCION( FEB)
COSTO_MANUFACTURA( FPA)
COSTO_MANUFACTURA( FGA)

MSc. Ing. Ezzard Omar Alvarez Daz

16200.00
16200.00
0.000000
3
29
Value
600.0000
1200.000
600.0000
1200.000
2000.000
1000.000
1500.000
1200.000
1600.000
2000.000
5.000000
4.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

57

2013 - I

INVESTIGACION OPERATIVA I
COSTO_MANUFACTURA( FPB)
COSTO_MANUFACTURA( FGB)
COSTO_MANUFACTURA( FEB)
CONSTRUCCION( FPA)
CONSTRUCCION( FGA)
CONSTRUCCION( FPB)
CONSTRUCCION( FGB)
CONSTRUCCION( FEB)
REQUERIMIENTO( R1)
REQUERIMIENTO( R2)
REQUERIMIENTO( R3)
REQUERIMIENTO( R4)
COSTO( FPA, R1)
COSTO( FPA, R2)
COSTO( FPA, R3)
COSTO( FPA, R4)
COSTO( FGA, R1)
COSTO( FGA, R2)
COSTO( FGA, R3)
COSTO( FGA, R4)
COSTO( FPB, R1)
COSTO( FPB, R2)
COSTO( FPB, R3)
COSTO( FPB, R4)
COSTO( FGB, R1)
COSTO( FGB, R2)
COSTO( FGB, R3)
COSTO( FGB, R4)
COSTO( FEB, R1)
COSTO( FEB, R2)
COSTO( FEB, R3)
COSTO( FEB, R4)
CANTIDAD( FPA, R1)
CANTIDAD( FPA, R2)
CANTIDAD( FPA, R3)
CANTIDAD( FPA, R4)
CANTIDAD( FGA, R1)
CANTIDAD( FGA, R2)
CANTIDAD( FGA, R3)
CANTIDAD( FGA, R4)
CANTIDAD( FPB, R1)
CANTIDAD( FPB, R2)
CANTIDAD( FPB, R3)
CANTIDAD( FPB, R4)
CANTIDAD( FGB, R1)
CANTIDAD( FGB, R2)
CANTIDAD( FGB, R3)
CANTIDAD( FGB, R4)
CANTIDAD( FEB, R1)
CANTIDAD( FEB, R2)
CANTIDAD( FEB, R3)
CANTIDAD( FEB, R4)
Row
1
2
3
4
5
6
7
8
9
10
11
12
13

MSc. Ing. Ezzard Omar Alvarez Daz

5.000000
4.000000
3.500000
1.000000
0.000000
0.000000
0.000000
1.000000
500.0000
200.0000
700.0000
800.0000
1.000000
2.000000
3.000000
4.000000
1.000000
2.000000
3.000000
4.000000
2.000000
3.000000
2.000000
3.000000
2.000000
3.000000
2.000000
3.000000
2.000000
3.000000
2.000000
3.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
500.0000
0.000000
700.0000
800.0000
Slack or Surplus
16200.00
0.000000
0.000000
0.000000
0.000000
400.0000
0.000000
0.000000
0.000000
0.000000
400.0000
1200.000
600.0000

0.000000
0.000000
0.000000
1000.000
300.0000
1200.000
1600.000
2000.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
2.000000
2.000000
0.000000
0.000000
2.000000
2.000000
1.000000
1.000000
1.000000
1.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Dual Price
-1.000000
-6.000000
-7.000000
-6.000000
-7.000000
0.000000
1.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000

58

2013 - I

INVESTIGACION OPERATIVA I
14
15

1200.000
0.000000

0.000000
0.5000000

Problema 6 PLANEACIN DE PRODUCCIN


QUMICA S.A. produce dos solventes, S1 y S2. Las empresas compran S1
y S2 para disolver ciertas pinturas y sustancias txicas. La empresa trabaja
40 horas semanales y en el departamento de mezcla tiene a 4 trabajadores
a tiempo completo y a tres a tiempo parcial, que trabajan 10 horas a la
semana cada uno. Los trabajadores operan seis mquinas que mezclan las
sustancias qumicas para producir cada solvente. Los productos salen del
departamento de mezclado para pasar al departamento de purificacin que
posee seis purificadores y emplea a siete trabajadores de tiempo completo y
a uno de tiempo parcial que trabaja 12 horas a la semana. QUMICA S.A.
tiene una provisin ilimitada de materia prima para producir los dos
solventes. El volumen de venta de S1 es ilimitado pero de S2 es de 100,000
galones semanales. El departamento de contabilidad estima una utilidad de
$0.35 por galn de S1 y $0.45 por galn de S2. El gerente de procesos
estima que el nmero de horas necesarias para producir mil galones de cada
solvente en los departamentos de mezcla y purificacin es dada en la
siguiente tabla:
Departamento
Mezcla
Purificacin

S1
2
1

S2
1
2

Cul es el plan de produccin ptimo para QUMICA S.A.?


El modelo en LINGO es:
Model:
Sets:
Solvente/s1,s2/:;
Departamento/ mezcla, purificacion/: disponibilidad_horas;
Produccion(Solvente):cantidad, utilidad;
Horas_de_consumo(Solvente,Departamento):Horas;
endsets
Data:
utilidad = 350, 450;
horas = 2,1, 1,2;
disponibilidad_horas=190, 292;
enddata
max=@sum(Produccion:cantidad*utilidad);
@for(Departamento(j):@sum(Produccion(i):cantidad(i)*horas(i,j))<=disponibilidad_ho
ras(j));
cantidad(2)<=100;
MSc. Ing. Ezzard Omar Alvarez Daz

59

2013 - I

INVESTIGACION OPERATIVA I

El reporte de LINGO es:

Global optimal solution found.


Objective value:
Infeasibilities:
Total solver iterations:
Variable
DISPONIBILIDAD_HORAS( MEZCLA)
DISPONIBILIDAD_HORAS( PURIFICA
CANTIDAD( S1)
CANTIDAD( S2)
UTILIDAD( S1)
UTILIDAD( S2)
HORAS( S1, MEZCLA)
HORAS( S1, PURIFICACION)
HORAS( S2, MEZCLA)
HORAS( S2, PURIFICACION)
Row
1
2
3
4

60750.00
0.000000
1
Value
190.0000
292.0000
45.00000
100.0000
350.0000
450.0000
2.000000
1.000000
1.000000
2.000000
Slack or Surplus
60750.00
0.000000
47.00000
0.000000

Reduced Cost
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
Dual Price
1.000000
175.0000
0.000000
275.0000

Problema 9. (PROGRAMACIN POR OBJETIVOS) El administrador de la Reserva


Nacional del Man ha presentado un proyecto de limpieza de un rea de bosque virgen
que requiere de 180 horas-hombre de trabajo por hectrea y un costo de S/. 450 por
hectrea. Los cambios ecolgicos debido a esta limpieza son: 100 rboles por hectrea
de distintas especies nunca antes vistos crecern y los nidos de las aves se reducirn en
60 por hectrea. Adicionalmente se debe realizar la construccin de carreteras
afirmadas, a un costo de S/. 2000 por kilmetro y con la utilizacin de 54 horas-hombre
por kilmetro. Los cambios ecolgicos de estas carreteras son: prdida de 20 rboles de
especies nunca antes vistas por kilmetro construido e incremento en 180 nidos por
kilmetro construido. La cantidad mxima de carretera afirmada debe ser de 50
kilmetros. La disponibilidad de horas-hombre es de 12000.
En estas circunstancias, el Administrador se propone cumplir las siguientes metas:
i) Alcanzar 6000 rboles con la condicin de que por cada rbol que no se alcance se
tenga que pagar S/. 20.
ii) Alcanzar 2500 nidos para las aves, con un costo de S/. 40 por cada nido que se
pierda.
iii) Gastar exactamente los S/. 90000 del presupuesto de la Reserva Nacional del Man.
Cada nuevo sol por exceso tendr un costo de S/. 1.00 y cada nuevo sol por defecto
(sobrante) tendr un costo de S/. 15 por no invertir.
Formule el modelo de PL que permita alcanzar las metas propuestas por el
administrador.

MSc. Ing. Ezzard Omar Alvarez Daz

60

2013 - I

INVESTIGACION OPERATIVA I

El modelo en LINGO es:


!HL = Hectreas de limpieza
!KC = Kilmetros de carretera
Model:
min= 20*D1 + 40*D2 + 15*D3+E3;
100*HL-20*KC +D1-E1 = 6000;
-60*HL + 180*KC +D2-E2= 2500;
450*HL + 2000*KC +D3- E3 = 90000;
180*HL + 54*KC <= 12000;
KC <=50;
end
El reporte de LINGO es:
Global optimal solution found.
Objective value:
Infeasibilities:
Total solver iterations:
Variable
D1
D2
D3
E3
HL
KC
E1
E2
Row
1
2
3
4
5
6

MSc. Ing. Ezzard Omar Alvarez Daz

20719.70
0.000000
3
Value
974.7475
0.000000
0.000000
1224.747
56.81818
32.82828
0.000000
0.000000
Slack or Surplus
20719.70
0.000000
0.000000
0.000000
0.000000
17.17172

Reduced Cost
0.000000
25.53030
16.00000
0.000000
0.000000
0.000000
20.00000
14.46970
Dual Price
-1.000000
-20.00000
-14.46970
1.000000
3.787879
0.000000

61

INVESTIGACION OPERATIVA I

2013 - I

Problema 11.- MC COW S.A. produce dos tipos de hamburguesas para venderlas en
restaurantes de servicio rpido. Cada tipo de hamburguesa consiste de carne calidad 1 y
de carne calidad 2. La hamburguesa tipo 1 se vende a 4 dlares/lb y tiene que contener
por lo menos 70% de carne calidad 1. La hamburguesa tipo 2 se vende a 3 dlares/lb y
tiene que contener por lo menos 60% de carne calidad 1. Se puede vender a lo ms 95 lb
de la hamburguesa 1, y 80 lb de la hamburguesa 2. Los dos tipos de carne utilizados
para producir las hamburguesas se compran en bolsas en el Camal de Yerbateros. Cada
bolsa de carne importada cuesta 10 dlares y produce 5 lb de carne calidad 1 y 2 lb de
carne calidad 2. Cada bolsa de carne nacional cuesta 6 dlares y produce 3 lb de carne
calidad 1 y 3 lb de carne calidad 2. Formule un modelo de PL apropiado para resolver el
problema de MC COW S.A.
La formulacin del modelo en LINGO es:
Model:
SETS:
bolsa_carne/importada,nacional/:precio, cantidad_bolsa_de_carne;
hamburguesa/tipo_1, tipo_2/:precio_venta, cantidad_maxima,
porcentaje_min_carne_calidad_1, cantidad_hamburguesa;
calidad_de_carne/c1,c2/;
cantidad_carne_calidad(bolsa_carne,calidad_de_carne):cantidad_fija_de_carne_calidad;
carne(calidad_de_carne,hamburguesa):cantidad;
endsets
data:
precio=10,6;
cantidad_fija_de_carne_calidad = 5, 3,
2, 3;
precio_venta=4, 3;
cantidad_maxima=95, 80;
porcentaje_min_carne_calidad_1=0.7, 0.6;
enddata
max=@sum(hamburguesa(i):cantidad_hamburguesa(i)*precio_venta(i))
-@sum(bolsa_carne(i):cantidad_bolsa_de_carne(i)*precio(i));
@for(calidad_de_carne(j):@sum(bolsa_carne(i):
cantidad_bolsa_de_carne(i)*cantidad_fija_de_carne_calidad(j,i))
=@sum(carne(j,i):cantidad(j,i)));
@for(hamburguesa(j): @sum(carne(i,j): cantidad(i,j))=cantidad_hamburguesa(j));
@for(hamburguesa(i):cantidad_hamburguesa(i)<=cantidad_maxima(i));
@for(hamburguesa(j):
cantidad(c1,j)>=porcentaje_min_carne_calidad_1(j)*cantidad_hamburguesa(j));
@For(bolsa_carne(i):@gin(cantidad_bolsa_de_carne(i)));
End

MSc. Ing. Ezzard Omar Alvarez Daz

62

2013 - I

INVESTIGACION OPERATIVA I

El reporte de LINGO es:


Optimal solution found at step:
Objective value:
Branch count:
Variable
PRECIO( IMPORTADA)
PRECIO( NACIONAL)
CANTIDAD_BOLSA_DE_CARNE( IMPOR
CANTIDAD_BOLSA_DE_CARNE( NACIO
PRECIO_VENTA( TIPO_1)
PRECIO_VENTA( TIPO_2)
CANTIDAD_MAXIMA( TIPO_1)
CANTIDAD_MAXIMA( TIPO_2)
PORCENTAJE_MIN_CARNE_CALIDAD_1
PORCENTAJE_MIN_CARNE_CALIDAD_1
CANTIDAD_HAMBURGUESA( TIPO_1)
CANTIDAD_HAMBURGUESA( TIPO_2)
CANTIDAD_FIJA_DE_CARNE_CALIDAD
CANTIDAD_FIJA_DE_CARNE_CALIDAD
CANTIDAD_FIJA_DE_CARNE_CALIDAD
CANTIDAD_FIJA_DE_CARNE_CALIDAD
CANTIDAD( C1, TIPO_1)
CANTIDAD( C1, TIPO_2)
CANTIDAD( C2, TIPO_1)
CANTIDAD( C2, TIPO_2)
Row
1
2
3
4
5
6
7
8
9

MSc. Ing. Ezzard Omar Alvarez Daz

5
389.0000
2
Value
10.00000
6.000000
18.00000
8.000000
4.000000
3.000000
95.00000
80.00000
0.7000000
0.6000000
95.00000
79.00000
5.000000
3.000000
2.000000
3.000000
66.60000
47.40000
28.40000
31.60000
Slack or Surplus
389.0000
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
1.000000
0.1000000
0.0000000E+00

Reduced Cost
0.0000000E+00
0.0000000E+00
-11.00000
-12.00000
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
0.0000000E+00
Dual Price
1.000000
-3.000000
-3.000000
-3.000000
-3.000000
1.000000
0.0000000E+00
0.0000000E+00
0.0000000E+00

63

2013 - I

INVESTIGACION OPERATIVA I

PROBLEMA 12: (TRANSPORTE)

Oilco tiene campos petrolferos en San Diego y en Los ngeles. El campo de San Diego
puede producir diariamente hasta 500 000 barriles, y el campo de Los ngeles puede
producir hasta 400 000 barriles por da. Se manda el petrleo desde los campos hacia
una refinera en Dallas o Houston (suponga que cada refinera tiene una capacidad
ilimitada). Cuestan 200 dlares refinar 100 000 barriles de petrleo en Dallas, y 900
dlares refinar 100 000 barriles de petrleo en Houston. Se enva el petrleo refinado
hacia clientes en Chicago y Nueva York. Los clientes de Chicago necesitan diariamente
400 000 barriles de petrleo refinado, y los clientes de Nueva York solo 300 000
barriles de petrleo refinado. En la siguiente tabla se dan los costos de envo de 100 000
barriles de petrleo (refinado o no) entre las ciudades. Formule un modelo de transporte
balanceado para esta situacin.
DESDE
L.A.
San Diego
Dallas
Houston

Dallas
300
420
-

Houston
110
100
-

HACIA
N.Y.
450
470

Chicago
550
530

SOLUCION:
Sea:
UNID ij :la cantidad de barriles de petrleo enviados desde i hacia j (i=1,2; j=1,2,3).
MIN

2200 UNID( CEN1, CEN1) + 1350 UNID( CEN1, CEN2) + 2120 UNID( CEN2, CEN1) +
1410 UNID( CEN2, CEN2)

SUBJECT TO
UNID( CEN1, CEN1) + UNID( CEN2, CEN1) >= 400000
UNID( CEN1, CEN2) + UNID( CEN2, CEN2) >= 300000
UNID( CEN1, CEN3) + UNID( CEN2, CEN3) >= 200000
UNID( CEN1, CEN1) + UNID( CEN1, CEN2) + UNID( CEN1, CEN3) <= 500000
UNID( CEN2, CEN1) + UNID( CEN2, CEN2) + UNID( CEN2, CEN3) <= 400000
END

MSc. Ing. Ezzard Omar Alvarez Daz

64

2013 - I

INVESTIGACION OPERATIVA I

FORMULACION EN LINGO:
SETS:
CAMPOS/CEN1,CEN2/: PROD;
CLIEN/CEN1,CEN2,CEN3/: DEMAN;
CAM+CLI(CAMPOS,CLIEN): COSTOT,UNID;
ENDSETS
!FUNCION OBJETIVO;
MIN=@SUM(CAM+CLI:COSTOT*UNID);
!RESTRICCIONES DE LA DEMAN;
@FOR(CLIEN(J):@SUM(CAMPOS (I):UNID(I,J))>=DEMAN(J));
!RESTRICCIONES DE LA PROD;
@FOR(CAMPOS (I):@SUM(CLIEN(J):UNID(I,J))<=PROD(I));
!DATOS;
DATA:
PROD=500000, 400000;
DEMAN=400000,300000,200000;
COSTOT=2200,1350,0,
2120,1410,0;
ENDDATA
END
COMPILACION EN LINGO:
Global optimal solution found at step:
5
Objective value:
: 0.1253000E+10
Variable
Value
Reduced Cost
PROD( CEN1)
500000.0
0.0000000
PROD( CEN2)
400000.0
0.0000000
DEMAN( CEN1)
400000.0
0.0000000
DEMAN( CEN2)
300000.0
0.0000000
DEMAN( CEN3)
200000.0
0.0000000
COSTO( CEN1, CEN1)
2200.000
0.0000000
COSTO( CEN1, CEN2)
1350.000
0.0000000
COSTO( CEN1, CEN3)
0.0000000
0.0000000
COSTO( CEN2, CEN1)
2120.000
0.0000000
COSTO( CEN2, CEN2)
1410.000
0.0000000
COSTO( CEN2, CEN3)
0.0000000
0.0000000
UNID( CEN1, CEN1)
0.0000000
80.00000
UNID( CEN1, CEN2)
300000.0
0.0000000
UNID( CEN1, CEN3)
200000.0
0.0000000
UNID( CEN2, CEN1)
400000.0
0.0000000
UNID( CEN2, CEN2)
0.0000000
60.00000
UNID( CEN2, CEN3)
0.0000000
0.0000000

Row Slack or Surplus


1
2
3
4
5
6

0.1253000E+10
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000

MSc. Ing. Ezzard Omar Alvarez Daz

Dual Price
1.000000
-2120.000
-1350.000
0.0000000
0.0000000
0.0000000

65

2013 - I

INVESTIGACION OPERATIVA I

PROBLEMA 15: (TRANSPORTE)

Una empresa que fabrica un producto nico, tiene 3 fabricas y 4 clientes. Las 3 fabricas
producen 3 000, 5 000 y 5 000 unidades respectivamente, durante el siguiente periodo.
La empresa se comprometi a vender 4 000 unidades al cliente 1; 3 000 unidades al
cliente 2; y, por lo menos, 3 000 unidades al cliente 3. Los clientes 3 y 4 quieren
comprar la mayor cantidad posible de las unidades restantes. En la siguiente tabla se da
la ganancia asociada con el envo de una unidad desde la fabrica i hacia el cliente j.
AL CLIENTE
DESDE

1
(dlares)
Fabrica 1
65
Fabrica 2
68
Fabrica 3
63

2
(dlares)
63
67
60

3
4
(dlares) (dlares)
62
64
65
62
59
60

Plantear un problema de transporte balanceado que se pueda utilizar para maximizar la


ganancia de la compaa.
SOLUCION:
Sea:
UNID ij = la cantidad enviada de la fabrica i al cliente j (i=1,2,3 j=1,2,3,4)
La funcin objetivo seria:
MAX 65 UNID( FAB1, CEN1) + 63 UNID( FAB1, CEN2) + 62 UNID( FAB1, CEN3) + 64 UNID(
FAB1, CEN4)+ 68 UNID( FAB2, CEN1) + 67 UNID( FAB2, CEN2) + 65 UNID( FAB2,
CEN3)
+ 62 UNID( FAB2, CEN4)+ 63 UNID( FAB3, CEN1) + 60 UNID( FAB3, CEN2) + 59 UNID(
FAB3, CEN3) + 60 UNID( FAB3, CEN4)
SUBJECT TO
2] UNID( FAB1, CEN1) + UNID( FAB2, CEN1) + UNID( FAB3, CEN1) >= 4000
3] UNID( FAB1, CEN2) + UNID( FAB2, CEN2) + UNID( FAB3, CEN2) >= 3000
4] UNID( FAB1, CEN3) + UNID( FAB2, CEN3) + UNID( FAB3, CEN3) >= 3000
5] UNID( FAB1, CEN4) + UNID( FAB2, CEN4) + UNID( FAB3, CEN4) >= 6000
6] UNID( FAB1, CEN1) + UNID( FAB1, CEN2) + UNID( FAB1, CEN3) + UNID( FAB1, CEN4)
<= 3000
7] UNID( FAB2, CEN1) + UNID( FAB2, CEN2) + UNID( FAB2, CEN3) + UNID( FAB2, CEN4)
<= 5000
8] UNID( FAB3, CEN1) + UNID( FAB3, CEN2) + UNID( FAB3, CEN3) + UNID( FAB3, CEN4)
<= 5000
END
FORMULACION EN LINGO:
MODEL:
SETS:
FABR/FAB1,FAB2,FAB3/: CAPAC;
CLIEN/CEN1,CEN2,CEN3,CEN4/:DEMAN;
VIAS(FABR,CLIEN):GANAN,UNID;
ENDSETS

MSc. Ing. Ezzard Omar Alvarez Daz

66

2013 - I

INVESTIGACION OPERATIVA I
MAUNID=@SUM(VIAS:GANAN*UNID);
@FOR(CLIEN(J):@SUM(FABR(I):UNID(I,J))>=DEMAN(J));
@FOR(FABR(I):@SUM(CLIEN(J):UNID(I,J))<=CAPAC(I));
DATA:
CAPAC=3000 5000 5000;
DEMAN=4000 3000 3000 6000;
GANAN=65,63,62,64,
68,67,65,62,
63,60,59,60;
ENDDATA
END
COMPILACIN EN LINGO:
Variable
CAPAC( FAB1)
CAPAC( FAB2)
CAPAC( FAB3)
DEMAN( CEN1)
DEMAN( CEN2)
DEMAN( CEN3)
DEMAN( CEN4)
GANAN( FAB3, CEN4)
UNID( FAB1, CEN1)
UNID( FAB1, CEN2)
UNID( FAB1, CEN3)
UNID( FAB1, CEN4)
UNID( FAB2, CEN1)
UNID( FAB2, CEN2)
UNID( FAB2, CEN3)
UNID( FAB2, CEN4)
UNID( FAB3, CEN1)
UNID( FAB3, CEN2)
UNID( FAB3, CEN3)
UNID( FAB3, CEN4)
Row
1
2
3
4
5
6
7
8

MSc. Ing. Ezzard Omar Alvarez Daz

Value
3000.000
5000.000
5000.000
4000.000
3000.000
3000.000
6000.000
60.00000
0.0000000
0.0000000
0.0000000
3000.000
2000.000
3000.000
0.0000000
0.0000000
2000.000
0.0000000
0.0000000
3000.000
Slack or Surplus
835000.0
0.0000000
0.0000000
-3000.000
0.0000000
0.0000000
0.0000000
0.0000000

Reduced Cost
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
0.0000000
3.000000
1.000000
2.000000
0.0000000
0.0000000
0.0000000
0.0000000
2.000000
0.0000000
0.0000000
1.000000
0.0000000
Dual Price
1.000000
-0.6400000E+08
-0.6400000E+08
-0.6400000E+08
-0.6400000E+08
0.6400006E+08
0.6400006E+08
0.6400006E+08

67

INVESTIGACION OPERATIVA I

2013 - I

PROGRAMACION ENTERA
Un problema de programacin entera se puede definir en forma sencilla
como un programa lineal en el cual algunas de las variables o todas son
nmeros enteros no negativos.
Mediante el uso de la programacin entera es posible formular una mayor
cantidad de situaciones de la vida real que las que se formularan mediante
la programacin lineal, an cuando, la formulacin de un programa entero,
es ms difcil de realizar que la formulacin de un programa lineal.
En este captulo se desarrollarn una gran variedad de problemas tipo y
a la vez se pondr a vuestro alcance algunas herramientas bastante tiles y
de gran ayuda para la formulacin de diversas situaciones lgicas que se
presentan en una gran variedad de problemas.
PROBLEMAS DE PROGRAMACION ENTERA 0-1
1. EJEMPLO

EASTINGHOUSE embarca 12000 capacitores por mes para sus


clientes. Se podran producir los capacitores en tres plantas distintas.
La capacidad de produccin, costos fijos mensuales de operacin y
costos variables por la produccin de un capacitor en cada planta se
proporcionan en la tabla N1. El costo fijo en una planta se contrae
solo si la planta se usa para hacer capacitores. Desarrollar un modelo
de programacion con enteros cuya solucin le indique a
EASTINGHOUSE como minimizar sus costos mensuales por
cumplir con la demanda de sus clientes.

! Xi = PRODUCCION DE CAPACITORES EN LAS PLANTAS i (i= 1,2,3)

MSc. Ing. Ezzard Omar Alvarez Daz

68

2013 - I

INVESTIGACION OPERATIVA I

Yi = TOMA EL VALOR DE 1 SI SE FABRICA SOLO CAPACITORES Y 0 SI NO


SOLO SE FABRICA CAPACITORES;
MODEL :
SETS:
PLANTA/1..3/:CF,CV,CP;
UTIL(PLANTA):X,Y,COST;
ENDSETS
DATA:
CF = 80000,40000,30000;
CV = 20,25,30;
CP = 6000,7000,6000;
DEM=12000;
ENDDATA
MIN=@SUM(UTIL:CV*X+CF*Y);
@FOR(UTIL(I):X(I)<=CP(I)*Y(I));
@SUM(UTIL:X)=12000;
@FOR(UTIL:@BIN(Y));
END
SE GENARA U MODELO
MODEL:
[_1] MIN= 20 * X_1 + 80000 * Y_1 + 25 * X_2 + 40000 * Y_2 + 30 *
X_3 +
30000 * Y_3 ;
[_2] X_1 - 6000 * Y_1 <= 0 ;
[_3] X_2 - 7000 * Y_2 <= 0 ;
[_4] X_3 - 6000 * Y_3 <= 0 ;
[_5] X_1 + X_2 + X_3 = 12000 ;
@BIN( Y_1); @BIN( Y_2); @BIN( Y_3);
END
Global optimal solution found.
Objective value:
Extended solver steps:
Total solver iterations:
Variable
DEM
CF( 1)
CF( 2)
CF( 3)
CV( 1)
CV( 2)
CV( 3)
CP( 1)
CP( 2)
CP( 3)
X( 1)
X( 2)
X( 3)
Y( 1)
Y( 2)
Y( 3)
COST( 1)
COST( 2)
COST( 3)

MSc. Ing. Ezzard Omar Alvarez Daz

390000.0
0
6
Value
12000.00
80000.00
40000.00
30000.00
20.00000
25.00000
30.00000
6000.000
7000.000
6000.000
6000.000
6000.000
0.000000
1.000000
1.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
5.000000
50000.00
40000.00
30000.00
0.000000
0.000000
0.000000

69

2013 - I

INVESTIGACION OPERATIVA I

SOLUCION OPTIMA
PLANTA

CAPACIDAD

PRODUCCION

COSTO FIJO COSTO


VARIABLE

COSTO POR
PLANTA

6 000

6 000

80 000

120 000

200 000

7 000

6 000

40 000

150 000

190 000

6 000

COSTO TOTAL

390 000

El equipo de gimnasia olmpica de Transilvania consta de seis personas.


Transilvania tiene que seleccionar tres personas para viga de equilibrio y
ejercicios de piso. Tambin tiene que presentar un total de cuatro personas por
cada evento. La calificacin que cada gimnasta puede obtener en cada evento
e muestra en la siguiente tabla. Plantee un PE con el que se maximice la
calificacin total que obtengan los gimnastas de Transilvania.
Gimnasta
1
2
3
4
5
6

Viga de
equilibri
o
8.8
9.4
9.2
7.5
8.7
9.1

Ejercicios
de piso
7.9
8.3
8.5
8.7
8.1
8.6

SOLUCIN:
Sea:
Xij: Gimnasta nmero i que participa slo en el evento j. (i=1,2,3,4,5,6/
j=1,2)
Xij = 0, el gimnasta no participa en el evento.
Xij = 1, el gimnasta s participa en el evento.
Yi: es binario. (i = 1,2,3,4,5,6)
Yi = 0, si el gimnasta i no participa en ambos eventos.
Yi = 1, si el gimnasta i s participa en ambos eventos.
MSc. Ing. Ezzard Omar Alvarez Daz

70

2013 - I

INVESTIGACION OPERATIVA I

FUNCION OBJETIVO
MAX Z = 8.8X11 + 7.9X12 + 9.4X21 + 8.3X22 + 9.2X31 + 8.5X32 + 7.5X41 + 8.7X42 +
8.7X51 + 8.1X52 + 9.1X61 + 8.6X62 + 16.7Y1 + 17.7Y2 + 17.7Y3 +16.2Y4
+ 16.8Y5 +17.7Y6
SUJETO A:
X11 + X21 + X31 + X41 + X51 + X61
X12 + X22 + X32 + X42 + X52 + X62
Y1 +Y2 + Y3 + Y4 + Y5 + Y6
Xij , Yi

=4
=4
=3
0

PROGRAMACIN EN LINGO:
SETS:
GIMNASTA/1..6/:Y,TOTAL;
EVENTO/1..2/:;
GIMEVEN(GIMNASTA,EVENTO):X,REQ;
ENDSETS
DATA:
TOTAL = 16.7, 17.7, 17.7, 16.2, 16.8, 17.7;
REQ = 8.8, 7.9, 9.4, 8.3, 9.2, 8.5, 7.5, 8.7, 8.7, 8.1, 9.1, 8.6;
ENDDATA
!FUNCION OBJETIVO:;
MAX = @SUM(GIMNASTA:TOTAL*Y) + @SUM(GIMEVEN:REQ*X);
!RESTRICCIONES:;
@FOR(EVENTO(J):@SUM(GIMNASTA(I):X(I,J))=4);
@SUM(GIMNASTA:Y)=3;
@FOR(GIMNASTA:@BIN(Y));
@FOR(GIMEVEN:@BIN(X));
END

MSc. Ing. Ezzard Omar Alvarez Daz

71

2013 - I

INVESTIGACION OPERATIVA I

SOLUCIN EN LINGO:
Global optimal solution found.
Objective value:
Objective bound:
Infeasibilities:
Extended solver steps:
Total solver iterations:
Variable
Y( 1)
Y( 2)
Y( 3)
Y( 4)
Y( 5)
Y( 6)
TOTAL( 1)
TOTAL( 2)
TOTAL( 3)
TOTAL( 4)
TOTAL( 5)
TOTAL( 6)
X( 1, 1)
X( 1, 2)
X( 2, 1)
X( 2, 2)
X( 3, 1)
X( 3, 2)
X( 4, 1)
X( 4, 2)
X( 5, 1)
X( 5, 2)
X( 6, 1)
X( 6, 2)
REQ( 1, 1)
REQ( 1, 2)
REQ( 2, 1)
REQ( 2, 2)
REQ( 3, 1)
REQ( 3, 2)
REQ( 4, 1)
REQ( 4, 2)
REQ( 5, 1)
REQ( 5, 2)
REQ( 6, 1)
REQ( 6, 2)
Row
1

MSc. Ing. Ezzard Omar Alvarez Daz

123.7000
123.7000
0.000000
0
0
Value
0.000000
1.000000
1.000000
0.000000
0.000000
1.000000
16.70000
17.70000
17.70000
16.20000
16.80000
17.70000
1.000000
0.000000
1.000000
1.000000
1.000000
1.000000
0.000000
1.000000
0.000000
0.000000
1.000000
1.000000
8.800000
7.900000
9.400000
8.300000
9.200000
8.500000
7.500000
8.700000
8.700000
8.100000
9.100000
8.600000
Slack or Surplus
123.7000

Reduced Cost
-16.70000
-17.70000
-17.70000
-16.20000
-16.80000
-17.70000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
-8.800000
-7.900000
-9.400000
-8.300000
-9.200000
-8.500000
-7.500000
-8.700000
-8.700000
-8.100000
-9.100000
-8.600000
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
1.000000

72

2013 - I

INVESTIGACION OPERATIVA I
2
3
4

0.000000
0.000000
0.000000

0.000000
0.000000
0.000000

TABLA DE RESUMEN
Viga de
Ejercicio
Ambos Eventos
Equilibrio
de Piso
Yi
X11
1
X12
0
0
X21
1
X22
1
1
X31
1
X32
1
1
X41
0
X42
1
0
X51
0
X52
0
0
X61
1
X62
1
1
DE LA CALIFICACION TOTAL OBTENIDA: 123.70

Gimnasta
1
2
3
4
5
6
VALOR

La solucin indica que los gimnastas que participan solo en el evento viga de equilibrio
son los nmeros 1, 2, 3, y 6; y aquellos gimnastas que participan slo en el en el evento
ejercicios de piso son los nmeros 2, 3, 4 y 6; por ltimo, aquellos gimnastas que
participan en ambos eventos son los nmeros 2,3 y 6. Este resumen se realiza a partir de
la tabla mostrada anteriormente.
La calificacin total que obtiene el equipo de Transilvania ser 123.70.

Problema 5: Los Cubs pretenden

determinar cul de los pitchers siguientes, que


son agentes libres, deben contratar: Rick Sutcliffe (RS), Bruce Sutter (BS), Dennis
Eckersley (DE), Steve Trout, (ST), Tim Stoddard (TS),. El costo de la contratcin de
cada pitcher y el nmero de victorias que cada pitcher sumar a los Cubs se muestra en
la tabla 92. Los Cubs quieren contratar a los pitchers que sumarn el nmero ms alto
de victorias al equipo, sujeto a las restricciones siguientes:
a. Se pueden gastar cuando mucho 12 millones de dlares.
b. Si se contratan a DE y ST, entonces BS no puede ser contratado.
c. Se pueden contratar cuando mucho dos pitchers derechos.
d. Los Cubs no pueden contratar a BS y RS juntos.
Formule un PE que ayude a los Cubs a determinar a quin contratar.
TABLA 92
Pitcher Costo en millones de
Victorias
dlares
sumadas
De la contratacin
A los Cubs
RS
6
6 (derecho)
MSc. Ing. Ezzard Omar Alvarez Daz

73

INVESTIGACION OPERATIVA I

BS
DE
ST
TS

4
3
2
2

2013 - I
5 (derecho)
3 (derecho)
3 (izquierdo)
2 (derecho)

SOLUCION:
MODELO ALGEBRAICO
SEA:
YI: 1, si el agente i es contratado (I=1, 2, 3, 4,5:
respectivamente para: RS, BS, DE, ST, TS)
0, si no es asi.
MAX Z = 6 * Y1 + 5 * Y2 + 3 * Y3 + 3 * Y4 + 2 * Y5
S.A:
Restriccin a) 6 * Y1 + 4 * Y2 + 3 * Y3 + 2 * Y4 + 2 * Y5 <= 12
Restriccin b)
Y3 +
Y4
<= 2*(1X)
Y2
<= 2*X
Restriccin c)
Y3 +
Y5 <= 2
Restriccin d)
Y1 +
Y2
<= 1

EL PROGRAMA EN LINGO ES:


MODEL:
SETS:
!AGENTE indica la cantidad de pitchers:
RS(Y1),BS(Y2),DE(Y3),ST(Y4),TS(Y5)
Yi = 1 si se contrata al pitcher i y 0 si no se contrata al pitcher i
VICT indica el numero de victorias sumadas al los cubs;
AGENTE/1..5/:Y,VICT;
!son los recursos que limitan las restricciones a),c) y d);
DISP/1..3/:RESTR;
!es utilizado como condicional para la restriccion b);
BINARIO/X/:;
!la matriz COEF posee los coeficientes de las variables binarias de
las restricciones a), c) y d);
AGDISP(DISP,AGENTE):COEF;
ENDSETS
DATA:
VICT=6,5,3,3,2;
RESTR=12,2,1;
COEF= 6,4,3,2,2,
1,1,1,0,1,

MSc. Ing. Ezzard Omar Alvarez Daz

74

2013 - I

INVESTIGACION OPERATIVA I
1,1,0,0,0;
ENDDATA

!contratar a los pitcher que sumen el numero mas alto de victorias al


equipo
por lo tanto se maximiza la suma de victorias mas alta
funcion objetivo:max Z = 6 * Y1 + 5 * Y2 + 3 * Y3 + 3 * Y4 + 2

* Y5;
MAX=@SUM(AGENTE:Y*VICT);
!restriccion a)se pueden gastar cuando mucho 12 millones de dolares:

6 * Y1 + 4 * Y2 + 3 * Y3 + 2 * Y4 + 2 * Y5 <=
12

restriccion c)se pueden contratar cuando mucho dos pitcher derecho:

Y3 +

Y5 <=

2
restriccion d)los cubs no pueden contratar a BS(Y2) y RS(Y1) juntos ;
@FOR(DISP(I):@SUM(AGDISP(I,J):COEF(I,J)*Y(J))<=RESTR(I));
!restriccion b)si se contratan a DE(Y3)y ST(Y4), entonces BS no puede
ser contratado;
Y(3)+Y(4)<=2*(1-X);
Y(2)<=2*X;
@FOR(AGENTE:@BIN (Y));
@BIN(X);
END

VARIABLE
VALOR
PTIMO

Y1

Y2

Y3

Y4

Y5

12

El resultado en lingo nos indica que se deben contratar son los pitcher RS, DE, ST;
la cantidad ms alta, es decir la solucin optima es 12.
MAX Z = 6 * Y1 + 5 * Y2 + 3 * Y3 + 3 * Y4 + 2 * Y5
MAX Z = 6 * 1 + 5 * 0 + 3 * 1 + 3 * 1 + 2 * 0 = 12
La corrida en lingo es:

MSc. Ing. Ezzard Omar Alvarez Daz

75

2013 - I

INVESTIGACION OPERATIVA I

PROBLEMA N30
La ciudad de NY tiene 10 distritos de recoleccin de basura y pretende determinar cul
de los distritos debera ser un tiradero. Cuesta 1000 dlares acarrear una TN de basura
un tramo de una milla, La ubicacin de cada distrito, la cantidad de TN de basura
producidas en un ao por el distrito, el costo fijo anual( en millones de dlares) por
operar un tiradero y el costo variable (por TN) por procesar una tonelada de basura en
un tiradero, se muestran en la tabla 112.
Por ejemplo, el distrito 3 se localiza en la coordenadas (10,8). El distrito 3 produce
555TN de basura al ao, y cuesta un milln de dlares al ao en costos fijos operar un
tiradero en el distrito 3. Cada TN de basura procesada en el sitio 3 incurre en un costo
variable de 51 dlares. Cada tiradero puede procesar cuando mucho 1500 TN de basura.
Cada distrito puede enviar toda su basura a un solo sitio. Determine donde localizar los
tiraderos de tal manera que se minimice el costo total por ao.

Distrito
1
2
3
4
5
6
7
8
9
10

Coordenadas
X
4
2
10
2
5
4
10
5
5
1

Y
3
5
8
8
3
5
5
1
8
7

Toneladas
49
874
555
352
381
428
985
105
258
210

Costos (millones de
dlares)
Fijo
Variable
2
310
1
40
1
51
1
341
3
131
2
182
1
20
2
40
4
177
2
75

SOLUCIN:
Bij:

1: Si el distrito i enva su basura al distrito j.


0: Si no sucede as.
1: Si el distrito i es vertedero.
0: Si no es as.
distancia de i a j

Vi:
Dij:

Restriccin: distancia del distrito que enva i al distrito vertedero j.

D11B11 +D12B12 +D13B13 + D14B14 + + D19B19 + D110B110 >= 0


D21B21 + D22B22 + D23B23 +D24B24 + +D29B29 + D210B210 >= 0
.

MSc. Ing. Ezzard Omar Alvarez Daz

76

INVESTIGACION OPERATIVA I

2013 - I

.
.
D101B101 +D102B102 + D103B103 + + D109B109 + D1010B1010>= 0

Restriccin: Cada distrito enva toda su basura a un solo sitio.

B11 + B12 + B13 + B14 + B15 + + B19 + B110 = 1


B21 + B22 + B23 + B24 + B25 + + B29 + B210 = 1
.
.
.
B101 + B102 + B103 + B104 + B105 + + B109 + B1010 = 1

Restriccin: Manejo de basura

49 B11 + 874 B21 + 555 B31 + 352 B41 + + 258 B91 + 210 B101 =
T1
49 B12 + 874 B22 + 555 B32 + 352 B42 + + 258 B92 + 210 B102 =
T2
.
.
.
49 B110 + 874 B210 + 555 B310 + 352 B410 + + 258 B910 + 210
B1010 = T10
T1 <= 1500 V1
T2 <= 1500 V2
T3 <= 1500 V3
T4 <= 1500 V4
T5 <= 1500 V5
T6 <= 1500 V6
T7 <= 1500 V7

MSc. Ing. Ezzard Omar Alvarez Daz

77

INVESTIGACION OPERATIVA I

2013 - I

T8 <= 1500 V8
T9 <= 1500 V9
T10 <= 1500 V10

Funcin Objetivo

Costos Fijos
2V1 + V2 +V3 + V4 + 3V5 + 2V6 + V7 + 2V8 + 4V9 + 2V10

Costos Variables
310T1 + 40T2 + 51T3 + 341T4 + 131T5 + 182T6 + 20T7 + 40T8 +
177T9 + 75T10

Costo de distancias
0.001((49 B11.D11 + 874 B21.D21 + 555 B31.D31 + + 258 B91.D91
+ 210 B101.D101) + ... (49 B110.D110 + 874 B210.D210 + 555
B310.D310 + + 258 B910.D910 + 210 B1010.D1010))

MIN Z = COSTO FIJO + COSTO VARIABLE + COSTO DE


DISTANCIAS
Obs:
Dij =
Donde:
X: distancia en metros en el eje de las abscisas.
Y: distancia en el eje de las ordenadas.
EN LINGO:
SETS:
ORIGEN/1..10/:;
DESTINO/1..10/:N,X,Y,CF,CV,V,T;
MSc. Ing. Ezzard Omar Alvarez Daz

78

2013 - I

INVESTIGACION OPERATIVA I

VARIABLE(ORIGEN,DESTINO):B,D;
ENDSETS
DATA:
X=4 2 10 2 5 4 10 5 5 1;
Y=3 5 8 8 3 5 5 1 8 7;
N=49 874 555 352 381 428 985 105 258 210;
CF=2 1 1 1 3 2 1 2 4 2;
CV=310 40 51 341 131 182 20 40 177 75;
ENDDATA
! Restriccin de manejo de basura, donde T(i) almacena las toneladas de
basura que se envan al vertedor de la ciudad i , si existe;
@FOR(DESTINO(i):@sum(VARIABLE(i,j):N(j)*B(j,i))=T(i));
@FOR(DESTINO(i):T(i)<=1500*V(i));
!Restriccin de cada distrito enva toda su basura a un solo vertedor;
@for(ORIGEN(i):@sum(VARIABLE(i,j):B(i,j))=1);
!Calculo de las distancias;
@FOR(DESTINO(i):@for(VARIABLE(i,j):D(i,j)=@SQRT((X(i)-X(j))^2+(Y(i)Y(j))^2)));
!FUNCION OBJETIVO;
MIN = @SUM(DESTINO(i):CF(i)*V(i))+@sum(DESTINO(i):CV(i)*T(i))
+0.001*(@sum(VARIABLE(i,j):N(i)*B(i,j)*D(i,j)));
!DECLARACION DE LAS VARIABLES COMO BINARIAS;
@for(DESTINO:@BIN(V));
@for(VARIABLE:@BIN(B));
CUADRO DE RESULTADOS
OBS: DEBIDO A LA CAPACIDAD DE LA VERSIN DE LINGO LOS
RESULTADOS OBTENIDOS FUERON HALLADOS RETIRANDO LA
ASIGNACION DE LAS VARIABLES BINARIAS.
1. Distrito en los que se va hacer un vertedor de basura:

V( 1)
V( 2)
V( 3)
V( 4)
V( 5)
V( 6)
V( 7)
V( 8)
V( 9)
V( 10)

0.000000
1.000000
0.000000
0.000000
0.000000
0.000000
1.000000
1.000000
0.000000
0.000000

2.000000
-3.136039
1.000000
1.000000
3.000000
2.000000
-30007.40
2.000000
4.000000
2.000000

Distrito 2, distrito 7 y distrito 8


2. Vertederos donde cada distrito arrojar su basura.

MSc. Ing. Ezzard Omar Alvarez Daz

79

2013 - I

INVESTIGACION OPERATIVA I

B( 1, 8)
B( 2, 2)

1.000000
1.000000

0.000000
0.000000

B( 3, 7)

0.9279279

0.000000

B( 4, 2)

1.000000

0.000000

B( 5, 8)

1.000000

0.000000

B( 6, 8)

1.000000

0.000000

B( 7, 7)

1.000000

0.000000

B( 8, 8)

1.000000

0.000000

B( 9, 8)

0.7519380

0.000000

B( 10, 2)

1.000000

0.000000

3. Valor de la funcin objetivo


Z= 137891.7 millones$

***

MSc. Ing. Ezzard Omar Alvarez Daz

80

You might also like