Documente Academic
Documente Profesional
Documente Cultură
Curso:
MA-5701: Optimizacion No lineal
Alumnos:
Arnold Garca
Emanuel Berrocal
Profesores de Catedra:
Jorge Amaya
Abderrahim Hantoute
Profesores Auxiliares:
Francisco Santiban
ez
Carlos Flores G.
2 de julio de 2012
Indice
1. Introducci
on y Motivaci
on
2. Problema Cuadr
atico
2.1. transformacion del problema cuadratico . . . . . . . . . . . . . . . . . . . . . . . . . .
2
3
3. Problema Complementario
3.1. Soluciones Complementarias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
4
5
5
6
7
7
7
8
7. Conclusiones
11
8. Anexo
12
8.1. Codigo matlab del algoritmo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.2. Pruebas realizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.
Introducci
on y Motivaci
on
En este informe se estudiara una manera de resolver el problema cuadratico a traves de un problema complementario a el, el cual surge de haber aplicado KKT a el problema cuadratico, donde
luego introduciremos el metodo de Lemke para resolver este problema y mostrar su convergencia en
un numero finito de iteraciones, bajo supuestos adecuados, veremos que el algoritmo o bien para con
una solucion complementaria basica o bien concluiremos que el sistema original es inconsistente.
Es interesante notar como un problema que es cuadratico, se puede llevar en la practica a un
problema lineal, y mas aun, como aquellas restricciones de desigualdades que a veces son incomodas
de trabajar, las podemos ver en el problema lineal (que llamaremos el problema complementario al
problema cuadratico), como restricciones de igualdad, luego de haber aplicado KKT.
Tambien lo interesante que veremos, es que el algoritmo que en una cantidad finita de pasos es
capaz de resolver aquel problema complementario, lo hara usando una tecnica parecida a Simplex
aplicado a un tableau, metodo que fue visto en el curso de Optimizacion.
2.
Problema Cuadr
atico
A continuacion el problema cuadratico:
Definici
on 2.1. Problema Cuadr
atico:
1 t
x Qx + ct x
2
s.a Ax b
x 0.
(P ) min
Donde:
Q: es una matriz simetrica de n x n.
A: es una matriz de m x n.
= Q+Qt la cual es simetrica
Observaci
on 2.1. Si Q no es simetrica, entonces podemos definir Q
2
= xt Qx+xt Qt x = 2xt Qx = xt Qx Por lo que siempre podremos considerar Q como
y ademas xt Qx
2
2
simetrica.
Dado que las restricciones son lineales podemos aplicar kkt a este problema.
sea
1
L(
x ,
u ,
v ) = xt Qx + ct x + (Ax b)u xv
2
tenemos:
x L = x L(
x,
u,
v ) = Qx + c + At u v = 0
Ax b
t t
(u , v )
=0
x
2.1.
transformaci
on del problema cuadr
atico
o bien
y + Ax = b
v A u Qx = c
ytu = 0
vtx = 0
u, v 0
x, y 0
t
o bien
y
v
0 A
u
b
=
At Q
x
c
t
u
y
=0
x
v
y
u
,
0
v
x
()
3.
Problema Complementario
A partir de lo anterior Definimos el siguiente problema:
Definici
on 3.1.
(P C) w M z = q
wt z = 0
w, z 0
M :p p
q:p 1
w, z Rp
(1)
(2)
(3)
3.1.
Soluciones Complementarias
Definici
on 3.2. Una solucion de (1)-(2)-(3) se llama soluci
on complementaria b
asica factible
si y solo si (w, z) es soluci
on b
asica factible de (1) a (3) y ademas una variable de cada par (wj , zj )
es basica.
Observaci
on 3.2. Si q 0 entonces basta tomar w = q z = 0 y se tiene una solucion de (1), (2),
(3). Con lo que ademas significa que x = 0, y = b, w = 0, v = c, es decir la solucion de (P ) es x=0.
Si q 0 entonces se agrega una nueva columna a la ecuacion (1):
w M z z0 e = q
(4)
wj zj = 0
j = 1, . . . p
(5)
wj , z j , z 0 0
j = 1, . . . p
(6)
donde e = (1, . . . , 1)t
As este nuevo problema posee solucion a traves de iteraciones,
pues tomamos z0 = max{qj : 1 j z}, z = 0, y w = q + ez0 , haciendo esto obtenemos una
solucion inicial para el sistema expuesto en (4), (5) y (6), las cuales son(solucion trivial):
z=0
w = q + z0 e
z0 = max{qj : j = 1, . . . , p}
La idea es partir de la solucion trivial y luego iterar hasta lograr una solucion de (4)-(5)-(6) con
z0 = 0, ie, una solucion de (P C)
Definici
on 3.3. Consideremos (4)-(5)-(6).
Una solucion factible (w, z, z0 ) de este sistema se llama solucion basica factible casi complementaria
si y solo si:
i) (w, z, z0 ) es solucion basica de (4), (6).
ii) Para alg
un s = 1, . . . , p, ws , zs son no basicas.
iii) z0 es basica
iv) Exactamente una variable del par (wj , zj ) es basica, para todo j = 1, . . . , p, j 6= s.
4.
Ya sabemos que si q 0 basta con tomar (w, z) = (q, 0) para que sea la solucion de (P C), por
lo que esta algoritmo sirve para el caso cuando q 0, por lo que tomamos el sistema de ecuaciones
entre (4) y (5). Y se procede:
hw
i
z
z0
Definici
on 4.1. Formamos el siguiente tableau I | M | 1 | q
Paso de Inicializaci
on: Sea qr = min{qi / i = 1, . . . , p} y pivotear en la columna z0 con fila r, para
hacer entrar z0 a la base.
Se define ys = zs y entramos al algoritmo:
Definici
on 4.2.
1 paso Sea ds la columna actualizada en el tableau bajo la variable ys , si ds 0, ir al paso 4. En otro caso, determinar el ndice r para la minima proporcion siguiente: dqersr =
n
o
min1ip dqeisi : dis > 0 donde qe es la actualizacion de la columna del lado derecho. finalmente si la variable basica en la fila r es z0 , ir al paso 3. En otro caso, ir al paso 2.
2 paso La variable basica en la fila r o es wl o zl , para alg
un l 6= s. La variable ys entra a la base y
el tableau es actualizado pivoteando en la fila r y en la columna ys . Si la variable que solo
deja la base es zl , entonces dejar ys = wl . Ir al paso 1
3 paso Aqu ys entra a la base, y z0 deja la base. Se pivotea en la columna ys y en la fila z0 ,
produciendo una solucion complementaria basica factible. Entonces parar
4 paso Se encontro un rayo extremo. Un rayo R = {(w, z, z0 ) + d / 0}, donde
0,
en todos los demas
5.
A continuacion veremos los dos casos posible de solucion que nos puede dar el algoritmo del pivote
complementario.
5.1.
Ejemplo 1: Soluci
on Complementaria b
asica factible
Para este ejemplo, encontraremos una solucion complementaria basica factible. Tomaremos los
siguientes datos:
0 1 1
1
M = 1 2 1
q = 2
1 1 1
0
ahora empezamos la iteracion:
tendremos que en la 1 iteracion entrara z0 en la posicion r = 2, pues es el mnimo qr
variables
basicas
w1
w2
w3
|w1 w2 w3 | z1 z2 z3 | z0 | q
| 1 0 0| 0 1 1| 1| 1
| 0 1 0|1 2 1| 1 |2
| 0 0 1|1 1 1| 1| 0
sale w2 y entra z0
y por tanto saldra w2 de la base, quedando ys = z2 , lo que ademas implica que ds = z2 , luego el
tableau, queda de la siguiente forma, ademas se indica lo que entrara y saldra de la base:
variables
basicas
w1
z0
w3
|w1 w2 w3 |z1
| 1 1 0| 1
| 0 1 0| 1
| 0 1 1| 0
z2 z3 |z0 |
q
1 0| 0|3
2 1| 1|2
1 0| 0|2
sale z0 y entra z2
|w1
w2 w3 |z1 z2
z3 | z0 |
q
| 1 1/2 0| 1 0 1/2|1/2|2
| 0 1/2 0| 1 1
1/2| 1/2|1
| 0 1/2 1| 0 0 1/2|1/2|1
5.2.
Ejemplo 2: Soluci
on Casi Complementaria b
asica factible
Para este ejemplo, encontraremos una solucion complementaria basica factible. Tomaremos los
siguientes datos:
0
0
1 1
1
0
4
0 1 2
M =
q
=
1 1
2
2 2
1 2 2 2
4
ahora empezamos la iteracion:
tendremos que en la 1 iteracion entrara z0 , en la posicion r = 4, pues es el mnimo qr
variables
basicas
w1
w2
w3
w4
|w1 w2 w3 w4 | z1 z2 z3 z4 | z0 | q|
| 1 0 0 0| 0
0 1
1| 1| 1|
| 0 1 0 0| 0
0
1 2| 1| 4|
| 0 0 1 0| 1 1 2
2| 1|2|
| 0 0 0 1|1
2
2 2| 1 |4|
sale w4 y entra z0
y por tanto saldra w4 de la base, quedando ys = z4 , lo que ademas implica que ds = z4 , luego el
tableau, queda de la siguiente forma, ademas se indica lo que entrara y saldra de la base:
variables
basicas
w1
w2
w3
z0
|w1 w2 w3
| 1 0 0
| 0 1 0
| 0 0 1
| 0 0 0
w4 |z1
1| 1
1| 1
1| 2
1| 1
z2
2
2
3
2
z3
3
1
4
2
z4 |z0 |
q|
3| 0|5|
0| 0|8|
4 | 0|2|
2| 1|4|
sale w3 y entra z4
despues de esta iteracion tendremos que ys = z3 , por lo que ds = z3 , luego, el tableau, quedara:
variables
basicas
w1
w2
z4
z0
|w1 w2
w3
w4 | z1
z2 z3 z4 |z0 | q|
| 1 0 3/4 1/4|1/2
1/4
0 0| 0|7/2| debera salir w1 y debera entrar z3
| 0 1
0
1|
1
2 1 0| 0| 8|
| 0 0
1/4 1/4| 1/2 3/4 1 1| 0|1/2|
| 0 0 1/2 1/2|
0 1/2
0 0| 1| 3|
5.3.
Lema 5.1. Supongamos que cada solucion basica factible casi complementaria de (4)-(5)-(6) es no
degenerada, es decir, cada variable basica es positiva. Entonces los vectores (w, z, z0 ) generados por
el algoritmo no se repiten, es decir el algoritmo se detiene al cabo de un n
umero finito de iteraciones.
Lema 5.2. Bajo las hipotesis de no degenerancia, supongamos que el algoritmo encuentra un rayo
extremo, esto es:
(w,
z, z0 ) + (w,
z, z0 )
con (w,
z, z0 ) casi complementaria, basica factible.
Entonces:
(i) (w,
z, z0 ) 6= 0,
w,
z, z0 0
(ii) w M z z0 e = 0
(iii) w t z = w t z = w t z = w t z = 0
(iv) z 6= 0
(v) zM z = (et z)
z0 0
6.
6.1.
0 A
M=
At Q
Ahora veamos en que casos la matriz M es copositiva y/o copositiva-plus.
0 A
z M z = (x , y ) t
A Q
t
x
Ay
t t
= (x , y )
= y t Qy > 0
y
At x + Qy
y t Qy
(Q + Qt )y
2Qy
(M + M t )z
=0
=0
=0
=0
y como Q es copositiva-plus
6.2.
Teorema 6.2. Consideremos el sistema (4) (5) (6) y supongamos que cada solucion complementaria basica factible es no degenerada. Supongamos ademas que M es copositiva-plus.
Entonces el algoritmo de Lemke se detiene en una solucion complementaria basica factible del sistema (1) (2) (3) si y solo si el sistema (1) (3) es consistente.
Demostracion. Supongamos que el algoritmo se detiene en una solucion complementaria basica factible de (1) (2) (3). Entonces se encuentra (w, z, z0 ) pero como z0 esta fuera de la base se tiene
que:
w Mz = q
wt z = 0
w, z > 0
Por lo tanto se cumple que el sistema (1) (3) es consistente.
Ahora supongamos que el algoritmo se detiene en una solucion basica factible casi complementaria,
luego la solucion de (4) (5) (6) es de la forma (w, z, z0 ) + (w,
z, z0 ).
Luego como estamos en un rayo extremo tenemos que z0 esta en la base y por la hipotesis de no
degenerancia se tiene que z0 > 0.
zt M z = (1t z)z0 6 0.
z > 0,
(8)
q t z > 0
y>0
1 t
x Qx + ct x = f (x)
2
s.a Ax b
x 0.
min
Y supongamos que existe al menos una solucion factible. Supongamos ademas que el metodo de Lemke
es usado para resolver el problema complementario:
w Mz = q
wt z = 0
w, z > 0
Si el problema complementario es no degenerado y se cumple al menos una de las 3 condiciones
siguientes:
i) Q es semidefinida positiva y c = 0.
ii) Q es positiva definida.
iii) qij > 0
(
Ax + y =b
w M z =q
Qx At u + v =0
w, z >0
x, y, u, v >0
Por el Teorema de Farkas, el siguiente sistema tiene solucion (d, e)
d60
e60
Ae > 0
Atd + Qe > 0
bt d + c t e > 0
(9)
(10)
(11)
(12)
(13)
et Qe 6 0
pues (Ae)t 6 0
y > 0
Tenemos
(Ax + y)t d > 0
x t A t d + y t d > 0
Pero de (12) se tiene que At d 6 Qe = 0, luego
ytd > 0
pues x > 0
bt d > 0 x t At d + y t d > 0
At d 6 0
7.
Conclusiones
Hemos visto que ciertos problemas cuadraticos bajo, supuestos adecuados, es posible obtener
su problema complementario a traves de KKT, por ejemplo, alguna de esas ventajas fueron que:
La matriz de restricciones fuera definida positiva o copositiva-plus, el algoritmo se detendra en un
numero finito de pasos.
Ademas vimos las condiciones que se deben cumplir para que el problema complementario tenga
solucion, haciendo al problema cuadratico un problema factible.
8.
Anexo
En este se anexo se encontrara el codigo matlab utilizado para realizar el algoritmo del pivote
complementario y ademas se encontraran algunas pruebas realizadas.
8.1.
C
odigo matlab del algoritmo
z0=A(i,m);
d(2*n+1)=-A(i,a);
else
z(ind-n)=A(i,m);
d(ind)=-A(i,a);
end
end
d(a)=1;
return
else
%Elegir fila que sale
r=radio_test(A,a);
%actualizar variable que sale
var_s=base(r);
if var_s==2*n+1
%%Paso 3
A=Pivotear(A,r,a);
base(r)=a;
%salida
z0=0;
d=zeros(2*n+1,1);
w=zeros(n,1);
z=zeros(n,1);
for i=1:n
ind=base(i);
if ind<=n
w(ind)=A(i,m);
else
z(ind-n)=A(i,m);
end
end
return
else
%%Paso 2
A=Pivotear(A,r,a);
base(r)=a;
end
end
end
end
%% Funci
on para pivotear
function [B]=Pivotear(A,r,d)
[n m]=size(A);
P=eye(n);
P(:,r)=-A(:,d)/A(r,d);
P(r,r)=1/A(r,d);
B=P*A;
end
%% Funci
on complementaria
function x=complementaria(y,n)
x=mod(y+n,2*n);
if x==0
x=2*n;
end
end
%% Funci
on radio_test
function r=radio_test(A,a)
[n m]=size(A);
qq=A(:,m);
aa=A(:,a);
aa(aa<=0)=0;
[minimo r]=min(qq./aa);
end
8.2.
Pruebas realizadas
%% Primer ejemplo
% Solui
on complementaria basica factible:
% (w,z)=(2 0 1 0 1 0)
clear
clc
M=[0 1 1;1 2 1;1 1 1];
q=[1;-2;0];
[w,z,z0,d]=pivote(M,q)
%% Segundo ejemplo
% Soluci
on basica factible casi complementaria
% (w,z,z0)=(7/2 8 0 0 0 0 0 1/2 3) + L(0 1 0 0 0 0 1 1 0)
clear
clc
M=[0 0 1 -1;0 0 -1 2;-1 1 2 -2;1 -2 -2 2];
q=[1;4;-2;-4];
[w,z,z0,d]=pivote(M,q)