Está en la página 1de 55

Programación No Lineal

9
Postgrado de Investigación de Operaciones

Prof. Gonzalo Müller


gmullerb@mail.com
Facultad de Ingeniería
Universidad Central de Venezuela
Clase Anterior
 Minimizando una función Multidimensional irrestricta
 Algoritmo base → búsqueda lineal
 Búsqueda Multidimensional sin derivadas:
 Método de Coordenadas Cíclicas.
 Método de Hooke and Jeeves.
 Búsqueda Multidimensional con derivadas:
 Método de Pasos Descendentes.

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 2


Optimización restringida
 Minimizando una función restringida
Sea el problema de optimización O(f, S) de una
función f de EM → E1:

min f(x)
s. a:
h(x) = 0
g(x) ≤ 0

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 3


Optimización restringida
 Las restricciones definen la región factible S.
si x ∈ S , x es factible
si x ∉ S, x no es factible

x1 x2
S

x1 es factible, x2 no es factible
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 4
Optimización restringida
 Las metodologías utilizadas para la resolución
convierten el problema en uno de:

 Optimización irrestricta.

y luego se aplica algunos de los métodos vistos


anteriormente.

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 5


Búsqueda Multidimensional Penalizada
 Penalización.
 Concepto:
Un factor es añadido a la función objetivo de tal
manera que ésta es penalizada cuando una
restricción ha sido violada.

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 6


Búsqueda Multidimensional Penalizada
 Penalización.
 Concepto:
Un factor es añadido a la función objetivo de tal
manera que ésta es penalizada cuando una
restricción ha sido violada.
 Se generan una sucesión de puntos no
necesariamente factibles a lo largo de la búsqueda
que tiende a la solución óptima del problema
original.

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 7


Búsqueda Multidimensional Penalizada
 Un factor de penalización p(x) debe:
 Tener un valor positivo para soluciones no factibles:
p(x) > 0, x ∉ S

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 8


Búsqueda Multidimensional Penalizada
 Un factor de penalización p(x) debe:
 Tener un valor positivo para soluciones no factibles:
p(x) > 0, x ∉ S

 Ser cero para soluciones factibles:

p(x) = 0, x ∈ S

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 9


Búsqueda Multidimensional Penalizada
 De esta forma se transforma el problema original:
min f(x)
s. a:
x∈S

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 10


Búsqueda Multidimensional Penalizada
 De esta forma se transforma el problema original:
min f(x)
s. a:
x∈S

min f(x)+ p(x)


irrestricto

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 11


Búsqueda Multidimensional Penalizada
 Penalización de restricciones =:
min f(x)
s. a:
h(x) = 0

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 12


Búsqueda Multidimensional Penalizada
 Penalización de restricciones =:
min f(x)
s. a:
h(x) = 0

Se transforma en una búsqueda irrestricta



min f(x)+h2(x) min f(x)+|h(x)|

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 13


Búsqueda Multidimensional Penalizada

min f(x)+ µ h2(x) min f(x)+ µ |h(x)|
µ >> 0

µ >> 0, permite asegurar que no exista competencia


entre la función original y la restricción

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 14


Búsqueda Multidimensional Penalizada

min f(x)+ µ h2(x) min f(x)+ µ |h(x)|
µ >> 0

µ >> 0, permite asegurar que no exista competencia


entre la función original y la restricción

 A medida que h(x) → 0 el problema se transforma


en el problema original:
limh(x) → 0{ min f(x)+ µ h2(x) } = min f(x)
f(x) + µp(x) se conoce como la función auxiliar
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 15
Búsqueda Multidimensional Penalizada
Ejemplo 10.1: Definir la función auxiliar del siguiente
problema:
min x12 + x22 – 1
s. a: x1 + x2 = 0

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 16


Búsqueda Multidimensional Penalizada
Ejemplo 10.1: Definir la función auxiliar del siguiente
problema:
min x12 + x22 – 1
s. a: x1 + x2 = 0

min x12 + x22 – 1 + µ(x1 + x2)2
min (1+µ)x12 + (1+µ)x22 + 2 x1 x2 – 1

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 17


Búsqueda Multidimensional Penalizada
Ejemplo 10.1: Definir la función auxiliar del siguiente
problema:
min x12 + x22 – 1
s. a: x1 + x2 = 0

min x12 + x22 – 1 + µ(x1 + x2)2
min (1+µ)x12 + (1+µ)x22 + 2 x1 x2 – 1
o
min x12 + x22 – 1 + µ|x1 + x2|
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 18
Búsqueda Multidimensional Penalizada
 Penalización de restricciones ≤:
min f(x)
s. a:
g(x) ≤ 0

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 19


Búsqueda Multidimensional Penalizada
 Penalización de restricciones ≤:
