Sunteți pe pagina 1din 42

Programación No Lineal

8
Postgrado de Investigación de Operaciones

Prof. Gonzalo Müller


gmullerb@mail.com
Facultad de Ingeniería
Universidad Central de Venezuela
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 – 2
Optimización irrestricta
 Minimizando una función 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 – 3


Búsqueda Multidimensional
 Algoritmo base
1. Dado un punto inicial xk.

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


Búsqueda Multidimensional
 Algoritmo base
1. 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 – 5


Búsqueda Multidimensional
 Algoritmo base
1. 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 – 6


Búsqueda Multidimensional
 Algoritmo base
1. 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

xk Algoritmo xk+1

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


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 – 8


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 – 9


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 – 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) min f(xk+∆k * dk)
s.a.: s.a.:
∆k ≥ 0 xk + ∆k * dk
sea factible

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


Búsqueda Multidimensional
 Sea θ(∆) = f(xk+∆ * dk), entonces:

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


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) Si es un problema O(f,S)


Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 13
Búsqueda Multidimensional “sin derivadas”
 Método de Coordenadas Cíclicas
 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 – 14


Búsqueda Multidimensional “sin derivadas”
 Se realiza la búsqueda lineal en cada una de las
direcciones:

min f(x1+∆ * d1) → x2

x1 ∆1*d1 x2

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 → min f(x2+∆ * d2) → x3

x3

∆2*d2

x1 ∆1*d1 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 → …


→ xM → min f(xM+∆ * dM)

x3

∆2*d2

x1 ∆1*d1 x2

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


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)
x3 ∆3*d1 x4
∆4*d2
∆2*d2 x5

x1 ∆1*d1 x2
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: 1º Ciclo
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)
x3 ∆3*d1 x4
∆4*d2
∆2*d2 x5

x1 ∆1*d1 x2
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)
x3 ∆3*d1 x4 2º Ciclo
∆4*d2
∆2*d2 x5

x1 ∆1*d1 x2
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) →…
N Ciclos x3 ∆3*d1 x4
∆4*d2
∆2*d2 x5 ∆ *d x6
5 1 ∆6*d2

x1 ∆1*d1 x2 x7
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 21
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 – 22
Búsqueda Multidimensional “sin derivadas”
Comienzo
 Algoritmo
k=0
k=k+1
t=1
yt = xk
min f(yt+∆ * dt) → ∆t

t=t+1 yt+1 = yt+∆t * dt


V
t<M
F
xk+1 = yM+1

V F
║xk+1 – xk║ ≥ ε Fin
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 23
Búsqueda Multidimensional “sin derivadas”
Comienzo
 Algoritmo
k=0
k=k+1
t=1
yt = xk Solución

min f(yt+∆ * dt) → ∆t

t=t+1 yt+1 = yt+∆t * dt Búsqueda


V
t<M
F
xk+1 = yM+1 Nueva solución

V F
║xk+1 – xk║ ≥ ε Fin
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 24
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 → …

Ciclo 2
x2, y1 ∆1*d1 y2
Ciclo o iteración 1
∆2*d2
∆2*d2 y2 Ciclo 3
x3, y1 ∆1*d1 ∆ *d
2 2

x1, y1 ∆1*d1 y2 x4

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 – 25
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 – 26


Búsqueda Multidimensional “sin derivadas”
 Método de Hooke and Jeeves
 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.
d2T={0 1}

d1T={1 0}

 Llamada búsqueda exploratoria.


Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 27
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

x2

∆2*d2

x1, y1 ∆1*d1 y2

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


Búsqueda Multidimensional “sin derivadas”
2º. Búsqueda a lo largo de las dirección formada por
las dos ultimas soluciones xk+1 – xk.
y1
x2 ∆ *(x – x )
3 2 1

∆2*d2

x1, y1 ∆1*d1 y2
 Llamada búsqueda patrón.

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.
y1
x2 ∆ *(x – x )
3 2 1

∆2*d2

x1, y1 ∆1*d1 y2
 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.

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


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 – 31


Búsqueda Multidimensional “sin derivadas”
Comienzo
 Algoritmo
k=0
y1 = x1
y1 = xk+1+∆* * d* t=1
min f(xk+1+∆ * d*) → ∆* k=k+1

d* = (xk+1 – xk)/ min f(yt+∆ * dt) → ∆t


║xk+1 – xk║
t=t+1 yt+1 = yt+∆t * dt
V
t<M
F
xk+1 = yM+1

V F
║xk+1 – xk║ ≥ ε Fin
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 32
Búsqueda Multidimensional “sin derivadas”
Comienzo
 Algoritmo
k=0
y1 = x1
Búsqueda patrón

y1 = xk+1+∆* * d* t=1
min f(xk+1+∆ * d*) → ∆* k=k+1

d* = (xk+1 – xk)/ min f(yt+∆ * dt) → ∆t

exploratoria
Búsqueda
║xk+1 – xk║
t=t+1 yt+1 = yt+∆t * dt
V
t<M
F
Nueva solución xk+1 = yM+1

V F
║xk+1 – xk║ ≥ ε Fin
Programación No Lineal – Prof. Gonzalo Müller – Clase 8 – GM – 33
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 – 34


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 – 35


Búsqueda Multidimensional con derivadas
 Método 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 – 36


Búsqueda Multidimensional con derivadas
 Método 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 – 37


Búsqueda Multidimensional con derivadas
 La dirección deber ser unitaria:
d = – ∇f(x)/║∇f(x)║
∇f(x) ≠ 0

Semiespacio de
f(x) ≤ f(x0)
x
−∇f(x0)
x0

decrece

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


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 – 39


Búsqueda Multidimensional con derivadas
 Algoritmo
Comienzo

k=0
k=k+1
F
║∇f(xk)║ ≥ ε Fin

V
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 – 40
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 – 41


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.

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

S-ar putea să vă placă și