Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algunos trucos u
Seguidamente se dan algunos trucos que facilitan la formulacion de muchos problemas, y permiten resolver problemas
no lineales mediante metodos lineales.
1. Como convertir variables no restringidas cuando el software exige variables no negativas.
2. Como convertir un conjunto de restricciones lineales de
desigualdad en uno equivalente de igualdades lineales.
3. Como convertir un conjunto de restricciones lineales de
igualdad en uno equivalente de desigualdades lineales.
4. Como convertir un problema de maximizacion en uno de
minimizacion.
5. Como convertir una funcion objetivo no lineal en una
lineal.
6. Como convertir algunas restricciones no lineales en restricciones lineales.
7. Como convertir un espacio vectorial en un cono.
8. Como tratar con conjuntos alternativos de restricciones.
9. Como tratar con restricciones condicionales.
10. Como tratar con funciones discontinuas.
11. Como tratar con funciones no convexas a trozos.
323
(1)
ambas x+
i y xi son no negativas. Sin embargo, puesto que
xi = xi x; i = 1, 2, . . . , r.
(2)
(3)
(4)
donde y2 = x+
2 , y3 = x3 , y z2 = x2 , z3 = x3 , resulta
x1 +y2 z2 +y3 z3 = 1,
x1 y2 +z2 y3 +z3 1,
+y3 z3 1,
x1
x1, y2, z2, y3, z3 0.
(5)
(6)
resulta
x1 +y2 +y3 2y = 1,
x1 y2 y3 +2y 1,
+y3 y 1,
x1
x1, y2, y3, y, 0.
que tiene una variable menos que el sistema (5).
325
(7)
Los sistemas de desigualdades pueden convertirse en sistemas de igualdades sin mas que anadir nuevas variables
que se llaman variables de holgura:
La desigualdad
ai1x1 + ai2x2 + + ainxn bi,
mediante la variable de holgura xn+1 0 se escribe
ai1x1 + ai2x2 + + ainxn + xn+1 = bi.
La desigualdad
ai1x1 + ai2x2 + + ainxn bi,
mediante la variable de holgura xn+1 0 se escribe
ai1x1 + ai2x2 + + ainxn xn+1 = bi.
Introduciendo las variables de holgura, u1 y u2, el conjunto de desigualdades (5) se tranforma en el de igualdades
equivalente
= 1
x1 y2 +z2 y3 +z3 +u1
+y3 z3
u2 = 1
x1
donde ahora
x1, y2, y3, z2, z3, u1, u2 0.
326
(8)
Proposici
on 1 El conjunto de igualdades
aTi x = bi; i = 1, 2, , . . . , m
(9)
m
P
i=1
aTi x bi, i = 1, . . . , m,
m
aTi x P bi.
(10)
i=1
Demostraci
on: Que (9) implica (10) resulta obvio.
Recprocamente, considerese k {1, . . . , m}. Entonces
aTk x =
m
X
i=1
aTi x
i6=k
aTi x
m
X
i=1
bi
i6=k
bi = bk ,
Convirtiendo un problema
ximos en uno de mnimos
de ma
n objetivo no lineal en lineal
y una funcio
El problema
Maximizar Zmax = cT x
es equivalente al problema
Minimizar Zmin = cT x
cuando ambos estan sometidos a las mismas restricciones.
Ademas, Zmax = Zmin.
El problema
Minimizar Z = f (x)
sujeta a
h(x) = 0
g(x) 0,
es equivalente al problema
(11)
Minimizar Z = y
sujeta a
h(x) = 0
g(x) 0
(12)
f (x) y.
Este truco es util cuando la tecnica de resolucion requiere
una funcion objetivo lineal.
328
max |cTi x|
i=1,2,...,m
sujeta a
Ax = b
es equivalente al problema lineal:
Minimizar Z = y
sujeta a
Ax
cTi x
cTi x
y
b
y, i = 1, 2, . . . , m
y, i = 1, 2, . . . , m
0,
329
Minimizar Z = |cT x|
sujeta a
Ax = b
es equivalente al problema lineal:
Minimizar Z = y
sujeta a
Ax = b
cT x y
cT x y
y 0.
Mas generalmente, el problema no lineal
Minimizar Z =
m
X
i=1
|cTi x|
sujeta a
Ax = b
es equivalente al problema lineal:
Minimizar Z =
m
X
i=1
yi
sujeta a
Ax
cTi x
cTi x
yi
b
yi, i = 1, 2, . . . , m
yi, i = 1, 2, . . . , m
0, i = 1, 2, . . . , m.
330
(13)
m
X
i=1
iai; i > 0; i = 1, . . . , m,
(14)
m
X
i=1
iai =
m
X
i=1
iai+xx =
Eligiendo
m
X
i=1
(i + i) ai+(x).
i
0,
(15)
= max
i=1,...,m i
es i + i 0; i = 1, . . . , m, y entonces y (A : x) .
331
i=1,2
se obtiene A (A : x) B , con
1 1 0
B = 2 0 2 .
3 1 4
y entonces,
y = (1, 2, 5)T(1, 2, 3)T + 2(0, 2, 4)T = a1 + 2(x),
que es una combinacion lineal no negativa de los vectores a1
y x.
332
(16)
(17)
Se puede escribir un conjunto de restricciones que implica que se satisface al menos una de las dos, mediante
AT1 x y1B1
AT1 x y2B2
y 1 + y2
y 1 , y2
b1
b2
1
{0, 1},
(18)
(19)
(20)
(21)
(22)
(23)
Si s
olo debe satisfacerse una de las restricciones del conjunto original, la restricci
on y1 + y2 1 debe reemplazarse por la y1 + y2 = 1.
333
Demostraci
on: Puesto que se satisfacen (20) y (21), se
tienen tres casos posibles:
Caso 1: (y1 = y2 = 0): Entonces, (18) y (19) resultan
(16) y (17), es decir, se satisfacen ambas restricciones.
Caso 2: (y1 = 0; y2 = 1): Puesto que se satisface (23)
para todo x, y (19) se convierte en (23), (19) no es aciva,
es decir, puede eliminarse.
Caso 3: (y1 = 1; y2 = 0): Puesto que se cumple (22)
para todo x, y (18) se convierte en (22), (18) no es activa,
es decir, puede eliminarse.
Considerese el conjunto de restricciones siguiente:
x1 0
0 0
1
x1
x2 2 0
1
x2
2x1 x2 0
2 1
0
y
(24)
x1 0
0 0
1
x
x2 0 0 1 1 0 ,
(25)
x2
x 1 + x2 1
1 1
1
que conduce a los dos conjuntos factibles A y B, sombreados
en claro y oscuro, en la figura, respectivamente.
Una forma de calcular las cotas de (22) y (23) consiste en
encontrar la menor region con lmites paralelos a los de A
conteniendo B, que es la region OST . Similarmente, la
334
S
Q
P
3
2
1
O
T
1
X1
x1 0
0
1
0
0
x
1
y1 0 2 (26)
x2 2 0
1
x2
2x1 x2 2
2 1
2
0
x1 0
0
1
0
0
x
x2 0 0 1 1 y2 0 0 , (27)
x2
x 1 + x2 3
1 1
2
1
de la que se obtiene
B1 = B2 = 0 .
2
(28)
Teorema 2 (Restricci
on condicional) Una restricci
on condicional de la forma:
f1(x1, . . . , xn) > b1
implica
y/o
(30)
Demostraci
on: La restriccion condicional original no se
satisface solamente cuando:
f1(x1, . . . , xn) > b1
(31)
(32)
336
Las variables binarias tambien permiten tratar funciones discontinuas, tal como se muestra en la proposicion siguiente.
Proposici
on 4 (Funciones discontinuas) La
cion discontinua a minimizar
0
x=0
f (x) =
k + cx 0 < x b; k > 0
fun(33)
ky + cx
by
0
{0, 1}.
(34)
Proposici
on 5 (Funciones no convexas a trozos)
La funcion no convexa a trozos (ver Figura)
x
0xa
a<xb
f (x) = a + (x a)
a + (b a) + (x b) b < x c,
donde
< < ; , , > 0; a < b < c; a, b, c > 0,
puede ser escrita como
f (x)
x
aw1
w2(b a)
0
w2
w1, w2
=
=
x1 + x2 + x3
x 1 + x2 + x3
x1 a
x2 (b a)w1
x3 (c b)w2
w1
{0, 1}.
338
(35)
(36)
(37)
(38)
(39)
(40)
(41)
X
0
Proposici
on 6 (Funci
on no convexa a trozos con
discontinuidad inicial.) La funcion no convexa a trozos con discontinuidad inicial (ver figura)
0
f + (x a)
f (x) = 0
f0 + (b a) + (x b)
f + (b a) + (c b) + (x c)
0
donde
x=0
a<xb
b<xc
c < x d,
=
=
vf0 + x1 + x2 + x3
va + x1 + x2 + x3
x1 (b a)v
x2 (c b)w1
x3 (d c)w2
w1 v
{0, 1}.
339
(42)
(43)
(44)
(45)
(46)
(47)
(48)
tiles de GAMS
Algunos trucos u
340
m1 =
1 1 1
2 3 4
, m2 =
1 1 1
3 4 5
I
J
row index
/1*2/
column index /1*3/;
PARAMETER m1(I,J),m2(i,J);
** Paralell assignment for all indices
m1(I,J)=1;
m2(I,J)=ord(I)+ord(J);
DISPLAY m1,m2;
El comando anterior DISPLAY produce la salida:
---1
2
---1
2
9 PARAMETER M1
1
2
1.000
1.000
1.000
1.000
3
1.000
1.000
9 PARAMETER M2
1
2
2.000
3.000
3.000
4.000
3
4.000
5.000
341
trica
Definiendo una matriz sime
Para definir una matriz simetrica basta definir su parte triangular superior y copiar el resto. Sea la matriz
1 0 3
A = 0 2 4
3 4 5
2.3
4/;
13 PARAMETER A
1
2
1.000
2.000
data matrix
3
3.000
4.000
5.000
19 PARAMETER A
1
2
1.000
2.000
3.000
4.000
data matrix
3
3.000
4.000
5.000
342
Hay muchas formas de definir una matriz dispersa. Una de ellas es definir
solo los elementos no nulos. Otra, consiste en definirla mediante formulas,
si es esto posible. Considerese la matriz:
s=
0
0
1
2
0
0
0
1
2
0
0
1
1
2
0
0
1
0
2
0
0
1
0
2
0
0
1
0
2
0
El problema
Minimizar Z =
n X
n
X
j=1 i=1
sujeta a
n
X
i=1
cij xij
aixij bj j = 1 . . . n
n
X
i=1
sujeta a
n
X
i=1
cij xij
aixij bj .
SETS
I row index
/1*2/
J column index /1*3/
DIN(J) dynamic set;
ALIAS(J,J1);
PARAMETERS c(I,J),a(I),b(J); c(I,J)=1; a(I)=1; b(J)=1;
POSITIVE VARIABLE x(I,J);
VARIABLE z;
EQUATIONS
Cost(J) objective function
Rest(J) restriction;
Cost(J)$DIN(J)..
SUM(I,c(I,J)*x(I,J)) =e= z;
Rest(J)$DIN(J)..
SUM(I,a(I)*x(I,J))
=g= b(J);
Model split /all/;
DIN(J)=NO;
loop(J1,
DIN(J1)=YES;
Solve split using lp minimizing z;
DIN(J1)=NO;
);
344
ax b(i), i = 1, . . . , t.
346
lisis de sensibilidad
Realizando un ana
a(t)x b.