Está en la página 1de 132

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..................................................................................................10
2.2.1. MENÚES.......................................................................................................................10
2.2.2. FUNCIONES:................................................................................................................13
2.3. INTRODUCCIÓN BÁSICA DE UN MODELO EN LINGO...............................................15
2.4. INTERPRETACIÓN DE LA SOLUCIÓN...........................................................................17
2.5. DEFINICIÓN DE CONJUNTOS..........................................................................................20
2.6. ECUACIONES CON CONJUNTOS...................................................................................25
2.7. MÁS SOBRE CONJUNTOS...............................................................................................27
3. CAPÍTULO 1: PROBLEMAS DE PROGRAMACIÓN LINEAL...............................................28
3.1. PROBLEMAS DE PRODUCCIÓN.....................................................................................28
3.2. PROBLEMAS DE MEZCLAS.............................................................................................41
3.3. PROBLEMAS DE FINANZAS............................................................................................49
3.4. PROBLEMAS DE TRANSPORTE.....................................................................................59
3.5. PROBLEMAS DE INVERSIÓN...........................................................................................79
4. PROBLEMAS DE PROGRAMACIÓN ENTERA CON LINGO...............................................80
4.1. Problema 1............................................................................................................................80
4.2. Problema 2............................................................................................................................81
4.3. Problema 3............................................................................................................................84
4.4. Problema 4............................................................................................................................88
4.5. Problema 5............................................................................................................................91
4.6. Problema 6............................................................................................................................95
4.7. Problema 7............................................................................................................................97
4.8. Problema 8..........................................................................................................................100
5. PROBLEMA APLICADO A LA ASIGNACIÓN IMPORTANDO DE EXCEL......................103
5.1. Problema 1..........................................................................................................................103
5.2. Problema 2 – Presupuesto..............................................................................................114
5.3. Problema 3 – Proyectos..................................................................................................119
5.4. Problema 4 – Cuatro variables.......................................................................................124
6. CONCLUSIONES........................................................................................................................132
7. BIBLIOGRAFÍA...........................................................................................................................133

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

Página | 6
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

representan, respectivamente, los costos unitarios de transporte y cantidad


transportada de las fabricas a los centros.

Para los datos:


Los valores de los atributos de los elementos de los conjuntos, tienen la
sintaxis siguiente:
DATA:
CAPACIDAD= 30, 20;
DEMANDA = 10, 25, 15;
C = 2, 4, 6,
7, 10, 1;
ENDDATA

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

Página | 7
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

La formulación completa es como sigue:


MODEL:
! 2 FABRICAS, 3 CENTROS, problema de transporte;

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

Página | 8
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Variable Value Reduced Cost


CAPACIDAD( F1) 30.00000 0.0000000
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
Página | 12
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

del conjunto y operadores de igualdad-desigualdad ( <;=;>; <= ; y >=) para


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
Existencia 50 000 80 000 40 000 10 000
s
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
Página | 18
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

puede 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
Página | 21
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

veremos que 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 a 111, 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

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


Página | 25
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

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


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

Página | 26
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

∑ X i∗Precio de venta
i=1

Entonces tendremos: Max Z=4X1+3X2


Sujeto a:
2

∑ X i∗Componentes ( j)≤ Disponibilidad (i , j)


i=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
Infeasibilities: 0.000000
Total solver iterations: 2
Elapsed runtime seconds: 0.49

Página | 27
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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 X 1=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)
1 100 300
2 150 350
Página | 28
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

∑ X i∗Costo de producción
i=1

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


Sujeto a:
3 3

∑ X i ≤ ∑ Disponibilidad i
i=1 i=1

∑ X i ≤ 700
i=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 y 4 quieren comprar la mayor cantidad posible de las unidades

Página | 29
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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
Fabrica 2 64
Fabrica 3 68 67 65
62
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:

Página | 30
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

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

Página | 31
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

∑ X i∗Precio de venta
i=1

