Está en la página 1de 18

Métodos directos

Métodos indirectos

Tema 5: Algoritmos de resolución de problemas


no lineales restringidos

Programación no Lineal y Flujos en redes

Curso 2021-2022

J. de Frutos Cachorro

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 1/ 17


Métodos directos
Métodos indirectos

Considere el programa de PNL de n variables y m restricciones:

Max z = f (x1 , x2 , ..., xn )


s.a g1 (x1 , x2 , ..., xn ) ≤ b1
g2 (x1 , x2 , ..., xn ) ≤ b2
.. (1)
.
gm (x1 , x2 , ..., xn ) ≤ bm ,
x1 , x2 , ..., xn ≥ 0.

dónde f y/o gj , j = 1..m, son no lineales.

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 2/ 17


Métodos directos
Métodos indirectos

Algoritmo general resolución PL ⇒ Método simplex

Algoritmo general resolución PNL ⇒

No existe un algoritmo de resolución general en PNL.


El metódo analı́tico más general son las condiciones de
KKT.
Problema: complejidad de aplicación en el caso de varias
variables.
Algoritmos de resolución de problemas PNL restringidos:
Algoritmos directos
Algoritmos indirectos

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 3/ 17


Métodos directos
Métodos indirectos

ALGORITMOS DE APROXIMACIÓN
PNL con restricciones

DIRECTOS INDIRECTOS
(manejan el problema  (resuelven el 
en forma original) problema mediante 
transformación a PL)
Ej: método de 
combinaciones  Ej: programación 
lineales separable, 
programación 
cuadrática

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 4/ 17


Métodos directos
Métodos indirectos

Método de combinaciones lineales


Considere el programa de PNL de n variables y m restricciones:
Max z = f (x1 , x2 , ..., xn )
s.a g1 (x1 , x2 , ..., xn ) ≤ b1
g2 (x1 , x2 , ..., xn ) ≤ b2
.. (2)
.
gm (x1 , x2 , ..., xn ) ≤ bm ,
x1 , x2 , ..., xn ≥ 0.
dónde gj (x1 , x2 , ..., xn ), j = 1..m son lineales, o de manera equivalente
matricialmente,

Max z = f (X )
s.a AX ≤ b (3)
X ≥ 0.

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 5/ 17


Métodos directos
Métodos indirectos

Método de combinaciones lineales

Basado en el método del gradiente ⇒ necesidad de adaptarlo al


caso con restricciones

Como funciona una iteración? Iteración K+1:

Sea Xk un punto factible de intento en la iteración k, queremos


encontrar X factible en la proximidad de Xk que maximize el
problema con restricciones.

Para lograr incrementar f(X) en la proximidad de Xk , desarrollamos


la serie de taylor de orden 1:

f (X ) ' f (Xk )+∇f (Xk )(X −Xk ) = f (Xk ) − ∇f (Xk )Xk +∇f (Xk )X
| {z }
cte.

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 6/ 17


Métodos directos
Métodos indirectos

Método de combinaciones lineales


Como el primer término es una constante, el problema de maximización
se reduce a resolver el PL:

máx wk (X ) = ∇f (Xk )X
X
s.a AX ≤ b
X ≥ 0.

Sea X ∗ la solución del problema anterior, podemos asegurar que


wk (X ∗ ) > wk (Xk ), pero no podemos asegurar que f (X ∗ ) > f (Xk ), a
menos que X ∗ sea próximo de Xk .

Sin embargo, existe Xk+1 en el segmento de recta que une X ∗ y


Xk |f (Xk+1 ) > f (Xk ).

Observación: Xk+1 serı́a factible ya que se encuentra entre dos puntos


factibles en un conjunto factible convexo.

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 7/ 17


Métodos directos
Métodos indirectos

Método de combinaciones lineales

Por lo tanto,

Xk+1 = (1 − r )Xk + rX ∗ = Xk + r (X ∗ − Xk ), 0 < r ≤ 1.


Y se trata de resolver el problema sin restricciones:

máx h(r ) = f (Xk+1 ) = f (Xk + r (X ∗ − Xk ))


r

Se obtiene Xk+1 factible, tal que f (Xk+1 ) > f (Xk ).

Repetimos proceso hasta que en la iteración m,


wm (X ∗ ) ≤ wm (Xm−1 ). Entonces Xm−1 serı́a la solución
aproximada.

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 8/ 17


Métodos directos
Métodos indirectos

Resumen I: Método de combinaciones lineales

X0 arbitrario o dado (factible)

Iteración 1: Calcular ∇f (X0 )

Resolver el PL:

máx w1 (X ) = ∇f (X0 )X
X
s.a AX ≤ b
X ≥ 0.

Obtenemos la solución X ∗ . Si w1 (X ∗ ) > w1 (X0 ), se determina X1


(sino STOP y X0 solucion aproximada).

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 9/ 17


Métodos directos
Métodos indirectos

