Sei sulla pagina 1di 133

MANUAL DE LINGO

Noviembre 2017
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

MANUAL PRÁCTICO DE LINGO

CURSO : Investigación Operativa I

PROFESOR : Ing. Eyzaguirre Tejada Roberto Erasmo

INTEGRANTES :

Paz Gladun, Cristina Isabella 11170036


Gómez Vicente, Jose Humberto 13170025
Durand Huanca, Blanca Jazmin 14171077

2017
“Año del Buen Servicio al Ciudadano”

Página | 1
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

ÍNDICE
1. INTRODUCCIÓN .............................................................................................................................. 3
2. LINGO ................................................................................................................................................ 4
2.1. SINTAXIS DE LINGO .............................................................................................................. 6
2.2. OPERADORES LÓGICOS ..................................................................................................... 9
2.2.1. MENÚES........................................................................................................................... 9
2.2.2. FUNCIONES: ................................................................................................................. 12
2.3. INTRODUCCIÓN BÁSICA DE UN MODELO EN LINGO ............................................... 14
2.4. INTERPRETACIÓN DE LA SOLUCIÓN ............................................................................ 16
2.5. DEFINICIÓN DE CONJUNTOS ........................................................................................... 19
2.6. ECUACIONES CON CONJUNTOS .................................................................................... 24
2.7. MÁS SOBRE CONJUNTOS ................................................................................................ 25
3. CAPÍTULO 1: PROBLEMAS DE PROGRAMACIÓN LINEAL ............................................... 26
3.1. PROBLEMAS DE PRODUCCIÓN ...................................................................................... 26
3.2. PROBLEMAS DE MEZCLAS .............................................................................................. 39
3.3. PROBLEMAS DE FINANZAS ............................................................................................. 47
3.4. PROBLEMAS DE TRANSPORTE ...................................................................................... 57
3.5. PROBLEMAS DE INVERSIÓN ........................................................................................... 77
4. PROBLEMAS DE PROGRAMACIÓN ENTERA CON LINGO ............................................... 78
4.1. Problema 1 ............................................................................................................................. 79
4.2. Problema 2 ............................................................................................................................. 79
4.3. Problema 3 ............................................................................................................................. 82
4.4. Problema 4 ............................................................................................................................. 86
4.5. Problema 5 ............................................................................................................................. 89
4.6. Problema 6 ............................................................................................................................. 93
4.7. Problema 7 ............................................................................................................................. 95
4.8. Problema 8 ............................................................................................................................. 98
5. PROBLEMA APLICADO A LA ASIGNACIÓN IMPORTANDO DE EXCEL....................... 101
5.1. Problema 1 ........................................................................................................................... 101
5.2. Problema 2 – Presupuesto .............................................................................................. 112
5.3. Problema 3 – Proyectos ................................................................................................... 118
5.4. Problema 4 – Cuatro variables ....................................................................................... 123
6. CONCLUSIONES ......................................................................................................................... 131
7. BIBLIOGRAFÍA ............................................................................................................................ 132

Página | 2
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

1. INTRODUCCIÓN

En la actualidad nuestra vida, el entorno está lleno de problemas que nos


aquejan; problemas además que son un obstáculo para el desarrollo de las
empresas específicamente, al momento de realizar cálculos que nos garanticen
que el ritmo de producción que viene llevando dichas empresas se está
desarrollando de la mejor manera. Es necesario para cumplir nuestro propósito
de desarrollar de la mejor manera la compañía o negocio al fin, realizar cálculos
que con sus respectivas restricciones nos lleven a obtener las cantidades ideales
o aptas para el buen rendimiento de dichas entidades.

Cuando se busca que las empresas alcancen el máximo de ganancias o


beneficios, se hace uso del concepto de recursos, el cual interviene de gran
manera en la producción. Es así entonces que el fin de todo es buscar el máximo
beneficio posible, y para esto hacemos uso de softwares que nos permitan
obtener dichas cantidades que se utilizará para la producción.

En el trabajo mostrado a continuación, se muestra una práctica de laboratorio


correspondiente a contenidos de programación matemática. Se desarrollan
ejemplos, tanto de forma lineal, no lineal, de transportes, enteras, etc., así como
la solución de los mismos como el análisis de sensibilidad, el cual se realizó son
el software LINGO.

LINGO es una herramienta matemática que resuelve una amplia gama de


problemas de optimización, lineales, no lineales y enteros, utilizando un lenguaje
sencillo, lo que lo convierte en un asistente ideal en la docencia. Junto con
LINDO forma parte del paquete SOLVER SUITE (manual de usuario, 1996).

Podemos decir que el objetivo de este trabajo es mostrar las posibilidades


del software en la docencia de la optimización matemática y no de servir de
manual de introducción al manejo de LINGO, se incluyen los conocimientos
elementales necesarios para empezar a trabajar con este paquete.

Página | 3
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

2. LINGO

LINGO es una herramienta simple para utilizar la potencialidad de la


optimización lineal y no lineal para formular problemas muy grandes de una
manera concisa, resolverlos y analizar su solución. La optimización le ayuda a
encontrar la respuesta que representa la mejor solución; obtiene la mayor
utilidad, respuesta o felicidad; o logra el menor costo, desperdicio o
disconformidad. A menudo estos problemas significan hacer el uso más eficiente
de sus recursos- incluyendo dinero, tiempo, maquinaria, personal, inventario y
mucho más. Los problemas de optimización se clasifican a menudo como
lineales y no lineales, dependiendo si las relaciones entre las variables son o no
lineales.

LINGO es un lenguaje de modelado matemático diseñado para formular y


resolver problemas de programación lineal, programación entera y programación
no lineal.

¿Cómo Instalar LINGO?

Esta sección discute cómo instalar LINGO en la plataforma Windows.


Para instalar LINGO en plataformas aparte de Windows, se refieren a las
instrucciones de instalación incluidas con su software.

Instalar el software de LINGO es directo. A LINGO de disposición para


Windows, ponga su CD en la guía apropiada y corrida la instalación programa
SETUP contenido en la carpeta de LINGO. El programa de instalación de LINGO
le abrirá y guiará por los pasos requeridos para instalar LINGO en su disco duro.

Nota: Si existe una versión previa de LINGO instalada en su máquina,


entonces usted puede necesitar. Desinstala lo antes que puede instalar la nueva
copia de LINGO. Para desinstalar la copia existente de lingos, haga clic en el
botón Start de Windows, escoja Panel de Control, entonces haga clic dos veces
sobre en el Add o quite programe icono. Deba entonces ser capaz de escoger
LINGO y tener la versión vieja quitada de su sistema.

La mayor parte de las copias de LINGO vienen con sus preinstaladas


licencias. Sin embargo, ciertas versiones de LINGO requieren usted para entrar
una llave de licencia. Si su versión de LINGO requiere una licencia teclee, estará
presente con la caja de diálogos siguiente cuando usted empieza LINGO:

Página | 4
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Su llave de licencia puede haber sido incluido en un correo electrónico


envié a usted cuando usted ordenó su software. La llave de licencia es una
cuerda de letras, símbolos y números, separado en grupos de cuatro por los
guiones (por ejemplo, r82m-XCW2-dZu7-72pS-fD?S-Wp8 ). Cuidadosamente
entre la llave de licencia en el campo de edición, incluyendo guiones. Las llaves
de licencia son el caso sensitivo, así que debe estar seguro de preservar el caso
de las letras individuales al entrar su llave. Haga clic sobre el botón OK y,
asumiendo la llave es sido entrada correctamente, LINGO empezará entonces.
En lo sucesivo, será capaz de correr LINGO directamente sin entrar la llave.

Nota: Si recibió su licencia teclee por correo electrónico, entonces tiene la


opción de cortante-y-pegándolo en la caja de diálogos clave de licencia. Corte la
llave del correo electrónico que contiene lo con el Ctrl+C llave, entonces escoja
el campo clave en caja de diálogos de LINGO y pegue la llave con la llave de
Ctrl+V.

Página | 5
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

2.1. SINTAXIS DE LINGO

La sintaxis que se utiliza en este programa es muy sencilla. Para el nombre


de las Variables y otros identificadores se establece que pueden tener 32
caracteres como Máximo, Deben comenzar con una letra seguido de letras,
dígitos o _. LINGO no distingue entre mayúsculas y minúsculas.
Con respecto a las sentencias:

 Todas las sentencias deben terminar en un punto y coma.


 Para darle un nombre a la función objetivo o a las restricciones, estos se
deben colocar entre corchetes.
 Para declarar la función objetivo debemos colocar las palabras
reservadas MAX o MIN, (aparecerán resaltadas en azul) seguidas del
signo = .
 Los comentarios deben comenzar con un signo”!” , los cuales aparecen
resaltados en verde. Al igual que las sentencias los comentarios finalizan
con un punto y coma.
Una formulación en LINGO, tiene tres secciones:

 Sección de conjuntos, SETS, que especifica los conjuntos y sus atributos


 Sección de datos, DATA, que proporciona los datos a usar o indica donde
obtenerlos
 Sección del modelo, MODEL, lugar donde se describe el modelo
matemático.

Para los conjuntos:


Cada conjunto tiene la sintaxis siguiente:
NOMBRE/LOS MIEMBROS/: LOS ATRIBUTOS;

Por ejemplo:
SETS:
FABRICAS /F1, F2/: CAPACIDAD;
CENTROS /C1, C2, C3/: DEMANDA;
RUTAS (FÁBRICAS, CENTROS): C, X;
ENDSETS

Los conjuntos, FABRICAS y CENTROS se denominan conjuntos primitivos y


el último conjunto RUTAS se denomina conjunto derivado, donde C y X
representan, respectivamente, los costos unitarios de transporte y cantidad
transportada de las fabricas a los centros.

Para los datos:

Página | 6
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

Para el modelo:
Para presentar el modelo se utiliza dos funciones @SUM y @FOR.
@SUM calcula la suma de una expresión sobre todos los miembros del
conjunto. La forma general es:
@SUM (set: expresión)

Suma la expresión que sigue a los dos puntos.


Por ejemplo:
@SUM (RUTAS: C*X)

Suma la expresión 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 función es @FOR, esta función sirve para generar


restricciones sobre los miembros de un conjunto. La forma general es:
@FOR (set: restricción)

Por ejemplo:
@FOR (CENTROS (J): @SUM (FABRICAS(I):X(I,J))<=CAPACIDAD(I));

Indica que se genere la restricción 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

La formulación completa es como sigue:


MODEL:
! 2 FABRICAS, 3 CENTROS, problema de transporte;
Página | 7
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

SETS:
FABRICAS /1..2/: CAPACIDAD;
CENTROS /1..3/ : DEMANDA;
RUTAS (FÁBRICAS, 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);

! RESTRICCIONES DE LA DEMANDA;
@FOR (CENTROS (J): @SUM (FABRICAS (I): X (I, J)) >= DEMANDA
(J));

! RESTRICCIONES 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, Algebraic, Generate y se tiene como resultado lo siguiente:
MODEL:

[_1] MIN= 2 * X_1_1 + 4 * X_1_2 + 6 * X_1_3 + 7 * X_2_1 + 10 * X_2_2 +


X_2_3;

[_2] X_1_1 + X_2_1 >= 10;

[_3] X_1_2 + X_2_2 >= 25;

[_4] X_1_3 + X_2_3 >= 15;

[_5] X_1_1 + X_1_2 + X_1_3 <= 30;

[_6] X_2_1 + X_2_2 + X_2_3 <= 20;

END

Se puede omitir el paso anterior pasando a la solución del modelo


haciendo clic en LINGO, Solve obteniendo el siguiente resultado:

Objective value: 160.0000

Variable Value Reduced Cost


CAPACIDAD( F1) 30.00000 0.0000000
Página | 8
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

CAPACIDAD ( F2) 20.00000 0.0000000


DEMANDA( C1) 10.00000 0.0000000
DEMANDA( C2) 25.00000 0.0000000
DEMANDA( C3) 15.00000 0.0000000
C( F1, C1) 2.000000 0.0000000
C( F1, C2) 4.000000 0.0000000
C( F1, C3) 6.000000 0.0000000
C( F2, C1) 7.000000 0.0000000
C( F2, C2) 10.00000 0.0000000
C( F2, C3) 1.000000 0.0000000
X( F1, C1) 5.000000 0.0000000
X( F1, C2) 25.00000 0.0000000
X( F1, C3) 0.000000 10.000000
X( F2, C1) 5.000000 0.0000000
X( F2, C2) 0.000000 1.0000000
X( F2, C3) 15.00000 0.0000000

2.2. OPERADORES LÓGICOS

LINGO tiene nueve operadores lógicos: NOT (no), EQ (igual), NE (no


igual), GT (mayor que), GE (mayor igual), LT (menor igual), LE
(menor igual), AND (y) y OR (o), que se utilizan para comparar valores, la
forma de usar es:

#operador#.
Los elementos del LINGO requieren un objetivo, una o más variables y
una o más restricciones. Las instrucciones del LINGO terminan con: (punto y
coma).

2.2.1. MENÚES

Página | 9
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

El menú principal comprende 5 submenús acomodados en la parte


superior de la pantalla en los que se listan diversos comandos.

MENÚ FILE
Los comandos del menú FILE (archivo) le permiten manejar sus archivos
de datos en LINGO de distintas maneras. Usted puede usar este menú para
abrir, cerrar, guardar e imprimir archivos, así como para ejecutar varias tareas
únicas con LINGO.
Los comandos del menú FILE (archivo) son los siguientes:
 NEW F2: Crea una nueva ventana para ingresar datos.
 OPEN F3: Abre un archivo existente. Mediante los cuadros de dialogo
usted puede seleccionar entre varios tipos de archivos y ubicaciones.
 SAVE F4: Guarda la ventana activa. Usted puede guardar los datos de
entrada (un modelo), una ventana de informes (ventana de informes) o
una ventana de comandos.
 SAVE AS F5: Guarda la ventana activa con un nombre de archivo
especifico. Es útil para volver a asignar un nombre a un archivo revisado
y conservar intacto el archivo original.
 CLOSE F6: Cierra la ventana activa. Si la ventana contiene nuevos datos,
entonces se le preguntará si desea guardar los cambios.
 PRINT F7: Envía la ventana activa a su impresora.
 PRINTER SETUP F8: Selecciona la impresora y varias opciones para el
formato de impresión.
 LOG OUTPUT F9: Envía toda la actividad posterior de la pantalla que
normalmente se enviaría a la ventana Reports, a un archivo de texto. Si
usted especifica una ubicación log file, aparece una marca en el menú file
en la línea de Log Output. Para inactivar Log Output seleccione
simplemente el comando de nuevo.
 TAKE COMMANDS: Toma un batch file de LINGO con comandos y texto
del modelo para operación automatizada. Se puede poner un modelo en
la memoria, resolverlo y la solución es colocada en la ventana Reports y
guardada en un archivo. Si usted usa el comando BATCH antes del inicio
del texto del modelo, el modelo y los comandos contenidos en el archivo,
así como la solución, se verán en la ventana Reports.
 IMPORT LINDO FILE F12: Abre un archivo que contiene un modelo de
Lindo en el formato TAKE de Lindo y traduce el modelo en un formato que
Lingo acepta.
 EXIT F10: Cierra LINGO.

MENÚ EDIT

Página | 10
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Los comandos del menú EDIT permiten a usted ejecutar tareas básicas
de edición comunes a la mayoría de aplicaciones para Windows, así como
efectuar varias tareas que son exclusivas para LINGO.

Los comandos del menú EDIT son:


 UNDO CTRL. + Z: Deshace la última acción.
 CUT CTRL. + X: Corta el texto seleccionado en el portapapeles para
pegarlo.
 COPY CTRL. + C: Copia el texto seleccionado en el portapapeles para
pegarlo.
 PASTE CTRL. + V: Inserta o pega el contenido del portapapeles en el
punto de inserción.
 CLEAR DELETE : Borra el texto seleccionado pero no lo coloca en el
portapapeles.
 FIND/ REPLACE CTRL. + F: Busca la ventana activa para encontrar el
texto seleccionado y reemplazarlo con el texto introducido en el cuadro
“Replace with” (Sustituya por).
 GO TO LINE CTRL. + T: Usted puede mover el cursor a cualquier linea
especificada de la ventana activa.
 MATCH PARÉNTESIS CTRL. + P: Encuentra el paréntesis cerrado que
corresponde al paréntesis abierto seleccionado.
 PASTE FUNCTION: Pega las funciones incorporadas EN LINGO en el
punto de inserción actual. Después de seleccionar este comando aparece
otro submenu con las distintas categorías de las funciones.
 SELECT ALL CTRL. +A: Selecciona toda la ventana activa para cortarla
o copiarla.
 COSE NEW FONT: Selecciona una nueva fuente para el texto en la
ventana activa.

MENU LINGO:
Los comandos del menú LINGO se usan después de que usted ya
introdujo datos y están listos para obtener una solución.
Los comandos del menú LINGO son:
 SOLVE CTRL. + S: Envía el modelo que se encuentra en la ventana
activa al Solver de LINGO.
 SOLUTION CTRL. + O: Abre el cuadro de dialogo Solution Report
Options (opciones para mostrar la solución), el cual permite a usted
especificar como quiere que aparezca su solución.

Página | 11
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

 RANGE CTRL. + R: Despliega un informe de intervalos, el cual le muestra


dentro de que valores usted puede cambiar valores coeficientes sin
modificar los valores óptimos.
 LOOK CTRL. + L: Despliega todo el modelo o las líneas seleccionadas.
 GENERATE CTRL. + S: Crea otra versión del modelo actual en formato
algebraico de LINDO o MPS. Se puede usar para enumerar renglones y
desplegar el modelo en un formato más fácil de leer. El comando GEN
proporciona una capacidad similar desde la ventana de comandos.
 EXPORT TO SPREADSHEET CTRL. + E: Exporta valores de variables
seleccionadas a intervalos nombrados en una hoja de cálculo.

Primero se tiene que crear una hoja de cálculo con intervalos dimensionados
para que se puedan acomodar en ellos los valores exportados.
Los intervalos tienen que contener números. Al seleccionar este comando se
abrirá un cuadro de dialogo que pide la plantilla y las hojas de trabajo (nombres
de archivo de la hoja de cálculo), variables por exportar y el intervalo para el cual
se exportaran los valores. Las variables y el intervalo se introducen por pares y
se añaden a la lista de pares de variable e intervalo dando un clic en el botón de
agregar.

2.2.2. FUNCIONES:

LINGO tiene siete funciones principales: operador estándar, importación de


archivos, finanzas, matemáticas, iteraciones en conjuntos, dominio de variable y
probabilidad y una variedad de otras funciones. La mayoría de estas funciones
está disponible por medio de los comandos del menú.

OPERADORES ESTANDAR

Entre estos operadores se encuentran los aritméticos (^,*,/,+ y - ) , operadores


