clasenl08s0109
DESCRIPTION
Clase 8 de Programación No Lineal, Prof. Gonzalo Müller, [email protected], Facultad de Ingeniería, Universidad Central de VenezuelaTRANSCRIPT
Programación No Lineal8Postgrado de Investigación de Operaciones
Prof. Gonzalo Mü[email protected]
Facultad de IngenieríaUniversidad Central de Venezuela
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 2
Clase Anterior
� Optimización irrestricta.� Búsqueda lineal: Simultanea, Secuencial. � Intervalo de incertidumbre.� Búsqueda lineal simultanea: Búsqueda uniforme.� Reducción del intervalo de incertidumbre.� Búsqueda lineal Secuencial sin derivadas:
� Búsqueda dicotómica.�Método de sección dorada.� Búsqueda Fibonacci.
� Búsqueda lineal Secuencial con derivadas.� Búsqueda por Bisección.
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 3
Optimización irrestricta
�� Minimizando una funciMinimizando una funcióón irrestrictan irrestricta
Sea el siguiente problema de minimización de una función f : EM → E1 irrestricta:
min f(x)
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 4
Búsqueda Multidimensional
�� Algoritmo baseAlgoritmo base1. Dado un punto inicial xk.
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 5
Búsqueda Multidimensional
�� Algoritmo baseAlgoritmo base1. Dado un punto inicial xk.
2. Hallar o fijar una dirección de búsqueda dk.
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 6
Búsqueda Multidimensional
�� Algoritmo baseAlgoritmo base1. Dado un punto inicial xk.
2. Hallar o fijar una dirección de búsqueda dk.
3. Encontrar un salto ∆k.
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 7
Búsqueda Multidimensional
�� Algoritmo baseAlgoritmo base1. Dado un punto inicial xk.
2. Hallar o fijar una dirección de búsqueda dk.
3. Encontrar un salto ∆k.
4. Generar un nuevo punto:
xk+1 = xk+ ∆k * dk
Algoritmoxk xk+1
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 8
Búsqueda Multidimensional
El problema se transforma en el siguiente problema de minimización:
min f(xk+1)
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 9
Búsqueda Multidimensional
El problema se transforma en el siguiente problema de minimización:
min f(xk+1)
↓
min f(xk+∆k * dk)
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 10
Búsqueda Multidimensional
El problema se transforma en el siguiente problema de minimización:
min f(xk+1)
↓
min f(xk+∆k * dk) min f(xk+∆k * dk)
s.a.:
∆k ≥0
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 11
Búsqueda Multidimensional
El problema se transforma en el siguiente problema de minimización:
min f(xk+1)
↓
min f(xk+∆k * dk) min f(xk+∆k * dk) min f(xk+∆k * dk)
s.a.: s.a.:
∆k ≥0 xk+ ∆k * dksea factible
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 12
Búsqueda Multidimensional
� Sea θ(∆) = f(xk+∆ * dk), entonces:
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 13
Búsqueda Multidimensional
� Sea θ(∆) = f(xk+∆ * dk), entonces:
min f(xk+1)
↓
min θ(∆) min θ(∆) min θ(∆)
(∆ irrestricto) s.a.: s.a.:
∆≥ 0 xk+ ∆ * dk ∈ S
Si es un problema O(f,S)Si es un problema O(f)
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 14
Búsqueda Multidimensional “sin derivadas”
�� MMéétodo de Coordenadas Ctodo de Coordenadas Cííclicasclicas
� Concepto� Las direcciones de búsqueda son los ejes de coordenadas, d1 … dM.
� dk: Todos 0 exceptuando el k-ésimo elemento.
d2T=[0 1]
d1T=[1 0]
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 15
Búsqueda Multidimensional “sin derivadas”
� Se realiza la búsqueda lineal en cada una de las direcciones:
min f(x1+∆ * d1) → x2
∆1*d1x1 x2
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 16
Búsqueda Multidimensional “sin derivadas”
� Se realiza la búsqueda lineal en cada una de las direcciones:
min f(x1+∆ * d1) → x2 → min f(x2+∆ * d2) → x3
∆1*d1x1 x2
∆2*d2
x3
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 17
Búsqueda Multidimensional “sin derivadas”
� Se realiza la búsqueda lineal en cada una de las direcciones:
min f(x1+∆ * d1) → x2 → min f(x2+∆ * d2) → x3 → …→ xM→ min f(xM+∆ * dM)
∆1*d1x1 x2
∆2*d2
x3
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 18
Búsqueda Multidimensional “sin derivadas”
� Se repite la búsqueda lineal de forma cíclica hasta satisfacer alguna regla de parada:
min f(x1+∆ * d1) → x2 → min f(x2+∆ * d2) → x3 → …→ xM→ min f(xM+∆ * dM) → xM+1 →
min f(xM+1+∆ * d1) → xM+2 → min f(xM+2+∆ * d2) →… → x2M+1 → min f(x2M+1+∆ * d1) → x2M+2 → min
f(x2M+2+∆ * d2)
∆1*d1x1 x2
∆2*d2
x3 ∆3*d1 x4∆4*d2
x5
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 19
Búsqueda Multidimensional “sin derivadas”
� Se repite la búsqueda lineal de forma cíclica hasta satisfacer alguna regla de parada:
min f(x1+∆ * d1) → x2 → min f(x2+∆ * d2) → x3 → …→ xM→ min f(xM+∆ * dM) → xM+1 →
min f(xM+1+∆ * d1) → xM+2 → min f(xM+2+∆ * d2) →… → x2M+1 → min f(x2M+1+∆ * d1) → x2M+2 → min
f(x2M+2+∆ * d2)
∆1*d1x1 x2
x3 ∆3*d1 x4∆4*d2
x5
1º Ciclo
∆2*d2
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 20
Búsqueda Multidimensional “sin derivadas”
� Se repite la búsqueda lineal de forma cíclica hasta satisfacer alguna regla de parada:
min f(x1+∆ * d1) → x2 → min f(x2+∆ * d2) → x3 → …→ xM→ min f(xM+∆ * dM) → xM+1 →
min f(xM+1+∆ * d1) → xM+2 → min f(xM+2+∆ * d2) →… → x2M+1 → min f(x2M+1+∆ * d1) → x2M+2 → min
f(x2M+2+∆ * d2)
∆1*d1x1 x2
∆2*d2
x3 ∆3*d1 x4∆4*d2
x5
2º Ciclo
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 21
Búsqueda Multidimensional “sin derivadas”
� Se repite la búsqueda lineal de forma cíclica hasta satisfacer alguna regla de parada:
min f(x1+∆ * d1) → x2 → min f(x2+∆ * d2) → x3 → …→ xM→ min f(xM+∆ * dM) → xM+1 →
min f(xM+1+∆ * d1) → xM+2 → min f(xM+2+∆ * d2) →… → x2M+1 → min f(x2M+1+∆ * d1) → x2M+2 → min
f(x2M+2+∆ * d2) →…
∆1*d1x1 x2
∆2*d2
x3 ∆3*d1 x4∆4*d2
x5∆5*d1x6∆6*d2x7
N Ciclos
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 22
Búsqueda Multidimensional “sin derivadas”
� Algoritmo:� Requerimientos:Si la función f es diferenciable el método converge a un punto x tal que ∇f(x)= 0.
� Entrada:x1: Punto inicial de la búsqueda.ε: máximo error permisible y ancho del intervalo de incertidumbre final de la búsqueda lineal > 0.… : Parámetros de método de búsqueda lineal seleccionado.
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 23
Búsqueda Multidimensional “sin derivadas”
� Algoritmo
║xk+1 – xk║ ≥ ε Fin
yt = xk
xk+1 = yM+1
t = t + 1
V F
k = 0
Comienzo
min f(yt+∆ * dt) → ∆t
t < M
yt+1 = yt+∆t * dt
t = 1
k = k + 1
V
F
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 24
Búsqueda Multidimensional “sin derivadas”
� Algoritmo
║xk+1 – xk║ ≥ ε Fin
yt = xk
xk+1 = yM+1
t = t + 1
V F
k = 0
Comienzo
min f(yt+∆ * dt) → ∆t
t < M
yt+1 = yt+∆t * dt
t = 1
k = k + 1
V
F
Búsqueda
Nueva solución
Solución
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 25
Búsqueda Multidimensional “sin derivadas”
min f(y1+∆ * d1) → y2 → min f(y2+∆ * d2) → x2 →min f(y1+∆ * d1) → y2 → min f(y2+∆ * d2) → x3 →min f(y1+∆ * d1) → y2 → min f(y2+∆ * d2) → x4 → …
∆2*d2∆1*d1x1, y1 y2
∆2*d2
x2, y1 ∆1*d1 y2∆2*d2
x3, y1∆1*d1y2
x4
Ciclo o iteración 1
Ciclo 2
Ciclo 3
El método tiene un alto desempeño al comienzo y uno bajo al final
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 26
Búsqueda Multidimensional “sin derivadas”
Ejemplo 8.1: Resolver el siguiente problema por el método de coordenadas cíclicas partiendo de punto xT= [-1 2] con un error máximo de 0.5:
min x12 + x22 – 1
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 27
Búsqueda Multidimensional “sin derivadas”
�� MMéétodo de todo de HookeHooke andand JeevesJeeves� Concepto
� El método se basa en dos búsquedas:1º. Búsqueda a lo largo de las direcciones de los ejes de coordenadas, d1 … dM.
� dk: Todos 0 exceptuando el k-ésimo elemento.
� Llamada búsqueda exploratoria.
d2T={0 1}
d1T={1 0}
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 28
Búsqueda Multidimensional “sin derivadas”
� Se realiza la búsqueda lineal en cada una de las direcciones:
x1→ min f(y1+∆ * d1) → y2→ min f(y2+∆ * d2) → y3→ … → yM→ min f(yM+∆ * dM) → x2
∆1*d1x1, y1 y2
∆2*d2
x2
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 29
Búsqueda Multidimensional “sin derivadas”
2º. Búsqueda a lo largo de las dirección formada por las dos ultimas soluciones xk+1 – xk.
� Llamada búsqueda patrón.∆1*d1x1, y1 y2
∆2*d2
x2y1
∆3*(x2 – x1)
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 30
Búsqueda Multidimensional “sin derivadas”
2º. Búsqueda a lo largo de las dirección formada por las dos ultimas soluciones xk+1 – xk.
� Llamada búsqueda patrón.� Esta evita la convergencia prematura que puede ocurrir con coordenadas cíclicas a soluciones no óptimas para funciones no diferenciables.
∆1*d1x1, y1 y2
∆2*d2
x2y1
∆3*(x2 – x1)
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 31
Búsqueda Multidimensional “sin derivadas”
� Parámetros
x1: Punto inicial de la búsqueda.
ε: máximo error permisible y ancho del intervalo de incertidumbre final de la búsqueda lineal > 0.
… : Parámetros de método de búsqueda lineal seleccionado.
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 32
Búsqueda Multidimensional “sin derivadas”
� Algoritmo
║xk+1 – xk║ ≥ ε Fin
k = k + 1
xk+1 = yM+1
t = t + 1
V F
k = 0
Comienzo
min f(yt+∆ * dt) → ∆t
t < M
yt+1 = yt+∆t * dt
t = 1
y1 = x1
V
F
min f(xk+1+∆ * d*) → ∆*
d*= (xk+1 – xk)/ ║xk+1 – xk║
y1 = xk+1+∆* * d*
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 33
Búsqueda Multidimensional “sin derivadas”
� Algoritmo
Búsqu
eda
exploratoria
Nueva solución
║xk+1 – xk║ ≥ ε Fin
k = k + 1
xk+1 = yM+1
t = t + 1
V F
k = 0
Comienzo
min f(yt+∆ * dt) → ∆t
t < M
yt+1 = yt+∆t * dt
t = 1
y1 = x1
V
F
min f(xk+1+∆ * d*) → ∆*
d*= (xk+1 – xk)/ ║xk+1 – xk║
y1 = xk+1+∆* * d*
Búsqu
eda patrón
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 34
Búsqueda Multidimensional “sin derivadas”
Ejemplo 8.2: Resolver el siguiente problema por el método de Hooke and Jeeves partiendo de punto xT = [-1 2] con un error máximo de 0.5:
min x12 + x22 – 1
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 35
Búsqueda Multidimensional “sin derivadas”
Aunque estos métodos no hace uso de las derivadas de la función objetivo para el proceso de exploración del espacio de soluciones el método de búsqueda lineal si puede utilizarlas
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 36
Búsqueda Multidimensional con derivadas
�� MMéétodo de Pasos Descendentestodo de Pasos Descendentes
� Concepto� Busca desplazarse en la dirección descendente del punto x, es decir aquella dirección d tal que:
f(x + ∆*d) < f(x), ∆ ≈ 0+
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 37
Búsqueda Multidimensional con derivadas
�� MMéétodo de Pasos Descendentestodo de Pasos Descendentes
� Concepto� Busca desplazarse en la dirección descendente del punto x, es decir aquella dirección d tal que:
f(x + ∆*d) < f(x), ∆ ≈ 0+
� Si f es diferenciable en x:
d = – ∇f(x)
Llamado también el método del gradiente
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 38
Búsqueda Multidimensional con derivadas
� La dirección deber ser unitaria:
d = – ∇f(x)/║∇f(x)║
∇f(x) ≠ 0
−∇f(x0)
x
x0
decrece
Semiespacio de f(x) ≤ f(x0)
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 39
Búsqueda Multidimensional con derivadas
� Restricción
La función f debe ser diferenciable y el método converge a un punto x tal que ∇f(x)= 0.
� Parámetros
x1: Punto inicial de la búsqueda.
ε: máximo error permisible > 0.
… : Parámetros de método de búsqueda lineal seleccionado.
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 40
Búsqueda Multidimensional con derivadas
� Algoritmo
Fin
Comienzo
║∇f(xk)║ ≥ ε
k = k + 1
V
F
k = 0
dk = –∇f(xk)/║∇f(xk)║
min f(xk+∆ * dk) s.a.: ∆ ≥ 0 → ∆k
xk+1 = xk+∆k * dk
El método tiene un alto desempeño al comienzo y uno bajo al final
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 41
Búsqueda Multidimensional con derivadas
Ejemplo 8.3: Resolver el siguiente problema por el método de pasos descendentes partiendo de punto xT= {-1 2} con un error máximo de 0.5:
min x12 + x22 – 1
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 42
Resumen
� 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.