clasenl08s0109

42
Programación No Lineal 8 Postgrado de Investigación de Operaciones Prof. Gonzalo Müller [email protected] Facultad de Ingeniería Universidad Central de Venezuela

Upload: gmullerb

Post on 11-Jun-2015

1.173 views

Category:

Documents


3 download

DESCRIPTION

Clase 8 de Programación No Lineal, Prof. Gonzalo Müller, [email protected], Facultad de Ingeniería, Universidad Central de Venezuela

TRANSCRIPT

Page 1: ClaseNL08S0109

Programación No Lineal8Postgrado de Investigación de Operaciones

Prof. Gonzalo Mü[email protected]

Facultad de IngenieríaUniversidad Central de Venezuela

Page 2: ClaseNL08S0109

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.

Page 3: ClaseNL08S0109

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)

Page 4: ClaseNL08S0109

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

Búsqueda Multidimensional

�� Algoritmo baseAlgoritmo base1. Dado un punto inicial xk.

Page 5: ClaseNL08S0109

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.

Page 6: ClaseNL08S0109

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.

Page 7: ClaseNL08S0109

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

Page 8: ClaseNL08S0109

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)

Page 9: ClaseNL08S0109

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)

Page 10: ClaseNL08S0109

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

Page 11: ClaseNL08S0109

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

Page 12: ClaseNL08S0109

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

Búsqueda Multidimensional

� Sea θ(∆) = f(xk+∆ * dk), entonces:

Page 13: ClaseNL08S0109

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)

Page 14: ClaseNL08S0109

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]

Page 15: ClaseNL08S0109

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

Page 16: ClaseNL08S0109

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

Page 17: ClaseNL08S0109

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

Page 18: ClaseNL08S0109

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

Page 19: ClaseNL08S0109

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

Page 20: ClaseNL08S0109

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

Page 21: ClaseNL08S0109

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

Page 22: ClaseNL08S0109

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.

Page 23: ClaseNL08S0109

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

Page 24: ClaseNL08S0109

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

Page 25: ClaseNL08S0109

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

Page 26: ClaseNL08S0109

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

Page 27: ClaseNL08S0109

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}

Page 28: ClaseNL08S0109

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

Page 29: ClaseNL08S0109

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)

Page 30: ClaseNL08S0109

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)

Page 31: ClaseNL08S0109

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.

Page 32: ClaseNL08S0109

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*

Page 33: ClaseNL08S0109

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

Page 34: ClaseNL08S0109

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

Page 35: ClaseNL08S0109

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

Page 36: ClaseNL08S0109

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+

Page 37: ClaseNL08S0109

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

Page 38: ClaseNL08S0109

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)

Page 39: ClaseNL08S0109

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.

Page 40: ClaseNL08S0109

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

Page 41: ClaseNL08S0109

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

Page 42: ClaseNL08S0109

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.