lógicos (#EQ# , #NE# , #GT# , #GE# , #LT# y #L3#) para determinar la calidad
del conjunto y operadores de igualdad-desigualdad ( <;=;>; <= ; y >=) para

Página | 12
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

especificar si el primer miembro de una expresión debe ser menor que, igual a ,
o mayor que el segundo miembro.

FUNCIONES DE IMPORTACIÓN DE ARCHIVOS

Estas funciones le permiten importar el texto y datos de fuentes externas. La


función @FILE le permite importar el texto o datos desde un archivo en ASCIL,
y la función @IMPORT le permite importar datos solo de una hoja de calculo.

FUNCIONES DE FINANZAS:

Entre estas funciones están @FPA (I, N), la cual da el valor presente de una
anualidad y la función @FPL (I, N), la cual regresa el valor presente de un valor
global de N periodos de $1 a partir de ahora si la tasa de interés es I por periodo.
I no es un porcentaje, sino un número no negativo que representa la tasa de
interés.

FUNCIONES MATEMÁTICAS:

Comprenden las funciones generales y trigonométricas siguientes: @ABS(X),


@COS(X), @EXP(X), @LGM (X), @LOG(X), @SIGN(X), @SIN(X), @SMAX
(list), @SMIN (list), @TAN(X). Se pueden utilizar combinaciones de las tres
funciones trigonométricas básicas (seno, coseno y tangente) para obtener otras
funciones trigonométricas.
FUNCIONES DE ITERACIONES EN CONJUNTOS:

Comprenden @FOR (set_name: constraint_expression), @MAX (set name:


expression), @MIN (set_name:expression) y @SUM (set_name:expression).
Estas funciones operan sobre un conjunto completo y producen un solo resultado
en todos los casos, excepto con la función @FOR, la cual genera restricciones
independientemente de cada elemento del conjunto.

FUNCIONES DEL DOMINIO DE LA VARIABLE:

Página | 13
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Estas funciones fijan restricciones adicionales sobre variables y atributos.


Comprenden las siguientes: @BND (L, X, U), @BIN(X), @FREE(X) y @GIN(X).

FUNCIONES DE PROBABILIDAD:

LINGO posee capacidades estadísticas comunes con sus funciones de


probabilidad: @PSN(X),@PSL (X), @PPS (A,X), @PPL( A,X), @PBN(P,N,X),
@PHG(POP,G,N,X), @PEL(A,X), @PEB(A,X), PFS(A,X,C),
@PFD(N, D, X), @PCX(N, X), @PTD (N, X) y @RAND (X).

2.3. INTRODUCCIÓN BÁSICA DE UN MODELO EN LINGO

Veamos cómo introducir en LINGO el problema siguiente:


Una empresa elabora tres tipos de piensos usando cuatro tipos de cereales.
Cada saco de pienso contiene 50 kg. y se vende al precio (en euros) indicado en
la tabla siguiente, que contiene también la composición de cada saco y las
existencias de cereales en la fábrica:
Pienso Avena Maíz Cebada Mijo Precio
1 25 25 0 0 9
2 0 20 20 10 12
3 20 0 30 0 6.20
Existencias 50 000 80 000 40 000 10 000

Página | 14
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Determina el número de sacos que deberá producir la empresa de cada tipo de


pienso para maximizar el ingreso (supuesto que vende toda su producción).
El modelo matemático correspondiente a este problema es:
Max. 9x + 12y + 6.2z
s.a 25x + 20z ≤ 50 000
25x + 20y ≤ 80 000
20y + 30z ≤ 40 000
10y ≤ 10 000

x, y, z ≥ 0

Y la forma de escribirlo en LINGO (en un documento. lg4) es la


siguiente:
[Ingresos] Max = 9*x+12*y+6.2*z;

[Avena] 25*x+20*z < 50000;

[Maíz] 25*x+20*y < 80000;

[Cebada] 20*y+30*z < 40000;

[Mijo] 10*y < 10000;

Observaciones:
 La función objetivo se introduce precedida de Max = o de Min =.
 Para introducir una desigualdad de ≤ o " se escribe <= o >= aunque se
puede abreviar a < o >. Para introducir una igualdad escribimos
simplemente =
 Si hemos seleccionado la opción Variables asume non-negativo no es
necesario introducir las condiciones de signo.
 Cada instrucción termina obligatoriamente con ;
 Los cambios de línea son irrelevantes. Por claridad podemos escribir
cada ecuación en una línea, pero sería equivalente escribirlas todas
seguidas en la misma línea. Recíprocamente, si una restricción es muy
larga, podemos partirla en dos o más líneas (teniendo en cuenta que
un cambio de línea es como un espacio en blanco, por lo que no
podemos partir una palabra o un número).
 Las etiquetas entre corchetes verb/[ ]/ son opcionales. Sirven
´únicamente para relacionar más fácilmente la solución que
proporciona LINGO con las distintas líneas del modelo. En caso de
introducir etiquetas, éstas no pueden contener espacios en blanco ni
signos especiales, como acentos, eñes, etc. Una etiqueta puede
contener números, pero no empezar por un número. Podemos usar el
guion bajo para separar palabras (p.ej.: [Existencias_de_mijo]).

Página | 15
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

 Las mismas consideraciones que acabamos de hacer para las


etiquetas valen para los nombres de las variables. En lugar de x, y, z
podríamos haber elegido x1, x2, x3, o incluso sacos_1, sacos_2,
sacos_3.
 LINGO no distingue entre mayúsculas o minúsculas, de modo que, si
en un lugar escribimos x y en otro X, para LINGO se tratara de la
misma variable. Del mismo modo, da igual escribir Max, MAX o max.
 No se pueden omitir los signos de multiplicación *. Para introducir, por
ejemplo, (x − 5)3, escribiríamos (x-5) ^3. Las funciones matemáticas
disponibles en LINGO (exponenciales, logaritmos, etc.) pueden
consultarse en el menú Edit. → Paste función → Mathematical /
Trigonometrical
 Es posible insertar líneas de comentarios (es decir, líneas que LINGO
no leerá) sin más que empezarlas por un signo ! (y terminarlas
igualmente con ;).

2.4. INTERPRETACIÓN DE LA SOLUCIÓN

Una vez introducido un modelo, LINGO lo resuelve si seleccionamos el menú


LINGO → Solve (o, equivalentemente, pulsando en el icono en forma de diana).
LINGO genera entonces un documento .lgr que, en el caso del ejemplo anterior
(además de alguna información técnica) contiene lo siguiente:

Variable Value Reduced Cost

X 2000.000 0.000000

Y 1000.000 0.000000

Z 0.000000 1.000000

Row Slack or Surplus Dual Price

INGRESOS 30000.00 1.000000

AVENA 0.000000 0.3600000


Página | 16
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

MAIZ 10000.00 0.000000

CEBADA 20000.00 0.000000

MIJO 0.000000 1.200000

 La columna titulada Value contiene el valor óptimo de cada variable.


 En la columna titulada Slack or Surplus, la entrada correspondiente a
la función objetivo (es decir, la etiquetada como INGRESOS) contiene el
valor óptimo de la función objetivo, mientras que las restantes contienen
las variables de holgura de las restricciones. Por ejemplo, vemos que para
la solución óptima sobran 10 000 kg de maíz.
 La columna titulada Reduced Cost contiene (salvo el signo) los
multiplicadores de Kuhn y Tucker de las variables del problema. El signo
es el que se corresponde con la interpretación siguiente:
El coste reducido de una variable x indica aproximadamente lo que empeorara
la función objetivo (es decir, disminuirá en un problema de maximizar o
aumentará en un problema de minimizar) por cada unidad que aumente el
término independiente de la restricción x ≥ 0.

Estrictamente hablando, el coste reducido λ ha de entenderse como la


derivada de la función valor óptimo respecto al término independiente
indicado (cambiada de signo en los problemas de maximizar), por lo que
la mejora de la función objetivo cuando la condición de signo pasa a ser x
≥ c será aproximadamente λ · c, y ´esta aproximación sólo es válida para
valores de c suficientemente pequeños.

Para problemas lineales el coste reducido tiene una interpretación


alternativa:
El coste reducido de una variable x que tome el valor 0 es lo que debe mejorar
el coeficiente de x en la función objetivo para que el valor óptimo de x pase a ser
no nulo. (Las variables que ya son no nulas tienen coste reducido nulo.)

Así, por ejemplo, por cada saco de pienso de tipo 3 que quisiéramos
fabricar, los ingresos disminuirían en 1 € o, equivalentemente, para que
resulte rentable fabricar sacos de pienso de tipo 3 es necesario que su
precio de venta aumente al menos en 1 €.

 La columna Dual Price contiene (salvo el signo) los multiplicadores de


Kuhn y Tucker (o variables duales, en el caso de la programación lineal)
de las restricciones (excepto la entrada correspondiente a la función
objetivo, cuyo valor es siempre igual a 1). El signo es el que se
corresponde con la interpretación siguiente:

Página | 17
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

El precio dual de una restricción indica aproximadamente lo que mejorara la


función objetivo por cada unidad que aumente el término independiente de la
restricción.

Esto ha de entenderse igualmente como una derivada en las mismas


condiciones en que es válida la interpretación de los costes reducidos.

Por ejemplo, por cada kg adicional de avena que pudiéramos conseguir


los ingresos aumentarían en 0.36 €.

Si hemos seleccionado la opción para que LINGO calcule los intervalos


de sensibilidad, podemos obtenerlos en el menú LINGO → Rango (teniendo
activa la ventana correspondiente al documento .lg4).

El resultado es un nuevo documento .lgr con las tablas siguientes (que en


la práctica podemos copiar y pegar en la ventana que contiene la solución del
problema):
Objective Coefficient Ranges:
Current Allowable Allowable
Variable Coefficient Increase Decrease
X 9.000000 INFINITY 1.250000
Y 12.00000 INFINITY 12.00000
Z 6.200000 1.000000 INFINITY

Righthand Side Ranges:


Current Allowable Allowable
Row RHS Increase Decrease
AVENA 50000.00 10000.00 50000.00
MAIZ 80000.00 INFINITY 10000.00
CEBADA 40000.00 INFINITY 20000.00
MIJO 10000.00 5000.000 10000.00

En problemas de programación lineal, la interpretación es la siguiente:

 La tabla titulada Objective Coefficient Ranges contiene el valor actual del


coeficiente de cada variable en la función objetivo junto con lo máximo
que puede aumentar o disminuir para que la solución ´optima no cambie.
Por ejemplo, mientras el precio de los sacos de tipo 1 no descienda más
de 1.25 €, la solución óptima del problema seguirá siendo la misma.
 La tabla titulada Righthand Side Ranges contiene el valor actual de
término independiente de cada restricción junto con lo máximo que puede
Página | 18
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

aumentar o disminuir para que las variables básicas de la solución óptima


sigan siendo las mismas. Si la restricción no está saturada podemos decir
que la solución óptima seguirá siendo la misma.
Por ejemplo, mientras la cantidad disponible de avena no aumente en más
de 10 000 kg seguirá siendo cierto que:
1. No convendrá producir pienso de tipo 3 (z = 0),
2. Agotaremos toda la avena disponible (la holgura de la avena será
nula),
3. Agotaremos todo el mijo disponible (la holgura del mijo será nula).
Se cumple que el precio dual de una restricción sólo es aplicable para
determinar (de forma exacta en programación lineal) la mejora de la
función objetivo que tiene lugar cuando se produce un incremento en el
término independiente de la restricción que queda dentro del rango
indicado en la tabla que acabamos de interpretar.

Terminamos con algunas observaciones:

 Si intentamos resolver un problema infactible o no acotado, LINGO lo


indica mediante un cuadro de diálogo.
 Si “resolvemos” un problema sin función objetivo (por ejemplo, poniendo
una exclamación ante la primera línea de nuestro modelo de ejemplo),
LINGO estudia si las restricciones introducidas son o no factibles.
 Si no hemos puesto etiquetas a las restricciones, LINGO se referirá a ellas
con números (según el orden en que las hemos escrito en el modelo), de
ahí la conveniencia de poner etiquetas.

2.5. DEFINICIÓN DE CONJUNTOS

LINGO permite introducir los modelos en términos de conjuntos de ´índices,


lo cual aporta numerosas ventajas:

 Las ecuaciones son independientes de los datos, de modo que se puede


cambiar ´estos sin modificar aquellas, o incluso se puede escribir un
modelo que contenga únicamente las ecuaciones y que lea los datos de
otro documento.

Página | 19
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

 Si el modelo tiene varias ecuaciones que siguen un mismo esquema, se


pueden introducir todas ellas como una única fórmula general.
 La estructura del modelo se simplifica, ya que, por una parte, las
ecuaciones pueden escribirse conceptualmente, sin mezclarlas con los
datos y, por otra, los datos pueden introducirse en un orden más claro,
independiente del lugar en el que deben aparecer en el modelo.

Veamos cómo modelizar el ejemplo de las secciones precedentes en


términos de conjuntos. Para ello observamos que todos los datos del problema
están asociados esencialmente a dos conjuntos: un conjunto de cuatro cereales
y un conjunto de tres tipos de pienso. Una forma de introducir estos conjuntos en
LINGO es la siguiente:

SETS:
Cereal/Avena, Maiz, Cebada, Mijo/:Existencias;
Pienso/1..3/: Precio, Sacos;
ENDSETS

 Las palabras SETS: ENDSETS determinan una sección en un modelo de


LINGO. En general, una sección empieza con su nombre (en este caso
SETS) seguido de : (no ;) y termina con END y el mismo nombre (sin
ningún signo de puntuación). La sección SETS sirve para definir
conjuntos.
 Para definir un conjunto escribimos su nombre, luego sus elementos entre
barras / / y luego, separadas por :, las variables asociadas al conjunto.
Así, por ejemplo, las líneas anteriores definen un conjunto llamado Cereal
cuyos elementos son: Avena, Maiz, Cebada, Mijo, de modo que cada
cereal tiene asociada una variable Existencias, es decir, que hemos
definido cuatro variables llamadas Existencias (Avena), Existencias
(Maiz), Existencias (Cebada) y Existencias (Mijo).

Similarmente, hemos definido un conjunto llamado Pienso cuyos


elementos son los números del 1 al 3, y estos elementos tienen definidas
dos variables, Precio y Sacos, de modo que tenemos seis nuevas
variables, Precio (1), Precio (2), Precio (3), Sacos (1), Sacos
(2), Sacos (3).

En vez de 1..3 podíamos haber escrito 1, 2, 3, pero los dos puntos .. son
una de las formas abreviadas que admite LINGO para definir los
elementos de un conjunto. En general tenemos las posibilidades
siguientes (aparte de la enumeración explicita de los elementos):

Página | 20
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Definición Elementos
4..7 4, 5, 6, 7
CH2..CH5 CH2, CH3, CH4, CH5
MON..WED MON, TUE WED
OCT..JAN OCT, NOV, DEC, JAN
NOV2010..FEB2011 NOV2010, DEC2010, JAN2011, FEB2011

Podemos ver las variables que hemos definido “resolviendo” el problema


que hemos tecleado hasta ahora (que de momento sólo consta de la sección
SETS). Entonces LINGO nos dice que el problema es factible y presenta como
ejemplo de solución factible la siguiente:
Variable Value
EXISTENCIAS( AVENA) 1.234568
EXISTENCIAS( MAIZ) 1.234568
EXISTENCIAS( CEBADA) 1.234568
EXISTENCIAS( MIJO) 1.234568
PRECIO( 1) 1.234568
PRECIO( 2) 1.234568
PRECIO( 3) 1.234568
SACOS( 1) 1.234568
SACOS( 2) 1.234568
SACOS( 3) 1.234568

En general, cuando busca soluciones factibles, LINGO asigna el valor


1.234568 a las variables que no están sujetas a ninguna restricción.

Para asignar un valor fijo a algunas variables (y convertirlas así en


constantes) usamos una sección:
DATA:

SETS:
Cereal/Avena, Maiz, Cebada, Mijo/:Existencias;
Pienso/1..3/: Precio, Sacos;
ENDSETS

DATA:
Existencias = 50000 80000 40000 10000;
Precio = 9, 12, 6.20;
ENDDATA

Notemos que hemos separado por comas los distintos precios, mientras
que no hemos puesto nada entre las existencias de cada cereal. El uso de comas
es opcional (al igual que lo es en la declaración de los elementos de un conjunto
en la sección SETS). Si ahora volvemos a “resolver” el problema veremos que
Página | 21
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

las constantes ya tienen su valor asignado, y que sólo quedan las variables
Sacos, que son las auténticas variables del problema:
Variable Value
EXISTENCIAS( AVENA) 50000.00
EXISTENCIAS( MAIZ) 80000.00
EXISTENCIAS( CEBADA) 40000.00
EXISTENCIAS( MIJO) 10000.00
PRECIO( 1) 9.000000
PRECIO( 2) 12.00000
PRECIO( 3) 6.200000
SACOS( 1) 1.234568
SACOS( 2) 1.234568
SACOS( 3) 1.234568

 Si hubiéramos querido asignar a todas las existencias el valor 10 000


podríamos haber escrito:

Existencias = 10000;

 Si hubiéramos querido dejar las existencias de cebada como variable


podríamos haber escrito:
Existencias = 50000, 80000, , 10000;

(Éste es el único caso en que el uso de comas es obligatorio.)


 La declaración de los elementos de un conjunto puede hacerse
indistintamente en la sección SETS o en la sección DATA. Así, por
ejemplo, podríamos haber escrito:
SETS:
Cereal:Existencias;
Pienso/1..3/: Precio, Sacos;
ENDSETS

DATA:
Cereal = Avena Maiz Cebada Mijo;
Existencias = 50000 80000 40000 10000;
Precio = 9, 12, 6.20;
ENDDATA

Igualmente podríamos haber escrito Pienso = 1..3; en la sección DATA,


pero siempre cuidando de no definir nunca dos veces el mismo conjunto.
 Si quisiéramos definir una constante no asociada a ningún conjunto (por
ejemplo, un máximo número de sacos que nos estuviera permitido
producir) lo haríamos en la sección DATA, de este modo:
MaxSacos = 2500;

Página | 22
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Nos falta introducir la cantidad de cada cereal que contiene cada tipo de
pienso. Estas cantidades no están asociadas ni a los cereales ni a los piensos,
sino a las parejas de ambos. Para ello hemos de definir el conjunto de tales
parejas. La forma de hacerlo es la siguiente:
SETS:
Cereal:Existencias;
Pienso/1..3/: Precio, Sacos;
Pareja(Pienso, Cereal): Cantidad;
ENDSETS

DATA:
Cereal = Avena Maiz Cebada Mijo;
Cantidad = 25 25 0 0
0 20 20 10
20 0 30 0;
Existencias = 50000 80000 40000 10000;
Precio = 9, 12, 6.20;
ENDDATA

 La definición Pareja (Pienso, Cereal) establece que el conjunto Pareja


está formado por todos los pares de un pienso y un cereal. Cada pareja
tiene asociada una variable Cantidad, de modo que hemos definido 12
nuevas variables Cantidad (1, Avena), etc. Igualmente se pueden definir
conjuntos de ternas, cuádruplas, etc.
 A la hora de dar un valor a todas las variables asociadas a un conjunto de
parejas, ternas, etc., se fijan todos los ´índices menos el ´ultimo y se hace
variar ´este, luego se aumenta el pen último y se vuelve a hacer variar el
´ultimo, y así sucesivamente. Por ejemplo, si definiéramos una variable
a(I, J, K) donde cada uno de los tres conjuntos tiene elementos 1, 2, habría
que introducir los valores de a en el orden a111, a112, a121, a122, a211, a212,
a221, a222.
 Como siempre, los valores sucesivos se pueden separar por comas o no,
y tampoco hay ninguna necesidad de cambiar de línea al completar una
fila de una tabla, ni mucho menos de alinear sus columnas. Si lo hemos
hecho así en la tabla del ejemplo ha sido únicamente por claridad.
 También habríamos podido definir simultáneamente el conjunto Cereal y
las variables Existencias, así:
Cereal, Existencias = Avena 50000, Maiz 80000, Cebada 40000,
Mijo 10000;

(Como siempre, las comas se pueden suprimir.)

Terminamos esta sección observando que también es posible asignar un valor


inicial a una variable sin que por ello LINGO deje de considerarla variable. Para
ello no asignamos el valor en la sección DATA, sino en una sección INIT, así:

Página | 23
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

INIT:
sacos = 1000;
ENDINIT
2.6. ECUACIONES CON CONJUNTOS

Veamos ahora cómo introducir las ecuaciones de un modelo cuando los datos
están expresados en términos de conjuntos. Para el ejemplo que estamos
considerando tendríamos que escribir:
SETS:
Cereal:Existencias;
Pienso/1..3/: Precio, Sacos;
Pareja(Pienso, Cereal): Cantidad;
ENDSETS

DATA:
Cereal = Avena Maiz Cebada Mijo;
Cantidad = 25 25 0 0
0 20 20 10
20 0 30 0;
Existencias = 50000 80000 40000 10000;
Precio = 9, 12, 6.20;
ENDDATA

[Ingresos] Max = @Sum(Pienso(p): precio(p)*sacos(p));

@For(Cereal(c):[Limite] @Sum(Pienso(p): Cantidad(p,


c)*sacos(p))<Existencias(c));

 La línea de la función objetivo empieza como siempre, con una etiqueta


seguida de Max =. El resto se lee así: “Suma para todo pienso p del
precio de p por el número de sacos producidos de p”. En general, dentro
de @Sum() ponemos el nombre de un conjunto seguido de una nueva
variable (en este caso p), que hace referencia a un elemento gen érico del
conjunto, luego : y la expresión (en función de p) que queremos sumar
para todo p.
 La segunda línea define simultáneamente cuatro restricciones, una para
cada cereal. Podemos leer: “Para todo cereal c, definimos la restricción
etiquetada [Limite] como que la suma para todo pienso p de la cantidad
de cereal c en el pienso p por el número de sacos producidos de p ha de
ser ≤ que las existencias de c”.

La sintaxis de @For() es la misma que la de @Sum(). Escribimos el


nombre de un conjunto con una nueva variable entre paréntesis (en este
caso c), luego : y luego lo que queremos que LINGO haga para cada valor
de c.

Página | 24
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

 Las instrucciones de LINGO que recorren los elementos de un conjunto


son las siguientes:
@For(Conjunto(i): ) Repite una tarea para todo i
@Sum(Conjunto(i): ) Suma una expresión para todo i
@Prod(Conjunto(i): ) Multiplica una expresión para todo i

@Max(Conjunto(i): ) Calcula el máximo para todo i


@Min(Conjunto(i): ) Calcula el mínimo para todo i
@Writefor(Conjunto(i): ) Escribe una expresión para todo i

 En general, cuando dentro de estas instrucciones sólo aparece un índice,


éste se puede suprimir. Por ejemplo, la función objetivo se podía haber
introducido así:
[Ingresos] Max = @Sum(Pienso: precio*sacos);

 Así, si queremos exigir que todas las variables del problema sean enteras
podemos escribir:
@For(Pienso(p): @GIN(Sacos(p)));

o simplemente @For(Pienso: @GIN(Sacos));


 Podemos anidar cualquiera de estas instrucciones dentro de otra. Por
ejemplo:
@Sum(A(i): @Sum(B(j): c(i)*d(j)))

calcula la suma de cidj para todo i del conjunto A y todo j del conjunto B.
 Los bucles pueden recorrer conjuntos de pares, ternas etc., en cuyo caso
hemos de introducir tantas variables como componentes tiene el conjunto.
Por ejemplo, si queremos sumar todas las cantidades para todo pienso y
todo cereal, podemos escribir:
@Sum(Pareja(p, c): Cantidad(p, c))

2.7. MÁS SOBRE CONJUNTOS

Página | 25
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Es posible definir subconjuntos de un conjunto dado. Por ejemplo:


SETS:
Ciudad/C1..C5/:Distancia,Demanda;
Extranjera(ciudad)/C4,C5/:x;
Carretera(Ciudad, Ciudad)|(&1 #LT# &2):y;
ENDSETS

DATA:
Distancia = 0, 50, 1150, 1200, 1500;
Demanda =1000, 2300, 800, 3000, 900;
ENDDATA

SETS:
Lejana(Ciudad)|(Distancia(&1)#GE#1000):z;
ENDSETS

 Aquí hemos definido un conjunto de cinco ciudades C1, C2, C3, C4, C5,
cada una de las cuales tiene asociada una distancia y una demanda.
 A continuación, definimos un subconjunto formado por las ciudades
extranjeras, cuyos elementos son C4, C5. Para definir un subconjunto
escribimos su nombre seguido del nombre del conjunto entre paréntesis.
Esto significa que, por ejemplo,
@Sum(Ciudad(c):Demanda(c))

es la suma de las demandas de todas las ciudades, mientras que


@Sum(Extranjera(c):Demanda(c))

es la suma de las demandas de todas las ciudades extranjeras.


En general, el hecho de que Extranjera sea un subconjunto de Ciudad se
traduce en que las variables definidas sobre los índices de Ciudad están
definidas también para los índices de Extranjera.

3. CAPÍTULO 1: PROBLEMAS DE PROGRAMACIÓN LINEAL

3.1. PROBLEMAS DE PRODUCCIÓN

Página | 26
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

1. Una compañía elabora 2 productos P1 Y P2, cada uno requiere de


componentes c1 y c2. La disponibilidad de componentes y precio de
venta se muestra en el siguiente cuadro:

Componentes Precio de
Producto Venta
C1 C2
(S/./unid)
P1 1 2 4
P2 3 1 3
Disponibilidad
15000 10000
(unid)

Se pide presentar el modelo que optimiza el ingreso por ventas y la


solución óptima.
Solución:
XI = Unidades del Producto i a producir (i=1,2)
La función objetivo es:
2
∑ 𝑋𝑖 ∗ 𝑃𝑟𝑒𝑐𝑖𝑜 𝑑𝑒 𝑣𝑒𝑛𝑡𝑎
𝑖=1

Entonces tendremos: Max Z=4X1+3X2


Sujeto a:
2
∑ 𝑋𝑖 ∗ 𝐶𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠(𝑗) ≤ 𝐷𝑖𝑠𝑝𝑜𝑛𝑖𝑏𝑖𝑙𝑖𝑑𝑎𝑑(𝑖, 𝑗)
𝑖=1

Donde (i,j) es el componente de cada producto.


El desarrollo en lingo es:
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));

Con la respectiva solución:


Objective value: 24000.00
Página | 27
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Infeasibilities: 0.000000
Total solver iterations: 2
Elapsed runtime seconds: 0.49

Model Class: LP

Total variables: 2
Nonlinear variables: 0
Integer variables: 0

Total constraints: 3
Nonlinear constraints: 0

Total nonzeros: 6
Nonlinear nonzeros: 0

Variable Value Reduced Cost


PV( 1) 4.000000 0.000000
PV( 2) 3.000000 0.000000
X( 1) 3000.000 0.000000
X( 2) 4000.000 0.000000
DISP( 1) 15000.00 0.000000
DISP( 2) 10000.00 0.000000
CANT( 1, 1) 1.000000 0.000000
CANT( 1, 2) 2.000000 0.000000
CANT( 2, 1) 3.000000 0.000000
CANT( 2, 2) 1.000000 0.000000

Row Slack or Surplus Dual Price


1 24000.00 1.000000
2 0.000000 0.4000000
3 0.000000 1.800000

La interpretación de la solución es que los valores de X1=3000 Y X2=4000


son los valores óptimos del ingreso por ventas, donde Zmax=24000.

2. La capacidad de producción de TEXTIL-PERÚ es de 900 unidades


mensuales. Los costos unitarios de producción y el compromiso
mensual de venta a EXPORT-PERÚ son como sigue:

Costo de Compromiso
Mes
Producción(S/./unid) mensual (unid)

Página | 28
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

1 100 300
2 150 350
3 200 400

Si la capacidad de producción de la empresa es de 700 unid/mes. Se


pide formular el problema y minimizar los costos de producción.
Solución:
XI = Unidades de producción del mes i (i=1,2,3)
La función objetivo es:
3
∑ 𝑋𝑖 ∗ 𝐶𝑜𝑠𝑡𝑜 𝑑𝑒 𝑝𝑟𝑜𝑑𝑢𝑐𝑐𝑖ó𝑛
𝑖=1

Entonces tendremos: Min Z=100X1+150X2+200X3


Sujeto a:
3 3
∑ 𝑋𝑖 ≤ ∑ 𝐷𝑖𝑠𝑝𝑜𝑛𝑖𝑏𝑖𝑙𝑖𝑑𝑎𝑑𝑖
𝑖=1 𝑖=1
3
∑ 𝑋𝑖 ≤ 700
𝑖=1

En este caso, tenemos 2 restricciones por mes, serían 6 restricciones.


El desarrollo en lingo es:
SETS:
MES/1..3/:CPROD,X;
COMP/1/:DISP;
MATRIZ(MES,COMP):REQ;
ENDSETS

DATA:
CPROD=100 150 200;
DISP=700;
REQ=300 350 400;
ENDDATA

MIN=@SUM(MES:CPROD*X);
@FOR(MATRIZ(I,J):@SUM(@FOR(MES(I):X(I)))<=@SUM(@FOR(MATRIZ(I,J):
REQ(J))));
@FOR(MES(I):X(I)<=DISP);
END

3. Una empresa que fabrica un producto único, tiene 3 fábricas y 4


clientes. Las 3 fábricas 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

Página | 29
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

y 4 quieren comprar la mayor cantidad posible de las unidades


restantes. En la siguiente tabla se da la ganancia asociada con el
envío de una unidad desde la fábrica i hacia el cliente j.

DESDE AL CLIENTE
1 2 3 4
(dólares) (dólares) (dólares)
(dólares)
Fabrica 1 65 63 62 64
Fabrica 2 68 67 65 62
Fabrica 3 63 60 59 60

Plantear un problema de transporte balanceado que se pueda


utilizar para maximizar la ganancia de la compañía.
Solución:
UNID ij = la cantidad enviada de la fábrica i al cliente j (i=1,2,3 j=1,2,3,4)

La función objetivo es:


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)

Sujeto a:
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

El desarrollo en lingo es:


SETS:
FABR/FAB1,FAB2,FAB3/: CAPAC;
CLIEN/CEN1,CEN2,CEN3,CEN4/:DEMAN;
VIAS(FABR,CLIEN):GANAN,UNID;
ENDSETS

Página | 30
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

