Vous êtes sur la page 1sur 48

h i j

d e f g
a b c
10 8 7
9 4 6 5
1 2 3
1/48
Mtodos Matemticos de Especialidad
Ingeniera Elctrica
Programacin no lineal
Minimizacin de funciones con condiciones
Jos Luis de la Fuente OConnor
jldelafuente@etsii.upm.es
Escuela Tcnica Superior de Ingenieros Industriales
Universidad Politcnica de Madrid
Clase_minimi_concond_11.pdf
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
2/48
ndice
Introduccin
Funcin y multiplicadores de Lagrange
Dualidad
Condiciones de Karush-Kuhn-Tucker
Algoritmos
v Condiciones de igualdad
v Mtodo de Newton
v Mtodo de los gradientes conjugados
Mtodos de regin de conanza
Mtodos cuasi Newton
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
3/48
Introduccin
Vamos a estudiar el problema de optimizacin
minimizar
xR
n

0
(x)
sujeta a
i
(x) _ 0. i = 1. . . . . m.
h
i
(x) = 0. i = 1. . . . . ].
Las funciones
i
y h
i
son, en general, no lineales y tienen derivadas
parciales de primer orden.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
4/48
Funcin y multiplicadores de
Lagrange
La funcin lagrangiana, o funcin de Lagrange, asociada a este
problema es la funcin, 1 : R
nm]
R,
1(x. . ) =
0
(x)
m

i =1
z
i

i
(x)
]

i =1
v
i
h
i
(x).
Es la suma ponderada de la funcin objetivo y las funciones que
condicionan la solucin.
Los z
i
son los multiplicadores de Lagrange asociados a las
inecuaciones
i
(x) _ 0 y v
i
los asociados a ecuaciones o
condiciones de igualdad, h
i
(x) = 0.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
5/48
La funcin lagrangiana dual es la funcin, g : R
m]
R,
g(. ) =nf 1(x. . )
=nf
_
_

0
(x)
m

i =1
z
i

i
(x)
]

i =1
v
i
h
i
(x)
_
_
La funcin lagrangiana dual es cncava, aunque el problema original
no sea convexo, dado que es el nmo de una familia de funciones
anes de (. ).
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
6/48
Dualidad
La funcin lagrangiana dual proporciona una cota inferior del valor
ptimo, p
+
, del problema que queremos resolver.
Para cualquier _ 0 y cualquier se cumple que g(. ) _ p
+
.
5.1 The Lagrange dual function 217
x
1 0.5 0 0.5 1
2
1
0
1
2
3
4
5
Figure 5.1 Lower bound from a dual feasible point. The solid curve shows the
objective function f
0
, and the dashed curve shows the constraint function f
1
.
The feasible set is the interval [0.46, 0.46], which is indicated by the two
dotted vertical lines. The optimal point and value are x

= 0.46, p

= 1.54
(shown as a circle). The dotted curves show L(x, ) for = 0.1, 0.2, . . . , 1.0.
Each of these has a minimum value smaller than p

, since on the feasible set


(and for 0) we have L(x, ) f
0
(x).

g
(

)
0 0.2 0.4 0.6 0.8 1
1
1.1
1.2
1.3
1.4
1.5
1.6
Figure 5.2 The dual function g for the problem in gure 5.1. Neither f
0
nor
f
1
is convex, but the dual function is concave. The horizontal dashed line
shows p

, the optimal value of the problem.


h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
7/48
El problema dual lagrangiano del original es
maximizar g(. )
sujeta a _ 0.
Determina la mejor cota inferior, d
+
, de p
+
.
Es un problema de optimizacin convexo.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
8/48
Ejemplo
La funcin lagrangiana dual, g(. ), del problema de
programacin lineal estndar:
minimizar c
T
x
sujeta a Ax = b
x _ 0
es, si 1(x. . ) = c
T
x
T
(Ax b)x
T
x,
g(. ) =
_
b
T
si A
T
c = 0
o en cualquier otro caso.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
9/48
El problema dual lagrangiano es
maximizar g(. ) =
_
b
T
si A
T
c = 0
o en cualq. otro caso.
sujeta a _ 0
Problema que se puede expresar mejor como sigue:
maximizar b
T