min f(x)
g(x)
s. a:
g(x) ≤ 0

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 20


Búsqueda Multidimensional Penalizada
 Penalización de restricciones ≤:
min f(x)
g(x) g(x)
s. a:
g(x) ≤ 0

S S

Soluciones no penalizadas

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 21


Búsqueda Multidimensional Penalizada
 Penalización de restricciones ≤:
min f(x)
g(x) g(x)
s. a:
max{0, g(x)}
g(x) ≤ 0

S S

Soluciones no penalizadas

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 22


Búsqueda Multidimensional Penalizada
 Penalización de restricciones ≤:
min f(x)
g(x) g(x)
s. a:
max{0, g(x)}
g(x) ≤ 0

S S
min (f(x) + max{0, g(x)})

Soluciones no penalizadas
min (f(x) + µ max{0, g(x)})
µ >> 0
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 23
Búsqueda Multidimensional Penalizada
Ejemplo 10.2: Definir la función auxiliar del siguiente
problema:
min x12 + x22 – 1
s. a: x1 + x2 ≤ 0

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 24


Búsqueda Multidimensional Penalizada
Ejemplo 10.2: Definir la función auxiliar del siguiente
problema:
min x12 + x22 – 1
s. a: x1 + x2 ≤ 0

min (x12 + x22 – 1 + µ max{0, x1 + x2})

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 25


Búsqueda Multidimensional Penalizada
 Penalización de restricciones ≥:
min f(x)
s. a:
g(x) ≥ 0

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 26


Búsqueda Multidimensional Penalizada
 Penalización de restricciones ≥:
min f(x)
g(x)
s. a:
S
g(x) ≥ 0

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 27


Búsqueda Multidimensional Penalizada
 Penalización de restricciones ≥:
min f(x)
g(x) g(x)
s. a:
S S
g(x) ≥ 0

Soluciones no penalizadas

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 28


Búsqueda Multidimensional Penalizada
 Penalización de restricciones ≥:
min f(x)
g(x) g(x)
s. a:
S S
g(x) ≥ 0

min{0, g(x)}
min (f(x) – min{0, g(x)})
Soluciones no penalizadas

min (f(x) – µ min{0, g(x)})
µ >> 0
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 29
Búsqueda Multidimensional Penalizada
Ejemplo 10.3: Definir la función auxiliar del siguiente
problema:
min x12 + x22 – 1
s. a: x1 + x2 ≥ 0

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 30


Búsqueda Multidimensional Penalizada
Ejemplo 10.3: Definir la función auxiliar del siguiente
problema:
min x12 + x22 – 1
s. a: x1 + x2 ≥ 0

min (x12 + x22 – 1 + µ min{0, x1 + x2})

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 31


Búsqueda Multidimensional Penalizada
 Si µ es demasiado grande la búsqueda se acerca más
rápidamente a la región factible, pero puede surgir una
convergencia prematura.

x1

A medida que µ crece la sucesión de puntos generados


se aproxima al óptimo desde la región exterior a la
región factible, por lo que estos métodos se llaman
métodos de punto exterior
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 32
Búsqueda Multidimensional Penalizada
 Algoritmo:
 Entrada:
x1: Punto inicial de la búsqueda.
ε: máximo error permisible > 0.
µ0: Factor de penalización inicial > 0.
α: Factor de expansión de penalización > 1.
… : Parámetros de método de la búsqueda
multidimensional seleccionada.

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 33


Búsqueda Multidimensional Penalizada
 Algoritmo

Comienzo

k=0

xk → min f(x)+µkp(x) → xk+1

k=k+1 µk|p(xk+1)| > ε


F
Fin

V
µk+1= α µk

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 34


Búsqueda Multidimensional Penalizada
Ejemplo 10.4: Resolver el siguiente problema con
penalización partiendo de punto xT=[1 2] con ε =
0.5:
min x12 + x22 – 1
s. a: x1 + x2 ≤ 0

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 35


Búsqueda Multidimensional Penalizada
 Penalización combinada:
min f(x)
s. a:
g1(x) ≤ 0
h(x) = 0
g2(x) ≥ 0

min (f(x)+µ max{0, g1(x)}+µ h2(x) – µ min{0, g2(x)})

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 36


Búsqueda Multidimensional con Barrera
 Barrera.
 Concepto:
Un factor barrera es añadido a la función objetivo el
cual es utilizado para prevenir que los puntos
generados a lo largo de la búsqueda salgan fuera de
la región de factibilidad.

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 37


Búsqueda Multidimensional con Barrera
 Barrera.
 Concepto:
Un factor barrera es añadido a la función objetivo el
cual es utilizado para prevenir que los puntos
generados a lo largo de la búsqueda salgan fuera de
la región de factibilidad.
 Se generan una sucesión de puntos factibles a lo