DATA:
CAPAC=3000 5000 5000;
DEMAN=4000 3000 3000 6000;
GANAN=65,63,62,64,
68,67,65,62,
63,60,59,60;
ENDDATA

MAX UNID=@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));
END

Con la respectiva solución:


Variable Value Reduced Cost

UNID( FAB1, CEN1) 0.0000000 3.0000000


UNID( FAB1, CEN2) 0.0000000 1.0000000
UNID( FAB1, CEN3) 0.0000000 2.0000000
UNID( FAB1, CEN4) 3000.000 0.0000000
UNID( FAB2, CEN1) 2000.000 0.0000000
UNID( FAB2, CEN2) 3000.000 0.0000000
UNID( FAB2, CEN3) 0.0000000 0.0000000
UNID( FAB2, CEN4) 0.0000000 2.0000000
UNID( FAB3, CEN1) 2000.000 0.0000000
UNID( FAB3, CEN2) 0.0000000 0.0000000
UNID( FAB3, CEN3) 0.0000000 1.0000000
UNID( FAB3, CEN4) 3000.000 0.0000000

4. QUÍMICA S.A. produce dos solventes, S1 y S2. Las empresas


compran S1 y S2 para disolver ciertas pinturas y sustancias tóxicas.
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 máquinas que mezclan las sustancias
Página | 31
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

químicas para producir cada solvente. Los productos salen del


departamento de mezclado para pasar al departamento de
purificación 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. QUÍMICA S.A. tiene una provisión
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 galón de S1 y $0.45 por galón de S2. El gerente
de procesos estima que el número de horas necesarias para producir
mil galones de cada solvente en los departamentos de mezcla y
purificación es dado en la siguiente tabla:

Departamento S1 S2
Mezcla 2 1
Purificación 1 2

¿Cuál es el plan de producción óptimo para QUÍMICA S.A.?


Solución:
XI = Unidades del Producto i a producir (i=1,2)
La función objetivo es:
2
∑ 𝑋𝑖 ∗ 𝑃𝑟𝑒𝑐𝑖𝑜 𝑑𝑒 𝑣𝑒𝑛𝑡𝑎
𝑖=1

Entonces tendremos: Max Z=4X1+3X2


Sujeto a:
2
∑ 𝑋𝑖 ∗ 𝐶𝑜𝑚𝑝𝑜𝑛𝑒𝑛𝑡𝑒𝑠(𝑗) ≤ 𝐷𝑖𝑠𝑝𝑜𝑛𝑖𝑏𝑖𝑙𝑖𝑑𝑎𝑑(𝑖, 𝑗)
𝑖=1

Donde (i,j) es el componente de cada producto.


El desarrollo en lingo es:
Sets:
Solvente/1..2/:;
Departamento/ mezcla, purificacion/: disponibilidad_horas;
Produccion(Solvente):cantidad, utilidad;
Horas_de_consumo(Solvente,Departamento):Horas;
Endsets

Data:
utilidad = 350, 450;
horas = 2,1,

Página | 32
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

1,2;
disponibilidad_horas=190, 292;
Enddata

Max=@sum (Produccion:cantidad*utilidad);
@for(Departamento(j):@sum(Produccion(i):cantidad(i)*horas(i,j))<=di
sponibilidad_horas(j));
@for (Produccion:cantidad(2)<=100);
END

Con la respectiva solución:


Global optimal solution found.
Objective value: 60750.00
Infeasibilities: 0.000000
Total solver iterations: 1
Elapsed runtime seconds: 2.78

Model Class: LP

Total variables: 2
Nonlinear variables: 0
Integer variables: 0

Total constraints: 5
Nonlinear constraints: 0

Total nonzeros: 8
Nonlinear nonzeros: 0

Variable Value Reduced Cost


DISPONIBILIDAD_HORAS( MEZCLA) 190.0000 0.000000
DISPONIBILIDAD_HORAS( PURIFICACION) 292.0000 0.000000
CANTIDAD( 1) 45.00000 0.000000
CANTIDAD( 2) 100.0000 0.000000
UTILIDAD( 1) 350.0000 0.000000
UTILIDAD( 2) 450.0000 0.000000
HORAS( 1, MEZCLA) 2.000000 0.000000
HORAS( 1, PURIFICACION) 1.000000 0.000000
HORAS( 2, MEZCLA) 1.000000 0.000000
HORAS( 2, PURIFICACION) 2.000000 0.000000

5. La Philbrick Company tiene dos plantas en lados opuestos de


Estados Unidos. Cada una produce los mismos dos productos y los
vende a distribuidores en su mitad del país. Ya se recibieron las
órdenes de los distribuidores para los próximos 2 meses (febrero y
marzo); el número de unidades que se requieren se muestran en la
tabla. (La compañía no está obligada a cumplir totalmente estas
órdenes, pero lo hará, si puede, sin disminuir sus ganancias).
Producto Planta 1 Planta 2

Página | 33
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Febrero Marzo Febrero Marzo


1 3600 6300 4900 4200
2 4500 5400 5100 6000

Cada planta tiene 20 días de producción disponibles en febrero y 23


en marzo para producir y enviar los productos. Los inventarios se
agotan al final de enero, pero cada planta tiene suficiente capacidad
de inventario para 1000 unidades en total de los dos productos, si se
produce un exceso en febrero para venta en marzo. En cualquier
planta, el costo de mantener inventario de esta manera es de $3 por
unidad de producto 1 y $4 por unidad de producto 2.
Cada planta tiene los mismos dos procesos de producción que se
pueden usar para producir cualquiera de estos productos. El costo
de producción por unidad producida se muestra en la tabla para cada
proceso en cada planta.
Planta 1 Planta 2
Producto
Proceso 1 Proceso 2 Proceso 1 Proceso 2
1 $62 $59 $61 $65
2 $78 $85 $89 $86

A continuación, se presenta la tasa de producción de cada producto


(número de unidades de ese producto fabricadas por día) mediante
cada proceso en cada planta.
Planta 1 Planta 2
Producto
Proceso 1 Proceso 2 Proceso 1 Proceso 2
1 100 140 130 110
2 120 150 160 130

El ingreso neto por ventas (precio de venta menos costos de envío


normal) que recibe la compañía cuando una planta vende los
productos a sus propios clientes (distribuidores en su mitad del país)
es de $83 por unidad del producto 1 y $112 por unidad del producto
2. Sin embargo, también es posible (y en ocasiones deseable) que
una planta haga un envío a la otra mitad del país para ayudar a
satisfacer la venta de la otra, Cuando esto ocurre se incurre en un
costo adicional de $9 en el caso del producto 1 y $ 7 en el del
producto 2.
La administración debe determinar cuánto fabricar de cada producto
mediante cada proceso en cada planta cada mes, al igual que cuánto
debe enviar cada planta de cada producto cada mes a los clientes de
la otra planta, El objetivo es determinar el plan factible que maximice

Página | 34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

la ganancia total (ingresos netos por venta menos la suma de los


costos de producción, de inventario y los costos adicionales de
envío).
Solución:

SETS:
PRODUCTO/1..2/:PRECIO,COSTOINV;
MES/FEB MAR/:DIAS;
PLANTA/1..2/;
PROCESO/1..2/;
REGION/1..2/;

PRRREG(PRODUCTO,REGION):INV;
CADENA1(PRODUCTO,MES,PLANTA,PROCESO,REGION):X;
CADENA2(PRODUCTO,MES,REGION): DEMANDA ;
CADENA3(PRODUCTO,PLANTA,PROCESO):COSTOPROD,CANTPROD;
CADENA6(PRODUCTO,PLANTA,REGION):COSTOTRANSP;

ENDSETS

DATA:
DEMANDA=3600 4900
6300 4200
4500 5100
5400 6000;
DIAS=20 23;
COSTOINV=3 4;
COSTOPROD=62 59 61 65
78 85 89 86;
CANTPROD=100 140 130 110
120 150 160 130;
PRECIO=83 112;
COSTOTRANSP=0 9 9 0
0 7 7 0;
ENDDATA

MAX=( @SUM(
PRODUCTO(I):PRECIO(I)*@SUM(MES(J):@SUM(PLANTA(K):@SUM(PROCESO(L):@SUM(
REGION(M):X(I,J,K,L,M))))))
-
@SUM(CADENA3(I,K,L):COSTOPROD(I,K,L)*@SUM(MES(J):@SUM(REGION(M):X(I,J,
K,L,M))) )
-@SUM(PRODUCTO(I):COSTOINV(I)*@SUM(REGION(M):INV(I,M)))
-
@SUM(CADENA6(I,K,M):COSTOTRANSP(I,K,M)*@SUM(MES(J):@SUM(PROCESO(L):X(I
,J,K,L,M)))) );

@FOR(CADENA2(I,FEB,M):(@SUM(PROCESO(L):@SUM(PLANTA(K):X(I,FEB,K,L,M)))
-INV(I,M))<=DEMANDA(I,FEB,M));
@FOR(CADENA2(I,MAR,M):(@SUM(PROCESO(L):@SUM(PLANTA(K):X(I,MAR,K,L,M)))
+INV(I,M))<=DEMANDA(I,MAR,M));

@FOR(PRRREG(I,M):INV(I,M) <=1000);

Página | 35
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

@FOR(MES(J):@SUM(CADENA3(I,K,L):@SUM(REGION(M):X(I,J,K,L,M)) /
CANTPROD(I,K,L) )<=DIAS(J));

END

Exportando Lingo A Excel:


MODEL:
SETS:
PRODUCTO/1..2/:PRECIO,COSTOINV;
MES/FEB MAR/:DIAS;
PLANTA/1..2/;
PROCESO/1..2/;
REGION/1..2/;

PRRREG(PRODUCTO,REGION):INV;
CADENA1(PRODUCTO,MES,PLANTA,PROCESO,REGION):X;
CADENA2(PRODUCTO,MES,REGION): DEMANDA ;
CADENA3(PRODUCTO,PLANTA,PROCESO):COSTOPROD,CANTPROD;
CADENA6(PRODUCTO,PLANTA,REGION):COSTOTRANSP;

ENDSETS

DATA:
DEMANDA=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');

DIAS=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');

COSTOINV=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');

COSTOPROD=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');

CANTPROD=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');

PRECIO=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');

COSTOTRANSP=@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx');

@OLE('D:\felix\Desktop\COMPANY_INVES_OPERA.xlsx')=X;

ENDDATA

MAX=( @SUM(
PRODUCTO(I):PRECIO(I)*@SUM(MES(J):@SUM(PLANTA(K):@SUM(PROCESO(L):@SUM(
REGION(M):X(I,J,K,L,M))))))
-
@SUM(CADENA3(I,K,L):COSTOPROD(I,K,L)*@SUM(MES(J):@SUM(REGION(M):X(I,J,
K,L,M))) )
-@SUM(PRODUCTO(I):COSTOINV(I)*@SUM(REGION(M):INV(I,M)))
-
@SUM(CADENA6(I,K,M):COSTOTRANSP(I,K,M)*@SUM(MES(J):@SUM(PROCESO(L):X(I
,J,K,L,M)))) );

@FOR(CADENA2(I,FEB,M):(@SUM(PROCESO(L):@SUM(PLANTA(K):X(I,FEB,K,L,M)))
-INV(I,M))<=DEMANDA(I,FEB,M));

Página | 36
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

@FOR(CADENA2(I,MAR,M):(@SUM(PROCESO(L):@SUM(PLANTA(K):X(I,MAR,K,L,M)))
+INV(I,M))<=DEMANDA(I,MAR,M));

@FOR(PRRREG(I,M):INV(I,M) <=1000);

@FOR(MES(J):@SUM(CADENA3(I,K,L):@SUM(REGION(M):X(I,J,K,L,M)) /
CANTPROD(I,K,L) )<=DIAS(J));

END

Solución en Lingo:
Global optimal solution found.
Objective value: 175440.0
Infeasibilities: 0.000000
Total solver iterations: 2
Elapsed runtime seconds: 0.08

Model Class: LP

Total variables: 36
Nonlinear variables: 0
Integer variables: 0

Total constraints: 23
Nonlinear constraints: 0

Total nonzeros: 152


Nonlinear nonzeros: 0

Variable Value Reduced Cost


PRECIO( 1) 83.00000 0.000000
PRECIO( 2) 112.0000 0.000000
COSTOINV( 1) 3.000000 0.000000
COSTOINV( 2) 4.000000 0.000000
DIAS( FEB) 20.00000 0.000000
DIAS( MAR) 23.00000 0.000000
INV( 1, 1) 0.000000 3.000000
INV( 1, 2) 0.000000 3.000000
INV( 2, 1) 0.000000 4.000000
INV( 2, 2) 0.000000 4.000000
X( 1, FEB, 1, 1, 1) 0.000000 19.80000
X( 1, FEB, 1, 1, 2) 0.000000 28.80000
X( 1, FEB, 1, 2, 1) 0.000000 5.142857
X( 1, FEB, 1, 2, 2) 0.000000 14.14286
X( 1, FEB, 2, 1, 1) 0.000000 18.38462
X( 1, FEB, 2, 1, 2) 0.000000 9.384615
X( 1, FEB, 2, 2, 1) 0.000000 28.09091
X( 1, FEB, 2, 2, 2) 0.000000 19.09091
X( 1, MAR, 1, 1, 1) 0.000000 19.80000
X( 1, MAR, 1, 1, 2) 0.000000 28.80000
X( 1, MAR, 1, 2, 1) 0.000000 5.142857
X( 1, MAR, 1, 2, 2) 0.000000 14.14286
X( 1, MAR, 2, 1, 1) 0.000000 18.38462
X( 1, MAR, 2, 1, 2) 0.000000 9.384615
Página | 37
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

X( 1, MAR, 2, 2, 1) 0.000000 28.09091


X( 1, MAR, 2, 2, 2) 0.000000 19.09091
X( 2, FEB, 1, 1, 1) 2400.000 0.000000
X( 2, FEB, 1, 1, 2) 0.000000 7.000000
X( 2, FEB, 1, 2, 1) 0.000000 0.2000000
X( 2, FEB, 1, 2, 2) 0.000000 7.200000
X( 2, FEB, 2, 1, 1) 0.000000 9.500000
X( 2, FEB, 2, 1, 2) 0.000000 2.500000
X( 2, FEB, 2, 2, 1) 0.000000 12.38462
X( 2, FEB, 2, 2, 2) 0.000000 5.384615
X( 2, MAR, 1, 1, 1) 2760.000 0.000000
X( 2, MAR, 1, 1, 2) 0.000000 7.000000
X( 2, MAR, 1, 2, 1) 0.000000 0.2000000
X( 2, MAR, 1, 2, 2) 0.000000 7.200000
X( 2, MAR, 2, 1, 1) 0.000000 9.500000
X( 2, MAR, 2, 1, 2) 0.000000 2.500000
X( 2, MAR, 2, 2, 1) 0.000000 12.38462
X( 2, MAR, 2, 2, 2) 0.000000 5.384615
DEMANDA( 1, FEB, 1) 3600.000 0.000000
DEMANDA( 1, FEB, 2) 4900.000 0.000000
DEMANDA( 1, MAR, 1) 6300.000 0.000000
DEMANDA( 1, MAR, 2) 4200.000 0.000000
DEMANDA( 2, FEB, 1) 4500.000 0.000000
DEMANDA( 2, FEB, 2) 5100.000 0.000000
DEMANDA( 2, MAR, 1) 5400.000 0.000000
DEMANDA( 2, MAR, 2) 6000.000 0.000000
COSTOPROD( 1, 1, 1) 62.00000 0.000000
COSTOPROD( 1, 1, 2) 59.00000 0.000000
COSTOPROD( 1, 2, 1) 61.00000 0.000000
COSTOPROD( 1, 2, 2) 65.00000 0.000000
COSTOPROD( 2, 1, 1) 78.00000 0.000000
COSTOPROD( 2, 1, 2) 85.00000 0.000000
COSTOPROD( 2, 2, 1) 89.00000 0.000000
COSTOPROD( 2, 2, 2) 86.00000 0.000000
CANTPROD( 1, 1, 1) 100.0000 0.000000
CANTPROD( 1, 1, 2) 140.0000 0.000000
CANTPROD( 1, 2, 1) 130.0000 0.000000
CANTPROD( 1, 2, 2) 110.0000 0.000000
CANTPROD( 2, 1, 1) 120.0000 0.000000
CANTPROD( 2, 1, 2) 150.0000 0.000000
CANTPROD( 2, 2, 1) 160.0000 0.000000
CANTPROD( 2, 2, 2) 130.0000 0.000000
COSTOTRANSP( 1, 1, 1) 0.000000 0.000000
COSTOTRANSP( 1, 1, 2) 9.000000 0.000000
COSTOTRANSP( 1, 2, 1) 9.000000 0.000000
COSTOTRANSP( 1, 2, 2) 0.000000 0.000000
COSTOTRANSP( 2, 1, 1) 0.000000 0.000000
COSTOTRANSP( 2, 1, 2) 7.000000 0.000000
COSTOTRANSP( 2, 2, 1) 7.000000 0.000000
COSTOTRANSP( 2, 2, 2) 0.000000 0.000000

Row Slack or Surplus Dual Price


1 175440.0 1.000000
2 3600.000 0.000000
3 4900.000 0.000000
4 6300.000 0.000000
5 4200.000 0.000000
6 2100.000 0.000000
7 5100.000 0.000000
Página | 38
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

8 2640.000 0.000000
9 6000.000 0.000000
10 3600.000 0.000000
11 4900.000 0.000000
12 6300.000 0.000000
13 4200.000 0.000000
14 2100.000 0.000000
15 5100.000 0.000000
16 2640.000 0.000000
17 6000.000 0.000000
18 1000.000 0.000000
19 1000.000 0.000000
20 1000.000 0.000000
21 1000.000 0.000000
22 0.000000 4080.000
23 0.000000 4080.000

3.2. PROBLEMAS DE MEZCLAS

1. Una compañía Fabrica tres productos de caucho: AIRTEX (material


esponjoso), EXTENDEX (material elástico) y RESISTEX (material
rígido). Los tres productos requieren los mismos tres polímeros
químicos y una base. La cantidad de cada ingrediente usado por libra
del producto final se muestra en la siguiente tabla.

Ingrediente (OZ/LB de producto)


Producto
Polímero A Polímero B Polímero C Base
AIRTEX 4 2 4 6
Página | 39
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

EXTENDEX 3 2 2 9
EXTENDEX 6 3 5 2
Inventario 500 425 650 1100

La compañía tiene el compromiso de producir al menos 1000 libras


de airtex,500 libras de extendex y 400 libras de resistex para la
próxima semana, pero la gerencia de la compañía sabe que puede
vender más de cada uno de los tres productos. los inventarios
actuales de los ingredientes son 500 libras del polímero A, 425 libras
del polímero B,650 libras el polímero C Y 1100 libras de la base. Cada
libra de airtex produce a la compañía una ganancia de $ 7, cada libra
de extendex una ganancia de $7 y cada libra de resistex una ganancia
de $6. Como gerente del departamento de producción, usted
necesita determinar el plan de producción óptimo para esta semana.
Solución:

Ingredientes (oz/lb. de producto)


Product Polimero Polimero Polimero base compromis gananci
o A B C o a
AIRTEX 4 2 4 6 1000 7
EXTENDX 3 2 2 9 500 7
RESIST 6 3 5 2 400 6
X
inventario 500 425 650 1100

Sea:
Xi: la cantidad de ingredientes del PRODUCTO i
(i=airtex,extendex,resistex) que se puede usar.
3

FUNCION OBJETIVO: 
X*ganacia
i
1
(i) ;donde ganancia es la utilidad
i

ya sea del Producto airtex, extendex, resistex.


Entonces: MAX Z = 7*X1 + 7*X2 + 6*X3
SUJETO A:
3


X

i

1
COMPROMISO
(
i
) i

Para i=1-----X1 >=1000


Para i=2-----X2 >=500

Página | 40
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Para i=3-----X3 >=400


3


X
*

i
1
to
(
ii
,
j)
requerimen
inventario
(
j
)*
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 + 5X3 <= 650*16;
Para J= 4------ 6X1 + 9X2 + 2X3 <= 1100*16;

El programa en LINGO:
SETS:
PRODUCTO/1..3/:NIVEL,COMPROMISO,GANANCIA;
INGREDIENTE/A..D/: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)*16
);
!RESTRICCION DEL COMPROMISO;
@FOR(PRODUCTO:NIVEL>=COMPROMISO);
END

Con la respectiva solución:


Global optimal solution found.
Objective value: 13133.33
Infeasibilities: 0.000000
Total solver iterations: 2
Elapsed runtime seconds: 0.03

Model Class: LP

Total variables: 3
Nonlinear variables: 0
Integer variables: 0

Página | 41
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Total constraints: 8
Nonlinear constraints: 0

Total nonzeros: 18
Nonlinear nonzeros: 0

Variable Value Reduced Cost


NIVEL( 1) 1000.000 0.000000
NIVEL( 2) 533.3333 0.000000
NIVEL( 3) 400.0000 0.000000
COMPROMISO( 1) 1000.000 0.000000
COMPROMISO( 2) 500.0000 0.000000
COMPROMISO( 3) 400.0000 0.000000
GANANCIA( 1) 7.000000 0.000000
GANANCIA( 2) 7.000000 0.000000
GANANCIA( 3) 6.000000 0.000000
INVENTARIO( A) 500.0000 0.000000
INVENTARIO( B) 425.0000 0.000000
INVENTARIO( C) 650.0000 0.000000
INVENTARIO( D) 1100.000 0.000000
X( 1, A) 4.000000 0.000000
X( 1, B) 2.000000 0.000000
X( 1, C) 4.000000 0.000000
X( 1, D) 6.000000 0.000000
X( 2, A) 3.000000 0.000000
X( 2, B) 2.000000 0.000000
X( 2, C) 2.000000 0.000000
X( 2, D) 9.000000 0.000000
X( 3, A) 6.000000 0.000000
X( 3, B) 3.000000 0.000000
X( 3, C) 5.000000 0.000000
X( 3, D) 2.000000 0.000000

2. El departamento de nutrición de u hospital prepara 30 menús de cena, uno


para cada día del más. Una comida consiste en espagueti, pavo, papas en
escalope y pastel de manzanas. Como director del departamento de
nutrición, usted ha determinado que esta comida debe proporcionar 63000
miligramos de proteínas, 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 cada nutriente y grasas
indicadas en la siguiente tabla:

NUTRIENTE(mg / 100g)
PROTEINA HIERRO TIACINA TIAMINA VITNA C GRASA
ESPAGUETI 5000 1.1 1.4 0.18 0.0 5000
PAVO 29300 1.8 5.4 0.06 0.0 5000
PAPAS 5300 0.5 0.9 0.06 10 7900
ESPINACAS 3000 2.2 0.5 0.07 28 300
PASTEL 4000 1.2 0.60 0.15 3.0 14300

Página | 42
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Solución:
Hacemos nuestra tabla
NUTRIENTE(mg/100g)
POTAJE
PROTEINA HIERRO TIACINA TIAMINA VITNA C GRASA MAXIMO
ESPAGUETI 5000 1.1 1.4 0.18 0 5000 300
PAVO 29300 1.8 5.4 0.06 0 5000 300
PAPAS 5300 0.5 0.9 0.06 10 7900 200
ESPINACAS 3000 2.2 0.5 0.07 28 300 100
PASTEL 4000 1.2 0.6 0.15 3 14300 100
MINIMO 63000 10 15 1 50 0

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


i=2---pavo
i=3---papas
i=4---espinacas
i=5---pastel
i=6---grasa

FUNCIÓN OBJETIVO: Min Z=X6;


SUJETO A:
Restricción de la cantidad de grasa total que debe haber :
5
X 6   X i * CGi  0 ; donde CGi es la cantidad de grasa ya sea en Pavo ,
i 1
papas ,espinacas ,pastel, espagueti.

Por lo tanto: X6 – X1*5000 – 5000*X2 – 7900*X3 – 3000*X4 – 14300*X5=0

Restricción de la cantidad de nutriente por cada 100 mg que proporciona:


5

X
i 1
i  MAXIMOi / 100 ; donde MAXIMO i es la cantidad máxima de cada

potaje ya sea de Espagueti, pavo, papas, espinacas y pastel


Por lo tanto: Para i=1 -- X1<=300/100
Para i=2 -- X2<=300/100
Para i=3 -- X3<=200/100
Página | 43
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Para i=4 -- X4<=100/100


Para i=5 -- X5<=100/100
Restricción de la cantidad de nutriente por pataje que debe haber como mínimo:


X

i
*
1

nutriente
MINIMO
i , donde NUTRIENTEj,i . j ,es la cantidad de
j
,
i j