sujeta a A
T
c = 0
_ 0.
que es un problema de programacin lineal en forma estndar.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
10/48
Dualidad fuerte y dbil
Dbil El ptimo del problema dual lagrangiano, d
+
, es el mejor
lmite inferior de p
+
:
d
+
_ p
+
.
Se cumple siempre: en problemas convexos o no.
A la diferencia p
+
d
+
se la conoce como brecha dual en el
ptimo, o duality gap. Es siempre _ 0.
Fuerte Se cumple cuando d
+
= p
+
.
En general no se cumple. Si el problema es convexo, lo normal
es que se cumpla.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
11/48
Complementariedad de holguras
Supongamos que se dan las condiciones de dualidad fuerte y x
+
y

+
.
+
| son los ptimos primal y dual.
Se cumple que

0
(x
+
) = g(
+
.
+
)
= nf
_

0
(x)
m

i =1
z
+
i

i
(x)
]

i =1
v
+
i
h
i
(x)
_
_
0
(x)
m

i =1
z
+
i

i
(x
+
)
]

i =1
v
+
i
h
i
(x
+
)
_
0
(x
+
).
La primera y segunda lnea de esta expresin indica que la brecha
dual es cero.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
12/48
La tercera se cumple desde el momento que el nmo de la funcin
lagrangiana con respecto a x es menor o igual que su valor en el
ptimo x = x
+
.
La ltima inecuacin se deduce de que z
i
_ 0,

i
(x
+
) _ 0. i = 1. . . . . m y h
i
(x
+
) = 0. i = 1. . . . . ].
De acuerdo con estas consideraciones, x
+
minimiza 1(x.
+
.
+
).
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
13/48
Otra conclusin que se deriva de las deducciones anteriores es que
m

i =1
z
+
i

i
(x
+
) = 0.
lo que implica que, dado que cada sumando es no positivo,
z
+
i

i
(x
+
) = 0. i = 1. . . . . m.
Esta condicin es la complementariedad de holguras. Se puede
expresar:
z
+
i
> 0 ==
i
(x
+
) = 0.
i
(x
+
) < 0 ==z
+
i
= 0.
Quiere decir que el multiplicador de lagrange ptimo i es cero a no
ser que la condicin
i
est activa en el ptimo.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
14/48
Condiciones de Karush-Kuhn-Tucker
Sea x
+
el punto ptimo del problema primal
minimizar
0
(x)
sujeta a
i
(x) _ 0. i = 1. . . . . m
h
i
(x) = 0. i = 1. . . . . ]
y
+
.
+
| el del dual, con brecha dual cero.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
15/48
Se cumple que:
1.
i
(x
+
) _ 0. i = 1. . . . . m.
2. h
i
(x
+
) = 0. i = 1. . . . . ].
3. z
+
i
_ 0. i = 1. . . . . m.
4. z
+
i

i
(x
+
) = 0. i = 1. . . . . m.
5. V1
x
(x
+
.
+
.
+
) = 0;
V
0
(x
+
)
m

i =1
z
+
i
V
i
(x
+
)
]

i =1
v
+
i
Vh
i
(x
+
) = 0
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
16/48
En resumen, para cualquier problema de optimizacin, con funcin
objetivo y condiciones con derivadas parciales de primer orden, en el
que se verican las condiciones de dualidad fuerte, cualquier par de
puntos ptimos en el primal y en el dual deben satisfacer las
condiciones de Karush, Kuhn y Tucker.
Si el problema primal ex convexo, las condiciones de Karush, Kuhn
y Tucker son sucientes para que ese par de puntos sean ptimos y
se verique la dualidad fuerte (brecha dual cero).
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
17/48
Algoritmos
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
18/48
Condiciones de igualdad
Consideremos en primer lugar el problema
minimizar (x)
sujeta a Ax = b.
Supondremos:
La funcin : R
n
R es convexa y con derivadas parciales
hasta segundo orden.
La matriz A R
]n
, ] < n, es de rango ].
El ptimo
+
existe, es nito y se alcanza en x
+
.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
19/48
El punto x
+
R
n
es ptimo si y slo si se cumple que existe un