Entonces tendremos: Max Z=4X1+3X2


Sujeto a:
2

∑ X i∗Componentes ( j)≤ Disponibilidad (i , j)


i=1

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


El desarrollo en lingo es:
Sets:
Solvente/1..2/:;
Página | 32
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

Departamento/ mezcla, purificacion/: disponibilidad_horas;


Produccion(Solvente):cantidad, utilidad;
Horas_de_consumo(Solvente,Departamento):Horas;
Endsets

Data:
utilidad = 350, 450;
horas = 2,1,
1,2;
disponibilidad_horas=190, 292;
Enddata

Max=@sum (Produccion:cantidad*utilidad);
@for(Departamento(j):@sum(Produccion(i):cantidad(i)*horas(i,j))<=disponibilidad_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

Página | 33
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

ó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).
Planta 1 Planta 2
Producto
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

Página | 34
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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


ESO(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)))) );

Página | 35
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

@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);

@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(PROC


ESO(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)))

Página | 36
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

-
@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);

@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
Página | 37
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

Página | 38
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

Página | 39
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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
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
∑ X i ∗ganacia ( i )
FUNCION OBJETIVO: i=1 ;donde ganancia es la
utilidad ya sea del Producto airtex, extendex, resistex.
Entonces: MAX Z = 7*X1 + 7*X2 + 6*X3

Página | 40
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

SUJETO A:
3
∑ X i >=COMPROMISO ( i )
i=1

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


Para i=2-----X2 >=500
Para i=3-----X3 >=400
3
∑ X i ∗requerimento ( i , j )<= inventario( j )∗16
i=1 , 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
Página | 41
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

Model Class: LP

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

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

Página | 42
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

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 ∗CG i=0 ; donde
i=1 CGi es la cantidad de grasa ya sea en Pavo ,
papas ,espinacas ,pastel, espagueti.

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

Página | 43
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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


5
∑ X i <= MAXIMO i / 100 ; donde
i=1 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 -- X 2<=300/100
Para i=3 -- X 3<=200/100
Para i=4 -- X 4<=100/100
Para i=5 -- X 5<=100/100
Restricción de la cantidad de nutriente por pataje que debe haber como mínimo:

5
∑ X i ∗nutriente j , i >= MINIMO j
i=1 , donde NUTRIENTEj,i . j ,es la cantidad de
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


Página | 44
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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;

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
Página | 45
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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
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
Página | 46
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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
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%
Página | 47
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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.
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
Página | 48
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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)

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
Página | 49
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

Página | 50
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

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
Página | 51
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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.

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:

Página | 52
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

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
Página | 53
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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
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
Página | 54
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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.
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
Página | 55
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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
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
Página | 56
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

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)

Página | 57
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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


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

Proveedo Ventanilla Villa El Chorrillos


r 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
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
Página | 58
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

Página | 59
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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:
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):costo2(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

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.
Página | 61
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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
NUMERO DE UNIDADES DE MATERIA PRIMA (M) POR UNIDAD DE PAPEL
(K) EN MAQUINA (l)

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

Página | 62
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

TIEMPO DISPONIBLE DE LA MAQUINA


TIPO (l) EN FABRICA (i)
MAQUINA(l)

Página | 63
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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.5 1.6 1.50 1.2 1.25 1.2 1.23 1.50 155 1.2 2.2 3.2
5 2 5

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.2 1.8 1.9 2.2 1.2 1.25 1.6 1.5 1.4
5 5

4 1.5 1.65 1.2 1.3 1.20 1.6 1.5 1.5 1.6 1.10 1.15 1.25 1.2 1.25 1.10
5 5 0

5 1.25 1.2 1.10 1.1 1.10 1.2 1.3 1.4 1.5 1.5 1.4 1.2 1.3 1.2 1.10
5

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


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

Página | 64
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

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

Página | 65
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

r klm = Número de unidades de materia prima m necesarias para producir 1


unidad del tipo de papel k en la maquina tipo l.
R ℑ = Número de unidades de materia prima m disponibles en la planta i,
c kl = Número de unidades de capacidad de la máquina tipo l que producirán una
unidad de papel tipo k,
C il= 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,
T ijk = costo de transporte de cada unidad de papel tipo k enviada de la planta i
al cliente j.
Modelo matemático:
Minimizar z=costoProducción+ costosTransportación

z=∑ Pikl + ∑ T ijk


ikl ijk

Sujeto a:

∑ r kml ≤ R ℑ ; donde l=1 ,… , 3 , k =1, … 5 , m=1 , … 4


kml

c
∑ c il =∑ d jk ; donde l=1 , … ,3 , k =1 , … ,5 , j=1, … , 1000
il kl jk

∑ c kl=∑ cil ; donde l=1 , … , 3 , k=1 , … , 5


kl il

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) ;
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;
Página | 66
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