nutriente ya Sea de proteína, hierro, tiacina, tiamina, vitna C ,grasa por Cada
potaje i ya sea :Espagueti, pavo, papas, espinacas, pastel.
Y MINIMO j es la cantidad de potaje como máximo que debe existir.

Por lo tanto:

Para i=1,2,3,4,5 Y j=1


X1*5000 + X2*29300 + X3*5300 + 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 + X 2*5000 + X3*7900 + X4*300 + X5*14300 >=0

El programa en LINGO:
SETS:

POTAJE/1..5/:NIVEL,MAXIMO;

NUTRIENTE/1..6/:MINIMO;

PONU(POTAJE,NUTRIENTE):REQ;
Página | 44
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

ENDSETS

DATA:

MAXIMO=300,300,200,100,100;

MINIMO=63000,10,15,1,50,0;

REQ=5000,1.1,1.4,0.18,0,5000,

29300,1.8,5.4,0.06,0,5000,

5300,0.5,0.9,0.06,10,7900,

3000,2.2,0.5,0.07,28,300,

4000,1.2,0.6,0.15,3,14300;

ENDDATA

MIN=GRASA;

GRASA=@SUM(POTAJE(I):REQ(I,6)*NIVEL(I));

@FOR(POTAJE(I):NIVEL(I)<=MAXIMO(I)/100);

@FOR(NUTRIENTE(J):@SUM(POTAJE(I):REQ(I,J)*NIVEL(I))>=MINIMO(J));

END

Con la respectiva solución:


Global optimal solution found.
Objective value: 54800.00
Infeasibilities: 0.000000
Total solver iterations: 3
Elapsed runtime seconds: 2.76

Model Class: LP

Total variables: 6
Nonlinear variables: 0
Integer variables: 0

Total constraints: 13
Nonlinear constraints: 0

Total nonzeros: 40
Nonlinear nonzeros: 0

Variable Value Reduced Cost


GRASA 54800.00 0.000000

Página | 45
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

NIVEL( 1) 3.000000 0.000000


NIVEL( 2) 2.833333 0.000000
NIVEL( 3) 2.000000 0.000000
NIVEL( 4) 1.000000 0.000000
NIVEL( 5) 0.6666667 0.000000
MAXIMO( 1) 300.0000 0.000000
MAXIMO( 2) 300.0000 0.000000
MAXIMO( 3) 200.0000 0.000000
MAXIMO( 4) 100.0000 0.000000
MAXIMO( 5) 100.0000 0.000000
MINIMO( 1) 63000.00 0.000000
MINIMO( 2) 10.00000 0.000000
MINIMO( 3) 15.00000 0.000000
MINIMO( 4) 1.000000 0.000000
MINIMO( 5) 50.00000 0.000000
MINIMO( 6) 0.000000 0.000000
REQ( 1, 1) 5000.000 0.000000
REQ( 1, 2) 1.100000 0.000000
REQ( 1, 3) 1.400000 0.000000
REQ( 1, 4) 0.1800000 0.000000
REQ( 1, 5) 0.000000 0.000000
REQ( 1, 6) 5000.000 0.000000
REQ( 2, 1) 29300.00 0.000000
REQ( 2, 2) 1.800000 0.000000
REQ( 2, 3) 5.400000 0.000000
REQ( 2, 4) 0.6000000E-01 0.000000
REQ( 2, 5) 0.000000 0.000000
REQ( 2, 6) 5000.000 0.000000
REQ( 3, 1) 5300.000 0.000000
REQ( 3, 2) 0.5000000 0.000000
REQ( 3, 3) 0.9000000 0.000000
REQ( 3, 4) 0.6000000E-01 0.000000
REQ( 3, 5) 10.00000 0.000000
REQ( 3, 6) 7900.000 0.000000
REQ( 4, 1) 3000.000 0.000000
REQ( 4, 2) 2.200000 0.000000
REQ( 4, 3) 0.5000000 0.000000
REQ( 4, 4) 0.7000000E-01 0.000000
REQ( 4, 5) 28.00000 0.000000
REQ( 4, 6) 300.0000 0.000000
REQ( 5, 1) 4000.000 0.000000
REQ( 5, 2) 1.200000 0.000000
REQ( 5, 3) 0.6000000 0.000000
REQ( 5, 4) 0.1500000 0.000000
REQ( 5, 5) 3.000000 0.000000
REQ( 5, 6) 14300.00 0.000000

Row Slack or Surplus Dual Price


1 54800.00 -1.000000
2 0.000000 -1.000000
3 0.000000 10000.00
4 0.1666667 0.000000
5 0.000000 3100.000
6 0.000000 22333.33
7 0.3333333 0.000000
8 51283.33 0.000000
9 2.400000 0.000000
10 7.200000 0.000000
11 0.000000 -83333.33
Página | 46
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

12 0.000000 -600.0000
13 54800.00 0.000000

3.3. PROBLEMAS DE FINANZAS

1. Un banco otorga cuatro tipos de préstamos a sus clientes los cuales


producen las siguientes tasas de interés anual:

Tipo de préstamo Tasa de interés anual


Compra de casa (o departamento) 14%
Compra de un terreno 20%
Ampliar o remodelar el hogar 20%
Compra de un carro 10%

El banco ha dispuesto 250 millones de nuevos soles para otorgar los


préstamos. Las directivas que se deben tener presentes para efectuar
los préstamos son:
a. Los préstamos para compras de casa deben ser al menos 55% de
todos los préstamos otorgados para compras de casa o terreno y
al menos 25% de todos los préstamos otorgados.
Página | 47
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

b. Los préstamos para compra de terrenos no pueden exceder el 25%


de todos los préstamos otorgados.
c. Para evitar el descontento público y la introducción de un
impuesto no previsto el dinero total anual recaudado por los
préstamos no debe exceder el 15% del total de dinero destinado a
los préstamos.
Formule el problema de préstamos del banco como un PL.
Solución en LINGO:
!PLANEAMIENTO FINANCIERO;

Model:
Sets:
Tipo_de_prestamo/casa, terreno, hogar,carro/:interes;
Dinero(Tipo_de_prestamo):cantidad;
Endsets

Data:
interes= 0.14, 0.20, 0.20, 0.10;
Enddata

