Vous êtes sur la page 1sur 8

Aprendiendo LINGO

INTRODUCCIN A LINGO - 1
Introduccin a LINGO
LINGO (LINear Generalize Optimizer e! una "er!#til $erramienta para la %ormulacin&
re!olucin ' an#li!i! de pro(lema! de pro)ramacin lineal ' no lineal* +!to !i)ni%ica ,ue
u!ando LINGO e! po!i(le re!ol"er !i!tema! de ecuacione! con una o "aria! "aria(le!
independiente! (modelo! directo! o (ien una o "aria! "aria(le! interdependiente!
(optimizacin multio(-eti"o !olamente in)re!ando como m#.imo una! decena! de l/nea!*
LINGO e!t# di!poni(le para DO0& 1indo2! ' Linu.* Al mar)en de ,ue la! inter%ace!
pueden di%erir& la! "er!ione! para cada una de e!ta! plata%orma! tienen e.actamente la!
mi!ma! %uncionalidade!*
Uno de lo! ra!)o! m#! de!taca(le! de LINGO e! !u len)ua-e de modelado* +!te len)ua-e
permite e.pre!ar un pro(lema de una manera mu' !imilar a la notacin matem#tica
normal* Adem#! e! po!i(le e.pre!ar !umatoria!
1
mediante e.pre!ione! iterati"a!& lo cual
lle"a a modelo! ,ue !on m#! compacto! ' %#cile! de mantener* Otro a!pecto a de!tacar
del len)ua-e de modelado e! la !eccin de dato!& ,ue permite ai!lar lo! dato! de la
%ormulacin del modelo* 3or e!to LINGO puede leer dato! inclu!o de una $o-a de c#lculo
!eparada& (a!e de dato!& o arc$i"o de te.to* Con dato! independiente! del modelo& e! m#!
!imple $acer cam(io!& ' !e reduce! la! po!i(ilidade! de e,ui"ocar!e al plantear el modelo*
La "enta-a de la pro.imidad del len)ua-e de modelado con el len)ua-e del modelo
matem#tico e!t#ndar e! ,ue el alumno no de(e conocer dema!iado el len)ua-e de
modelado& !lo de(e !a(er plantear lo! modelo! matem#tico! de lo! pro(lema! a re!ol"er*
4o' d/a lo! 0ol"er! comerciale! m#! a"anzado!& tale! como CPLEX (el !ol"er por de%ault
de LINGO& pueden !er "i!to! como una ca-a ne)ra donde el u!uario puede en"iar modelo!
en )ran e!cala& con ciento! de mile! de "aria(le!& ' e!tar razona(lemente !e)uro ,ue el
pa,uete producir# una !olucin& !in interaccin e!pecial al)una por parte del u!uario* +l
tama5o de lo! pro(lema! ,ue la! corporacione! e!t#n tratando $an crecido
dram#ticamente* +!to !i)ni%ica ,ue lo! u!uario! nece!itan $erramienta! m#! a"anzada!
para recopilar ' admini!trar lo! dato!& %ormular modelo! ' en"iarlo! al !ol"er* A,u/ e!
donde un len)ua-e de modelado e! mu' "alio!o*

1 0uma! )eneralizada!*
In)* Ga(riel Arellano
APRENDIENDO LINGO
6 - INTRODUCCIN A LINGO
Comenzando a utilizar LINGO
La manera m#! directa de aprender a montar e! !u(ir!e al ca(allo& !i)uiendo e!a premi!a&
comenzaremo! nue!tro aprendiza-e mediante el planteo ' re!olucin de uno de lo!
pro(lema! cl#!ico! de la pro)ramacin lineal& me re%iero por !upue!to& al pro(lema de
mezcla de producto!*
Utilizaremo! como punto de partida el pro(lema de la 1'ndor Gla!! Co* 3lanteado como
e-emplo prototipo a lo lar)o de la ma'or/a de lo! cap/tulo! de la ,uinta edicin del li(ro
7Introduccin a la In"e!ti)acin de Operacione!8 de 4illier-Lie(erman*
+l planteo de e!te pro(lema !e puede leer en la !eccin 9*1 del mencionado li(ro ' !e
re!ume a continuacin:
La 1;NDOR GLA00 CO* produce art/culo! de "idrio de alta calidad& inclu'endo "entana! '
puerta! de "idrio* La empre!a tiene tre! planta! de produccin* Lo! marco! ' moldura! !e
$acen en la planta 1& lo! marco! de madera !e %a(rican en la planta 6 ' en la 9 !e produce
el "idrio ' !e en!am(lan lo! producto!*
De(ido a ,ue la! )anancia! !e $an reducido& la )erencia )eneral $a decidido reor)anizar
la l/nea de produccin* 0e de!continuar#n "ario! producto! no renta(le! ' !e de-ar# li(re
una parte de la capacidad de produccin para emprender la %a(ricacin de uno o do!
producto! nue"o! ,ue $an tendido demanda* Uno de lo! producto! propue!to! (3roducto
1 e! una puerta de "idrio de 6&< m con marco de aluminio* +l otro (3roducto 6 e! una
"entana )rande (1&9 m . 6 m para "idrio do(le con marco de madera* +l departamento de
mercadotecnia $a o(tenido como conclu!in ,ue la compa5/a puede "ender todo lo ,ue
pueda producir de cual,uiera de lo! producto!* 0in em(ar)o& como am(o! producto!
compiten por la mi!ma capacidad de produccin de la planta 9& no e! o("io ,u= mezcla de
lo! do! producto! !er/a ms redituable* 3or todo e!to& la )erencia pidi al departamento de
in"e!ti)acin de operacione! ,ue e!tudiara el a!unto*
De!pu=! de $acer al)una! in"e!ti)acione!& el departamento mencionado determin:
1* +l porcenta-e de capacidad de produccin de cada planta para cada producto*
6* +l porcenta-e de e!ta capacidad ,ue re,uiere cada unidad producida por minuto*
9* La )anancia unitaria de cada producto*
+!ta in%ormacin !e re!ume en la !i)uiente ta(la:
3lanta
3roducto
1 6
Capacidad
Di!poni(le
1 1 > ?
6 > 6 16
9 9 6 1@
Ganancia
unitaria
9 A
Dato! del pro(lema de 1'ndor Gla!! Co*
In)* Ga(riel Arellano
! Problema 3.1 Hillier-Lieberman Pag. 30 - Wyndor Glass Co.
Xj = Cantidad a prod!ir del prod!to j "
#a$ = 3%X1 & '%X("
!)jeto a* "
X1 +=,"
(%X( +=1("
3%X1 & (%X( +=1-"
De forma ms general un comentario es un bloque de texto (puede estar
compuesto de una o ms lneas) que comienza con un signo de exclamacin (!) y
termina con punto y coma (;).
Aprendiendo LINGO
INTRODUCCIN A LINGO - 9
3ara %ormular el pro(lema lineal primero de(emo! determinar lo! elemento! del mi!mo:
Variables de decisin: .1: unidade! producida! del producto 1 por minuto*
.6: unidade! producida! del producto 6 por minuto*
uncin !b"eti#o: B C 9.1 D A.6
La %uncin o(-eti"o repre!enta la contri(ucin a la )anancia por minuto por lo cual
de!eamo! ma.imizarla*
$estricciones: .1 ? Capacidad 3lanta1*
6.6 16 Capacidad 3lanta6*
9.1 D 6.6 1@ Capacidad 3lanta9*
+ntonce! el modelo matem#tico del pro(lema !er/a:
Eodelo matem#tico del pro(lema*
+l modelo matem#tico e.pre!ado en el len)ua-e de modelado de LINGO !er/a:
3ro(lema e,ui"alente en len)ua-e LINGO*
A meno! ,ue e!peci%i,ue lo contrario& el "alor de la! "aria(le! por de%ecto en un modelo de
LINGO !on no-ne)ati"a! ' continua!* 3or ello para nue!tro modelo no e! nece!ario incluir
la! condicione! de no ne)ati"idad*
La! l/nea! ,ue comienzan con ! !on comentario! ' !er#n i)norada! por Lin)o*
In)* Ga(riel Arellano
B C 9.
1
D A.
6
Ea.
0u-eto a: .
1
?
6.
6
16
9.
1
D 6.
6
1@
' .
1
> F .
6
>
APRENDIENDO LINGO
? - INTRODUCCIN A LINGO
Como !i)uiente pa!o de(emo! in)re!ar e!te modelo en la aplicacin para lo cual de(emo!
iniciar la aplicacin:
0eleccionando el menG: Inicio 3ro)rama! Lin)o HH Lin)o HH
O $aciendo do(le clicI en el icono LINGO del e!critorio
Lue)o de iniciar la aplicacin aparece la pantalla principal de LINGO ' un modelo en
(lanco:
Como puede o(!er"ar!e !e trata de do! "entana!: en primer plano la "entana del modelo
actual (con %ondo (lanco ' detr#! !e encuentra el entorno de pro)ramacin de LINGO del
cual !e pueden de!tacar tre! #rea!: en la parte !uperior el menG de opcione!& de(a-o la
(arra de (otone! ' en la parte in%erior la (arra de e!tado (donde !e puede o(!er"ar: el
e!tado del !ol"er& la po!icin en el modelo& etc*
3roceda a e!cri(ir el modelo en la "entana del modelo (note ,ue la !inta.i! de cada uno de
lo! componente! del mi!mo !e de!taca en un color di%erente ' cuando e!te li!to proceda
a )uardarlo mediante la opcin 0a"e del menG Jile o mediante el (otn )uardar de la (arra
de menG* Dele el nom(re ,ue con!idere con"eniente& en nue!tro ca!o lo nom(ramo!
7%&ill'() * +ap. , * -ag. ,. * /". ,.08 como !e podr# o(!er"ar en la (arra de t/tulo de la
"entana del modelo* Lo! arc$i"o! de LINGO por de%ault tienen la e.ten!in .lg1*
In)* Ga(riel Arellano
Aprendiendo LINGO
INTRODUCCIN A LINGO - A
Lue)o de )uardar nue!tro modelo e!tamo! en condicione! de ordenar a LINGO ,ue intente
re!ol"erlo* 3ara e!to Gltimo recurrimo! a la opcin 0OLK+ del menG LINGO o (ien al (otn
0ol"e (indicado en la ima)en*
Al %inalizar la re!olucin del modelo no! mo!trar# la "entana de re!ultado!:
+n primer lu)ar podemo! o(!er"ar el nGmero de iteracione!& en realidad el nGmero de
iteracione! m#! uno ('a ,ue Lin)o llama a la primera 0LJ como iteracin uno*
A continuacin no! in%orma el "alor de la %uncin o(-eti"o en el punto ptimo (en nue!tro
e-emplo 9<& el "alor de la! "aria(le! (#!ica! ' !u co!to reducido& ' por Gltimo el !o(rante
(o !lacI ' el precio !om(ra (dual price de cada re!triccin* 0e de(e tener en cuenta ,ue
la %ila (ro2 1 e! el %uncional*
In)* Ga(riel Arellano
Global optimal soltion .ond at iteration* 3
/bje!ti0e 0ale* 31.00000
2ariable 2ale 3ed!ed Cost
X1 (.000000 0.000000
X( 1.000000 0.000000
3o4 )la!5 or )rpls 6al Pri!e
1 31.00000 1.000000
( (.000000 0.000000
3 0.000000 1.'00000
, 0.000000 1.000000
! Problema 3.1 Hillier-Lieberman Pag. 30 - Wyndor Glass Co.
Xj = Cantidad a prod!ir del prod!to j "
78ene.i!io9 #a$ = 3%X1 & '%X("
!)jeto a*
3estri!!iones de tiempo de prod!!ion"
7Planta:19 X1 +=,"
7Planta:(9 (%X( +=1("
7Planta:39 3%X1 & (%X( +=1-"
APRENDIENDO LINGO
< - INTRODUCCIN A LINGO
+l len)ua-e de modelado de LINGO
Sintaxis de LINGO
La !inta.i! ,ue !e utiliza en e!te pro)rama e! mu' !encilla* 3ara el nom(re de la!
"aria(le! ' otro! identi%icadore! !e e!ta(lece ,ue pueden tener 96 caractere! como
m#.imo& De(en comenzar con una letra !e)uido de letra!& d/)ito! o M* LINGO no di!tin)ue
entre ma'G!cula! ' minG!cula!*
Con re!pecto a la! !entencia!:
Toda! la! !entencia! de(en terminar en un punto ' coma*
3ara darle un nom(re a la %uncin o(-eti"o o a la! re!triccione!& e!to! !e de(en
colocar entre corc$ete!*
3ara declarar la %uncin o(-eti"o de(emo! colocar la! pala(ra! re!er"ada! EAH
o EIN& (aparecer#n re!altada! en azul& !e)uida! del !i)no C*
Lo! comentario! de(en comenzar con un !i)no N& lo! cuale! aparecen
re!altado! en "erde*
Nombre de las restricciones
Como !e pudimo! o(!er"ar en lo! re!ultado! de la re!olucin del pro(lema re!ulta un
poco con%u!o di!tin)uir la! di!tinta! re!triccione! del modelo*
LINGO tiene la $a(ilidad de nom(rar la! re!triccione! en !u modelo* O!ta e! una (uena
pr#ctica por do! razone!:
3rimero& lo! nom(re! de re!triccione! !e u!an en el reporte de la! !olucione!
,ue lo! $acen m#! %#cil interpretar*
0e)undo& en muc$o! de lo! men!a-e! de error de LINGO !e indica la re!triccin
mediante !u nom(re*
Dar nom(re a una re!triccin e! (a!tante !imple* 0e in!erta el nom(re entre corc$ete!&
adelante de una l/nea de cdi)o* +l nom(re de(e o(edecer lo! re,ui!ito! normale! para un
identi%icador de LINGO*
Eodelo con nom(re! en la! re!triccione!*
Re!uel"a nue"amente el modelo ' notar# lo! cam(io!:
In)* Ga(riel Arellano
....
2ariable 2ale 3ed!ed Cost
X1 (.000000 0.000000
X( 1.000000 0.000000
3o4 )la!5 or )rpls 6al Pri!e
8;<;=>C>/ 31.00000 1.000000
PL?<@?:1 (.000000 0.000000
PL?<@?:( 0.000000 1.'00000
PL?<@?:3 0.000000 1.000000
Aprendiendo LINGO
INTRODUCCIN A LINGO - P
Uso de funciones de dominio de variables
Como !e di-o anteriormente& a meno! ,ue e!peci%i,ue lo contrario& el "alor de la! "aria(le!
por de%ecto en un modelo de LINGO !on no-ne)ati"a! ' continua!* E#! e!pec/%icamente&
la! "aria(le! pueden a!umir al)Gn "alor real de!de cero a in%inito po!iti"o* +n muc$o!
ca!o!& e!te dominio de "alor por de%ecto puede !er impropio* 3or e-emplo& !e puede ,uerer
una "aria(le ,ue a!uma "alore! ne)ati"o!& o !e podr/a ,uerer una "aria(le re!trin)ida
puramente a "alore! entero!* LINGO proporciona cuatro %uncione! de dominio de "aria(le!
,ue permite !u!tituir el dominio prede%inido de una "aria(le* Lo! nom(re! de e!ta!
%uncione! ' una de!cripcin (re"e de !u u!o !on:
QGIN re!trin)e el dominio de la "aria(le a "alore! entero!*
QLIN $ace ,ue la "aria(le tome "alore! (inario! (e! decir& > o 1*
QJR++ permite ,ue la "aria(le pueda a!umir cual,uier "alor real*
QLND limita lo! "alore! de la "aria(le a un ran)o %inito*

Variables enteras y binarias
LINGO le da la po!i(ilidad de de%inir do! tipo! de "aria(le! entera!& una )eneral ' otra
(inaria* Una "aria(le entera )eneral re,uiere !er un nGmero entero* Una "aria(le entero
(inaria re,uiere !er cero o uno* Cual,uier modelo ,ue contiene uno o m#! "aria(le!
entera!& e! re,uerido para un modelo pro)ramacin entera (I3
+n muc$o! pro'ecto! de modelo!& u!ted !e en%rentar# con tipo! de deci!ione! (!iRno*
Al)uno! e-emplo! incluir/an 3roduceRNo 3roduce& A(re un 3lanRCierra un 3lan& etc* La!
"aria(le! (inaria! !on el m=todo normal u!ado por modelar e!ta! deci!ione! de !iRno*
Variables libres
3or de%ault& la! "aria(le! en LINGO tiene un l/mite in%erior de cero ' un l/mite !uperior de
in%inito* QJR++ ,uita el l/mite in%erior cero ' permite ,ue la "aria(le tome "alore!
ne)ati"o!* La !inta.i! e!:
A=3;; Bnombre:de:0ariableC"
donde la "aria(leMname e! el nom(re de la "aria(le li(re*
La %uncin QJR++ puede u!ar!e en cual,uier parte del modelo donde normalmente ir/a
una re!triccin* Un e-emplo de QJR++ !er/a:
A=3;; BX1C"
$ar/a li(re a la "aria(le H1*

Variables limitadas
Con!iderando ,ue QJR++ pone el l/mite !uperior e in%erior de la "aria(le e!peci%icada a
m#!-meno! in%inito (,uitando cual,uier l/mite en la "aria(le& la %uncin de QLND le
permite poner l/mite !uperior e in%erior e!pec/%ico! en una "aria(le* +n otra! pala(ra!&
QLND limita el ran)o de una "aria(le dentro de al)Gn inter"alo*
La !inta.i! para QLND e!:
A8<6 Blo4er:bondD nombre:de:0ariableD pper:bondC"

donde el nom(reMdeM"aria(le e! la "aria(le a !er limitada de(a-o por el limiteMin%erior '
limitada !uperiormente por el limiteM!uperior* LimiteMin%erior ' limiteM!uperior de(en !er
"alore! num=rico! o "aria(le! cu'o! "alore! $an !ido %i-ado! en la !eccin de dato!*
QLND puede u!ar!e en cual,uier lu)ar ,ue normalmente !e u!ar/a una re!triccin en el
modelo*
In)* Ga(riel Arellano
APRENDIENDO LINGO
@ - INTRODUCCIN A LINGO
+n t=rmino! matem#tico!& LINGO interpreta QLND como:

limiteMin%erior SC nom(reMdeM"aria(le SC limiteM!uperior

Adem#!& QLND no cuenta contra el lmite del nmero total de restricciones !ue
Lin"o im#one en al"unas versiones* +n )eneral& !e u!a QLND en lu)ar de una
re!triccin !iempre ,ue !ea po!i(le*
Un e-emplo de QLND !er/a:

A8<6 B-1D X1D 1C"
$ar/a ,ue la "aria(le H1 !lo pueda tomar "alore! entre -1 ' 1*
O#eradores $ %unciones
LINGO proporciona "aria! %uncione! ' operadore! para a)er)ar al modelo matem#tico* 0e
mue!tran la! cate)or/a! !i)uiente!:
2os !peradores 3ormales : Aritm=tica& l)ico!& ' correlati"o! como D& -& C& SC*
4at5ematical : la! %uncione! matem#tica!& tri)onom=trica! ' )enerale!*
inancial : la! %uncione! %inanciera!*
-robabilidad : la! Juncione! utilizada! para determinar una )ama amplia de
pro(a(ilidad ' la! re!pue!ta! e!tad/!tica!*
Dominio de #ariables : !on %uncione! ,ue de%inen el ran)o de "alore! (dominio
,ue una "aria(le puede a!umir*
4ane"adores de con"untos: la! %uncione! Gtile! para manipular con-unto!*
6et 2ooping : Juncione! loop ,ue !e utilizan para realizar operacione! en un
con-unto! de dato!*
7mport8/xport : !on %uncione! ,ue crean cone.ione! con la! %uente! de lo! dato!
e.terna!*
4iscellaneous : %uncione! de di!tinto! tipo!*
In)* Ga(riel Arellano

Vous aimerez peut-être aussi