Anda di halaman 1dari 8

Optimitzaci

Assignatura dEstadstica, UAB

Curs 2006/2007

LINGO - Parte 1
Introduccin a LINGO
Una de las caractersticas ms potentes de LINGO, es el lenguaje de modelacin matemtica. Este
lenguaje permite expresar el problema de una manera natural, similar a la notacin matemtica
standard. Adems de poder ingresar cada trmino de cada restriccin explcitamente, LINGO
permite expresar una serie de restricciones similares en una sola sentencia compacta.

Ejemplo 1
Una fbrica que tiene dos plantas localizadas en las ciudades A y B, necesita suministrar un
determinado producto a tres almacenes situados en las ciudades C, D y E. Las plantas A y B pueden
suministrar semanalmente 80 y 90 unidades del producto, respectivamente. Los almacenes
necesitan semanalmente 40, 50 y 80 unidades del producto para satisfacer su demanda. Los costes
de transporte por unidad de producto se recogen en la tabla siguiente:
Ciuda
d
A
B

C D E
5

El problema consiste en determinar cuntas unidades del producto se debern transportar desde
cada planta a cada almacn, de forma que se minimice el coste total de transporte.
Denotando por AC, AD, AE las unidades enviadas de la planta A hacia los almacenes C, D y E,
respectivamente, y por BC, BD, BE las unidades enviadas de la planta B hacia los almacenes C, D y
E, respectivamente, la formulacin del problema de programacin lineal asociado es la siguiente:
Minimizar 5AC+3AD+4AE+6BC+7BD+2BE
Sujeto a:
AC+AD+AE<= 80
BC+BD+BE<=90
AC+BC>=40
AD+BD>=50
AE+BE>=80
AC, AD, AE, BC, BD, BE>=0
Las dos primeras restricciones imponen que la cantidad suministrada en las plantas A
y B no supere su disponibilidad semanal, mientras que las tres siguientes imponen que
se cubra el requerimiento mnimo en los almacenes C, D y E.

Modelo en LINGO
La escritura del modelo en LINGO se basa en las siguientes reglas:
a) La funcin objetivo va precedida de max= o min= y finaliza en ; al igual que cada
una de las restricciones.
b) Las desigualdades pueden escribirse de forma estricta, aunque LINGO las interpreta siempre
como <= o >=, segn el caso.
c) No es necesario introducir las restricciones de no negatividad, si las hubiera, ya que LINGO
las considera por defecto.
d) Es necesario indicar el producto con *.
e) LINGO no distingue entre maysculas y minsculas, por lo que es lo mismo ESTADISTICA
que estadstica y que EsTADstiCA.
f) Los nombres de las variables deben comenzar con un carcter alfabtico (A-Z), los
siguientes caracteres pueden ser alfabticos, numricos o subrayado (_). Los nombres
pueden ser de hasta 32 caracteres de longitud.
Ejercicio 1
Abra el editor del LINGO y escriba el modelo matemtico del problema del ejemplo 1, teniendo en
cuenta las reglas del LINGO.
El modelo puede escribirse como sigue:
MIN = 5*AC+3*AD+4*AE+6*BC+7*BD+2*BE;
AC+AD+AE<80;
BC+BD+BE<90;
AC+BC>40;
AD+BD>50;
AE+BE>80;
Nota:
a) Cada lnea en LINGO finaliza con un punto y coma. Los punto y coma son requeridos. El
modelo no se resolver si falta algn punto y coma.
b) Una expresin puede abarcar mas de una lnea, por ejemplo:
MIN = 5*AC+3*AD+4*AE
+6*BC+7*BD+2*BE;
Se pueden introducir comentarios, que sern ignorados por LINGO, comenzando con un signo de
exclamacin ! y terminando con un punto y coma.
Los comentarios tambin pueden ocupar varias lneas.
Por ejemplo:
AC+AD+AE<80; ! Esto es
Un comentario;
AC+AD ! Esto es un comentario en el medio de una restriccin; +AE<80 ;

Adems se puede asignar un nombre a cada restriccin, como en el LINDO.


Por ejemplo, escribiendo
[R1] AC+AD+AE<= 80
[R2] BC+BD+BE<=90
La primera restriccin de nuestro ejemplo tiene ya el nombre R1 y la segunda el nombre R2.
El siguiente paso es pedirle a LINGO que resuelva el problema. Para ello es suficiente con hacer
clic sobre el botn Solve (el que tiene forma de diana, como en el LINDO), o bien seleccionar esta
opcin en la barra de mens:

LINGO intentar primero compilar el modelo formulado (para determinar si est bien planteado o no) y, en el caso
de que la formulacin sea incorrecta (ya sea desde un punto de vista matemtico o de sintaxis), nos devolver una
ventana con la siguiente mensaje:
LINGO error message
.

Si no hay errores en la formulacin del problema durante la etapa de compilacin, LINGO invocar
al mdulo de resolucin adecuado para buscar la solucin ptima.
En la ventana STATUS de LINGO (ventana de estado) se puede monitorear el proceso de
resolucin y las dimensiones del modelo:

El recuadro "Variables" muestra el numero total de variables del modelo, las variables que son
no lineales y las enteras. Una variable es considerada no lineal si es parte de una restriccin no
3

lineal en el modelo. Mientras mas variables no lineales y enteras contenga el modelo, mas difcil
ser resolverlo de forma ptima en un tiempo razonable. Los modelos lineales puros sin variables
enteras tienden a resolverse mas rpidamente.
La cuenta de variables no incluye las que LINGO determina como de valor fijo, por ejemplo: dadas
las restricciones
X = 1;
X + Y = 3;
LINGO determina por la primera restriccin que X est fija en 1, y, usando esta informacin,
deduce que Y est fija en 2. X e Y sern entonces excluidas del modelo.
En el recuadro "Constraints" se muestra la cantidad total de restricciones y el nmero de stos
que son no lineales. Una restriccin es considerada no lineal si una o mas variables aparecen de
forma no lineal en la restriccin.
El recuadro "Nonzeros" muestra el total de coeficientes distintos de cero que aparecen en el
modelo y el nmero de estos que aparecen en variables no lineales.
El recuadro "Generator Memory Used" muestra la cantidad de memoria que est utilizando
LINGO para resolver el modelo.
El recuadro "Elapsed Runtime" muestra el tiempo total utilizado para generar y resolver el
modelo.
El recuadro "Optinizer Status" muestra el estado actual del optimizador:
Campo
State

Iterations
Infeasibility
Objetive
Best IP
IP Bound

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

Cuando LINGO termine de resolver el modelo, crear una nueva ventana con el ttulo Solution
Report (Informe de la solucin), conteniendo los detalles de la solucin:

Costo Reducido:
En el informe de la solucin se encuentra un valor de costo reducido para cada variable. Como
hemos visto en LINDO, hay dos interpretaciones vlidas y equivalentes para el costo reducido.
a) Primero se puede interpretar como el monto por el cual el coeficiente objetivo de la variable
se debera incrementar antes de hacerse provechoso darle a la variable en cuestin un valor
positivo en la solucin ptima. Por ejemplo, si la variable tuviera un costo reducido de 10,
el coeficiente objetivo de esta variable deber incrementarse en 10 unidades en un problema
de maximizacin o disminuirse en 10 unidades en un problema de minimizacin para
convertirse en una alternativa atractiva.
Una variable en la solucin ptima
automticamente tiene un costo reducido de 0.
b) Segundo, el costo reducido de una variable se puede interpretar como el monto de
penalizacin que habr que pagar por introducir una unidad de esa variable en la solucin.
Como antes, si la variable tuviera un costo reducido de 10, habr que pagar una penalizacin
de 10 unidades para introducir la variable en la solucin. En otras palabras, el valor objetivo
caer en 10 unidades en un modelo de maximizacin, o se incrementar 10 unidades en un
problema de minimizacin.
Los costos reducidos son vlidos slo dentro de un rango de valores.