Max= @sum(Dinero(i):cantidad(i)*interes(i));
@sum(Dinero(i):cantidad(i))<=250;
@for(Dinero:cantidad(1)>=0.55*@sum(Dinero(i)|i#le#2:cantidad(i)));
@for(Dinero:cantidad(1)>=0.25*@sum(Dinero(i):cantidad(i)));
@for(Dinero:cantidad(2)<=0.25*@sum(Dinero(i):cantidad(i)));
@sum(Dinero(i):cantidad(i)*interes(i))<=0.15*@sum(Dinero(i):cantidad(i))
<mailto:0.15*@sum(Dinero(i):cantidad(i))>;
END

2. Cuatro productos se procesan en secuencia de dos máquinas. La


siguiente tabla proporciona los datos pertinentes al problema.

Tiempo de fabricación por unidad (hora)


Costo Producto Capaci
Máquina
($) / dad
1 2 3 4
hora (hora)
1 10 2 3 4 2 500
2 5 3 2 1 2 380
Precio
65 70 55 45
de venta

Solución:
Xij: unidades producidas por tipo de producto j (1, 2, 3, 4), utilizando cada
maquina i (1, 2)

Página | 48
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

MAX Z = 65(X11 + X12) + 70(X12 + X22) + 55(X13 + X23) + 45(X14 + X24)


- 10 (2X11 + 3X12 + 4X15 + 2X14) - 5(3X21 + 2X22 + 1X23 +
2X24)

MAX Z = 45X11 + 50X21 + 40X12 + 60X22 + 15X13 + 50X23 + 25X14


+35X24
Sujeto a:

Capacidad de la maquina 1: 2X11+ 3X12 + 4X13 + 2X14 <= 500


Capacidad de la maquina 2: 3X21 + 2X22 + 1X23 + 2X24 <=380

!MAQ=MAQUINA(1,2) CAP=CAPACIDAD DE CADA MAQUINA(HORAS);


!PROD=PRODUCTO(1,2,3,4) PV=PRECIO DE VENTA;
!TM= TIEMPO X=UNIDADES PRODUCIDAS UTI= UTILIDAD;

Solución en LINGO:
SETS:
MAQ/1..2/:CAP;
PROD/1..4/:PV;
MATRIZ1(MAQ,PROD):TM,X,uti;
ENDSETS

DATA:
CAP=500,380;
PV=65,70,55,45;
TM= 2,3,4,2,
3,2,1,2;
UTI=45,40,15,25
50,60,50,35;
ENDDATA

MAX=@SUM(MATRIZ1:UTI*X);
@FOR(MAQ(I):@SUM(PROD(J):TM(I,J)*X(I,J))<=CAP(I));
END

Con las soluciones:


Global optimal solution found.
Objective value: 30250.00
Infeasibilities: 0.000000
Total solver iterations: 0
Página | 49
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Elapsed runtime seconds: 0.03

Model Class: LP

Total variables: 8
Nonlinear variables: 0
Integer variables: 0

Total constraints: 3
Nonlinear constraints: 0

Total nonzeros: 16
Nonlinear nonzeros: 0

Variable Value Reduced Cost


CAP( 1) 500.0000 0.000000
CAP( 2) 380.0000 0.000000
PV( 1) 65.00000 0.000000
PV( 2) 70.00000 0.000000
PV( 3) 55.00000 0.000000
PV( 4) 45.00000 0.000000
TM( 1, 1) 2.000000 0.000000
TM( 1, 2) 3.000000 0.000000
TM( 1, 3) 4.000000 0.000000
TM( 1, 4) 2.000000 0.000000
TM( 2, 1) 3.000000 0.000000
TM( 2, 2) 2.000000 0.000000
TM( 2, 3) 1.000000 0.000000
TM( 2, 4) 2.000000 0.000000
X( 1, 1) 250.0000 0.000000
X( 1, 2) 0.000000 27.50000
X( 1, 3) 0.000000 75.00000
X( 1, 4) 0.000000 20.00000
X( 2, 1) 0.000000 100.0000
X( 2, 2) 0.000000 40.00000
X( 2, 3) 380.0000 0.000000
X( 2, 4) 0.000000 65.00000
UTI( 1, 1) 45.00000 0.000000
UTI( 1, 2) 40.00000 0.000000
UTI( 1, 3) 15.00000 0.000000
UTI( 1, 4) 25.00000 0.000000
UTI( 2, 1) 50.00000 0.000000
UTI( 2, 2) 60.00000 0.000000
UTI( 2, 3) 50.00000 0.000000
UTI( 2, 4) 35.00000 0.000000

Row Slack or Surplus Dual Price


1 30250.00 1.000000
2 0.000000 22.50000
3 0.000000 50.00000

Página | 50
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

3. Para una jornada de 24 horas un hospital está requiriendo el


siguiente personal para el área de enfermería, se define 6 turnos de
4 horas cada uno.

Turno Número mínimo


de personal
2:00 - 6:00 4
6:00 - 10:00 8
10:00 - 14:00 10
14:00 - 18:00 7
18:00 - 20:00 12
20:00 - 24:00 4

Los contratos laborales son de 8 horas consecutivas por día. El


objetivo es encontrar el número menor de personas que cumplan con
los requerimientos. Formule el problema como un modelo de
programación lineal.
Solución:
Xi = Cantidad de personal por cada turno i = 1, 2, 3, 4, 5, 6.
Página | 51
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Necesidades de personal por horario


Horas 2:00 - 6:00 - 10:00 - 14:00 - 18:00 - 20:00 -
6:00 10:00 14:00 18:00 20:00 24:00
X1 X1
X2 X2
X3 X3
X4 X4
X5 X5
X6 X6
Perso 4 8 10 7 12 4
nal

MIN Z = X1 + X2 + X3 + X4 + X4 + X5 + X6
Sujeto a:
Turno 1: X1 + X6 >= 4
Turno 2: X1 + X2 >=8
Turno 3: X2 + X3 >=10
Turno 4: X3 + X4 >=7
Turno 5: X4 + X5 >=12
Turno 6: X5 + X6 >=4

!HORAS=TUENO X=CANTIDAD DE PERSONAL POR TURNO;


!PERS=PERSONAL MIN=PERSONAL MINIMO;
!CANT=PERSONAL POR TURNO (1=EXISTE PERSONAL EN EL TURNO, 0= NO
EXISTE PERSONAL EN EL TURNO);

Solución en LINGO:

Las soluciones que se obtienen:


Global optimal solution found.
Objective value: 26.00000
Infeasibilities: 0.000000
Total solver iterations: 4
Elapsed runtime seconds: 0.03

Model Class: LP

Total variables: 6
Nonlinear variables: 0
Integer variables: 0

Total constraints: 7
Nonlinear constraints: 0
Página | 52
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Total nonzeros: 18
Nonlinear nonzeros: 0

Variable Value Reduced Cost


X( 1) 4.000000 0.000000
X( 2) 10.00000 0.000000
X( 3) 0.000000 0.000000
X( 4) 8.000000 0.000000
X( 5) 4.000000 0.000000
X( 6) 0.000000 0.000000
MIN( 1) 4.000000 0.000000
MIN( 2) 8.000000 0.000000
MIN( 3) 10.00000 0.000000
MIN( 4) 7.000000 0.000000
MIN( 5) 12.00000 0.000000
MIN( 6) 4.000000 0.000000
CANT( 1, 1) 1.000000 0.000000
CANT( 1, 2) 1.000000 0.000000
CANT( 1, 3) 0.000000 0.000000
CANT( 1, 4) 0.000000 0.000000
CANT( 1, 5) 0.000000 0.000000
CANT( 1, 6) 0.000000 0.000000
CANT( 2, 1) 0.000000 0.000000
CANT( 2, 2) 1.000000 0.000000
CANT( 2, 3) 1.000000 0.000000
CANT( 2, 4) 0.000000 0.000000
CANT( 2, 5) 0.000000 0.000000
CANT( 2, 6) 0.000000 0.000000
CANT( 3, 1) 0.000000 0.000000
CANT( 3, 2) 0.000000 0.000000
CANT( 3, 3) 1.000000 0.000000
CANT( 3, 4) 1.000000 0.000000
CANT( 3, 5) 0.000000 0.000000
CANT( 3, 6) 0.000000 0.000000
CANT( 4, 1) 0.000000 0.000000
CANT( 4, 2) 0.000000 0.000000
CANT( 4, 3) 0.000000 0.000000
CANT( 4, 4) 1.000000 0.000000
CANT( 4, 5) 1.000000 0.000000
CANT( 4, 6) 0.000000 0.000000
CANT( 5, 1) 0.000000 0.000000
CANT( 5, 2) 0.000000 0.000000
CANT( 5, 3) 0.000000 0.000000
CANT( 5, 4) 0.000000 0.000000
CANT( 5, 5) 1.000000 0.000000
CANT( 5, 6) 1.000000 0.000000
CANT( 6, 1) 1.000000 0.000000
CANT( 6, 2) 0.000000 0.000000
CANT( 6, 3) 0.000000 0.000000
CANT( 6, 4) 0.000000 0.000000
CANT( 6, 5) 0.000000 0.000000
CANT( 6, 6) 1.000000 0.000000

Row Slack or Surplus Dual Price


1 26.00000 -1.000000
2 0.000000 -1.000000
Página | 53
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

3 6.000000 0.000000
4 0.000000 -1.000000
5 1.000000 0.000000
6 0.000000 -1.000000
7 0.000000 0.000000

4. Se desean invertir 2 mil dólares en 6 tipos de inversión cuyas


características son las siguientes:

Interes Factor Plazo


Tipo de
Anual de promedio de
Inversion
(%) Riesgo inversion
1 8.5 0.02 8
2 9 0.01 2
3 8.5 0.38 5
4 14.3 0.45 6
5 6.7 0.07 2
6 13 0.35 4

El factor de riesgo significa la probabilidad de que el rendimiento real


sea inferior al esperado. Se considera ventajoso un período
promedio ponderado de inversión de ciando menos 5 años; pero el
factor promedio ponderado de riesgo no debe ser superior a 0.20. La
ley prohíbe que la suma de las inversiones de los tipos 4 y 6 sea
mayor al 25% del total de la inversión. Con P.L formule un modelo de
P.L para decidir cómo invertir para maximizar el rendimiento de los
2 millones de dólares.

Página | 54
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Solución:
Xj = cantidad de dólares a invertir en el tipo de inversión j (1, 2, 3, 4, 5,6)
para maximizar el rendimiento.
MAX Z = 0.085X1 + 0.09X2 + 0.85X3 + 0.143X4 + 0.067X5 +0.13X6
Sujeto a:
X1 + X2 + X3 +X4 + X5 + X6 = 2 000
0.02X1 + 0.01X2 + 0.38X3 + 0.45X4 + 0.07X5 + 0.35X6 = 0.2 (2 000) = 400
8X1 + 2X2 + 5X3 + 6X4 +2X5 + 4X6 = 5 (2 000) = 10
000
X4 + X6 = 0.25 (2 000) = 500

El Modelo en lingo es:

!TIPO=TIPO DE INVERSION INV= INVERSION SUJETA A FACTORES;


!INT=INTERES ANUAL X=CANTIDAD DE DOLARES A INVERTIR EN LA
INVERSION;
!DAT= CARACTERISTICAS;

La solución en LINGO:
SETS:
TIPO/1..4/:INV;
CAR/1..6/:INT,X;
MATRIZ1(TIPO,CAR):DAT;
ENDSETS

DATA:
INT=8.5,9,8.5,14.3,6.7,13;
INV= 2000,400,10000,500;
DAT= 1,1,1,1,1,1,
0.02,0.01,0.38,0.45,0.07,0.35,
8,2,5,6,2,4,
0,0,0,1,0,1;
ENDDATA

La solución respectiva es:


Feasible solution found.
Infeasibilities: 0.000000
Total solver iterations: 0
Página | 55
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Elapsed runtime seconds: 0.03

Model Class: LP

Total variables: 6
Nonlinear variables: 0
Integer variables: 0

Total constraints: 0
Nonlinear constraints: 0

Total nonzeros: 0
Nonlinear nonzeros: 0

Variable Value
INV( 1) 2000.000
INV( 2) 400.0000
INV( 3) 10000.00
INV( 4) 500.0000
INT( 1) 8.500000
INT( 2) 9.000000
INT( 3) 8.500000
INT( 4) 14.30000
INT( 5) 6.700000
INT( 6) 13.00000
X( 1) 0.000000
X( 2) 0.000000
X( 3) 0.000000
X( 4) 0.000000
X( 5) 0.000000
X( 6) 0.000000
DAT( 1, 1) 1.000000
DAT( 1, 2) 1.000000
DAT( 1, 3) 1.000000
DAT( 1, 4) 1.000000
DAT( 1, 5) 1.000000
DAT( 1, 6) 1.000000
DAT( 2, 1) 0.2000000E-01
DAT( 2, 2) 0.1000000E-01
DAT( 2, 3) 0.3800000
DAT( 2, 4) 0.4500000
DAT( 2, 5) 0.7000000E-01
DAT( 2, 6) 0.3500000
DAT( 3, 1) 8.000000
DAT( 3, 2) 2.000000
DAT( 3, 3) 5.000000
DAT( 3, 4) 6.000000
DAT( 3, 5) 2.000000
DAT( 3, 6) 4.000000
DAT( 4, 1) 0.000000
DAT( 4, 2) 0.000000
DAT( 4, 3) 0.000000
DAT( 4, 4) 1.000000
DAT( 4, 5) 0.000000
DAT( 4, 6) 1.000000

Página | 56
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

3.4. PROBLEMAS DE TRANSPORTE

1. La cadena de restaurantes “CUATRO MARÍAS” se especializa en la


preparación y venta de pescados y mariscos. La demanda de
pescado de las cuatro sucursales de la cadena de restaurantes
“CUATRO MARÍAS” es presentada en la siguiente tabla.

Sucursal Jesús María Callao San Luis Los Olivos


Demanda 15 17 22 12
(Ton)

La cadena de restaurantes “CUATRO MARÍAS” compra el pescado


de tres proveedores que proporcionan las siguientes cantidades
(ton) de pescado:

Proveedor Ventanilla Villa El Chorrillos


Salvador
Cantidad 30 25 21

Los costos de transporte (soles/tonelada) de los proveedores a las


sucursales son:

Sucursal
Proveedor Jesús Callao San Los
María Luis Olivos
Página | 57
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Ventanilla 6 2 6 7
Villa El Salvador 4 9 5 3
Chorrillos 8 8 1 5

Formule el modelo de PL que permita determinar la distribución


óptima del pescado de los proveedores a las sucursales.

Modificación:
Supongamos que antes de llegar a las sucursales se utilizarán dos
almacenes (en San Martin de Porres y en San Miguel) que recogerán
todas las compras hechas en los 3 proveedores y luego las
distribuirán a las cuatro sucursales.

Proveedores Almacenes Sucursales

1 Jesús María
1 Ventanilla
1 San Miguel 2 Callao
2 Villa El Salvador
2 San Martin de Porres 3 San Luis
3 Chorrillos
4 Los Olivos

Almacén
Proveedor San Miguel San Martin de Porres
Página | 58
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Ventanilla 3 5
Villa El Salvador 4 2
Chorrillos 4 3

Sucursal
Almacén Jesús Callao San Luis Los
María Olivos
San Miguel 4 3 6 4
San Martin de Porres 7 5 4 5

Variables de decisión:
Xij: Cantidad de pescado transportada desde i a j. i = 1, 2, 3 j = 1, 2
Yjk: Cantidad de pescado transportada desde j a k. j = 1, 2 k = 1, 2, 3, 4
Función Objetivo:
Zmin = (3X11 + 4X21 + 4X31) + (5X12 + 2X22 + 3X32) +
(4Y11 + 7Y21) + (3Y12 + 5Y22) + (6Y13 + 4Y23) + (4Y14 + 5Y24)
Restricciones:
Por demanda de sucursales:

Jesús María: Y11 + Y21 = 15

Callao: Y12 + Y22 = 17

San Luis: Y13 + Y23 = 22

Los Olivos: Y14 + Y24 = 12


Balance de traslado: (cero almacenamientos de inventario)
San Miguel: X11 + X21 + X31 = Y11 + Y12 + Y13 + Y14
San Martin de Porres X12 + X22 + X32 = Y21 + Y22 + Y23 + Y24

Modelo en Lingo:
SETS:
proveedor:oferta;
almacen:capacidad;
sucursal:demanda;
flete1(proveedor,almacen):costo1,volumen1;
flete2(almacen,sucursal):costo2,volumen2;
ENDSETS

DATA:
Página | 59
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

proveedor=o1 o2 o3;
almacen=a1 a2;
sucursal=s1 s2 s3 s4;

oferta=30 25 21;
capacidad=60 50;
demanda=15 17 22 12;

costo1=3 5
4 2
4 3;
costo2=4 3 6 4
7 5 4 5;
ENDDATA

MIN=@sum(flete1(i,j):costo1(i,j)*volumen1(i,j))+@sum(flete2(j,k):costo
2(j,k)*volumen2(j,k));

@for(sucursal(k):@sum(almacen(j):volumen2(j,k))=demanda(k));
@for(proveedor(i):@sum(almacen(j):volumen1(i,j)<=oferta(i));
@for(almacen(j):@sum(proveedor(i):volumen1(i,j))=@sum(sucursal(k):volu
men2(j,k)));

END

Página | 60
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Página | 61
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Página | 62
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

2. Una fábrica de papel la Quality Paper Corporation, tiene 10 molinos


de papel para surtir a 1000 clientes. Usa 3 tipos alternativos de
máquinas y 4 tipos de materia prima para hacer 5 tipos diferentes de
papel.
Por lo tanto, la compañía debe desarrollar un plan detallado para
distribuir mensualmente la producción, con el objeto de minimizar el
costo total de producir y distribuir el papel durante el mes. En
particular, es necesario determinar conjuntamente la cantidad de
cada tipo de papel de cada fábrica, en cada tipo de máquina y la
cantidad de cada tipo de papel que debe enviar de cada fábrica a
cada cliente.
Los datos relativos se pueden expresar de manera simbólico como
sigue:
Djk = número de unidades del tipo de papel K por el cliente j
Rklm= número de unidades de materias prima m necesarias para
producir 1 unidad d tipo de papel k en la maquina tipo l
Rim= numero de unidades de materia prima m disponibles en la planta
i
Ckl= numero de unidades de capacidad de la maquina l que
producirán 1 unidad de papel tipo k
Cil = numero de unidades de capacidad de la maquina tipo l
disponibles en la planta i
Pikl = costo de producción de cada unidad de papel tipo k producida
en la maquina tipo l en la planta i
Tijk = costo de transporte de cada unidad de papel tipo k enviada a la
planta i al cliente j

DEMANDA DE LOS CLIENTES (DJK)


TIPO DE PAPEL(K)
CLIENTE(J) 1 2 3 4 5
1 15 30 20 25 40
2 10 40 35 50 55
3 20 40 10 35 30
4 50 45 35 55 40
5 80 80 70 85 90

Página | 63
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

NUMERO DE UNIDADES DE MATERIA PRIMA (M) POR UNIDAD DE PAPEL


(K) EN MAQUINA (l)

MAQUINA (l=1) MAQUINA(I=2) MAQUINA(l=3)


TIPO
DE
PAPE
L MP 2 3 4 1 2 3 4 1 2 3 4
(K) =1

1 0.25 0.40 0.50 0.45 0.22 0.25 0.30 0.35 0.22 0.55 0.44 0.30

2 0.23 0.35 0.25 0.36 0.40 0.35 0.25 0.30 0.30 0.25 0.35 0.20

3 0.22 0.50 0.30 0.48 0.35 0.20 0.33 0.25 0.25 0.24 0.40 0.25

4 0.33 0.45 0.60 0.42 0.33 0.40 0.30 0.28 0.20 0.26 0.45 0.35

5 0.27 0.36 0.48 0.40 0.27 0.33 0.36 0.38 0.33 0.34 0.37 0.40

NUMERO DE UNIDADES DE MAT PRIMA(m) TIEMPO DE MAQUINA(l)


PARA LA UNIDAD
DISPONIBLES EN LA FABRICA (i) DE PAPEL TIPO(k)
MP MP MP MP MAQUINA (l)
FABRICA 1 2 3 4 PAPEL 1 2 3
(i) TIPO(k)
1 600 500 400 550 1 0.8 0.7 0.66
2 500 650 450 600 2 0.9 0.8 0.75
3 700 300 4000 150 3 0.88 0.85 0.80
4 250 350 400 500 4 0.9 0.88 0.80
5 100 250 300 200 5 0.70 0.85 0.65

Página | 64
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

TIEMPO DISPONIBLE DE LA MAQUINA


TIPO (l) EN FABRICA (i)
MAQUINA(l)
FABRICA(i) 1 2 3
1 5000 2000 3000
2 3000 5000 7000
3 5500 4500 6000
4 7500 7000 8000
5 2000 2500 3000

COSTO DE PRODUCCION DE CADA UNIDAD


PAPEL (k) PROD.EN MAQ (l) EN FABRICA (i)
PAPEL(k=1) K=2 K=3 K=4 PAPEL(k=5)

FA MQ 2 3 1 2 3 1 2 3 1 2 3 1 2 3
B(i) 1

1 1.5 2.3 3.1 1.55 1.6 1.50 1.22 1.25 1.25 1.23 1.50 155 1.2 2.2 3.2

2 1.7 2.7 3.3 3.5 3.2 3.5 3.5 2.5 2.0 2.25 2.20 2.50 1.4 2.2 3.5

3 2.2 2.25 3.35 3.5 3.6 2.50 2.25 1.8 1.95 2.2 1.2 1.25 1.6 1.5 1.4

4 1.5 1.65 1.2 1.3 1.20 1.6 1.55 1.5 1.65 1.10 1.15 1.25 1.20 1.25 1.10

5 1.25 1.2 1.10 1.15 1.10 1.2 1.3 1.4 1.5 1.5 1.4 1.2 1.3 1.2 1.10

Página | 65
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

COSTO DE TRANSPORTE DE CADA UNIDAD DE PAPEL TIPO (k)


ENVIADA DE LA FABRICA (i) AL CLIENTE (j)

CLIENTE (J=1) CLIENTE (J=2) CLIENTE


(J=3)
FAB K=
2 3 4 5 1 2 3 4 5 1 2 3 4 5
(i) 1
1 0.4 0.3 0.6 0.5 0.30 0.5 0.6 0.3 0.2 0.7 0.4 0.3 0.4 0.3 0.4

2 0.2 0.4 0.2 0.4 0.2 0.1 0.3 0.5 0.2 0.1 0.6 0.4 0.3 0.5 0.4

3 0.4 0.1 0.2 0.2 0.1


0.2 0.4 0.3 0.4 0.2 0.4 0.5 0.6 0.7 0.10
5 5 5 0 0
4 0.4 0.3 0.2 0.1 0.2 0.1 0.1 0.1 0.4 0.3 0.4 0.4
0.30 0.40 0.30
5 5 5 0 0 5 0 5 0 5 5 0
5 0.5 0.6 0.7 0.4 0.3 0.4 0.5 0.5 0.1 0.1 0.2 0.2
0.65 0.75 0.25
5 0 0 0 5 5 0 5 0 5 0 5

CLIENTE (J=4) CLIENTE (J=5)


FABRIC
K=1 2 3 4 5 1 2 3 4 5
A(i)
1 0.10 0.3 0.20 0.25 0.35 0.45 0.60 0.50 0.50 0.65

2 0.20 0.30 0.10 0.40 0.50 0.35 0.30 0.40 0.45 0.35

3 0.45 0.40 0.35 0.55 0.50 0.60 0.65 0.70 0.85 0.80

4 0.75 0.65 0.70 0.80 0.60 0.40 0.45 0.35 0.50 0.55

5 0.90 0.95 0.85 0.75 0.80 0.10 0.25 0.15 0.20 0.30

Página | 66
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Variables de decisión:
𝐷𝑗𝑘 = Número de unidades del tipo de papel k demandadas por el cliente j

𝑟𝑘𝑙𝑚 = Número de unidades de materia prima m necesarias para producir 1


unidad del tipo de papel k en la maquina tipo l.
𝑅_𝑖𝑚 = Número de unidades de materia prima m disponibles en la planta i,
𝑐𝑘𝑙 = Número de unidades de capacidad de la máquina tipo l que producirán una
unidad de papel tipo k,
𝐶𝑖𝑙 = Número de unidades de capacidad de la máquina tipo l disponibles en la
planta i,
Pikl = costo de producción de cada unidad de papel tipo k producida en la
máquina tipo l en la planta i,
𝑇ijk = costo de transporte de cada unidad de papel tipo k enviada de la planta i
al cliente j.
Modelo matemático:
Minimizar 𝑧 = 𝑐𝑜𝑠𝑡𝑜𝑃𝑟𝑜𝑑𝑢𝑐𝑐𝑖ó𝑛 + 𝑐𝑜𝑠𝑡𝑜𝑠𝑇𝑟𝑎𝑛𝑠𝑝𝑜𝑟𝑡𝑎𝑐𝑖ó𝑛

𝑧 = ∑ 𝑃𝑖𝑘𝑙 + ∑ 𝑇𝑖𝑗𝑘
𝑖𝑘𝑙 𝑖𝑗𝑘

Sujeto a:

∑ 𝑟𝑘𝑚𝑙 ≤ 𝑅𝑖𝑚 ; 𝑑𝑜𝑛𝑑𝑒 𝑙 = 1, … ,3, 𝑘 = 1, … 5, 𝑚 = 1, … 4


𝑘𝑚𝑙
𝑐𝑖𝑙
∑ = ∑ 𝑑𝑗𝑘 ; 𝑑𝑜𝑛𝑑𝑒 𝑙 = 1, … ,3, 𝑘 = 1, … ,5, 𝑗 = 1, … ,1000
𝑐𝑘𝑙
𝑖𝑙 𝑗𝑘

∑ 𝑐𝑘𝑙 = ∑ 𝑐𝑖𝑙 ; 𝑑𝑜𝑛𝑑𝑒 𝑙 = 1, … ,3, 𝑘 = 1, … ,5


𝑘𝑙 𝑖𝑙

Modelo en Lingo:
!PLANTA(I=10) CLIENTE(J=1000) PAPEL(K=5) MP(M=4) MAQUINA(L=3);

SETS:
PLANTA/1..2/:;
CLIENTE/1..2/:;
PAPEL/1..2/:;
MP/1..1/:;
MAQUINA/1..1/:;
!DEMANDA DE PAPEL D: CADA- CLIENTE J- REQUIERE PAPEL DE TIPO K;
CLIPAP(CLIENTE,PAPEL):D;
!REQUERIMIENTO DE MP POR UNIDAD DE PAPEL R: UNIDADES DE MP (M)POR
UNIDAD DE- PAPEL TIPO K- PRODUCIDO EN MAQ L;
PAPMAQMP(PAPEL,MAQUINA,MP):R;
!MP(M) DISPONIBLE EN C/PLANTA(I) ;
Página | 67
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

PLAMP(PLANTA,MP):RR;
!TIEMPO DE MAQ POR UNID DE PAPEL ;
PAPMAQ(PAPEL,MAQUINA):C;
! TIEMPO DE MAQ DISPONIBLE POR C/ MAQ ;
PLAMAQ(PLANTA,MAQUINA):CC;
!COSTO POR UNIDAD DE PAPEL;
PLAPAPMAQ(PLANTA,PAPEL,MAQUINA):P,X;
!COSTO DE TRANSPORTE;
PLACLIPAP(PLANTA,CLIENTE,PAPEL):T,Y;
ENDSETS
DATA:
D=10 20 30 40;

R=2 3;
RR=100 200 ;
C=.8 .9 ;
CC=5000 800;
P=3 4 2.5 5 ;

T=.5 1 2 3 1 2 3 4;
ENDDATA
MIN=@SUM(PLAPAPMAQ:P*X)+@SUM(PLACLIPAP:T*Y);
!PRODUCCION MENOR = QUE LA MP TOTAL;
@FOR(PLAMP(I,M):@SUM(PAPMAQMP(K,L,M):R(K,L,M)*X(I,K,L))<=RR(I,M));
! TIEMPO DISPONIBLE PARA LA PRODUCCION ;
@FOR(PLAMAQ(I,L):@SUM(PAPMAQ(K,L):C(K,L)*X(I,K,L)) <=CC(I,L));
!PRODUCCION MAYOR QUE LA DEMANDA ;
@FOR(CLIPAP(J,K):@SUM(PLAPAPMAQ(I,K,L):X(I,K,L))>=D(J,K));
END

Solución en Lingo:
Global optimal solution found.
Objective value: 241.6667
Infeasibilities: 0.000000
Total solver iterations: 3
Elapsed runtime seconds: 0.32

Model Class: LP

Total variables: 12
Nonlinear variables: 0
Integer variables: 0

Total constraints: 9
Nonlinear constraints: 0

Total nonzeros: 28
Nonlinear nonzeros: 0

Variable Value Reduced Cost


D( 1, 1) 10.00000 0.000000
D( 1, 2) 20.00000 0.000000
D( 2, 1) 30.00000 0.000000
D( 2, 2) 40.00000 0.000000
R( 1, 1, 1) 2.000000 0.000000
Página | 68
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

R( 2, 1, 1) 3.000000 0.000000
RR( 1, 1) 100.0000 0.000000
RR( 2, 1) 200.0000 0.000000
C( 1, 1) 0.8000000 0.000000
C( 2, 1) 0.9000000 0.000000
CC( 1, 1) 5000.000 0.000000
CC( 2, 1) 800.0000 0.000000
P( 1, 1, 1) 3.000000 0.000000
P( 1, 2, 1) 4.000000 0.000000
P( 2, 1, 1) 2.500000 0.000000
P( 2, 2, 1) 5.000000 0.000000
X( 1, 1, 1) 0.000000 1.166667
X( 1, 2, 1) 33.33333 0.000000
X( 2, 1, 1) 30.00000 0.000000
X( 2, 2, 1) 6.666667 0.000000
T( 1, 1, 1) 0.5000000 0.000000
T( 1, 1, 2) 1.000000 0.000000
T( 1, 2, 1) 2.000000 0.000000
T( 1, 2, 2) 3.000000 0.000000
T( 2, 1, 1) 1.000000 0.000000
T( 2, 1, 2) 2.000000 0.000000
T( 2, 2, 1) 3.000000 0.000000
T( 2, 2, 2) 4.000000 0.000000
Y( 1, 1, 1) 0.000000 0.5000000
Y( 1, 1, 2) 0.000000 1.000000
Y( 1, 2, 1) 0.000000 2.000000
Y( 1, 2, 2) 0.000000 3.000000
Y( 2, 1, 1) 0.000000 1.000000
Y( 2, 1, 2) 0.000000 2.000000
Y( 2, 2, 1) 0.000000 3.000000
Y( 2, 2, 2) 0.000000 4.000000

Row Slack or Surplus Dual Price


1 241.6667 -1.000000
2 0.000000 0.3333333
3 120.0000 0.000000
4 4970.000 0.000000
5 770.0000 0.000000
6 20.00000 0.000000
7 20.00000 0.000000
8 0.000000 -2.500000
9 0.000000 -5.000000

Página | 69
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

3. La ciudad de Busville tiene tres distritos escolares. En la tabla A se


da el número de estudiantes que pertenecen a grupos minoritarios y
no minoritarios. El 25% de todos los estudiantes (200/800)
pertenecen a grupos minoritarios.
TABLA A

DISTRITO ESTUDIANTES ESTUDIANTES


MINORITARIOS NO MINORITARIOS

1 50 200
2 50 250
3 100 150

La corte local a decidido que cada una de las dos escuelas de


segunda enseñanza de la ciudad (Cooley y walt whitman) debe tener
aproximadamente (más o menos 5%) el mismo porcentaje de
estudiantes de minorías, 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 programación lineal
para determinar la asignación de los estudiantes a cada escuela para
minimizar la distancia total que tienen que viajar los estudiantes para
llegar a ella.
TABLA B

WALT
DISTRITO COOLEY WHITMAN
1 1 2
2 2 1
3 1 1

Solución:
Primero vamos a encontrar la función objetivo, la escuela busca minimizar
la distancia total recorrida por sus estudiantes desde su distrito a la escuela
y cuantos estudiantes son mayorías y minoritarios, entonces vamos a llamar
a la variable estudiantes i,j,k, donde i: estudiantes del distrito i (i=1,2,3) que
pertenecen al grupo j (1:minoria,2:mayoria) y que estudian en la escuela k
( 1:Cooley,2:Walt Whitman).Si lo queremos expresar escalarmente con los
datos de la tabla Nro 2
MIN=1*( estudiantes 111+ estudiantes 121)+2*( estudiantes 211+2*
estudiantes 221)+1*( estudiantes 311+ estudiantes 321)+2*( estudiantes 112+
Página | 70
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

estudiantes 222)+1*( estudiantes 221+ estudiantes 222)+1*( estudiantes 312+1*


estudiantes 322)
Solución con LINGO:
SETS:
DIST/1 . . 3/ : ;
TIPO / 1 . .2/ : ;
COLE / 1 . .2 / : ;
DT ( DIST , TIPO ) : CANT ;
DC ( DIST , TIPO ) : CANT ;
DC ( DIST , TIPO , COLE ) : X ;
ENDSETS ;
DATA:
CANT = 50 , 200 , 50 , 250 , 100 , 150 ;
DIS = 1 , 2 , 2 , 1 , 1 , 1 ;
N = 300 , 500 ;
ENDDATA
¡ MINIMIZAR LA DISTANCIA TOTAL RRECORRIDA POR LOS ESTUDIANTES ;
MIN = @ SUM ( DTC : DIS * X ) ;
¡TOTAL DE ESTUDIANTES POR DISTRITO
@ FOR ( DIST ( I ) : @ FOR ( TIPO (J) : @SUM(COLE (K) : X (I,J,K) ) = CANT (I,J)));
!ESTUDIANTES POR COLEGIO ;
@FOR (COLE (K) : @SUM( DT ( I,J ) /J# EQ#1 : X ( I,J,K) ) >=0.2 * ( @SUM(DT(I,J):X(I,J,K))));
@FOR ( COLE(K) : @SUM( DT ( I, J ) /J#EQ#1 : X( I,J,K) ) < 0.3 * ( @ SUM ( DT(I,J):X(I,J,K))));
END

Página | 71
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

4. La Quality Paper, fabricante y distribuidor de papel .produce 3 tipos


diferentes de papel que se pueden fabricar tanto en la fabrica A,B, o
C ubicados en lima.la empresa busca satisfacer la demanda
establecida para las ciudades(Tacna y Cuzco) en donde se venden
los productos, además en cada ciudad existen 2 tipos de centros de
distribución(supermercados y librerías) los cuales pertenecen a la
corporación. Los precios de ventas de los productos según donde
fueron fabricados, la ciudad y el centro de distribución donde se va
a vender son los siguientes:
TACNA CUZCO

SUPERMEMRCADO LIBRERIA SUPERMERCADO LIBRERIA

Pro Pro Pro Pro Pro Pro Pro Pro Pro Pro Pro Pro
d1 d2 d3 d1 d2 d3 d1 d2 d3 d1 d2 d3

Fab A 13 15 17 11 12 15 14 12 13 15 13 12

Fab B 10 13 14 12 14 16 13 14 15 11 12 13

Fab C 12 11 13 10 11 13 11 13 14 12 13 14

La corporación busca maximizar sus ventas y saber cómo va a


distribuir sus productos tomando en cuenta la capacidad de
producción de las fábricas, la demanda de las ciudades y la capacidad
de los centros de distribución.

Capacidad de producción
FAB FAB FAB C

PROD1 75 65 70

PROD2 60 70 80

PROD3 65 75 75

Demanda

TACNA CUZCO

PROD1 73 67

PROD2 58 72

PROD3 67 74

Página | 72
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Capacidad de los centros de distribución

TACNA CUZCO

SUPER MERCADO 150 140

LIBRERÍA 130 150

Solución:

Xi,j,k,l=cantidad de productos fabricados en la fabrica i(i=A,B,C),en la


ciudad si en TACNA, si y CUZCO(j=TC,CZ) distribuidos en SUPER
MERCADO y LIBRERÍA (K=SM,L) el producto L(L=P1,P2,P3).

FUNCION OBJETIVO:
C CZ L P4
MAX    X I , J , K , L * PRECIOI , J , K , L , donde PRECIO es el precio
I  A, J TC K  SM L  P1

de venta de cada producto.

MAXZ=12 * XA,P1,SM,TC + 15* XA,P1,SM,CZ + 17 * XA,P1,L,TC+11 *


XA,P1,L,CZ + 12 * XA,P2,SM,TC + 15 * XA,P2,SM,CZ +14*XA,P2,L,TC +
12 * XA,P2_L,CZ + 13 * XA,P3,SM,TC + 15 * XA,P3,SM,CZ + 13 *
XA,P3,L,TC + 12 * XA,P3,L,CZ + 10 * XB,P1,SM,TC + 13 *XB,P1,SM,CZ +
14 * XB,P1,L,TC + 12 * XB, P1, L, CZ + 14 * XB, P2,SM,TC + 16 *
XB,P2,SM,CZ + 13 * XB,P2,L,TC + 14 * XB,P2,L,CZ + 15 * XB,P3,SM,TC
+ 11 * XB,P3,SM,CZ + 12 * XB,P3,L,TC + 13 *XB,P3,LCZ +12 *
XC,P1,SM,TC + 11 * XC,P1,SM,CZ + 13 * XC,P1,L,TC + 10 *XC,P1,L,CZ
+ 11 * XC,P2,SM,TC + 13 * XC,P2,SM,CZ + 11 * XC,P2,LTC +13 *
XC,P2,L,CZ + 14 * X,C,P3,SM,TC + 12 * XC,P3,SM,CZ + 13 *XC,P3,L,TC
+ 14 * XC,P3,LCZ ;

SUJETO A:

Capacidad de producción:
L P
4

K



SM
X

,LP1
I,J,K,L

Para I=A,J=P1:
Página | 73
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

XA,P1_SM,TC + XA,P1,SM,CZ + XA,P1,L,TC + XA,P1,L,CZ <= 75 ;


Para I=A,J=P2:
XA,P2,SM,TC + XA,P2,SM,CZ + XA,P2,L,TC + XA,P2,L,CZ <= 60 ;
Para I=A,J=P3:
XA,P3,SM,TC + XA,P3,SM,CZ + XA,P3,L,TC + XA,P3,L,CZ <= 65 ;
Para I=B,J=P1:
XB,P1,SM,TC + XB,P1,SM,CZ + XB,P1,L,TC + XB,P1,L,CZ <= 65 ;

Para I=B,J=P2:
XB,P2,SM,TC + XB,P2,SM,CZ + XB,P2,L,TC + XB,P2,L,CZ <= 70 ;
Para I=B,J=P3:
XB,P3,SM,TC + XB,P3,SM,CZ + XB,P3,L,TC + XB,P3,L,CZ <= 75 ;
Para I=C,J=P1:
XC,P1,SM,TC + XC,P1,SM,CZ + XC,P1,L,TC + XC,P1,L,CZ <= 70 ;
Para I=C,J=P2:
XC,P2,SM,TC + XC,P2,SM,CZ + XC,P2,L,TC + XC,P2,LCZ <= 80 ;
Para I=C,J=P3:
XC,P3,SM,TC + XC,P3,SM,CZ + XC,P3,L,TC + XC,P3,L,CZ <= 75

Demanda:
C L


I
X
A,KSM
I,J,K,L

Para J=TC, L=P1:

XA,P1,SM,TC + XA,P1,L,TC + XB,P1,SM,TC + XB,P1,L,TC


+XC,P1,SM,TC +
XC, P1, L, TC >= 73;
Para J=CZ, L=P1:

XA,P1,SM,CZ + XA,P1,L,CZ + XB,P1,SM,CZ + XB,P1,L,CZ +


XC,P1,SM,CZ + XC,P1,L,CZ >= 67 ;
Página | 74
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Para J=TC, L=P2:

XA,P2,SM,TC + XA,P2,L,TC + XB,P2,SM,TC + XB,P2,L,TC +


XC,P2,SM,TC + XC,P2,L,TC >= 58 ;
Para J=CZ, L=P2:

XA,P2,SM,CZ + XA,P2,L,CZ + X,B,P2,SM,CZ + XB,P2,L,CZ +


XC,P2,SM,CZ + XC,P2,L,CZ >= 72 ;
Para J=TC, L=P3:

XA,P3,SM,TC + XA,P3,L,TC + XB,P3,SM,TC + XB,P3,L,TC +


XC,P3,SM,TC + XC,P3,L,TC >= 67 ;
Para J=CZ, L=P3:

XA,P3_SM,CZ + XA,P3,L,CZ + XB,P3,SM,CZ + XB,P3,L,CZ +


XC,P3,SM,CZ + XC,P3,L,CZ >= 74 ;

Capacidad de los centros de distribución:


C P4


I
X
A,LP1
I,J,K,L

Para J=TC, K=SM:

XA,P1,SM,TC + XA,P2,SM,TC + XA,P3,SM,TC + XB,P1,SM,TC +


XB,P2,SM,TC + XB,P3,SM,TC + XC,P1,SM,TC + XC,P2,SM,TC +
XC,P3,SM,TC<=150
Para J=CZ, K=SM:

XA,P1,SM,CZ + X,A,P2,SM,CZ + X,A,P3,SM,CZ + X,B,P1,SM,CZ +


X_B_P2_SM_CZ + XB,P3_SM,CZ + XC,P1,SM,CZ + XC,P2,SM,CZ +
XC,P3,SM,CZ <= 140 ;
Para J=TC, K=L:

XA,P1,L,TC + XA,P2,L,TC + X,A,P3,L,TC + XB,P1,L,TC +XB,P2,L,TC +


XB,P3,L,TC + XC,P1,L,TC + XC,P2,L,TC + XC,P3,L,TC <=130 ;
Para J=CZ, K=L:

XA,P1,L,CZ + XA,P2,L,CZ + XA,P3,L,CZ + XB,P1,L,CZ +XB,P2,L,CZ +


XB,P3,L,CZ + XC,P1,L,CZ + XC,P2,L,CZ + XC,P3,L,CZ <=150 ;
Página | 75
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

El equivalente en lingo es:


SETS:
! FABRICAS DONDE SE VA A PRODUCIR EL PAPEL;
FABRICAS/A B C/: ;
! PRODUCTOS A SER PRODUCIDO POR LAS FÁBRICAS;
PRODUCTOS/P1 P2 P3/: ;
! CENTRO DE DISTRIBUCION DE LOS PRODUCTOS;
CDIST/SM L/:;
! CIUDADES DONDE VAN A SER DISTRIBUIDOS LOS PRODUCTOS;
CIUDAD/TC CZ/:;
! REQUERIMIENTO DE PRODUCTOS PARA UNA FABRICA ,EN UNA CIUDAD,EN
UN DETERMINADO SUPERMERCADO;
FPCC (FÁBRICAS, PRODUCTOS, CDIST, CIUDAD): PRECIO, X;
! CAPACIDAD DE PRODUCCION DE UN TERMENINADOM PRODUCTO POR
FÁBRICA;
FABPRO (FÁBRICAS, PRODUCTOS): CAPACIDAD;
! DEMANDA DE PRODUCCION;
PROCIU(PRODUCTOS,CIUDAD):DEMANDA;
! CAPACIDAD DE LOS CENTROS DE DISTRIBUCION;
CDCIUDAD (CDIST, CIUDAD): CAPACCD;
ENDSETS

DATA:
CAPACIDAD=75,60,65,
65,70,75,
70,80,75;
DEMANDA= 73,67,
58,72,
67,74;
CAPACCD= 150,140,
130,150;
PRECIO= 12,15,17,11,12,15,14,12,13,15,13,12,
10,13,14,12,14,16,13,14,15,11,12,13,
12,11,13,10,11,13,11,13,14,12,13,14;
ENDDATA
!FUNCION OBJETIVO ,MAXIMIZANDO LA UTILIDAD;
[OBJETIVO]MAX =@SUM(FPCC:PRECIO*X);
!RESTRICCION DE LA CAPACIDAD DE DISTRIBUCION ;
@FOR(FABPRO(I,J):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACIDAD(I,J));
!RESTRICCION DE LA DEMANDA;
@FOR(PROCIU(J,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))>=DEMANDA(J,L));
! RESTRICCION DE LA CAPACIDAD DE LOS CENTROS DE DISTRIBUCION;
@FOR(CDCIUDAD(K,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACCD(K,L));

END

Página | 76
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

La solución respectiva:
Global optimal solution found.
Objective value: 8260.000
Total solver iterations: 20

Variable Value Reduced Cost


PRECIO( A, P1, SM, TC) 12.00000 0.000000
PRECIO( A, P1, SM, CZ) 15.00000 0.000000
PRECIO( A, P1, L, TC) 17.00000 0.000000
PRECIO( A, P1, L, CZ) 11.00000 0.000000
PRECIO( A, P2, SM, TC) 12.00000 0.000000
PRECIO( A, P2, SM, CZ) 15.00000 0.000000
PRECIO( A, P2, L, TC) 14.00000 0.000000
PRECIO( A, P2, L, CZ) 12.00000 0.000000
PRECIO( A, P3, SM, TC) 13.00000 0.000000

3.5. PROBLEMAS DE INVERSIÓN

Página | 77
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

1. Suponga que Ud. es trabajador de la empresa DISQUET S.A. Uno de


los beneficios que le otorga la empresa es el plan de retiro en que
Ud. aporta 5% de su ingreso mensual y 5% lo pone DISQUET S.A. El
dinero de este plan de retiro es invertido en cualquiera de dos
fondos: fondos mutuos o fondos de acciones. Suponga que la
empresa le pregunta a Ud. qué fracción de dinero debe ser invertido
en cada fondo. Antes de tomar una decisión, Ud. investiga y se
entera que el fondo de acciones ha crecido a una tasa anual
promedio de 10% mientras que los fondos mutuos a una tasa anual
promedio de 8%. Para diversificar su cartera de inversiones y
controlar el riesgo, Ud. no desea poner todos los huevos en una sola
canasta por lo que ha logrado identificar dos pautas:
 Ninguno de los fondos debe tener más de 70% de la inversión total.
 La cantidad de dinero en el fondo de acciones no debe exceder del
doble invertido en los fondos mutuos.
¿Qué decisión Ud. tomaría para optimizar su dinero?

Solución:
El modelo en LINGO es:
Model:
Sets:
Tipos_de_inversion/acciones, fondos_mutuos/:tope_maximo;
cantidad(tipos_de_inversion): interes, monto;
Endsets
Data:
interes= 0.1, 0.08;
tope_maximo = 0.7, 0.7;
Enddata
MAX = @sum(cantidad: monto*interes);
@for(tipos_de_inversion(i) :monto(i)<=tope_maximo(i));
monto(acciones)<=2*monto(fondos_mutuos);
@sum(cantidad:monto)=1;
End

4. PROBLEMAS DE PROGRAMACIÓN ENTERA CON


LINGO

Página | 78
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

4.1. Problema 1

Una empresa se dedica a la construcción 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 máquina para pintura es 150 y de la
máquina para soldar es 200. La utilidad de una puerta es 30 dólares y de
una ventana es 40 dólares. Formule un modelo que permita determinar
la combinación óptima de producción de puertas y ventanas.

La formulación del modelo en LINGO es:

Model:

Sets:

Productos/1..2/: utilidad, cant;

materia_prima/1..2/: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)));

End4.2. Problema 2

Eastinghouse embarca 1 2000 capacitores por mes para sus clientes. Se


podrían producir los capacitores en tres plantas distintas. La capacidad de
producción, costos fijos mensuales de operación y costos variables por la
Página | 79
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

producción de un capacitor en cada planta se proporcionan en la tabla 96. El


costo fijo de una planta se contrae sólo si la planta se usa para hacer
capacitores. Desarrolle un modelo de programación con enteros cuya solución
le indique a Eastinghouse cómo minimizar sus costos mensuales por cumplir
con la demanda de sus clientes.

TABLA

Planta Costos fijos Costos Capacidad de


(miles de dólares) variables(dólares) producción
1 80 20 6000
2 40 25 7000
3 30 30 6000

SOLUCIÓN:

Xi = Cantidad de capacitores producidos en la fábrica i.

Yi = 1 si se utiliza la planta i.
0 en caso contrario.
i =1, 2, 3.

FUNCION OBJETIVO:

Min z = (80 000Y1 + 40 000Y2 + 30 000Y3) + (20X1Y1 + 25X2Y2 + 30X3Y3)

RESTRICCIONES:

X1 + X2 + X3 >= 12 000
X1 <= 6 000Y1
X2 <= 7 000Y2
X3 <= 6 000Y3

X1, X2, X3 > 0


Página | 80
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Y1, Y2, Y3 = 1 ó 0

EL PROGRAMA EN LINGO ES:

Sets:
planta/1..3/:x,y,cf,cv,cap;

Endsets

Data:
cf = 80,40,30;
cv = 20,25,30;
cap = 6000,7000,6000;

Enddata
Min =@sum(planta(i):cf(i)*y(i))+@sum(planta(i):cv(i)*x(i));

!restriccion de la demanda;
@sum(planta(i):x(i))>=12000;

MODEL:

[_1] MIN= 20 * X_1 + 80 * Y_1 + 25 * X_2 + 40 * Y_2 + 30 * X_3 + 30 *Y_3 ;

Página | 81
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

[_2] X_1 + X_2 + X_3 >= 12000 ;

[_3] X_1 - 6000 * Y_1 <= 0 ;

[_4] X_2 - 7000 * Y_2 <= 0 ;

[_5] X_3 - 6000 * Y_3 <= 0 ;

@BIN( Y_1); @BIN( Y_2); @BIN( Y_3);

END

SOLUCIÓN LINGO:

Objective Value: 270120.0

Variable Value Reduced Cost

X( 1) 6000.000 0.000000

X( 2) 6000.000 0.000000

X( 3) 0.000000 5.000000

Y( 1) 1.000000 -29920.00

Y( 2) 1.000000 40.00000

Y( 3) 0.000000 30.00000

CF( 1) 80.00000 0.000000

CF( 2) 40.00000 0.000000

CF( 3) 30.00000 0.000000

CV( 1) 20.00000 0.000000

CV( 2) 25.00000 0.000000

CV( 3) 30.00000 0.000000

CAP( 1) 6000.000 0.000000

CAP( 2) 7000.000 0.000000

CAP( 3) 6000.000 0.000000

4.3. Problema 3

La decisión de una corte estableció que la matrícula de cada escuela de


bachillerato en Metrópolis debe tener por lo menos 20% de negros.

Página | 82
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

El número de estudiantes de bachillerato, blancos y negros, en cada uno


de los 5 distritos escolares de la ciudad se muestra en la tabla 2 .La
distancia (en millas)que un estudiante debe viajar a cada escuela de
bachillerato en cada distrito, se proporciona en la tabla 3.La política
escolar establece que todos los estudiantes en un distrito dado asistan
a la misma escuela .Si se supone que cada escuela debe tener una
matrícula de por lo menos 150 estudiantes ,formule un PE con el que se
pueda minimizar la distancia total que los estudiantes de Metrópolis
tienen que recorrer hasta la escuela.

TABLA 2 TABLA 3

Distrito Blancos Negros Distrito Escuela de Escuela de


1 80 30 bachillerato 1 bachillerato 2
2 70 5 1 1 2
3 90 10 2 0.5 1.7
4 50 40 3 0.8 0.8
5 60 30 4 1.3 0.4
5 1.5 0.6

Solución:

Si los estudiantes del distrito i (i = 1, 2, 3, 4, 5,6) son enviados a la escuela


Xij =
j (=1,2)

0, si no es así.

Entonces, el PE apropiado es:

Para hallar la función objetivo tengo que sumar la cantidad de blancos y negros que
hay en cada distrito y después multiplicarlo por la distancia que hay de ese distrito a
cada escuela.

FUNCIÓN OBJETIVO

Página | 83
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Min z = 110 X11+220 X12+37.5 X21+127.5 X22+80 X31+80 X32 +117 X41 +36 X42 +135
X51 +54 X52

RESTRICCIONES:

110 X11+75 X21+100 X31+90 X41 +90 X51 >=150


(escuela 1 debe tener una matrícula de por lo menos 150 estudiantes)

110 X12+75 X22+100 X32+90 X42 +90 X52 >=150


(escuela 2 debe tener una matrícula de por lo menos 150 estudiantes)

30 X11  5 X21  10 X31  40 X41  30 X51


0.20<=
110 X11  75 X21  100 X31  90 X41  90 X51
(escuela1 debe tener por lo menos 20% de negros)

30 X12  5 X22  10 X32  40 X42  30 X52


0.20<=
110 X12  75 X22  100 X32  90 X42  90 X52
(escuela2 debe tener por lo menos 20% de negros)

Los estudiantes de cada distrito bien van a la escuela 1 ó 2, pero no a las dos a la
vez por lo que solo una de ellas tiene el valor de uno y la otra de cero.

X11+ X12 =1(todos los estudiantes del distrito1 asisten a la misma escuela)
X21+ X22 =1(todos los estudiantes del distrito2 asisten a la misma escuela)
X31+ X32 =1(todos los estudiantes del distrito3 asisten a la misma escuela)
X41 + X42 =1(todos los estudiantes del distrito4 asisten a la misma escuela)
X51 + X52 =1(todos los estudiantes del distrito5 asisten a la misma escuela)
Xij =1ó 0; (i = 1, 2, 3, 4, 5,6), (j = 1,2)

EL PROGRAMA EN LINGO ES:

Página | 84
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

! MODELO DE WINSTON CAP 9 # 4;


!total es alumnos blancos mas alumnos negros en cada escuela;
SETS:
distrito/1..5/:total;
escuela/1..2/:;
MATRIZ(distrito,escuela):X,alumnos,millas;
ENDSETS
DATA:
millas = 1, 2
0.5, 1.7
0.8, 0.8
1.3, 0.4
1.5, 0.6;
alumnos= 80, 30
70, 5
90, 10
50, 40
60, 30;
minmatri=150;
minnegros=0.2;
ENDDATA
MIN=@SUM(matriz(i,j):total(i)*x(i,j)*millas(i,j));

@for(distrito(i):total(i)=@sum(escuela(j):alumnos));

! RESTRICCION DE matri por escuela;


@FOR(escuela(J):@sum(distrito(i):total(i)*x(i,j))>=minmatri);

! RESTRICCION DE negros por escuela;


@FOR(escuela(J):@sum(distrito(i):alumnos(i,2)*x(i,j))/@sum(distrito(i):total(i)*x(i,j))>
=minnegros);

Página | 85
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

@FOR(distrito(i):@SUM(escuela(J):x(I,J))=1);

! RESTRICCION DE VARIABLES BINARIAS;


@FOR(MATRIZ(I,J)):
@BIN(x(I,J));

La distancia mínima total que todos los estudiantes de Metrópolis tienen que recorrer
hasta la escuela es 398.5 millas.

4.4. Problema 4

La universidad estatal tiene que comprar 1100 computadoras de tres


vendedores. El vendedor 1 carga 500 dólares por computadora mas un
encargo por la entrega de 5000 dólares, el vendedor 2 carga 350 dólares
Página | 86
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

por computadora más un cargo por la entrega de 4000 dólares. El


vendedor 3 carga 250 dólares por computadora mas un cargo por la
entrega por de 6000 dólares. El vendedor 1 venderá a lo mas 500
computadoras, el vendedor a los mucho 900 y el vendedor cuando mas
400. Se necesita minimizar el costo de la compra de computadoras
necesarias.
SOLUCION:

VARIABLES:

X(i,j) = Cantidad de computadoras que vende el vendedor

Y(i,j) = 1 Si el vendedor i vende computadoras a la universidad estatal


0 en caso contrario.

FUNCION OBJETIVO:

MIN Z = 5000Y (1) + 4000Y (2) + 6000Y (3) + 500X (1) + 350X (2) + 250X (3)

RESTRICCIONES:

o RESTRICCION 1: La universidad estatal tiene que comprar 1100 computadoras


de tres vendedores.

X( 1) + X( 2) + X( 3) >= 1100

o RESTRICCION 2: Lo máximo que puede vender cada vendedor:

X( 1) <= 500

X( 2) <= 900

X( 3) <= 400

Página | 87
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

o RESTRICCION 3: Si la universidad compra computadoras al vendedor i


entonces también tendrá que pagar el cargo respectivo por la entrega de
computadoras.

1000000 Y( 1) + X( 1) <= 0

1000000 Y( 2) + X( 2) <= 0

1000000 Y( 3) + X( 3) <= 0

FORMULACION EN LINGO:

! MODELO DE WINSTON CAP 9 # PROB 6

COSTOS EN DOLARES;
!M=VALOR MUY GRANDE;
!COSTOE ES EL COSTO DE ENTREGA;
!X CANTIDAD DE COMPUTADORAS QUE VENDE EN VENDEDOR I;
!Y 1 SI EL VENDEDOR I VENDCOMPUTADORAS
! 0 EN CASO CONTRARIO;
SETS:
VENDEDOR/1..3/:COSTOE,COSTO,X,Y,MAXVEND;
ENDSETS

DATA:
COSTOE = 5000 4000 6000;
COSTO = 500 350 250;
MAXVEND= 500 900 400;
M=1000000;
REQUERIMIENTO=1100;
ENDDATA

MIN=@SUM(VENDEDOR(I):COSTO(I)*X(I))+@SUM(VENDEDOR(I):COSTOE(I)*Y(I
));
RESTRICCION 1;
@SUM(VENDEDOR(I):X(I))>=REQUERIMIENTO;

Página | 88
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

! RESTRICCION DE 2;
@FOR(VENDEDOR(I):X(I)<=MAXVEND(I));
! RESTRICCION DE 3;

@FOR(VENDEDOR(I):X(I)<=M*Y(I));

! RESTRICCION DE VARIABLES BINARIAS;


@FOR(VENDEDOR(I):@BIN(Y));

SOLUCION EN LINGO:

El mínimo costo para comprar computadoras es de 355 000 dolares, y la


universidad tendrá que comprar 700 y 400 computadoras a los vendedores 1 y
2 respectivamente.

4.5. Problema 5

Una empresa que se dedica a la comercialización de agua mineral


embotellada estudia adquirir un conjunto de fuentes y construir plantas
embotelladoras. Para cada localización potencial ha estimado unos
costos variables de embotellamiento parecidos, pero los costes fijos

Página | 89
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

anuales más la amortización de la adquisición de la fuente y de la


construcción de la planta embotelladora varían de una localización a
otra, las fuentes sobre las que se han iniciado negociaciones son las
reflejadas en la tabla siguiente:

Fuente Capacidad de Costes fijos de localización en


embotellamiento millones de u. monetarias/año
(m3 anuales)

1.Biesacas 60.000 100

2.Bellanuga 70.000 140

3.Canfranc 55.000 88

4.La Seu 45.000 65


d’Urgel
5.Bielsa 90.000 145

6.Benasc 85.000 155

7.Llavorsí 65.000 160

8.Masella 75.000 175

9.Bellver de 62.000 150


Cerdanya

Desde estas plantas embotelladoras se han de abastecer los mercados


de Lérida, Gerona, Tarragona y Barcelona.

Las demandas de los diferentes mercados y los costes de transporte se


resumen en las tablas siguientes:

Mercado 1.Lérida 2.Girona 3.Tarragona 4.Barcelona

Página | 90
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Demanda 30.350 60.700 45.500 160.000


(m3/año)

COSTES UNITARIOS DE TRANSPORTE


(U. MONETARIAS/M3)

Fuente 1.Lérida 2.Girona 3.Tarragona 4.Barcelona

1.Biesacas 200 450 290 370

2.Bellanuga 210 460 310 380

3.Canfranc 220 470 310 390

4.La Seu d’Urgel 140 170 250 180

5.Bielsa 150 400 250 320

6.Benasc 140 390 230 310

7.Llavorsí 144 240 200 250

8.Masella 200 135 230 160

9.Bellver de 190 140 220 150


Cerdanya

MODEL:

TITLE MODELO DE BALINSKI;

!Definicion de Conjuntos;

Página | 91
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

SETS:

fuente /BIESCAS BELLANUGA CANFRANC SEU BIELSA BENASC


LLAVORSI MASELLA BELLVER/:capacidad, coste_localizacion, y;

La variable coste_localizacion representa el coste fijo de Construir una planta


industrial en la localización de la fuente i;

La variable y indica donde se tiene que construir una planta Industrial. Sus valores
serán binarios:

0=no se construye,

1=si se Construye;

mercado /LLEIDA GIRONA TARRAGONA BARCELONA/:demanda;

links(fuente,mercado): costo_transporte,volumen;

La variable volumen indica el porcentaje de demanda de aquel Mercado que se


tiene que abastecer desde la planta i, de esta forma. La cantidad de producto que
se tiene que enviar desde la planta i al Mercado j viene dado por demanda
(j)*volumen (i,j);

ENDSETS

DATA:

capacidad = 60000, 70000, 55000, 45000, 90000, 85000, 65000, 75000,


62000;

coste_localizacion = 100000000, 140000000, 88000000, 65000000,


145000000, 155000000, 160000000, 175000000, 150000000;

demanda = 30350, 60700, 45500, 160000;

costo_transporte = 200, 450, 290, 370,

210, 460, 310, 380,

220, 470, 310, 390,

140, 170, 250, 180,

Página | 92
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

150, 400, 250, 320,

140, 390, 230, 310,

144, 240, 200, 250,

200, 135, 230, 160,

190, 140, 220, 150;

ENDDATA

!Funcion Objetivo;

MIN=@SUm(links(i,j):costo_transporte(i,j)*demanda(j)*volumen(i,j)) +
@SUm(fuente(i):coste_localizacion(i)*y(i)) ;

!Restricciones para la oferta;

@FOR(fuente(i):

@SUM (mercado(j):demanda(j)*volumen(i,j))<=capacidad(i));

!Restricciones para la demanda;

@FOR(mercado(j):@SUM(fuente(i):volumen(i,j)) = 1);

!Restriciones para la variable y;

@FOR(fuente:@BIN(y));

@FOR(fuente(i):y(i)<1);

@FOR(mercado(j): @FOR(fuente(i):y(i) - volumen(i,j) > 0));

!Restricciones de no negatividad;

@FOR(links(i,j):volumen(i,j)>=0);

END

4.6. Problema 6

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


computadora. La empresa debe decidir la ubicación y el tamaño de las
fábricas que producirán la computadora. Existen dos lugares

Página | 93
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

disponibles, en cada lugar sólo puede construirse a lo más una fábrica


pequeña, grande o enorme. En uno de los lugares se puede construir
una fábrica enorme. La tabla N°1 presenta los costos de construcción
de las fábricas, sus capacidades de producción y los costos unitarios
de manufactura de la computadora para cada una de las alternativas.

Tabla N° 1

Lugar Tamaño Costo de Capacidad Costo de


construcción (miles de Manufactura (dólares
(miles de dólares) unidades) por unidad)
Ate Pequeña 1000 600 5.00
Grande 1500 1200 4.00
Bellavista Pequeña 1200 600 5.00
Grande 1600 1200 4.00
Enorme 2000 2000 3.50

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


de transporte por unidad de las fábricas a las regiones y los
requerimientos de las regiones se presenta en la tabla N°2.

Tabla N°2

De la fábrica Hasta la región


1 2 3 4
ATE 1 2 3 4

BELLAVISTA 2 3 2 3

Requerimiento (Miles de 500 200 700 800


unidades)

NEWCOMP S.A. debe decidir en qué lugares se deben construir las


fábricas, de qué tamaños deben ser éstas y cómo se deben satisfacer
los requerimientos de las regiones.

EL MODELO EN LINGO ES:

Model:

Sets:

Página | 94
fabrica/fpa,fga,fpb,fgb,feb/:capacidad,costo_construccion, costo_manufactura,
construccion;

region/r1,r2,r3,r4/:requerimiento;

rutas(fabrica, region): costo, cantidad;


UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

LA SOLUCIÓN DE LINGO ES:


Objective value: 16200.00

4.7. Problema 7

La empresa financiera de Boris Milken es el dueño de 6 bienes. En las


tablas se dan los precios esperados de venta (en millones de dólares)
para cada bien. En la tabla se puede observar que la venta del bien 1 en

Página | 95
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

el año 2 dará a la empresa un ingreso de 20 millones de dólares. Para


conservar el flujo de efectivo regular, Milken debe vender por lo menos
20 millones de dólares en el año 1, por lo menos 30 millones de dólares
en el año 2, y por lo menos 35 millones de dólares en el año 3. Se
necesita maximizar el ingreso total de los bienes vendidos en los
próximos 3 años.

VENDIDO EN EL
AÑO 1 AÑO 2 AÑO 3
BIEN 1 15 20 24
BIEN 2 16 18 21
BIEN 3 22 30 36
BIEN 4 10 20 30
BIEN 5 17 19 22
BIEN 6 19 25 29

SOLUCION:
VARIABLES: i = 1,2,3,4,5,6

j = 1,2,3

X(i,j) = 1 si el bien i se vende en el año j

0 en caso contrario

FUNCION OBJETIVO:
MAX Z = B( 1) + B( 2) + B( 3)
Donde:
15X(1,1) + 16X(2,1) + 22X(3,1) + 10X(4,1) + 17X(5,1) + 19X(6,1) = B(1)
20X(1,2) + 18X(2,2) + 30X(3,2) + 20X(4,2) + 19X(5,2) + 25X(6,2) = B(2)
24X(1,3) + 21X(2,3) + 36X(3,3) + 30X(4,3) + 22X(5,3) + 29X(6,3) = B(3)

RESTRICCIONES:
RESTRICCION 1: Cada bien solo se puede vender una vez:
X( 1, 1) + X( 1, 2) + X( 1, 3) <= 1
X( 2, 1) + X( 2, 2) + X( 2, 3) <= 1
Página | 96
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

X( 3, 1) + X( 3, 2) + X( 3, 3) <= 1
X( 4, 1) + X( 4, 2) + X( 4, 3) <= 1
X( 5, 1) + X( 5, 2) + X( 5, 3) <= 1
X( 6, 1) + X( 6, 2) + X( 6, 3) <= 1
RESTRICCION 2: Conservación del flujo de efectivo regular:
15X(1,1) + 16X(2,1) + 22X(3,1) + 10X(4,1) + 17X(5,1) + 19X(6,1) >= 20
20X(1,2) + 18X(2,2) + 30X(3,2) + 20X(4,2) + 19X(5,2) + 25X(6,2) >= 30
24X(1,3) + 21X(2,3) + 36X(3,3) + 30X(4,3) + 22X(5,3) + 29X(6,3) >= 35

FORMULACION EN LINGO:

Sets:

bien/1..6/;

year/1..3/:a,b;

matriz(bien,year):precio,x;

Endsets

Data:

a=20,30,35;

precio=15,20,24,

16,18,21,

22,30,36,

10,20,30,

17,19,22,

19,25,29;

Enddata

Max=@sum(year:b);

¡FUNCION OBJETIVO;

Página | 97
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

@for(year(j):@sum(bien(i):precio(i,j)*x(i,j))=b(j));

¡RESTRICCION 1;

@for(bien(i):@sum(year(j):x(i,j))<=1);

¡RESTRICCION 2

@for(year(j):@sum(bien(i):precio(i,j)*x(i,j))>=a(j));

@for(matriz:@bin(x));

SOLUCIÓN EN LINGO:

El máximo ingreso por la venta de bienes es 146 millones. El bien 1 se vende en el


año 3, el bien 2 en el año 1, el bien 3 en el año 2, el bien 4 en el año 3, el bien 5 en
el año 1 y en bien 6 en el año 3.

4.8. Problema 8

La acerera de Newcor recibió un pedido de 25 toneladas de acero. El


acero debe tener 5% de carbono y 5% de molibdeno por peso. El acero
es el resultado de combinar tres tipos de metales: lingotes de acero,
acero de desperdicios y aleaciones. Están disponibles para la compra
cuatro lingotes de acero. El peso (en toneladas), costo por tonelada,
contenido de carbono y molibdeno de cada lingote se proporcionan en
la tabla 1.
Página | 98
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Se pueden comprar tres tipos de aleaciones. El costo por tonelada y


composición química de cada aleación se dan en la tabla 2.
El desperdicio de acero se compra a un costo de 100 dólares por
tonelada, y contiene 3% de carbono y 9% de molibdeno. Plantee un PE,
mezclada con cuya solución indique a Newcor cómo debe minimizar el
costo de cumplir con el pedido.
TABLA 1

Lingote Peso Costo por % de % de


tonelada carbono molibdeno
1 5 350 5 3
2 3 330 4 3
3 4 310 5 4
4 6 280 3 4
TABLA 2

Aleación Costo por Carbono % Molibdeno %


tonelada
1 500 8 6
2 450 7 7
3 400 6

SOLUCIÓN:

Xi: 1, cuando se ha comprado el lingote i


0, en caso contrario
Yi: Numero de toneladas de aleación tipoi compradas
W: Numero de toneladas de desperdicios compradas

FUNCIÓN OBJETIVO:

MINZ=350*(5*X1)+330*(3*X2)+310*(4*X4)+500*Y1+450Y2+400Y3+100W
S.A.:

5*X1+4*X2+4*X3+6*X4+Y1+Y2+Y3+W=25 (PEDIDO)

Página | 99
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

5*(5*X1)+4*(3*X2)+5*(4*X3)+3*(6*X4)+8*Y1+7*Y2+6*Y3+3*W=5*25(%CARBONO)

3*(5*X1)+3*(3*X2)+4*(4*X3)+4*(6*X4)+6*Y1+7*Y2+9*W=5*25(%MOLIBDENO)

X1+X2+X3+X4=1 (LINGOTE)
Y1+Y2+Y3>0
W>0
XI=0 Ó 1
YI>0
W>0

EL PROGRAMA EN LINGO ES:


Sets:

lingote/1..4/:peso,costo1,carbono1,molibdeno1,x;

aleacion/1..3/:costo2,carbono2,molibdeno2,y;

desperdicio/1..1/:costo3,carbono3,molibdeno3,w;

Endsets

Data:

peso = 5,3,4,6;
Página | 100
costo1 = 350 ,330 ,310 ,280;

carbono1 = 0.05, 0.04 ,0.05 ,0.03;

molibdeno1 = 0.03, 0.03, 0.04, 0.04;


UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

5. PROBLEMA APLICADO A LA ASIGNACIÓN IMPORTANDO


DE EXCEL

5.1. Problema 1
La Fábrica de Calzado Flores produce y vende calzados de verano
exclusivos. Uno de los factores más importantes para poder realizar una
venta es el servicio rápido de Flores. Flores vende en 6 ciudades: Piura,
Sullana, Sechura, Paita, Morropón y Ayabaca. Se proyectan las ventas
anuales de pares de zapatos de acuerdo a la presencia de un
representante de ventas dentro de 55 Km de una ciudad (tabla 1).
Página | 101
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

La ganancia por cada par de zapato es de S/. 70. El costo anual por
representante de venta es de S/. 8 400. Flores debe determinar cuántos
representantes colocar en cada uno de sus mercados. Solo se
consideran Piura, Ayabaca, Paita y Sechura como bases para
representantes de ventas, ya que en estas se encuentran las fábricas.
Se dispone de 10, 8, 6, y 9 representantes en las bases: Piura, Ayabaca,
Paita y Sechura respectivamente y se requieren 4, 5, 3 ,2 ,1 ,4
representantes de venta por mercado Piura, Ayabaca, Paita, Sechura,
Morropón y Sullana respectivamente. La tabla 2 muestra las distancias
en Km.
Se necesita maximizar las ganancias anuales.
TABLA 1

REPRESENTANTE MERCADOS – VENTA


DENTRO DE Piura Ayabaca Paita Sechura Morropón Sullana
55Km
SI 130 120 130 110 110 122
NO 70 40 80 70 90 50

TABLA 2

Base- Piura Ayabaca Paita Sechura


Fábrica
Mercado
Piura 0 229 60 50
Ayabaca 229 0 117 260
Paita 60 117 0 55
Sechura 50 260 55 0
Morropón 60 58 115 52
Sullana 39 40 47 239

SOLUCIÓN:

FORMULACIÓN ALGEBRAICA DEL MODELO

Definición de variables:
X i, j = Cantidad de representantes de la Fabrica j en el mercado de la ciudad i.
H i, j = Es 1 si la distancia de la fabrica i a la ciudad j es menor o igual a 55, sino 0.
T i, j = Es 1 si la distancia de la fabrica i a la ciudad j es mayor que 55.
Z i, j = matriz de variables que se filtraran con la matriz Hij.
Página | 102
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

W i, = Cantidad de ventas en el mercado i, sin representante.


Y i = Cantidad de ventas en el mercado i, con representante
Definición de parámetros:

SI i, j = Cantidad de ventas anuales en el mercado de la ciudad i, por cada


representante.
NO i, j = Cantidad de ventas anuales en el mercado de la ciudad i, en caso no
hubiesen representantes.
REPRE i = Cantidad disponible de representantes en la fabrica i.
REPREMIN i = Cantidad mínima requerida de representantes en el mercado i.
DIST i, j = Distancia de la fabrica i, a la ciudad j

RESTRICCION DE MAXIMA CANTIDAD DE REPRESENTANTES POR


FÁBRICA Y MERCADO
4 6

∑ ∑ 𝑋𝑖,𝑗 ≤ 𝑅𝐸𝑃𝑅𝐸𝑗
𝑗 =1 𝑖 =1

RESTRICCION DE MÍNIMA CANTIDAD DE REPRESENTANTES POR FÁBRICA


Y MERCADO
𝟔 𝟒
∑ ∑ 𝑿𝒊,𝒋 ≥ 𝑹𝑬𝑷𝑹𝑬𝑴𝑰𝑵𝒊
𝒊=𝟏 𝒋=𝟏

VENTAS SIN REPRESENTANTE POR MERCADO


𝟔 𝟒
∑ ∑ 𝑵𝑶𝒊 × 𝑻𝒊,𝒋 = 𝑾𝒊
𝒊=𝟏 𝒋=𝟏

VENTAS CON REPRESENTANTE POR MERCADO

𝒁𝒊,𝒋 × 𝑯𝒊,𝒋 = 𝑿𝒊,𝒋

𝟔 𝟒
∑ ∑ 𝑺𝑰𝒊 × 𝑿𝒊,𝒋 = 𝒀𝒊
𝒊=𝟏 𝒋=𝟏

SALARIO DE REPRESENTANTES

Página | 103
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

6 4
8400 × ∑ ∑ 𝑋𝑖,𝑗 = 𝐶𝑂𝑆𝑇𝑂
𝑖=1 𝑗=1

FUNCION OBJETIVO
𝟔 𝟔
𝑴𝑨𝑿 = 𝟕𝟎 × ∑ 𝑾𝒊 + ∑ 𝒀𝒊 − 𝑪𝑶𝑺𝑻𝑶
𝒊=𝟏 𝒊=𝟏

INTERPRETACIÓN

FUNCION OBJETIVO:
Lo que pide el problema es maximizar las utilidades por cada año de
operación por lo cual se analizaran los ingresos y egresos.
Ingresos:
Los ingresos son proporcionales a la cantidad de pares de zapatos vendidos.

Por ejemplo la distancia de la fábrica en Paita al mercado en Piura es de 60


Km (encerrado de rojo) por lo cual no es posible la presencia de un
representante y de acuerdo a la tabla 1 solo se venderá 70 pares de
zapatos.

Página | 104
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Ahora la distancia de la fábrica en Piura al mercado en Sechura es de 50


Km (encerrado de verde) por lo cual hay probabilidad de asignar uno o más
representantes y de acuerdo a la tabla 1 se venderá 110 pares de zapatos
por cada representante asignado (Si fuera un representante se vendería
como 110 y si fueran dos entonces 220).
Entonces se realiza el siguiente cuadro de acuerdo a las ventas y a las
distancias.

Total de pares de zapatos vendidos por cada mercado

CUADRO 1 Piura Ayabaca Paita Sechura

Piura 130X11 70 70 130X14

Ayabaca 40 120X22 40 40

Paita 80 80 130X33 130X34

Sechura 110X41 70 110X43 110X44

Morropón 90 90 90 110X54

Sullana 122X61 122X62 122X63 50

X i, j = Cantidad de representantes de la Fabrica j en el mercado de la ciudad i.


𝐼𝑁𝐺𝑅𝐸𝑆𝑂 = 70 ∗ (130X11 + 70 + 70 + 130X14 + 40 + 120X22 + 40 + 40 + 80 + 80
+ 130X 33 + 130X34 + 110X 41 + 70 + 110X43 + 110X44 + 90 + 90
+ 90 + 110X54 + 122X61 + 122X62 + 122X63 + 50)
Egresos:
Los egresos serian lo que se paga a cada uno de los representantes esto sería:
Costo = 8400 ∗ (X11 + X14 + X 22 + X 33 + X 34 + X 41 + X 43 + X 44 + X 54 + X 61 + X 62 + X 63 )
Ahora nuestra función objetivo quedaría:
𝑀𝐴𝑋 = 𝐼𝑁𝐺𝑅𝐸𝑆𝑂 − 𝐶𝑂𝑆𝑇𝑂
𝑀𝐴𝑋 = 70 ∗ (130X11 + 70 + 70 + 130X14 + 40 + 120X22 + 40 + 40 + 80 + 80
+ 130X 33 + 130X34 + 110X 41 + 70 + 110X43 + 110X 44 + 90 + 90 + 90
+ 110X 54 + 122X61 + 122X 62 + 122X63 + 50) − 8400
∗ (X11 + X14 + X 22 + X 33 + X 34 + X 41 + X 43 + X 44 + X 54 + X 61 + X 62
+ X 63 )
MAX = 700 X11 + 700X14 + 700X33 + 700X 34 − 700X41 − 700X43 − 700X 44 44
− 700X54 + 140X61 + 140X62 + 140X63 + 56700

Página | 105
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

RESTRICCIONES:
Cantidad mínima de los representantes de cada fábrica
X11 + X 41 + X 61 <= 10
X 22 + X 62 <= 8
X 33 + X 43 + X 63 <= 6
X14 + X 34 + X 44 + X 54 <= 9
Cantidad mínima de representante por mercado
X11 + X14 >= 4
X 22 >= 5
X 33 + X 34 >= 3
X 41 + X 43 + X 44 >= 2
X 54 >= 1
X 61 + X 62 + X 63 >= 4

IMPLEMENTACIÓN EN LINGO:
En LINGO se realizan implementaciones muy largas y tediosas, pero estas
siempre siguen un formato de suma o repetición por filas y columnas.

DEFINICIÓN DE SETS:
Según lo planteado y a los datos del problema tenemos:

SETS:
MERCADOS/1..6/:SI,NO,W,Y,REPREMIN;
FABRICAS/1..4/:REPRE;
MERCAFABRI(MERCADOS,FABRICAS):DIST,X,H,T,Z;
ENDSETS

Creando Hij y Tij;

Página | 106
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

@FOR(MERCAFABRI(I,J)|DIST(I,J)#LE#55:H(I,J)=1);!REPRESENTANTES
;
@FOR(MERCAFABRI(I,J)|DIST(I,J)#GT#55:H(I,J)=0);
@FOR(MERCAFABRI(I,J)|DIST(I,J)#GT#55:T(I,J)=1);!SIN
REPRESENTANTES;
@FOR(MERCAFABRI(I,J)|DIST(I,J)#LE#55:T(I,J)=0);

@FOR(MERCAFABRI(I,J):) señala que realizará una operación tantas veces


como la cantidad de elementos de MERCAFABRI, como es una matriz de 6 filas
y 4 columnas hará la operación 24 veces.

DIST(I,J)#LE#55; hará la operación si DIST(I,J)<=55.

@FOR(MERCAFABRI(I,J)|DIST(I,J)#LE#55:H(I,J)=1); toda esta


sentencia indica que si DIST(I,J)<=55 el valor H(I,J)=1.

Las demás sentencias son análogas, solo que DIST(I,J)#GT#55; indica que
solo se realizará la operación si DIST(I,J)>55.

Restricción De Máxima Cantidad De Representantes Por Fábrica


4 6

∑ ∑ 𝑋𝑖,𝑗 ≤ 𝑅𝐸𝑃𝑅𝐸𝑗
𝑗 =1 𝑖 =1

!RESTRICCION DE MAXIMA CANTIDAD DE REPRESENTANTES POR FABRICA Y


MERCADO;
@FOR(FABRICAS(J):@SUM(MERCADOS(I):X(I,J))<=REPRE(J));

Restricción De Mínima Cantidad De Representantes Por Mercado


𝟔 𝟒
∑ ∑ 𝑿𝒊,𝒋 ≥ 𝑹𝑬𝑷𝑹𝑬𝑴𝑰𝑵𝒊
𝒊=𝟏 𝒋=𝟏

Página | 107
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

!RESTRICCION DE MINIMA CANTIDAD DE REPRESENTANTES POR FABRICA Y


MERCADO;
@FOR(MERCADOS(J):@SUM(FABRICAS(I):X(J,I))>=REPREMIN(J));

Ventas Sin Representante Por Mercado


𝟔 𝟒
∑ ∑ 𝑵𝑶𝒊 × 𝑻𝒊,𝒋 = 𝑾𝒊
𝒊=𝟏 𝒋=𝟏

!VENTAS SIN REPRESENTANTE POR MERCADO;


@FOR(MERCADOS(J):@SUM(FABRICAS(I):NO(J)*T(J,I))=W(J));

Ventas Con Representante Por Mercado

𝒁𝒊,𝒋 × 𝑯𝒊,𝒋 = 𝑿𝒊,𝒋


𝟔 𝟒
∑ ∑ 𝑺𝑰𝒊 × 𝑿𝒊,𝒋 = 𝒀𝒊
𝒊=𝟏 𝒋=𝟏

!VENTAS CON REPRESENTANTE POR MERCADO;


@FOR(MERCAFABRI(I,J):Z(I,J)*H(I,J)=X(I,J));
@FOR(MERCADOS(J):@SUM(FABRICAS(I):SI(J)*X(J,I))=Y(J));

Salario De Representantes
6 4
8400 × ∑ ∑ 𝑋𝑖,𝑗 = 𝐶𝑂𝑆𝑇𝑂
𝑖=1 𝑗=1

!SALARIO DE REPRESENTANTES;
@SUM(MERCAFABRI(I,J):X(I,J))*8400=COSTO;

Función Objetivo
𝟔 𝟔
𝑴𝑨𝑿 = 𝟕𝟎 × (∑ 𝑾𝒊 + ∑ 𝒀𝒊 ) − 𝑪𝑶𝑺𝑻𝑶
𝒊=𝟏 𝒊=𝟏

Página | 108
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

MAX=70*(@SUM(MERCADOS(I):W(I))+@SUM(MERCADOS(I):Y(I)))-COSTO;

Definición de data.

Data directa en lingo:


DATA:
DIST= 0 229 60
50
229 0 117 260
60 117 0 55
50 260 55 0
60 58 115 52
39 40 47 239;

REPRE=10 8 6 9;
REPREMIN=4 5 3 2 1 4;
SI=130 120 130 110 110
122;
NO=70 40 80 70 90 50;

ENDDATA

Data exportada de Excel:


DATA:
DIST,REPRE,REPREMIN,SI,NO= @OLE('F:\VII
CICLO\OPE\LABO\PROBLEMA2.xlsx');
@OLE('F:\VII CICLO\OPE\LABO \DATA1.xlsx')=X;
ENDDATA

LINGO tiene una función sencilla, @OLE(),para recuperar y colocar datos


de y a una hoja de cálculo (Excel).
Un paso sencillo pero oculto que debe de realizarse antes en las hojas de
cálculo es definir los nombres de los rangos de las distintas colecciones de
celdas que contienen datos. Los nombres de los rangos se pueden definir

Página | 109
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

en Excel con el ratón y el elemento del menú Insertar, nombre, definir. Se


elige los datos de la hoja y luego click derecho luego a asignar rangos y
poner el nombre con que se llamara en LINGO.

Las primeras 5 aplicaciones mostradas en el data ilustran que esta función


se puede usar de a la derecha de una instrucción de asignación para
recuperar datos de una hoja de cálculo. La última muestra que se puede
colocar a la izquierda de una asignación para colocar los resultados en la
hoja de cálculo.

PROGRAMA EN LINGO:

MODEL ASIGNACION :
!MODELO DE ASIGNACION DE REPRESENTANTES;
SETS:
MERCADOS/1..6/:SI,NO,W,Y,REPREMIN;
FABRICAS/1..4/:REPRE;
MERCAFABRI(MERCADOS,FABRICAS):DIST,X,H,T,Z;
ENDSETS

DATA:
DIST,REPRE,REPREMIN,SI,NO= @OLE('G:\VII
CICLO\OPE\LABO\DATA1.xlsx');

Página | 110
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

@OLE('F:\VII CICLO\OPE\LABO \DATA1.xlsx','C_X')=X;

ENDDATA

MAX=70*(@SUM(MERCADOS(I):W(I))+@SUM(MERCADOS(I):Y(I)))-
COSTO;

@FOR(MERCAFABRI(I,J)|DIST(I,J)#LE#55:H(I,J)=1);!REPRESENTA
NTES;
@FOR(MERCAFABRI(I,J)|DIST(I,J)#GT#55:H(I,J)=0);
@FOR(MERCAFABRI(I,J)|DIST(I,J)#GT#55:T(I,J)=1);!SIN
REPRESENTANTES;
@FOR(MERCAFABRI(I,J)|DIST(I,J)#LE#55:T(I,J)=0);

!RESTRICCION DE MAXIMA CANTIDAD DE REPRESENTANTES POR


FABRICA Y MERCADO;
@FOR(FABRICAS(J):@SUM(MERCADOS(I):X(I,J))<=REPRE(J));

!RESTRICCION DE MINIMA CANTIDAD DE REPRESENTANTES POR


FABRICA Y MERCADO;
@FOR(MERCADOS(J):@SUM(FABRICAS(I):X(J,I))>=REPREMIN(J));

!VENTAS SIN REPRESENTANTE POR MERCADO;


@FOR(MERCADOS(J):@SUM(FABRICAS(I):NO(J)*T(J,I))=W(J));

!VENTAS CON REPRESENTANTE POR MERCADO;


@FOR(MERCAFABRI(I,J):Z(I,J)*H(I,J)=X(I,J));
@FOR(MERCADOS(J):@SUM(FABRICAS(I):SI(J)*X(J,I))=Y(J));

!SALARIO DE REPRESENTANTES;
@SUM(MERCAFABRI(I,J):X(I,J))*8400=COSTO;

Página | 111
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

END

Reporte de la solución exportando datos a excel:

CANT. DE PIURA AYABACA PAITA SECHURA


REPRESENTANTES
PIURA 7 0 0 0
AYABACA 0 5 0 0
PAITA 0 0 6 8
SECHURA 2 0 0 0
MORROPÓN 0 0 0 1
SULLANA 1 3 0 0

En este cuadro podemos ver las cantidades de representantes asignados


para cada mercado pertenecientes a una determinada fábrica o base. Estas
cantidades cumplen con todas las condiciones establecidas.

5.2. Problema 2 – Presupuesto

La compañía constructora Molina dispone de 180 millones como


presupuesto para 3 años, que se usaran en sus 3 sucursales. Se ha
establecido un nivel máximo de asignación de fondos de 20 millones
para cada sucursal por año. En caso que una sucursal no exceda el
Página | 112
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

límite anual, puede usar esa diferencia para el siguiente año. Cada
sucursal tiene la oportunidad de dirigir distintos proyectos con los
fondos que recibe. Para cada proyecto se ha establecido una tasa de
ganancia (como un porcentaje de la inversión) y una inversión máxima
(Tabla1). Por otra parte, algunos de los proyectos obligan una inversión
mínima como se indica en la tabla 2. Determine la política de asignación
de recursos que genere el mejor beneficio.

TABLA 1

Año 1 Año 2 Año 3

Proyecto Tasa Inve Proyecto Tasa Inver Proyecto Tasa Inversi


SUCU de rsión de sión de ón
RSAL utilid máxi utilid máxi utilid máxim
ad ma ad ma ad a

(%) (m) (%) (m) (%) (m)

Trujill 1 8 10 1 9 9 1 8 8
o
2 6 7 2 6 5 2 7 7

3 7 9 3 7 9 3 7 7

Lima 1 5 7 1 6 4 1 5 9

2 8 10 2 18 10 2 8 8

3 9 5 3 5 6 3 5 5

Tacna 1 10 6 1 11 6 1 7 6

2 6 7 2 6 10 2 6 11

3 15 5 3 15 5 3 15 6

TABLA 2

Inversión Mínima (millones)

Página | 113
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Sucursal Proyecto Periodo Cantidad mínima

Trujillo 2 1 4

Lima 1 1 5

Tacna 2 2 9

Adicionalmente por una directiva de la alta gerencia se requiere que los


proyectos que tienen una utilidad mayores del 7% en cualquier año, por
lo menos tengan una inversión de 5 millones.

SOLUCIÓN:

A. FORMULACIÓN ALGEBRAICA DEL MODELO


Definición de variables:
X i, j, k = Cantidad asignada a la sucursal i para el proyecto j en el periodo k.

Sobrante i, k = Cantidad sobrante de dinero no asignado a la sucursal i en


periodo k.

Definición de parámetros:

Máximo i, k = Nivel máximo de asignación de fondos para la sucursal i en el


periodo k.

Mínimo i, j, k = Nivel mínimo de asignación de fondos en la sucursal i, para


el proyecto j, en el periodo k.

InvMáxima i, j, k = Inversión máxima en la sucursal i para el proyecto j en el


periodo k.
InvMínima=Inversión mínima que establece la gerencia para ciertos proyectos
con tasa de utilidad mayor a 7%.
Presupuesto Total = Presupuesto total disponible.
Tasa i, j, k = Tasa de rentabilidad de la sucursal i, para el proyecto j durante el
periodo k.

RESTRICCIÓN DE USO MÁXIMO DE PRESUPUESTO POR PERIODO POR


SUCURSAL.

 X i, j, k + Sobrante i, k = Máximo i, k
j =1

Página | 114
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

 k=1 (Solo el primer año)

i = 1, 2, 3 (Sucursal).
3

 X i , j ,k -Sobrante i,k-1 + Sobrante i, k = Máximo i, k


j 1
k  2, 3 (Periodo)

i  1, 2, 3 (Sucursal)

RESTRICCIÓN DE INVERSIÓN MÍNIMA PARA ALGUNOS PROYECTOS


ESPECÍFICOS.

X i , j ,k ≥ Mínimo i , j ,k ; Solo para (i=1, j=2, k=1) Λ (i=2, j=1, k=1) Λ

(i=3, j=2, k=2)

RESTRICCIÓN DE INVERSIÓN MÁXIMA POR PROYECTO EN CADA


SUCURSAL.

X i , j ,k ≤ InvMáxima i , j ,k i =1, 2, 3 j =1, 2, 3 k=1, 2, 3

RESTRICCIÓN DE PRESUPUESTO DISPONIBLE.

3 3 3

    X i , j ,k ≤ Presupuesto Total

I=1 j=1 k =1

RESTRICCIÓN DE INVERSIÓN MÍNIMA POR DIRECTIVA DE ALTA GERENCIA.

X i , j ,k ≥ InvMínima

Tasai,j,k ≥ 0.07

FUNCIÓN OBJETIVO

3 3 3
𝑀𝐴𝑋 = ∑ ∑ ∑ 𝑇𝑎𝑠𝑎𝑖,𝑗,𝑘 𝑥 𝑋𝑖,𝑗,𝑘
𝑖=1 𝑗=1 𝑘=1

El LINGO respectivo:

Página | 115
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

MODEL PRESUPUESTOS:

! MODELO DE ASIGNACION DE PRESUPUESTO;

SETS:

SUCURSAL /TRUJILLO,LIMA,TACNA/:;

PROYECTO /1..3/: ;

PERIODO /1..3/: ;

SUCURSAL_PERIODO (SUCURSAL,PERIODO) : SOBRANTE, MAXIMO;

SUCURSAL_PROYECTO_PERIODO (SUCURSAL,PROYECTO,PERIODO):TASA,
INVMAXIMA, ASIGNACION;

INVERSION_MINIMA (SUCURSAL,PROYECTO,PERIODO)/TRUJILLO 2 1, LIMA 1 1, TACNA


2 2 /: MINIMO;

ENDSETS

DATA:

TASA,INVMAXIMA,MINIMO,PRESUPUESTO,INVMINIMA= @OLE('G:\VII
CICLO\OPE\LABO\DATA2.xlsx','tasa','INV_MAX','mínima','presupuesto','inv_mínim
a' );

MAXIMO = 20, 20, 20,

20, 20, 20,

20, 20, 20;

ENDDATA

! Funcion Objetivo;

MAX = FO;

FO=@SUM(SUCURSAL_PROYECTO_PERIODO: TASA * ASIGNACION );

! Restriccion de uso maximo de presupuesto por periodo por sucursal ;

@FOR(PERIODO(K) | K #EQ# 1:@FOR( SUCURSAL(I):@SUM( PROYECTO(J)


:ASIGNACION(I,J,K) ) + SOBRANTE(I,K) = MAXIMO(I,K) ));

@FOR(PERIODO(K) | K #NE# 1:@FOR( SUCURSAL(I):@SUM( PROYECTO(J)


:ASIGNACION(I,J,K) ) - SOBRANTE(I,K-1)+ SOBRANTE(I,K) = MAXIMO(I,K) ));

! Restriccion de inversion minima para algunos proyectos especificos ;

@FOR(INVERSION_MINIMA(I,J,K): ASIGNACION(I,J,K) >= MINIMO(I,J,K));

! Restriccion de inversion maxima por proyecto en cada sucursal ;

@FOR(SUCURSAL_PROYECTO_PERIODO(I,J,K): ASIGNACION(I,J,K) <= INVMAXIMA(I,J,K)


);

@FOR(SUCURSAL_PROYECTO_PERIODO(I,J,K)|TASA(I,J,K)#GT#0.07: ASIGNACION(I,J,K)>=
INVMINIMA);
! Restriccion de prespuesto disponible;

@SUM( SUCURSAL_PROYECTO_PERIODO(I,J,K): ASIGNACION(I,J,K)) <= PRESUPUESTO ;

DATA:

@OLE('J:\OPE\LABO\DATA2.xlsx','FO','SOBRANTE','ASIGNACION' Página | 116


)=FO,SOBRANTE,ASIGNACION;

ENDDATA
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

REPORTE DE LA SOLUCIÓN EXPORTANDO DATOS A EXCEL :

UTILIDAD EN 3 15.24 millones


AÑOS

EXCEDENTE DE SUCURSALES POR AÑOS


SUCURSAL 1 2 3
TRUJILLO 0 2 0
LIMA 0 2 0
TACNA 4 3 0
Este cuadro nos muestra los excedentes que se dieron en cada uno e los
años en las diferentes sucursales debido a que no se utilizó el máximo
asignado que era de 20 millones. Así tenemos que en la sucursal de Trujillo
hubo un sobrante de 2 millones en el segundo año, luego de haber invertido
en los 3 proyectos; en lima igualmente en el segundo año hubo un sobrante
de 2 millones y en Tacna en el primer y segundo año sobrantes de 4 y 3
millones respectivamente.
Asignaciones de presupuesto por sucursal, proyecto y año

PROYECTO 1
1 2 3 PROYECTO 2
TRUJILLO 10 9 8
1 2 3
LIMA 5 4 9 TRUJILLO 4 0 7
TACNA 6 6 6 LIMA 10 10 8
TACNA 5 10 11

PROYECTO 3
1 2 3
TRUJILLO 6 9 7
LIMA 5 4 5
TACNA 5 5 6

En estos 3 últimos cuadros podemos ver las cantidades en millones asignadas


para cada proyecto en una determinada sucursal y año. Estas cantidades cumplen
con todas las condiciones establecidas.

Página | 117
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

5.3. Problema 3 – Proyectos

Una compañía dispone de 35 millones para distribuirlos el próximo año


entre sus sucursales (Arequipa, Cuzco, Trujillo). Debido a compromisos
de la estabilidad, el nivel de empleados y por otras razones la compañía
ha establecido un nivel mínimo de asignación de fondos para cada
sucursal. Estos fondos mínimos son de 8, 10 y 15 millones de dólares
respectivamente. Debido a la naturaleza de su operación, la sucursal
Cuzco no puede utilizar más de 20 millones de dólares. Cada sucursal
tiene la oportunidad de dirigir distintos proyectos con los fondos que
recibe. Para cada proyecto se ha establecido una tasa de ganancia
(como un porcentaje de la inversión). Por otra parte, algunos de los
proyectos permiten solo una inversión limitada. A continuación se dan
los datos para cada proyecto.

Sucursal Proyecto Tasa de Inversión


Utilidad(%) Máxima

1 8 10

Arequipa 2 6 5

3 7 9

1 5 7

Cuzco 2 8 10

3 9 4

1 10 6

Trujillo 2 6 12

3 15 6

Solución:

Dada la información del problema, lo que se debe hacer es maximizar las


utilidades de la compañía en mención, asignando de la mejor manera los fondos
a sus respectivas sucursales.
FORMULACIÓN DEL MODELO
Definición de variables:
Xij: Cantidad asignada a la sucursal i para el proyecto j

Página | 118
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

(Siendo: i=1, 2, 3; 1: Arequipa, 2: Cuzco, 3: Trujillo) (j=1, 2, 3)


Definición de parámetros:
Mínimo: Nivel mínimo de asignación de fondos para la sucursal i (i=1,2,3)
Máximo: Nivel máximo de asignación de fondos para la sucursal i (i=1,2,3)
Inv.Maximaij: Inversión máxima en la sucursal i para el proyecto j.

(Siendo: i=1, 2, 3 y j=1, 2, 3)


PresupuestoTotal: Presupuesto total disponible.
Tasaij: Tasa de rentabilidad del proyecto j en sucursal i.
(Siendo: i=1, 2, 3 y j=1, 2, 3)

Función Objetivo:
Max Z = Tasa11*X11 +Tasa12*X12+ Tasa 13*X13 + Tasa 21 *X21 + Tasa 22
*X22 + Tasa 23 *X23 + Tasa 31 *X31 + Tasa 32 *X32 + Tasa 33*X 33

Restricciones:
RESTRICCIÓN DE USO MÍNIMO DE PRESUPUESTO POR SUSCURSAL
Arequipa: X11 +X12 +X13 ≥ Minimo1
Cuzco: X21 +X22 +X23 ≥ Minimo2
Trujillo: X31 +X32 +X33 ≥ Minimo3

RESTRICCIÓN DE USO MÁXIMO DE PRESUPÚESTO POR SUCURSAL


Cuzco: X21 +X22 +X23 ≤Máximo2

RESTRICCIÓN DE INVERSIÓN MÁXIMA POR PROYECTO EN CADA


SUCURSAL
Arequipa:
X11 ≤ InvMaxima11
X12 ≤ InvMaxima12
X13 ≤ InvMaxima13

Página | 119
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Cuzco:
X21 ≤ InvMaxima21
X22 ≤ InvMaxima22
X23 ≤ InvMaxima23
Trujillo:
X31 ≤ InvMaxima31
X32 ≤ InvMaxima32
X33 ≤ InvMaxima33
RESTRICCION DE PRESUPUESTO DISPONIBLE
X11 +X12 +X13 +X21 +X22 +X23+ X31 +X32 +X33 ≤ PresupuestoTotal

Página | 120
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

PROGRAMACIÓN EN LINGO

Ahora resolvamos el modelo, pulsando el ícono, con lo que obtendremos los


siguientes resultados:

De los resultados del reporte, en la parte superior se nota que la función


objetivo se optimiza cuando la rentabilidad es máxima, es decir, cuando toma
el valor de 3.32 millones de dólares.

El resultado también nos da la asignación total de los recursos financieros,


en el atributo ASIGNACIÓN. El valor de ASIGNACION (Arequipa, 1), por
ejemplo es 8. Esto significa que la cantidad de dinero asignado a la sucursal
Arequipa para el proyecto 1 deberá ser 8 millones de dólares. Para ver la
solución de sólo este atributo, escoge la opción “solution” y en el cuadro de
diálogo se ingresa el nombre “ASIGNACION”. También puede seleccionar el
siguiente Ícono:

Y aparecerá la siguiente ventana:

Página | 121
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Se activa la opción que permite mostrar sólo los valores distintos de cero para
que LINGO sólo muestre los valores de la variable ASIGNACION distintos
de cero, así:

Y en este último cuadro se puede ver la forma cómo tienen que ser repartidos
los fondos a las diversas sucursales de la compañía para alcanzar una
máxima utilidad. A la sucursal de Arequipa se le asigna 8 millones para
invertir en el proyecto 1, a la sucursal del Cuzco 8 millones para el proyecto
2 y 4 millones para el proyecto 3 y finalmente para la sucursal de Trujillo 1
millón para el proyecto 1, 3 millones para el proyecto 2 y 6 millones para el
proyecto 3.

Página | 122
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

5.4. Problema 4 – Cuatro variables

Graficolor, fabricante y distribuidor de papel y demás útiles escolares


produce 3 tipos diferentes de papel que se pueden fabricar tanto en la
fábrica A, B o C, las cuales se encuentran ubicadas en la ciudad de
Lima. La empresa busca satisfacer la demanda establecida para las
ciudades de Tacna y Cuzco en donde se venden dichos productos.
Para ello se tiene en cuenta que en estas ciudades existen 2 tipos de
centros de distribución (supermercados y librerías) los cuales
pertenecen a la corporación. Los precios de venta de los productos
según donde fueron fabricados, la ciudad y el centro de distribución
donde se va a vender se muestran en las siguientes tablas:
Tacna Cuzco

Supermercado Librería Supermercado Librería

Producto Producto Producto Producto Producto Producto Producto Producto Producto Producto Producto Producto
1 2 3 1 2 3 1 2 3 1 2 3

Fábrica A 12 15 17 11 12 15 14 12 13 15 13 12

Fábrica B 10 13 14 12 14 16 13 14 15 11 12 13

Fábrica C 12 11 13 10 11 13 11 13 14 12 13 14

La corporación busca maximizar sus ventas y saber cómo va a distribuir


sus productos tomando en cuenta la capacidad de producción de las
fábricas, la demanda de las ciudades y la capacidad de los centros de
distribución.
Capacidad de Producción:

Fábrica A Fábrica B Fábrica C


Producto 1 75 65 70
Producto 2 60 70 80
Producto 3 65 75 75

Demanda:

Tacna Cuzco

Producto 1 73 67

Producto 2 58 72

Producto 3 67 74

Página | 123
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Capacidad de los centros de distribución:

Tacna Cuzco

Supermercado 150 140

Librería 130 150

Solución:
Xijkl: cantidad de productos elaborados en la fábrica “i”, que corresponde al tipo “j”,
distribuido en “k”, en la ciudad “l”
Donde:
₪ Tipo de fábrica: i= A, B, C
₪ Tipo de producto: j= P1, P2, P3
₪ Tipo de centro de distribución: k=supermercado (S), librería (L)
₪ Ciudades: l=Tacna (T), Cuzco (Cz)
Función objetivo:
𝐶 𝑃3 𝐿 𝐶𝑧

∑ ∑ ∑ ∑ 𝑋𝑖𝑗𝑘𝑙 ∗ 𝑃𝑅𝐸𝐶𝐼𝑂𝑖𝑗𝑘𝑙
𝑖=𝐴 𝑗=𝑃1 𝑘=𝑆 𝑙=𝑇

Sujeto a:
Capacidad de producción:
𝐿 𝑃3

∑ ∑ 𝑋𝑖𝑗𝑘𝑙
𝑘=𝑆𝑀 𝑙=𝑃1

Demanda:
𝐶 𝐿

∑ ∑ 𝑋𝑖𝑗𝑘𝑙
𝑖=𝐴 𝑘=𝑆

Capacidad de los centros de distribución:


𝐶 𝑃3

∑ ∑ 𝑋𝑖𝑗𝑘𝑙
𝑖=𝐴 𝑗=𝑃1

Página | 124
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

1) El ejercicio en el programa Lingo


!PROBLEMA LINGO;

MODEL:

SETS:

FABRICAS / A B C/:; !Tipo de fábrica: i= A, B, C ;

PRODUCTOS /P1 P2 P3/:; !Tipo de producto: j= P1, P2, P3 ;

CENTRO /S L/:; !Tipo de centro de distribución: k=supermercado (S), librería (L);

CIUDAD /T C/:; !Ciudades: l=Tacna (T), Cuzco (Cz);

!REQUERIMIENTO DE PRODUCTOS PARA UNA FABRICA, EN UN CENTRO DE


DISTRIBUCION, EN UNA CIUDAD,;

FPCC(FABRICAS,PRODUCTOS,CENTRO,CIUDAD):PRECIO,X;

FABPRO(FABRICAS,PRODUCTOS):CAPACIDAD;

PROCIU(PRODUCTOS,CIUDAD):DEMANDA;

CENCIUDAD(CENTRO,CIUDAD):CAPACIDAD2;

ENDSETS

DATA:

CAPACIDAD= 75 60 65,

65 70 75,

70 80 75;

DEMANDA= 73 67,58 72,67 74;

CAPACIDAD2= 150 140,130 150;

PRECIO= 12 15 17 11 12 15 14 12 13 15 13 12,

10 13 14 12 14 16 13 14 15 11 12 13,

12 11 13 10 11 13 11 13 14 12 13 14;

ENDDATA

MAX=@SUM(FPCC:PRECIO*X);!FUNCION OBEJTIVO RESULTADO;

@FOR(FABPRO(I,J):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACIDAD(I,J));

!RESTRICCIONES DE LA CAPACIDAD DE CADA RECURSO;

@FOR(PROCIU(J,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))>=DEMANDA(J,L));

!RESTRICCIONES DE LA DEMANDA DE CADA RECURSO;

@FOR(CENCIUDAD(K,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACIDAD2(K,L));

!RESTRICCIONES DE KA CAPACIDAD DE CADA RECURSO;

END

Página | 125
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

2) RESULTADOS

Podemos ver que la maximización de ventas es de: 8260

Para maximizar los costos:

Fabrica A:
La empresa debe de distribuir las 75 unidades del producto 1 a la librería de la
ciudad de Tacna.
También debe distribuir 5 unidades del producto 2 al supermercado de la ciudad
del Cuzco y el resto (55 unidades) será enviada a la librería de la ciudad de Tacna.
Además debe distribuir 65 unidades del producto 3 al supermercado de la ciudad
del Cuzco.

Fabrica B:
La empresa debe distribuir 1 unidad del producto 1 al supermercado de la ciudad
del Cuzco. Además tiene que distribuir 64 unidades a la librería de la ciudad del
Cuzco.
Además debe distribuir 3 unidades del producto 2 al supermercado de la ciudad
de Tacna. También 67 unidades al supermercado de la ciudad del Cuzco.
También podemos ver que se debe distribuir 75 unidades del producto 3 al
supermercado de la ciudad de Tacna.

Fabrica C:
Se deben distribuir 6 unidades del producto 1 al supermercado de Tacna. Además
de 2 unidades al supermercado de Cuzco.
También se debe distribuir 77 unidades del producto 2 a la librería del Cuzco.
También se debe distribuir 66 unidades del producto 3 al supermercado de Tacna.
Además de 9 unidades a la librería de la ciudad de Cuzco.

Análisis de los Costos Reducidos


Por ejemplo en X(A,P1,S,T) tiene un costo reducido de 4 esto quiere decir que si
nosotros aumentamos en 4 unidades el coeficiente de la FO se convertirá en una
alternativa conveniente ya que se hará 0 el costo reducido.
Variable Value Reduced Cost
X( A, P1, S, T) 0.000000 4.000000
X( A, P1, S, C) 0.000000 0.000000
Página | 126
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

X( A, P1, L, T) 75.00000 0.000000


X( A, P1, L, C) 0.000000 3.000000

Ahora el primer recurso si le aumentamos 4 unidades será 12+4=16 el nuevo


resultado sería :
Variable Value Reduced Cost

X( A, P1, S, T) 3.000000 0.000000

X( A, P1, S, C) 0.000000 0.000000

X( A, P1, L, T) 72.00000 0.000000

X( A, P1, L, C) 0.000000 3.000000

Holgura o Excedente
Vemos que si la restricción es exacta satisfecha como una igualdad, la holgura o
excedente valdrá cero y como no hay ningún número negativo en nuestro reporte
diremos que ninguna restricción es violada.

Precio Dual
El precio dual se puede interpretar como el monto en que la función objetivo mejorará
si el segundo miembro de la restricción se incrementase en una unidad en nuestro
cuadro de resultados podemos ver que Row 2 =4 esto quiere decir que si al recurso
de la segunda restricción le aumentamos en 4 unidades, es decir 60+4=64 el nuevo
valor de nuestra FO= 2864, aumentará en 4 unidades.

CONCLUSIONES
Primero podemos decir que una variable en la solución óptima automáticamente
tiene un costo reducido de 0.
En la interpretación del costo reducido podemos ver que si la variable tiene un costo
reducido de “a” el coeficiente objetivo de esta variable deberá incrementarse en “a”
unidades en un problema de maximización o disminuirse en “a” unidades en un
problema de minimización para convertirse en una alternativa atractiva.
En nuestro ejerció podemos ver que ninguna restricción es violada ya que en el
análisis de Holgura y Excedente no hay ninguna variable negativa.

Página | 127
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

EL PROBLEMA EN LINGO EXPORTANDO DATOS EN EXCEL

a) Los pasos que se sigue para crear una base de datos en EXCEL son:
b) Crear una carpeta en C, por ejemplo: TRABAJO DE OPE I
c) Crear un hoja de cálculo denominado PROBLEMA 1
d) Luego en la hoja de cálculo poner los datos del problema:

e) Asignar nombre a la matriz:


f) Hacer click en la barra del menú: “Formulas”

1. Hacer click en: “Administrador de nombres”

Página | 128
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

2. Luego aparecerá una nueva ventana donde colocaremos el nombre de


la matriz luego la hoja, el rango de la matriz y por último hacer click en aceptar.

PROGRAMACION EN LINGO EXPORTANDO DATOS EN EXCEL

!PROBLEMA LINGO;

MODEL:

SETS:

FABRICAS / A B C/:; !Tipo de fábrica: i= A, B, C ;

PRODUCTOS /P1 P2 P3/:; !Tipo de producto: j= P1, P2, P3 ;

CENTRO /S L/:; !Tipo de centro de distribución: k=supermercado (S), librería (L);

CIUDAD /T C/:; !Ciudades: l=Tacna (T), Cuzco (Cz);

!REQUERIMIENTO DE PRODUCTOS PARA UNA FABRICA, EN UN CENTRO DE


DISTRIBUCION, EN UNA CIUDAD,;

FPCC(FABRICAS,PRODUCTOS,CENTRO,CIUDAD):PRECIO,X;

FABPRO(FABRICAS,PRODUCTOS):CAPACIDAD;

PROCIU(PRODUCTOS,CIUDAD):DEMANDA;

CENCIUDAD(CENTRO,CIUDAD):CAPACIDAD2;

ENDSETS

DATA:

PRECIO,CAPACIDAD,DEMANDA,CAPACIDAD2=@OLE('C:\LINGO11\Samples\PROBLEMA
1.XLS','precio','capacidad','demanda','capacidad1');

ENDDATA

Página | 129
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

MAX=FO;

FO=@SUM(FPCC:PRECIO*X);

@FOR(FABPRO(J,I):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACIDAD(J,I));

!RESTRICCIONES DE LA CAPACIDAD DE CADA RECURSO;

@FOR(PROCIU(J,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))>=DEMANDA(J,L));

!RESTRICCIONES DE LA DEMANDA DE CADA RECURSO;

@FOR(CENCIUDAD(K,L):@SUM(FPCC(I,J,K,L):X(I,J,K,L))<=CAPACIDAD2(K,L));

!RESTRICCIONES DE KA CAPACIDAD DE CADA RECURSO;

RESULTADOS EN LA TABLA DE EXCEL:

TACNA CUZCO

SUPERMERCADO LIBRERÍA SUPERMERCADO LIBRERÍA

P1 P2 P3 P1 P2 P3 P1 P2 P3 P1 P2 P3

FABRICA A 0 0 75 0 0 5 55 0 0 65 0 0

FABRICA B 0 1 0 64 3 67 0 0 75 0 0 0

FABRICA C 6 2 0 0 0 0 0 77 66 0 0 9

FO 8260

Página | 130
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

6. CONCLUSIONES

 Se ha presentado una práctica de optimización empleando LINGO. La


experiencia docente derivada de su utilización ha puesto de manifiesto la
idoneidad del empleo de dicha herramienta. En particular, su aplicación en
la resolución de problemas relacionados con el campo empresarial ha
permitido facilitar su asimilación por el alumnado, alcanzando un mejor nivel
de comprensión y un buen grado de satisfacción por su parte.

 Las herramientas matemáticas como LINGO permiten que alumnos con


unos conocimientos elementales en optimización puedan resolver una
amplia gama de problemas. En aquellas titulaciones en las cuales las
matemáticas no son el fin en sí mismas y se reducen a una herramienta de
trabajo, resulta de mayor interés la formulación de los problemas, la
interpretación y el análisis de las soluciones, en detrimento del método
empleado en la obtención de dicha solución.

 En los problemas estudiados se ha hecho una simplificación importante que


debe puntualizarse. En el problema sin restricciones de capacidad se
conoce el coste de transporte por unidad entre las plantas y los almacenes.
En general, este coste puede venir dado en función de la distancia recorrida
a lo largo de cierta red que represente las comunicaciones entre ciudades.
En tal caso, habría que resolver en primer lugar el problema de las
distancias mínimas en la red de transporte y agregar los costes a lo largo
del camino mínimo. En el problema con capacidad, se conoce c y r para
cada par origen-destino, aunque en general sobre una red de transporte
habría que tener en cuenta estos parámetros a lo largo de todas las aristas
que pertenecen al camino mínimo.

Página | 131
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

7. BIBLIOGRAFÍA

 Bazaraa, M.S., Sherali, H.D. y Shetty, C.M. (1993): Nonlinear


programming. Theory and algorithms (2ª edición). Ed. John Wiley.
 Chiang, A.C. (1.987): Métodos Fundamentales de Economía Matemática
(3ª edición).
 Ed. McGraw-Hill.
 Haeussler, E.I. y Paul, R.S. (1997): Matemáticas para la Administración,
Economía, Ciencias Sociales y de la Vida (8ª edición). Ed. Prentice-Hall.
 Manual de usuario (1996). Solver Suite: LINDO, LINGO and WHAT’S
BEST, Lindo Systems Inc.
 Suárez Vega, R., Dorta González, P., González Martel, C. , Andrada Félix,
J. y Hernández Guerra, J. (2001): Problemas de Algebra Lineal para la
Economía y la Empresa. Ejercicios resueltos, cuestiones y tratamiento
con DERIVE y LINGO. Ed. El Libro Técnico.
 Sydsaeter, K. y Hammond, P.J. (1996). Matemáticas para el Análisis
Económico. Ed. Prentice-Hall.
 Helmut Kopka and Patrick W. Dale. A Guide to LATEX. Addison-Wesley,
Harlow, England, 3rd edition, 1999.
 Gerson Lachtermacher. Pesquisa Operacional na Tomada de Decisões.
Editora Campus, Rio de Janeiro, 2002.
 Lindo Systems Inc., Chicago. LINGO: the modeling language and
optmizer, 2001.
 http://books.google.com.pe/books?id=8IMSA6DEaRoC&pg=PA506&lpg=
PA506&dq=La+Father+Domino+Company+vende+copiadoras&source=
bl&ots=MGl20VhBRl&sig=DJKAJvZY7UKCBmkxuORYqTF3YqY&hl=es&
ei=-
ad6S_r2LqiTtgeaz5HrCw&sa=X&oi=book_result&ct=result&resnum=1&v
ed=0CAcQ6AEwAA#v=onepage&q=La%20Father%20Domino%20Comp
any%20vende%20copiadoras&f=false

Página | 132

Potrebbero piacerti anche