!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
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
Página | 67
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

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.
Página | 68
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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+
estudiantes 222)+1*( estudiantes 221+ estudiantes 222)+1*( estudiantes 312+1*
estudiantes 322)
Solución con LINGO:
SETS:
Página | 69
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

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
Página | 70
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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 | 71
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
∑ ∑ ∑ ∑ X I , J , K , L∗PRECIO I , J , K , L
MAX I= A , J =TC K=SM L=P 1 , donde PRECIO es el precio
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:

Página | 72
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

L P4
∑ ∑ X I ,J ,K ,L
K=SM , L= P 1

Para I=A,J=P1:

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
∑ ∑ X I ,J ,K ,L
I= A , K=SM

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;
Página | 73
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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 ;
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
∑ ∑ X I ,J ,K ,L
I= A , L= P1

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:

Página | 74
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

Página | 75
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

END

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

Página | 76
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

3.5. PROBLEMAS DE INVERSIÓN

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

Página | 77
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

4. PROBLEMAS DE PROGRAMACIÓN ENTERA CON


LINGO

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

Página | 78
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

Página | 79
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

X1 <= 6 000Y1
X2 <= 7 000Y2
X3 <= 6 000Y3

X1, X2, X3 > 0


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;

Página | 80
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

MODEL:

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

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


Página | 81
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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.
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
1 80 30
2 70 5
3 90 10
4 50 40
5 60 30
Distrito Escuela de Escuela de
bachillerato 1 bachillerato 2
1 1 2
2 0.5 1.7
3 0.8 0.8
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:

Página | 82
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

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)
Página | 83
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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:

! 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));

Página | 84
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

! 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);

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

Página | 85
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

Página | 86
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

X( 1) <= 500

X( 2) <= 900

X( 3) <= 400

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;

Página | 87
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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;

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

Página | 88
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

Página | 89
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

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

Página | 90
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

MODEL:

TITLE MODELO DE BALINSKI;

!Definicion de Conjuntos;

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;

Página | 91
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

demanda = 30350, 60700, 45500, 160000;

costo_transporte = 200, 450, 290, 370,

210, 460, 310, 380,

220, 470, 310, 390,

140, 170, 250, 180,

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

Página | 92
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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
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.
Página | 93
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

EL MODELO EN LINGO ES:

Model:

Sets:

fabrica/fpa,fga,fpb,fgb,feb/:capacidad,costo_construccion, costo_manufactura,
construccion;

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

rutas(fabrica, region): costo, cantidad;

Endsets

Data:

capacidad = 600, 1200, 600, 1200, 2000;

costo_construccion = 1000, 1500, 1200, 1600, 2000;

costo_manufactura = 5, 4, 5, 4, 3.5;

requerimiento = 500, 200, 700, 800;

costo = 1, 2, 3, 4,

1, 2, 3, 4,

2, 3, 2, 3,

2, 3, 2, 3,

2, 3, 2, 3;

Enddata

Min=@sum(rutas:costo*cantidad)+@sum(fabrica: costo_construccion*construccion)