Resumen II: Método de combinaciones lineales

Definimos:
X1 = X0 + r (X ∗ − X0 ), 0 < r ≤ 1.

Y se trata de resolver el problema sin restricciones:

máx h(r ) = f (X1 )


r

Se obtiene X1 factible, tal que f (X1 ) > f (X0 ).

Repetimos proceso hasta que en la iteración k,


wk (X ∗ ) ≤ wk (Xk−1 ). Entonces Xk−1 serı́a la solución aproximada.

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 10/ 17


Métodos directos
Métodos indirectos

Programación separable

Definición: Una función f (x1 , x2 , ..., xn ) es separable si se puede


expresar como la suma de n funciones de una variable, i.e.,
f (x1 , x2 , ..., xn ) = f1 (x1 ) + f2 (x2 ) + ... + fn (xn ).

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 11/ 17


Métodos directos
Métodos indirectos

Programación separable

Definición: Una función f (x1 , x2 , ..., xn ) es separable si se puede


expresar como la suma de n funciones de una variable, i.e.,
f (x1 , x2 , ..., xn ) = f1 (x1 ) + f2 (x2 ) + ... + fn (xn ).

Definición: La programación separable maneja problemas no


lineales en los que la función objetivo y las resticciones son
funciones separables.

⇒ Resolución mediante transformación del problema por


aproximación lineal y el metodo simplex de la aproximación lineal.

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 11/ 17


Métodos directos
Métodos indirectos

Programación separable: Ejemplo 1 variable


Sea f(x) una función de una variable en [a,b], se define ak como el punto
de quiebre k, con 0 ≤ a = a1 < a2 < ... < ak = b. f(x) se aproxima con
programación entera mixta:

K
X
f (x) ' f (ak ) ∗ tk ,
k=1
K
X
x= ak tk
k=1
K
X
tk = 1, tk ≥ 0.
k=1

La aproximación lineal es válida si:


Como mucho dos tk son estrictamente positivas.
Si tk es positiva, solo tk+1 o tk−1 puede tener valor positivo.
Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 12/ 17
Métodos directos
Métodos indirectos

Programación separable: Problema de n variables y m


restricciones

Considere el programa de PNL de n variables y m restricciones:

Max z = f (x1 , x2 , ..., xn )


s.a g1 (x1 , x2 , ..., xn ) ≤ b1
g2 (x1 , x2 , ..., xn ) ≤ b2
.. (4)
.
gm (x1 , x2 , ..., xn ) ≤ bm ,
x1 , x2 , ..., xn ≥ 0.

con f y gj , j = 1..m funciones separables.

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 13/ 17


Métodos directos
Métodos indirectos

Programación separable: n variables y m restricciones

n
X
Max z= fi (xi ),
i=1
n
X
s.a. gji (xi ) ≤ bj , j = 1..m, xi ≥ 0.
i=1

¿Cómo aproximar z?
Si fi (xi ) es no lineal, hay aproximar como en el caso de 1 variable.
para cada variable xi , se establecen:
la cantidad de puntos de quiebre Ki
sus puntos de quiebre siendo aik , el k-ésimo valor de quiebre.
sus pesos, siento tik el peso asociado al k-ésimo punto de
quiebre.
Se plantea el problema de PL y se resuelve mediante el método
simplex de base restringida.
Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 14/ 17
Métodos directos
Métodos indirectos

Programación cuadrática

Max z = CX + X T DX
s.a AX ≤ b (5)
X ≥ 0, dónde,

X =(x1 , x2 , ..., xn )T
C =(c1 , c2 , ..., cn )
b =(b1 , b2 , ..., bn )T
 
a11 · · · a1n
A =  ... .. .. 

. . 
am1 · · · amn
 
d11 · · · d1n
D =  ... .. .. 

. . 
dn1 ··· dnn
Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 15/ 17
Métodos directos
Métodos indirectos

Programación cuadrática

Max z = CX + X T DX
s.a AX ≤ b
X ≥ 0, dónde,

D es simétrica y la forma cuadrática definida negativa. Las


restricciones son lineales.

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 16/ 17


Métodos directos
Métodos indirectos

Programación cuadrática

Se basa en las condiciones KKT.


Vamos a crear un sistema lineal de n variables, xi , i = 1..n
+ m multiplicadores de lagrange, λj , j = 1..m
+ n multiplicadores (cond. pos), µi , i = 1..n
+ m variables de holgura, sj , j = 1..m
El sistema lineal se resuelve usando la fase I del metodo de dos fases
(parecido al método anterior de base restringida).

Sistema lineal de n+m ecuaciones y 2n+2m variables:


∂L
= 0 µi xi = 0 i = 1..n,
∂xi
∂L
− + sj = 0, λj sj = 0, j = 1..m.
∂λj

Programación no Lineal y Flujos en redes Bloque I: PNL. Tema 5. 17/ 17

También podría gustarte