+
R
]
tal que:
_
Ax
+
= b
V(x
+
) A
T

+
= 0
Este es un sistema de n ] ecuaciones no lineales en n ]
variables, x y , denominado sistema KKT.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
20/48
Cmo resolver el problema?
Analticamente, resolviendo el sistema KKT (normalmente no es
posible).
Eliminar la condiciones de igualdad, reduciendo el problema a
uno sin condiciones, y utilizando entonces los mtodos que
conocemos.
Resolviendo el problema dual mediante un algoritmo para
minimizacin sin condiciones.
Adaptar el mtodo de Newton para que las direcciones de ste
sean factibles.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
21/48
Caso particular: funcin objetivo cuadrtica
El problema es
minimizar
1
2
x
T
Px q
T
x r
sujeta a Ax = b.
donde P R
nn
, P _ 0 (denida positiva), y A R
]n
.
Las condiciones de ptimo son, sistema KKT,
_
_
P A
T
A 0
_
_
_
_
x
+

+
_
_
=
_
_
q
b
_
_
.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
22/48
De este sistema:
Si la matriz no es singular, P > 0, hay un nico ptimo
(x
+
.
+
).
Si la matriz es singular pero se puede resolver el sistema,
cualquier solucin es un ptimo (x
+
.
+
).
Si el sistema no se puede resolver, el problema no est acotado
inferiormente.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
23/48
Resolviendo el programa dual
El dual del problema primal es
m ax
R
]
_
b
T
nf
_
(x)
T
Ax
__
.
Ejemplo
Resolver
minimizar (x) =
n

i =1
log .
i
sujeta a Ax = b.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
24/48
La funcin lagrangiana es
1(x. ) =
n

i =1
log .
i

T
(Ax b).
Haciendo la derivada de esta funcin igual a cero, se obtiene que
_
A
T

_
i
=
1
.
i
.
por lo que la funcin dual para R
]
es
b
T
n
n

i =1
log
_
A
T

_
i
.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
25/48
Este problema se puede resolver usando el mtodo de Newton para
problemas sin condiciones.
La solucin del problema primal se obtiene a partir de la ecuacin
x
+
i
=
1
_
A
T

+
_
i
.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
26/48
Mtodo de Newton
El paso de Newton, ^x
nt
, en direccin al ptimo de (x), desde
un punto factible, x, de las condiciones Ax = b, es la solucin de
_
_
_
V
2
(x) A
T
A 0
_

_
_
_
_
^x
nt
w
_

_
=
_
_
_
V(x)
0
_

_
.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
27/48
Ese paso se puede interpretar a partir de que:
^x
nt
es la solucin en la variable v de la aproximacin de en
x
minimizar (x) V(x)
T
v
1
2
v
T
V
2
(x)v
sujeta a A(x v) = b.
^x
nt
y su vector asociado w son la solucin de las condiciones
de ptimo linealizadas:
V(x ^x
nt
) A
T
w ~ V(x) V
2
(x)^x
nt

A
T
w = 0
A(x ^x
nt
) = b
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
28/48
Reduccin de Newton
En la resolucin del problema se dene como
z(x) =
_
^x
nt
V
2
(x)^x
nt
_
1,2
= (V(x)^x
nt
)
1,2
.
Es una estimacin de (x)
+
usando una aproximacin
cuadrtica

:
(x) nf
Ay=b

(y) =
1
2
z(x)
2
.
Es la derivada en la direccin de Newton:
J
Jt
(x t ^x
nt
)

