PROBLEMAS DE OPTIMIZACIÓN CON RESTRICCIONES

Anuncio
PROBLEMAS DE OPTIMIZACIÓN CON
RESTRICCIONES.
PROBLEMA DE PROGRAMACIÓN NOLINEAL (NLP).
Optimización con restricciones
La presencia de restricciones reduce la región en la cual
buscamos el óptimo.
Los criterios de optimalidad vistos hasta ahora no siempre se
cumplen
f (x ) = (x − 2 )
2
∇f (x ) = 0, x = 2
Pero si x ≥ 4 entonces el mínimo tiene que ser en x=4 y
este no es un punto estacionario ya que f ' (4 ) = 4, por tanto no
es el punto estacionario de f
Problemas con restricciones de igualdad 1
min f (x1 , x 2 ,K, x N )
s.a.
h k (x 1 , x 2 ,K, x N ) = 0
k = 1,K, K
Método de eliminación de variables: eliminando, K variables
independientes, el problema se convierte en un problema sin
restricciones
La dimensión del problema se reduce de N a N-K
El problema que se obtiene se puede resolver con cualquier
algoritmo de optimización sin restricciones
Problemas con restricciones de igualdad 2
Ejemplo:
min f (x ) = x1x 2 x 3
s.a.
h1 (x ) = x1 + x 2 + x 3 − 1 = 0
Eliminamos x3
min f (x1 , x 2 ) = x1x 2 (1 − x1 − x 2 )
−1
2
2
Pero si h1 (x ) = x1 x 3 + x 2 x 3 + x 2 x1 = 0
No es posible eliminar ninguna variable explícitamente
Es necesario encontrar un método que permita manipular
las restricciones
Problemas con restricciones de igualdad 3
•
Método de los multiplicadores de Lagrange: Transforma el
problema original a uno equivalente sin restricciones mediante
los multiplicadores de Lagrange.
Minimizar
Sujeto a
•
f (x1, x2,..., xN)
hk (x1, x2,..., xN) = 0
k=1,2,...,K
Se transforma en:
K
Minimizar
L(x,v) = f(x) -
∑ vihi ( x )
i=1
•
Solución: encontrar el mínimo de L(x,v) en función de v y ajustar
v para satisfacer las restricciones. => Se obtiene un sistema de
ecuaciones cuya solución es el óptimo de la función original.
Problemas con restricciones de igualdad 4
•
Sistema con N+K ecuaciones y N+K incógnitas (x y v):
∂L
=0
∂xi
hk (x) = 0
•
i = 1,..., N
k=1,... K
Para saber si es máximo o mínimo se calcula la matriz
Hessiana de L con respecto a x:
– Si HL(x;v) es definida positiva
– Si HL(x;v) es definida negativa
•
=> mínimo
=> máximo
Extendiendo los multiplicadores de Lagrange a restricciones de
desigualdad, tenemos las condiciones de kuhn-Tucker
Problema de Programación no-lineal (NLP)
min f (x )
s.a
g j (x ) ≥ 0
h k (x ) = 0
j = 1,K, J
k = 1,K, K
x = ( x 1 ,K, x N )
Se dice que g j (x ) ≥ 0 es una restricción activa en el punto x si
g j (x ) = 0 y es inactiva si g j (x ) > 0
Un punto factible es aquél que
satisface las restricciones
Una región factible es la zona donde
se satisfacen las restricciones
g j ( x) > 0
g j ( x) = 0
Condiciones de Kuhn-Tucker
Encontrar los vectores x ( N×1) , μ (1×J ) , λ (1×K ) que satisfaga las siguientes
condiciones:
J
K
j=1
k =1
∇f ( x ) − ∑ μ j∇g j ( x ) − ∑ λ k ∇h k ( x ) = 0
g j (x) ≥ 0
j = 1,2,..., J
h k (x) = 0
k = 1,2,..., K
μ jg j ( x ) = 0
j = 1,2,..., J
μj ≥ 0
j = 1,2,..., J
Interpretación de las condiciones de KT
min f (x )
s.a
h k (x ) = 0
k = 1,K, K
∇f ( x ) − ∑ λ k ∇ h k ( x ) = 0
h k (x ) = 0
k
Condiciones de KT
L( x ; λ ) = f ( x ) − ∑ λ k h k ( x )
Función de Lagrange
k
∇ L ( x ) = ∇f ( x ) − ∑ λ k ∇h k ( x ) = 0
∇ L (λ ) = h k (x ) = 0
k
Condiciones de
Optimalidad de primer
orden
Las condiciones de KT son las condiciones de optimalidad de primer
orden del Problema de Lagrange
Teorema de Necesidad de Primer Orden
min f (x )
s.a
g j (x ) ≥ 0
h k (x ) = 0
j = 1,K, J
k = 1,K, K
x = (x 1 ,K, x N )
Sean f, g, y h funciones diferenciables, y x* una solución factible del problema.
{
}
*
*
Sea I = j g j (x ) = 0 . Además ∇g j (x ) ∀j ∈ I
*
y ∇h k (x )
son linealmente
independientes. Si x* es una solución óptima del problema entonces existe
(μ ,λ )
*
*
tales que
(x , μ , λ )
*
*
*
resuelve las condiciones de KT
A las condiciones de que ∇g j (x * ) ∀j ∈ I y ∇h k (x * )
sean linealmente
independiente en el óptimo se le llama restricción de cualificación
Restricción de Cualificación
Para algunos problemas de programación no lineal, además las
restricciones de cualificación se satisfacen cuando:
1. Todas las restricciones de desigualdad e igualdad son lineales
2. Cuando todas las restricciones de desigualdad son funciones
cóncavas y las de igualdad son lineales y existe al menos una
solución x factible, estrictamente dentro de la región factible de las
restricciones de desigualdad.
Cuando la restricción de cualificación no se alcanza en el
óptimo, puede que no exista solución al problema de KT
Condición necesaria: si el punto no cumple las condiciones de
KT no es óptimo, pero si las cumple puede ser óptimo o no.
Teorema de Suficiencia de Primer Orden
min f (x )
g j (x ) ≥ 0
s.a
h k (x ) = 0
j = 1,K, J
k = 1,K, K
x = (x 1 ,K, x N )
Sea la función f(x) convexa, las restricciones de desigualdad gj(x) j=1,...,J
todas cóncavas, y las restricciones de igualdad hk(x) k=1,..., K son lineales.
Si existe una solución
(x , μ , λ )
*
*
*
que satisface las condiciones de KT,
entonces x* es una solución óptima del problema de NLP.
Condición suficiente: si x* cumple las condiciones de KT => x*
es óptimo.
¿Qué haríamos si las funciones no son diferenciables?
Condiciones de ensilladura o punto de inflexión
Definición:
Se dice que una función f(x,y) tiene un punto de inflexión en
(x*,y*) si:
f (x * , y ) ≤ f (x * , y* ) ≤ f (x , y* )
Para todas las x y y.
X* minimiza la función f(x,y*) para todas las x
y* maximiza la función f(x*,y) para todas las y
Problema de punto de silla de KT
min f (x )
s.a
g j (x ) ≥ 0
j = 1,K, J
x ∈S
El problema de punto de silla o de inflexión de Kuhn-Tucker es el
siguiente, encontrar un punto (x* , μ*) tal que:
L(x * , μ ) ≤ L(x * , μ* ) ≤ L(x , μ* )
∀μ ≥ 0
x ∈S
Donde:
L ( x , μ ) = f ( x ) − ∑ μ jg j ( x )
j
Teorema de Suficiencia de Optimalidad
(
)
Si x * , μ* es un punto de inflexión de KT, entonces x* es una solución al
problema de programación no lineal
• No se necesita la suposición de convexidad de las funciones
• No se invoca la restricción de cualificación
• El teorema da la suficiencia. Pudiera existir algunos problemas de
programación no lineal, para las cuales no exista un punto de inflexión,
incluso aunque tenga solución óptima
Teorema de Necesidad
Sea x* el valor que minimiza la función f(x) sujeta a las restricciones
g j (x ) ≥ 0,
j = 1,K, J, x ∈ S. Asumimos que S es un conjunto convexo,
f(x) es una función convexa, y g j (x ) ≥ 0 son funciones cóncavas en S.
Asumimos también que existe un punto x ∈ S tal que g j (x ) > 0 . Entonces
(
)
existe un vector de multiplicadores μ* ≥ 0 tales que x * , μ* sea un
punto de ensilladura o de inflexión de la función de Lagrange
L ( x , μ ) = f ( x ) − ∑ μ jg j ( x )
j
que satisface:
L(x * , μ ) ≤ L(x * , μ* ) ≤ L(x , μ* )
∀μ ≥ 0
x ∈S
Punto de inflexión de KT
Teorema:
Una solución (x * , μ* ) donde μ* ≥ 0 y x ∈ S es un
punto de inflexión de KT si y solo si se cumplen las
siguientes condiciones:
*
1. X* minimiza a L(x , μ* ) para todas las x * ∈ S
2. u jg j (x * ) = 0,
*
3. g j (x ) ≥ 0,
j = 1,K, J
j = 1,K, J
Problema de PNL
g j (x ) ≥ 0
h k (x ) = 0
J
K
j=1
k =1
∇f ( x ) − ∑ μ j∇g j ( x ) − ∑ λ k ∇h k ( x ) = 0
min f (x )
s.a
Condiciones de KT
j = 1,K, J
k = 1,K, K
x = (x 1 ,K, x N )
g j (x) ≥ 0
j = 1,2,..., J
h k (x) = 0
k = 1,2,..., K
μ jg j ( x ) = 0
j = 1,2,..., J
μj ≥ 0
j = 1,2,..., J
x es una solución factible al PNL cuando g j (x ) ≥ 0, ∀j y h k (x ) = 0, ∀k
*
x* es un mín. local del PNL cuando x* es factible y se cumple que f (x ) ≤ f (x )
*
para todas las soluciones factibles en una pequeña vecindad δ(x )
x* es un mín. local estricto cuando x* es factible y para todas las soluciones
*
factibles x ≠ x * se cumple que f (x * ) < f (x ) en una pequeña vecindad δ(x )
*
* *
Un punto de KT del PNL es un vector ( x , μ , λ ) que satisface las condiciones
de KT
Teorema de Necesidad de Segundo Orden
Consideramos el problema de PNL, y sean f, g y h, funciones dos veces
{
}
*
diferenciables, y sea x* factible para el problema. Sea I = j g j (x ) = 0
el
conjunto de las restricciones activas en x*. También se asume que
∇g j (x * ) ∀j ∈ I y ∇h k (x * ) son linealmente independientes. Las condiciones
necesarias para que x* sea un mínimo local al problema son:
*
*
* *
*
1. Existen unos multiplicadores (λ ,μ ) tales que (x , λ , μ )
2. Para cualquier vector y (1× N )
∇g j (x * )y = 0
sea un pto. KT
se satisface que:
j∈ I
y T H L (x * , λ* , μ* )y ≥ 0
∇h k (x )y = 0 k = 1,K, K
*
J
K
j=1
k =1
L(x , λ, μ ) = f (x ) − ∑ μ jg j (x ) − ∑ λ k h k (x )
HL es el Hessiano de la función de Lagrange respecto a x y evaluado en
)
*
μ , *λ , *x(
Teorema de Suficiencia de Segundo Orden
Las condiciones suficientes para que el punto x* sea un mínimo local estricto del
problema PNL, donde f, g y h son doblemente diferenciables son las sgtes.
1. Existen unos multiplicadores (λ* ,μ* ) tales que (x * , λ* , μ* ) sean un pto. de KT
2. Para cualquier vector y (1× N ) ≠ 0 que satisface:
{
= {j g (x ) = 0, μ
}
= 0}
∇g j (x * )y = 0
j ∈ I1 = j g j (x * ) = 0, μ*j > 0
∇g j (x * )y ≥ 0
j ∈ I2
*
j
∇h k (x * )y = 0 k = 1,K, K
y T H L (x * , λ* , μ* )y > 0
*
j
Funciones de Penalización 1
min
s.a.
f (x) x ∈ R N
g j (x) ≥ 0
j = 1,2,K, J
hk ( x ) = 0 k = 1,2,K, K
xi(l ) ≤ xi ≤ xi(u ) i = 1,2,K, N
El problema original se convierte en un problema sin restricciones
mediante una función de penalización
P(x , R ) = f (x ) + Ω(R , g (x ), h (x ))
R es el conjunto de los parámetros de penalización
Ω es una función de R y las funciones de restricción.
Funciones de Penalización 2
•
Características de la transformación:
– La solución del problema debe aproximarse a la solución del
problema de NLP:
lim x ( t ) = x *
t →T <∞
– El problema de minimizar P(x,R) debe ser similar en
dificultad a minimizar f(x)
– R(t+1) = F(R(t)) debe ser simple.
•
Dos tipos de transformaciones:
– Métodos barrera o forma interior: todos los puntos
generados son factibles
– Métodos de forma exterior: los puntos generados son no
factibles.
Funciones de Penalización 3
Función parabólica
Ω = R{h (x )}
2
Métodos de forma exterior:
puntos generados son no factibles
Operador de bracket
Ω = R g (x )
2
⎧α si α ≤ 0⎫
α =⎨
⎬
α
>
0
si
0
⎩
⎭
Ejemplo con restricciones de igualdad 1
En este caso R=1
x(t)=[3,3]T
f(x(t))=2. h(x(t)) =1
Ejemplo con restricciones de igualdad 2
En este caso R=10
En este caso R=100
x(t)=[2.5714, 2.5714]T
x(t)=[2.5075,2.5075]T
f(x(t))=4.0818; h(x(t)) =0.1428
f(x(t))=4.477 h(x(t)) =0.015
Ejemplo con restricciones de desigualdad 1
En este caso R=1
En este caso R=10
x(t)=[3,3]T
x(t)=[2.75,2.75]T
f(x(t))=2 g(x(t)) =-1
f(x(t))=3.125 g(x(t)) = -0.5
Ejemplo con restricciones de desigualdad 2
En este caso R=100
x(t)=[2.5075,2.5075]T
f(x(t))=4.4550 g(x(t)) = -0.015
Funciones de penalización 4
• Logaritmica:
• Barrera infinita:
Ω = 10 20
∑
j∈ J
g j ( x)
con gj(x)<0 ∀ j∈J
Ω = − R ln[ g ( x)]
Ω
Ω
∞
1.0
g(x)
0
0
g(x)
Métodos barrera o de forma interior: los puntos generados
son siempre factibles
Funciones de penalización 5
• Algoritmo:
– 1.- Definir ε1, ε2, ε3 => condiciones de terminación para
la búsqueda lineal, vectorial y penalización. X0 y R0
– 2.- P(x,R) = f(x) + Ω(R, g(x), h(x))
– 3.- Encontrar xk+1 / P(xk+1, Rk) sea mínimo con Rk fijo.
Terminar con ε2.
– 4.- | P(xk+1, Rk) – P (xk , Rk-1) | ≤ ε3 ?
• Si => xk+1 = x* Parar
• No => continuar
– 5.- Elegir Rk+1 = Rk + ΔRk y volver al paso 2.
Ejemplo con funciones barrera
R=100 x(t)=[-1.8, -1.8] f(x(t))=67
g(x(t)) =8.612
R=10 x(t)=[1.5, 1.5] f(x(t))=12.5
g(x(t)) =2.0
R=1 x(t)=[2.3, 2.3] f(x(t))=5.45
g(x(t)) =0.30
Método del Gradiente Reducido Generalizado
min f (x1 , x 2 ,K, x N )
s.a.
•
h k (x 1 , x 2 ,K, x N ) = 0
Si hk(x) son no lineales pero puedes resolverse explícitamente,
puede usarse el método de eliminación de variables:
h1(x) = 0
•
k = 1,K, K
=> xk= Φ(x1,...,xk-1,xk+1,...,xN)
Esto no ocurre en la mayoría de los casos, pero se puede hacer
una aproximación lineal de la restricción en torno a un punto x1
que sí cumpla la restricción:
x1 / hk(x1) = 0
Hk(x; x1) = hk (x1) + ∇hk(x1) (x – x1)
•
k=1,..., K
Utilizamos está aproximación para encontrar otro punto factible:
Método GRG 2
x / hk(x; x1) = 0 k=1,...,K
∇hk(x1) (x – x1)=0
k=1,..., K
•
Esto es un sistema de k ecuaciones con N incógnitas y
normalmente k<N => no existe solución única. Se puede
resolver el sistema para K variables en función de las otras N-K.
•
•
K variables =>
N-K variables =>
⎛ ∇1hˆ ⎞
⎜
⎟
⎜ ∇ 2 hˆ ⎟
J =⎜
⎟
...
⎜
⎟
⎜ ∇ hˆ ⎟
⎝ k ⎠
x̂
x
básicas
no básicas
⎛ ∇1h ⎞
⎜
⎟
⎜ ∇2h ⎟
C =⎜
... ⎟
⎜
⎟
⎜∇ h ⎟
⎝ k ⎠
J ( xˆ − xˆ1 ) + C ( x − x 1 ) = 0
xˆ − xˆ1 = − J −1C ( x − x 1 )
Método GRG 3
•
Utilizamos la última ecuación para eliminar k variables de la
función objetivo:
~
f ( xˆ , x ) = f ( xˆ1 − J −1C ( x − x 1 ), x )
•
La función objetivo ahora es una función sin restricciones de las
N-K variables no básicas, y podemos aplicar las condiciones
necesarias para que x1 sea mínimo:
~
∂f
=0
∂x
~
~
f ( x ) = f ( xˆ ( x ), x )
~
∇f ( x1 ) = ∇f ( x1 ) + ∇fˆ ( x1 )[− J −1C ]
Mínimo:
~
∇ f ( x1 ) = 0
~
~
~
∂f ( x ) ∂f
∂ f ∂ xˆ
=
+
∂x
∂ x ∂ xˆ ∂ x
Gradiente reducido generalizado
Método GRG 4
•
•
Hemos usado linealizaciones de las restricciones para expresar
la función objetivo como una función de N-K variables no
básicas sin restricciones => algoritmo de optimización vectorial
en torno al punto de linealización.
Algoritmo:
~
– 1.- Calcular
∇f ( x k ) = ∇f ( x k ) − ∇fˆ ( x k ) J −1C
– 2.- Si
Si no
~ k
|| ∇f ( x ) ||< ε
Parar
~
d = (−∇f )T ⎫⎪
d = ( dˆ , d ) T
⎬
dˆ = − J −1Cd ⎪⎭
– 3.- Minimizar f(xk + α d) con respecto al parámetro α =>
Hacer xk+1 = xk + α d.
Ir al paso 1.
Método GRG 5
•
La dirección d así generada es descendente, pero los puntos
generados en esa dirección no tienen por qué ser factibles.
•
Para resolver este problema, se calcula d y se proyecta d
sobre la superficie definida por el conjunto de restricciones y se
minimiza f(x) a lo largo de la curva resultante.
•
Encontrar un x̂ que cumpla: hk ( x t + α * d , xˆ ) = 0
k=1,...,K
Método de Newton
x̂ i + 1 = x̂ i − [ J − 1 ( x t + α * d , x̂ i )] * h ( x t + α * d , x̂ i )
•
Si el método converge a un x̂ , si f ( xˆ ) < f ( x t ) nos
quedamos con el nuevo punto y seguimos el algoritmo, si no se
cumple, se disminuye α y se repiten las iteraciones de Newton
Algoritmo GRG 1
•
Partir de un punto inicial x0, α = α0, ε1, ε2, ε3 >0 criterios de
terminación y un parámetro de reducción; 0 < γ <1
•
1.- Elegir una partición
x, en x̂ y x de forma que J sea no
~ de
t
singular. Calcular: ∇f ( x )
~ t
• 2.- Si || ∇f ( x ) ||< ε parar
Si no
•
~
d = (−∇f )T ⎫⎪
d = ( dˆ , d ) T
⎬
dˆ = − J −1Cd ⎪⎭
3.- α = α0; a) Calcular vi = xt + α d
Si |hk (vi) | ≤ ε2 k=1,...K ir a d)
Si no. Continuar
Algoritmo GRG 2
b) vˆ i + 1 = vˆ i − J − 1 ( v i ) * h ( v i )
v i +1 = v i
c) Si
|| vˆ i + 1 − vˆ i || > ε 1
Si no:
ir a b)
Si | hk (vi ) | ≤ ε3 k=1,..., K ir a (d)
Si no α = γα
Newton no converge.
e ir a (a) => el algoritmo de
d) Si f(xt ) ≤ f(vi), la dirección no es descendente, hacer α = γα
e ir a (a)
Si no: xt+1 = vi e ir al paso 1.
Tratamiento de los límites 1
min
s.a.
f (x) x ∈ R N
g j (x) ≥ 0
j = 1,2,K, J
hk ( x ) = 0 k = 1,2,K, K
xi(l ) ≤ xi ≤ xi(u ) i = 1,2,K, N
•
•
1.- Tratamiento explícito como desigualdades.
2.- Implícito: teniendo en cuenta los límites en los pasos del
algoritmo:
– 2.1.- Sólo las variables alejadas de sus límites puedes ser
variables básicas, se ordenan las variables de acuerdo con la
distancia al límite más cercano:
zi(t) = min {(xiu – xit), (xit – xiL)}
Se ordenan las zi en orden decreciente y las k primeras
variables son las básicas.
Tratamiento de los límites 2
– 2.2.- Modifica d para asegurar que los límites no son
superados:
⎧0
⎪
d i = ⎨0
~
⎪
(
f )i
−
∇
⎩
u
Si xi = xi
L
Si xi = xi
~
y (∇f ) i < 0
~
y (∇f ) i > 0
en otros casos
– 2.3.- En el paso 3 se deben insertar chequeos para asegurar
que los límites no se exceden durante las iteraciones de
Newton.
Si un límite es excedido, se hace una interpolación lineal
entre xt y vi para estimar el punto en esa línea que no
exceda el límite.
Tratamiento de las desigualdades
•
Se introducen variables de holgura que convierten la
desigualdad en una igualdad:
aj ≤ gj (x) ≤ bj
hk+j (x) = aj - gj (x) + xN+j = 0
hk+j (x) = gj (x) – bj + xN+j = 0
•
Se incrementa la dimensionalidad del problema.
Descargar