+@sum(fabrica(i):@sum(rutas(i,j):costo_manufactura(i)*cantidad(i,j)));

@for(region(j):@sum(rutas(i,j) : cantidad(i,j)) >= requerimiento(j));

@for(fabrica(i):@sum(rutas (i,j) : cantidad(i,j))<=capacidad(i)*construccion(i));

@for(fabrica(i):@sum(rutas(i,j) : cantidad(i,j))<=capacidad(i));

@for(fabrica:@bin(construccion));

End

LA SOLUCIÓN DE LINGO ES:

Página | 94
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

Página | 95
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

Página | 96
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

17,19,22,

19,25,29;

Enddata

Max=@sum(year:b);

¡FUNCION OBJETIVO;

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

Página | 97
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

Página | 98
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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)

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

Página | 99
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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;

costo1 = 350 ,330 ,310 ,280;

carbono1 = 0.05, 0.04 ,0.05 ,0.03;

molibdeno1 = 0.03, 0.03, 0.04, 0.04;

costo2 = 500, 450, 400;

carbono2 = 0.08, 0.07, 0.06;

molibdeno2 = 0.06, 0.07, 0.00;

costo3 = 100;

carbono3 = 0.03;

molibdeno3 = 0.09;

Enddata

!funcion objetivo;

min = @sum(lingote(i):costo1(i)*peso(i)*x(i))+ @sum(aleacion(j):costo2(j)*y(j) )+


@sum(desperdicio(k):costo3(k)*w(k));

!restriccion del pedido;

@sum(lingote(i):x(i)*peso(i))+ @sum(aleacion(j):y(j)) + @sum(desperdicio(k):w(k)) =25;

!restriccion del % de carbono;

@sum(lingote(i):x(i)*peso(i)*carbono1(i))+@sum(aleacion(j):y(j)*carbono2(j))+

@sum(desperdicio(k):w(k)*carbono3(k)) =1.25;

!restriccion del % de molibdeno;

@sum(lingote(i):x(i)*peso(i)*molibdeno1(i))+@sum(aleacion(j):y(j)*molibdeno2(j))+

@sum(desperdicio(k):w(k)*molibdeno3(k)) =1.25;

!restriccion del lingote;

@sum(lingote(i):x(i))=1;

!restriccion de las aleaciones;

@sum(aleacion(j):y(j))>0;

!restriccion de los desperdicios;

@sum(desperdicio(k):w(k))>0;

!restriccion del binario;

@for(lingote(i):@bin (x)); Página | 100

End
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).
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

Página | 101
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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.

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

∑ ∑ X i , j ≤ REPRE j
j=1 i=1

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


Y MERCADO
6 4

∑ ∑ X i , j ≥ REPREMIN i
i=1 j=1

VENTAS SIN REPRESENTANTE POR MERCADO

Página | 102
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

6 4

∑ ∑ NO i ×T i , j =W i
i=1 j=1

VENTAS CON REPRESENTANTE POR MERCADO


Zi , j × H i , j = X i , j

6 4

∑ ∑ SI i × X i , j=Y i
i=1 j=1

SALARIO DE REPRESENTANTES
6 4
8400 × ∑ ∑ X i , j=COSTO
i =1 j=1

FUNCION OBJETIVO
6 6
MAX=70× ∑ W i + ∑ Y i−COSTO
i=1 i=1

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
Página | 103
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

representante y de acuerdo a la tabla 1 solo se venderá 70 pares de


zapatos.

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.