t =0
= z(x)
2
.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
29/48
El algoritmo de Newton es el siguiente:
Dados Una (x), un x
0
, Ax
0
= b, y una tol.
Repetir
1. Calcular la direccin de Newton y
la reduccin: ^x
nt
. z(x).
Si z
2
,2 _ tol., salir.
2. Calcular amplitud de paso con backtracking.
3. Obtener nuevo punto: x := x t ^x
nt
.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
30/48
Ejemplo
Se trata de resolver
minimizar
n

i =1
.
i
log(.
i
)
sujeta a Ax = b.
con A R
]n
.
Se generar un problema con diferentes valores de ] y n, n ;].
La matriz A se generar aleatoriamente, exigiendo sea de rango
completo.
Tambin se generar un vector aleatorio x y el b ser el que se
cumpla AX = b. Se parte de este x.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
31/48
En Matlab es:
function [iter,val]=Newton_condiciones
%
% Mtodo de Newton para problemas no lineales con
% condiciones lineales. Ejemplo clase.
p=250; n=2000; A=rand(p,n); x0=rand(n,1); b=A*x0;
while rank(A)~=p, A=rand(p,n); end
MAXITERS = 100;
ALPHA = 0.01;
BETA = 0.5;
NTTOL = 1e-8;
x = x0;
for iter=1:MAXITERS
val = x*log(x);
grad = 1+log(x);
hess = diag(1./x);
sol = -[hess A; A zeros(p,p)] \ [grad; zeros(p,1)];
v = sol(1:n);
la2=grad*v;
if abs(la2)<NTTOL, break, end
t=1;
while min(x+t*v)<=0, t=BETA*t; end
while (x+t*v)*log(x+t*v)>=val+t*ALPHA*la2, t=BETA*t; end
x = x + t*v;
end
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
32/48
Newton con puntos no factibles
La idea es determinar un paso ^x
nt
con el que se satisfagan
aproximadamente las condiciones de ptimo, lo que lleva a
_
V
2
(x) A
T
A 0
__
^x
nt
w
_
=
_
V(x)
Ax-b
_
.
Cuando el punto x es factible, se cumple Ax b = 0 y se
recupera el mtodo clsico.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
33/48
La interpretacin primal-dual de esto es la siguiente:
Si escribimos las condiciones de ptimo como r(y) = 0, donde
y =
_
x

_
. r(y) =
_
V(x) A
T

Ax b
_
.
linealizando r(y) = 0, es decir
r(y ^y) ~ r(y) Dr(y)^y = 0, se tiene que
_
V
2
(x) A
T
A 0
__
^x
nt
^
nt
_
=
_
V(x) A
T