Holgura o excedente
La columna Slack or Surplus en el informe de la solucin de LINGO (como en LINDO) muestra
que tan cerca se est de satisfacer una restriccin como una igualdad. Esta cantidad, en
restricciones de menor o igual, se denomina generalmente holgura. En restricciones de mayor o
igual se la llama excedente.
Si una restriccin es exactamente satisfecha como una igualdad, la holgura o excedente valdr cero.
Si una restriccin es violada, este valor ser negativo. Esto ayuda a encontrar las restricciones
violadas cuando en el modelo no existe un conjunto de valores para las variables que satisfacen
simultneamente todas las restricciones.
Precio Dual.
El informe de la solucin de LINGO tambin da un valor de precio dual para cada restriccin. El
precio dual se puede interpretar como el monto en que la funcin objetivo mejorar si el segundo
miembro de la restriccin se incrementase una unidad.
Al igual que los costos reducidos, los precios duales son vlidos slo dentro de un rango de valores.
Como puede observarse en la ventana de estado del LINGO, para minimizar los costes de transporte
han de enviarse 30 unidades de la planta A al almacn C y el resto, es decir 50, al almacn D.
En la planta B se ha de asignar 10 unidades al almacn C y el resto (80) al E.
El coste de transporte mnimo es 520.
Como puede observarse, todas las holguras son nulas.

Anlisis de sensibilidad
Para hacer un anlisis de sensibilidad de nuestro ejemplo hay que seleccionar el comando Range del
men del LINGO
Aparece la ventana siguiente:

Se puede observar
a) el rango de variacin permitido de cada coeficiente (tolerancia) en la funcin objetivo
(objective coefficient ranges) para que, permaneciendo inalterados el resto de ellos, la
solucin del problema primal no cambie.
b) el rango de variacin permitido (tolerancia) en el trmino independiente de cada
restricciones (righthand side changes`) para que, permaneciendo inalterados el resto, la
solucin siga siendo la misma.
Por ejemplo, el coste unitario de transporte entre las ciudades A y C puede variar en el intervalo
[2,6] sin que la solucin del problema cambie.
(Para la variable AC=5.0 en el ptimo, Allowable Coefficient Increase=1.0 y Allowable
Coefficient Decrease =3.0)
De forma similar, la produccin en la planta A puede variar en el intervalo [80,90] y los precios
duales seguiran siendo los mismos.
(RHS valor en el lado derecho de la primera restriccin= 80, Allowable RHS Increase=10.0
y Allowable RHS Decrease =0.0)

Ejercicio 2
Una empresa de refrescos produce dos tipos de bebidas con sabor de naranja: de bajo contenido en
azcar y de contenido normal, denominadas naranjada ligera y naranjada extra, respectivamente.
Para su fabricacin se emplean tres procesos productivos (designados como P1, P2 y P3) siendo, en
cada uno de ellos, el nmero de horas empleado por unidad de bebida producida los que figuran en
la tabla, en la cual se recogen tambin los beneficios unitarios por unidad vendida de refresco.
Proceso

Naranjada ligera Naranjada extra

P1

P2

P3

Beneficio unitario

6.5

Las caractersticas del proceso de produccin dan lugar a que por cada unidad de naranjada ligera se
generen 3 unidades de residuo que deben eliminarse, con un coste unitario de 0.25 euros.
Anlogamente, por cada unidad de naranjada extra se obtienen 1.5 unidades de cierto subproducto,
que puede venderse con un beneficio unitario de 1.5 euros. Sin embargo, la cantidad sobrante de
subproducto que no haya podido colocarse en el mercado debe eliminarse, con un coste unitario de
0.75 euro.
La demanda prevista de subproducto es, como mucho, de 15 unidades y que los tiempos de
produccin disponibles son de 350 horas para P1, 300 horas para P2 y 320 horas para P3.
a) Formular un problema lineal que proporcione el plan de produccin con mximo beneficio.
Supongamos que
NL : unidades de naranjada ligera que se van a fabricar
NE : unidades de naranjada extra que se van a fabricar
RE : unidades de residuo que se deben eliminar
SB : unidades de subproducto (de naranjada extra) que se van a producir
SE : unidades de subproducto que no haya podido colocarse en el mercado
El beneficio de la compaa (funcin objetivo) es 6.5*NL+8*NE+1.5*SB
-0.25*RE-0.75*SE
Y las restricciones del problema son:
6*NL+8*NE<=350 (horas disponibles para P1)
4*NL+3*NE<=300 (horas disponibles para P2)
5*NL+4*NE<=320 (horas disponibles para P3)
SB<=15
(demanda prevista de subproducto)
RE=3*NL
(por cada unidad de naranjada ligera se generen 3 unidades de residuo que deben eliminarse)
SB+SE=1.5*NE
(por cada unidad de naranjada extra se obtienen 1.5 unidades de subproducto)

Anda mungkin juga menyukai