Escolar Documentos
Profissional Documentos
Cultura Documentos
MODELOS DE OPTIMIZACIN
Begoa Vitoriano
bvitoriano@mat.ucm.es
www.mat.ucm.es/~bvitoria
Facultad CC. Matemticas, Universidad Complutense, Pza. Ciencias 3, 28040 Madrid http://www.mat.ucm.es
NDICE
I.
OPTIMIZACIN............................................................................. 1
I.1. INVESTIGACIN OPERATIVA Y OPTIMIZACIN ......................................................... 1
I.2. REFERENCIAS .......................................................................................................... 8
II.
ii
18/02/2010
MODELOS DE OPTIMIZACIN
I.
Optimizacin
18/02/2010
I OPTIMIZACIN
En castellano la traduccin de esta palabra es smplice pero no es habitual su uso para denominar
sus logros as como una entrevista sobre diversos temas, incluyendo imgenes en vdeo.
18/02/2010
MODELOS DE OPTIMIZACIN
18/02/2010
I OPTIMIZACIN
Transportation
Science,
Transportation
Research.
Existe
una
funcin objetivo
Es la medida cuantitativa del funcionamiento del sistema que se desea optimizar
(maximizar o minimizar). Como ejemplo de funciones objetivo se pueden
mencionar: la minimizacin de los costes variables de operacin de un sistema
elctrico, la maximizacin de los beneficios netos de venta de ciertos productos, la
minimizacin del cuadrado de las desviaciones con respecto a unos valores
observados, la minimizacin del material utilizado para fabricarn de un producto,
etc.
18/02/2010
MODELOS DE OPTIMIZACIN
variables
Representan las decisiones que se pueden tomar para afectar el valor de la funcin
objetivo. Desde un punto de vista funcional se pueden clasificar en variables
independientes o principales o de control y variables dependientes o auxiliares o de
estado, aunque matemticamente todas son iguales. En el caso de un sistema
elctrico sern los valores de produccin de los grupos de generacin o los flujos
por las lneas. En el caso de la venta, la cantidad de cada producto fabricado y
vendido. En el caso de la fabricacin de un producto, sus dimensiones fsicas.
restricciones
Representan el conjunto de relaciones (expresadas mediante ecuaciones e
inecuaciones) que ciertas variables estn obligadas a satisfacer. Por ejemplo, las
potencias mxima y mnima de operacin de un grupo de generacin, la capacidad
de produccin de la fbrica para los diferentes productos, las dimensiones del
material bruto del producto, etc.
Resolver un problema de optimizacin consiste en encontrar el valor que deben
tomar las variables para hacer ptima la funcin objetivo satisfaciendo el conjunto de
restricciones.
Los mtodos de optimizacin los podemos clasificar en: mtodos clsicos (que son
los algoritmos que habitualmente se explican en los libros de optimizacin) y mtodos
metaheursticos (que aparecieron ligados a lo que se denomin inteligencia artificial e
imitan fenmenos sencillos observados en la naturaleza). Dentro de los primeros se
encuentra la optimizacin lineal, lineal entera mixta, no lineal, estocstica, dinmica,
etc. que se explican en el documento. En el segundo grupo se incluyen los algoritmos
evolutivos (genticos entre otros), el mtodo del recocido simulado (simulated
annealing), las bsquedas heursticas (mtodo tab, bsqueda aleatoria, avariciosa, etc.)
o los sistemas multiagente. De forma muy general y aproximada se puede decir que los
mtodos clsicos buscan y garantizan un ptimo local mientras que los mtodos
metaheursticos tienen mecanismos especficos para alcanzar un ptimo global aunque
no garantizan su alcance.
18/02/2010
I OPTIMIZACIN
min cT x
x
(linear programming)
LP
Ax = b
x0
x
,c
, A
m n
,b
min cT x + d T y
x
Ax + By = b
x, y 0
x
mn
A
Programacin cuadrtica
(quadratic programming)
QP
,c
,B
ml
min cT x +
x
,d
,b
1 T
x Qx
2
Ax = b
x0
x
,c
n n
Programacin no lineal
, y
, A
,b
m n
min f ( x)
x
g ( x) = 0
h( x) 0
l xu
f:
g, h :
18/02/2010
MODELOS DE OPTIMIZACIN
enteras, programacin entera binaria BIP (binary integer programming) si todas son
binarias o programacin lineal entera mixta MIP (mixed integer programming) si
algunas son enteras o binarias y el resto continuas.
Un caso particular, pero muy frecuente, de variables enteras son las variables
binarias (0/1), ya que permiten modelar condiciones de asignacin o condiciones
lgicas. Por otra parte, toda variable entera x se puede expresar como suma de
variables binarias yi , donde x = i =0 2i yi siendo u una cota superior de x , 0 x u , y
N
optimizacin multiobjetivo
Existe ms de una funcin objetivo. El problema que se plantea es cmo tratar
varias funciones objetivo a la vez, teniendo en cuenta que el ptimo para un objetivo
no lo es para otro, son objetivos en conflicto entre s. sta se enmarca dentro de lo
que se conoce de forma ms general como decisin multicriterio (multicriteria
decision making MCDM).
La formulacin matemtica de algunos problemas de optimizacin especiales por no
18/02/2010
I OPTIMIZACIN
xF ( x) = 0
MCP
F:
f:
(multiobjective programming)
Ax = b
x0
x
fi ( x) :
,c
n
, A
m n
,b
I.2. Referencias
Gass, S.L. and Harris, C.M. (eds.) (2001) Encyclopedia of Operations Research and
Management Science. Centennial Edition. Kluwer Academic Publishers.
Hillier, F.S., Lieberman, G.J. (2002) Investigacin de Operaciones. 7 edicin. McGraw
Hill.
Robinson R. (1999) Welcome to OR Territory OR/MS Today pp. 40-43 August.
Sarabia, A. (1996) La Investigacin Operativa. Universidad Pontificia Comillas.
Taha, H.A. (1998) Investigacin de operaciones. Una introduccin. Prentice Hall.
Winston, W.L. (1994) Investigacin de Operaciones. Aplicaciones y Algoritmos. Grupo
Editorial Iberoamericana.
18/02/2010
MODELOS DE OPTIMIZACIN
II.
DE
LA
LENGUA
ESPAOLA.
REAL
ACADEMIA
ESPAOLA.
18/02/2010
aquellos
donde
existe
un
conjunto
de variables
de
decisin
que
deben
10
18/02/2010
MODELOS DE OPTIMIZACIN
18/02/2010
11
Variables
Caso ejemplo
100
100
Tamao medio
10000
10000
Gran tamao
100000
100000
> 100000
> 100000
12
18/02/2010
MODELOS DE OPTIMIZACIN
18/02/2010
13
II.3. Referencias
Schrage, L. (1997) Optimization Modeling with LINDO. Duxbury Press.
Williams, H.P. (1999) Model Building in Mathematical Programming. 4th Edition. John
Wiley and Sons.
14
18/02/2010
MODELOS DE OPTIMIZACIN
18/02/2010
15
Pienso
Forraje
Protenas
(g)
30
45
Calcio
(g)
2
1
Vitaminas
(mg)
10
5
(1.1)
a x
ij i
b j j
(1.2)
Adems hay que aadir la restriccin natural de que la cantidad de cada alimento ha
de ser no negativa.
xi 0
(1.3)
16
18/02/2010
MODELOS DE OPTIMIZACIN
30 x1 + 45 x2 700
2 x1 + x2 28
10 x1 + 5 x2 150
x1 0
x2 0
18/02/2010
17
b1
b2
bn
i =1 j =1
ij
j =1
m
ij
i =1
= ai i = 1, , m
(1.4)
= b j j = 1, , n
xij 0
Implcitamente en esta formulacin, se supone que la oferta del producto es igual a
la demanda del mismo
a = j =1 b j . Si
i =1 i
i =1 i
i =1 i
universal conectada con todos los destinos con coste muy elevado. Esta opcin se lleva
a cabo para aplicar mtodos especficos de solucin para el problema de transporte.
18
18/02/2010
MODELOS DE OPTIMIZACIN
Industrialmente, este modelo se utiliza muy a menudo, pero hay que tener en cuenta
algunos detalles de formulacin. En primer lugar, respecto al estilo, es importante que
las variables reflejen su significado, as como los datos. Por ejemplo, es habitual para
cantidades usar Q, para demandas d, etc. Tambin es importante, distinguir de alguna
forma datos de variables (por ejemplo, unos en maysculas y otros en minsculas).
Respecto a las condiciones de los datos, el modelo se formula sin hacer hiptesis sobre
los valores iniciales ni la red (pueden no existir conexiones entre algunos orgenes y
destinos, de modo que A es el conjunto de arcos de la red), siendo la siguiente
formulacin la que contempla que pueda haber ms oferta que demanda (equivalente a
poner un sumidero universal):
min
( i , j ) A
cij Qij
Qij oi i = 1, , m
Qij = d j j = 1, , n
j /( i , j ) A
i /( i , j ) A
(1.5)
Qij 0
Por otra parte, para evitar infactibilidades que haran que el modelo no d solucin
alguna, se introducen unas variables que recogen la demanda no suministrada en cada
nodo y que son penalizadas en la funcin objetivo, por ejemplo con un valor p:
min
( i , j ) A
cij Qij + pN j
j
Qij oi
Qij = d j +N j
j /( i , j ) A
i /( i , j ) A
i = 1, , m
(1.6)
j = 1, , n
Qij , N j 0
ste sera un modelo formulado para poder ser implementado de forma industrial.
En cualquier caso, la estructura que presenta la matriz de restricciones del problema
tiene el siguiente aspecto.
18/02/2010
19
x11 x12
x2n
1
1
1
1
xmn
m
1
xm1 xm 2
1
1
Si tanto las ofertas como las demandas de los productos son nmeros enteros,
entonces el valor ptimo de las variables va a resultar entero por ser la matriz totalmente
unimodular 3 , por lo que no se necesita recurrir a mtodos especficos de resolucin de
problemas de programacin entera.
matriz de un problema lineal es totalmente unimodular y las cotas de las restricciones son enteras,
entonces todos los puntos extremos del poliedro tienen coordenadas enteras (se denomina politopo
entero).
20
18/02/2010
MODELOS DE OPTIMIZACIN
i =1 j =1
x x
j =1
ij
k =1
ki
= bi i = 1, , n
(1.7)
xij 0
b = 0.
i =1 i
Esta matriz tambin es totalmente unimodular por lo que el problema tambin puede
ser resuelto mediante programacin lineal.
Tambin en este caso, el modelo acadmico del industrial difiere sensiblemente, ya
que no es normal hacer la hiptesis de que la suma en la red sea 0 (no es normal que la
demanda de un producto en una red sea exactamente la oferta, eso suele darse en casos
lmite). Por otra parte, tambin ha de protegerse respecto a posibles infactibilidades. Y
por ltimo, hablar un lenguaje propio del sector, que en general no va a considerar que
produccin y demanda sea lo mismo pero con signos opuestos. En este caso la
formulacin se podra plantear como sigue.
El problema es transportar a travs de una red un determinado producto. La red est
formada por n nodos y A arcos. Cada nodo puede ser de tres tipos: nodo de oferta
donde hay disponible o se produce una cantidad del producto ( si ), nodo de demanda
donde hay una demanda del producto ( di ), o nodo de transbordo donde ni se genera ni
se consume ( si = 0, d i = 0 ).
Las variables del modelo son las siguientes:
Qij : cantidad transportada de nodo i a nodo j
N j : demanda no suministrada en nodo j
Pj : cantidad suministrada en nodo j
18/02/2010
21
min
( i , j )A
cij Qij + p N i
i
Qij
j/
( i , j )A
Q ji = Pi di + N i i
j/
( j ,i ) A
Pi si
N i di
(1.8)
Qij 0 (i, j ) A Pi , N i 0 i
i =1 j =1
x
j =1
ij
x
i =1
ij
= 1 i = 1, , n
(1.9)
= 1 j = 1, , n
xij 0
22
18/02/2010
MODELOS DE OPTIMIZACIN
peso
admisible.
Las
variables
del
problema
son
1 si se elije el proyecto j
xj =
. sta es una utilizacin habitual de las variables
0 en cualquier otro caso
binarias como forma de seleccionar una alternativa, un proyecto en este caso. La
formulacin del problema es la siguiente
n
max v j x j
xj
j =1
c x
j =1
(1.10)
x j {0,1}
caractersticas y
combinacin
j,
1 si i pertenece a j
.
aij =
0 si no pertenece
Denominamos
las
variables
1 si se elige la combinacin j
xj =
.
en cualquier otro caso
0
18/02/2010
23
min c j x j
xj
j =1
a x
j =1
ij
1 i = 1, , m
(1.11)
x j {0,1}
En la siguiente figura se representa grficamente el problema de recubrimiento as
como los de empaquetado y particin que se explican a continuacin.
24
18/02/2010
MODELOS DE OPTIMIZACIN
Secuencias factibles
1
SF LA
SF Denver
1
1
1
LA Chicago
3
3
Coste (M)
Seattle LA
Seattle SF
Denver Chicago
Chicago Seattle
2
12
1
2
11
1
Chicago Denver
10
1
Denver SF
LA SF
SF Seattle
5
2
x j {0,1} j = 1, ,12
12
x
j =1
=3
18/02/2010
25
matriz
de
pertenencia
de
cada
proyecto
cada
paquete
es
1 si i pertenece a j
1 si se elige el paquete j
.
aij
. Las variables del problema son x j
0 si no pertenece
0 en cualquier otro caso
max c j x j
xj
j =1
a x
j =1
ij
1 i = 1, , m
(1.12)
x j {0,1}
max c j x j
xj
j =1
a x
j =1
ij
= 1 i = 1, , m
(1.13)
x j {0,1}
26
18/02/2010
MODELOS DE OPTIMIZACIN
i, j
= 1 j
= 1 i
ij
ij
(1.14)
i, j
T j c1 j m(1 x1 j )
j 1
xij {0,1} , T j 0
18/02/2010
27
La primera restriccin indica que a una ciudad j slo se puede llegar una vez desde
cualquier ciudad i . La segunda dice que desde una ciudad i slo se puede salir una vez
a cualquier otra ciudad j . Slo con estas variables no es suficiente para formular el
problema, ya que se pueden formar subciclos. La forma de evitarlos es aadiendo las
variables continuas.
0
f j (x j ) =
k j + c j x j
cj
xj = 0
xj > 0
kj
xj
Este coste se puede modelar con ayuda de una variable binaria auxiliar y j {0,1}
1 x j > 0
definida como y j =
, que indica la realizacin de la actividad x j .
0
0
x
=
j
j =1
j =1
x j My j
xj 0
y j {0,1}
28
18/02/2010
MODELOS DE OPTIMIZACIN
Las disyunciones implican una pareja de restricciones donde una (cualquiera de las
dos) debe satisfacerse, mientras que la otra no es necesario que se cumpla. Debe
cumplirse una al menos pero no necesariamente las dos.
f ( x) 0 g ( x) 0
18/02/2010
29
x1 + 4 x2 16 0
x1 + 4 x2 16 M
Se define la variable binaria auxiliar y que selecciona la ecuacin correspondiente,
1 se relaja la ecuacin 1
. Luego las restricciones disyuntivas se modelan en un
y=
0 se relaja la ecuacin 2
es equivalente a
f ( x) 0 g ( x) 0
30
18/02/2010
MODELOS DE OPTIMIZACIN
f1 ( x1 , , xn ) My1
f 2 ( x1 , , xn ) My2
f N ( x1 , , xn ) My N
donde adems se impone la condicin de seleccionar solamente k ecuaciones.
N
y
i =1
= N k
yi {0,1} i = 1, , N
Sea una funcin con mltiples posibles valores y se desea elegir uno de ellos.
d1
d
f ( x1 , , xn ) = 2
d N
La manera de modelarlo es introduciendo una variable binaria auxiliar yi por cada
valor y la condicin de eleccin nica
N
f ( x1 , , xn ) = di yi
i =1
y
i =1
=1
yi {0,1} i = 1, , N
x M
18/02/2010
31
= 0 x 0
x M
x > 0 = 1
32
18/02/2010
MODELOS DE OPTIMIZACIN
= 0 x 0
x m
x < 0 = 1
A continuacin, vamos a generalizar la representacin de implicaciones para
cualquier tipo de restriccin genrica.
Implicaciones de una restriccin
La implicacin
=1 ajxj b
j
es equivalente a
a x
j
b + M (1 )
a x
>b = 0
a x
b =1
La implicacin
a x
j
b + + ( m )
ajxj b m .
18/02/2010
33
=1 ajxj b
j
es equivalente a
a x
j
b + m(1 )
a x
<b = 0
a x
b =1
La implicacin
a x
j
b + ( M + )
34
ajxj b M .
18/02/2010
MODELOS DE OPTIMIZACIN
=1 ajxj = b
j
es equivalente a
=1 ajxj b
j
=1 ajxj b
j
a x
b + M (1 )
a x
b + m(1 )
a x
j
= b =1
a x
b =1
a x
b = 1
y adems = 1 y = 1 = 1
a x
b + + (m )
a x
b + ( M + )
18/02/2010
35
Implicaciones dobles
j
= 1 a j x j b es equivalente a
j
a j x j b = 1
j
=1 ajxj b
a x
b + M (1 )
a x
a x
b + + ( m )
=1 ajxj b
a x
b + m(1 )
a x
a x
b + ( M + )
a x
b + M (1 )
a x
b + m(1 )
a x
b + + (m )
a x
b + ( M + )
b =1
b =1
=1 ajxj = b
j
a x
j
= b =1
=1 ajxj b
j
+ 1
a x
b + M (1 )
a x
b + + (m )
a x
b + m(1 )
a x
b + ( M + )
a x
b + M (1 )
a x
b + m(1 )
a x
b + + (m )
a x
b + ( M + )
=1 ajxj b
j
=1 ajxj = b
j
+ 1
36
18/02/2010
MODELOS DE OPTIMIZACIN
aj xj b M y
no P o Q
P (Q y R)
(P Q) y (P R)
P (Q o R)
(P Q) o (P R)
(P y Q) R
(P R) o (Q R)
(P o Q) R
(P R) y (Q R)
no (P o Q)
no P y no Q
no (P y Q)
no P o no Q
18/02/2010
37
1 + 2 1
X1 y X 2
1 = 1 , 2 = 1
no X 1
1 = 0
X1 X 2
1 2 0
X1 X 2
1 2 = 0
A + B 1 C + D + E 1
Para poder modelar estas implicaciones lgicas, por complejas que sean, de manera
automtica la implicacin se separa en dos bloques
A + B 1 = 1
38
18/02/2010
MODELOS DE OPTIMIZACIN
= 1 C + D + E 1
donde es la variable binaria auxiliar indicadora del cumplimiento de la primera
restriccin.
Aplicando este procedimiento al ejemplo anterior, la implicacin
A + B 1 = 1 equivale a A + B 2
ya que = 1 y M = 1 y
= 1 C + D + E 1 equivale a C + D + E
siendo m = 1 .
Luego las restricciones lineales a introducir en el problema de optimizacin son
A + B 2
C + D + E
Alternativamente, la implicacin original
( X A o X B ) (XC o X D o X E )
A 0
B 0
+ +
D
E
C
que tambin es equivalente a
C + D + E A
C + D + E B
Para esta implicacin se han encontrado tres formulaciones matemticamente
equivalentes.
Veamos a continuacin un ejemplo donde aparecen este tipo de implicaciones. Un
entrenador de baloncesto tiene 9 jugadores, a los que ha evaluado de 1 a 3 de acuerdo
con su manejo de pelota, tiro, rebote y defensa, segn se indica en la tabla adjunta.
18/02/2010
39
Jugador
Posiciones
Manejo de pelota
Tiro
Rebote
Defensa
Pivot
Base
Pivot, Alero
Alero, Base
Pivot, Alero
Alero, Base
Pivot, Alero
Pivot
Alero
Por los menos dos jugadores deben estar en disposicin de actuar de pivot, al menos
dos de alero y por lo menos uno de base.
Su nivel medio, tanto en el manejo de pelota como de tiro y rebote, debe ser no
inferior a 2.
El jugador 8 el 9, pero no los dos a la vez, deben formar parte del equipo.
Formular un programa lineal que facilite la seleccin del equipo titular.
En primer lugar se definen las variables de decisin que se van a utilizar. stas son
1 si se incluye el jugador j en el equipo
xj =
j = 1, , 9
en otro caso
0
1 si se incluye el jugador j en posicin k
x jk =
j = 1, , 9 , k = p, a, b
en otro caso
0
40
18/02/2010
MODELOS DE OPTIMIZACIN
Estas ltimas variables definidas slo para los jugadores con capacidad para jugar en
varias posiciones.
Maximizacin de la capacidad defensiva
max 3x1 + 2 x2 + 2 x3 + x4 + 2 x5 + 3x6 + x7 + 2 x8 + 3x9
Seleccin de cinco jugadores
x1 + x2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 = 5
3x1 + x2 + 2 x3 + 3 x4 + x5 + 2 x6 + 2 x7 + 3 x8 + x9 10
Incompatibilidad entre dos jugadores
x3 = 1 x6 = 0 equivale a x3 0 x6 0
x3 y1
x6 1 y1
o bien, modelando directamente la implicacin, con la restriccin siguiente
x3 + x6 1
x3 y1
La formulacin con las dos ecuaciones
es ms fuerte (mejor) que la de
x6 1 y1
una nica ecuacin x3 + x6 1 , porque la regin factible del problema relajado es menor
para el primer caso que para el segundo. En el apartado I.6.5.2 se explican algunas
tcnicas de reformulacin de problemas MIP para conseguir soluciones ms fuertes.
18/02/2010
41
x4 + x5 1 (1 y2 )
x + x 1 1(1 y )
2
4 5
o bien, modelando directamente la implicacin, con la restriccin siguiente
x4 + x5 2 x1
x4 + x5 x1
Al menos un jugador de entre varios
x8 + x9 = 1
Relacin de coherencia entre variables binarias
x3 p + x3a x3 = 0
x4 a + x4b x4 = 0
x5 p + x5 a x5 = 0
x6 a + x6b x6 = 0
x7 p + x7 a x7 = 0
xi , yi {0,1}
La solucin resulta ser x1 = x4 = x6 = x7 = x9 = 1 y el resto 0 y la defensa total del
equipo es 11.
42
18/02/2010
MODELOS DE OPTIMIZACIN
1 2 = 0
1 = 0 2 = 0
1 2
Reemplazar 1 2 por 3
3 = 1 1 = 1 y 2 = 1
i {0,1}
i {0,1}
x
x0
{0,1}
Reemplazar x por y
=0 y=0
=1 y = x
1 + 2 1
i {0,1}
3 1
3 2
1 + 2 1 + 3
i {0,1}
y0
y M
x + y 0
x y + M M
xM
Datos
Dh demanda trmica en la hora h [MW]
18/02/2010
43
PRht
P
t =1
ht
= Dh
(P A
t =1
ht
Pht ) = RDh
H
H
2HT
(H 1)T
Pht Ph 1t rst
(H 1)T
Ph 1t Pht rbt
(H 1)T
44
18/02/2010
MODELOS DE OPTIMIZACIN
SCALAR
r porcentaje de reserva rodante sobre la demanda [p.u.] /0.2/
PARAMETERS
d(h) demanda cada hora [MW]
/h1 1000 , h2 1400 , h3 2400 , h4 2000 , h5 1000/
pmax(t) pot mxima de cada trmico [MW]
/GALICIA 400,
CASTLEON 800/
CATALUNA
500,
MADRID
700,
VALENCIA
400,
EXTREMAD
300,
ANDALUCI
800,
CATALUNA
300,
MADRID
500,
VALENCIA
300,
EXTREMAD
100,
ANDALUCI
500,
200,
VALENCIA
100,
EXTREMAD
100,
ANDALUCI
500,
CATALUNA
300,
MADRID
/GALICIA 50, CATALUNA 30, MADRID 30, VALENCIA 25, EXTREMAD 30, ANDALUCI 80, CASTLEON 70/
ca(t) coste de arranque
/GALICIA 10, CATALUNA 20, MADRID 10, VALENCIA 15, EXTREMAD 20, ANDALUCI 10, CASTLEON 15/
cp(t) coste de parada
/GALICIA 5, CATALUNA 10, MADRID 5, VALENCIA 10, EXTREMAD 5, ANDALUCI 15, CASTLEON 10/
VARIABLES
CT
A(t,h)
AR(t,h) arranque
PR(t,h) parada
P(t,h)
EQUATIONS
COSTE
18/02/2010
45
DEMANDA(h)
RESERVA(h)
COTASUP(t,h)
COTAINF(t,h)
P.UP(t,h) = pmax(t)
OPTION OPTCR = 0
46
18/02/2010
MODELOS DE OPTIMIZACIN
Si, adems, la empresa tiene una funcin semejante para cada uno de los n
productos que puede fabricar la funcin objetivo global sera una suma de funciones no
lineales.
n
j =1
j =1
f ( x) = Pj ( x) = x j p j ( x j ) c j x j
Otra razn por la que pueden surgir no linealidades en la funcin objetivo es a causa
de los costes de produccin, ya que stos pueden variar con el nivel de produccin. Por
ejemplo, el coste puede decrecer cuando aumenta el nivel de produccin gracias al
efecto de una curva de aprendizaje (mayor eficiencia con ms experiencia) o aumentar
por necesidad de tiempos extra o instalaciones ms costosas.
Las restricciones tambin se pueden ver afectadas por estos tipos de no linealidades.
Una que surge inmediatamente es la restriccin de presupuesto, si existe, cuando los
costes de produccin varan como se ha descrito anteriormente. Tambin sern
funciones no lineales las asociadas a los recursos, siempre que el uso de un determinado
recurso no sea proporcional a los niveles de los respectivos productos.
18/02/2010
47
unitaria sera una funcin no lineal con pendiente no creciente. Una alternativa es
aproximar esta funcin no lineal por una poligonal.
As pues, el coste de embarcar x unidades viene dado por una funcin poligonal,
C ( x ) , continua, con pendiente en cada tramo igual al coste unitario de transporte. En
f ( x) = Cij ( xij )
i =1 j =1
El modelo para representar esta funcin, siendo X la variable pasa por dividir esta
variable en dos, una hasta el valor k y otra para el exceso, obligando a que la segunda no
sea distinta de cero mientras la otra no llegue al valor k:
48
18/02/2010
MODELOS DE OPTIMIZACIN
min cX 1 + (c a ) X 2
X = X1 + X 2
k X1 k
0 X 2 cot a
{0,1}
{0,1}
18/02/2010
49
R ( x) = j x j
j =1
n
V ( x) = ij xi x j
i =1 j =1
P x
j =1
x j 0 j = 1,..., n
III.2. Referencias
Hillier, F.S., Lieberman, G.J. (2002) Investigacin de Operaciones. 7 edicin. McGraw
Hill.
50
18/02/2010
MODELOS DE OPTIMIZACIN
Nemhauser, G.L. and Wolsey, L.A. (1999) Integer and Combinatorial Optimization.
John Wiley and Sons.
Williams, H.P. (1999) Model Building in Mathematical Programming. 4th Edition. John
Wiley and Sons.
Wolsey, L.A. (1998) Integer Programming. John Wiley and Sons.
E2
E3
E4
Capacidad
D1
80
70
150
D2
60
90
85
300
D3
40
60
50
250
Demanda
130
200
150
250
Adems, cada unidad que se enve a las gasolineras le supone un beneficio de 7 u.m. y
los envos se llevan a cabo en camiones cuya capacidad es de 20 unidades cada uno, con
un coste estimado por camin en cada una de las rutas de:
Costes (u.m.)
E1
E2
E3
E4
D1
100
125
D2
100
125
100
D3
75
100
125
18/02/2010
51
PROBLEMA: PRODUCCIN
Una empresa puede fabricar 4 productos diferentes utilizando en su elaboracin 5
tipos de materias primas. Las unidades requeridas de cada materia prima por cada
unidad de cada producto se recogen en la tabla siguiente, as como el precio de venta de
cada producto y la disponibilidad de cada materia prima:
P1
M1
M2
P2
P3
P4
Disponible
200 150
M3
M4
M5
Precio venta
15
20
15
10
150
200
100
52
18/02/2010
MODELOS DE OPTIMIZACIN
12 50
A2
10 90
A3
10
4 60
100 80 70 40 20
18/02/2010
Almacn 1
1.50
2.00
4000
Almacn 2
2.00
1.50
5000
Almacn 3
2.50
2.25
6000
53
Demanda
3000
5000
Barcelona
A Corua
Valencia
Frigorficos
4000
5000
4000
Lavadoras
3000
3000
4000
A Corua
Valencia
Coste unitario
14
Mximo unidades
6000
3000
7500
Coste unitario
10
15
Mximo unidades
3000
9000
3000
Alicante
Huelva
PROBLEMA: LOGSTICA
Una empresa tiene dos factoras, F1 y F2, con las que abastece a tres almacenes de
distribucin, D1, D2 y D3, de dos artculos, A1 y A2.
54
18/02/2010
MODELOS DE OPTIMIZACIN
Los costes de transporte de una unidad de cualquiera de los dos artculos desde cada
factora a cada almacn se dan en la tabla izquierda, en tanto que los precios de venta
unitarios de cada artculo en cada almacn se dan en la tabla derecha.
Coste Tr D1 D2 D3
Precio D1 D2 D3
F1
A1
17 20 18
F2
A2
19 17 21
Coste Fb A1 A2
F1
6 7.5
F1
F2
10
F2
10
D2
D3
A1
600
800
500
A2
700
500
1200
18/02/2010
55
12
10
Los turnos de autobuses funcionan durante ocho horas seguidas y pueden comenzar
al principio de cualquiera de los seis periodos descritos anteriormente. Adems, si en el
turno que comienza a las 8:00 p.m. hay estrictamente ms de 4 autobuses, en el
siguiente ha de haber tambin estrictamente ms de 4. Plantear un problema de
programacin lineal entera para determinar el mnimo nmero de autobuses diario que
satisface las necesidades anteriores.
56
18/02/2010
MODELOS DE OPTIMIZACIN
Coste
L1
P1 P2 P3 P4
L2
P1 P3 P5 P7
L3
P2 P3 P4 P6
L4
P5 P7 P9 P10
L5
P2 P7 P8
L6
P1 P4 P5 P10
L7
P3 P8 P9
L8
P2 P6 P10
Adems, por el punto P2 han de pasar al menos dos lneas; y, si los puntos P3 y P7
no quedan conectados por una lnea directa, entonces debe existir un transbordo en P8
de modo que pase una lnea que una este punto con el P3 y otra con el P7. Plantear
como un problema de programacin lineal entera el problema de decidir qu lneas
construir de la forma ms econmica con estas restricciones teniendo en cuenta que por
cada punto clave debe pasar al menos una lnea.
18/02/2010
57
17
Martes
13
Mircoles
15
Jueves
19
Viernes
14
Sbado
16
Domingo
11
PROBLEMA: ABASTECIMIENTO
Una empresa abastecedora de agua tiene que llevar agua de un punto s a un punto t
y para realizar la conexin entre ambos puntos ha de pasar por unos puntos intermedios.
Cada conexin entre un par de puntos tiene un coste estimado de construccin y, una
vez construida, un coste unitario de envo de cada litro y una capacidad por hora que se
recogen en la siguiente tabla:
Conexin
Coste
Coste envo
Capacidad
construccin
l/min
l/min
s1
100000
40
100
s2
200000
50
200
13
80000
60
50
1t
100000
70
30
23
200000
40
20
2t
200000
70
100
3t
150000
60
60
58
18/02/2010
MODELOS DE OPTIMIZACIN
Precisin
Coste
(piezas/hora)
(%)
(/hora)
Tipo 1
20
99
2.00
Tipo 2
15
95
1.75
Tipo 3
10
99
1.50
Cada da (8 horas) se deben procesar por lo menos 3500 piezas y hay disponibles 8
mquinas del tipo 1, 10 del tipo 2 y 20 del tipo 3.
Si cada pieza errnea le cuesta a la compaa 1 cntimo. Cuntas mquinas de cada
tipo se deben utilizar para minimizar los costes?
T1 T2 T3 T4
Tiempo de proceso
Fecha de entrega
15 19 23 31
12
14
PROBLEMA: PRODUCCIN II
En una empresa familiar se producen dos tipos de productos, 1 y 2, procesando
materia prima. Se pueden comprar hasta 90 kg de materia prima a un coste de 10 /kg.
Se puede usar 1 kg de materia prima para producir 1 kg de producto 1 o para producir
1/2 kg del producto 2. Usar 1 kg de materia prima para producir el producto 1 requiere 2
horas de mano de obra. Usar 1 kg de materia prima para procesar el producto 2 requiere
18/02/2010
59
60
Italiano
Griego
Portugus
18/02/2010
MODELOS DE OPTIMIZACIN
Espaol
Francs
Italiano
Griego
Por otra parte, estas mismas relaciones internacionales hacen que si una tripulacin
est formada por el aviador espaol y el italiano la otra ha de estar formada por el
aviador francs y el griego. Formular el problema de programacin lineal entera.
Octano
Azufre
12
0.5
2.0
18/02/2010
61
de gasolina, aumenta la demanda diaria de ese tipo de gasolina en 0.1 barriles (si por
ejemplo gasta 1000 en publicidad de la gasolina 1 aumenta la demanda de gasolina 1
en 100 barriles). Formular un problema de programacin lineal que permita a Sunco
maximizar sus ganancias diarias.
PROBLEMA: PRODUCCIN VI
Una planta de produccin dispone de m mquinas para llevar a cabo su produccin.
La demanda semanal del producto es conocida para las siguientes n semanas, dem j
siendo j cada una de las semanas, y ha de ser satisfecha. Cada una de las mquinas i
puede estar arrancada y produciendo durante cada semana o no, pero si lo est tiene un
coste fijo por estar arrancada de cfi , siendo su produccin mxima pmi . Adems, el
coste unitario de produccin con cada una de las mquinas es variable con las semanas,
siendo cvij por unidad de producto, y el coste de almacenamiento de una semana a
otra est estimado en calm por unidad de producto. Por otra parte, arrancar una
mquina para acoplarla una semana si no lo estaba la anterior tiene un coste de arranque
carri . Se supone que todas las mquinas inicialmente estn arrancadas (no hay coste de
arranque para la primera semana).
a)
b)
Sobre la formulacin anterior supngase ahora que cuando una mquina para, ha
de hacerlo al menos dos semanas consecutivas por razones tcnicas, cmo se
modelara esta nueva condicin?
62
18/02/2010
MODELOS DE OPTIMIZACIN
ci . La empresa de transporte desea tener un modelo que le permita elegir cada da las
cantidades de las mercancas que le proporcionen mayor beneficio a partir de estos
datos diarios.
A su vez, puede variar la capacidad del material rodante, tanto en volumen o peso,
de modo que desea saber en cunto puede valorar cada unidad extra de volumen y de
peso de la que puede disponer, para saber cunto puede estar dispuesto a pagar por un
aumento de stos.
Por otra parte, a los propietarios de las mercancas que no son transportadas, puede y
debe informarles de la cantidad en la que deberan aumentar su oferta para que su
mercanca fuera transportada (en detrimento de otras).
a) Presentar un modelo lineal para este problema, suponiendo que las cantidades se
pueden fraccionar. Qu elementos del modelo daras como resultado para
responder a las distintas preguntas planteadas?
b) Supngase ahora que la oferta conlleva un descuento por volumen de modo que la
cantidad que un propietario paga por cada unidad es de la forma ai gi xi , donde xi
es la cantidad transportada. Plantear el nuevo modelo.
c) Sobre el planteamiento del apartado a), supngase que lo que hay es una capacidad
de volumen y peso por vagn, V y P , y que hay que decidir adems de cunto
transportar, cuntos vagones hay que enganchar, existiendo un coste unitario por
vagn utilizado, cvag . Plantear el nuevo modelo.
18/02/2010
63
Una compaa discogrfica est pensando en editar una coleccin de grandes xitos
de uno de sus cantantes ms famosos. Todas sus canciones han sido agrupadas en doce
lotes. Cada lote ocupa tiene un cierto tamao expresado en MB y tiene asociado un
ndice de marketing (relacionado con su demanda esperada).
Lote Tamao ndice marketing
1
350
15
300
32
160
20
310
25
260
35
250
10
400
40
100
34
520
24
10
170
16
11
300
36
12
360
26
Los lotes van a ser grabados en una serie de CDs, cada uno con una capacidad
mxima de 700 MB. Adems, para que el CD funcione en el mercado, se estima que
debe tener un ndice de marketing superior a 45. Por otro lado, y dado el contenido de
sus canciones, los lotes 1, 2 y 3 se han de grabar en CDs distintos. El objetivo de la
compaa es maximizar el nmero de CDs editados, utilizando todos los lotes de
canciones y sin editar ms de una vez el mismo lote.
64
18/02/2010
MODELOS DE OPTIMIZACIN
quiera utilizar para transportar a esas personas, datos que se dan en la siguiente tabla en
miles de euros
Tipo 1
11 20 30 40 50
9 17 24 34 45
8 15 21 26 31
Adems la compaa area incurre en un coste fijo adicional de 6 k por cada tipo
de aviones que utilice.
Proponer un modelo de programacin lineal entera cuyo objetivo sea determinar la
composicin ptima de la flotilla de aviones que va a realizar el transporte para
minimizar los costes de la operacin.
PROBLEMA: PROVEEDORES
Tres almacenes deben abastecer a cuatro mercados de cierto nmero de unidades de
un producto. Los costes unitarios de transporte (en ), las existencias en los almacenes y
las necesidades de los mercados se dan en la tabla siguiente.
M1 M2 M3 M4 Existencias en almacenes
A1
220
A2
10
350
A3
270
18/02/2010
65
200
250
Los costes de fabricacin de un kilo de cada pienso son de 0.3 para P1 y de 0.36
para P2. Las necesidades diarias de una res respecto a los nutrientes considerados son:
N1: entre 250 y 300 gramos, con una cantidad ptima de 250 gramos
N2: entre 325 y 460 gramos, con una cantidad ptima de 400 gramos
una res respecto al valor ptimo antes indicado requiere un tratamiento compensatorio,
con costes de 0.01 por gramo, en el caso de N1, 0.005 por gramo en el caso de N2 y
de 0.008 por gramo en el caso de N3.
1.
2.
66
18/02/2010
MODELOS DE OPTIMIZACIN
Cerdos
M1 M2 M3 Disponibilidad
M1 M2 M3 Disponibilidad
G1
25 21 20
25
130
G2
27 19 25
32
100
Demanda 17
22
45 85 76
18/02/2010
67
1500
1200
10
800
750
915
315
10
1450
650
725
10
1800
12
68
18/02/2010
MODELOS DE OPTIMIZACIN
18/02/2010
69
s.a.
ij
capi
dem j
ij
X ij capacij
i, j
X ij 20Yij
i, j
X ij , Yij 0, Yij
Objetivo: 825
Cantidades
D1
D2
D3
E1
E2
E3
E4
80
60
0
40
60
60
80
0
80
40
Camiones
E1
E2
E3
E4
0
2
3
3
4
0
4
2
D1
D2
D3
min
c T + 200Y
i i
s.a. Ti =
Ti =
X j neci
X j + Y neci
j i +1,i + 2
j i +1,i + 2
i 5, 6, 7
i = 5, 6, 7
Y 3
X i , Ti , Y 0
L
8
M
2
X
2
J
4
V
3
S
3
D
0
Extra
0
COSTE: 6730
RESULTADO DEL PROBLEMA PRODUCCIN
70
18/02/2010
MODELOS DE OPTIMIZACIN
s.a.
i, j
ij
X i disp j M j
X i 0, M j {0,1}
Beneficio
1435
P1
50
P2
100
P3
P4
150
i, j
ai i
v j j
ij
ij
xij 0
El avin A1 hace 50 viajes a la aldea V1, el avin A2 hace 40 a la aldea V3 y 20 a la
V5, y el avin A3 hace 50 a la aldea V2 y 40 a la V4. La cantidad total de alimentos
repartidos es 1870.
i, j
ci yi
dj
ij
ij
xij 0, yi {0,1}
18/02/2010
71
i , j ,k
aik
i, k
b jk
j , k
tij
i, j
ijk
ijk
ijk
xijk 0
Frigorficos
Barcelona
A Corua
Valencia
Alicante
1500
3500
Huelva
2500
5000
500
Lavadoras
Barcelona
A Corua
Valencia
Alicante
3000
4000
Huelva
3000
i , j ,k
i , j ,k
x hi
ik ijk
i , j ,k
j ,k
ijk
b jk
j , k
xijk 0
72
A1
D1
D2
D3
F1
600
500
F2
840
18/02/2010
MODELOS DE OPTIMIZACIN
A1
D1
D2
D3
F1
1200
F2
700
500
18/02/2010
73
min 4 x1 + 4 x2 + 4 x3 + 4 x4 + 3 x5 + 4 x6 + 3 x7 + 3 x8
x1 + x2 + x6 1
x1 + x3 + x5 + x8 2
x1 + x2 + x3 + x7 1
x1 + x3 + x6 1
x2 + x4 + x6 1
x3 + x8 1
x2 + x4 + x5 1
x5 + x7 1
x4 + x7 1
x4 + x6 + x8 1
x2 + 1
o bien { x5 + x7 2 2 x2
x5 + x7 2 0
xi , {0,1}
min xi
i =1
x1 +
x4 + x5 + x6 + x7 17
x1 + x2 +
x5 + x6 + x7 13
x1 + x2 + x3 +
x6 + x7 15
x1 + x2 + x3 + x4 +
x1 + x2 + x3 + x4 + x5
x2 + x3 + x4 + x5 + x6
x7 19
14
16
x3 + x4 + x5 + x6 + x7 13
xi Z +
74
18/02/2010
MODELOS DE OPTIMIZACIN
Se eligen las conexiones (s1), (s2), (13), (1t), (2t) y (3t) y pasa un flujo de
80, 100, 50, 30, 100 y 50 respectivamente. El coste total es 853300.
18/02/2010
75
ij
1
pi sujeto a:
4 i
= 1 j
ij
= 1 i
rx .
j j ij
- Por otra parte, el trabajo j que acaba en esa posicin acaba en el instante
d
j
k i
d x
j
k i
kj
+ ni pi = rj xij
- ni , pi 0 xij {0,1}
y1 + 2 y2 90
2 y1 + 6 y2 300
y2 40
15u1 y1 30u1
10u2 y2 20u2
y1 , y2 0, u1 , u2 = {0,1}
76
18/02/2010
MODELOS DE OPTIMIZACIN
max pk yk e tk xk c xk
k
t x
k
yk = ak xk , k
uk y k yk uk y k , k
xk , yk 0, uk = {0,1} , k
ii + pi di = ii +1
pi pi
ii ii
i1 = 250, i5 = 100
ii , pi 0
18/02/2010
77
max 7000( x11 + x21 ) + 6000( x12 + x22 ) - 4500( x11 + x12 ) - 3500( x21 + x22 )
-400( x11 + x12 + x21 + x22 ) - y1 - y2
x11 + x12 5000
x21 + x22 5000
x11 + x12 + x21 + x22 9000
12 x11 + 6 x21 10( x11 + x21 )
12 x12 + 6 x22 8( x12 + x22 )
0.5 x11 + 2 x21 x11 + x21
0.5 x12 + 2 x22 2( x12 + x22 )
x11 + x21 = 3000 + 0.1 y1
x12 + x22 = 2000 + 0.1 y2
x11 , x12 , x21 , x22 , y1 , y2 0
Pij pmi ij i, j
Arrij Parij = ij ij 1 i, j 2
a)
i 0 = 1
Pij , Al j 0, ij {0,1}
Arrij {0,1} Arrij 0
ij 1 + ij +1 ij 1 i, 2 j n 1
b)
o bien
ij + ij +1 2 2 Parij i,1 j n 1
78
18/02/2010
MODELOS DE OPTIMIZACIN
max z = (bi ci ) xi
i
v x
px
i i
a)
i i
0 xi mxi
v x
px
i i
b)
i i
0 xi mxi
v x
Vy j
px
Py j
i ij
c)
i ij
ij
mxi
y j {0,1}
xij 0,
o bien
max z = (bi ci ) xi cvag y
i
v x
Vy
px
Py
i i
i i
0 xi mxi
y
18/02/2010
79
ij
= 1 i
tam x
700 y j
indi x
45 y j
i ij
i ij
x1 j + x2 j + x3 j 1 j
xij , y j {0,1}
RESULTADO DEL PROBLEMA VUELOS CHARTER
min Cij xij + 6 yi
CAP j x
CAP j x
i, j
ij
ij
yi
i, j
i, j
o bien
xij , yi {0,1}
ij
ij
1 i
xij {0,1}
ij
ai
ij
= dj
1.
X ij MYij
X ij 0, Yij {0,1}
80
18/02/2010
MODELOS DE OPTIMIZACIN
ij
ai
ij
= dj
X ij MYij
2. X ij = X ij+ + X ij
ij
i, j
ki (1 Z i ) i
X ij mij Z i
i, j
X i min j
X i max j
X i + D j E j = opt j
ij
a)
ij
ij
Xi , Dj , E j 0
b) Dos modelos alternativos:
min ci X i + Extra + p j ( D j + E j )
i
X i min j
X i max j
X i + D j E j = opt j
ij
ij
ij
X1 2 X 2 M
Extra 0.05 X 1 M (1 )
X i , D j , E j , Extra 0 {0,1}
18/02/2010
81
X i min j
X i max j
X i + D j E j = opt j
ij
ij
ij
X 1 = X 1 + X 1+
X1 2 X 2 M
X 1 M (1 )
X 1+ M
X i , X 1 , X 1+ , D j , E j 0 {0,1}
82
18/02/2010
MODELOS DE OPTIMIZACIN
min
DISPik
x + FIJOk zijk )
i, k
ijk
DEM jk
j , k
ijk
N ik
( COSTE
k
ijk
ijk ijk
i, j
i, k
i, j , k
b)
n vehculo
18/02/2010
83
kn
kn
kn
VOLk xijk
+ VOLk yijk
knij
CAPk vij
(x
k n
+ yijk
) DEM jk jk
(x
k n
+ yijk
) DISPik ik
kn
ijk
ni
kn
ijk
nj
kn
ij
1 ikn
kn
kn
xijk
, yijk
, viknj {0,1}
La solucin ptima con una tolerancia relativa del 3 % tiene un coste de 4943 .
M1
Vehculos
Vehculos
de vacas
de cerdos
M2
G1
M3
M1
M2
M3
(8,0)
(0,23)
(0,26)
(0,24)
(8,0)
(1,22)
(0,26)
(0,26)
(0,26)
(0,26)
(6,0)
G2 (8,0)
(8,0)
84
(6,7)
18/02/2010
MODELOS DE OPTIMIZACIN
min Y j
j =1
X
j =1
ij
= 1 i
I
AX
i =1
ij
AY j
min D j
j =1
AX
i =1
18/02/2010
ij
+ D j = AY j
85
6 jX ij + ADi RTi = Fi
6 jX
i o bien
j =1
j =1
ij
RTi Fi
jk
ij
ei
jk
= dk
Y
j
X
i
ij
= Y jk
X ij , Y jk 0
X ij , Y jk ??
1 le provee distribuidor 1
2. Nueva variable: Z =
0 le provee distribuidor 2
Aadir al modelo las restricciones:
Y11 MZ
Y21 M (1 Z )
Z {0,1}
86
18/02/2010
MODELOS DE OPTIMIZACIN
3. Entiendo por el enunciado que las m primeras siempre cuestan lo mismo y las
que se pasen son las que tienen descuento (no todas una vez se pasan).
Nuevas variables
N jk , Pjk : exceso y defecto sobre el valor m
1 si N jk > 0
0 si Pjk > 0
jk =
Y jk = m + N jk Pjk
N jk M jk
j , k
j , k
Pjk M (1 jk ) j , k
(Estas dos ltimas son necesarias pues si no pueden ser distintas de 0 ambas a la
vez, para un mismo valor de Y y lograr menor coste).
P
4. Sea cap = nmero de artculos que caben en un camin. Sean las variables:
p
18/02/2010
X ij capTij
i, j
Y jk cap S jk
j , k
87
MODELOS DE OPTIMIZACIN
abierto
para
investigacin
operativa
denominada
Computational
18/02/2010
89
Los optimizadores de las hojas de clculo, por ser aplicaciones muy comunes y
conocidas, pueden ser un vehculo eficaz de difusin de un modelo entre cierto tipo
de usuarios y facilitan el manejo de datos que se encuentren ya en dicho formato
[Ragsdale, 1998]. Como ventajas especficas se pueden mencionar: su facilidad de
uso, su integracin total con la hoja de clculo, la familiaridad con el entorno que
facilita la explicacin del modelo y de sus resultados, as como la facilidad de
presentacin de resultados en grficos. Sin embargo, no inducen una buena prctica
de programacin, presentan la dificultad de su desarrollo, verificacin, validacin,
actualizacin, documentacin y, en general, el mantenimiento del modelo y no
permiten modelar problemas complejos o de gran tamao [Gass, 1995]. Frontline
Systems (www.solver.com) ha desarrollado optimizadotes para Microsoft Excel.
Los lenguajes de clculo numrico o simblico no son especficos de problemas de
optimizacin pero facilitan la manipulacin numrica o simblica de matrices y
vectores. Tambin disponen de funciones de optimizacin.
Todas estas alternativas pueden ser utilizadas para desarrollo rpido de un prototipo
o una demostracin ya que presentan capacidades de presentacin grfica que
pueden ser aprovechadas. Son difcilmente utilizables cuando se plantean problemas
de optimizacin de tamao medio o superior.
90
18/02/2010
MODELOS DE OPTIMIZACIN
18/02/2010
91
Separan de manera natural los datos de la estructura del modelo y sta de los
algoritmos de solucin
92
18/02/2010
MODELOS DE OPTIMIZACIN
Una manera habitual de desarrollar es utilizar una maqueta (caso ejemplo) para la depuracin y
18/02/2010
93
IV.1.3. Referencias
Brooke, A., Kendrick, D., Meeraus, A. and Raman, R. (1998) GAMS A Users Guide.
GAMS Development Co.
Fourer, R., Gay, D.M. and Kernighan, B.W. (2000) AMPL: A Modeling Language for
Mathematical Programming. The Scientific Press. 2nd ed.
Ragsdale, C. T. (1998) Spreadsheet modeling and decision analysis: a practical
introduction to management science. South-Western College. 2nd ed.
Gass, S.I., Hirshfeld, D.S. and Wasil, E.A. (1995) Model World: The Spreadsheeting
of OR/MS Interfaces pp. 72-81. September-October.
verificacin del modelo y una vez comprobada su validez utilizar el caso real a ser resuelto.
94
18/02/2010
MODELOS DE OPTIMIZACIN
McCarl, B.A. and Spreen, Th.H. (1998) Applied Mathematical Programming using
Algebraic Systems. Technical Report.
Mochol, M. y Sala, R. (1996) Decisiones de optimizacin Tirant lo Blanch. Valencia.
Sharda, R. and Rampal, G. (1995) Algebraic Modeling Languages on PCs OR/MS
Today pp. 58-63. June.
Van Hentenryck, P. (1999) The OPL Optimization Programming Language. The MIT
Press.
En
Internet,
se
pueden
encontrar
complementos
que
mejoran
18/02/2010
95
X 20
X + Y 100
X + Y 50
X ,Y 0
Por otra parte, los dos atributos planteados y su direccin de optimizacin, seran:
Calidad: max X
Coste: min 200 X + 100Y
A continuacin se muestra cmo formular este modelo de programacin lineal en
Excel. El archivo original se adjunta con el documento (Ejemplo 1_Modelo.xls)
96
18/02/2010
MODELOS DE OPTIMIZACIN
A continuacin, para cada objetivo, marcar una celda que contendr la frmula de
ese objetivo como funcin de las variables. Por ejemplo, para el criterio Calidad, cuya
expresin es la cantidad del componente 1, en el ejemplo se ha seleccionado la celda C3
donde se ha escrito =A2 , ya que es la celda donde est el valor de X. Para el criterio
Coste, se ha introducido la expresin en la celda C4, = 200*A2+100*B2. Las celdas
con las expresiones de los objetivos vienen resaltadas en rosa.
Para introducir cada una de las restricciones, se selecciona una celda con la
expresin del lado izquierdo de la restriccin, y otra con el lado derecho de la
restriccin. Por ejemplo, para indicar que del componente 1 ha de haber al menos un
20%, en la celda B7 se ha introducido =A2; y en la celda C7, se ha introducido 20. Para
indicar que la suma de ambos componentes ha de ser a lo sumo el 100%, en la celda B8
se ha introducido =A2+B2, y en la celda C8 100 . Por ltimo, para que la suma sea de
al menos el 50%, se ha introducido en la celda B9 =A2+B2, y la celda C9 100 . Todas
estas celdas estn con fondo naranja.
Con esto se han introducido los datos del modelo que se montar y resolver con el
complemento Solver. Este complemento viene por defecto en Excel, pero no siempre
est activado. Si al ir al men de Herramientas, no apareciera, haga click sobre
Complementos, y en la pantalla que se abrir, active la lnea que pone Solver. Para
montar el modelo, vaya al men Herramientas y haga click sobre Solver. Aparecer una
pantalla como la siguiente, titulada Parmetros de Solver, pero vaca.
18/02/2010
97
Donde pone Celda Objetivo, marque la celda donde est la expresin del objetivo
que desea optimizar. En la imagen est C3 (por defecto Solver lo pone con dlares entre
medias), que es que se va a optimizar la Calidad, cuya expresin pusimos en esa celda.
Donde pone Valor de la celda objetivo, puede marcar Mximo si desea maximizar
ese atributo, Mnimo si desea minimizar, y otra opcin no relevante para nuestro
propsito. En este caso, siendo Maximizar la Calidad el criterio, marcamos Mximo.
Despus pregunta acerca de las celdas que contienen el valor de las variables. En ese
cuadro debe marcar las celdas donde estn las variables, en nuestro caso A2 y B2.
En cuanto a las restricciones, pulse Agregar para ir aadindolas. Observar que se
abre una ventana como la que sigue:
Donde pone Referencia de la celda, deber marcar la celda con la expresin del lado
izquierdo de la restriccin. Donde pone Restriccin, la celda que recoge el lado derecho
de la restriccin. Y en medio, da a elegir entre 5 opciones: <= para restricciones de
menor o igual, = para restricciones de igualdad, >= para restricciones de mayor o igual,
int para que las variables marcadas en el lado izquierdo tengan que ser variables que
slo toman valores enteros, y bin para indicar que las variables marcadas en el lado
izquierdo slo puedan tomar valores 0 o 1.
En el ejemplo, la primera restriccin (de la componente 1 ha de haber al menos un
20%) la hemos contemplado en las celdas B7 y C7, y es una restriccin de mayor o
igual con lo que debemos escribir:
98
18/02/2010
MODELOS DE OPTIMIZACIN
Como norma general, son parmetros bastante tcnicos, pero hay dos que es
necesario tocar, y alguno que es conveniente. Los que son necesarios es marcar Adoptar
modelo lineal, y Asumir no negativos (especialmente ste ltimo, ya que es donde
18/02/2010
99
indicamos que las variables slo pueden tomar valores positivos). Tambin es
recomendable reducir algunos de los nmeros que aparecen por defecto (los de
Precisin, Tolerancia y Convergencia), pero no se puede llegar a poner 0 que sera lo
ideal. Pulsar Aceptar para tener todo el modelo y volver a la pantalla de Parmetros de
Solver, donde pulsando Resolver, resolver el modelo dando los resultados en las celdas
indicadas, despus de emitir un mensaje en que dice: Solver ha hallado una solucin. Se
han satisfecho todas las restricciones y condiciones. Y pregunta si se quiere utilizar la
solucin de Solver, a lo que se debe decir Aceptar.
100
18/02/2010
MODELOS DE OPTIMIZACIN
18/02/2010
E1
E2
E3
E4
Capacidad
D1
80
70
150
D2
60
90
85
300
D3
40
60
50
250
Demanda
130
200
150
250
101
Adems, cada unidad que se enve a las gasolineras le supone un beneficio de 7 u.m. y
los envos se llevan a cabo en camiones cuya capacidad es de 20 unidades cada uno, con
un coste estimado por camin en cada una de las rutas de:
Costes (u.m.)
E1
E2
E3
E4
D1
100
125
D2
100
125
100
D3
75
100
125
s.a.
ij
capi
dem j
ij
X ij capacij
i, j
X ij 20Yij
i, j
X ij , Yij 0, Yij
Objetivo: 825
Cantidades
E1
E2
E3
E4
E1
E2
E3
E4
D1
80
60
D1
D2
60
80
80
D2
D3
40
60
40
D3
Camiones
102
18/02/2010
MODELOS DE OPTIMIZACIN
de conductores para operar los trenes vara dependiendo del da, siendo, de lunes a
domingo, de 18, 16, 15, 16, 19, 14 y 12 conductores respectivamente. El coste de
personal vara a lo largo de la semana. Para un da cualquiera de lunes a viernes el coste
es de 50 por da, los sbados se pagan a 75 y los domingos a 90.
Adems se puede recurrir a la contratacin parcial de hasta 3 personas que
trabajaran los viernes, sbados y domingos por un coste de 200 . Determinar el
esquema ptimo de turnos de trabajo de dichos conductores.
SOLUCIN:
c T + 200Y
i i
s.a. Ti =
Ti =
X j neci
X j + Y neci
j i 1,i 2
j i 1,i 2
i 5, 6, 7
i = 5, 6, 7
Y 3
X i , Ti , Y 0
COSTE: 6730
L
M
8
X
2
J
2
V
4
S
3
D
3
Extra
0
18/02/2010
103
M1
M2
P1
P2
P3
P4
Disponible
M3
200 150
M4
M5
Precio venta
15
20
15
10
150
200
100
s.a.
i, j
ij
X i disp j M j
X i 0, M j {0,1}
Beneficio
104
1435
P1
50
P2
100
P3
P4
150
18/02/2010
MODELOS DE OPTIMIZACIN
ij
ij
c x
ij ij
18/02/2010
105
SETS
I fbricas de envasado / VIGO, ALGECIRAS /
J mercados de consumo
PARAMETERS
A(i) capacidad de produccin de la fbrica i [cajas]
/ VIGO
350
ALGECIRAS 700 /
B(j) demanda del mercado j [cajas]
/ MADRID
400
BARCELONA 450
VALENCIA
150 /
TABLE C(i,j) coste unitario transporte entre i y j [miles de euros por caja]
MADRID BARCELONA VALENCIA
VIGO
0.06
0.12
0.09
ALGECIRAS
0.05
0.15
0.11
VARIABLES
X(i,j) cajas transportadas entre fbrica i y mercado j [cajas]
CT
POSITIVE VARIABLE X
EQUATIONS
COSTE
[miles de euros]
COSTE ..
[cajas]
DEMANDA(j) ..
106
18/02/2010
MODELOS DE OPTIMIZACIN
COMPILATION TIME
Equation Listing
---- COSTE
COSTE..
0.000 SECONDS
0.7 Mb
WIN-19-115
=E=
[miles de euros]
- 0.05*X(ALGECIRAS,MADRID) - 0.15*X(ALGECIRAS,BARCELONA)
---- CAPACIDAD
=L=
CAPACIDAD(VIGO)..
(LHS = 0)
X(VIGO,MADRID)
CAPACIDAD(ALGECIRAS)..
X(VIGO,BARCELONA)
[cajas]
X(VIGO,VALENCIA)
=L=
350
X(ALGECIRAS,MADRID) + X(ALGECIRAS,BARCELONA)
---- DEMANDA
=G=
DEMANDA(MADRID)..
DEMANDA(VALENCIA)..
INFES=150***)
Column Listing
---- X
X(VIGO,VALENCIA)
X(ALGECIRAS,VALENCIA)
=G=
150;
(LHS
0,
X(VIGO,MADRID)
(.LO, .L, .UP = 0, 0, +INF)
18/02/2010
107
-0.06
COSTE
CAPACIDAD(VIGO)
DEMANDA(MADRID)
X(VIGO,BARCELONA)
(.LO, .L, .UP = 0, 0, +INF)
-0.12
COSTE
CAPACIDAD(VIGO)
DEMANDA(BARCELONA)
X(VIGO,VALENCIA)
(.LO, .L, .UP = 0, 0, +INF)
-0.09
COSTE
CAPACIDAD(VIGO)
DEMANDA(VALENCIA)
---- CT
CT
(.LO, .L, .UP = -INF, 0, +INF)
1
COSTE
Model Statistics
MODEL STATISTICS
BLOCKS OF EQUATIONS
SINGLE EQUATIONS
BLOCKS OF VARIABLES
SINGLE VARIABLES
19
GENERATION TIME
0.140 SECONDS
1.4 Mb
WIN-19-115
EXECUTION TIME
0.140 SECONDS
1.4 Mb
WIN-19-115
S O L V E
S U M M A R Y
MODEL
TRANSPORTE
OBJECTIVE
CT
TYPE
LP
DIRECTION
MINIMIZE
SOLVER
CPLEX
FROM LINE
39
1 NORMAL COMPLETION
1 OPTIMAL
108
93.5000
18/02/2010
MODELOS DE OPTIMIZACIN
0.401
GAMS/Cplex
1000.000
10000
Cplex 6.6.1, GAMS Link 16, Using a GAMS/Cplex demo license installed at runtime.
Objective :
93.500000
COSTE
LOWER
LEVEL
UPPER
1.000
[miles de euros]
LOWER
LEVEL
UPPER
MARGINAL
-0.030
VIGO
-INF
350.000
350.000
ALGECIRAS
-INF
650.000
700.000
MARGINAL
[cajas]
LOWER
LEVEL
UPPER
MARGINAL
MADRID
400.000
400.000
+INF
0.050
BARCELONA
450.000
450.000
+INF
0.150
VALENCIA
150.000
150.000
+INF
0.110
---- VAR X
LOWER
LEVEL
UPPER
MARGINAL
VIGO
.MADRID
+INF
VIGO
.BARCELONA
350.000
+INF
VIGO
.VALENCIA
+INF
ALGECIRAS.MADRID
400.000
+INF
ALGECIRAS.BARCELONA
100.000
+INF
ALGECIRAS.VALENCIA
150.000
+INF
LOWER
LEVEL
18/02/2010
UPPER
0.040
.
0.010
MARGINAL
109
---- VAR CT
CT
-INF
93.500
+INF
NONOPT
0 INFEASIBLE
0
EXECUTION TIME
UNBOUNDED
0.030 SECONDS
0.7 Mb
WIN-19-115
INPUT
D:\TR.GMS
OUTPUT
D:\TR.LST
SETS
M mquinas
/ maquina1 * maquina3 /
110
maquina1
maquina2
maquina3
prensa
53
52
49
folio
51
49
44
imprenta
52
45
47
reciclado
42
44
40
18/02/2010
MODELOS DE OPTIMIZACIN
maquina2
maquina3
prensa
76
75
73
folio
82
80
78
imprenta
96
95
92
reciclado
72
71
70
precio
30000
77
folio
20000
81
imprenta
12000
99
8000
105
reciclado
672
maquina2
600
maquina3
480 /
VARIABLES
PRODUCC(p,m) produccin de cada tipo papel en cada mquina (t por mes)
BENEFICIO
beneficio
( por mes)
EQUATIONS
CAPACMAQ(m) capacidad de cada mquina
(h
por mes)
beneficio
por mes) ;
BENEF
18/02/2010
111
TR2
TR3
TR4
TR5
15
13
12
14
16
y del tiempo de ajuste de la mquina para pasar de ejecutar el trabajo i (fila) a ejecutar
el trabajo j (columna)
TR1
TR2
TR3
TR4
TR5
TR1
TR2
TR3
TR4
TR5
5
3
SETS
I trabajos que se van a ejecutar / TR1 * TR5 /
ALIAS (i,j)
TR2
TR3
TR4
TR5
TR2
TR3
TR4
112
18/02/2010
MODELOS DE OPTIMIZACIN
TR5
VARIABLES
X(i,j) paso del trabajo i al trabajo j
TT
BINARY VARIABLE X
EQUATIONS
TIEMPO
ANTERIOR(i)
POSTERIOR(j) a
TIEMPO
ANTERIOR(i)
i, j
ij
= 1 j
ij
= 1 i
(1.15)
18/02/2010
113
SETS
I Ciudades
K Etapas
ALIAS(I,J,R,S)
PARAMETER
COSTE(i,j)
VARIABLE
FOBJ
Funcin objetivo []
BINARY VARIABLES
X1(i,j)
X2(i,j,k)
POSITIVE VARIABLE
U(i)
EQUATIONS
E_FOBJ1
Funcin objetivo
E_ORIGEN1(i)
E_DESTINO1(j)
E_SUBCICLO1(i,j)
E_SUBCICLO2(i,j)
E_SUBCICLO3(i,j,r)
E_FOBJ2
Funcin objetivo
E_ORIGEN2(i)
E_DESTINO2(j)
E_ETAPA(k)
E_FOBJ1
E_ORIGEN1(i)
114
18/02/2010
MODELOS DE OPTIMIZACIN
E_SUBCICLO3(i,j,r)
E_SUBCICLO4(i,j,r,s) $(NOT SAMEAS(i,j) AND NOT SAMEAS(j,r) AND NOT SAMEAS(r,i) AND
NOT SAMEAS(r,s) AND NOT SAMEAS(s,i) AND NOT SAMEAS(s,j)) ..
X1(i,j) + X1(j,r) + X1(r,s) + X1(s,i) =L= 3;
E_FOBJ2
E_ORIGEN2(i)
E_DESTINO2(j)
E_ETAPA(k)
MODEL TSP1
MODEL TSP2
********************************************************************************
* Caso ejemplo: Schrage (1997) p. 319
* Esta informacin se podra introducir mediante ficheros de texto
* utilizando la instruccin $INCLUDE nombrefichero
SETS
I
Ciudades
/ Atl, Chi, Cin, Hou, LA, Mon, NY, Phi, Pit, StL, SD, SF /
Etapas
18/02/2010
/ 1 * 12 /
115
Chi
Cin
Hou
LA
Mon
NY
Phi
Pit
StL
SD
SF
Atl
702
454
842
2396
1196
864
772
714
554
2363
5679
Chi
702
324
1093
2136
764
845
764
459
294
2184
2187
Cin
454
324
1137
2180
798
664
572
284
338
2228
2463
Hou
842
1093
1137
1616
1857
1706
1614
1421
799
1521
2021
LA
2396
2136
2180
1616
2900
2844
2752
2464
1842
95
405
Mon
1196
764
798
1857
2900
396
424
514
1058
2948
2951
NY
864
845
664
1706
2844
396
92
386
1002
2892
3032
Phi
772
764
572
1614
2752
424
92
305
910
2800
2951
Pit
714
459
284
1421
2464
514
386
305
622
2512
2646
StL
554
294
338
799
1842
1058
1002
910
622
1890
2125
SD
2363
2184
2228
1521
95
2948
2892
2800
2512
1890
500
SF
2679
2187
2463
2021
405
2951
3032
2951
2646
2125
500
U.UP(i) = CARD(i) ;
OPTION OPTCR = 0
* Orden de ejecucin
116
18/02/2010
MODELOS DE OPTIMIZACIN
at
bt
Variables
Pht potencia producida por el grupo trmico t en la hora h [MW]
Aht acoplamiento del grupo trmico t en la hora h [0,1]
ARht arranque del grupo trmico t en la hora h [0,1]
PRht
18/02/2010
117
ht
= Dh
t =1
T
(P A
t
ht
Pht ) = RDh
t =1
2HT
(H 1)T
Pht Ph 1t rst
(H 1)T
Ph 1t Pht rbt
(H 1)T
Pht 0
SETS
T grupos trmicos /GALICIA, CATALUNA, MADRID, VALENCIA,
EXTREMAD, ANDALUCI, CASTLEON/
H hora h /h1 * h5/
SCALAR
r porcentaje de reserva rodante sobre la demanda [p.u.] /0.2/
PARAMETERS
d(h) demanda cada hora [MW]
/h1 1000 , h2 1400 , h3 2400 , h4 2000 , h5 1000/
pmax(t) pot mxima de cada trmico [MW]
/GALICIA 400, CATALUNA 500, MADRID 700, VALENCIA 400,
EXTREMAD 300, ANDALUCI 800, CASTLEON 800/
pmin(t) pot mnima de cada trmico [MW]
/GALICIA 100, CATALUNA 150, MADRID 150, VALENCIA 50,
EXTREMAD 50, ANDALUCI 400, CASTLEON 200 /
rs(t) rampa de subida [MW por hora]
/GALICIA 200, CATALUNA 300, MADRID 500, VALENCIA 300,
EXTREMAD 100, ANDALUCI 500, CASTLEON 400/
rb(t) rampa de bajada [MW por hora]
/GALICIA 300, CATALUNA 300, MADRID 200, VALENCIA 100,
EXTREMAD 100, ANDALUCI 500, CASTLEON 400/
c(t)
118
18/02/2010
MODELOS DE OPTIMIZACIN
b(t)
VARIABLES
CT
A(t,h)
AR(t,h) arranque
PR(t,h) parada
P(t,h)
EQUATIONS
COSTE
DEMANDA(h)
RESERVA(h)
COTASUP(t,h)
COTAINF(t,h)
18/02/2010
119
P.UP(t,h) = pmax(t)
OPTION OPTCR = 0
Variables
Ecuaciones
Modelo
120
18/02/2010
MODELOS DE OPTIMIZACIN
Inclusin y manipulacin de
datos de entrada
Acotamiento e inicializacin
de variables
t =1
h =1
n =1
18/02/2010
121
i =1
j =1
h n
Fi j = i j
GTRt .
GTRt GTRt GTRt
La potencia hidrulica programada de cada grupo h puede tomar como valor
mximo GHPh , valor dado por un programa de coordinacin hidrotrmica de jerarqua
superior.
0 GHPh GHPh
122
18/02/2010
MODELOS DE OPTIMIZACIN
0 PNSn Dn
GTR
t n
i =1
j =1
i j Fi j
Xi j
SB
Xi j
SB
ri j
1 cos(i j )
ri j + X i2 j
2
Las cotas en las variables no cuentan como restricciones desde el punto de vista del tiempo de
18/02/2010
123
i =1
j =1
h n
Ln = Li n + Ln j / 2
i =1
j =1
SETS
ND
nudos
GR
generadores
TR(gr)
generadores trmicos
HD(gr)
generadores hidrulicos
lneas
CN caractersticas nudos
/ dem, cpns /
/ r, x, flmax /
SCALARS
SBASE
/ 0.1 /
PARAMETERS
DATNUD(nd,cn)
DATGEN(gr,cg)
124
18/02/2010
MODELOS DE OPTIMIZACIN
VARIABLES
COSTE
funcin objetivo
[M]
TT(nd)
[rad]
[GW]
POSITIVE VARIABLES
GTR(gr)
generacin trmica
[GW]
GHP(gr)
[GW]
GHE(gr)
[GW]
PNS(nd)
potencia no suministrada
[GW]
EQUATIONS
FO
KR1F(nd)
KR1A(nd)
FLJ(ni,nf)
sentido
FO
SUM[hd, DATGEN(hd,'cshd')
* GHE(hd)]
SUM[nd, DATNUD(nd,'cpns')
* PNS(nd)] ;
KR1F(nd) ..
SUM[NDGR(nd,tr), GTR(tr)] + SUM[NDGR(nd,hd), GHP(hd) + GHE(hd)]
+ SUM[LN(ni,nd), FL(ni,nd)] - SUM[LN(nd,nf), FL(nd,nf)]
+ PNS(nd) =E= DATNUD(nd,'dem') + PRDAS(nd) $OPCPRD ;
KR1A(nd) ..
SUM[NDGR(nd,tr), GTR(tr)]
+ SUM[NDGR(nd,hd), GHP(hd) + GHE(hd)]
+ SUM[LN(ni,nd), (TT(ni) - TT(nd)) / DATLIN(ni,nd,'x')] * SBASE
- SUM[LN(nd,nf), (TT(nd) - TT(nf)) / DATLIN(nd,nf,'x')] * SBASE
+ PNS(nd) =E= DATNUD(nd,'dem') + PRDAS(nd) $OPCPRD ;
FLJP(LN(ni,nf)) ..
TT(ni) - TT(nf) =L=
FLJN(LN(ni,nf)) ..
18/02/2010
125
MODEL FC
/ ;
/ ;
* caso de estudio
*** esta parte ira en ficheros independientes y se introducira con $include
SETS
ND
nudos
/ nudo-1 * nudo-9 /
GR
generadores
cpns
MW
/kWh
nudo-1
1500
nudo-2
240
1500
nudo-3
40
1500
nudo-4
160
1500
126
18/02/2010
MODELOS DE OPTIMIZACIN
nudo-5
240
1500
nudo-6
80
1500
nudo-7
100
1500
nudo-8
15
1500
nudo-9
100
1500
coste
pmin
pmax
/MWh
MW
MW
genr-1
65
75
genr-2
70
30
125
genr-3
75
10
100
genr-4
59
10
100
genr-5
67
50
genr-6
74
50
genr-7
61
10
100
genr-8
76
50
genr-9
80
50
cshd
hdrpro hdrmax
/kWh
genh-1
10
MW
MW
300
300
genh-2
10
150
160
genh-3
10
120
150
genh-4
10
90
100
flmax
p.u.
p.u.
nudo-1 . nudo-2
0.0777
0.2913
500
MW
nudo-1 . nudo-4
0.0544
0.2041
500
nudo-2 . nudo-3
0.0424
0.1695
500
nudo-2 . nudo-4
0.1
0.4
500
nudo-2 . nudo-5
0.05
0.2
500
nudo-2 . nudo-6
0.1
0.4
500
nudo-3 . nudo-5
0.0248
0.099
500
nudo-3 . nudo-8
0.1
0.4
500
nudo-4 . nudo-6
0.15
0.6
500
nudo-5 . nudo-6
0.05
0.2
500
nudo-5 . nudo-8
0.1
0.4
500
nudo-6 . nudo-7
0.15
0.6
500
nudo-6 . nudo-9
0.05
0.2
500
nudo-7 . nudo-9
0.05
0.2
500 ;
18/02/2010
127
TR(gr)
$DATGEN(gr,'pmax')
HD(gr)
$DATGEN(gr,'hdrpro') = YES ;
LN(ni,nf) $DATLIN(ni,nf,'x')
= YES ;
= YES ;
DATNUD(nd,'dem')
= DATNUD(nd,'dem')
/ 1e3 ;
DATGEN(tr,'pmin')
= DATGEN(tr,'pmin')
/ 1e3 ;
DATGEN(tr,'pmax')
= DATGEN(tr,'pmax')
/ 1e3 ;
= DATLIN(ln,'flmax')
/ 1e3 ;
GTR.LO(tr) = DATGEN(tr,'pmin') ;
GTR.UP(tr) = DATGEN(tr,'pmax') ;
GHP.UP(hd) = DATGEN(hd,'hdrpro') ;
GHE.UP(hd) = DATGEN(hd,'hdrmax') - DATGEN(hd,'hdrpro') ;
PNS.UP(nd) = DATNUD(nd,'dem') ;
FL.LO(ln)
= - DATLIN(ln,'flmax') ;
FL.UP(ln)
DATLIN(ln,'flmax') ;
TT.LO(nd) = - 1.5 ;
TT.UP(nd) =
1.5 ;
* nudo de referencia
TT.FX(nd) $(ORD(nd) EQ 1) = 0 ;
OPCPRD = 0 ;
SOLVE FC
128
USING
LP MINIMIZING COSTE ;
18/02/2010
MODELOS DE OPTIMIZACIN
OPTION BRATIO = 1 ;
LP MINIMIZING COSTE ;
OPCPRD = 1 ;
IV.4.1. Generales
La programacin no es un castigo divino para los humanos, es ciencia y arte. Es
ciencia en la medida que se pueden implantar modelos matemticos complejos y que el
pensamiento, la disciplina, la rigurosidad y la experimentacin acompaan este
desarrollo. El resultado es arte por la belleza, elegancia, sensacin que puede transmitir
un modelo y la profesionalidad de su creador.
Una forma de aprender a escribir con estilo y estructura ordenada es mediante la
lectura de ejemplos ilustrativos o de cdigo ajeno. Una manera de programar es por
refinamiento gradual de los detalles. Es importante recordar que en el desarrollo de una
aplicacin el diablo se esconde en los detalles.
La potencia y concisin de los modelos escritos en un lenguaje de modelado hacen
que el propio cdigo forme parte de la documentacin. De hecho la reutilizacin de
18/02/2010
129
modelos fue una de las causas que dieron origen a los lenguajes de modelado. La etapa
de diseo del modelo cobra gran importancia para permitir posteriores ampliaciones.
Por esta razn es importante el estilo en la programacin, que incide en la calidad y
mantenibilidad 8 del cdigo desarrollado. Pinsese que el tiempo dedicado a
mantenimiento y ampliacin de un modelo es muy superior al inicial de desarrollo. El
desarrollo y la depuracin del modelo se debe hacer con una maqueta (caso ejemplo
sencillo) para finalmente utilizar un problema real.
He aqu algunas recomendaciones para la escritura de un modelo que inciden en la
calidad del desarrollo:
MODULARIDAD
Se recomienda la introduccin de los datos tal como son recogidos y entendidos por el usuario y se
130
18/02/2010
MODELOS DE OPTIMIZACIN
separada por un blanco. El signo de igualdad en las asignaciones se separa por espacios
en blanco a ambos lados.
Establecer paralelismos o rplicas entre instrucciones consecutivas semejantes.
Las lneas de cdigo deben tener una longitud aproximada de 100 columnas, no
sobrepasando nunca las 110. Romper la instruccin en cuantas lneas sea necesario para
cumplir esta recomendacin.
Los comentarios deben ser suficientemente ilustrativos del contenido y estar bien
localizados. Deben ayudar a documentar la naturaleza y origen de los datos
Se deben utilizar nombres largos y descriptivos para las entidades del modelo.
Los nombres y los ndices de los parmetros, variables y ecuaciones han de ser
acrnimos que representen su significado. Se recomienda una longitud de hasta 10
caracteres para los primeros y de hasta 2 para los segundos. Los comentarios
explicativos pueden hacerse de hasta 80 caracteres.
Las definiciones de las entidades del modelo deben llevar las dimensiones fsicas del
problema.
Hacer un uso sistemtico de maysculas y minsculas con algn criterio
predefinido, que debe ser coherente y mantenerse a lo largo de todo el programa. Por
ejemplo, los nombres de los parmetros, variables y ecuaciones van en maysculas. Los
nombres de sus ndices van en minsculas.
REFORMULACIN MANUAL DEL PROBLEMA
18/02/2010
131
min
q xx
ij i
i =1 j =i +1
=1
j =1
n
r x
j
= r0
j =1
min x i
q x
ij
i =1
j =i +1
=1
j =1
n
r x
j
= r0
j =1
min x iwi
i =1
n
wi =
q x
ij
j =i +1
n
=1
j =1
n
r x
j
= r0
j =1
132
18/02/2010
MODELOS DE OPTIMIZACIN
Caso 2
19047
27262
81215
48971
63935
187059
21982
51079
40794
56133
135361
19%
37%
17%
12%
28%
Decremento
17%
10
El desarrollo de las tcnicas de preproceso y reformulacin han originado avances muy importantes
18/02/2010
133
utilizado para detectar errores en la formulacin. Por ejemplo, por excesivo nmero
de
ecuaciones
al
haber
puesto
dimensiones
superfluas
no
controladas
134
18/02/2010
MODELOS DE OPTIMIZACIN
mediante
las
opciones
disponibles
en
el
lenguaje
18/02/2010
135
Las cotas en las variables no cuentan como restricciones desde el punto de vista del
tiempo de clculo, ya que los algoritmos de optimizacin las tratan de forma
especfica. Las cotas pueden tener sentido fsico (y, por tanto, forman parte de la
naturaleza del problema) o ser algortmicas (es decir, cotas superfluas que nunca
deben ser activas en la solucin ptima pero que reducen el tiempo de
optimizacin).
El preproceso generalmente incluye procedimientos para el fortalecimiento de las
cotas de las variables (reduccin de las cotas superiores y aumento de las inferiores).
TRATAMIENTO EXPLCITO DE CONJUNTOS ORDENADOS SOSN
Los conjuntos ordenados (Special Ordered Sets SOS) son conjuntos de variables que
cumplen las siguientes condiciones:
Como mucho n elementos del conjunto toman valores diferentes de 0. El resto de
elementos ha de ser 0
Si hay n elementos que son diferentes de 0 deben ser contiguos
136
18/02/2010
MODELOS DE OPTIMIZACIN
CPLEX 6.0
MINOS 5.3
OSL 2.1
18/02/2010
Punto interior
Simplex dual
Simplex primal
Simplex primal
Punto interior
Simplex primal
Caso 1
Tiempo ndice
41.8
1.0
99.8
1.4
156.2
3.7
1863.6
44.6
163.9
3.9
530.9
12.7
Iter.
32
12692
21622
23927
10798
12685
Caso 2
Tiempo ndice
237.3
1.0
1812.6
6.6
1217.5
5.1
774.4
3.3
7426.6
31.3
Iter.
35
48695
50280
19524
62019
137
Sin prep
Prep CPLEX
Prep OSL
Restricc.
19047
14,8%
4,9%
Caso 1
Variables Elementos Restricc.
27847
82295
49715
19,3%
36,2%
17,9%
0,0%
2,4%
15,6%
Caso 2
Variables Elementos
64679
189477
13,2%
28,6%
0,0%
9,1%
138
18/02/2010
MODELOS DE OPTIMIZACIN
18/02/2010
139
Subsets iis) y, por consiguiente, ayudan a localizar su posible causa. Una vez conocidas
el desarrollador debe modificar o eliminar alguna del conjunto para que el problema se
haga factible. Un artculo reciente de John W. Chinneck sobre algoritmos para encontrar
este conjunto mnimo es [Guieu, 1999]
ANLISIS DE SENSIBILIDAD
140
18/02/2010
MODELOS DE OPTIMIZACIN
caso de problemas de muy gran tamao. Algunas de las acciones que permiten reducir
tiempo tambin disminuyen los requerimientos de memoria.
Los mtodos de descomposicin no son ms que tcnicas matemticas que permiten
resolver problemas gigantescos (por ejemplo, de ms de 1 milln de restricciones y
variables) con una estructura especial, que ni siquiera se pueden formular
explcitamente, mediante la solucin iterativa de problemas de menor tamao. Como
ejemplo se puede mencionar el caso de un problema de coordinacin hidrotrmica en un
sistema elctrico cuya resolucin se efecta mediante descomposicin anidada
estocstica, ver Jacobs (1995).
Los valores numricos que se aportan para contrastar el impacto de algunas
recomendaciones deben tomarse como indicaciones relativas de las mejoras esperables
nunca como seguros. Pinsese que cualquier mejora est asociada a un tipo de
problemas, no necesariamente es generalizable para todos.
El tiempo de ejecucin de un modelo escrito en GAMS se puede descomponer en
estos tres tipos principales 11 :
tiempo de creacin
formulacin del problema de optimizacin especfico, es decir, creacin de las
variables y de las restricciones.
tiempo de interfaz
escritura del problema de optimizacin en disco para su lectura por el optimizador y
viceversa.
tiempo de optimizacin
resolucin del problema de optimizacin por parte del optimizador.
Adems de stos hay que aadir el tiempo de compilacin del modelo. Sin embargo,
11
Esta clasificacin del tiempo de ejecucin de un modelo en tres componentes es relevante para los
modelos escritos en GAMS. Quiz con otros lenguajes de modelado alguno de estos tiempos puede ser
despreciable.
18/02/2010
141
El valor e importancia de cada uno de estos tiempos se puede conocer con las
opciones stepsum, que resume el consumo de tiempo entre llamadas al optimizador, y
profile, que informa sobre el consumo de tiempo y memoria en cada instruccin del
cdigo. Antes de iniciar las acciones de mejora es necesario realizar un anlisis de los
consumos de tiempo del modelo y de cmo se reparten.
La relacin entre ellos depende de las diversas caractersticas del problema: tamao
y estructura de la matriz de restricciones, nmero de optimizaciones, variacin de los
parmetros en sucesivas optimizaciones, como ms importantes. Las direcciones de
mejora que se presentan a continuacin tienen una orientacin o bien informtica o bien
matemtica, aunque indudablemente en el tiempo de ejecucin resultante influyen
ambas. Las primeras estn basadas en el uso del lenguaje GAMS. Las segundas
modifican el problema o su resolucin. La efectividad de cada mejora depender de las
caractersticas del problema de optimizacin. Se sugieren algunos criterios heursticos
que permiten utilizarlas adaptndose al caso concreto tal como se menciona
posteriormente. stos han de tomarse con cautela. En ningn momento se les quiere dar
a estos criterios ms que un valor indicativo, ajeno a cualquier tipo de generalizacin.
USO DE UN DISCO VIRTUAL
12
otros lenguajes esta relacin se establece a travs de variables localizadas en la memoria principal.
13
La memoria cach mantiene una copia de la ltima informacin leda o escrita en disco, de manera
142
18/02/2010
MODELOS DE OPTIMIZACIN
remotos, tamaos elevados memorias cach, etc. En cualquier caso, una solucin
sencilla en un PC es la creacin y uso de discos virtuales localizados en memoria RAM
(utilidad RAMDISK), siempre ms rpida que los discos magnticos. Un tamao de 16
MB de disco RAM es suficiente para estos casos de estudio.
La reduccin en tiempo esperable depende de la relacin entre el tiempo de acceso
al disco frente al acceso a la RAM. Por ejemplo, para el anterior PC se ha obtenido una
reduccin en tiempo de un 20 % del tiempo de interfaz.
CAMBIOS EN INSTRUCCIONES DE ASIGNACIN
18/02/2010
143
Como referencia final una indicacin sobre el tamao de los problemas que se estn
resolviendo y a los que se ha llegado aplicando estas recomendaciones. Se han podido
resolver sin dificultad problemas de 150000 restricciones por 227000 variables con
566000 elementos no nulos en la matriz de restricciones en 300 segundos en un PC con
procesador Pentium III Mobile a 1 GHz.
ALGUNAS INSTRUCCIONES ADICIONALES
144
18/02/2010
MODELOS DE OPTIMIZACIN
$SET CONSOLA
$IF %system.filesys% == UNIX $SET CONSOLA /dev/tty
$IF %system.filesys% == MS95 $SET CONSOLA CON
$IF %system.filesys% == MSNT $SET CONSOLA CON
$IF %consola%. == . ABORT Fichero no reconocido ;
FILE PANTALLA / '%consola%' / ;
14
El IIT ha desarrollado una utilidad que permite la ejecucin asncrona de scripts de UNIX que
18/02/2010
145
Funcin que devuelve verdadero si las cadenas de caracteres de los nombres de los
elementos de set son iguales o falso en caso contrario.
DIAG(elemento_de_set1.elemento_de_set2)
Llamada externa a una aplicacin que devuelve el control a GAMS cuando sta
finaliza.
option SOLSLACK = 1
Presenta el valor de las variables de holgura de las restricciones en lugar del valor de
la restriccin como tal.
Utilidades complementarias
146
18/02/2010
MODELOS DE OPTIMIZACIN
gamschk
Escribe datos en una hoja de clculo. Los intervalos de escritura son fijos.
Interfaz de presentacin de resultados
Algunas de estas utilidades se pueden usar para realizar interfaces ms sencillas con
bases de datos.
gams2tbl.gms
18/02/2010
147
IV.4.3. Referencias
Bixby, R.E., Fenelon, M., Gu, Z., Rothberg, E. and Wunderling, R. (2000) MIP: Theory
and Practice - Closing the Gap. Technical Report.
Guieu, O. and Chinneck, J.W. (1999) Analyzing Infeasible Mixed-Integer and Integer
Linear Programs, INFORMS Journal on Computing, vol. 11, no. 1, pp. 63-77.
Fourer, R. (2003) Linear Programming OR/MS Today. December.
McCarl, B. A. (1998) So Your GAMS Model Didnt Work Right. A Guide to Model
Repair. Technical Report.
148
18/02/2010
MODELOS DE OPTIMIZACIN
Jacobs, J., Freeman, G., Grygier, J., Morton, D., Schultz, G., Staschus, K. and
Stedinger, J. (1995) SOCRATES: A system for scheduling hydroelectric
generation under uncertainty Annals of Operations Research 59. pp. 99-133.
Ramos, A., Muoz, L., Ruprez, I., Martnez-Crcoles, F. and Martn-Corrochano, V.
(1996) Computational Experience with Optimization for a Bulk Production Cost
Model 12th PSCC. Dresden, Germany.
18/02/2010
149