Ax b
_
.
Expresin similar a la anterior con w = ^
nt
.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
34/48
Algoritmo de Newton para partida no factible:
Dados Una (x), un x
0
,
0
, una tol., y
Repetir
1. Calcular la dir. Newton: ^x
nt
, ^
nt
.
2. Amplitud de paso con back. en [r[
2
.
while [r(x t ^x
nt
. t ^
nt
)[
2
>
(1 t )[r(x. )[
2
. t := t .
3. Hacer x := x t ^x
nt
, := t ^
nt
.
Mientras no Ax = b y [r(x. )[
2
_ tol.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
35/48
La direccin del mtodo puede no ser de descenso:
J
Jt
(x t ^x
nt
)

t =0
= V(x)
T
^x
= ^x
T
_
V
2
(x)^x A
T
w
_
= ^x
T
V
2
(x)^x (Ax b)
T
w.
no es necesariamente negativa a no ser que Ax = b.
El vector residuo sin embargo decrece en cada iteracin pues
J
Jt
[r(y t ^y
nt
)[

t =0
= [r(y)[
2
_ 0.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
36/48
En Matlab es:
function [i,val]=Newton_condiciones_infea(ipar)
%
% Mtodo de Newton para problemas no lineales con
% condiciones lineales. Partida no factibleEjemplo clase.
p=250; n=2000; A=rand(p,n); x0=rand(n,1); b=A*x0;
while rank(A)~=p, A=rand(p,n); end
MAXITERS = 100;
ALPHA = 0.01;
BETA = 0.5;
RESTOL = 1e-7;
x=x0; nu=zeros(p,1);
if nargin<1, ipar=0; end, if ipar==1, x=ones(n,1); end
for i=1:MAXITERS
val = x*log(x);
r = [1+log(x)+A*nu; A*x-b];
sol = -[diag(1./x) A; A zeros(p,p)] \ r;
Dx = sol(1:n); Dnu = sol(n+[1:p]);
if norm(r)<RESTOL, break; end;
t=1;
while (min(x+t*Dx) <= 0), t = BETA*t; end;
while norm([1+log(x+t*Dx)+A*(nu+Dnu); A*(x+Dx)-b]) > ...
(1-ALPHA*t)*norm(r), t=BETA*t; end;
x = x + t*Dx; nu = nu + t*Dnu;
end;
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
37/48
Condiciones de desigualdad y
generales
Consideraremos problemas de este tipo:
minimizar
x
(x)
sujeta a c
E
(x) = 0
c
I
(x) _ 0.
o escritos con variables de holgura:
minimizar
x.s
(x)
sujeta a c
E
(x) = 0
c
I
(x) s = 0
s _ 0.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
38/48
Las condiciones KKT de este ltimo problema se pueden escribir as:
V(x) A
T
E
(x)y A
T
I
(x)z = 0
Sz je = 0
c
E
(x) = 0
c
I
(x) s = 0.
junto con j = 0, s _ 0 y z _ 0.
Las matrices A
E
y A
I
son las jacobianas de las funciones c
E
(x) y
c
I
(x), respectivamente y y y z sus multiplicadores de Lagrange.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
39/48
Las matriz S es diagonal y sus coecientes los del vector s;
e = 1. . . . . 1|.
Haciendo j estrictamente positivo, se obliga a que las variables s y
z tambin lo sean. Como se hizo al explicar los mtodos de punto
interior para programacin lineal, la idea es resolver una secuencia
de sistemas KKT perturbados con unos j
k
que eventualmente
convergern a cero, mientras s. z > 0.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
40/48
A este mismo enfoque se llega si consideramos el problema barrera
del original; es decir,
minimizar
x.s
(x) j
m

i =1
log s
i
sujeta a c
E
(x) = 0
c
I
(x) s = 0
s _ 0.
La idea de esta interpretacin sera resolver una secuencia de
problemas barrera con unos j
k
> 0 que eventualmente convergern
a cero.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
41/48
Las condiciones KKT se este problema barrera son:
V(x) A
T
E
(x)y A
T
I
(x)z = 0
jS
1
e z = 0
c
E
(x) = 0
c
I
(x) s = 0.
Si el segundo grupo se multiplica por S, lo que no afecta a la
solucin pues los coecientes de esta matriz son positivos, estas
condiciones son idnticas a las del enfoque anterior.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
42/48
Si se aplica el mtodo de Newton para resolver el sistema de
ecuaciones que determinan las condiciones KKT del problema, se
tiene en cada iteracin
_
_
_
_
_
V
2
..
L 0 A
T
E
(x) A
T
I
(x)
0 Z 0 S
A
E
(x) 0 0 0
A
I
(x) I 0 0
_

_
_
_
_
_
_
p
x
p
s
p
y
p
z
_

_
=
_
_
_
_
_
V(x) A
T
E
(x)y A
T
I
(x)z
Sz je
c
E
(x)
c
I
(x) s
_

_
.
donde L es la funcin de Lagrange del problema
L(x. s. y. z) = (x) y
T
c
E
(x) z
T
(c
I
(x) s) .
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
43/48
Despus de obtenida la solucin del sistema anterior, denominado
primal-dual, se determina un nuevo punto del proceso iterativo
(x

. s

. y

. z

) as:
x

= x
ma.
s
p
s
. s

= s
ma.
s
p
s
y

= y
ma.
:
p
y
. z

= z
ma.
:
p
z
.
donde

ma.
s
= m ax { (0. 1| : s p
s
_ (1 t)s] .

ma.
:
= m ax { (0. 1| : z p
z
_ (1 t)z] .
con t (0. 1).
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
44/48
El proceso parara cuando el error
1(x. s. y. z. j) = m ax

[V(x) A
T
E
(x)y A
T
I
(x)z[. [Sz je[.
[c
E
(x)[. [c
I
(x) s[]
estuviese dentro de una tolerancia adecuada.
Para facilitar la resolucin del sistema primal-dual, la matriz se
reescribe as:
_
_
_
_
_
V
2
..
L 0 A
T
E
(x) A
T
I
(x)
0 0 I
A
E
(x) 0 0 0
A
I
(x) I 0 0
_

_
_
_
_
_
_
p
x
p
s
p
y
p
z
_

_
=
_
_
_
_
_
V(x) A
T
E
(x)y A
T
I
(x)z
z jS
1
e
c
E
(x)
c
I
(x) s
_

_
.
donde = S
1
Z.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
45/48
Aceptabilidad del paso de Newton
Uno de las cuestiones siempre presente en todos los procedimientos
que estudiamos es el dar el paso ms adecuado en la direccin de
bsqueda.
En el caso del mtodo primal-dual, para calcular esa amplitud de
paso, se usa una funcin de mrito en trminos de la funcin
barrera:

v
(x. s) = (x) j
m

i =1
log s
i
v[c
E
(x)[ v[c
I
(x) s[.
donde las normas pueden ser a 1 o la 2 y v un parmetro que
pondere el peso del incumplimiento de los factores a los que afecta
con el de los logaritmos.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
46/48
En la determinacin de la amplitud de paso, una vez calculado el
paso p y los
ma.
s
y
ma.
:
, mediante backtracking se calculan

s
(0.
ma.
s
|.
:
(0.
ma.
:
|
que proporcionen un decremento suciente en la funcin de mrito
anterior.
El nuevo paso ser
x

= x
s
p
s
. s

= s
s
p
s
y

= y
:
p
y
. z

= z
:
p
z
.
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
47/48
Aproximacin cuasi Newton
La idea es adaptar en cada paso del proceso iterativo la matriz
V
2
xx
L mediante una frmula adecuada: BFGS u otras.
Mediante la BFGS, la aproximacin B de esa matriz estara regida
por la expresin
B
k1
= B
k

B
k
x
k
x
T
k
B
k
x
T
k
B
k
x
k

l
k
l
T
k
l
T
k
x
k
.
donde
x
k
= x
k
x
k1
y
l
k
= V
x
L(x
k
. s
k
. y
k
. z
k
) V
x
L(x
k1
. s
k
. y
k
. z
k
).
h i j
d e f g
a b c
10 8 7
9 4 6 5
1 2 3
48/48
Dados Una (x), unos x
0
, s
0
, y
0
y z
0
> 0, una B
0
si es el caso
y un j > 0, unos j. o (0. 1) y una tol. c
j
y c
t ol
Repetir hasta que 1(x. s. y. z. 0) _ c
t ol
Repetir hasta que 1(x. s. y. z. j) _ c
j
Calcular la direccin primal-dual p = (p
x
. p
s
. p
y
. p
z
)
mediante el sistema primal-dual
Calcular
ma.
s
,
ma.
:
; hacer p
n
= (p
x
. p
s
).
Calcular amplitudes de paso
s
y
:
que cumplan

v
(x
k

s
p
x
. s
k

s
p
s
) _
v
(x
k
. s
k
) j
s
D
v
(x
k
. s
k
. p
n
)
Calcular (x
k1
. s
k1
. y
k1
. z
k1
) de
x
k1
= x
s
p
s
. s
k1
= s
s
p
s
y
k1
= y
:
p
y
. z
k1
= z
:
p
z
Si cuasi Newton, adaptar B
k
Hacer k k 1
end
Hacer j oj y adaptar c
j
Algoritmo de punto interior para programacin no lineal

Vous aimerez peut-être aussi