largo de la búsqueda que tiende a la solución óptima
del problema original.
 Las restricciones deben ser desigualdades.
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 38
Búsqueda Multidimensional con Barrera
 Un factor de barrera b(x) debe:

b(x) ≥ 0, x ∈ int(S )

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 39


Búsqueda Multidimensional con Barrera
 Un factor de barrera b(x) debe:

b(x) ≥ 0, x ∈ int(S )

Y a medida que se acerca la frontera de S:

limx → ∂(S) b(x) → ∞

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 40


Búsqueda Multidimensional con Barrera
 Lo ideal sería que:

b(x) = 0, x ∈ int(S )

limx ∈ ∂(S) b(x) → ∞

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 41


Búsqueda Multidimensional con Barrera
 De esta forma se transforma el problema original:
min f(x)
s. a:
x∈S

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 42


Búsqueda Multidimensional con Barrera
 De esta forma se transforma el problema original:
min f(x)
s. a:
x∈S

min f(x)+ b(x)


irrestricto

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 43


Búsqueda Multidimensional con Barrera
 Barrera de restricciones ≤:
min f(x)
s. a:
g(x) ≤ 0

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 44


Búsqueda Multidimensional con Barrera
 Barrera de restricciones ≤:
min f(x)
s. a:
g(x) ≤ 0

min f(x) – 1/g(x)

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 45


Búsqueda Multidimensional con Barrera
 Barrera de restricciones ≤:
min f(x)
s. a:
g(x) ≤ 0

min f(x) – 1/g(x)
El punto de
↓ partida debe
min f(x) – µ/g(x) ser un punto
interior de la
µ >> 0 región factible
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 46
Búsqueda Multidimensional con Barrera
 Barrera de restricciones ≥:
min f(x)
s. a:
g(x) ≥ 0

min f(x) + 1/g(x)

min f(x) + µ/g(x)
µ >> 0
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 47
Búsqueda Multidimensional con Barrera
 Se debe verificar que el método no deje la región
factible, ya que a través las búsquedas
multidimensionales realizadas esto es posible.

x1 S

A medida que µ decrece la sucesión de puntos


generados se aproxima al óptimo desde el interior de la
región factible, por lo que estos métodos se llaman
métodos de punto interior
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 48
Búsqueda Multidimensional con Barrera
Ejemplo 10.5: Definir la función auxiliar del siguiente
problema:
min x12 + x22 – 1
s. a: x1 + x2 ≤ 0

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 49


Búsqueda Multidimensional con Barrera
Ejemplo 10.5: Definir la función auxiliar del siguiente
problema:
min x12 + x22 – 1
s. a: x1 + x2 ≤ 0

min x12 + x22 – 1 – 1/(x1 + x2)

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 50


Búsqueda Multidimensional con Barrera
 Algoritmo:
 Entrada:
x1: Punto inicial de la búsqueda ∈ int S.
ε: máximo error permisible > 0.
µ0: Factor de barrera inicial > 0.
β: Factor de contracción de la barrera:
0<β<1
… : Parámetros de método de la búsqueda
multidimensional seleccionada.
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 51
Búsqueda Multidimensional con Barrera
 Algoritmo

Comienzo

k=0

xk → min f(x)+µkb(x) → xk+1

k=k+1 µk|b(xk+1)| > ε


F
Fin

V
µk+1= β µk

Si el punto obtenido no es factible debe ser descartado, es posible realizar


una nueva búsqueda ajustando los parámetros del algoritmo empleado
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 52
Búsqueda Multidimensional con Barrera
 Algoritmo

Comienzo

k=0

xk → min f(x)+µkb(x) → xk+1

k=k+1 F Ajustar parámetros


xk∈S
de Algoritmo
V

F
µk|b(xk+1)| > ε Fin

V
µk+1= β µk
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 53
Búsqueda Multidimensional con Barrera
Ejemplo 10.6: Resolver el siguiente problema con
barrera partiendo de punto xT=[1 –2] con ε = 0.05:
min x12 + x22 – 1
s. a: x1 + x2 ≤ 0

Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 54


Resumen
 Minimizando una función restringida:
 Penalización
 Penalización de restricciones =:
 min (f(x)+h2(x)) min (f(x)+|h(x)|)
 Penalización de restricciones ≤:min (f(x) + µ max{0, g(x)})
 Penalización de restricciones ≥:min (f(x) – µ min{0, g(x)})
 Penalización combinada.
 Barrera.
 Barrera de restricciones ≤: min f(x) – µ/g(x)
 Barrera de restricciones ≥:min f(x) + µ/g(x)
Programación No Lineal – Prof. Gonzalo Müller – Clase 9 – GM – 55