INGRESO=70∗(130 X 11 +70+70+130 X 14+ 40+120 X 22 +40+ 40+80+ 80+130 X 33 +130 X 34 +110 X 41+
Egresos:
Los egresos serian lo que se paga a cada uno de los representantes esto sería:

Costo=8400∗( X 11 + X 14 + 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:

Página | 104
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

MAX=INGRESO −COSTO
MAX=70∗( 130 X 11 +70+70+130 X 14 + 40+120 X 22 +40+ 40+80+ 80+130 X 33 +130 X 34 +110 X 41+70+110 X

MAX=700 X 11 +700 X 14 +700 X 33 +700 X 34−700 X 41−700 X 43−700 X 44 44−700 X 54 +140 X 61 +140 X 62 +14

RESTRICCIONES:
Cantidad mínima de los representantes de cada fábrica
X 11 + X 41 + X 61 <¿ 1 0

X 22 + X 62 <¿ 8

X 33 + X 43+ X 63< ¿ 6

X 14 + X 34 + X 44 + X 54< ¿ 9
Cantidad mínima de representante por mercado
X 11 + X 14 >¿ 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;

Página | 105
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

ENDSETS

Creando Hij y Tij;

@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

∑ ∑ X i , j ≤ REPRE j
j=1 i=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 | 106
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

6 4

∑ ∑ X i , j ≥ REPREMIN i
i=1 j=1

!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


6 4

∑ ∑ NO i ×T i , j =W i
i=1 j=1

!VENTAS SIN REPRESENTANTE POR MERCADO;


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

Ventas Con Representante Por Mercado


Zi , j × H i , j = X i , j
6 4

∑ ∑ SI i × X i , j=Y i
i=1 j=1

!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 × ∑ ∑ X i , j=COSTO
i =1 j=1

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

Función Objetivo

(∑ )
6 6
MAX=70× W i+ ∑ Y i −COSTO
i =1 i=1
Página | 107
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
Página | 108
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

de celdas que contienen datos. Los nombres de los rangos se pueden


definir 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 | 109
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);!
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);

!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 | 110
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

END

CANT. DE PIURA AYABA PAITA SECHU


REPRESENTAN CA RA
TES
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

Reporte de la solución exportando datos a excel:

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
límite anual, puede usar esa diferencia para el siguiente año. Cada
Página | 111
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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)

Sucursal Proyecto Periodo Cantidad mínima

Página | 112
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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 | 113
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
MAX=∑ ∑ ∑ Tasai , j ,k x X i , j , k
i=1 j=1 k=1

El LINGO respectivo:

Página | 114
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ínima' );

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:
Página | 115
@OLE('J:\OPE\LABO\
DATA2.xlsx','FO','SOBRANTE','ASIGNACION' )=FO,SOBRANTE,ASIGNACION;

ENDDATA
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

REPORTE DE LA SOLUCIÓN EXPORTANDO DATOS A EXCEL :

UTILIDAD EN 3 15.2 millone


AÑOS 4 s

EXCEDENTE DE SUCURSALES POR AÑOS


SUCURS 1 2 3
AL
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
TRUJILLO 10 9 8 PROYECTO 2
LIMA 5 4 9 1 2 3
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 | 116
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 | 117
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 | 118
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 | 119
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 | 120
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 | 121
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 | 122
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:
C P3 L Cz

∑ ∑ ∑ ∑ Xijkl∗PRECIOijkl
i= A j=P 1 k=S l =T

Sujeto a:
Capacidad de producción:
L P3

∑ ∑ Xijkl
k=SM l= P 1

Demanda:
C L

∑ ∑ Xijkl
i= A k=S

Capacidad de los centros de distribución:


C P3

∑∑ Xijkl
i= A j=P 1

1) El ejercicio en el programa Lingo


!PROBLEMA LINGO;
Página | 123
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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

2) RESULTADOS

Página | 124
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

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 | 125
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 | 126
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 | 127
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 | 128
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 | 129
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 | 130
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+C
ompany+vende+copiadoras&source=bl&ots=MGl20VhBRl&sig=DJKAJvZ
Y7UKCBmkxuORYqTF3YqY&hl=es&ei=-
ad6S_r2LqiTtgeaz5HrCw&sa=X&oi=book_result&ct=result&resnum=1&v
ed=0CAcQ6AEwAA#v=onepage&q=La%20Father%20Domino
%20Company%20vende%20copiadoras&f=false

Página | 131

También podría gustarte